Skip to content

Commit

Permalink
add http and rpc instruction
Browse files Browse the repository at this point in the history
  • Loading branch information
sean-liu55 committed Mar 1, 2019
1 parent a6254bd commit 657c0e2
Show file tree
Hide file tree
Showing 3 changed files with 133 additions and 7 deletions.
48 changes: 48 additions & 0 deletions TRX/Tron-http.md
Original file line number Diff line number Diff line change
Expand Up @@ -577,4 +577,52 @@ contract_address:要修改的合约的地址
origin_energy_limit:创建者设置的,在一次合约执行或创建过程中创建者自己消耗的最大的energy
返回值:TransactionExtention, TransactionExtention中包含未签名的交易Transaction
wallet/accountpermissionupdate
作用:更新用户权限(用于多重签名)
demo: curl -X POST http://127.0.0.1:8090/wallet/accountpermissionupdate -d '{"owner_address":"41ffa9466d5bf6bb6b7e4ab6ef2b1cb9f1f41f9700","owner":{"type":0,"permission_name":"owner","threshold":2,"keys":[{"address":"41F08012B4881C320EB40B80F1228731898824E09D","weight":1},{"address":"41DF309FEF25B311E7895562BD9E11AAB2A58816D2","weight":1},{"address":"41BB7322198D273E39B940A5A4C955CB7199A0CDEE","weight":1}]},"actives":[{"type":2,"permission_name":"active0","threshold":3,"operations":"7fff1fc0037e0000000000000000000000000000000000000000000000000000","keys":[{"address":"41F08012B4881C320EB40B80F1228731898824E09D","weight":1},{"address":"41DF309FEF25B311E7895562BD9E11AAB2A58816D2","weight":1},{"address":"41BB7322198D273E39B940A5A4C955CB7199A0CDEE","weight":1}]}]}'
参数说明:
owner_address:待修改权限的账户的地址\
owner:修改后的 owner 权限\
witness:修改后的 witness 权限(如果是 witness )\
actives:修改后的 actives 权限
permission.PermissionType: 权限类型,目前仅支持三种权限\
permission.id: 值由系统自动设置,Owner id=0, Witness id=1, Active id 从2开始递增分配。在执行合约时,
通过该id来指定使用哪个权限,如使用owner权限,即将id设置为0。\
permission.permission_name: 权限名称,由用户设定,长度限制为32字节\
permission.threshold: 阈值,只有当参与签名的权重之和超过域值才允许做相应的操作。要求小于Long类型的最大值\
permission.parent_id:目前只能为0 \
permission.operations:共32字节(256位),每位代表一个合约的权限,为1时表示拥有该合约的权限。
如`operations=0x0100...00(十六进制),即100...0(二进制)`时,查看proto中Transaction.ContractType定义,合约AccountCreateContract的id为0,
即表示该permission只拥有执行AccountCreateContract的权限,可以使用"active权限中operations的计算示例"计算获得。\
permission.keys:共同拥有该权限的地址及权重,最多允许5个key。
permission.key.address:拥有该权限的地址
permission.key.weight:该地址对该权限拥有权重
返回值:TransactionExtention, TransactionExtention中包含增加签名后的交易Transaction
wallet/addtransactionsign
作用:增加签名(用于多重签名)
demo: curl -X POST http://127.0.0.1:8090/wallet/addtransactionsign -d '{"transaction": "TransferContract", "privateKey": "permissionkey1"}'
参数说明:
transaction:交易,TransferContract需要替换成实际交易信息
privateKey:私钥,permissionkey1需要替换成实际签名的私钥
返回值:TransactionExtention, TransactionExtention中包含增加签名后的交易Transaction
wallet/getapprovedlist
作用:查询已签名地址(用于多重签名)
demo: curl -X POST http://127.0.0.1:8090/wallet/getapprovedlist -d '{"transaction"}'
参数说明:
transaction:交易,需要替换成实际交易信息
返回值:TransactionApprovedList, TransactionApprovedList包含已签名的地址,交易
wallet/getsignweight
作用:查询交易签名权重(用于多重签名)
demo: curl -X POST http://127.0.0.1:8090/wallet/getsignweight -d '{"transaction"}'
参数说明:
transaction:交易,需要替换成实际交易信息
返回值:TransactionSignWeight, TransactionSignWeight包含结果result,表示交易的签名是否满足权限阈值。
```
37 changes: 30 additions & 7 deletions 中文文档/波场协议/多重签名.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@
`PermissionType`: 权限类型,目前仅支持三种权限\
`id`: 值由系统自动设置,Owner id=0, Witness id=1, Active id 从2开始递增分配。在执行合约时,
通过该id来指定使用哪个权限,如使用owner权限,即将id设置为0。\
`permission_name`: 权限名称,由用户设定\
`permission_name`: 权限名称,由用户设定,长度限制为32字节\
`threshold`: 阈值,只有当参与签名的权重之和超过域值才允许做相应的操作。要求小于Long类型的最大值\
`parent_id`:目前只能为0 \
`operations`:共32字节(256位),每位代表一个合约的权限,为1时表示拥有该合约的权限。
Expand Down Expand Up @@ -186,8 +186,7 @@ Active权限有以下特性:\
2、修改permission\
3、创建合约,签名\
4、发送交易



**http-demo**
```
http://{{host}}:{{port}}/wallet/accountpermissionupdate
Expand Down Expand Up @@ -260,25 +259,49 @@ public static void main(String[] args) {

### <h2 id="3.2">3.2 执行合约</h2>

1、创建交易\
2、用户A签名,将签名后交易通过其他方式发送给B。\
3、用户B签名,将签名后交易通过其他方式发送给C。\
1、创建交易,与非多重签名交易的构建过程相同\
2、指定Permission_id,默认为0,表示owner-permission\
3、用户A签名,将签名后交易通过其他方式发送给B。\
4、用户B签名,将签名后交易通过其他方式发送给C。\
\
n、最后一个完成签名的用户,将交易广播到节点。\
n+1、验证多重签名的权重之和大于域值则接受交易,否则拒绝交易

代码示例:

https://github.com/tronprotocol/wallet-cli/blob/multi_sign_V2/src/main/java/org/tron/demo/MultiSignDemo.java


### <h2 id="3.3">3.3 其他新增接口</h2>
接口详细说明,请查看Tron-http.md与波场钱包RPC-API.md \
1、增加签名
```
curl -X POST http://127.0.0.1:8090/wallet/addtransactionsign -d '{"transaction": "TransferContract", "privateKey": "permissionkey1"}'
rpc AddSign (TransactionSign) returns (TransactionExtention) {}
```
2、查询已签名地址
```
curl -X POST http://127.0.0.1:8090/wallet/getapprovedlist -d '{"transaction"}'
rpc GetTransactionApprovedList(Transaction) returns (TransactionApprovedList) { }
```

3、查询交易签名权重
```
curl -X POST http://127.0.0.1:8090/wallet/getsignweight -d '{"transaction"}'
rpc GetTransactionSignWeight (Transaction) returns (TransactionSignWeight) {}
```

## <h2 id="4">4.其他</h2>

1、支持多重签名后,创建账户时有什么变化?\
在升级到V3.5版本后,并且多重签名提议生效后,创建账户时将自动生成owner-permission以及一个active-permission,
其中owner-permission中仅包含一个key,权限及阈值都为1。active-permission中也包含一个key,权限及阈值都为1,并且
operations为"7fff1fc0037e0000000000000000000000000000000000000000000000000000",表示支持除
AccountPermissionUpdateContract以外的所有操作。\
AccountPermissionUpdateContract以外的所有操作。




Expand Down
55 changes: 55 additions & 0 deletions 中文文档/波场协议/波场钱包RPC-API.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,10 @@
[73. 查询资源委派的详细信息](#73) \
[74. 通证快捷转账](#74) \
[75. 通证快捷转账(通过私钥)](#75)
[76. 更新用户权限(用于多重签名)](#76)
[77. 增加签名(用于多重签名)](#77)
[78. 查询已签名地址(用于多重签名)](#78)
[79. 查询交易签名权重(用于多重签名)](#79)


## <h2 id="API的具体定义请参考">API的具体定义请参考</h2>
Expand Down Expand Up @@ -1107,3 +1111,54 @@ fullnode
EasyTransferAssetByPrivateMessage:转账用的私钥,toAddress,通证ID,转账的数量
75.4 返回值
EasyTransferResponse:转账创建的transaction,交易ID,以及广播的结果result

## <h2 id="76">76. 更新用户权限(用于多重签名)</h2>

76.1 接口说明
rpc AccountPermissionUpdate (AccountPermissionUpdateContract) returns (TransactionExtention) {}\
76.2 提供节点
fullnode
76.3 参数说明
owner_address:待修改权限的账户的地址\
owner:修改后的 owner 权限\
witness:修改后的 witness 权限(如果是 witness )\
actives:修改后的 actives 权限

76.4 返回值
TransactionExtention:转账创建的transaction,交易ID,以及广播的结果result




## <h2 id="77">77. 增加签名(用于多重签名)</h2>

77.1 接口说明
rpc AddSign (TransactionSign) returns (TransactionExtention) {}\
77.2 提供节点
fullnode
77.3 参数说明
TransactionSign:交易,私钥
77.4 返回值
TransactionExtention:转账创建的transaction,交易ID,以及广播的结果result

## <h2 id="78">78. 查询已签名地址(用于多重签名)</h2>

78.1 接口说明
rpc GetTransactionApprovedList(Transaction) returns (TransactionApprovedList) {}\
78.2 提供节点
fullnode
78.3 参数说明
Transaction:交易\
78.4 返回值
TransactionApprovedList:已签名的地址,交易

## <h2 id="79">79. 查询交易签名权重(用于多重签名)</h2>

79.1 接口说明
rpc GetTransactionSignWeight (Transaction) returns (TransactionSignWeight) {}\
79.2 提供节点
fullnode
79.3 参数说明
Transaction:交易\
79.4 返回值
TransactionSignWeight:结果result(交易的签名是否满足权限阈值)

0 comments on commit 657c0e2

Please sign in to comment.