File tree Expand file tree Collapse file tree 2 files changed +11
-4
lines changed 
src/ethereum/forks/amsterdam/vm Expand file tree Collapse file tree 2 files changed +11
-4
lines changed 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