diff --git a/evm/src/cpu/kernel/asm/account_code.asm b/evm/src/cpu/kernel/asm/account_code.asm index 3b18e309..9f8cafcb 100644 --- a/evm/src/cpu/kernel/asm/account_code.asm +++ b/evm/src/cpu/kernel/asm/account_code.asm @@ -63,7 +63,7 @@ global extcodesize: %macro extcodecopy // stack: address, dest_offset, offset, size - %stack (dest_offset, offset, size) -> (dest_offset, offset, size, %%after) + %stack (address, dest_offset, offset, size) -> (address, dest_offset, offset, size, %%after) %jump(extcodecopy) %%after: %endmacro @@ -145,6 +145,7 @@ global load_code: JUMP load_code_ctd: // stack: codehash, ctx, segment, retdest + DUP1 ISZERO %jumpi(load_code_non_existent_account) PROVER_INPUT(account_code::length) // stack: code_size, codehash, ctx, segment, retdest PUSH 0 @@ -177,3 +178,7 @@ load_code_check: // stack: shouldbecodehash, codehash, retdest, code_size %assert_eq JUMP + +load_code_non_existent_account: + %stack (codehash, ctx, segment, retdest) -> (retdest, 0) + JUMP