The EIP execution spec says
- Pops two values from the stack:
addr
thenval
.- Charges the gas cost detailed below.
- Exceptionally halts if
addr
has any of the high 12 bytes set to a non-zero value (i.e. it does not contain a 20-byte address).
I am curious about the order of operations between charging the gas and exceptional halting when address has non-zero high 12 bytes.
One of the components of the gas cost is if the to_address
is warm or not and if the address has high bytes set to non-zero values, performing this check does not make sense. Would it more sense to provide more clarification on this?