File tree Expand file tree Collapse file tree
src/ethereum/forks/amsterdam/vm Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -133,13 +133,13 @@ def access_delegation(
133133 """
134134 state = evm .message .block_env .state
135135
136- # EIP-7928: Track the authority address (delegated account being called)
137- track_address_access (state .change_tracker , address )
138-
139136 code = get_account (state , address ).code
140137 if not is_valid_delegation (code ):
141138 return False , address , code , Uint (0 )
142139
140+ # EIP-7928: Track the authority address (delegated account being called)
141+ track_address_access (state .change_tracker , address )
142+
143143 address = Address (code [EOA_DELEGATION_MARKER_LENGTH :])
144144 if address in evm .accessed_addresses :
145145 access_gas_cost = GAS_WARM_ACCESS
@@ -149,7 +149,6 @@ def access_delegation(
149149 code = get_account (state , address ).code
150150
151151 # EIP-7928: Track delegation target when loaded as call target
152- # `address` here is now the delegation target account
153152 track_address_access (state .change_tracker , address )
154153
155154 return True , address , code , access_gas_cost
Original file line number Diff line number Diff line change @@ -494,6 +494,10 @@ def callcode(evm: Evm) -> None:
494494 )
495495 charge_gas (evm , message_call_gas .cost + extend_memory .cost )
496496
497+ track_address_access (
498+ evm .message .block_env .state .change_tracker , code_address
499+ )
500+
497501 # OPERATION
498502 evm .memory += b"\x00 " * extend_memory .expand_by
499503 sender_balance = get_account (
@@ -632,6 +636,10 @@ def delegatecall(evm: Evm) -> None:
632636 )
633637 charge_gas (evm , message_call_gas .cost + extend_memory .cost )
634638
639+ track_address_access (
640+ evm .message .block_env .state .change_tracker , code_address
641+ )
642+
635643 # OPERATION
636644 evm .memory += b"\x00 " * extend_memory .expand_by
637645 generic_call (
You can’t perform that action at this time.
0 commit comments