From ff4210ea78f415598b418fb0798f0f58f77f5889 Mon Sep 17 00:00:00 2001 From: wborgeaud Date: Wed, 2 Nov 2022 10:03:40 +0100 Subject: [PATCH] Return 0 if account doesn't exist --- evm/src/cpu/kernel/asm/balance.asm | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/evm/src/cpu/kernel/asm/balance.asm b/evm/src/cpu/kernel/asm/balance.asm index acfbf0e6..fec26db9 100644 --- a/evm/src/cpu/kernel/asm/balance.asm +++ b/evm/src/cpu/kernel/asm/balance.asm @@ -1,21 +1,23 @@ -%macro balance - // stack: address +global balance: + // stack: address, retdest %mpt_read_state_trie - // stack: account_ptr + // stack: account_ptr, retdest + DUP1 ISZERO %jumpi(retzero) // If the account pointer is null, return 0. %add_const(1) // stack: balance_ptr %mload_trie_data - // stack: balance -%endmacro - -global balance: - // stack: address, retdest - %balance // stack: balance, retdest SWAP1 JUMP -%macro selfbalance - // stack: (empty) - ADDRESS - %balance -%endmacro +retzero: + %stack (account_ptr, retdest) -> (retdest, 0) + JUMP + + +global selfbalance: + // stack: retdest + %address + PUSH balance + // stack: balance, address, retdest + JUMP +