# 查询账户交易详情

请求方式

topio querytx

请求参数

参数名称 是否必选 默认值 类型 说明
hash - String 账户最新交易hash,可通过topio chain queryAccount查询。
account_addr 默认账户 String 发送交易或接受交易账户地址。如不指定,则查询默认账户交易信息。

选项

选项名称 默认值 类型 说明
-h, --help - - 查看命令帮助信息。

返回参数

参数名称 类型 说明
original_tx_info Object 原始交易信息。
amount Uint64 交易金额。
authorization String 交易体签名。
edge_nodeid String 转发交易的 edge 节点 id,目前未使用。
ext String 预留字段,用于扩展,默认为空字符串。
last_tx_nonce String 上一笔交易 nonce。
note String 交易备注。
premium_price Uint32 预留字段,默认为“0”。
receiver_account String 交易接受方账户地址。
receiver_action_name String 调用合约时,合约的函数名。 其中,系统合约函数请参见 系统智能合约 API。非合约交易时,默认为空。
receiver_action_param JSON 接收方执行内容。不同 action type 执行内容的序列化请参见 action param 序列化
send_timestamp Uint64 交易发送时间戳。
sender_account String 交易发送方账户地址。
sender_action_name String 预留字段,默认为空字符串。
sender_action_param JSON 发送方执行内容。不同 action type 执行内容的序列化请参见 action param 序列化
token_name String token 符号,比如 top 为 TOP。
tx_deposit Uint32 交易保证金,单位为 uTOP。
tx_expire_duration Uint16 交易到期时长,超过则被丢弃,默认 100s。
tx_hash String 交易 hash 的十六进制。
tx_len Uint16 交易大小。交易消耗的 gas 与交易大小相关。
tx_structure_version Uint32 交易结构版本号。默认为"2"
tx_type Uint16 交易类型,不同的交易类型,action 中 action_param(执行内容)及 action type(执行类型)不同。
xtransaction_type_run_contract = 3, // 调用智能合约
xtransaction_type_transfer = 4, // 转账
xtransaction_type_vote = 20, // 投票
xtransaction_type_abolish_vote = 21,// 取消投票
xtransaction_type_pledge_token_gas = 22, // 锁定 TOP token 兑换 gas
xtransaction_type_redeem_token_gas = 23, // 解锁兑换 gas 锁定的 TOP token
xtransaction_type_pledge_token_vote = 27, // 锁定 TOP token 兑换选票
xtransaction_type_redeem_token_vote = 28, // 解锁兑换选票锁定的 TOP token
tx_consensus_state Object 交易共识结果。
跨账户交易会进行三次共识,所以会返回三个 unit 的信息;单账户交易只在交易发送账户下进行一次共识,所以只返回"confirm_block_info"。
confirm_block_info object 打包 confirm 交易的 table 块信息。
account String table 地址。
exec_status String 交易最终共识结果:
success:成功
failure:失败
height Uint64 confirm 交易所在的 table 块的高度。
recv_tx_exec_status String 交易接收方共识结果:
success:成功
failure:失败
交易接收方共识失败或拒绝执行,通常在执行合约交易的时候会出现拒绝共识的情况。例如,注册矿工,矿工保证金低于最低要求,合约将执行失败。
used_deposit Uint64 交易第三次共识结束后,因发送方账户 gas 不足以支付交易花费而扣除的发送方账户的交易保证金,单位为 uTOP。
used_gas Uint64 用户合约交易,交易第三次共识结束后,扣除的发送方账户 gas。
如果合约用户已支付一部分 gas,那么此处扣除整个交易所消耗的 gas 的剩余部分;如果合约无法支付其应承担的 gas,那么此处扣除整个交易消耗的 gas。单位为 Tgas。
recv_block_info object 打包 recv 交易的 table 块信息。
account String table 地址。
height Uint64 receive 交易所在的 table 块的高度。
used_gas Uint64 用户合约交易,交易第二次共识后,扣除接收方账户应承担的的 gas。单位为 Tgas。
send_block_info object 打包 send 交易的 table 块信息。
account String table 地址。
height Uint64 send 交易所在的 table 块的高度。
tx_fee Uint64 对于调用 Beacon 系统合约交易(注册矿工相关、提案相关、启动节点进程入网),系统自动从交易发送方账户中扣除 100*10^6 uTOP token 作为交易手续费,并销毁。
used_deposit Uint64 发送交易消耗的交易保证金。
used_gas Uint64 交易第一次共识扣除的 gas,单位为 Tgas。
对于非调用用户合约的跨账户交易,交易所消耗的 gas 全部由发送方承担,在发送方 gas 足够的情况下,会在第一轮共识就扣完交易所需要的 gas;在 gas 不足的情况下,第一轮共识会扣除发送方账户可用的 gas,剩余 gas 在第三轮共识扣除交易保证金兑换 gas 支付交易费用。

请求样例

topio querytx 0x0e4bcb020f2fdf6ed4105385a2d564b6ae33f7ae8d85563d471c7240713d8c5b T800002276a7d58218ac4978733e5cca927a7d86cb7c87

返回样例

