El servicio EnergyFather ayuda a comprar (alquilar) la energía y el ancho de banda necesarios para enviar transacciones en USDT y otras criptomonedas 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, tienes que registrarte en el servicio EnergyFather, coger el token de autorización de la página "Comprador > API tokens", 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 tienes pensado enviar USDT y quieres abaratar las transacciones comprando energía, haz 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),
- enviar USDT (la energía comprada se utilizará para pagar la tasa de transacción).
Notas generales
En esta documentación, una expresión encerrada 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 empieza por ‘1’ para cada usuario).
API Punto final
https://panel.energyfather.com/api/v1/private
Envíe solicitudes utilizando el método POST.
Autorización de solicitudes
Para confirmar (autorizar) solicitudes a un API privado, se debe pasar una HTTP cabecera:
Token: {token}
La gestión de los tokens de autorización se encuentra en el panel de control, en la página "Comprador > API tokens".
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. El pedido se acaba de crear.
- "1" - En espera del 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" - Se delega. Se reparte la energía.
- "4" - Reclamado (No delegado). La energía se retira debido al final del período de tiempo pagado.
- "5" - Pagado. El pedido se paga y se añade a la cola de suministro de energía.
- "6" - Error.
La secuencia habitual de estados: 0, 5, 2, 3, 4.
- /api/v1/private/buy/energy - comprar energía (pagada desde la cuenta interna).
- /api/v1/private/order/list - obtener una lista de sus pedidos
- /api/v1/private/order/get/{guid} - Obtenga 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 (se paga 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 API solicitud de 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 sabes cuánta energía necesita una transacción para enviar USDT u otro token, puedes configurar 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) - TRON dirección a la que se va a delegar la energía.
- period_amount (entero, obligatorio) - período de tiempo para comprar energía.
- period_type (cadena, obligatorio) - tipo de período 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 debe comprarse. Se ignora si amount_source="estimate".
- estimate_to (cadena, obligatoria si amount_source="estimate"): lista separada por comas de direcciones TRON a las que está previsto enviar las transacciones de tokens.
- estimate_token (cadena, obligatorio 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 quemarse 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 detalles 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" entonces 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 disponibles actualmente 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 TRC20 transacciones de una dirección TRON a la lista de otras direcciones TRON.
El método "order/get/{guid}": obtener los 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 disponibles actualmente 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 por 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 TRON blockchain 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 del 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 - Parámetros de solicitud
- 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 - secuencial ID 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. Como cada sección tiene su propia cuenta (buyer, affiliate, seller, dealer), hay varias cuentas para cada usuario. Puedes utilizar primero el método "account/list" para obtener su lista, averiguar el ‘id’ de la cuenta de interés 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