pub trait BackendStrategyRunner:
Debug
+ Send
+ Sync {
// Required methods
fn inspect(
&self,
backend: &mut Backend,
env: &mut Env,
inspector: &mut dyn InspectorExt,
inspect_ctx: Box<dyn Any>,
) -> Result<ResultAndState>;
fn update_fork_db(
&self,
ctx: &mut dyn BackendStrategyContext,
active_fork: Option<&Fork>,
mem_db: &FoundryEvmInMemoryDB,
backend_inner: &BackendInner,
active_journaled_state: &mut JournaledState,
target_fork: &mut Fork,
);
fn merge_journaled_state_data(
&self,
ctx: &mut dyn BackendStrategyContext,
addr: Address,
active_journaled_state: &JournaledState,
fork_journaled_state: &mut JournaledState,
);
fn merge_db_account_data(
&self,
ctx: &mut dyn BackendStrategyContext,
addr: Address,
active: &ForkDB,
fork_db: &mut ForkDB,
);
fn transact_from_tx(
&self,
backend: &mut Backend,
tx: &TransactionRequest,
env: Env,
journaled_state: &mut JournaledState,
inspector: &mut dyn InspectorExt,
inspect_ctx: Box<dyn Any>,
) -> Result<()>;
}Required Methods§
fn inspect( &self, backend: &mut Backend, env: &mut Env, inspector: &mut dyn InspectorExt, inspect_ctx: Box<dyn Any>, ) -> Result<ResultAndState>
Sourcefn update_fork_db(
&self,
ctx: &mut dyn BackendStrategyContext,
active_fork: Option<&Fork>,
mem_db: &FoundryEvmInMemoryDB,
backend_inner: &BackendInner,
active_journaled_state: &mut JournaledState,
target_fork: &mut Fork,
)
fn update_fork_db( &self, ctx: &mut dyn BackendStrategyContext, active_fork: Option<&Fork>, mem_db: &FoundryEvmInMemoryDB, backend_inner: &BackendInner, active_journaled_state: &mut JournaledState, target_fork: &mut Fork, )
When creating or switching forks, we update the AccountInfo of the contract
Sourcefn merge_journaled_state_data(
&self,
ctx: &mut dyn BackendStrategyContext,
addr: Address,
active_journaled_state: &JournaledState,
fork_journaled_state: &mut JournaledState,
)
fn merge_journaled_state_data( &self, ctx: &mut dyn BackendStrategyContext, addr: Address, active_journaled_state: &JournaledState, fork_journaled_state: &mut JournaledState, )
Clones the account data from the active_journaled_state into the fork_journaled_state