From 8f967299c4471d99c290f6415989ec25a159c0ac Mon Sep 17 00:00:00 2001 From: Jared Wasinger Date: Thu, 18 Dec 2025 11:16:06 -0800 Subject: [PATCH] core/vm: in selfdestruct gas calculation, return early if there isn't enough gas to cover cold account access costs --- core/vm/operations_acl.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/vm/operations_acl.go b/core/vm/operations_acl.go index 085b018e4c..28bad7036c 100644 --- a/core/vm/operations_acl.go +++ b/core/vm/operations_acl.go @@ -230,7 +230,12 @@ func makeSelfdestructGasFn(refundsEnabled bool) gasFunc { // If the caller cannot afford the cost, this change will be rolled back evm.StateDB.AddAddressToAccessList(address) gas = params.ColdAccountAccessCostEIP2929 + + if contract.Gas < gas { + return gas, nil + } } + // if empty and transfers value if evm.StateDB.Empty(address) && evm.StateDB.GetBalance(contract.Address()).Sign() != 0 { gas += params.CreateBySelfdestructGas