JAVA SDK
使用 sdk 第一步,需初始化 sdk,首先实现 IMultiTransactionSign,IServerConfig 两个接口。
sdk = new SunNetwork();
SunNetworkResponse<Integer> ret = sdk.init(new ServerConfigImpl(), new MultiSignTransactionImpl());
sdk 中有三个 service。
//主链接口
sdk.getMainChainService();
//侧链接口
sdk.getSideChainService();
//主侧链交互接口
sdk.getCrossChainService();
链间交互接口介绍
mapping
//由TRC20合约在主链上的部署者调用,完成从主链将TRC20合约映射到侧链,会在侧链部署标准的20合约与主链TRC20合约对应
SunNetworkResponse<TransactionResponse> resp = sdk.getCrossChainService().mappingTrc20(trxHash, feeLimit);
//返回值:使用sdk.getSideChainService().getTransactionInfoById(txid)查询resp.getData().getTrxId()获得此次mapping操作的nonce值
Parameter | Description |
---|---|
trxHash | 主链上部署 TRC20 合约的 deployContract 交易 id |
feeLimit | 触发合约时的能量消耗上限 |
//由TRC721合约在主链上的部署者调用,完成从主链将TRC721合约映射到侧链,会在侧链部署标准的TRC721合约与主链TRC721合约对应
SunNetworkResponse<TransactionResponse> resp = sdk.getCrossChainService().mappingTrc721(trxHash, feeLimit);
//返回值:使用sdk.getSideChainService().getTransactionInfoById(txid)查询resp.getData().getTrxId()获得此次mapping操作的nonce值
Parameter | Description |
---|---|
trxHash | 主链上部署 TRC721 合约的 deployContract 交易 id |
feeLimit | 触发合约时的能量消耗上限 |
deposit
//从主链质押一定数量的TRX到侧链
SunNetworkResponse<TransactionResponse> resp = sdk.getCrossChainService().depositTrx(num, feeLimit);
//返回值:使用sdk.getSideChainService().getTransactionInfoById(txid)查询resp.getData().getTrxId()获得此次deposit操作的nonce值
Parameter | Description |
---|---|
num | TRX 数量(单位 SUN) |
feeLimit | 触发合约时的能量消耗上限 |
//从主链质押一定数量的指定TRC10到侧链
SunNetworkResponse<TransactionResponse> resp = sdk.getCrossChainService().depositTrc10(tokenId, tokenValue, feeLimit);
//返回值:使用sdk.getSideChainService().getTransactionInfoById(txid)查询resp.getData().getTrxId()获得此次deposit操作的nonce值
Parameter | Description |
---|---|
tokenId | TRC10 的 TOKENID |
tokenValue | TRC10 资产的数量 |
feeLimit | 触发合约时的能量消耗上限 |
//从主链质押一定数量的指定TRC20到侧链
SunNetworkResponse<TransactionResponse> resp = sdk.getCrossChainService().depositTrc20(contractAddrStr, num, feeLimit);
//返回值:使用sdk.getSideChainService().getTransactionInfoById(txid)查询resp.getData().getTrxId()获得此次deposit操作的nonce值
Parameter | Description |
---|---|
contractAddrStr | 主链 TRC20 合约地址 |
num | TRC20 资产数量 |
feeLimit | 触发合约时的能量消耗上限 |
//从主链质押一定数量的指定TRC721到侧链
SunNetworkResponse<TransactionResponse> resp = sdk.getCrossChainService().depositTrc721(contractAddrStr, num, feeLimit);
//返回值:使用sdk.getSideChainService().getTransactionInfoById(txid)查询resp.getData().getTrxId()获得此次deposit操作的nonce值
Parameter | Description |
---|---|
contractAddrStr | 主链 TRC721 合约地址 |
num | TRC721 资产数量 |
feeLimit | 触发合约时的能量消耗上限 |
withdraw
//从侧链退出一定数量的TRX到主链
SunNetworkResponse<TransactionResponse> resp = sdk.getCrossChainService().withdrawTrx(num, feeLimit);
//返回值:使用sdk.getSideChainService().getTransactionInfoById(txid)查询resp.getData().getTrxId()获得此次withdraw操作的nonce值
Parameter | Description |
---|---|
num | TRX 数量(单位 SUN) |
feeLimit | 触发合约时的能量消耗上限 |
//从侧链质押一定数量的指定TRC10到主链
SunNetworkResponse<TransactionResponse> resp = sdk.getCrossChainService().withdrawTrc10(tokenId, tokenValue, feeLimit);
//返回值:使用sdk.getSideChainService().getTransactionInfoById(txid)查询resp.getData().getTrxId()获得此次withdraw操作的nonce值
Parameter | Description |
---|---|
tokenId | TRC10 的 TOKENID |
tokenValue | TRC10 资产的数量 |
feeLimit | 触发合约时的能量消耗上限 |
//从侧链质押一定数量的指定TRC20到主链
SunNetworkResponse<TransactionResponse> resp = sdk.getCrossChainService().withdrawTrc20(contractAddrStr, num, feeLimit);
//返回值:使用sdk.getSideChainService().getTransactionInfoById(txid)查询resp.getData().getTrxId()获得此次withdraw操作的nonce值
Parameter | Description |
---|---|
contractAddrStr | 侧链 TRC20 合约地址 |
num | TRC20 资产数量 |
feeLimit | 触发合约时的能量消耗上限 |
//从侧链质押一定数量的指定TRC721到主链
SunNetworkResponse<TransactionResponse> resp = sdk.getCrossChainService().withdrawTrc721(contractAddrStr, num, feeLimit);
//返回值:使用sdk.getSideChainService().getTransactionInfoById(txid)查询resp.getData().getTrxId()获得此次withdraw操作的nonce值
Parameter | Description |
---|---|
contractAddrStr | 侧链 TRC721 合约地址 |
num | TRC721 资产数量 |
feeLimit | 触发合约时的能量消耗上限 |
retry
//重试没有成功的主链deposit操作
SunNetworkResponse<TransactionResponse> resp = sdk.getCrossChainService().retryDeposit(nonce, feeLimit);
Parameter | Description |
---|---|
nonce | deposit 操作的 nonce 值 |
feeLimit | 触发合约时的能量消耗上限 |
//重试没有成功的侧链withdraw操作
SunNetworkResponse<TransactionResponse> resp = sdk.getCrossChainService().retryWithdraw(nonce, feeLimit);
Parameter | Description |
---|---|
nonce | withdraw 操作的 nonce 值 |
feeLimit | 触发合约时的能量消耗上限 |
//重试没有成功的主链mapping操作
SunNetworkResponse<TransactionResponse> resp = sdk.getCrossChainService().retryMapping(nonce, feeLimit);
Parameter | Description |
---|---|
nonce | mapping 操作的 nonce 值 |
feeLimit | 触发合约时的能量消耗上限 |
侧链接口介绍
//由侧链的资助者向侧链基金池注入资金
SunNetworkResponse<TransactionResponse> resp = sdk.getMainChainService().fundInject(amount);
Parameter | Description |
---|---|
amount | 向侧链基金池注入资金数量(单位 SUN) |
//查询侧链所有提案列表信息
SunNetworkResponse<TransactionResponse> resp = sdk.getSideChainService().listProposals();
//参数:无
//根据提案号查询侧链提案信息
SunNetworkResponse<TransactionResponse> resp = getSideChainService().getProposal(id);
Parameter | Description |
---|---|
id | 提案号 |
//查询所有侧链区块链委员会可以设置的参数
SunNetworkResponse<TransactionResponse> resp = getSideChainService().getSideChainParameters();
主链接口介绍
//查询主链所有提案列表信息
SunNetworkResponse<TransactionResponse> resp = sdk.getMainChainService().listProposals();
//根据提案号查询侧链提案信息
SunNetworkResponse<TransactionResponse> resp = getMainChainService().getProposal(id);
Parameter | Description |
---|---|
id | 提案号 |
//查询所有主链区块链委员会可以设置的参数
SunNetworkResponse<TransactionResponse> resp = getMainChainService().getChainParameters();
公共接口介绍
//获取sdk当前用户的地址
SunNetworkResponse<byte[]> resp = getChainService().getAddress()
//获取sdk当前用户的TRX
SunNetworkResponse<long> resp = getChainService().getBalance()
//根据地址获得账户信息
SunNetworkResponse<Account> result = getChainService().getAccount(address);
//进行转账TRX操作
SunNetworkResponse<TransactionResponse> = getChainService().sendCoin(toAddress, amount);
//进行转账TRC10操作
SunNetworkResponse<TransactionResponse> = getChainService().transferAsset(toAddress, assertName, amount);