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)
}