-
Notifications
You must be signed in to change notification settings - Fork 257
MultiSig
linj edited this page Nov 23, 2022
·
1 revision
[TOC]
。需要设置默认的owner以及权重,指定资产的每日限额,请求权重的值
。owner的add/del/modify/replace 。资产每日限额的修改 。请求权重的修改
。转入时,to地址必须是多重签名地址,from地址必须是非多重签名地址; 。转出时,from地址必须是多重签名地址,to地址必须是非多重签名地址; 传出交易需要校验权重
account
cli multisig account
Available Commands:
address get multisig account address
assets get assets of multisig account
count get multisig account count
create Create a multisig account transaction
creator get all multisig accounts created by the address
dailylimit Create a modify assets dailylimit transaction
owner get multisig accounts by the owner
info get multisig account info
unspent get assets unspent today amount
weight Create a modify required weight transaction
owner
cli multisig owner
Available Commands:
add Create a add owner transaction
del Create a del owner transaction
modify Create a modify owner weight transaction
replace Create a replace owner transaction
tx
cli multisig tx
Available Commands:
confirm Create a confirm transaction
confirmed_weight get the weight of the transaction confirmed.
count get multisig tx count
info get multisig account tx info
transfer_in Create a transfer to multisig account transaction
transfer_out Create a transfer from multisig account transaction
txids get multisig txids
1. 创建多重签名账户:根据txhash生成一个多重签名账户地址multisig-addr
cli send multisig account create -d 10 -e coins -s BTY -a "owner-1 owner-2" -w "20 10" -r 15 -k private-key
2. 查看创建的账户个数:
cli multisig account count
3. 通过账户index获取多重签名账户地址
cli multisig account address -e 0 -s 0
4. 通过多重签名账户addr获取账户详情
cli multisig account info -a multisig-addr
5. 向multisig合约中转账
cli send bty transfer -a 50 -n test -t multisig-exec-addr -k addr3
6. 在multisig合约中转账到多重签名地址
cli send multisig tx transfer_in -a 40 -e coins -s BTY -t multisig-addr -n test -k addr3
7. 查看多重签名地址资产
cli multisig account assets -a multisig-addr
8. 在multisig合约中从多重签名地址转出
cli send multisig tx transfer_out -a 11 -e coins -s BTY -f multisig-addr -t addr3 -n test -k owner-1
9. 查询交易计数
cli multisig tx count -a multisig-addr
10. 查询交易txid
cli multisig tx txids -a multisig-addr -s 0 -e 0
11. 查询交易信息
cli multisig tx info -a multisig-addr -i 0
12. 多重签名账户add 一个新的owner-3
cli send multisig owner add -a multisig-addr -o owner-3 -w 5 -k owner-1
13. 多重签名账户del已存在的owner-3
cli send multisig owner del -a multisig-addr -o owner-3 -k owner-1
14. 多重签名账户replace已存在的owner-2,用owner-4
cli send multisig owner replace -a multisig-addr -n owner-4 -o owner-2 -k owner-1
15. 多重签名账户modify 已存在owner-4的权重值
cli send multisig owner modify -a multisig-addr -o owner-4 -w 11 -k owner-1
16. 多重签名账户modify每日限额dailylimit
cli send multisig account dailylimit -a multisig-addr -e coins -s BTY -d 12 -k owner-1
17. 多重签名账户modify请求weight
cli send multisig account weight -a multisig-addr -w 16 -k owner-1
18. 多重签名账户撤销对某笔交易的确认
cli send multisig tx confirm -a multisig-addr -i 8 -c f -k owner-1
19. 多重签名账户确认某笔交易
cli send multisig tx confirm -a multisig-addr -i 8 -k owner-1
20. 获取指定地址创建的所有多重签名账户
cli multisig account creator -a addr
21. 获取指定账户上指定资产的每日余额
cli multisig account unspent -a multisig-addr -e coins -s BTY
22. 获取owner拥有的所有多重签名地址,不指定地址时返回的是本钱包拥有的所有多重签名地址
cli multisig account owner -a 166po3ghRbRu53hu8jBBQzddp7kUJ9Ynyf
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"multisig.MultiSigAccCreateTx",
"params":[
{
"owners":[{"ownerAddr":"string","weight":uint64}],
"RequiredWeight":uint64,
"dailyLimit":{"symbol":"string","execer":"string","dailyLimit":uint64}
}
]
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
owners | []*Owner | owner数组(ownerAddr:string,weight:uint64),最少2个owner |
requiredWeight | uint64 | 交易被执行的请求权重值,此值不能大于所有owner权重的总和 |
dailyLimit | *SymbolDailyLimit | 资产的每日限额值(execer:string,symbol:string,dailyLimit:uint64) |
响应报文:
{
"id":int32,
"error":null,
"result":"string"
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
result | string | 返回交易十六进制编码后的字符串 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"multisig.MultiSigAccOperateTx",
"params":[
{
"multiSigAccAddr":string,
"newRequiredWeight":uint64,
"operateFlag":bool
}
]
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
multiSigAccAddr | string | 多重签名账户地址 |
newRequiredWeight | uint64 | 新的请求权重值 |
operateFlag | bool | account账户操作类型:true 修改RequiredWeight值 |
dailyLimit | *SymbolDailyLimit | 资产的每日限额值(execer:string,symbol:string,dailyLimit:uint64) |
响应报文:
{
"id":int32,
"error":null,
"result":"string"
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
result | string | 返回交易十六进制编码后的字符串 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"multisig.MultiSigAccOperateTx",
"params":[
{
"multiSigAccAddr":"string",
"dailyLimit":{"symbol":"string","execer":"string","dailyLimit":uint64},
"operateFlag":bool
}
]
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
multiSigAccAddr | string | 多重签名账户地址 |
dailyLimit | *SymbolDailyLimit | 资产的每日限额值(execer:string,symbol:string,dailyLimit:uint64) |
operateFlag | bool | account账户操作类型:false 修改DailyLimit值 |
newRequiredWeight | uint64 | 新的请求权重值 |
响应报文:
{
"id":int32,
"error":null,
"result":"string"
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
result | string | 返回交易十六进制编码后的字符串 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"Chain33.Query",
"params":[
{
"execer":"multisig",
"funcName":"MultiSigAccCount",
"payload":nil
}
]
}
参数说明:
参数 | 类型 | 说明 |
---|
响应报文:
{
"id" : int32,
"result" : {"data" : int64},
"error" : null
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
data | int64 | 多重签名账户个数 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"Chain33.Query",
"params":[
{
"execer" : "multisig",
"funcName" : "MultiSigAccounts",
"payload" : {"start":int64,"end":int64}
}
]
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
start | int64 | 多重签名账户index索引,从0开始 |
end | int64 | 多重签名账户index索引,end>=start && end< MultiSigAccCount获取的值 |
响应报文:
{
"id":int32,
"result" : {
"address": ["string"]
},
"error" : null
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
address | []string | 多重签名账户地址列表 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"Chain33.Query",
"params":[
{
"execer" : "multisig",
"funcName" : "MultiSigAccountInfo",
"payload" : {"multiSigAccAddr":string}
}
]
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
multiSigAccAddr | string | 多重签名账户地址 |
响应报文:
{
"id":int32,
"result" : {
"createAddr": "1DkrXbz2bK6XMpY4v9z2YUnhwWTXT6V5jd",
"multiSigAddr": "3GfnDQxxUEmVrkBCk7RfgvTkLrBLEVEzGV",
"owners": [
{
"ownerAddr": "1C5xK2ytuoFqxmVGMcyz9XFKFWcDA8T3rK",
"weight": 20
}
],
"dailyLimits": [
{
"symbol": "BTY",
"execer": "coins",
"dailyLimit": uint64,
"spentToday": uint64,
"lastday": int64
}
],
"txCount": 1,
"requiredWeight": 15
},
"error" : null
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
createAddr | string | 创建本多重签名账户的创建者地址 |
multiSigAddr | string | 本多重签名账户地址 |
ownerAddr | string | owner地址 |
weight | uint64 | owner权重 |
execer | string | 资产执行器名 |
symbol | string | 资产标识 |
dailyLimit | uint64 | 本资产的每日限额值 |
spentToday | uint64 | 当天已经花费的资产值 |
lastDay | int64 | 当天开始时间 |
txCount | uint64 | 本多重签名账户上的交易数量 |
requiredWeight | uint64 | 本多重签名账户执行交易需要的权重 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"Chain33.Query",
"params":[
{
"execer" : "multisig",
"funcName" : "MultiSigAccUnSpentToday",
"payload" : {
"multiSigAddr":string,
"assets":{"execer":string,"symbol":string},
"isAll":bool
}
}
]
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
multiSigAddr | string | 多重签名账户地址 |
assets | *Assets | 资产信息("execer":string,"symbol":string) |
isAll | bool | 是否所有资产,true:所有资产,false:只查询指定资产的 |
响应报文:
{
"id":int32,
"result" : {
"unSpentAssets":[
{
"assets":{"symbol": "BTY","execer": "coins"},
"amount": uint64
}
]
},
"error" : null
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
execer | string | 本多重签名账户资产执行器名 |
symbol | string | 本多重签名账户资产标识 |
amount | uint64 | 本多重签名账户指定资产当日免密余额 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"Chain33.Query",
"params":[
{
"execer" : "multisig",
"funcName" : "MultiSigAccAssets",
"payload" : {
"multiSigAddr":string,
"assets":{"execer":string,"symbol":string},
"isAll":bool
}
}
]
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
multiSigAddr | string | 多重签名账户地址 |
assets | *Assets | 资产信息("execer":string,"symbol":string) |
isAll | bool | 是否所有资产,true:所有资产时不需要填写具体的assets信息,false:只查询指定资产的信息 |
响应报文:
{
"id":int32,
"result" : {
"accAssets":[
{
"assets":{"execer":"coins","symbol":"BTY"},
"account": {
"frozen":int64,
"currency":int32,
"balance":int64,
"addr":string
},
"recvAmount": uint64
}
]
},
"error" : null
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
execer | string | 资产执行器名 |
symbol | string | 资产标识 |
frozen | int64 | 冻结的资产 |
currency | int32 | coins标识,目前没有使用 |
balance | int64 | 余额 |
addr | string | 查询的账户地址 |
recvAmount | uint64 | 查询账户收到此资产的所有值 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"Chain33.Query",
"params":[
{
"execer" : "multisig",
"funcName" : "MultiSigAccAllAddress",
"payload" : {"multiSigAccAddr":"string"}
}
]
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
multiSigAccAddr | string | 创建者地址 |
响应报文:
{
"id":int32,
"result":{
"address": ["string"]
},
"error":null
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
address | string | 多重签名账户地址列表 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"multisig.MultiSigAddresList",
"params":[{"data":"string"}]
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
data | string | owner地址,不指定地址时获取本钱包所有地址拥有的多重签名账户列表: |
响应报文:
{
"id":int32,
"result" : {
"items": [
{
"multiSigAddr": "3MrcA7jcWNdLYmrbuS5eEVoPbx8BWPGB5F",
"ownerAddr": "1C5xK2ytuoFqxmVGMcyz9XFKFWcDA8T3rK",
"weight": 20
}
]
},
"error" : null
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
multiSigAddr | string | 多重签名地址 |
ownerAddr | string | owner地址地址, 或者空字符串"" |
weight | uint64 | owner地址在此多重签名账户中的权重 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"multisig.MultiSigOwnerOperateTx",
"params":[
{
"multiSigAccAddr":"string",
"newOwner":"string",
"newWeight":uint64,
"operateFlag":uint64
}
]
}
参数说明:
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
multiSigAccAddr | string | 是 | 多重签名账户地址 |
newOwner | string | 是 | 需要添加的owner地址 |
newWeight | uint64 | 是 | 需要添加的owner拥有的权重 |
operateFlag | uint64 | 是 | owner操作类型:1 |
oldOwner | string | 否 | 需要删除的owner地址,在该场景中忽略不填 |
响应报文:
{
"id":int32,
"result":"string",
"error":null
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
result | string | 返回交易十六进制编码后的字符串 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"multisig.MultiSigOwnerOperateTx",
"params":[
{
"multiSigAccAddr":"string",
"oldOwner":"string",
"operateFlag":uint64
}
]
}
参数说明:
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
multiSigAccAddr | string | 是 | 多重签名账户地址 |
newOwner | string | 否 | 需要添加的owner地址,在该场景中忽略不填 |
newWeight | uint64 | 否 | 需要添加的owner拥有的权重,在该场景中忽略不填 |
operateFlag | uint64 | 是 | owner操作类型:1 |
oldOwner | string | 是 | 需要删除的owner地址 |
响应报文:
{
"id":int32,
"result":"string",
"error":null
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
result | string | 返回交易十六进制编码后的字符串 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"multisig.MultiSigOwnerOperateTx",
"params":[
{
"multiSigAccAddr":"string",
"oldOwner":"string",
"newWeight":uint64,
"operateFlag":uint64
}
]
}
参数说明:
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
multiSigAccAddr | string | 是 | 多重签名账户地址 |
newOwner | string | 否 | 需要添加的owner地址,在该场景中忽略不填 |
newWeight | uint64 | 否 | 需要添加的owner拥有的权重 |
operateFlag | uint64 | 是 | owner操作类型:3 |
oldOwner | string | 是 | 需要删除的owner地址 |
响应报文:
{
"id":int32,
"result":"string",
"error":null
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
result | string | 返回交易十六进制编码后的字符串 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"multisig.MultiSigOwnerOperateTx",
"params":[
{
"multiSigAccAddr":"string",
"oldOwner":"string",
"newOwner":"string",
"operateFlag":uint64
}
]
}
参数说明:
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
multiSigAccAddr | string | 是 | 多重签名账户地址 |
newOwner | string | 是 | 新的owner地址 |
newWeight | uint64 | 否 | 需要添加的owner拥有的权重,在该场景中忽略不填 |
operateFlag | uint64 | 是 | owner操作类型:4 |
oldOwner | string | 是 | 需要删除的owner地址 |
响应报文:
{
"id":int32,
"result":"string",
"error":null
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
result | string | 返回交易十六进制编码后的字符串 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"multisig.MultiSigAccTransferInTx",
"params":[
{
"symbol":"string",
"execname":"string",
"note":"string",
"to":"string",
"amount":int64
}
]
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
symbol | string | 资产标识,例如:BTY |
execname | string | 资产执行器名,例如:coins |
to | string | 收账地址,必须是多重签名地址 |
note | string | 转账说明 |
amount | int64 | 转入的资产额度 |
响应报文:
{
"id":int32,
"result":"string",
"error":null
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
result | string | 返回交易十六进制编码后的字符串 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"multisig.MultiSigAccTransferOutTx",
"params":[
{
"symbol":"string",
"execname":"string",
"note":"string",
"to":"string",
"from":"string",
"amount":int64
}
]
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
symbol | string | 资产标识,例如:BTY |
execname | string | 资产执行器名,例如:coins |
from | string | 出账地址,必须是多重签名地址 |
to | string | 收账地址,必须是非多重签名地址 |
note | string | 转账说明 |
amount | int64 | 转入的资产额度 |
响应报文:
{
"id":int32,
"result":"string",
"error":null
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
result | string | 返回交易十六进制编码后的字符串 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"multisig.MultiSigConfirmTx",
"params":[
{
"multiSigAccAddr":"string",
"txId":uint64,
"confirmOrRevoke":bool
}
]
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
multiSigAccAddr | string | 多重签名地址 |
txId | uint64 | 需要确认或者撤销的交易index,从0开始 |
confirmOrRevoke | bool | 确认/撤销交易。true:确认交易 |
响应报文:
{
"id":int32,
"result":"string",
"error":null
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
result | string | 返回交易十六进制编码后的字符串 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"Chain33.Query",
"params":[
{
"execer" : "multisig",
"funcName" : "MultiSigAccTxCount",
"payload" : {"multiSigAccAddr":"string"}
}
]
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
multiSigAccAddr | string | 多重签名账户地址 |
响应报文:
{
"id":int32,
"error":null,
"result":{"data":int64}
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
data | int64 | 多重签名账户地址个数 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"Chain33.Query",
"params":[
{
"execer" : "multisig",
"funcName" : "MultiSigTxids",
"payload" :{
"multiSigAddr":"string",
"fromTxId":uint64,
"toTxId":uint64,
"pending":bool,
"executed":bool
}
}
]
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
multiSigAddr | string | 多重签名账户地址 |
fromTxId | uint64 | 多重签名账户交易索引值,fromTxId>=0 |
toTxId | uint64 | 多重签名账户交易索引,toTxId< MultiSigAccTxCount 获取的交易数 |
pending | bool | 未执行的交易 |
executed | bool | 已执行的交易 |
响应报文:
{
"id":int32,
"result" :{
"multiSigAddr": "3GfnDQxxUEmVrkBCk7RfgvTkLrBLEVEzGV",
"txids": [0,1]
},
"error" : null
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
txids | []uint64 | 多重签名账户交易索引 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"Chain33.Query",
"params":[
{
"execer" : "multisig",
"funcName" : "MultiSigTxInfo",
"payload" : {"multiSigAddr":string,"txId":uint64}
}
]
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
multiSigAddr | string | 多重签名账户地址 |
txId | uint64 | 多重签名账户交易索引值,fromTxId>=0 |
响应报文:
{
"id":int32,
"result" {
"txid":uint64,
"txHash": "d952237fd9a825218b767058946a1047dbdbe166c74e274792d341e81088fbc4",
"executed": true,
"txType": 3,
"multiSigAddr": "3GfnDQxxUEmVrkBCk7RfgvTkLrBLEVEzGV",
"confirmedOwner": [
{
"ownerAddr": "1C5xK2ytuoFqxmVGMcyz9XFKFWcDA8T3rK",
"weight": 20
}
]
},
"error" : null
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
txId | uint64 | 多重签名账户交易id值 |
txHash | string | 多重签名账户交易hash值 |
executed | bool | 多重签名账户交易执行状态,true:已执行,false:未执行 |
txType | uint64 | 多重签名账户交易类型。1:owner属性相关的交易 2:account属性相关的交易 3:转账相关的交易 |
multiSigAddr | string | 多重签名账户地址 |
confirmedOwner | []*Owner | 确认此多重签名账户交易的owner列表 |
ownerAddr | string | 多重签名账户owner地址 |
weight | uint64 | 多重签名账户owner权重 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"Chain33.Query",
"params":[
{
"execer" : "multisig",
"funcName" : "MultiSigTxConfirmedWeight",
"payload" : {"multiSigAddr":"string",txId":uint64}
}
]
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
multiSigAddr | string | 多重签名账户地址 |
txId | uint64 | 多重签名账户交易索引值,0 <= fromTxId < MultiSigAccTxCount 获取的交易数 |
响应报文:
{
"id":int32,
"result" :{
"data": uint64
},
"error" : null
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
data | uint64 | 多重签名账户交易被确认的权重 |
hello world