Skip to content

Commit 684a4bd

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

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

src/evm/host.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ use crate::{
8080
onchain::{
8181
abi_decompiler::fetch_abi_evmole,
8282
flashloan::{register_borrow_txn, Flashloan},
83+
OnChain,
8384
},
8485
types::{as_u64, generate_random_address, is_zero, EVMAddress, EVMU256},
8586
vm::{is_reverted_or_control_leak, EVMState, SinglePostExecution, IN_DEPLOY, IS_FAST_CALL_STATIC},
@@ -1480,6 +1481,15 @@ where
14801481
if let Some(balance) = self.evmstate.get_balance(&receiver) {
14811482
self.evmstate.set_balance(receiver, *balance + value);
14821483
} else {
1484+
let on_chain_middleware = self
1485+
.middlewares
1486+
.read()
1487+
.unwrap()
1488+
.iter()
1489+
.find_map(|m| m.deref().borrow().as_any().downcast_ref::<OnChain>().cloned());
1490+
if let Some(mut on_chain_middleware) = on_chain_middleware {
1491+
self.next_slot = on_chain_middleware.endpoint.get_balance(receiver);
1492+
}
14831493
self.evmstate.set_balance(receiver, self.next_slot + value);
14841494
};
14851495
}

0 commit comments

Comments
 (0)