API dokumentacja

Usługa EnergyFather pomaga kupować (wynajmować) energię i przepustowość potrzebną do wysyłania transakcji w USDT i innych krypto-tokenach TRC20; przepustowość jest również potrzebna do wysyłania dowolnego rodzaju transakcji na blockchainie TRON, takich jak wysyłanie TRX, odbieranie nagród i głosowanie na Super Representatives.

Procedura zakupu energii

Aby kupić energię, należy zarejestrować się w usłudze EnergyFather, pobrać token autoryzacyjny ze strony "Kupujący > API tokeny" i doładować saldo konta kupującego.

Po utworzeniu zlecenia (metoda ‘buy/energy’) energia może zostać dostarczona z opóźnieniem wynoszącym kilka sekund lub nawet minut, dlatego podczas tworzenia zautomatyzowanych systemów zaleca się okresowe sprawdzanie realizacji zlecenia za pomocą metody ‘order/get/{guid}’.

Na przykład, jeśli planujesz wysłać USDT i chcesz, aby transakcje były tańsze poprzez zakup energii, wykonujesz następujące czynności:

  • poproś o metodę ‘buy/energy’, aby oszacować potrzebną ilość energii i ją kupić,
  • okresowo żądać ‘order/get/{guid}’ metody, dopóki energia nie zostanie przekazana (zwykle zajmuje to kilka sekund),
  • wysłać USDT (zakupiona energia zostanie wykorzystana do uiszczenia opłaty transakcyjnej).

Uwagi ogólne

W tej dokumentacji wyrażenie ujęte w nawiasy klamrowe, takie jak ‘{guid}’ lub ‘{id}’, oznacza wartość odpowiedniej zmiennej:

  • ‘{guid}’ to globalny unikalny identyfikator obiektu w EnergyFather (zwykle 8 cyfr),
  • ‘{id}’ to kolejny numer obiektu dla tego użytkownika (numeracja zaczyna się od ‘1’ dla każdego użytkownika).

Punkt końcowy

https://panel.energyfather.com/api/v1/private

Wysyłaj żądania przy użyciu metody POST.

Autoryzacja żądań

Aby potwierdzić (autoryzować) żądania do prywatnego API, należy przekazać nagłówek HTTP:

Token: {token}

Zarządzanie tokenami autoryzacyjnymi znajduje się w panelu sterowania, na stronie "Kupujący > API tokeny".

Na przykład informacje o zamówieniu 123456 można uzyskać w następujący sposób:

CURL -X POST 'https://panel.energyfather.com/api/v1/private/order/get/123456' 
-H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'

Status zamówienia

  • "0" - Oczekujące. Zamówienie zostało właśnie utworzone.
  • "1" - Oczekiwanie na płatność. Link do płatności został już wygenerowany, EnergyFather oczekuje na oddzwonienie z systemu płatności. Ten status nie jest używany, jeśli zamówienie jest opłacane w całości ze środków dostępnych na koncie wewnętrznym.
  • "2" - Procedura delegowania energii jest w toku.
  • "3" - Delegowany. Energia jest rozdawana.
  • "4" - Odzyskana (nieodebrana). Energia jest wycofywana z powodu zakończenia opłaconego okresu.
  • "5" - Opłacone. Zamówienie zostało opłacone i dodane do kolejki dostaw energii.
  • "6" - Błąd.

Zwykła sekwencja statusów: 0, 5, 2, 3, 4.

Metody
  • /api/v1/private/buy/energy - zakup energii (płatne z konta wewnętrznego)
  • /api/v1/private/order/list - uzyskać listę swoich zamówień
  • /api/v1/private/order/get/{guid} - uzyskać informacje o swoim zamówieniu
  • /api/v1/private/account/list - uzyskać listę kont wewnętrznych
  • /api/v1/private/account/get/{id} - uzyskanie informacji o swoim koncie wewnętrznym

Metoda "buy/energy" - zakup energii (płatne z konta wewnętrznego)

