Почему неуспешная Ethereum-транзакция всё равно списывает gas?
Неуспешная Ethereum-транзакция всё равно расходует gas, потому что валидаторы уже выполнили вычисления, прежде чем контракт вызвал revert или исчерпал лимит. Изменения состояния откатываются, но проделанную работу отменить нельзя. Пользователь платит за фактически использованный gas; неиспользованный остаток лимита возвращается, кроме сценария полного out-of-gas.