Fix account touch in calls (#1093)

This commit is contained in:
wborgeaud 2023-06-13 09:57:34 +02:00 committed by GitHub
parent ba705703a5
commit 01efa0130e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -22,12 +22,12 @@ global sys_call:
// stack: address, gas, kexit_info, value, args_offset, args_size, ret_offset, ret_size
%u256_to_addr // Truncate to 160 bits
DUP1 %insert_accessed_addresses
DUP2 %insert_touched_addresses
%call_charge_gas(1, 1)
%check_depth
%checkpoint // Checkpoint
DUP3 %insert_touched_addresses
%create_context
// stack: new_ctx, kexit_info, callgas, address, value, args_offset, args_size, ret_offset, ret_size
@ -80,6 +80,7 @@ global sys_callcode:
%check_depth
%checkpoint // Checkpoint
%address %insert_touched_addresses
// stack: kexit_info, callgas, address, value, args_offset, args_size, ret_offset, ret_size
%create_context
@ -130,7 +131,6 @@ global sys_staticcall:
// stack: address, gas, kexit_info, args_offset, args_size, ret_offset, ret_size
%u256_to_addr // Truncate to 160 bits
DUP1 %insert_accessed_addresses
DUP2 %insert_touched_addresses
// Add a value of 0 to the stack. Slightly inefficient but that way we can reuse %call_charge_gas.
%stack (cold_access, address, gas, kexit_info) -> (cold_access, address, gas, kexit_info, 0)
@ -138,6 +138,7 @@ global sys_staticcall:
%check_depth
%checkpoint // Checkpoint
DUP3 %insert_touched_addresses
// stack: kexit_info, callgas, address, value, args_offset, args_size, ret_offset, ret_size
%create_context
@ -192,6 +193,7 @@ global sys_delegatecall:
%check_depth
%checkpoint // Checkpoint
%address %insert_touched_addresses
// stack: kexit_info, callgas, address, value, args_offset, args_size, ret_offset, ret_size
%create_context