调用合约方法接口
更新时间:2020-04-09
调用合约方法接口
接口描述
调用以太坊智能合约方法,包括call和transaction类型方法。
权限说明
API权限认证采用Basic Auth方式,请求发起人需要具有合法的Username和Password才能发起请求,其中Username和Password详见所创建的以太坊网络。查看以太坊网络
注意事项
如果请求中没有用户认证信息(即匿名访问),返回401 Unauthorized
,错误信息:401 Authorization Required
。
服务域名
以太坊合约网关接口服务域名地址<ContractGateWayHost>
详见BBE中所创建的以太坊网络详情。查看以太坊网络
请求结构
Plain Text
1POST /v2/ethereum/tx/{contract}/{funcName}?clientToken={clientToken} HTTP/1.1
2 Host: <ContractGateWayHost>
3 Content-Type: application/json
请求头域
头域 | 说明 | 是否必须 |
---|---|---|
Content-Type | 值为application/json | 必须 |
请求参数
名称 | 类型 | 位置 | 描述 | 是否必须 |
---|---|---|---|---|
contract | String | URL参数 | 合约地址 | 必须 |
funcName | String | URL参数 | 请求的合约方法 | 必须 |
clientToken | String | Query参数 | 幂等性Token,是一个长度不超过64位的ASCII字符串 | 非必须 |
from | String | RequestBody参数 | 合约调用者地址 | 必须 |
jsonrpcUrl | String | RequestBody参数 | 节点JSON-RPC地址 | 非必须 |
callbackUrl | String | RequestBody参数 | 交易成功回调地址 | 非必须 |
privateKey | String | RequestBody参数 | 合约调用者地址私钥 | 选填,call类型可为空,transaction类型必填 |
invokeParameters | JsonObject | RequestBody参数 | 合约方法参数 | 选填,根据合约方法所需参数填写 |
optConfigs | OptConfigs | RequestBody参数 | 合约通用参数,可选包括gasLimit、gasPrice、nonce、ethValue | 选填 |
使用限制
- 支持合约方法输入参数: intX/uintX, string, address, array, slice, bytes, bytes32
- 支持合约方法输出参数: intX/uintX, string, address, slice, bytes, bytes32
响应头域
除公共头域外,无其它特殊头域。
响应参数
名称 | 类型 | 描述 |
---|---|---|
requestId | String | 用户请求ID |
result | JsonObject | 请求返回结果数据 |
txId | String | transaction类型请求时返回的交易Hash |
Transaction类型请求示例
说明:
- optConfigs中的参数为可选,如不指定或值为0,合约网关将根据合约方法计算nonce、gasLimit和gasPrice。
- callbackUrl回调参数为transaction类型交易上链成功后,合约网关会将上链信息以POST请求形式推送给回调地址,推送信息详见交易结果查询接口
Plain Text
1 POST /v2/ethereum/tx/0x134bfd7a3d43ca3b4599718045156ada22ec8591/setValue?clientToken=8dbe1955-c616-4d60-97e8-e48bd2063906 HTTP/1.1
2 Host: 106.12.189.XXX:8080
3 Content-Type: application/json
4
5 {
6 "from":"0x7244Ea287849942bAAC280B1912A575aEeCCc792",
7 "privateKey": "3BAB234C5FC756C317BB1CF12F3F5C*****114B0F2B2033BDBA41AA22F6734E4",
8 "jsonrpcUrl":"",
9 "callbackUrl":"",
10 "invokeParameters":{
11 "i": 111,
12 "s": "baidu"
13 },
14 "optConfigs": {
15 "ethValue": 0,
16 "gasLimit": 0,
17 "gasPrice": 0,
18 "nonce": 0
19 }
20}
Transaction类型请求响应示例
Plain Text
1HTTP/1.1 200 OK
2 Date: Thu, 19 Sep 2019 07:07:08 GMT
3 Content Type: application/json; charset=utf-8
4 Content-Length: 153
5
6 {
7 "requestId": "47026c75-008f-4fe5-be1f-807f8244df6f",
8 "result": {
9 "txId": "0x208140b148622f260f354c38d9424722949cb1b31f542cd33125630dfa6c9809"
10 }
11}
说明:根据txId获取交易上链结果详见:交易结果查询接口
Call类型请求示例
Plain Text
1 POST /v2/ethereum/tx/0x134bfd7a3d43ca3b4599718045156ada22ec8591/getValue HTTP/1.1
2 Host: 106.12.189.XXX:8080
3 Content-Type: application/json
4
5 {
6 "from":"0x7244Ea287849942bAAC280B1912A575aEeCCc792",
7 "jsonrpcUrl":"",
8 "invokeParameters":{}
9 }
Call类型请求响应示例
Plain Text
1HTTP/1.1 200 OK
2 Date: Thu, 19 Sep 2019 07:16:36 GMT
3 Content Type: application/json; charset=utf-8
4 Content-Length: 105
5
6 {
7 "requestId": "a8739881-8eb0-411c-bbbb-5bd5cf0eba65",
8 "result": {
9 "i": 111,
10 "s": "bbe"
11 }
12}