购买 — 签名交易

使用签名交易购买能量的旧版 v0 流程 —— 预估 TRX、生成签名转账并创建订单。

签名交易流程让你可以直接从自己的钱包支付 TRX 来购买能量 —— 无需 API 密钥,因为 TRX 转账是用你的私钥签名的。共分三步:

  1. 预估 TRX —— 计算所需数量和租赁时长对应的 TRX。

  2. 获取签名交易 —— 对向 TronSave 资金地址的 TRX 转账进行签名,可自行签名或通过 API 签名。

  3. 创建订单 —— 提交签名交易以下达购买订单。

开始之前: 请确保你拥有钱包的私钥,并且钱包中持有足够的 TRX 以支付预估费用。

主网基础 URL 为 https://api.tronsave.io。如需在 TRON Nile 测试网上进行测试,请使用 https://api-dev.tronsave.io。参见环境

步骤
方法
主网
测试网(Nile)

预估 TRX

POST

https://api.tronsave.io/v0/estimate-trx

https://api-dev.tronsave.io/v0/estimate-trx

获取签名交易

POST

https://api.tronsave.io/v0/signed-tx

https://api-dev.tronsave.io/v0/signed-tx

创建订单

POST

https://api.tronsave.io/v0/buy-energy

https://api-dev.tronsave.io/v0/buy-energy


Step 1: 预估 TRX

计算给定资源数量和租赁时长所需的 TRX。响应会返回 unit_price 以及你在第 2 步中必须转账的 estimate_trx

POST https://api.tronsave.io/v0/estimate-trx

速率限制: 每 1 秒 15 个请求。

请求头

请求头
是否必需

Content-Type

application/json

请求参数

字段
位置
类型
是否必需
说明

amount

body

number

true

资源数量

buy_energy_type

body

string, number

true

"FAST"、"MEDIUM"、"SLOW" 或数字:

-"FAST":如果市场可成交率 = 100%,则 FAST = MEDIUM。如果市场可成交率 < 100%,则 FAST = MEDIUM + 10。如果市场可成交率 = 0%,则 FAST = SLOW + 20。

-"MEDIUM":使该订单获得最大市场成交量的最低价格。如果市场可成交率 = 0%,则 MEDIUM = SLOW + 10。

-"SLOW":该订单可设置的最低价格。

-如果价格为数字,则价格单位等于 SUN

duration_millisec

body

number

true

所购资源的时长,时间单位为毫秒。

request_address

body

string

false

请求者的地址。

target_address

body

string

false

资源接收地址。

is_partial

body

boolean

false

是否允许订单被部分成交。

请求体示例

响应

字段
类型
是否必需
说明

unit_price

number

true

与你的 buy_energy_type 匹配的能量价格,以 SUN 计

duration_millisec

number

true

available_energy

number

true

TronSave 市场上与 unit_price 匹配的可用能量总量

estimate_trx

number

true

duration_millisec 内以 unit_price 价格购买全部 available_energy 所需支付的预估 trx 总额

成功

estimate_trx 值以 SUN 返回(1 TRX = 1,000,000 SUN)。

错误

此端点不需要 apikey 请求头 —— 签名交易流程通过钱包签名的 TRX 转账进行身份验证,因此此处不存在身份验证错误。当请求缺少必需字段或字段无效时,会返回 400 Bad Request,其 message 会指出出错的字段:


Step 2: 获取签名交易

你需要一笔从买家地址向 TronSave 资金地址转账 estimate_trx SUN 的签名 TRX 转账。你可以自行构建,也可以让 API 来完成。

TronSave 资金地址

选项 1:编写你自己的函数

使用 tronWeb,为 estimate_trx(来自第 1 步)构建一笔 sendTrx 转账,并用买家的私钥签名:

  • BUYER_ADDRESS 是买家的公开地址。

  • PRIVATE_KEY 是买家的私钥。

  • TRONSAVE_FUND_ADDRESS 是上面显示的 TronSave 资金地址。

选项 2:使用获取签名交易 API

POST https://api.tronsave.io/v0/signed-tx

速率限制: 每 1 秒 15 个请求。

请求头

请求头
是否必需

Content-Type

application/json

请求参数

字段
位置
类型
是否必需
说明

address

body

string

true

买家的公开地址

private_key

body

string

true

买家的私钥

estimate_trx

body

number

true

需支付的 TRX 数量,以 SUN 计算。(来自第 1 步estimate_trx

请求体示例

响应

成功

错误

此端点不需要 apikey 请求头。当请求缺少必需字段或字段无效时,会返回 400 Bad Request,其 message 会指出出错的字段:


Step 3: 创建订单

将签名交易(来自第 2 步)与订单参数一起提交,以下达能量购买订单。

POST https://api.tronsave.io/v0/buy-energy

速率限制: 每 1 秒 15 个请求。

请求头

请求头
是否必需

Content-Type

application/json

此端点通过你提交的 signed_tx 进行身份验证 —— TRX 付款由你自己的钱包签名 —— 因此不需要 apikey 请求头。

请求参数

字段
类型
是否必需
说明

resource_type

string

true

"ENERGY"

unit_price

number

true

价格单位等于 SUN。

allow_partial_fill

boolean

true

是否允许订单被部分成交

target_address

string

true

资源接收地址

duration_millisec

number

true

所购资源的时长,时间单位等于毫秒。

tx_id

string

true

交易 ID

signed_tx

SignedTransaction

true

签名交易,请注意它是一个 JSON 对象(来自第 2 步signed_tx

only_create_when_fulfilled

Boolean

false

[true] => 仅当订单可被完全成交时才创建

[false] => 即使订单无法被完全成交也会创建

默认值:false

max_price_accepted

Number

false

仅当预估价格低于此值时才创建订单。

add_order_incomplete

Boolean

false

[true] => 仅当订单列表中不存在相同参数的未完成订单时才创建订单

[false] => 即使订单列表中不存在相同参数的未完成订单也会创建订单

默认值:false

请求体示例

响应

成功

message 值是所创建订单的 order_id

错误

此端点通过提交的 signed_tx 进行身份验证,因此不需要 apikey 请求头,也不存在身份验证错误。当请求缺少必需字段或字段无效时,会返回 400 Bad Request,其 message 会指出出错的字段:


请求示例

以下示例展示完整流程:预估、对向资金地址的 TRX 转账进行签名,然后创建订单。请根据需要替换 YOUR_TRON_ADDRESS、私钥和资金地址。对 TRX 转账进行签名(第 2 步,选项 1)通常使用 TRON 库;cURL 示例改用 API(第 2 步,选项 2)。

后续步骤

Last updated