百度区块链引擎BBE

    调用合约方法接口

    调用合约方法接口

    接口描述

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

    权限说明

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

    注意事项

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

    服务域名

    Quorum合约网关接口服务域名地址<ContractGateWayHost>详见BBE中所创建或加入的Quorum联盟详情。查看Quorum联盟

    请求结构

    POST /v2/quorum/tx/{contract}/{funcName}?clientToken={clientToken} HTTP/1.1
    Host: <ContractGateWayHost>
    Content-Type: application/json

    请求头域

    头域 类型 说明 是否必须
    Content-Type String 值为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参数 transaction类型交易,上链成功后回调地址 选填
    privateKey String RequestBody参数 合约调用者地址私钥 选填,transaction类型必填,call类型可为空
    privateFor Array RequestBody参数 私有合约相关节点公钥 必须,公开合约值为空
    invokeParameters JsonObject RequestBody参数 合约方法参数 选填,根据合约方法所需参数填写
    optConfigs OptConfigs RequestBody参数 合约通用参数,可选包括gasLimit、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、gas。
    • callbackUrl回调参数为transaction类型交易上链成功后,合约网关会将上链信息以POST请求形式推送给回调地址,推送信息详见交易结果查询接口
      POST /v2/quorum/tx/0x5c695f5b6c14d4d59b1b2f65a7fb66f02fe15469/setValue?clientToken=562dcec4-61c7-4bd5-932e-673861022f8b HTTP/1.1
      Host: 106.12.189.XXX:8080
      Content-Type: application/json
      
      {
            "from":"0x04c512DEA0943e27D036EA5550987d0fF8b48a60",
            "privateKey": "3BAB234C5FC756C317BB1CF12F3F5C*****114B0F2B2033BDBA41AA22F6734E4",
            "jsonrpcUrl":"http://106.12.189.XXX:8081/quorum-jsonrpc/ba9f7aad-2f49-4aab-8bd2-12d7ab009937/6d398463",
            "callbackUrl":"http://xxx",
            "privateFor":["DMAxFR47Q8oIi4Qdb+IM6iepOkxFqz5XMNsZgiFhbEY=","pRpHnO/G+9tRlCfiy/OuSXuNRWy9J+d22f7l05W6LHQ="],
            "invokeParameters":{
                    "i":111,
                    "s":"baidu"
            },
            "optConfigs":{
                "ethValue": 0,
                "gasLimit": 0,
                "nonce": 0
            }
       }

    Call类型交易请求示例

      POST /v2/quorum/tx/0x5c695f5b6c14d4d59b1b2f65a7fb66f02fe15469/getValue HTTP/1.1
      Host: 106.12.189.XXX:8080
      Content-Type: application/json
      
      {
            "from":"0x04c512DEA0943e27D036EA5550987d0fF8b48a60",
            "jsonrpcUrl":"http://106.12.189.XXX:8081/quorum-jsonrpc/ee7aa8d8-ac62-4824-9e2d-585c5ac54b17/249f2b8a",
            "privateFor":["DMAxFR47Q8oIi4Qdb+IM6iepOkxFqz5XMNsZgiFhbEY=","pRpHnO/G+9tRlCfiy/OuSXuNRWy9J+d22f7l05W6LHQ="],
            "invokeParameters":{}
    }

    Transaction类型请求响应示例

     HTTP/1.1 200 OK     
     Date: Thu, 19 Sep 2019 09:22:16 GMT
     Content Type: application/json; charset=utf-8
     Content-Length: 157   
    
    {
      "requestId": "7b4faa25-d74f-49aa-9299-8de6981dec59",
      "result": {
        "txId": "0x9efd1bae01055189f067d7f0a0095f9626672894f5132bc4573abb3728dde026"
      }
    }

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

    Call类型请求响应示例

     HTTP/1.1 200 OK     
     Date: Thu, 19 Sep 2019 09:46:00 GMT
     Content Type: application/json; charset=utf-8
     Content-Length: 107
    
     {
      "requestId": "91c0ed8b-69c8-42c2-8daf-6f8c23e29000",
      "result": {
        "i": 111,
        "s": "baidu"
      }
    }   
    上一篇
    接口说明
    下一篇
    交易结果查询接口