# FAILED -OUT OF ENERGY решение проблемы

### Введение

В сети TRON есть 2 основных ресурса: энергия (Energy) и пропускная способность (Bandwidth).&#x20;

* **Bandwidth** - ресурс, который требуется для передачи и записи транзакции в блок
* **Energy** - ресурс, который требуется для вызова смарт-контракта

USDT - это [смарт-контракт](https://tronscan.org/#/token20/TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t) в сети TRON. При переводе USDT инициатор транзакции передает данные в блок (350 Bandwidth) и вызывает смарт-контракт (65-131k Energy).&#x20;

Если не хватает пропускной способности, транзакция не выполняется. Ее невозможно отправить в сеть.&#x20;

Если не хватает энергии, но хватает пропускной способности, то будет предпринята попытка обращения к смарт-контракту и появится ошибка <mark style="color:red;">**FAILED -OUT OF ENERGY>**</mark>. При этом стоит отметить, что даже при неудачной попытке будут потрачены ресурсы.

### Моделирование ошибки FAILED -OUT OF ENERGY вручную

Для вызова ошибки <mark style="color:red;">**FAILED -OUT OF ENERGY>**</mark> мы создали кошелек в **TronLink** и пополнили его на **6 TRX** и **10 USDT.** На кошельке 0 доступной энергии и 600 пропускной способности

<figure><img src="https://2708182524-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F05ipg3g5jeslyBFF693B%2Fuploads%2FCibzkPMSywRTLUfzJw5V%2Fooe1.png?alt=media&#x26;token=fe42b65d-3a31-4222-b861-f6cb4c63c825" alt=""><figcaption></figcaption></figure>

Для транзакции USDT необходимо минимум 65К энергии, а если энергии недостаточно, то для ее получения будут сжигаться TRX. После принятия Tron Proposal 101 (TIP-789) - стоимость энергии понизилась с 210 до 100 sun и теперь для того, чтобы получить 65000 энергии необходимо сжечь 6.5 TRX.

Так как на кошельке отсутствует энергия, а баланс составляет 6 TRX, при выполнении транзакции USDT получится всего 60000 энергии, которой не хватит. По итогу получим ошибку <mark style="color:red;">**FAILED -OUT OF ENERGY>**</mark>

Пошаговое воспроизведение ошибки:

1. В кошельке TronLink нажимаем Send
2. Вставляем адрес получателя (на нем есть USDT, поэтому стоимость транзакции должна составить 65000 энергии)
3. Отправляем 1 USDT
4. Появляется окно подтверждения транзакции
5. Пролистем вниз и увидим, что TronLink подсвечивает ошибку нехватки ресурсов. Но тем не менее позволяет подписать транзакцию, которая заведомо не может быть выполнена.

{% hint style="warning" %}
Кошелек **TronLink** является официальным для сети TRON, поэтому в нем присутствуют подсказки, расчеты и уведомления пользователя об особенностях работы блокчейна. Другие кошельки, по типу **Trust Wallet, Exodus, SafePal** etc. могут не сожержать информации о доступных ресурсах. Ошибка из-за нехватки энергии воспроизводится и зачастую без обозрвателя tronscan сложно понять причину отклонения.
{% endhint %}

<figure><img src="https://2708182524-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F05ipg3g5jeslyBFF693B%2Fuploads%2FL28tKBbJPrj7eoH1iDZB%2FsdGroup%2047221.png?alt=media&#x26;token=0250fb82-a504-4d0a-b2f3-505d8369ba62" alt=""><figcaption></figcaption></figure>

6. Если перейти в Total Consumption, то можно будет увидеть сколько какие ресурсов потребуется для успешного выполнения транзакции. В нашем случае это 64К энергии и 356 пропускной способности
7. Игнорируя предупреждение пробуем подписать транзакцию
8. TronLink выводит последнее предупреждение о нехватке ресурсов. Мы его игнорируем и нажимаем Confirm
9. Итог - Transaction Failed

<figure><img src="https://2708182524-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F05ipg3g5jeslyBFF693B%2Fuploads%2Fe8Rku5SRyPcmplDSCgvQ%2FerwreGroup%2047222.png?alt=media&#x26;token=4d1ba362-b491-468a-8ff2-6c23e4104cf4" alt=""><figcaption></figcaption></figure>

Перейдем в tronscan.org и посмотрим результаты:

1. Результат: <mark style="color:red;">**FAILED -OUT OF ENERGY>**</mark>
2. Обратим внимание на задействованные ресурсы и комиссии. Было потрачено 345 единиц пропускной способности и 60000 энергии, за счет сжигания 6 TRX.

<figure><img src="https://2708182524-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F05ipg3g5jeslyBFF693B%2Fuploads%2FdeYUHQftcs9ydMG1vpt9%2Ffailef.png?alt=media&#x26;token=44be6728-a69a-418b-87f7-e433fe3679be" alt=""><figcaption></figcaption></figure>

Воспроизведение ошибки, связанной с нехваткой ресурсов - это наглядный пример того, на какие параметры следует обращать внимание при работе со смарт-контрактами в сети TRON&#x20;

### Решение проблемы FAILED -OUT OF ENERGY с помощью энергии FeeSaver

Для того, чтобы исключить появление ошибки <mark style="color:red;">**FAILED -OUT OF ENERGY>**</mark>, адрес должен иметь достаточное количество ресурсов для выполнения транзакций.

[buy-energy](https://feesaver.gitbook.io/docs/ru/feesaver/buy-energy "mention") - если вам нужна энергия для 1 транзакции

[smart-mode](https://feesaver.gitbook.io/docs/ru/feesaver/smart-mode "mention") -  если вы делаете частые переводы с одного адреса в течение дня

[api-bot](https://feesaver.gitbook.io/docs/ru/feesaver/api-bot "mention") - если вы хотите автоматизировать персональные покупки или покупки для бизнеса

Купить энергию и пропускную способность можно в телеграм боте <https://t.me/FeeSaver_bot>

Чтобы узнать как пользоваться телеграм ботом FeeSaver изучите настоящее руководство пользователя - [bot](https://feesaver.gitbook.io/docs/ru/feesaver/bot "mention")

***

Остались вопрос? Напишите в нашу службу поддержки [t.me/feesaver\_support](https://t.me/feesaver_support)

<br>
