什么是 Tron 原始交易?
Tron 原始交易是经 protobuf 序列化的 Transaction.raw 消息,TronGrid 和 tronWeb 以 raw_data_hex 的形式提供:参考区块字节和哈希、过期时间、时间戳、费用上限、可选的备注数据,以及 TransferContract 或 TriggerSmartContract 等类型化合约的列表。txID 是这些字节的 SHA-256,签名则是对同一哈希的 65 字节 secp256k1 签名。
字段说明
- 过期时间:超过该时间交易将被拒绝(通常为创建后 60 秒)。交易过期是广播失败最常见的原因。
- 费用上限:合约调用中可为能量燃烧的最大 TRX 数量;普通转账没有此字段。
- Permission ID:0 表示 owner 权限,2 及以上表示多签设置中的 active 权限。
- 参考区块:交易锚定的区块;节点用它来拒绝过期的交易。
TRC-20 转账
Tron 上的一笔 USDT 付款是一个 TriggerSmartContract,其 contract_address 为代币合约,data 为 transfer(address,uint256)。解码器同时以原始 20 字节十六进制参数和 T… 地址的形式显示接收方,金额以原始单位显示(USDT 有 6 位小数,因此除以 1,000,000)。
解码器支持的合约类型
| 合约类型 | 作用 | 关键字段 |
|---|---|---|
| TransferContract | 发送 TRX | owner_address、to_address、amount(sun) |
| TriggerSmartContract | 调用合约(TRC-20 转账、授权、兑换) | contract_address、data、call_value |
| TransferAssetContract | 发送 TRC-10 代币 | asset_name、to_address、amount |
| FreezeBalanceV2 / UnfreezeBalanceV2 | 质押或解除质押 TRX 以获取能量或带宽 | frozen_balance、resource |
| DelegateResourceContract | 把能量或带宽出借给其他账户 | receiver_address、balance、resource |
| VoteWitnessContract | 为超级代表投票 | votes(address、count) |
实例演示
一笔 USDT 付款解码为一个 TriggerSmartContract,其 contract_address 为 TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t,data 为 a9059cbb + 作为 32 字节字的接收方 + 金额。以 …0bebc200 结尾的 data 表示 200,000,000 原始单位 = 200 USDT(6 位小数)。fee_limit 为 100000000 sun 表示能量费用上限为 100 TRX,而 expiration 比 timestamp 晚 60 秒是 tronWeb 的默认值。
相关工具:Tron 地址转换器、USDT 地址验证器、Nile 批量转账。