Le service EnergyFather aide à acheter (louer) l'énergie et la bande passante nécessaires pour envoyer des transactions en USDT et d'autres crypto-tokens TRC20 ; la bande passante est également nécessaire pour envoyer tout type de transaction sur la blockchain TRON, comme l'envoi de TRX, la réclamation de récompenses et le vote pour Super Representatives.
Procédure d'achat d'énergie
Pour acheter de l'énergie, vous devez vous inscrire au service EnergyFather, récupérer le jeton d'autorisation sur la page "Acheteur > jetons API", et compléter le solde du compte Acheteur.
Après la création d'un ordre (méthode ‘buy/energy’), l'énergie peut être livrée avec un retard de plusieurs secondes, voire de plusieurs minutes. Il est donc recommandé, lors du développement de systèmes automatisés, de vérifier périodiquement l'exécution de l'ordre en demandant l'application de la méthode ‘order/get/{guid}’.
Par exemple, si vous prévoyez d'envoyer USDT et que vous souhaitez rendre les transactions moins coûteuses en achetant de l'énergie, vous procédez comme suit :
- demander la méthode ‘buy/energy’ pour estimer la quantité d'énergie nécessaire et l'acheter,
- demande périodiquement la méthode ‘order/get/{guid}’ jusqu'à ce que l'énergie soit déléguée (cela prend généralement quelques secondes),
- envoyer USDT (l'énergie achetée sera utilisée pour payer les frais de transaction).
Notes générales
Dans cette documentation, une expression entre accolades comme ‘{guid}’ ou ‘{id}’ signifie la valeur de la variable correspondante :
- ‘{guid}’ est l'identifiant unique global de l'objet dans EnergyFather (généralement 8 chiffres),
- ‘{id}’ est le numéro séquentiel de l'objet pour cet utilisateur (la numérotation commence par ‘1’ pour chaque utilisateur).
API Point final
https://panel.energyfather.com/api/v1/private
Les demandes doivent être envoyées en utilisant la méthode POST.
Autorisation des demandes
Pour confirmer (autoriser) les demandes adressées à un API privé, un en-tête HTTP doit être transmis :
Token: {token}
La gestion des jetons d'autorisation se trouve dans le panneau de contrôle, sur la page "Acheteur > API jetons".
Par exemple, vous pouvez obtenir des informations sur la commande 123456 de la manière suivante :
CURL -X POST 'https://panel.energyfather.com/api/v1/private/order/get/123456' -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'
Statut de la commande
- "0" - En attente. La commande vient d'être créée.
- "1" - En attente du paiement. Le lien de paiement a déjà été généré, EnergyFather il attend un rappel du système de paiement. Ce statut n'est pas utilisé si la commande est payée entièrement par des fonds disponibles sur le compte interne.
- "2" - La procédure de délégation de l'énergie est en cours.
- "3" - Délégué. L'énergie est distribuée.
- "4" - Récupéré (non délégué). L'énergie est retirée en raison de la fin de la période payée.
- "5" - Payé. La commande est payée et ajoutée à la file d'attente pour la livraison d'énergie.
- "6" - Erreur.
La séquence habituelle des statuts : 0, 5, 2, 3, 4.
- /api/v1/private/buy/energy - acheter de l'énergie (payée à partir du compte interne)
- /api/v1/private/order/list - obtenir une liste de vos commandes
- /api/v1/private/order/get/{guid} - obtenir des informations sur votre commande
- /api/v1/private/account/list - obtenir une liste de vos comptes internes
- /api/v1/private/account/get/{id} - obtenir des informations sur votre compte interne
La méthode "buy/energy" - acheter de l'énergie (payée à partir du compte interne)
Demande d'achat d'énergie par un client enregistré avec débit du compte interne. L'énergie est immédiatement envoyée à l'adresse spécifiée.
Si le compte interne ne dispose pas de fonds suffisants, la commande sera créée et obtiendra instantanément le statut "6" (Erreur). Dans ce cas, vous devez vous rendre sur le panneau, déposer des fonds, puis envoyer une nouvelle demande API d'achat d'énergie.
Il existe deux façons de définir la quantité d'énergie à acheter :
a) Vous pouvez définir la quantité d'énergie exacte dans le paramètre "amount", puis vous devez également définir amount_source="amount".
b) Si vous ne savez pas combien d'énergie est nécessaire pour qu'une transaction envoie USDT ou un autre jeton, vous pouvez définir amount_source="estimate" et remplir les paramètres appropriés (estimate_to, estimate_token, estimate_adjust_percent).
buy/energy : Exemple de demande avec la quantité exacte d'énergie
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 : Exemple de demande avec calcul de la quantité d'énergie nécessaire
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 : Paramètres de la demande
- to (chaîne, obligatoire) - TRON adresse à laquelle l'énergie doit être déléguée
- period_amount (entier, obligatoire) - période d'achat de l'énergie
- period_type (chaîne, obligatoire) - type de période. Valeurs possibles : days, hours.
- format (chaîne, facultatif) - format de la réponse. Valeurs possibles : json (default), xml.
- amount_source (chaîne, obligatoire) - algorithme permettant de déterminer la quantité d'énergie déléguée. Si la valeur est "amount", la valeur du paramètre "amount" est utilisée. Si la valeur est "estimate", la quantité d'énergie requise est calculée sur la base des paramètres estimate_to, estimate_token, estimate_adjust_percent. Valeurs possibles : amount, estimate.
- amount (nombre entier, obligatoire si amount_source="amount") - quantité d'énergie à acheter. Il est ignoré si amount_source="estimate".
- estimate_to (chaîne, obligatoire si amount_source="estimate") - liste d'adresses TRON séparées par des virgules auxquelles il est prévu d'envoyer les transactions par jetons.
- estimate_token (chaîne, obligatoire si amount_source="estimate") - le jeton TRC20. Valeurs possibles (sensibles à la casse) : USDT, USDC, USDD, USDJ, JST, TUSD, stUSDT, WTRX.
- estimate_adjust_percent (décimal, obligatoire si amount_source="estimate") - la quantité d'énergie excédentaire exprimée en pourcentage. Cet excédent est nécessaire pour éviter de brûler TRX, ce qui peut se produire si l'adresse dispose exactement de la quantité d'énergie nécessaire. La valeur recommandée est 0.04%.
Important : actuellement, seules 6 périodes sont valables : 1 hour et 1, 3, 7, 15, 30 days.
buy/energy : Réponse
En cas de succès, la réponse contiendra l'ordre GUID, qui vous permettra d'obtenir ultérieurement les détails de l'ordre.
{ "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 demande contient amount_source="estimate", la réponse comporte une section supplémentaire "estimate_task". Par exemple :
{ "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 : Paramètres de réponse
- guid - l'ordre GUID
- balance - fonds actuellement disponibles sur le compte interne, TRX
- days - durée de la fourniture d'énergie en jours, si "period_type=days"
- hours - durée de la fourniture d'énergie en heures, si "period_type=hours"
- estimate_task - calcul (estimation) de l'énergie nécessaire pour envoyer TRC20 des transactions d'une TRON adresse à la liste d'une autre TRON adresse
La méthode "order/get/{guid}" - obtenir les détails de la commande
Obtenir des informations sur l'ordre spécifique.
order/get/{guid} - Exemple de demande
curl -X 'POST' 'https://panel.energyfather.com/api/v1/private/order/get/12345' -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'
order/get/{guid} - Exemple de réponse
{ "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} - Paramètres de réponse
- guid - l'ordre GUID
- balance - fonds actuellement disponibles sur le compte interne, TRX
- days - durée de la fourniture d'énergie en jours, si "period_type=days"
- hours - durée de la fourniture d'énergie en heures, si "period_type=hours"
- to - TRX adresse de livraison de l'énergie
- energy_amount - quantité d'énergie
- order_cost - coût de la commande, TRX
- order_cost_paid - montant déjà payé, TRX (en cas d'insuffisance de fonds sur le compte interne, ce montant sera inférieur à "order_cost")
- address_activation_fee - montant des frais d'activation de l'adresse de destination, TRX
- energy_delegation_fee - frais pour commande trop petite, TRX
- resource_txs - tableau contenant la liste des transactions dans la blockchain TRON où les ressources sont déléguées et réclamées (non déléguées).
- status - état de la commande, les valeurs possibles sont décrites au début de ce manuel
- payment_status - statut du paiement de la commande dans le système de paiement (les valeurs possibles dépendent du système de paiement)
La méthode "order/list" - obtenir la liste des commandes
Obtenir la liste des commandes.
order/list - Exemple de demande
curl -X 'POST' 'https://panel.energyfather.com/api/v1/private/order/list' -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'
order/list - Paramètres de la demande
- sort (chaîne, facultatif) - tri des entrées, par défaut "created_at|desc"
- per_page (entier, facultatif) - limite le nombre d'entrées par réponse
- page (entier, facultatif) - numéro séquentiel de la page de réponse
- filter (tableau de arrays(objects), facultatif) - filtre d'entrées
order/list - Exemple de réponse
{ "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 - Paramètres de réponse
- guid - GUID de la commande
- status - statut de la API réponse
La méthode "account/list" - énumération des comptes internes
Obtenir une liste des comptes internes, y compris le montant des fonds actuellement disponibles. Étant donné qu'il existe un compte interne distinct pour chaque section du site (buyer, affiliate, seller, dealer), il y a plusieurs comptes dans le compte.
account/list - Exemple de demande
curl -X 'POST' 'https://panel.energyfather.com/api/v1/private/account/list' -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'
account/list - Exemple de réponse
{ "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 - Paramètres de réponse
- guid - GUID du compte interne
- id - ID séquentiel du compte interne
- section - à quelle section EnergyFather appartient ce solde
- balance - fonds disponibles
- currency - monnaie
- user_id - GUID de l'utilisateur
La méthode "account/get/{id}" - obtenir le compte interne exact
Obtenir le solde du compte interne d'une section spécifique de EnergyFather. Chaque section ayant son propre compte (buyer, affiliate, seller, dealer), il existe plusieurs comptes pour chaque utilisateur. Vous pouvez d'abord utiliser la méthode "account/list" pour obtenir leur liste, trouver le ‘id’ du compte qui vous intéresse, puis utiliser ce ‘id’ pour obtenir le solde d'un compte particulier.
account/get/{id} - Exemple de demande
curl -X 'POST' 'https://panel.energyfather.com/api/v1/private/account/get/1' -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'
account/get/{id} - Exemple de réponse
{ "status": "ok", "data": { "guid": 64463815, "user_id": 81841325, "id": 2, "section": "buyer", "currency": "TRX", "balance": "41.704" } }
account/get/{id} - Paramètres de réponse
- guid - GUID du compte interne
- id - ID séquentiel du compte interne
- section - la section EnergyFather à laquelle appartient ce solde
- balance - fonds disponibles
- currency - monnaie
- user_id - GUID de l'utilisateur