**版本：V6.2.0**
# 部分模块使用流程

# hashlock 哈希锁定合约  
`cli hashlock -h `
```
Available Commands:
  lock        Create hashlock lock transaction
  send        Create hashlock send transaction
  unlock      Create hashlock unlock transaction
```


## 合约操作流程 

Hashlock正常流程，完整过程：

1. 需要准备两个账户A和B，其中：  
A是returnAddr,用于在锁定时间结束后，可以返回余额；  
B是toAddr，在锁定时间内，能够进行操作转移金额。  
这里  
A：1KVtEMhwaJqVE4nQEhdfxNkMPXFhRtEZd3      
B：1LgiDySWZBGGcR4njtsXbWpJ6AS2R9cdwW  
B地址需要小额BTY作为手续费  

2. hashlock要求在lock动作时，合约里存在余额，这些余额在lock后会被frozen  
`cli coins send_exec -a 500 -e hashlock`    
由A签名并发送   
查询A地址各合约余额    
`cli account balance -a 1KVtEMhwaJqVE4nQEhdfxNkMPXFhRtEZd3`  
```
{
    "addr": "1KVtEMhwaJqVE4nQEhdfxNkMPXFhRtEZd3",
    "execAccount": [
        {
            "execer": "coins",
            "account": {
                "balance": "499.9990",
                "frozen": "0.0000"
            }
        },
        {
            "execer": "hashlock",
            "account": {
                "balance": "500.0000",
                "frozen": "0.0000"
            }
        }
    ]
}
```


3. lock操作  
`cli hashlock lock -a 500 -d 360 -r 1KVtEMhwaJqVE4nQEhdfxNkMPXFhRtEZd3 -t 1LgiDySWZBGGcR4njtsXbWpJ6AS2R9cdwW -s mysecret`  
-d为lock周期，只有在此时间内，才能成功进行send，超出这个周期只能进行unlock操作；  
-s为唯一标识，目前的标识在使用过一次以后无法再次使用。  
**returnAddr需与签名地址一致。**  
由**A签名**并发送  
查询A地址合约余额：  
`cli account balance -a 1KVtEMhwaJqVE4nQEhdfxNkMPXFhRtEZd3`  
```
{
    "addr": "1KVtEMhwaJqVE4nQEhdfxNkMPXFhRtEZd3",
    "execAccount": [
        {
            "execer": "coins",
            "account": {
                "balance": "499.9980",
                "frozen": "0.0000"
            }
        },
        {
            "execer": "hashlock",
            "account": {
                "balance": "0.0000",
                "frozen": "500.0000"
            }
        }
    ]
}
```
hashlock的500已被冻结。  

4. send操作  
`cli hashlock send -s mysecret`  
-s的标识需与lock时的一致。  
由**B签名**并发送。  
查询B地址各合约余额：  
`cli account balance -a 1LgiDySWZBGGcR4njtsXbWpJ6AS2R9cdwW`  
```
{
    "addr": "1LgiDySWZBGGcR4njtsXbWpJ6AS2R9cdwW",
    "execAccount": [
        {
            "execer": "coins",
            "account": {
                "balance": "0.9990",
                "frozen": "0.0000"
            }
        },
        {
            "execer": "hashlock",
            "account": {
                "balance": "500.0000",
                "frozen": "0.0000"
            }
        }
    ]
}
```
hashlock的500已转移至B地址的hashlock合约中。  

5. 取回，从hashlock合约取钱  
`cli coins withdraw -a 500 -e hashlock`  
由**B签名**并发送。  
查询B地址余额：  
`cli account balance -a 1LgiDySWZBGGcR4njtsXbWpJ6AS2R9cdwW`  
```
{
    "addr": "1LgiDySWZBGGcR4njtsXbWpJ6AS2R9cdwW",
    "execAccount": [
        {
            "execer": "coins",
            "account": {
                "balance": "500.9980",
                "frozen": "0.0000"
            }
        }
    ]
}
```
500已被取回B地址coins中。  



附：
unlock操作，在lock动作后，超过设定时间，可以进行unlock操作。  
unlock后，余额在**A账户**，解除冻结状态，可以由**A取回**。  
`cli hashlock unlock -s mysecret`

# retrieve 钱包找回合约
## 合约功能概述

