ГЛАВНАЯ / ИНСТРУКЦИИ / GAS REFUND В ETHEREUM: ПОЧЕМУ ОТОБРАЖАЕМАЯ ОЦЕНКА МОЖЕТ ИЗМЕНИТЬСЯ
Gas refund в Ethereum: почему отображаемая оценка может измениться
Словом gas refund называют несколько разных вещей. Кошелёк может показать оценку исполнения, отправитель задаёт максимальный лимит, протокол возвращает неиспользованный аванс, а отдельный счётчик EVM уменьшает итоговый расход лишь в разрешённых случаях. Чтобы понять изменение цифры, сначала выясните, какое именно значение показывает интерфейс.
Оценка, лимит и возврат не являются одной суммой
Оценка gas обычно прогнозирует вычислительный бюджет вызова по симуляции. Gas limit задаёт максимум, который транзакция может использовать. После включения receipt показывает фактический gasUsed. Если исполнения хватило меньше лимита, неизрасходованная часть предварительно зарезервированного ETH не становится комиссией: окончательный расчёт основывается на фактическом расходе и применимой цене газа.
Для EIP-1559 maxFeePerGas – верхняя граница цены за единицу, а effective gas price определяется условиями блока. Не следует умножать максимальный лимит на максимальную цену и называть результат фактически уплаченной комиссией: это верхняя оценка средств, которые должны быть доступны для отправки.
| Поле | Что означает | Где сверить |
|---|---|---|
| Estimate | Прогноз для смоделированного вызова | Кошелёк или eth_estimateGas |
| Gas limit | Максимальный бюджет транзакции | Подписанные параметры |
| Gas used | Фактический учтённый расход | Receipt |
| Effective gas price | Цена за единицу при включении | Receipt или данные блока |
EVM refund counter – отдельное правило расчёта
Некоторые операции изменения состояния исторически могли увеличить счётчик gas refund. Это не выдача ETH внутри контракта и не запас газа, которым можно расплатиться до завершения вызова. Протокол учитывает допустимый refund при итоговом расчёте транзакции после исполнения.
EIP-3529 сократил такие refunds и установил предел в одну пятую gas, использованного транзакцией, отменив возврат за SELFDESTRUCT. Эта граница касается счётчика возврата, а не обычного возврата неиспользованного аванса из-за разницы между лимитом и расходом. Правила другой EVM-сети и последующих обновлений нужно читать отдельно.
Симуляция может увидеть не то состояние, которое встретит транзакция
Оценка строится на конкретном состоянии сети и конкретных параметрах вызова. До включения могут измениться балансы, allowance, резервы пула, блоки или порядок транзакций. В результате путь исполнения может потратить больше или меньше газа, а иногда вызов вместо успеха завершится revert. Кошелёк также может обновить прогноз после изменения calldata или выбранной сети.
Разделяйте изменение количества gas и изменение цены. Результат исполнения влияет на gasUsed; база комиссии и приоритетная надбавка влияют на стоимость использованной единицы. Плавающая оценка цены сама по себе не означает, что изменился объём вычислений.
- сравните входные поля до и после оценки;
- учтите состояние и порядок операций в блоке.
Фактический расход устанавливают после включения
Откройте transaction hash в обозревателе правильной сети и найдите receipt. Сверьте gasUsed, effective gas price или эквивалентные поля клиента и статус. Для неуспешного вызова тоже может быть комиссия: работа до revert оплачивается, а состояние вызова откатывается по правилам EVM. Детали возврата средств и отображения суммы зависят от конкретного клиента.
Сохраните оценку до отправки и поля receipt после включения. Если числа отличаются, сравните calldata, состояние блока симуляции, параметры лимита и цену единицы. Не пытайтесь восстановить протокольный refund только из показанной комиссии: обычный receipt обычно сообщает итоговый расход, а не всю внутреннюю арифметику счётчика.
- сохраните снимок estimate до подписи;
- после включения используйте gasUsed из receipt.
Частые вопросы
Возвращается ли весь неиспользованный gas limit?
В лимите задаётся максимум. Комиссия рассчитывается по фактическому расходу и применимой цене, а не автоматически по всему лимиту.
Gas refund counter – это перевод ETH пользователю?
Нет. Это учитываемое при завершении исполнения правило протокольного расчёта газа.
Почему после симуляции gasUsed оказался другим?
Могли измениться состояние и порядок операций; кроме того, транзакция или данные вызова могли отличаться от симуляции.
Взимается ли комиссия при status 0?
Да. Неуспешная включённая транзакция может потратить газ на работу до отката.
Действует ли EIP-3529 одинаково во всех сетях?
Нет. Проверяйте спецификацию и обновления именно той сети, где отправлена транзакция.
Чек-лист: gas refund в ethereum: почему отображаемая оценка может измениться
- сеть и точный вызов подтверждены;
- estimate не принят за фактическое списание;
- gas limit не смешан с gasUsed;
- max fee отличён от effective gas price;
- значение refund уточнено по контексту;
- после блока прочитан receipt;
- при status 0 учтена комиссия за исполнение.
Материал подготовлен редакцией сайта и проверен 28 октября 2026 года. Условия бирж, кошельков и блокчейн-сетей могут меняться. Перед операцией сверяйте данные в интерфейсе выбранного сервиса.