本节给出了密钥托管时的交易接口参数及示例。
总体信息
Content-Type:
application/json;charset=UTF-8
Http Method:
POST
Request Path:
/api/contract/chainCallForBiz
公共请求参数
公共请求参数是调用每个API时都需要使用的请求参数。
参数名 | 必选 | 类型 | 说明 |
accessId | 是 | string | 账号AK的key |
token | 是 | string | 用于认证的访问令牌 |
tenantid | 是 | string | 阿里云主账号id |
tenantid 获取方式:将鼠标移至控制台右上角的用户头像,在弹出的用户信息框中,如果标识了账号为主账号,则显示的账号ID即为阿里云账号ID。
(异步)存证接口
DEPOSIT
KMS签名异步存证交易。
请求参数
参数名
必选
类型
说明
orderId
是
string
业务方的唯一性请求标识,用于重试去重。该参数有唯一性校验,当请求参数发生变化或接口发生变化时,需确保每次传入的值唯一,否则会引起调用失败。
bizid
是
string
链id
account
是
string
账户名
content
是
string
存证内容
mykmsKeyId
是
string
创建账户时使用的mykmsKeyId
method
是
- Method
- 枚举
DEPOSIT
gas
否
Long
调用花费的最大的Gas
返回参数
参数名
类型
说明
success
boolean
请求是否成功
code
string
状态码
data
string
交易hash
请求示例
{
"accessId":"baas_admin",
"account":"devTestMasterGasProxyAccount",
"bizid":"12eba21a66ed4d2795b833ce7ebd750c",
"content":"deposit content",
"gas":500000,
"method":"DEPOSIT",
"mykmsKeyId":"6bSP3PxxORGJC1CN123456789",
"orderId":"5a1c02cd-b007-4366-9918-2cbbb95e4b01",
"tenantid":"ORGJC1CN",
"token":"22f84569-85aa-48b0-8883-c281da80226e",
}
返回示例
{ "code":"200", "data":"89d9b3592b29bfd6bb5df8cb1b4a1562d3cc96b450410087c7536c88d9eadc3e", "success":true }
同步(本地)调用solidity合约
CALLCONTRACTBIZ
KMS签名同步调用Solidity合约。
该接口后续将仅用于本地执行模式,若在使用该接口做正式交易的请及时切换到异步接口。
请求参数
参数名
必选
类型
说明
method
是
- Method
- 枚举
CALLCONTRACTBIZ
orderId
是
string
业务方的唯一性请求标识,用于重试去重。该参数有唯一性校验,当请求参数发生变化或接口发生变化时,需确保每次传入的值唯一,否则会引起调用失败。
bizid
是
string
链id
account
是
string
账户名
contractName
是
string
合约名
methodSignature
是
string
方法签名,例如:
set(uint256,uint256)
mykmsKeyId
是
string
创建账户时使用的mykmsKeyId
inputParamListStr
是
string
实参列表,例如:
[1,2]
outTypes
是
string
返回参数列表,例如:
[]
gas
否
Long
调用花费的最大的Gas,若区块链配置了Gas,务必设置该值,并确保执行账户有充足Gas。
isLocalTransaction
否
boolean
是否是本地交易模式(本地交易不消耗Gas,但会做Gas检查)。
返回参数
参数名
类型
说明
success
boolean
请求是否成功
code
string
状态码
data
string
- 成功:交易回执;
- 失败:异常提示信息。
请求示例
{ "accessId":"baas_admin", "account":"devTestMasterGasProxyAccount", "bizid":"12eba21a66ed4d2795b833ce7ebd750c", "gas":500000, "inputParamListStr":"[2,3]", "isLocalTransaction":true, "method":"CALLCONTRACTBIZ", "methodSignature":"testAdd(int32,int32)", "mykmsKeyId":"6bSP3PxxORGJC1CN123456789", "orderId":"e7ed15b1-22b3-4dbd-93ad-9bb3b6ebecf2", "outTypes":"[\"uint256\"]", "tenantid":"ORGJC1CN", "token":"29a7c8cd-4c5b-4b40-9257-392a0bb1e770", }
返回示例
{ "code":"0", "data":"{\"blockNumber\":4899058,\"errorCode\":\"SUCCESS\",\"groupId\":{\"data\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAA=\"},\"localTransaction\":true,\"messageType\":\"MSG_TYPE_TX_RESP_CONTRACT_CALL\",\"sequenceId\":4,\"success\":true,\"transactionReceipt\":{\"gasUsed\":0,\"logs\":[{\"from\":{\"data\":\"/dffHrvUKX4J4aF1LxIihTY076atz5a7OoO94lkP5Pg=\",\"empty\":false,\"value\":\"/dffHrvUKX4J4aF1LxIihTY076atz5a7OoO94lkP5Pg=\"},\"logData\":\"\",\"to\":{\"data\":\"47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=\",\"empty\":false,\"value\":\"47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=\"},\"topics\":[]}],\"output\":\"\",\"result\":106},\"txHash\":{\"data\":\"ZCyyseNkjBsV5cGyvQh98ltokga3fFskifsMhnvurS0=\",\"empty\":false,\"value\":\"ZCyyseNkjBsV5cGyvQh98ltokga3fFskifsMhnvurS0=\"},\"txIndex\":0}", "success":false }
异步调用solidity合约
CALLCONTRACTBIZASYNC
KMS签名异步调用Solidity合约。
请求参数
参数名
必选
类型
说明
orderId
是
string
业务方的唯一性请求标识,用于重试去重。该参数有唯一性校验,当请求参数发生变化或接口发生变化时,需确保每次传入的值唯一,否则会引起调用失败。
bizid
是
string
链id
account
是
string
账户名
contractName
是
string
合约名
methodSignature
是
string
方法签名,例如:
set(uint256,uint256)
mykmsKeyId
是
string
创建账户时使用的mykmsKeyId
method
是
- Method
- 枚举
CALLCONTRACTBIZASYNC
inputParamListStr
是
string
实参列表,例如:
[1,2]
outTypes
是
string
返回参数列表,例如:
[]
gas
否
Long
调用花费的最大的Gas
返回参数
参数名
类型
说明
success
boolean
请求是否成功
code
string
状态码
data
string
- 成功:交易hash,可以使用hash来查询交易以及回执
- 失败:异常提示信息。
请求示例
{ "accessId":"baas_admin", "account":"devTestMasterGasProxyAccount", "bizid":"12eba21a66ed4d2795b833ce7ebd750c", "gas":500000, "inputParamListStr":"[2,3]", "method":"CALLCONTRACTBIZASYNC", "methodSignature":"testAdd(int32,int32)", "mykmsKeyId":"6bSP3PxxORGJC1CN123456789", "orderId":"03ec3710-a839-4802-9d49-0223f51a3b26", "outTypes":"[\"uint256\"]", "tenantid":"ORGJC1CN", "token":"17fb09ef-3ba4-4803-b0dc-12dafab51c10", }
返回示例
{ "code":"200", "data":"43ff3e47e36a7871507df6aaf3f2f7985e8ebc793b17301a8e32d084b1102faf", "success":true }
同步(本地)调用WASM合约
CALLWASMCONTRACT
KMS签名同步调用WASM合约。
该接口后续将仅用于本地执行模式,若在使用该接口做正式交易的请及时切换到异步接口。
请求参数
参数名
必选
类型
说明
orderId
是
string
业务方的唯一性请求标识,用于重试去重。该参数有唯一性校验,当请求参数发生变化或接口发生变化时,需确保每次传入的值唯一,否则会引起调用失败。
bizid
是
string
链id
account
是
string
账户名
contractName
是
string
合约名
methodSignature
是
string
初始化方法签名
mykmsKeyId
是
string
创建账户时使用的mykmsKeyId
method
是
- Method
- 枚举
CALLWASMCONTRACT
inputParamListStr
是
string
JSON串,方法的实参
outTypes
是
string
JSON串,返回参数类型列表
gas
否
Long
调用花费的最大的Gas,若区块链配置了Gas,务必设置该值,并确保执行账户有充足Gas。
isLocalTransaction
否
boolean
是否是本地交易模式(本地交易不消耗Gas,但会做Gas检查)。
返回参数
参数名
类型
说明
success
boolean
请求是否成功
code
string
状态码
data
string
JSON串,具体内容可以参考返回示例
请求示例
{ "accessId":"baas_admin", "account":"devTestMasterGasProxyAccount", "bizid":"12eba21a66ed4d2795b833ce7ebd750c", "gas":500000, "inputParamListStr":"[2,3]", "isLocalTransaction":true, "method":"CALLWASMCONTRACT", "methodSignature":"testAdd(int32,int32)", "mykmsKeyId":"6bSP3PxxORGJC1CN123456789", "orderId":"17c20609-9d16-4d74-91a1-005fd91b4261", "outTypes":"[\"int32\"]", "tenantid":"ORGJC1CN", "token":"6facf267-d586-46ba-8725-fff7918611e6", }
返回示例
{ "code":"106", "data":"{\"transaction\":{\"data\":{\"success\":true,\"transactionReceipt\":{\"output\":\"\",\"result\":106}},\"success\":true,\"txHash\":\"1049182a00d0e6ae20acc61f5358815167b0ad68de3eff1b8bf175cb56cbdcc2\"}}", "success":true }
异步调用WASM合约
CALLWASMCONTRACTASYNC
KMS签名异步调用WASM合约。
请求参数
参数名
必选
类型
说明
orderId
是
string
业务方的唯一性请求标识,用于重试去重。该参数有唯一性校验,当请求参数发生变化或接口发生变化时,需确保每次传入的值唯一,否则会引起调用失败。
bizid
是
string
链id
account
是
string
账户名
contractName
是
string
合约名
methodSignature
是
string
初始化方法签名,格式为:
methodName(parameter1Type.parameter2Type,...,parameterNType)
例如:
createPromoteOrder(string[])
mykmsKeyId
是
string
创建账户时使用的mykmsKeyId
method
是
- Method
- 枚举
CALLWASMCONTRACTASYNC
inputParamListStr
是
string
JSON串,方法的实参
outTypes
是
string
JSON串,返回参数类型列表
gas
否
Long
调用花费的最大的Gas,若区块链配置了Gas,务必设置该值,并确保执行账户有充足Gas。
返回参数
参数名
类型
说明
success
boolean
请求是否成功
code
string
状态码
data
string
JSON串,内容为数组,为函数返回的值,可能有多个
请求示例
{ "accessId":"baas_admin", "account":"devTestMasterGasProxyAccount", "bizid":"12eba21a66ed4d2795b833ce7ebd750c", "gas":500000, "inputParamListStr":"[2,3]", "method":"CALLWASMCONTRACTASYNC", "methodSignature":"testAdd(int32,int32)", "mykmsKeyId":"6bSP3PxxORGJC1CN123456789", "orderId":"7c059fb0-4732-4815-ac33-c6b09487f676", "outTypes":"[\"int32\"]", "tenantid":"ORGJC1CN", "token":"c72aa5ce-e190-4876-a143-6281e0d91588", }
返回示例
{ "code":"200", "data":"4fe3b306661e210d8453915aed40daef3f92e3f2075c3a065c4a2d32f8d176af", "success":true }
解析合约返回值
Request Path:
/api/contract/chainCallForBiz
请求参数
参数
必选
类型
说明
bizid
是
string
链 ID
orderId
是
string
业务方的唯一性请求标识,用于重试去重。该参数有唯一性校验,当请求参数发生变化或接口发生变化时,需确保每次传入的值唯一,否则会引起调用失败。
method
是
Method枚举
PARSEOUTPUT
vmTypeEnum
是
string
content
是
string
receipt的output字段先进行base64解码后得到的byte[],对byte[]进行hex编码,再转化为字符串
abi
是
string
解析格式,JSON格式表示,例如 [\”bool\”,\”string\”,\”int\”]
返回值
参数名
类型
说明
success
boolean
请求是否成功
code
string
状态码
data
string
返回值的JSON字符串表示,例如["testouput"]
说明data字段会根据实际情况,与abi字段中的参数列表相对应的增加参数项。
请求示例
{ "accessId":"abc****", "bizid":"12eba21a66ed4d2795b833ce7ebd****", "content":"1dabca2190a****", "method":"PARSEOUTPUT", "orderId":"7c059fb0-4732-4815-ac33-c6b09487****", "tenantid":"ORSA****", "token":"c72aa5ce-e190-4876-a143-6281e0d9****", "vmTypeEnum": "EVM", "abi": "[\"string\"]" }
返回示例
{ "code":"200", "data": ["testouput"], "success":true }