私钥是花费数字加密货币的唯一手段， 一旦出现丢失的情况，个人财产将无法找回。  
目前，主流数字货币本地钱包均实现通过SEED找回私钥的功能，但应用场景局限，仍然存在很大改进空间。  
钱包/私钥找回功能为Chain33项目提供一种技术支持，通过实现多权限等级私钥，在保证安全的前提下，为数字加密货币的花费、找回增加灵活性。

## 合约方法描述 
钱包/私钥找回功能的实现并不是真正通过某种方式找回丢失的私钥，而是为默认私钥**备份**一个或一组私钥，当默认私钥丢失时，可以通过备份私钥花费之前备份的余额。  

要使用备份私钥找回余额，必须之前用默认私钥做过备份，在备份时，账户余额打入相应的retrieve合约地址。
当用户需要用备份私钥花费余额时，先进行prepare操作，这一步操作是为了防止备份私钥被盗的情形。经过此操作，账户余额与合约余额均不改变，只是通知网络，有一笔用私钥签名的操作发生，在一定的周期延时后，此备份私钥可以通过perform操作，将合约地址余额打入到自己合约地址，并后续进行取钱操作。
如果在这个阶段中，默认私钥执行了cancel操作，说明此次取回无效，即使到达限定周期，备份私钥也无法取钱。  

