使用shuttle实现bytom上跨链资产交换( 二 )


合约部署好了以后,2.5 分钟后,比原链上的一个新的区块被矿工打包后,部署的合约就可以被认证 。

使用shuttle实现bytom上跨链资产交换

文章插图
2.2 调用合约(下面是调用合约的命令)
$ swap callTradeoff -hcall tradeoff contract for asset swappingUsage:swap callTradeoff [txFee flag] [URL flags(ip and port)] [flags]Flags:-h, --helphelp for callTradeoff--ip stringnetwork address (default "127.0.0.1")--port stringnetwork port (default "9888")--txFee uintcontract transaction fee (default 40000000)
调用合约实例化参数如下:
$ swap callTradeoff 10CKAD3000A02 12345 00140fdee108543d305308097019ceb5aec3da60ec66 34996b0838108de8c614bc018e8fdbbfc08a47ffbe0fd6d7f41892b90de3999f--> txID: 55e43274d2d92504a903a13e3f6517d63434fc19a2fa0e1fc0a9a5c8c75e8f6c
调用完以后,当交易在新的区块中被确认,整个资产交换过程就完成,如下图:
使用shuttle实现bytom上跨链资产交换

文章插图
交换完成后,现在账户账户A有200个BTC,账户B有10个BTM 。
2.3 取消合约(下面是取消合约的相关命令)
如果有人想取消合约交易,可以调用该命令取消,如下:
$ swap cancelTradeoff -hcancel tradeoff contract for asset swappingUsage:swap cancelTradeoff [txFee flag] [URL flags(ip and port)] [flags]Flags:-h, --helphelp for cancelTradeoff--ip stringnetwork address (default "127.0.0.1")--port stringnetwork port (default "9888")--txFee uintcontract transaction fee (default 40000000)
取消合约的实例化如下:
$ swap deployTradeoff 10CJPO1HG0A02 12345 --amountLocked 20000000000 --amountRequested 1000000000 --assetLocked bae7e17bb8f5d0cfbfd87a92f3204da082d388d4c9b10e8dcd36b3d0a18ceb3a --assetRequested ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff --cancelKey 3e5d7d52d334964eef173021ef6a04dc0807ac8c41700fe718f5a80c2109f79e --seller 00145dd7b82556226d563b6e7d573fe61d23bd461c1f --txFee 40000000--> contractUTXOID: e898ea907f8586b3211a46b69d0cddd363f8a850f559656570eb6afc6ac382c5$ swap cancelTradeoff 10CJPO1HG0A02 12345 00145b0a81adc5c2d68a9967082a09c96e82d62aa058e898ea907f8586b3211a46b69d0cddd363f8a850f559656570eb6afc6ac382c5--> txID: 0f75db743196b8b2e514c49d6483dfba9bd5ab8e913a7559ecaea0324977313f
示例图如下:
[外链图片转存失败(img--34)()]
上面整个流程就是在同一条链上不同资产进行交换的整个过程,下面我们来看一下不同链上的两个资产进行交换,假设以bytom和vapor为例 。
第三步:不同链上资产进行交换
你可以使用该工具在bytom和vapor上交换资产:
使用shuttle实现bytom上跨链资产交换

文章插图
3.1 搭建并启动bytom和vapor节点
为了方便测试 。你可以启动bytom和vapor的节点
启动bytom节点:
使用shuttle实现bytom上跨链资产交换

文章插图
$ bytomd init --chain_id=solonet --home $HOME/bytom/solonet # init bytomsolonet node$ bytomd node --home $HOME/bytom/solonet --mining# launch bytom solonet node and start mining
启动vapor节点:
$ vapord init --chain_id=solonet --home $HOME/bytom/vapor-solonet # init vapor solonet node$ vapord node --home $HOME/bytom/vapor-solonet --mining# launch vapor solonet node and start mining
3.2 部署HTLC合约(合约的部署命令如下)
$ swap deployHTLC -hdeploy HTLC contractUsage:swap deployHTLC[contract flags(paramenters and locked value)] [txFee flag] [URL flags(ip and port)] [flags]Flags:--amountLocked uintHTLC contract locked value with amount--assetLocked stringHTLC contract locked value with assetID--blockHeight uintHTLC contract locked value with blockHeight--hash stringHTLC contract locked value with hash-h, --helphelp for deployHTLC--ip stringnetwork address (default "127.0.0.1")--port stringnetwork port (default "9888")--recipient stringHTLC contract paramenter with recipientPublicKey--sender stringHTLC contract paramenter with sender PublicKey--txFee uintcontract transaction fee (default 40000000)