v2 — 使用私钥延长
一个完整的可运行示例,演示如何通过用你的私钥在本地构建的签名交易来支付费用,从而延长现有的资源代理(委托)。
这是一个完整的、可运行的示例,演示如何使用 v2 Extend Orders API 延长现有的资源代理(委托),同时通过本地用你的私钥签名的交易来支付费用。
整个流程包含两次 API 调用:
POST /v2/get-extendable-delegates— 预估哪些代理(委托)可以延长,以及需要花费多少 TRX(totalEstimateTrx)。POST /v2/extend-request— 提交延长请求,并附上一笔向 TronSave 接收地址支付预估金额的signedTx。
在这两次调用之间,你需要用自己的私钥构建并签名一笔发往 TronSave 接收地址的 TRX 转账,因此 TronSave 永远不会持有你的资金。
本示例使用 TronWeb 来构建并签名转账。需要 TronWeb 5.3.2 版本。
npm i [email protected] @noble/[email protected]了解更多:https://tronweb.network/docu/docs/5.3.2/Release%20Note/
配置
在运行之前,请设置以下值:
TRONSAVE_API_URL
TronSave API 基础 URL。主网:https://api.tronsave.io。
RECEIVER
接收延长后资源代理(委托)的地址。
RESOURCE_TYPE
ENERGY 或 BANDWIDTH。可选 — 默认为 ENERGY。
REQUESTER_ADDRESS
请求(并支付)延长费用的地址。
PRIVATE_KEY
REQUESTER_ADDRESS 的私钥,用于在本地签名 TRX 转账。
TRON_FULL_NODE
TronWeb 用于构建交易的 TRON 全节点(例如 https://api.trongrid.io)。
TRONSAVE_RECEIVER_ADDRESS
接收你付款的 TronSave 地址。主网:TWZEhq5JuUVvGtutNgnRBATbF8BnHGyn4S。测试网:TATT1UzHRikft98bRFqApFTsaSw73ycfoS。
请妥善保管你的私钥。仅在受信任的服务器环境中运行此代码 — 切勿在客户端或浏览器代码中暴露 PRIVATE_KEY。
完整的主网和测试网端点列表请参阅 环境,端点详情请参阅 Extend Orders API 参考。
完整示例
上面的 PHP getSignedTx() 函数只是一个占位符。PHP 没有官方的 TronWeb SDK,因此在发送延长请求之前,你必须使用一个兼容 TRON 的签名库来构建并签名 TRX 转账。
上面的 Python get_signed_tx() 函数只是一个占位符。在发送延长请求之前,请使用诸如 tronpy 之类的 TRON 签名库来构建并签名 TRX 转账。请注意,示例还引用了 time.time(),但 import time 这一行被注释掉了 — 运行前请取消注释或添加 import time。
工作原理
预估。
GetEstimateExtendData使用extendTo、receiver、requester、可选的maxPriceAccepted和resourceType调用/v2/get-extendable-delegates。响应中包含extendData(可延长的代理(委托))和totalEstimateTrx(以 SUN 计的费用)。签名。 如果
extendData非空,GetSignedTx会构建一笔从REQUESTER_ADDRESS发往TRONSAVE_RECEIVER_ADDRESS、金额为totalEstimateTrx的 TRX 转账,并使用PRIVATE_KEY在本地对其签名。提交。
SendExtendRequest将extendData、receiver和signedTx提交(POST)到/v2/extend-request。成功时,响应中会包含一个orderId。
maxPriceAccepted 是你愿意为延长支付的价格上限(以 SUN 计)。如果订单簿价格超过该上限,extendData 中返回的代理(委托)可能会更少。
后续步骤
Extend Orders API 参考 —
get-extendable-delegates和extend-request的完整请求和响应结构。认证 — 将私钥/签名交易流程与 API 密钥流程进行对比。
订单类型 — 了解延长订单与其他订单类型的关系。
Last updated