El servicio EnergyFather ayuda a comprar (alquilar) la energía y el ancho de banda necesarios para enviar transacciones en USDT y otros cripto-tokens TRC20; el ancho de banda también es necesario para enviar cualquier tipo de transacción en la blockchain TRON, como enviar TRX, reclamar recompensas y votar por Super Representatives.
Procedimiento de compra de energía
Para comprar energía, debe registrarse en el servicio EnergyFather, obtener el token de autorización en la página "Comprador > tokens API" y recargar el saldo de la cuenta del Comprador.
Después de crear una orden (método ‘buy/energy’) la energía puede ser entregada con un retraso de varios segundos o incluso minutos, por lo que al desarrollar sistemas automatizados se recomienda comprobar periódicamente la ejecución de la orden solicitando el método ‘order/get/{guid}’.
Por ejemplo, si tiene previsto enviar USDT y desea abaratar las transacciones comprando energía, haga lo siguiente:
- solicitar el método ‘buy/energy’ para estimar la cantidad de energía necesaria y comprarla,
- solicitar periódicamente el método ‘order/get/{guid}’ hasta que se delegue la energía (suele tardar unos segundos),
- envíe USDT (la energía comprada se utilizará para pagar la tasa de transacción).
Notas generales
En esta documentación, una expresión entre llaves como ‘{guid}’ o ‘{id}’ significa el valor de la variable correspondiente:
- ‘{guid}’ es el identificador único global del objeto en EnergyFather (normalmente 8 dígitos),
- ‘{id}’ es el número secuencial del objeto para este usuario (la numeración comienza con ‘1’ para cada usuario).
API Punto final
https://panel.energyfather.com/api/v1/private
Envíe las solicitudes utilizando el método POST.
Autorización de solicitudes
Para confirmar (autorizar) solicitudes a un API privado, debe pasarse una cabecera HTTP:
Token: {token}
La gestión de las fichas de autorización se encuentra en el panel de control, en la página "Comprador > Fichas API".
Por ejemplo, puede obtener información sobre el pedido 123456 de la siguiente manera:
CURL -X POST 'https://panel.energyfather.com/api/v1/private/order/get/123456' -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'
Estado del pedido
- "0" - Pendiente. Se acaba de crear el pedido.
- "1" - Esperando el pago. El enlace de pago ya se ha generado, EnergyFather está esperando una devolución de llamada del sistema de pago. Este estado no se utiliza si el pedido se paga íntegramente con fondos disponibles en la cuenta interna.
- "2" - El procedimiento de delegación de energía está en curso.
- "3" - Delegado. Se reparte la energía.
- "4" - Reclamada (no delegada). La energía se retira debido al final del periodo de tiempo pagado.
- "5" - Pagado. La orden se paga y se añade a la cola de entrega de energía.
- "6" - Error.
La secuencia habitual de estados: 0, 5, 2, 3, 4.
- /api/v1/private/buy/energy - compra de energía (con cargo a la cuenta interna)
- /api/v1/private/order/list - Obtenga una lista de sus pedidos
- /api/v1/private/order/get/{guid} - obtener información sobre su pedido
- /api/v1/private/account/list - obtenga una lista de sus cuentas internas
- /api/v1/private/account/get/{id} - obtener información sobre su cuenta interna
El método "buy/energy" - comprar energía (pagada con la cuenta interna)
Solicitud de compra de energía por parte de un cliente registrado con cargo a la cuenta interna. La energía se envía inmediatamente a la dirección especificada.
Si la cuenta interna no tiene fondos suficientes, la orden se creará e instantáneamente obtendrá el estado "6" (Error). En este caso es necesario visitar el panel, depositar algunos fondos y luego enviar una nueva solicitud API para la compra de energía.
Hay dos formas de definir la cantidad de energía que hay que comprar:
a) Puede establecer la cantidad exacta de energía en el parámetro "amount", entonces también debe establecer amount_source="amount".
b) Si no sabe cuánta energía se necesita para que una transacción envíe USDT u otro token, puede establecer amount_source="estimate" y rellenar los parámetros adecuados (estimate_to, estimate_token, estimate_adjust_percent).
buy/energy: Ejemplo de solicitud con la cantidad exacta de energía
curl -X 'POST' 'https://panel.energyfather.com/api/v1/private/buy/energy' -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS' -d '{ "format": "json", "to": "TQHAAJWLLEjBgYq2sjUnq4kbKfajEXEvyE", "amount_source": "amount", "amount": "31895", "period_type": "days", "period_amount": "3" }'
buy/energy: Ejemplo de solicitud con cálculo de la cantidad de energía necesaria
curl -X 'POST' 'https://panel.energyfather.com/api/v1/private/buy/energy' -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS' -d '{ "format": "json", "to": "TQHAAJWLLEjBgYq2sjUnq4kbKfajEXEvyE", "amount_source": "estimate", "estimate_to": "TLVkYEp4Ue2RpK5v1XNZAB3769g44BSZyH,TJm6HiCMVZdBHbNHThdMv1RambstJPrfYo", "estimate_token": "USDT", "estimate_adjust_percent": 0.04, "period_type": "days", "period_amount": "3" }'
buy/energy: Parámetros de solicitud
- to (cadena, obligatorio) - Dirección TRON en la que se delegará la energía
- period_amount (entero, obligatorio) - periodo de tiempo para comprar energía
- period_type (cadena, obligatorio) - tipo de periodo de tiempo. Valores posibles: days, hours.
- format (cadena, opcional) - formato de la respuesta. Valores posibles: json (default), xml.
- amount_source (cadena, obligatorio) - algoritmo para determinar la cantidad de energía delegada. Si el valor es "amount", se utiliza el valor del parámetro "amount". Si el valor es "estimate", se calcula la cantidad de energía necesaria basándose en los parámetros estimate_to, estimate_token, estimate_adjust_percent. Valores posibles: amount, estimate.
- amount (entero, obligatorio si amount_source="amount") - cantidad de energía que se va a comprar. Se ignora si amount_source="estimate".
- estimate_to (cadena, obligatoria si es amount_source="estimate") - lista separada por comas de direcciones TRON a las que está previsto enviar las transacciones de tokens.
- estimate_token (cadena, obligatoria si amount_source="estimate") - el token TRC20. Valores posibles (distingue mayúsculas de minúsculas): USDT, USDC, USDD, USDJ, JST, TUSD, stUSDT, WTRX.
- estimate_adjust_percent (decimal, obligatorio si amount_source="estimate") - la cantidad de energía sobrante expresada en porcentaje. Este exceso es necesario para evitar que se queme TRX, lo que puede ocurrir si la dirección tiene exactamente la cantidad de energía necesaria. El valor recomendado es 0.04%.
Importante: Actualmente, sólo son válidos 6 periodos: 1 hour y 1, 3, 7, 15, 30 days.
buy/energy: Respuesta
En caso de éxito, la respuesta contendrá la orden GUID, mediante la cual podrá obtener posteriormente sus datos reales.
{ "status": "ok", "data": { "guid": 81373165, "estimate_task_id": null, "status": 0, "order_cost": "6.051", "to": "TQHAAJWLLEjBgYq2sjUnq4kbKfajEXEvyE", "energy_amount": 61000, "period_type": "hours", "energy_delegation_fee": "0.561000000000000000", "address_activation_fee": "0.000000000000000000", "hours": 1, "days": 0, "estimate_task": null }, "balance": "7.29412" }
Si la solicitud contiene amount_source="estimate", la respuesta tiene una sección adicional "estimate_task". Por ejemplo:
{ "status": "ok", "data": { "guid": 77082757, "estimate_task_id": 42708906, "status": 0, "order_cost": "0.561", "to": "TQHAAJWLLEjBgYq2sjUnq4kbKfajEXEvyE", "energy_amount": null, "period_type": "hours", "energy_delegation_fee": "0.561000000000000000", "address_activation_fee": "0.000000000000000000", "hours": 1, "days": 0, "estimate_task": { "id": 42708906, "token": "USDT", "currency": "USD", "from": "TQHAAJWLLEjBgYq2sjUnq4kbKfajEXEvyE", "to": [ "TLVkYEp4Ue2RpK5v1XNZAB3769g44BSZyH", "TJm6HiCMVZdBHbNHThdMv1RambstJPrfYo" ] } }, "balance": "18.29412" }
buy/energy: Parámetros de respuesta
- guid - la orden GUID
- balance - fondos actualmente disponibles en la cuenta interna, TRX
- days - duración del suministro de energía en días, si "period_type=days"
- hours - duración del suministro de energía en horas, si "period_type=hours"
- estimate_task - cálculo (estimación) de la energía necesaria para enviar transacciones TRC20 desde una dirección TRON a la lista de otras direcciones TRON
El método "order/get/{guid}" - obtener detalles del pedido
Obtención de información sobre el pedido concreto.
order/get/{guid} - Ejemplo de solicitud
curl -X 'POST' 'https://panel.energyfather.com/api/v1/private/order/get/12345' -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'
order/get/{guid} - Ejemplo de respuesta
{ "status": "ok", "data": { "guid": 81373165, "estimate_task_id": 32301594, "status": 3, "payment_status": 0, "order_cost_paid": "4.146350000000000000", "order_cost": "4.146350000000000000", "to": "TQHAAJWLLEjBgYq2sjUnq4kbKfajEXEvyE", "energy_amount": 31895, "period_type": "hours", "energy_delegation_fee": "0.000000000000000000", "address_activation_fee": "0.000000000000000000", "hours": 1, "days": 0, "resource_txs": [ { "order_guid": 81373165, "delegate_txid": "961b6fbd7cc2090d1a65abc06bfabde1046e02d35394f6eca8d05812a6e3ab7" } ], "estimate_task": { "id": 42708906, "token": "USDT", "currency": "USD", "from": "TQHAAJWLLEjBgYq2sjUnq4kbKfajEXEvyE", "to": [ "TLVkYEp4Ue2RpK5v1XNZAB3769g44BSZyH", "TJm6HiCMVZdBHbNHThdMv1RambstJPrfYo" ] } } }
order/get/{guid} - Parámetros de respuesta
- guid - la orden GUID
- balance - fondos actualmente disponibles en la cuenta interna, TRX
- days - duración del suministro de energía en días, si "period_type=days"
- hours - duración del suministro de energía en horas, si "period_type=hours"
- to - TRX dirección donde se suministra la energía
- energy_amount - cantidad de energía
- order_cost - coste del pedido, TRX
- order_cost_paid - importe ya abonado, TRX (en caso de insuficiencia de fondos en la cuenta interna este importe será inferior a "order_cost")
- address_activation_fee - importe de la tasa de activación de la dirección de destino, TRX
- energy_delegation_fee - Tasa por pedido demasiado pequeño, TRX
- resource_txs - matriz que contiene la lista de transacciones en la cadena de bloques TRON en las que se delegan y reclaman recursos (no delegados)
- status - estado del pedido, los valores posibles se describen al principio de este manual
- payment_status - estado de pago de la orden en el sistema de pago (los valores posibles dependen del sistema de pago)
El método "order/list" - obtener la lista de pedidos
Obtención de la lista de pedidos.
order/list - Ejemplo de solicitud
curl -X 'POST' 'https://panel.energyfather.com/api/v1/private/order/list' -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'
order/list - Solicitar parámetros
- sort (cadena, opcional) - ordenación de las entradas, por defecto "created_at|desc"
- per_page (entero, opcional) - limitar el número de entradas por respuesta
- page (entero, opcional) - número secuencial de la página de respuesta
- filter (matriz de arrays(objects), opcional) - filtro de entradas
order/list - Ejemplo de respuesta
{ "current_page": 1, "data": [ { "guid": 96134274, "status": 4 }, { "guid": 81373165, "status": 3 } ], "first_page_url": "/api/v1/private/order/list?page=1", "from": 1, "last_page": 1, "last_page_url": "/api/v1/private/order/list?page=1", "links": [ { "url": null, "label": "pagination.previous", "active": false }, { "url": "/api/v1/private/order/list?page=1", "label": "1", "active": true }, { "url": null, "label": "pagination.next", "active": false } ], "next_page_url": null, "path": "/api/v1/private/order/list", "per_page": 15, "prev_page_url": null, "to": 2, "total": 2, "draw": null, "status": "ok" }
order/list - Parámetros de respuesta
- guid - GUID de la orden
- status - estado de la respuesta API
El método "account/list" - listado de cuentas internas
Obtener una lista de cuentas internas, incluyendo la cantidad de fondos disponibles actualmente. Dado que hay una cuenta interna separada para cada sección del sitio (buyer, affiliate, seller, dealer), hay múltiples cuentas en la cuenta.
account/list - Ejemplo de solicitud
curl -X 'POST' 'https://panel.energyfather.com/api/v1/private/account/list' -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'
account/list - Ejemplo de respuesta
{ "current_page": 1, "data": [ { "guid": 29778748, "user_id": 81841325, "id": 1, "section": "affiliate", "currency": "TRX", "balance": "2.511531" }, { "guid": 64463815, "user_id": 81841325, "id": 2, "section": "buyer", "currency": "TRX", "balance": "41.704" } ], "first_page_url": "/api/v1/private/account/list?page=1", "from": 1, "last_page": 1, "last_page_url": "/api/v1/private/account/list?page=1", "links": [ { "url": null, "label": "pagination.previous", "active": false }, { "url": "/api/v1/private/account/list?page=1", "label": "1", "active": true }, { "url": null, "label": "pagination.next", "active": false } ], "next_page_url": null, "path": "/api/v1/private/account/list", "per_page": 15, "prev_page_url": null, "to": 2, "total": 2, "draw": null, "status": "ok" }
account/list - Parámetros de respuesta
- guid - GUID de la cuenta interna
- id - ID secuencial de la cuenta interna
- section - a qué sección EnergyFather pertenece este saldo
- balance - fondos disponibles
- currency - moneda
- user_id - GUID del usuario
El método "account/get/{id}": obtener la cuenta interna exacta
Obtención del saldo de la cuenta interna de una sección concreta de EnergyFather. Dado que cada sección tiene su propia cuenta (buyer, affiliate, seller, dealer), existen varias cuentas para cada usuario. Puedes utilizar primero el método "account/list" para obtener su lista, averiguar el ‘id’ de la cuenta que te interese y, a continuación, utilizar este ‘id’ para obtener el saldo de una cuenta concreta.
account/get/{id} - Ejemplo de solicitud
curl -X 'POST' 'https://panel.energyfather.com/api/v1/private/account/get/1' -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'
account/get/{id} - Ejemplo de respuesta
{ "status": "ok", "data": { "guid": 64463815, "user_id": 81841325, "id": 2, "section": "buyer", "currency": "TRX", "balance": "41.704" } }
account/get/{id} - Parámetros de respuesta
- guid - GUID de la cuenta interna
- id - ID secuencial de la cuenta interna
- section - a qué sección EnergyFather pertenece este saldo
- balance - fondos disponibles
- currency - moneda
- user_id - GUID del usuario