6. SDK接入
6.1. JAVA SDK
6.1.1. 环境准备
下载java sdk
将sdk安装到本地maven仓库
> mvn org.apache.maven.plugins:maven-install-plugin:3.1.1:install-file -Dfile="xchain-java-sdk-2.1.0.jar"
pom中添加依赖
<dependency>
<groupId>org.xbl.xchain</groupId>
<artifactId>xchain-java-sdk</artifactId>
<version>2.1.0</version>
</dependency>
6.1.2. sdk使用
初始化XchainClient
String url = "http://ip:port";
String chainId = "xachain";
XchainClient xchainClient = XchainClient(url, chainId, Version.NONCE)
构建账号
String mainPrefix = "xchain";
String org1AdminMnemonic = "winter angry holiday castle involve fade answer answer unique history harvest local goose south type genuine void memory meadow wasp increase portion suffer hello";
Account org1Admin = Account.buildAccount(new KeyInfo(org1AdminMnemonic, AlgorithmType.SM2, mainPrefix));
添加组织成员
KeyInfo keyInfo = xchainClient.generateKeyInfo(AlgorithmType.SM2, mainPrefix);
String newAccount = keyInfo.getAddress();
TxResponse txResponse = xchainClient.addAccount(org1Admin, newAccount, "org1", "client");
部署合约
String contractName = "item";
String language = "rust";
String executePerm = "";
String lable = "";
String initMsg = "{}";
String contractPath = "test.wasm";
File contractFile = new File(contractPath);
TxResponse txResponse = xchainClient.instantiateContract(org1Admin, contractName, language, contractFile, initMsg, PermissionPolicy.POLICY_DROP, executePerm, lable);
调用合约
String contractName = "item";
String params = "{\"create\":{\"item\":{\"key\":\"name\",\"value\":\"zhangsan\"}}}";
TxResponse txResponse = xchainClient.executeContract(org1Admin, contractName , params);
查询合约
String contractName = "item";
String paramsStr = "{\"find\":{\"key\":\"name\"}}";
Map<String, Object> params = JSON.parseObject(paramsStr).getInnerMap();
String result = xchainClient.queryContract(contractName, params);