From ec69830b6f4520c0d847cad3cf61d8a4da9db178 Mon Sep 17 00:00:00 2001 From: Dylan Vassallo Date: Wed, 11 Sep 2024 15:11:08 +0200 Subject: [PATCH] core/vm: remove panic when address is not present (#30414) Remove redundant address presence check in `makeGasSStoreFunc`. This PR simplifies the `makeGasSStoreFunc` function by removing the redundant check for address presence in the access list. The updated code now only checks for slot presence, streamlining the logic and eliminating unnecessary panic conditions. This change removes the unnecessary address presence check, simplifying the code and improving maintainability without affecting functionality. The previous panic condition was intended as a canary during the testing phases (i.e. _YOLOv2_) and is no longer needed. --- core/vm/operations_acl.go | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/core/vm/operations_acl.go b/core/vm/operations_acl.go index 289da44be3..1cdaaba516 100644 --- a/core/vm/operations_acl.go +++ b/core/vm/operations_acl.go @@ -39,16 +39,10 @@ func makeGasSStoreFunc(clearingRefund uint64) gasFunc { cost = uint64(0) ) // Check slot presence in the access list - if addrPresent, slotPresent := evm.StateDB.SlotInAccessList(contract.Address(), slot); !slotPresent { + if _, slotPresent := evm.StateDB.SlotInAccessList(contract.Address(), slot); !slotPresent { cost = params.ColdSloadCostEIP2929 // If the caller cannot afford the cost, this change will be rolled back evm.StateDB.AddSlotToAccessList(contract.Address(), slot) - if !addrPresent { - // Once we're done with YOLOv2 and schedule this for mainnet, might - // be good to remove this panic here, which is just really a - // canary to have during testing - panic("impossible case: address was not present in access list during sstore op") - } } value := common.Hash(y.Bytes32())