diff --git a/crates/integration/src/mock_runtime.rs b/crates/integration/src/mock_runtime.rs index 2578cec2..fb05f198 100644 --- a/crates/integration/src/mock_runtime.rs +++ b/crates/integration/src/mock_runtime.rs @@ -350,6 +350,10 @@ impl State { pub fn accounts(&self) -> &HashMap { &self.accounts } + + pub fn accounts_mut(&mut self) -> &mut HashMap { + &mut self.accounts + } } fn link_host_functions(engine: &Engine) -> Linker { diff --git a/crates/integration/src/tests.rs b/crates/integration/src/tests.rs index 1af4fb7c..0e359db6 100644 --- a/crates/integration/src/tests.rs +++ b/crates/integration/src/tests.rs @@ -575,15 +575,18 @@ fn balance() { assert_eq!(expected, received); let expected = U256::from(54589); - let (state, address) = State::new_deployed(Contract::call_constructor()); + let (mut state, address) = State::new_deployed(Contract::value_balance_of(Default::default())); + state.accounts_mut().get_mut(&address).unwrap().value = expected; + let contract = Contract::value_balance_of(address); let (_, output) = state .transaction() .with_default_account(&contract.pvm_runtime) .calldata(contract.calldata) - .callvalue(expected) .call(); + assert_eq!(ReturnFlags::Success, output.flags); + let received = U256::from_be_slice(&output.data); assert_eq!(expected, received) }