根据交易不同状态,返回交易信息不同,具体如下。

  • 成功返回

    • 若交易为单账户交易,交易只在交易发送方下进行一次共识,查询交易最终返回结果中只有"confirm_block_info"的信息。
    • 若交易为跨账户交易,交易总共需要进行三次共识,查询交易最终返回结果中包括三次共识的信息,包括"confirm_block_info(发送方第二次共识)"、"recv_block_info(接收方共识)"、"send_block_info"(发送方第一次共识)。
    • 发送,接收,确认都完成,并且接收交易执行成功,"tx_state": "success"。

      {
      "data" : {
          "original_tx_info" : {
             "amount" : 1000000,
             "authorization" : "0x01c00cf3c8ca7c883b7ab130ac56ccb53c2c066640659d9babe21655a6b3a073455a3b8d06ee5b1a955b756a7800f0230afc7299a97f3ca9c57555d7890518472b",
             "edge_nodeid" : "",
             "ext" : "",
             "last_tx_nonce" : 4,
             "note" : "",
             "premium_price" : 0,
             "receiver_account" : "T8000042537218707b66d49fc06143b60d029cfe2b65f4",
             "receiver_action_name" : "",
             "receiver_action_param": {
                "amount": 1000000,
                "token_name": "TOP"
             },
             "send_timestamp" : 1645012819,
             "sender_account" : "T800008c5a874df3f8b6d1e357890f881704bf8849feeb",
             "sender_action_name" : "",
             "sender_action_param": {
                "amount": 1000000,
                "token_name": "TOP"
             },
             "token_name" : "",
             "tx_deposit" : 100000,
             "tx_expire_duration" : 100,
             "tx_hash" : "0xb014bcfa3bb14f350531c95f0a5c32f32aaabb5aaaebe9cc214aab3776f483fe",
             "tx_len" : 137,
             "tx_structure_version" : 2,
             "tx_type" : 4
          },
          "tx_consensus_state" : {
             "confirm_block_info" : {
                "account" : "Ta0000@31",
                "exec_status" : "success",
                "height" : 28,
                "recv_tx_exec_status" : "success",
                "used_deposit" : 0,
                "used_gas" : 0
             },
             "recv_block_info" : {
                "account" : "Ta0000@27",
                "height" : 17,
                "used_gas" : 0
             },
             "send_block_info" : {
                "account" : "Ta0000@31",
                "height" : 25,
                "tx_fee" : 0,
                "used_deposit" : 0,
                "used_gas" : 411
             }
          },
          "tx_state" : "success"
       },
      "errmsg" : "ok",
      "errno" : 0,
      "sequence_id" : "8"
      }
      
    • 确认交易执行未完成,"tx_state": "queue"。

      {
       "data" : {
          "original_tx_info" : {
             "amount" : 1000000,
             "authorization" : "0x01c00cf3c8ca7c883b7ab130ac56ccb53c2c066640659d9babe21655a6b3a073455a3b8d06ee5b1a955b756a7800f0230afc7299a97f3ca9c57555d7890518472b",
             "edge_nodeid" : "",
             "ext" : "",
             "last_tx_nonce" : 4,
             "note" : "",
             "premium_price" : 0,
             "receiver_account" : "T8000042537218707b66d49fc06143b60d029cfe2b65f4",
             "receiver_action_name" : "",
             "receiver_action_param": {
                "amount": 1000000,
                "token_name": "TOP"
             },
             "send_timestamp" : 1645012819,
             "sender_account" : "T800008c5a874df3f8b6d1e357890f881704bf8849feeb",
             "sender_action_name" : "",
             "sender_action_param": {
                "amount": 1000000,
                "token_name": "TOP"
             },
             "token_name" : "",
             "tx_deposit" : 100000,
             "tx_expire_duration" : 100,
             "tx_hash" : "0xb014bcfa3bb14f350531c95f0a5c32f32aaabb5aaaebe9cc214aab3776f483fe",
             "tx_len" : 137,
             "tx_structure_version" : 2,
             "tx_type" : 4
          },
          "tx_consensus_state" : {
             "confirm_block_info" : {
                "account" : "Ta0000@31",
                "height" : 0
             },
             "recv_block_info" : {
                "account" : "Ta0000@27",
                "height" : 17,
                "used_gas" : 0
             },
             "send_block_info" : {
                "account" : "Ta0000@31",
                "height" : 25,
                "tx_fee" : 0,
                "used_deposit" : 0,
                "used_gas" : 411
             }
          },
          "tx_state" : "queue"
       },
      "errmsg" : "ok",
      "errno" : 0,
      "sequence_id" : "18"
      }
      
    • 合约交易执行失败,"tx_state": "fail"。

      {
         "data" : {
            "original_tx_info" : {
               "amount" : 0,
               "authorization" : "0x00da74315ede21da0ebc0ce4f8d1fb8409c978c74a0be4d7660410e3eae7ebcfa36f386bff302c3fd6c7c1be040076fe7f5cda50afc7f842aa71bf05d1a6feea02",
               "edge_nodeid" : "",
               "ext" : "",
               "last_tx_nonce" : 0,
               "note" : "",
               "premium_price" : 0,
               "receiver_account" : "T800002276a7d58218ac4978733e5cca927a7d86cb7c87",
               "receiver_action_name" : "",
               "receiver_action_param" : "0x2e00000054383030303033376434666263303862663435313361363861323837656432313862306164626434393765663330",
               "send_timestamp" : 1631791128,
               "sender_account" : "T8000037d4fbc08bf4513a68a287ed218b0adbd497ef30",
               "sender_action_name" : "",
               "sender_action_param" : "",
               "token_name" : "",
               "tx_deposit" : 100000,
               "tx_expire_duration" : 100,
               "tx_hash" : "0xfb33b056757f7d3ba6bccd0c8cd1a923a68dec1fd0c0633f513cee58214b648d",
               "tx_len" : 189,
               "tx_structure_version" : 2,
               "tx_type" : 0
            },
            "tx_consensus_state" : null
         },
         "errmsg" : "ok",
         "errno" : 0,
         "sequence_id" : "17"
      }
      
  • 失败返回:交易既不在区块,又不在交易池中。

    No data!
    Errmsg: account address or transaction hash error/does not exist