From c3d51efe2d47489c8ba5733a79c170b520c3886e Mon Sep 17 00:00:00 2001 From: MariusVanDerWijden Date: Tue, 28 Apr 2026 16:49:02 +0200 Subject: [PATCH] core: more fixes --- core/vm/evm.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/core/vm/evm.go b/core/vm/evm.go index 27323cfb4f..daa751b95c 100644 --- a/core/vm/evm.go +++ b/core/vm/evm.go @@ -280,6 +280,11 @@ func (evm *EVM) Call(caller common.Address, addr common.Address, input []byte, g } evm.StateDB.CreateAccount(addr) } + if evm.chainRules.IsAmsterdam { + // Compute state changed bytes for account creation. + evm.StateDB.StateChangedBytes(snapshot) + } + innerSnapshot := evm.StateDB.Snapshot() // Perform the value transfer only in non-syscall mode. // Calling this is required even for zero-value transfers, // to ensure the state clearing mechanism is applied. @@ -319,7 +324,7 @@ func (evm *EVM) Call(caller common.Address, addr common.Address, input []byte, g // evm.StateDB.DiscardSnapshot(snapshot) } else if evm.chainRules.IsAmsterdam { // Charge state costs - bytesCharged := evm.StateDB.StateChangedBytes(snapshot) + bytesCharged := evm.StateDB.StateChangedBytes(innerSnapshot) stateGasCost := GasCosts{StateGas: bytesCharged * int64(evm.Context.CostPerStateByte)} if !gas.CanAfford(stateGasCost) { gas.Exhaust()