生成签名交易

可以使用Tronweb来完成此内容,关于Tronweb的使用,请参照:
Tronweb Github
Tronweb API 文档

或者,您可以使用 API签名和广播流 来生成一个已签署的交易。

上面的文档中已给出使用API的完整流程,此处的以Tronweb为主,使用freezeBalance作为示例。

创建交易

创建一个未签名的,用于质押资产的交易。
Tronweb质押资产

签署交易

对创建的交易进行签名。
Tronweb 交易签名

❗️

不要在任何面向 Web /面向用户的应用程序中进行签名,这将暴露私钥。
使用在线签名的方案时,出于安全方面的考虑,请使用本地节点。

广播交易

对已签名的交易进行广播。
Tronweb 广播交易

📘

Tronweb中广播交易的方法是sendrawtransaction,没有broadcast关键词,详见源文件

交易确认方法

TRON的区块确认的机制是某个区块产出后, 19个不同的SR基于这个区块产出后续区块后, 这个区块视为被确认。

一个交易是否被确认需要这个交易所在的区块被确认, TRON提供/walletsolidty/ 接口给用户更加方便的查询被确认的交易,下面是描述对不同类型的交易的确认方法。

transferContract 和 transferAssetContract

能够通过/walletsolidity/gettransactioninfobyid或者/walletsolidity/gettransactionbyid查询到交易,即可确认。

TriggerSmartContract

有两种判断方式:

  1. 通过/walletsolidity/gettransactioninfobyid 接口查到transactionInfo.receipt.result=success (建议不要用transactionInfo.result去判断,因为对于http 接口,成功的交易默认不返回该字段)。

  2. 通过/walletsolidity/gettransactionbyid 接口查到transaction.ret.contractRet =success

InternalTransaction

通过/walletsolidity/gettransactioninfobyid查询,

  1. HTTP 接口: 对于成功的交易,默认不返回 rejected 字段, 对于失败的交易,rejected=true。

  2. GRPC 接口: 对于成功的交易,rejected=false(表示当前 internalTransaction 没有被舍弃), 对于失败的交易,rejected=true。

多类型交易

TRON网络中支持多种不同类型的交易:
protobuf文件
TRONWEB.TRANSACTIONBUILDER
请阅读这些内容,了解更多细节。