Żądanie zakupu energii przez zarejestrowanego klienta z obciążeniem konta wewnętrznego. Energia jest natychmiast wysyłana na podany adres.

Jeśli na koncie wewnętrznym nie ma wystarczających środków, zamówienie zostanie utworzone i natychmiast otrzyma status "6" (Błąd). W takim przypadku należy odwiedzić panel, wpłacić środki, a następnie wysłać nowy API wniosek o zakup energii.

Istnieją dwa sposoby zdefiniowania ilości energii do zakupu:

a) Możesz ustawić dokładną ilość energii w parametrze "amount", a następnie powinieneś również ustawić amount_source="amount".

b) Jeśli nie wiesz, ile energii wymaga transakcja, aby wysłać USDT lub inny token, możesz ustawić amount_source="estimate" i wypełnić odpowiednie parametry (estimate_to, estimate_token, estimate_adjust_percent).

buy/energy: Przykładowe żądanie z dokładną ilością energii

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: Przykładowe żądanie z obliczeniem potrzebnej ilości energii

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: Parametry żądania

  • to (ciąg znaków, wymagany) - TRON adres, na który ma zostać przekazana energia
  • period_amount (liczba całkowita, wymagana) - okres zakupu energii
  • period_type (ciąg znaków, wymagany) - typ przedziału czasowego. Możliwe wartości: days, hours.
  • format (ciąg znaków, opcjonalnie) - format odpowiedzi. Możliwe wartości: json (default), xml.
  • amount_source (ciąg znaków, wymagany) - algorytm określania ilości delegowanej energii. Jeśli wartość wynosi "amount", używana jest wartość parametru "amount". Jeśli wartość wynosi "estimate", wymagana ilość energii jest obliczana na podstawie parametrów estimate_to, estimate_token, estimate_adjust_percent. Możliwe wartości: amount, estimate.
  • amount (liczba całkowita, wymagana, jeśli amount_source="amount") - ilość energii do zakupu. Jest ignorowana, jeśli amount_source="estimate".
  • estimate_to (ciąg znaków, wymagany, jeśli amount_source="estimate") - rozdzielona przecinkami lista TRON adresów, na które mają być wysyłane transakcje tokenem
  • estimate_token (ciąg znaków, wymagany, jeśli amount_source="estimate") - token TRC20. Możliwe wartości (z uwzględnieniem wielkości liter): USDT, USDC, USDD, USDJ, JST, TUSD, stUSDT, WTRX.
  • estimate_adjust_percent (dziesiętnie, wymagane, jeśli amount_source="estimate") - nadwyżka energii wyrażona w procentach. Ten nadmiar jest potrzebny, aby uniknąć spalenia TRX, co może się zdarzyć, jeśli adres ma dokładnie wymaganą ilość energii. Zalecana wartość to 0.04%.

Ważne: Obecnie ważnych jest tylko 6 okresów: 1 hour i 1, 3, 7, 15, 30 days.

buy/energy: Odpowiedź

W przypadku powodzenia, odpowiedź będzie zawierać zamówienie GUID, dzięki któremu można później uzyskać jego rzeczywiste szczegóły.

{
	"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"
}

Jeśli żądanie zawiera amount_source="estimate", odpowiedź ma dodatkową sekcję "estimate_task". Na przykład:

