6. SDK接入

6.1. JAVA SDK

6.1.1. 环境准备

> 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);

test.wasm

  • 调用合约

    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);

6.2. GO SDK

6.3. JavaScript SDK