Skip to main content

BackendStrategyRunner

Trait BackendStrategyRunner 

Source
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§

Source

fn inspect( &self, backend: &mut Backend, env: &mut Env, inspector: &mut dyn InspectorExt, inspect_ctx: Box<dyn Any>, ) -> Result<ResultAndState>

Source

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

Source

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

Source

fn merge_db_account_data( &self, ctx: &mut dyn BackendStrategyContext, addr: Address, active: &ForkDB, fork_db: &mut ForkDB, )

Source

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

Implementors§