{
	"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: Parametry odpowiedzi

  • guid - kolejność GUID
  • balance - środki aktualnie dostępne na koncie wewnętrznym, TRX
  • days - okres dostarczania energii w dniach, jeśli "period_type=days"
  • hours - czas dostarczania energii w godzinach, jeśli "period_type=hours"
  • estimate_task - obliczenie (oszacowanie) energii potrzebnej do wysłania TRC20 transakcji z jednego TRON adresu na listę innych TRON adresów

Metoda "order/get/{guid}" - uzyskiwanie szczegółów zamówienia

Uzyskanie informacji o konkretnym zamówieniu.

Przykładowe żądanie

curl -X 'POST' 
  'https://panel.energyfather.com/api/v1/private/order/get/12345' 
  -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'

Przykładowa odpowiedź

{
	"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} - Parametry odpowiedzi

  • guid - kolejność GUID
  • balance - środki aktualnie dostępne na koncie wewnętrznym, TRX
  • days - okres dostarczania energii w dniach, jeśli "period_type=days"
  • hours - czas dostarczania energii w godzinach, jeśli "period_type=hours"
  • to - TRX adres, pod który dostarczana jest energia
  • energy_amount - ilość energii
  • order_cost - koszt zamówienia, TRX
  • order_cost_paid - kwota już zapłacona, TRX (w przypadku niewystarczających środków na koncie wewnętrznym kwota ta będzie mniejsza niż "order_cost")
  • address_activation_fee - wysokość opłaty za aktywację adresu docelowego, TRX
  • energy_delegation_fee - opłata za zbyt małe zamówienie, TRX
  • resource_txs - tablica zawierająca listę transakcji w TRON blockchainie, w których zasoby są delegowane i odzyskiwane (undelegated).
  • status - status zamówienia, możliwe wartości opisano na początku niniejszej instrukcji.
  • payment_status - status płatności zamówienia w systemie płatności (możliwe wartości zależą od systemu płatności)

Metoda "order/list" - pobieranie listy zamówień

Pobieranie listy zamówień.

Przykładowe żądanie

curl -X 'POST' 
  'https://panel.energyfather.com/api/v1/private/order/list' 
  -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'

order/list - Parametry żądania

  • sort (ciąg znaków, opcjonalnie) - sortowanie wpisów, domyślnie "created_at|desc"
  • per_page (liczba całkowita, opcjonalnie) - ograniczenie liczby wpisów na odpowiedź
  • page (liczba całkowita, opcjonalnie) - kolejny numer strony odpowiedzi
  • filter (tablica arrays(objects), opcjonalnie) - filtr wpisów

Przykładowa odpowiedź

{
	"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 - Parametry odpowiedzi

  • guid - identyfikator GUID zamówienia
  • status - status API odpowiedzi

Metoda "account/list" - zestawienie kont wewnętrznych

Uzyskanie listy kont wewnętrznych, w tym kwoty aktualnie dostępnych środków. Ponieważ dla każdej sekcji witryny istnieje oddzielne konto wewnętrzne (buyer, affiliate, seller, dealer), na koncie znajduje się wiele kont.

Przykładowe żądanie

curl -X 'POST' 
  'https://panel.energyfather.com/api/v1/private/account/list' 
  -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'

Przykładowa odpowiedź

{
	"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 - Parametry odpowiedzi

  • guid - GUID konta wewnętrznego
  • id - sekwencyjne ID konta wewnętrznego
  • section - do której sekcji EnergyFather należy to saldo
  • balance - dostępne środki
  • currency - waluta
  • user_id - GUID użytkownika

Metoda "account/get/{id}" - uzyskanie dokładnego konta wewnętrznego

Uzyskanie salda konta wewnętrznego dla określonej sekcji EnergyFather. Ponieważ każda sekcja ma własne konto (buyer, affiliate, seller, dealer), istnieje kilka kont dla każdego użytkownika. Możesz najpierw użyć metody "account/list", aby uzyskać ich listę, znaleźć ‘id’ interesującego Cię konta, a następnie użyć tej ‘id’, aby uzyskać saldo określonego konta.

Przykładowe żądanie

curl -X 'POST' 
  'https://panel.energyfather.com/api/v1/private/account/get/1' 
  -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'

Przykładowa odpowiedź

{
	"status": "ok",
	"data": {
		"guid": 64463815,
		"user_id": 81841325,
		"id": 2,
		"section": "buyer",
		"currency": "TRX",
		"balance": "41.704"
	}
}

account/get/{id} - Parametry odpowiedzi

  • guid - GUID konta wewnętrznego
  • id - kolejny identyfikator konta wewnętrznego
  • section - do której sekcji EnergyFather należy to saldo
  • balance - dostępne środki
  • currency - waluta
  • user_id - GUID użytkownika