整个功能的状态机如下图所示，在backup和prepare状态，余额存在默认私钥对应的合约账户中，只有在成功执行perform操作时，余额才转移到备份私钥对应的合约账户，并可以进行下一步的取回到账户的操作。  
默认私钥和备份私钥不是一对一的关系，一个默认私钥可以设置多个备份私钥，这些私钥在进行prepare操作以后，能够执行perform的延迟周期不同。  
另外，多个默认私钥可以使用同一个备份私钥地址，这是通过内部关联实现的，当一组备份关系建立时，为这两个私钥建立关联，一旦最终进入performed或canceled状态，关联取消。  
![状态机](https://gitlab.33.cn/flyaway53/test/raw/master/img-folder/14.png)   

## 合约操作流程 
`cli retrieve -h`  
```
Available Commands:
  backup      Backup the wallet
  cancel      Cancel the retrieve
  perform     Perform the retrieve
  prepare     Prepare the wallet
  query       Backup the wallet
```

1. 需要准备两个账户A和B，B是A的备份  
我这里  
A:1QBKkYr2fH6JqDGBydmKUCEAJ2ZWXFkKyT  
B:1Jg2UVwRxpx6t1L5pjnqnwmZvteRpWxp5U  
B地址需要小额BTY作为操作手续费。  

2. 为了使最后retrieve能够看到效果，需要由A账户先打点钱进retrieve合约  
`cli coins send_exec -a 100 -e retrieve`  
由**A签名**并发送

3. backup操作  
`cli retrieve backup -b 1Jg2UVwRxpx6t1L5pjnqnwmZvteRpWxp5U -t 1QBKkYr2fH6JqDGBydmKUCEAJ2ZWXFkKyT -d 61`   
由**A签名**并发送  
-b为备份地址，-t为原始地址，-d为指定的prepare以后多久能够进行perform操作，最少是60s。所以为了保证perform能够成功，需要在prepare以后等待一下再perform。  
查询retrieve状态：  
`cli retrieve query -b 1Jg2UVwRxpx6t1L5pjnqnwmZvteRpWxp5U -t 1QBKkYr2fH6JqDGBydmKUCEAJ2ZWXFkKyT`  
```
{
    "delayPeriod": 61,
    "status": "backup"
}
```

4. prepare操作  
`cli retrieve prepare -b 1Jg2UVwRxpx6t1L5pjnqnwmZvteRpWxp5U -t 1QBKkYr2fH6JqDGBydmKUCEAJ2ZWXFkKyT`  
由**B签名**并发送  
查询retrieve状态：  
`cli retrieve query -b 1Jg2UVwRxpx6t1L5pjnqnwmZvteRpWxp5U -t 1QBKkYr2fH6JqDGBydmKUCEAJ2ZWXFkKyT`   
```
{
    "delayPeriod": 61,
    "status": "prepared"
}
```
查询A地址retrieve中余额：  
`cli account balance -a 1QBKkYr2fH6JqDGBydmKUCEAJ2ZWXFkKyT`  
```
{
    "addr": "1QBKkYr2fH6JqDGBydmKUCEAJ2ZWXFkKyT",
    "execAccount": [
        {
            "execer": "coins",
            "account": {
                "balance": "899.9980",
                "frozen": "0.0000"
            }
        },
        {
            "execer": "retrieve",
            "account": {
                "balance": "100.0000",
                "frozen": "0.0000"
            }
        }
    ]
}
```



5. perform操作  
`cli retrieve perform -b 1Jg2UVwRxpx6t1L5pjnqnwmZvteRpWxp5U -t 1QBKkYr2fH6JqDGBydmKUCEAJ2ZWXFkKyT`    
由**B签名**并发送  
查询retrieve状态：  
`cli retrieve query -b 1Jg2UVwRxpx6t1L5pjnqnwmZvteRpWxp5U -t 1QBKkYr2fH6JqDGBydmKUCEAJ2ZWXFkKyT`   
```
{
    "delayPeriod": 61,
    "status": "performed"
}
```
查询B地址retrieve中余额：  
`cli account balance -a 1Jg2UVwRxpx6t1L5pjnqnwmZvteRpWxp5U`   
```
{
    "addr": "1Jg2UVwRxpx6t1L5pjnqnwmZvteRpWxp5U",
    "execAccount": [
        {
            "execer": "coins",
            "account": {
                "balance": "999.9980",
                "frozen": "0.0000"
            }
        },
        {
            "execer": "retrieve",
            "account": {
                "balance": "100.0000",
                "frozen": "0.0000"
            }
        }
    ]
}
```
A地址retrieve合约中的的部分已经取回到B地址的retrieve合约中。  

6. 取回，从retrieve合约取钱  
`cli coins withdraw -a 100 -e retrieve`  
由**B签名**并发送

# tx group 构建交易组  
即原子交易，将多个交易捆绑，若其中有任意一笔交易失败，则整个交易组所有交易失败。   
交易手续费由第一笔的交易的地址统一扣除。  

## 具体操作流程  
- 首先构建多个交易   
 
`cli coins transfer -t 地址A`  

```
返回字符串A1
```

`cli coins transfer -t 地址B`  

```
返回字符串A2
```

- 将两个交易组成交易组  
 
`cli coins txgroup -t "字符串A1 字符串A2"`  

```
返回字符串A3
```

- 签名，需根据index指定签名  

`cli wallet sign -d 字符串A3 -i 1 -a 签名地址`  

```
返回字符串A4
```

`cli wallet sign -d 字符串A4 -i 2 -a 签名地址` 

```
返回字符串A5
```

※ 若-i指定为0，则对该交易组中所有交易签名

- 发送交易  
 
`cli wallet send -d 字符串A5`

- Nobalance交易  

wallet中提供nobalance交易，即构造了一笔没有实际价值的交易，仅作为交易组首笔交易，为后续交易提供手续费。   
`cli wallet nolanace -h`    
```
Flags:
  -d, --data string      raw transaction data
  -e, --expire string    transaction expire time (default "120s")
  -h, --help             help for nobalance
  -k, --key string       private key of pay fee account (optional)
  -a, --payaddr string   account address of pay fee (optional)
```

目前仅支持对单笔交易构造nobalance交易。  
即对返回的A1字符串构造并签名nobalance交易：  
`cli wallet nobalance -d 字符串A1 -k 签名私钥`  
```
返回字符串A6
```

再对A6进行签名  
`cli wallet sign -d 字符串A6 -i 2 -k 签名私钥`  
后续再发送交易即可。

# multisig 多重签名合约
## 合约基本功能  
创建一个多重签名的账户，并指定owner以及其权重；  
账户属性交易包括：  
- owner的add/del/modify/replace  
- 资产每日限额的修改  
- 请求权重的修改  
账户属性的修改都是一个交易，需要满足权重的要求才能被执行。

账户交易的确认和撤销：  
当交易提交者的权重不能满足权重要求时，需要其余的owner来一起确认。  
owner可以撤销自己对某笔交易的确认，但此交易必须是没有被执行。已执行的不应许撤销。  

多重签名账户的转入和转出：  
转入时，to地址必须是多重签名地址，from地址必须是非多重签名地址；  
转出时，from地址必须是多重签名地址，to地址必须是非多重签名地址； 转出交易需要校验权重。 
*** 

## 合约操作流程  
- 准备阶段  
准备5个地址  
"18jUpfSuYCk2iQu8ZqB3d6hNWNWA4ty3Xs" xs0  
"1KoiQmaFg3DoZr84JehxrEWiR7SorSgbUx" xs1  
"1KbM8ewfmNzsp1j3GHKz5tGn28ouaAGZAG" xs2  
"17mFjHjMHdtTU31QhFsLGcjNWxvGaVZcPH" xs3  
"1JeVN3q938vx8Pqcg7Kodmih8sWT5eQHHs" xs4  
分别打入1000BTY后，转入500BTY进入多重签名合约。   
`cli coins transfer -a 1000 -t 地址`   
`cli coins send_exec -a 500 -e multisig`   
***
- cli命令概览   

`cli multisig -h`    
```
Available Commands:
  account     multisig account
  owner       multisig owner
  tx          multisig tx
```
cli命令分为三大块，分别为账户、拥有者、交易。  

`cli multisig account -h`   
```
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
  info        get multisig account info
  owner       get multisig accounts by the owner
  unspent     get assets unspent today amount
  weight      Create a modify required weight transaction
```
***
`cli multisig owner -h`   
```
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
```
***
`cli multisig tx -h`  
```
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
```
***
- 创建多重签名地址  

`cli multisig account create -h`  
```
Flags:
  -d, --daily_limit float      daily_limit of assets
  -e, --execer string          assets execer name
  -h, --help                   help for create
  -a, --owners_addr string     address of owners,separated by '-', addr0-addr1-addr2...
  -w, --owners_weight string   weight of owners,separated by '-', w0-w1-w2..., uint64 type
  -r, --required_weight uint   required weight of account execute tx
  -s, --symbol string          assets symbol
```
由xs0创建一个多重签名地址，参与者为xs1和xs2：    
`cli multisig account create -d 5 -e coins -a 1KoiQmaFg3DoZr84JehxrEWiR7SorSgbUx-1KbM8ewfmNzsp1j3GHKz5tGn28ouaAGZAG -w 20-10 -r 15 -s BTY`  
由**xs0**地址签名并发送    
-d为每日交易限额，低于该限额的转账无需达到权重签名；  
-e指定了具体合约，目前支持coins、token、paracross合约；  
-a为该多重签名地址设置的拥有者地址，地址间以-分隔；  
-w为该多重签名地址各拥有者的权重，为正整数，以-分隔；  
-r为该多重签名地址设置的交易所需的权重值，为正整数；  
-s为该多重签名支持的代币名。  

***
- 查询指定地址创建的所有多重签名账户  

`cli multisig account creator -a "18jUpfSuYCk2iQu8ZqB3d6hNWNWA4ty3Xs"`   
```
{
    "address": [
        "3Ko3NXqnc7HbKVzX7CmHh1hxaT2HyyGb6k",
        "3N6xUeeo2CghiYhGZNeVfGs4ZVU7Q23WQj",
        "35bZddFf69H8h4Ww7BnZWsPtWETu5MHyBQ",
        "3AAmTZighdcpputVjXTeTL7co27vfVyBLy",
        "3N1AzFYq4Q3toT2BAYyizpb3FuXr2xyjVH",
        "33YP9MzzMzasTe256zfKuWd7doDEX9k25C",
        "3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7",
        "3Mp38WrtHG5hPskxBeUFzuuG9x7uVWTfrH"
    ]
}
```
该地址创建的所有多重签名地址按创建先后列表；  
多重签名地址的规则与普通地址不同，为3开头的地址。  
***
- 对指定多重签名地址增加拥有者  
为多重签名地址3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7增加拥有者xs3，权重为6；  
`cli multisig owner add -a 3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7 -w 6 -o 17mFjHjMHdtTU31QhFsLGcjNWxvGaVZcPH`  
用xs1签名并发送，因xs1地址权重为20超过需要的15，因此不需要其他人继续签名即可成功。  

- 对指定多重签名地址删除拥有者  
`cli multisig owner del -a 3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7 -o 17mFjHjMHdtTU31QhFsLGcjNWxvGaVZcPH`  
用xs1签名并发送。  

- 修改指定多重签名地址指定拥有者的权重   
`cli multisig owner modify  -a 3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7 -o 17mFjHjMHdtTU31QhFsLGcjNWxvGaVZcPH -w 7`  
用xs1签名并发送。  

- 修改指定多重签名地址的指定拥有者  
`cli multisig owner replace -a 3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7 -o 17mFjHjMHdtTU31QhFsLGcjNWxvGaVZcPH -n 1JeVN3q938vx8Pqcg7Kodmih8sWT5eQHHs`  
用xs1签名并发送。  
-n后为修改后的地址。  

  
***
- 查询指定多重签名地址的相关信息  

`cli multisig account info -a 3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7`  
```
{
    "createAddr": "18jUpfSuYCk2iQu8ZqB3d6hNWNWA4ty3Xs",
    "multiSigAddr": "3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7",
    "owners": [
        {
            "ownerAddr": "1KoiQmaFg3DoZr84JehxrEWiR7SorSgbUx",
            "weight": 20
        },
        {
            "ownerAddr": "1KbM8ewfmNzsp1j3GHKz5tGn28ouaAGZAG",
            "weight": 10
        },
        {
            "ownerAddr": "17mFjHjMHdtTU31QhFsLGcjNWxvGaVZcPH",
            "weight": 6
        }
    ],
    "dailyLimits": [
        {
            "symbol": "BTY",
            "execer": "coins",
            "dailyLimit": "5.0000",
            "spent": "0.0000",
            "lastday": "2019-07-24 10:49:59"
        }
    ],
    "txCount": 1,
    "requiredWeight": 15
}
```
***
- 根据索引查询全合约下的多重签名地址  

`cli multisig account address -e 9 -s 8`  
```
{
    "address": [
        "3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7",
        "3Mp38WrtHG5hPskxBeUFzuuG9x7uVWTfrH"
    ]
}
```
***
- 使用多重签名地址转账

1.向多重签名地址转入代币
先向多重签名地址3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7中转入BTY，需要从multisig合约中有BTY的地址转出，指定xs4转出：  
`cli multisig tx transfer_in -a 100 -e coins -s BTY -t 3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7 -n test `  
由xs4签名并发送。  
查询3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7地址余额：  
`cli account balance -a 3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7`  
```
{
    "addr": "3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7",
    "execAccount": [
        {
            "execer": "multisig",
            "account": {
                "balance": "0.0000",
                "frozen": "100.0000"
            }
        }
    ]
}
```

可以看到该地址的多重签名合约中有了刚转入的100BTY，并被冻结。  
※多重签名地址没有私钥，向该地址的其他合约地址转入的代币无法被取出。  

2.低于每日限额的低权重转出代币  
使用权重为10的xs2地址转出3个BTY, 转入地址xs4：   
`cli multisig tx transfer_out -a 3 -e coins -s BTY -f 3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7 -t 1JeVN3q938vx8Pqcg7Kodmih8sWT5eQHHs`   
因其低于每日限额，无需达到权重即可出币；  
每日限额为24小时累计。  
查询指定账户上指定资产的每日余额：  
`cli multisig account unspent -a 3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7 -e coins -s BTY`  
```
[
    {
        "symbol": "BTY",
        "execer": "coins",
        "unspent": "2.0000"
    }
]
```
初始设定为5，消耗3后，剩余为2。   

3.超过每日限额的低权重转出代币  
使用权重为10的xs2地址转出10个BTY，转入地址xs4：  
`cli multisig tx transfer_out -a 10 -e coins -s BTY -f 3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7 -t 1JeVN3q938vx8Pqcg7Kodmih8sWT5eQHHs`

获取该多重签名地址下的所有交易计数：  
`cli multisig tx count -a 3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7`  
```
{
    "data": 3
}
```
通过交易计数查询等待签名的交易索引：  
`cli multisig tx txids -a 3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7 -s 0 -e 2 -x f`  
```
{
    "multiSigAddr": "3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7",
    "txids": [
        2
    ]
}
```
-x为是否已成功执行的选项，默认不填为true；  
-p为是否等待的选项，默认不填为true；  
两者可根据需要选填。   
***
- 通过索引查询指定交易的状态： 

`cli multisig tx info -a 3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7 -i 2`  
```
{
    "txid": 2,
    "txHash": "0x00ad8c8548c231b6d03c353cff3081f9684601fb6769a5e3dc5dec9aff8a9047",
    "txType": 3,
    "multiSigAddr": "3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7",
    "confirmedOwner": [
        {
            "ownerAddr": "1KbM8ewfmNzsp1j3GHKz5tGn28ouaAGZAG",
            "weight": 10
        }
    ]
}
```

- 使用xs3的6权重为该交易确认/撤销：  

`cli send multisig tx confirm -a 3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7 -c t -i 2 `  
由xs3签名并发送。  
-c后为确认交易或撤销交易，默认为t为确认交易；设置为f即为撤销交易，需已确认且交易未完成。  

- 再次查询该交易的状态：  

`cli multisig tx info -a 3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7 -i 2`  
```
{
    "txid": 2,
    "txHash": "0x00ad8c8548c231b6d03c353cff3081f9684601fb6769a5e3dc5dec9aff8a9047",
    "executed": true,
    "txType": 3,
    "multiSigAddr": "3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7",
    "confirmedOwner": [
        {
            "ownerAddr": "1KbM8ewfmNzsp1j3GHKz5tGn28ouaAGZAG",
            "weight": 10
        },
        {
            "ownerAddr": "17mFjHjMHdtTU31QhFsLGcjNWxvGaVZcPH",
            "weight": 6
        }
    ]
}
```
交易已成功执行。 
***
- 修改指定多重签名地址的每日限额： 

`cli multisig account dailylimit -d 10 -e coins -s BTY -a 3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7`  
由xs1地址签名并发送。  
***
- 修改指定多重签名地址的额定需要权重： 

`cli multisig account weight -a 3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7 -w 4 `  
由xs1签名并发送。  
-w为新设置的需要的权重。  



***
其余相关查询：  
- 查询指定多重签名地址交易汇总：  

`cli multisig account assets -a 3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7 -e coins -s BTY`  
```
[
    {
        "execer": "coins",
        "symbol": "BTY",
        "balance": "0.0000",
        "frozen": "87.0000",
        "receiver": "100.0000",
        "addr": "3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7"
    }
]
```

- 查询全网全部多重签名地址总量：  

`cli multisig account count`  
```
{
    "data": 10
}
```
- 通过索引查询多重签名地址：  

`cli multisig account address -s 0 -e 9`  
```
{
    "address": [
        "3NVH8VX89S6m9nfkTrYK77EJxcVdjXyfbU",
        "3Ko3NXqnc7HbKVzX7CmHh1hxaT2HyyGb6k",
        "3N6xUeeo2CghiYhGZNeVfGs4ZVU7Q23WQj",
        "35bZddFf69H8h4Ww7BnZWsPtWETu5MHyBQ",
        "3AAmTZighdcpputVjXTeTL7co27vfVyBLy",
        "3DiR3zRtTRjJqxHdsGEob7zUor9qvSZaES",
        "3N1AzFYq4Q3toT2BAYyizpb3FuXr2xyjVH",
        "33YP9MzzMzasTe256zfKuWd7doDEX9k25C",
        "3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7",
        "3Mp38WrtHG5hPskxBeUFzuuG9x7uVWTfrH"
    ]
}
```
- 通过owner查询多重签名地址  

`cli multisig account owner -a "1KoiQmaFg3DoZr84JehxrEWiR7SorSgbUx"`  
```
{
    "items": [
        {
            "multiSigAddr": "3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7",
            "ownerAddr": "1KoiQmaFg3DoZr84JehxrEWiR7SorSgbUx",
            "weight": 20
        },
        {
            "multiSigAddr": "3Mp38WrtHG5hPskxBeUFzuuG9x7uVWTfrH",
            "ownerAddr": "1KoiQmaFg3DoZr84JehxrEWiR7SorSgbUx",
            "weight": 20
        }
    ]
}
```
-a可选，若不填则显示本地钱包中所有owner。  
*** 
- 通过索引查询指定交易已确认的权重值： 

`cli multisig tx confirmed_weight -a 3BJqXn4v741wDJY6Fzb4YbLSftXwgDzFE7 -i 2`  
```
{
    "data": 16
}
```








