Skip to content

Commit e46790f

Browse files
committed
get initial onchain balance for call receiver
1 parent 6b1c2d8 commit e46790f

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

src/evm/host.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ use crate::{
7979
mutator::AccessPattern,
8080
onchain::{
8181
abi_decompiler::fetch_abi_evmole,
82-
flashloan::{register_borrow_txn, Flashloan},
82+
flashloan::{register_borrow_txn, Flashloan}, OnChain,
8383
},
8484
types::{as_u64, generate_random_address, is_zero, EVMAddress, EVMU256},
8585
vm::{is_reverted_or_control_leak, EVMState, SinglePostExecution, IN_DEPLOY, IS_FAST_CALL_STATIC},
@@ -1480,6 +1480,12 @@ where
14801480
if let Some(balance) = self.evmstate.get_balance(&receiver) {
14811481
self.evmstate.set_balance(receiver, *balance + value);
14821482
} else {
1483+
let on_chain_middleware = self.middlewares.read().unwrap().iter().find_map(|m| {
1484+
m.deref().borrow().as_any().downcast_ref::<OnChain>().cloned()
1485+
});
1486+
if let Some(mut on_chain_middleware) = on_chain_middleware {
1487+
self.next_slot = on_chain_middleware.endpoint.get_balance(receiver);
1488+
}
14831489
self.evmstate.set_balance(receiver, self.next_slot + value);
14841490
};
14851491
}

0 commit comments

Comments
 (0)