From 90bb4741b334abc2417b31b501a919310474a7dd Mon Sep 17 00:00:00 2001 From: wborgeaud Date: Wed, 7 Jun 2023 13:50:23 +0200 Subject: [PATCH] RIPEMD doesn't get untouched (#1079) --- evm/src/cpu/kernel/asm/journal/account_loaded.asm | 9 ++++++++- evm/src/cpu/kernel/asm/journal/account_touched.asm | 7 +++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/evm/src/cpu/kernel/asm/journal/account_loaded.asm b/evm/src/cpu/kernel/asm/journal/account_loaded.asm index 1c2a328a..6c3c4ba0 100644 --- a/evm/src/cpu/kernel/asm/journal/account_loaded.asm +++ b/evm/src/cpu/kernel/asm/journal/account_loaded.asm @@ -9,4 +9,11 @@ global revert_account_loaded: POP %journal_load_1 // stack: address, retdest - %jump(remove_accessed_addresses) \ No newline at end of file + DUP1 %eq_const(@RIP160) %jumpi(ripemd) + %jump(remove_accessed_addresses) + +// The address 0x3 shouldn't become unloaded. +// See https://github.com/ethereum/EIPs/issues/716. +ripemd: + // stack: address, retdest + POP JUMP diff --git a/evm/src/cpu/kernel/asm/journal/account_touched.asm b/evm/src/cpu/kernel/asm/journal/account_touched.asm index 33f3b62b..a5aea219 100644 --- a/evm/src/cpu/kernel/asm/journal/account_touched.asm +++ b/evm/src/cpu/kernel/asm/journal/account_touched.asm @@ -9,4 +9,11 @@ global revert_account_touched: POP %journal_load_1 // stack: address, retdest + DUP1 %eq_const(@RIP160) %jumpi(ripemd) %jump(remove_touched_addresses) + +// The address 0x3 shouldn't become untouched. +// See https://github.com/ethereum/EIPs/issues/716. +ripemd: + // stack: address, retdest + POP JUMP