交易管理

交易基本操作

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