# 多重签名

## 1 多重签名合约功能：

## 1.1 多重签名账户的创建

。需要设置默认的owner以及权重，指定资产的每日限额，请求权重的值

## 1.2 多重签名账户属性的修改

。owner的add/del/modify/replace
。资产每日限额的修改
。请求权重的修改

## 1.3 多重签名账户的转账

。转入时，to地址必须是多重签名地址，from地址必须是非多重签名地址；
。转出时，from地址必须是多重签名地址，to地址必须是非多重签名地址； 传出交易需要校验权重

## 2 多重签名合约命令行

## 2.1 多重签名合约命令行说明

**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
```

## 2.2 多重签名合约命令行示例

```
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
```

## 3 多重签名合约RPC接口说明

## 3.1 account

### 3.1.1 创建多重签名账户（未签名） MultiSigAccCreateTx

**请求报文：**

```
{
    "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 | 返回交易十六进制编码后的字符串 |

### 3.1.2 多重签名账户修改RequiredWeight值（未签名） MultiSigAccOperateTx

**请求报文：**

```
{
    "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|返回交易十六进制编码后的字符串|

### 3.1.3 多重签名账户修改DailyLimit每日限额(未签名) MultiSigAccOperateTx

**请求报文：**

```
{
    "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 | 返回交易十六进制编码后的字符串 |

### 3.1.4 获取已经创建的多重签名账户个数 MultiSigAccCount

**请求报文：**

```
{
    "jsonrpc":"2.0",
    "id":int32,
    "method":"Chain33.Query",
    "params":[
        {
            "execer":"multisig",
            "funcName":"MultiSigAccCount",
            "payload":nil
        }
    ]
}
```

**参数说明：**

| 参数 | 类型 | 说明 |
| :--- | :--- | :--- |
|      |      |      |

**响应报文：**

```
{
    "id" : int32,
    "result" : {"data" : int64},
    "error" : null
}
```

**参数说明：**

| 参数 | 类型  | 说明             |
| :--- | :---- | :--------------- |
| data | int64 | 多重签名账户个数 |

### 3.1.5 获取多重签名地址 MultiSigAccounts

**请求报文：**

```
{
    "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 | 多重签名账户地址列表 |

### 3.1.6 获取多重签名账户信息 MultiSigAccountInfo

**请求报文：**

```
{
    "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 | 本多重签名账户执行交易需要的权重 |

### 3.1.7 查询多重签名账户指定资产当日免密余额 MultiSigAccUnSpentToday

**请求报文：**

```
{
    "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 | 本多重签名账户指定资产当日免密余额 |

### 3.1.8 查询多重签名账户指定资产信息 MultiSigAccAssets

**请求报文：**

```
{
    "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 | 查询账户收到此资产的所有值 |

### 3.1.9 查询指定地址创建的多重签名账户列表 MultiSigAccAllAddress

**请求报文：**

```
{
    "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|多重签名账户地址列表|

#### 3.1.10 查询owner地址拥有的多重签名账户列表 MultiSigAddresList

**请求报文：**

```
{
    "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地址在此多重签名账户中的权重 |

#### 3.2 owner

##### 3.2.1 多重签名账户增加owner（未签名） MultiSigOwnerOperateTx

**请求报文：**

```
{
    "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 | 返回交易十六进制编码后的字符串 |

##### 3.2.2 多重签名账户删除owner（未签名） MultiSigOwnerOperateTx

**请求报文：**

```
{
    "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|返回交易十六进制编码后的字符串|

##### 3.2.3 多重签名账户owner权重修改（未签名） MultiSigOwnerOperateTx

**请求报文：**

```
{
    "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 | 返回交易十六进制编码后的字符串 |

##### 3.2.4 多重签名账户owner替换（未签名） MultiSigOwnerOperateTx

**请求报文：**

```
{
    "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 | 返回交易十六进制编码后的字符串 |

#### 3.3 tx

##### 3.3.1 多重签名账户资产转入（未签名） MultiSigAccTransferInTx

**请求报文：**

```
{
    "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 | 返回交易十六进制编码后的字符串 |

##### 3.3.2 多重签名账户资产转出（未签名） MultiSigAccTransferOutTx

**请求报文：**

```
{
    "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 | 返回交易十六进制编码后的字符串 |

##### 3.3.3 多重签名账户交易确认（未签名） MultiSigConfirmTx

**请求报文：**

```
{
    "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 | 返回交易十六进制编码后的字符串 |

##### 3.3.4 获取多重签名账户交易数 MultiSigAccTxCount

**请求报文：**

```
{
    "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 | 多重签名账户地址个数 |

##### 3.3.5 获取指定区间的指定状态的多重签名交索引易 MultiSigTxids

**请求报文：**

```
{
    "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 | 多重签名账户交易索引 |

##### 3.3.6 获取多重签名交信息 MultiSigTxInfo

**请求报文：**

```
{
    "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权重                                        |

##### 3.3.7 获取指定交易被确认的权重信息 MultiSigTxConfirmedWeight

**请求报文：**

```
{
    "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 | 多重签名账户交易被确认的权重 |