Сервис EnergyFather помогает покупать (арендовать) энергию и пропускную способность, необходимые для отправки транзакций в USDT и других крипто-токенах TRC20; пропускная способность также необходима для отправки любого типа транзакций в блокчейне TRON, таких как отправка TRX, требование вознаграждений и голосование за Super Representatives.
Процедура покупки энергии
Чтобы купить энергию, необходимо зарегистрироваться в сервисе EnergyFather, получить токен авторизации на странице "Покупатель > Токены API" и пополнить баланс счета Покупателя.
После создания ордера (метод ‘buy/energy’) энергия может поступать с задержкой в несколько секунд или даже минут, поэтому при разработке автоматизированных систем рекомендуется периодически проверять исполнение ордера, запрашивая метод ‘order/get/{guid}’.
Например, если вы планируете отправить USDT и хотите сделать транзакции дешевле, купив энергию, вы сделаете следующее:
- запросите метод ‘buy/energy’, чтобы оценить необходимое количество энергии и купить ее,
- периодически запрашивать метод ‘order/get/{guid}’, пока энергия не будет делегирована (обычно это занимает несколько секунд),
- отправьте USDT (купленная энергия будет использована для оплаты комиссии за транзакцию).
Общие замечания
В этой документации выражение, заключенное в фигурные скобки, например ‘{guid}’ или ‘{id}’, означает значение соответствующей переменной:
- ‘{guid}’ - глобальный уникальный идентификатор объекта в EnergyFather (обычно 8 цифр),
- ‘{id}’ - порядковый номер объекта для данного пользователя (нумерация начинается с ‘1’ для каждого пользователя).
API Конечная точка
https://panel.energyfather.com/api/v1/private
Отправляйте запросы, используя метод POST.
Авторизация запросов
Для подтверждения (авторизации) запросов к частному API необходимо передать заголовок HTTP:
Token: {token}
Управление токенами авторизации находится в панели управления, на странице "Покупатель > Токены API".
Например, вы можете получить информацию о заказе 123456 следующим образом:
CURL -X POST 'https://panel.energyfather.com/api/v1/private/order/get/123456' -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'
Статус заказа
- "0" - Ожидается. Заказ только что был создан.
- "1" - Ожидание платежа. Ссылка на оплату уже сгенерирована, EnergyFather ожидает обратного звонка от платежной системы. Этот статус не используется, если заказ оплачивается полностью за счет средств, имеющихся на внутреннем счете.
- "2" - Процедура делегирования энергии продолжается.
- "3" - Делегированный. Энергия отдается.
- "4" - Reclaimed (Undelegated). Энергия изымается в связи с окончанием оплаченного периода времени.
- "5" - Оплачено. Заказ оплачен и добавлен в очередь на доставку энергии.
- "6" - Ошибка.
Обычная последовательность статусов: 0, 5, 2, 3, 4.
- /api/v1/private/buy/energy - купить энергию (оплачено с внутреннего счета)
- /api/v1/private/order/list - получить список ваших заказов
- /api/v1/private/order/get/{guid} - получить информацию о вашем заказе
- /api/v1/private/account/list - получить список внутренних счетов
- /api/v1/private/account/get/{id} - получить информацию о внутреннем счете
Метод "buy/energy" - покупка энергии (оплачивается с внутреннего счета)
Запрос на покупку энергии зарегистрированным клиентом со списанием с внутреннего счета. Энергия немедленно отправляется по указанному адресу.
Если на внутреннем счете недостаточно средств, заявка будет создана и мгновенно получит статус "6" (Ошибка). В этом случае вам необходимо посетить панель, пополнить счет, а затем отправить новый запрос API на покупку энергии.
Существует два способа определения количества приобретаемой энергии:
a) Вы можете задать точное количество энергии в параметре "amount", тогда вам также следует задать amount_source="amount".
б) Если вы не знаете, сколько энергии требуется для транзакции по отправке USDT или другого токена, вы можете установить amount_source="estimate" и заполнить соответствующие параметры (estimate_to, estimate_token, estimate_adjust_percent).
buy/energy: Пример запроса с точным количеством энергии
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: Пример запроса с расчетом необходимого количества энергии
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: Запрос параметров
- to (строка, обязательно) - адрес TRON, на который должна быть передана энергия
- period_amount (целое число, требуется) - период времени для покупки энергии
- period_type (строка, обязательно) - тип временного периода. Возможные значения: days, hours.
- format (строка, необязательно) - формат ответа. Возможные значения: json (default), xml.
- amount_source (string, required) - алгоритм определения количества делегированной энергии. Если значение равно "amount", то используется значение параметра "amount". Если значение равно "estimate", то необходимое количество энергии рассчитывается на основе параметров estimate_to, estimate_token, estimate_adjust_percent. Возможные значения: amount, estimate.
- amount (целое число, требуется, если amount_source="amount") - количество приобретаемой энергии. Игнорируется, если amount_source="estimate".
- estimate_to (строка, требуется, если amount_source="estimate") - список адресов TRON, на которые планируется отправлять транзакции токенов, разделенный запятыми
- estimate_token (строка, требуется, если amount_source="estimate") - токен TRC20. Возможные значения (с учетом регистра): USDT, USDC, USDD, USDJ, JST, TUSD, stUSDT, WTRX.
- estimate_adjust_percent (десятичная, требуется, если amount_source="estimate") - количество избыточной энергии, выраженное в процентах. Этот избыток необходим для того, чтобы избежать сгорания TRX, которое может произойти, если адрес имеет ровно необходимое количество энергии. Рекомендуемое значение - 0.04%.
Важно: В настоящее время действуют только 6 периодов: 1 hour и 1, 3, 7, 15, 30 days.
buy/energy: Ответ
В случае успеха в ответе будет указан заказ GUID, по которому в дальнейшем можно будет получить его фактические данные.
{ "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" }
Если запрос содержит amount_source="estimate", то ответ содержит дополнительную секцию "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: Параметры ответа
- guid - заказ GUID
- balance - средства, имеющиеся в настоящее время на внутреннем счете, TRX
- days - продолжительность предоставления энергии в днях, если "period_type=days"
- hours - продолжительность предоставления энергии в часах, если "period_type=hours"
- estimate_task - расчет (оценка) энергии, необходимой для отправки транзакций TRC20 с одного адреса TRON в список других адресов TRON
Метод "order/get/{guid}" - получение подробной информации о заказе
Получение информации о конкретном заказе.
order/get/{guid} - Пример запроса
curl -X 'POST' 'https://panel.energyfather.com/api/v1/private/order/get/12345' -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'
order/get/{guid} - Пример ответа
{ "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} - параметры ответа
- guid - заказ GUID
- balance - средства, имеющиеся в настоящее время на внутреннем счете, TRX
- days - продолжительность предоставления энергии в днях, если "period_type=days"
- hours - продолжительность предоставления энергии в часах, если "period_type=hours"
- to - TRX адрес, по которому поставляется энергия
- energy_amount - количество энергии
- order_cost - стоимость заказа, TRX
- order_cost_paid - уже уплаченная сумма, TRX (в случае недостатка средств на внутреннем счете эта сумма будет меньше, чем "order_cost")
- address_activation_fee - размер платы за активацию адреса назначения, TRX
- energy_delegation_fee - плата за слишком маленький размер заказа, TRX
- resource_txs - массив, содержащий список транзакций в блокчейне TRON, в которых ресурсы делегированы и возвращены (не делегированы)
- status - состояние заказа, возможные значения описаны в начале данного руководства
- payment_status - статус оплаты заказа в платежной системе (возможные значения зависят от платежной системы)
Метод "order/list" - получение списка заказов
Получение списка заказов.
order/list - Пример запроса
curl -X 'POST' 'https://panel.energyfather.com/api/v1/private/order/list' -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'
order/list - Параметры запроса
- sort (строка, необязательно) - сортировка записей, по умолчанию "created_at|desc"
- per_page (целое число, необязательно) - ограничение количества записей в одном ответе
- page (целое число, необязательно) - порядковый номер страницы ответа
- filter (массив arrays(objects), необязательно) - фильтр записей
order/list - Пример ответа
{ "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 - Параметры ответа
- guid - GUID заказа
- status - статус ответа API
Метод "account/list" - перечисление внутренних счетов
Получение списка внутренних счетов, включая количество средств, доступных в данный момент. Поскольку для каждого раздела сайта (buyer, affiliate, seller, dealer) существует отдельный внутренний счет, в нем есть несколько счетов.
account/list - Пример запроса
curl -X 'POST' 'https://panel.energyfather.com/api/v1/private/account/list' -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'
account/list - Пример ответа
{ "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 - параметры ответа
- guid - GUID внутреннего счета
- id - порядковый номер ID внутреннего счета
- section - к какому разделу EnergyFather относится данный баланс
- balance - свободные средства
- currency - валюта
- user_id - GUID пользователя
Метод "account/get/{id}" - получение точного внутреннего счета
Получение баланса внутреннего счета для конкретного раздела EnergyFather. Поскольку каждый раздел имеет свой собственный счет (buyer, affiliate, seller, dealer), для каждого пользователя существует несколько счетов. Вы можете сначала использовать метод "account/list", чтобы получить их список, узнать ‘id’ интересующего вас счета, а затем использовать этот ‘id’, чтобы получить баланс конкретного счета.
account/get/{id} - Пример запроса
curl -X 'POST' 'https://panel.energyfather.com/api/v1/private/account/get/1' -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'
account/get/{id} - Пример ответа
{ "status": "ok", "data": { "guid": 64463815, "user_id": 81841325, "id": 2, "section": "buyer", "currency": "TRX", "balance": "41.704" } }
account/get/{id} - параметры ответа
- guid - GUID внутреннего счета
- id - последовательный идентификатор внутреннего счета
- section - к какому разделу EnergyFather относится данный баланс
- balance - свободные средства
- currency - валюта
- user_id - GUID пользователя