跳转至

/wallet/getcontractinfo

获取合约的完整运行时信息(包含 runtime code、状态、能量信息)。

  • 源码:framework/src/main/java/org/tron/core/services/http/GetContractInfoServlet.java
  • Method:GET / POST
  • Response:protocol.SmartContractDataWrappersmart_contract.proto

请求参数

字段 类型 必填 说明
value string 合约地址
visible bool 地址格式

示例:

curl --request POST \
     --url https://nile.trongrid.io/wallet/getcontractinfo \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "value": "41eca9bc828a3005b9a3b909f2cc5c2a54794de05f"
}
'

响应

字段 类型 说明
smart_contract SmartContract 合约元信息(同 /wallet/getcontract
runtimecode string(hex) 链上运行时字节码(proto 字段名无下划线)
contract_state ContractState 合约状态:energy_usageenergy_factorupdate_cycle

响应示例(Nile TetherToken):

{
  "smart_contract": {
    "origin_address": "4165fa68800fff5a10346d1a3aa1fb2ce92f2e2971",
    "contract_address": "41eca9bc828a3005b9a3b909f2cc5c2a54794de05f",
    "abi": { "entrys": [/* 46 entries */] },
    "bytecode": "60806040526000600260146101000a81548160ff021916908315150217905550...",
    "name": "TetherToken",
    "origin_energy_limit": 1000000000,
    "code_hash": "1c32379f645df32d2a8e45de37319983d01d47185588337985aeefb4672a91f2"
  },
  "runtimecode": "608060405234801561001057600080fd5b50d3801561001d57600080fd5b50d28...",
  "contract_state": {
    "energy_usage": 236150,
    "update_cycle": 256749
  }
}

contract_stateenergy_factor 为 0 时不出现(proto 默认值不序列化)。

不存在返回 {}

异常响应

触发条件 响应
请求体超过 node.maxMessageSize(POST) {"Error": "class java.lang.Exception : body size is too big, the limit is <N>"}
value 不是合法 base58check(visible=true 含非 base58 字符抛 {"Error": "class java.lang.IllegalArgumentException : <详情>"};仅校验位错误时 Util.getHexAddress 静默返回空串 → 查询不到合约,返回 {}
value 不是合法 hex(visible=false {"Error": "class org.tron.core.services.http.JsonFormat$ParseException : <详情>"}
请求体不是合法 JSON(POST) {"Error": "class com.alibaba.fastjson.JSONException : <解析器信息>"}
其他异常 {"Error": "<exceptionClass> : <message>"}