# 查询账户交易详情
请求方式
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