Git Product home page Git Product logo

chain33-sdk-java's Introduction

chain33-sdk-java

Chain33的Java SDK提供交易构造、交易签名、数据加密、发送交易、查询交易、区块链查询等能力,以便于应用层更容易的接入区块链。

支持离线生成助记词,私钥,公钥,地址。
支持查询区块链信息,如区块高度、交易、节点信息、同步状态。
支持部署EVM和WASM合智能合约,并调用。
支持JSON-RPC和gRPC调用。
兼容国密标准SM2、SM3和SM4。
支持原生存证、积分发行和转账等能力。
支持EVM合约部署,调用能力 支持web3j abi库与chain33的适配工作

使用

1.下载最新的JAVA-SDK版本
下载地址:https://github.com/33cn/chain33-sdk-java/releases/download/1.0.18/chain33-sdk-java-1.0.18.zip

2.将SDK压缩包中的JAR包安装到本地仓库。 在JAR包所在目录,执行以下命令:

mvn install:install-file -Dfile=chain33-sdk-java.jar -DgroupId=cn.chain33 -DartifactId=chain33-sdk-java -Dversion=1.0.18 -Dpackaging=jar

执行结果中打印BUILD SUCCESS,表明添加成功。 如果time out导致构建失败,可以再次执行以上命令,直至构建成功。

3.通过pom.xml导入依赖的jar包 如果导入依赖缓慢,或出现Connection timed out的报错信息,则可能是因为默认**仓库下载超时,可以切换成阿里云镜像重试。

<!—阿里云镜像 -->
  <mirror> 
    <id>alimaven</id> 
	<name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url> 
    <mirrorOf>central</mirrorOf>         
</mirror>

4.准备好环境,使用RpcClient调用接口

// JSONRPC调用方式:初始化,设置Ip端口
RpcClient client = new RpcClient("x.x.x.x",8801);
调用接口
client.接口();
// GRPC调用方式
GrpcClient client = new GrpcClient(host);
调用接口
client.run(o->o.method(builder));

功能介绍

包名 功能 测试用例
CoinsUtil coins主币积分交易构造 CoinsTest
EvmUtil evm相关交易构造 EvmTest
AddressUtil 地址相关操作工具
TransactionUtil 交易相关操作工具
http http日志订阅服务 httpTest
Transaction 交易包装类,交易签名重构等一系列方法
Transactions 交易组的包装类,交易组签名重构等一系列方法
abi 兼容chain33系统的abi库

接口列表

下面罗列的是java sdk提供的接口,具体调用可以参考测试代码里的例子

  • client.isSync() 查询节点同步状态
  • client.submitTransaction(txhash) 提交交易
  • client.queryTransaction(txhash) 根据哈希查询交易信息
  • client.getTxByHashes(hashlist) 根据哈希数组批量获取交易信息
  • client.getHexTxByHash(hash) 根据哈希获取交易的hex字符串
  • client.getBlocks(start,end,isdetail) 获取区间区块
  • client.getLastHeader() 获取最新的区块头
  • client.getHeaders(start,end,isdetail) 获取区间区块头
  • client.getBlockHash(height) 获取区块的 hash 值
  • client.getBlockOverview(hash) 获取区块的详细信息
  • client.getPeerInfo() 获取远程节点列表
  • client.getTxByHashes() 根据哈希数组批量获取交易信息
  • client.getWalletStatus() 获取钱包状态
  • client.lock() 钱包上锁
  • client.importPrivatekey() 导入私钥
  • client.unlock(passwd,walletorticket,timeout) 钱包解锁
  • client.newAccount(label) 创建账户
  • client.seedGen() 生成随机的seed
  • client.seedSave(seed,password) 保存seed并用密码加密
  • client.seedGet(passwd) 通过钱包密码获取钱包的seed原文
  • client.setlabel(addr,label) 设置标签
  • client.getAccountList() 获取账户列表
  • client.createRawTokenPreCreateTx(参数) 创建预创建token的交易(未签名)
  • client.createRawTokenFinishTx(参数) 创建完成创建token的交易(未签名)
  • client.CreateRawTokenRevokeTx(参数) 创建撤销预创建token的交易(未签名)
  • client.createRawTransaction(参数) 构造交易
  • client.signRawTx(参数) 交易签名
  • client.getTokenBalance(参数) 查询地址token余额
  • client.getTxByAddr(参数) 根据地址获取交易信息
  • client.queryCreateTokens(参数) 查询token列表
  • client.queryAccountBalance(参数) 查询地址下的token/trace合约下的token资产
  • client.queryBalance(参数) 查询地址余额
  • client.submitRawTransaction(参数) 发送签名后的交易
  • client.sendToAddress(参数) 交易
  • client.createTransaction(参数) 合约交易创建
  • client.addPushSubscribe(参数) 注册推送回调
  • client.listPushes(参数) 列举推送服务
  • client.getPushSeqLastNum(参数) 获取某推送服务最新序列号的值
  • TransactionUtil.createTransferPayLoad(参数) 本地构造转账交易payload
  • TransactionUtil.createTransferTx(参数,payload) 本地构造转账交易体
  • 创建好的交易体使用client.submitTransaction提交交易
  • TransactionUtil.generatorPrivateKeyString() 创建私钥
  • TransactionUtil.getHexPubKeyFromPrivKey(私钥) 根据私钥获得公钥
  • TransactionUtil.genAddress(公钥) 根据公钥获取地址
  • TransactionUtil.validAddress(地址) 校验地址是否正确
  • TransactionUtil.createPrecreateTokenTx(参数) 本地创建预创建token交易
  • TransactionUtil.createTokenFinishTx(地址) 本地创建完成创建token交易
  • StorageUtil.createOnlyNotaryStorage 创建内容存证模型(payload)
  • StorageUtil.createHashStorage 创建哈希存证模型(payload)
  • StorageUtil.createLinkNotaryStorage 创建链接存证模型(payload)
  • StorageUtil.createEncryptNotaryStorage 隐私存证模型型(payload)
  • StorageUtil.createEncryptShareNotaryStorage 创建分享隐私存证模型(payload)
  • SeedUtil.generateMnemonic 离线生成助记词
  • SeedUtil.createAccountBy33PATH 根据助记词离线生成私钥和地址

通过SDK部署调用EVM合约样例

POS公链: https://github.com/andyYuanFZM/btyDemo
联盟链: https://github.com/andyYuanFZM/consortiumDemo
POS33公链: https://github.com/andyYuanFZM/yccDemo

chain33-sdk-java's People

Contributors

2066632394 avatar 33cn avatar andyyuanfzm avatar chain33private avatar dependabot[bot] avatar harrylee2015 avatar jpeng-go avatar loganlai avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

chain33-sdk-java's Issues

maven无法引入java-sdk

我尝试着使用你们公司提供的官方java-sdk,并且我在pom文件中输入了

cn.chain33
sdk-java
1.0.7

但是,我还尝试了1.0.8,但是就是没法下载下来,后来我去
https://mvnrepository.com/search?q=cn.chain33
搜索cn.chain33,发现并没有这个依赖。
请问一下,我该怎么做,才能正常引入这个依赖?谢谢~

grpc库需要升级

目前版本采用GRPC库版本为1.33.1,这个版本中有一些比较严重问题, 建议更新到1.34.1版本以上。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.