生产 API
查询订单
读取一笔属于该账户的订单,判断 Energy 何时可以使用,以及资源分配和完整租赁生命周期是否结束。
GET
/v1/energy/orders/{id}本页内容
使用创建订单时返回的 UUID,或使用其 Location 请求头中的路径。
路径参数
| 参数 | 类型 | 说明 |
|---|---|---|
id |
UUID | 公开订单标识符。 |
响应 200
{"id":"7c0c9a54-517c-4bbb-a946-bf14bf86c113","client_request_id":"order-1042","address":"TJRabPrwbZy45sbavfcjinPJC18kjpRTv8","energy":65000,"duration_minutes":60,"total_trx":"3.200000","status":"delivered","lifecycle_final":false,"delivery_final":true,"created_at":1784376000,"updated_at":1784376073,"energy_usable":true,"rental_expires_at":1784379612}
没有值的字段不会返回 null,而是整个字段都不出现:Energy 还没有到达地址的订单不带 rental_expires_at,成功的订单不带 failure。请把缺失的字段按 null 处理,不要要求它一定存在。
| 字段 | 类型 | 说明 |
|---|---|---|
status |
string | created、executing、available、delivered、rental_finished、failed 或 rental_interrupted。 |
energy_usable |
boolean | Energy 已在该地址上,可以使用。在 rental_expires_at 之前,available 和 delivered 都为 true;该时刻过后即为 false,即使状态还会显示一段时间的 delivered:租赁的结束要依据已最终确认的链上证据。 |
rental_expires_at |
integer,无值时不返回 | 已付费租赁时长结束的 Unix 秒。Energy 到达地址之前不返回该字段;状态为 failed 时同样不返回:冻结资金已全额退回,该时长也随之作废。状态为 rental_interrupted 时保留该时长,那次租赁确实开始过,只是被提前中断。 |
lifecycle_final |
boolean | 整个租赁已经结束,不会再发生状态变化。 |
delivery_final |
boolean | 分配尝试已经结束。状态为 available 时仍为 false,因为分配结果尚未经过独立验证。true 本身不代表成功,请检查 failure。 |
failure |
object,无值时不返回 | 状态为 failed 时返回 code: energy_delivery_failed,状态为 rental_interrupted 时返回 code: energy_delivery_interrupted。两者都带有该稳定的 code 和可安全显示的 message。 |
created_at、updated_at |
integer | Unix 秒。 |
何时发起您的交易?
请依据 energy_usable 判断,而不是 delivered。
{"status":"available","lifecycle_final":false,"delivery_final":false,"energy_usable":true,"rental_expires_at":1784379612}
available 表示 Energy 已分配到该地址并且可以使用,您付费的时长正在计时,直到 rental_expires_at。大约一分钟后,独立验证确认分配完成,状态变为 delivered,此时 rental_expires_at 不会改变。等待 delivered 只会白白消耗您已经付费的租赁时长。
何时停止轮询?
只有两个结束标志都为 true 才停止。完整租赁成功结束时状态为 rental_finished。failed 和 rental_interrupted 会包含 failure。
未找到
不存在的 ID 和其他账户的 ID 故意返回相同响应:
{"type":"https://rentron.xyz/docs/errors/codes#energy_order_not_found","title":"Not Found","status":404,"detail":"Order was not found.","code":"energy_order_not_found"}
Rentron