From 78badf87fa3920202bb5a010b3a69ec07cded15d Mon Sep 17 00:00:00 2001 From: Dream Wu Date: Wed, 14 Dec 2022 16:27:18 +0800 Subject: [PATCH] fix balance test --- bus-mapping/src/evm/opcodes/balance.rs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/bus-mapping/src/evm/opcodes/balance.rs b/bus-mapping/src/evm/opcodes/balance.rs index 40b5583e92..ea16d1882b 100644 --- a/bus-mapping/src/evm/opcodes/balance.rs +++ b/bus-mapping/src/evm/opcodes/balance.rs @@ -53,9 +53,10 @@ mod balance_tests { operation::{StackOp, RW}, }; use eth_types::{ - bytecode, + address, bytecode, evm_types::{OpcodeId, StackAddress}, geth_types::GethData, + Word, }; use mock::eth; use mock::test_ctx::{helpers::*, TestContext}; @@ -64,7 +65,10 @@ mod balance_tests { // If the given account doesn't exist, it will push 0 onto the stack instead. #[test] fn test_balance_of_non_exists_address() { + let address = address!("0x0000000000001111111111111111111111111111"); + let code = bytecode! { + PUSH32(address.to_word()) BALANCE STOP }; @@ -83,14 +87,23 @@ mod balance_tests { builder .handle_block(&block.eth_block, &block.geth_traces) .unwrap(); + let call_id = builder.block.txs()[0].calls()[0].call_id; - let _step = builder.block.txs()[0] + let step = builder.block.txs()[0] .steps() .iter() .find(|step| step.exec_state == ExecState::Op(OpcodeId::BALANCE)) .unwrap(); - assert_eq!(&builder.block.container.stack.len(), &0_usize); + let operation = &builder.block.container.stack[step.bus_mapping_instance[1].as_usize()]; + + assert_eq!( + { (operation.rw(), operation.op()) }, + ( + RW::WRITE, + &StackOp::new(call_id, StackAddress::from(1023), Word::zero()) + ) + ); } #[test]