Implement balance (#20)

This commit is contained in:
Cyrill Leutwiler
2024-06-03 12:21:49 +02:00
committed by GitHub
parent 1ba806be1f
commit 5ff17da695
6 changed files with 103 additions and 4 deletions
+25
View File
@@ -565,3 +565,28 @@ fn mcopy() {
assert_eq!(expected, received);
}
#[test]
fn balance() {
let (_, output) = assert_success(&Contract::value_balance_of(Default::default()), false);
let expected = U256::ZERO;
let received = U256::from_be_slice(&output.data);
assert_eq!(expected, received);
let expected = U256::from(54589);
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)
.call();
assert_eq!(ReturnFlags::Success, output.flags);
let received = U256::from_be_slice(&output.data);
assert_eq!(expected, received)
}