百度区块链引擎BBE

    调用合约方法接口

    调用合约方法接口

    接口描述

    调用以太坊智能合约方法,包括call和transaction类型方法。

    权限说明

    API权限认证采用Basic Auth方式,请求发起人需要具有合法的Username和Password才能发起请求,其中Username和Password详见所创建的以太坊网络。查看以太坊网络

    注意事项

    如果请求中没有用户认证信息(即匿名访问),返回401 Unauthorized,错误信息:401 Authorization Required

    服务域名 以太坊合约网关接口服务域名地址<ContractGateWayHost>详见BBE中所创建的以太坊网络详情。查看以太坊网络

    请求结构

    POST /v2/ethereum/tx/{contract}/{funcName}?clientToken={clientToken} HTTP/1.1
     Host: <ContractGateWayHost>
     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请求形式推送给回调地址,推送信息详见交易结果查询接口
     POST /v2/ethereum/tx/0x134bfd7a3d43ca3b4599718045156ada22ec8591/setValue?clientToken=8dbe1955-c616-4d60-97e8-e48bd2063906 HTTP/1.1
      Host: 106.12.189.XXX:8080
      Content-Type: application/json
      
      {
            "from":"0x7244Ea287849942bAAC280B1912A575aEeCCc792",
            "privateKey": "3BAB234C5FC756C317BB1CF12F3F5C*****114B0F2B2033BDBA41AA22F6734E4",
            "jsonrpcUrl":"",
            "callbackUrl":"",
            "invokeParameters":{
                    "i": 111,
                    "s": "baidu"
             },
            "optConfigs": {
                "ethValue": 0,
                "gasLimit": 0,
                "gasPrice": 0,
                "nonce": 0
            }
    }

    Transaction类型请求响应示例

    HTTP/1.1 200 OK     
     Date: Thu, 19 Sep 2019 07:07:08 GMT
     Content Type: application/json; charset=utf-8
     Content-Length: 153   
    
     {
      "requestId": "47026c75-008f-4fe5-be1f-807f8244df6f",
      "result": {
        "txId": "0x208140b148622f260f354c38d9424722949cb1b31f542cd33125630dfa6c9809"
      }
    }   

    说明:根据txId获取交易上链结果详见:交易结果查询接口

    Call类型请求示例

     POST /v2/ethereum/tx/0x134bfd7a3d43ca3b4599718045156ada22ec8591/getValue HTTP/1.1
      Host: 106.12.189.XXX:8080
      Content-Type: application/json
      
      {
            "from":"0x7244Ea287849942bAAC280B1912A575aEeCCc792",
            "jsonrpcUrl":"",
            "invokeParameters":{}
     }

    Call类型请求响应示例

    HTTP/1.1 200 OK     
     Date: Thu, 19 Sep 2019 07:16:36 GMT
     Content Type: application/json; charset=utf-8
     Content-Length: 105  
    
     {
      "requestId": "a8739881-8eb0-411c-bbbb-5bd5cf0eba65",
      "result": {
        "i": 111,
        "s": "bbe"
      }
    }   
    上一篇
    交易结果查询接口
    下一篇
    Event日志检索接口