Documentation API

Le service EnergyFather aide à acheter (louer) l'énergie et la bande passante nécessaires pour envoyer des transactions en USDT et 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 "Buyer > API tokens", et compléter le solde du compte Buyer.

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 :

  • demande 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 > Jetons API".

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 attend un rappel du système de paiement. Ce statut n'est pas utilisé si la commande est entièrement payée 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.

Méthodes API
  • /api/v1/private/buy/energy - achat d'énergie (payé à partir du compte interne)
  • /api/v1/private/order/list - obtenir la 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 pour l'achat d'énergie.

Il existe deux façons de définir la quantité d'énergie à acheter :

a) Vous pouvez définir la quantité exacte d'énergie dans le paramètre "amount", puis vous devez également définir amount_source="amount".

b) Si vous ne connaissez pas la quantité d'énergie nécessaire à une transaction pour envoyer 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) - adresse TRON à 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", c'est la valeur du paramètre "amount" qui 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 jeton.
  • 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 a exactement 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, grâce auquel vous pourrez obtenir ultérieurement ses détails réels.

{
	"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, la réponse contient une section supplémentaire "estimate_task" :

{
	"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 la 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 des transactions TRC20 d'une adresse TRON à la liste d'autres adresses TRON

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 la 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 - Demande de paramètres

  • 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 la réponse

  • guid - GUID de la commande
  • status - statut de la réponse API

La méthode "account/list" - liste des comptes internes

Obtenir une liste des comptes internes, y compris le montant des fonds actuellement disponibles. Comme 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 la 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

Obtention du 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 la réponse

  • guid - GUID du compte interne
  • id - ID séquentiel du compte interne
  • section - la section EnergyFather à laquelle ce solde appartient
  • balance - fonds disponibles
  • currency - monnaie
  • user_id - GUID de l'utilisateur