密钥托管交易接口

本节给出了密钥托管时的交易接口参数及示例。

总体信息

  • 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

    合约类型 :EVM/WASM

    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
    }