diff --git a/core/state_transition.go b/core/state_transition.go index 48a1bcd842..b90e26dcda 100644 --- a/core/state_transition.go +++ b/core/state_transition.go @@ -1079,7 +1079,7 @@ func (st *stateTransition) applyAuthorization(rules params.Rules, auth *types.Se track.written = true } // Durable state growth of the new account - if st.state.Empty(authority) { + if !st.state.Exist(authority) { cost.StateGas += params.AccountCreationSize * st.evm.Context.CostPerStateByte } // Charge the net-new indicator bytes at most once per authority; diff --git a/core/vm/operations_acl.go b/core/vm/operations_acl.go index 3669626d5a..8221e02663 100644 --- a/core/vm/operations_acl.go +++ b/core/vm/operations_acl.go @@ -493,7 +493,7 @@ func makeCallVariantGasCallEIP8037(regularFunc regularGasFunc, stateGasFunc stat // EIP-7702 delegation check. if target, ok := types.ParseDelegation(evm.StateDB.GetCode(addr)); ok { if evm.StateDB.AddressInAccessList(target) { - eip7702Cost = params.WarmStorageReadCostEIP2929 + eip7702Cost = params.WarmAccountAccessAmsterdam } else { evm.StateDB.AddAddressToAccessList(target) eip7702Cost = coldCost diff --git a/tests/transaction_test_util.go b/tests/transaction_test_util.go index 7f021633bc..9dc9dc42f1 100644 --- a/tests/transaction_test_util.go +++ b/tests/transaction_test_util.go @@ -125,6 +125,8 @@ func (tt *TransactionTest) Run() error { {"Shanghai", true}, {"Cancun", true}, {"Prague", true}, + {"Osaka", true}, + {"Amsterdam", true}, } { expected := tt.Result[testcase.name] if expected == nil {