Skip to main content

ExecutorStrategyRunner

Trait ExecutorStrategyRunner 

Source
pub trait ExecutorStrategyRunner:
    Debug
    + Send
    + Sync
    + ExecutorStrategyExt {
    // Required methods
    fn new_backend_strategy(
        &self,
        ctx: &(dyn ExecutorStrategyContext + 'static),
    ) -> BackendStrategy;
    fn new_cheatcodes_strategy(
        &self,
        ctx: &(dyn ExecutorStrategyContext + 'static),
    ) -> CheatcodeInspectorStrategy;
    fn set_balance(
        &self,
        executor: &mut Executor,
        address: Address,
        amount: Uint<256, 4>,
    ) -> Result<(), BackendError>;
    fn get_balance(
        &self,
        executor: &mut Executor,
        address: Address,
    ) -> Result<Uint<256, 4>, BackendError>;
    fn set_nonce(
        &self,
        executor: &mut Executor,
        address: Address,
        nonce: u64,
    ) -> Result<(), BackendError>;
    fn get_nonce(
        &self,
        executor: &mut Executor,
        address: Address,
    ) -> Result<u64, BackendError>;
    fn call(
        &self,
        ctx: &(dyn ExecutorStrategyContext + 'static),
        backend: &mut CowBackend<'_>,
        env: &mut Env,
        executor_env: &Env,
        inspector: &mut InspectorStack,
    ) -> Result<ExecResultAndState<ExecutionResult>, Report>;
    fn transact(
        &self,
        ctx: &mut (dyn ExecutorStrategyContext + 'static),
        backend: &mut Backend,
        env: &mut Env,
        executor_env: &Env,
        inspector: &mut InspectorStack,
    ) -> Result<ExecResultAndState<ExecutionResult>, Report>;
}
Expand description

Stateless strategy runner for ExecutorStrategy.

Required Methods§

Source

fn new_backend_strategy( &self, ctx: &(dyn ExecutorStrategyContext + 'static), ) -> BackendStrategy

Creates a new BackendStrategy.

Source

fn new_cheatcodes_strategy( &self, ctx: &(dyn ExecutorStrategyContext + 'static), ) -> CheatcodeInspectorStrategy

Creates a new CheatcodesStrategy.

Source

fn set_balance( &self, executor: &mut Executor, address: Address, amount: Uint<256, 4>, ) -> Result<(), BackendError>

Set the balance of an account.

Source

fn get_balance( &self, executor: &mut Executor, address: Address, ) -> Result<Uint<256, 4>, BackendError>

Gets the balance of an account

Source

fn set_nonce( &self, executor: &mut Executor, address: Address, nonce: u64, ) -> Result<(), BackendError>

Set the nonce of an account.

Source

fn get_nonce( &self, executor: &mut Executor, address: Address, ) -> Result<u64, BackendError>

Returns the nonce of an account.

Source

fn call( &self, ctx: &(dyn ExecutorStrategyContext + 'static), backend: &mut CowBackend<'_>, env: &mut Env, executor_env: &Env, inspector: &mut InspectorStack, ) -> Result<ExecResultAndState<ExecutionResult>, Report>

Execute a transaction and WITHOUT applying state changes.

Source

fn transact( &self, ctx: &mut (dyn ExecutorStrategyContext + 'static), backend: &mut Backend, env: &mut Env, executor_env: &Env, inspector: &mut InspectorStack, ) -> Result<ExecResultAndState<ExecutionResult>, Report>

Execute a transaction and apply state changes.

Implementors§