交易管理¶
交易基本操作¶
XuperChain 中的新建合约账号,转账等操作均属于交易。在这里以向 账号管理 中创建的账号转账为例, 展示交易相关的操作
在 账号管理 中,给外部账号转账的操作为
$ xchain-cli transfer --to ip3eqq8Eiz3DDTRpYRHP4Q72XjvgzZwLf --amount 9999999999999999
115c330c450c354b9ede9debf570c978c1d3c07eaef3a5c42eb9ac087931bb1a
其输出 115c330c450c354b9ede9debf570c978c1d3c07eaef3a5c42eb9ac087931bb1a 及为此次转账的交易 ID
查询交易信息¶
通过以下命令可以查询交易的信息,包括交易状态、交易的源和目标账号、交易的金额、所在的区块(如果已上链)等内容
xchain-cli tx query 115c330c450c354b9ede9debf570c978c1d3c07eaef3a5c42eb9ac087931bb1a
查询区块信息¶
通过blockid可以查询区块的相关信息
xchain-cli block 0354240c8335e10d8b48d76c0584e29ab604cfdb7b421d973f01a2a49bb67fee
发起多重签名交易¶
对于需要多个账号签名才可以生效的交易,需要先发起多重签名交易,收集需要的签名,然后再发出
对需要收集签名的账号地址,需要事先维护在一个文件中(假定名为addr_list),每个地址一行
YDYBchKWXpG7HSkHy4YoyzTJnd3hTFBgG
ZAmWoJViiNn5pKz32m2MVgmPnSpgLia7z
假设要发起一笔转账操作
# 从账号发起
xchain-cli multisig gen --to czojZcZ6cHSiDVJ4jFoZMB1PjKnfUiuFQ --amount 100 -A addr_list
# 从合约账号发起
xchain-cli multisig gen --to czojZcZ6cHSiDVJ4jFoZMB1PjKnfUiuFQ --amount 100 -A addr_list --from XC11111111111111@xuper
这样会生成一个tx.out文件,包含了需发起的交易内容
1 2 | # 各方在签名之前可以check 原始交易是否ok,查看visual.out
xchain-cli multisig check --input tx.out --output visual.out
|
然后收集需要的签名
1 2 3 4 5 | # 首先需要发起者自己的签名
xchain-cli multisig sign --tx tx.out --output my.sign
# 假设addr_list中的地址对应的私钥存放在alice、bob中
xchain-cli multisig sign --keys data/account/alice --tx tx.out --output alice.sign
xchain-cli multisig sign --keys data/account/bob --tx tx.out --output bob.sign
|
最后将交易和收集好的签名发出
# send后第一个参数是发起者的签名文件,第二个参数是需要收集的签名文件,均为逗号分割
xchain-cli multisig send --tx tx.out my.sign alice.sign,bob.sign