OUT_OF_ENERGY: что это значит и как починить

OUT_OF_ENERGY означает, что при выполнении вызова смарт-контракта закончилась доступная отправителю энергия. Изменения транзакции могли быть отменены, однако сеть могла списать плату за уже выполненные вычисления. Перед повтором изучите квитанцию и фактический текст ошибки, оцените потребность именно этой транзакции в энергии и убедитесь, что достаточный объём делегирован адресу отправителя.

Что проверить перед повтором

Начните с самой неудачной транзакции: убедитесь, что в квитанции действительно указан OUT_OF_ENERGY, оцените такой же вызов при актуальном состоянии сети и сравните результат с энергией, доступной отправителю. Возможные варианты — делегировать энергию адресу отправителя, иметь достаточно TRX для возможной сетевой комиссии или получить энергию через стейкинг. Живая котировка аренды доступна только тогда, когда текущие рыночные предложения могут покрыть нужный объём и срок; перед оформлением сравните показанную цену с альтернативами.

Почему неудачная транзакция может стоить TRX

Когда при вызове контракта заканчивается энергия, изменения состояния могут быть отменены, хотя сеть уже выполнила часть вычислений. В квитанции указаны результат, расход ресурсов и фактически списанная комиссия; проверяйте её, а не делайте вывод о сумме только по названию ошибки.

Почему повышение fee limit может не помочь

Fee limit задаёт верхнюю границу TRX, которую сеть может списать за транзакцию со смарт-контрактом. Он не делегирует энергию и не исправляет другие ошибки транзакции. Более высокий лимит может позволить сети списать больше TRX при нехватке энергии у отправителя, но транзакция всё равно может завершиться ошибкой. Перед изменением лимита оцените транзакцию и изучите фактическую ошибку.

Как снизить риск повторных ошибок

Для регулярных или автоматизированных переводов оценивайте потребность в энергии для конкретного вызова контракта и состояния получателя, контролируйте доступную отправителю энергию и выделяйте ресурсы до отправки транзакции. Повторяйте оценку после значимых изменений контракта или сети и не полагайтесь на объём, которого хватило для предыдущего успешного перевода или аренды.

Когда дело вовсе не в энергии

Читайте фактическую ошибку и квитанцию транзакции. Нехватка bandwidth относится к другому ресурсу, поэтому добавление энергии её не устранит. У ошибок валидации и откатов контракта тоже могут быть другие причины: исправляйте указанную проблему, а не считайте, что любому неудачному переводу нужно больше энергии.

Частые вопросы

Вернут ли комиссию TRX за неудачную транзакцию?

TRX, фактически списанные как сетевая комиссия, как правило, не возвращаются только потому, что изменения транзакции были отменены. Перед повтором проверьте квитанцию и состав комиссии, чтобы отличить сетевое списание от других изменений баланса.

Какой объём энергии подготовить?

Единого надёжного значения для всех переводов нет. Потребность зависит от вызова контракта и актуального состояния, в том числе состояния получателя. Оцените планируемую транзакцию, заложите разумный запас и непосредственно перед отправкой проверьте доступную отправителю энергию. Котировка аренды появляется только при наличии живых рыночных предложений на нужный объём; она показывает цену, а результат исполнения зависит от самой транзакции.

Я арендовал энергию, а перевод всё равно упал. Почему?

Сначала убедитесь, что энергия делегирована адресу, который отправляет транзакцию, а не получателю токенов. Затем сравните доступную отправителю энергию со свежей оценкой и изучите квитанцию и фактическую ошибку. Правильная делегация устраняет только нехватку энергии, но не ошибку валидации, нехватку bandwidth или откат контракта по другой причине.

Возникает ли OUT_OF_ENERGY при обычном переводе TRX?

Обычный перевод TRX не исполняет токен-контракт и обычно расходует bandwidth, а не энергию смарт-контракта. Он всё равно может завершиться ошибкой по другой причине, поэтому проверяйте сообщение для конкретной транзакции.