ЗНАНИЯ БЕЗ ЛИШНЕГО ШУМА

Что значит revert в Ethereum и почему комиссия может списаться

Как отличить неудачное выполнение контракта от отказа до отправки, проверить receipt и посчитать плату по использованному газу.

Условная транзакция возвращается к контрольной точке

Revert означает, что изменения соответствующего вызова отменились при выполнении. Если вся транзакция включена в блок и имеет статус ошибки, плата за уже использованный газ всё равно может взиматься.

Как посчитать пример

В квитанции указаны 45 000 единиц использованного газа и эффективная цена 20 gwei. Произведение равно 900 000 gwei, или 0,0009 ETH. Значение лимита газа может быть выше. Для расчёта платы в этом примере нужен фактический расход, а не сам лимит.

Ошибка подготовки до отправки отличается от включённой транзакции. Если записи в блоке нет, сначала проверьте, публиковал ли её кошелёк. Один красный значок интерфейса не объясняет стадию сбоя.

Два разных статуса. В блоке — да. Выполнение — revert. Плата — за работу
Два разных статуса

Что отменяется

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

Пример платы. 45 000 — единиц газа. 20 gwei — за единицу. 0,0009 ETH — итого
Пример платы

Как разобрать причину

Сверьте сеть, идентификатор и статус квитанции. Затем проверьте, хватало ли разрешения токена, не истекли ли условия операции и что показывает приложение о причине отказа. Повторная отправка до выяснения причины может привести к новым расходам. См. оплату газа при USDT и разрешения ERC-20.

Поиск по сайту