pub trait ExecutorStrategyRunner:
Debug
+ Send
+ Sync
+ ExecutorStrategyExt {
// Required methods
fn new_backend_strategy(
&self,
ctx: &dyn ExecutorStrategyContext,
) -> BackendStrategy;
fn new_cheatcodes_strategy(
&self,
ctx: &dyn ExecutorStrategyContext,
) -> CheatcodesStrategy;
fn set_balance(
&self,
executor: &mut Executor,
address: Address,
amount: U256,
) -> BackendResult<()>;
fn get_balance(
&self,
executor: &mut Executor,
address: Address,
) -> BackendResult<U256>;
fn set_nonce(
&self,
executor: &mut Executor,
address: Address,
nonce: u64,
) -> BackendResult<()>;
fn get_nonce(
&self,
executor: &mut Executor,
address: Address,
) -> BackendResult<u64>;
fn call(
&self,
ctx: &dyn ExecutorStrategyContext,
backend: &mut CowBackend<'_>,
env: &mut Env,
executor_env: &Env,
inspector: &mut InspectorStack,
) -> Result<ResultAndState>;
fn transact(
&self,
ctx: &mut dyn ExecutorStrategyContext,
backend: &mut Backend,
env: &mut Env,
executor_env: &Env,
inspector: &mut InspectorStack,
) -> Result<ResultAndState>;
}Expand description
Stateless strategy runner for ExecutorStrategy.
Required Methods§
Sourcefn new_backend_strategy(
&self,
ctx: &dyn ExecutorStrategyContext,
) -> BackendStrategy
fn new_backend_strategy( &self, ctx: &dyn ExecutorStrategyContext, ) -> BackendStrategy
Creates a new BackendStrategy.
Sourcefn new_cheatcodes_strategy(
&self,
ctx: &dyn ExecutorStrategyContext,
) -> CheatcodesStrategy
fn new_cheatcodes_strategy( &self, ctx: &dyn ExecutorStrategyContext, ) -> CheatcodesStrategy
Creates a new [CheatcodesStrategy].
Sourcefn set_balance(
&self,
executor: &mut Executor,
address: Address,
amount: U256,
) -> BackendResult<()>
fn set_balance( &self, executor: &mut Executor, address: Address, amount: U256, ) -> BackendResult<()>
Set the balance of an account.
Sourcefn get_balance(
&self,
executor: &mut Executor,
address: Address,
) -> BackendResult<U256>
fn get_balance( &self, executor: &mut Executor, address: Address, ) -> BackendResult<U256>
Gets the balance of an account
Sourcefn set_nonce(
&self,
executor: &mut Executor,
address: Address,
nonce: u64,
) -> BackendResult<()>
fn set_nonce( &self, executor: &mut Executor, address: Address, nonce: u64, ) -> BackendResult<()>
Set the nonce of an account.
Sourcefn get_nonce(
&self,
executor: &mut Executor,
address: Address,
) -> BackendResult<u64>
fn get_nonce( &self, executor: &mut Executor, address: Address, ) -> BackendResult<u64>
Returns the nonce of an account.
Sourcefn call(
&self,
ctx: &dyn ExecutorStrategyContext,
backend: &mut CowBackend<'_>,
env: &mut Env,
executor_env: &Env,
inspector: &mut InspectorStack,
) -> Result<ResultAndState>
fn call( &self, ctx: &dyn ExecutorStrategyContext, backend: &mut CowBackend<'_>, env: &mut Env, executor_env: &Env, inspector: &mut InspectorStack, ) -> Result<ResultAndState>
Execute a transaction and WITHOUT applying state changes.
Sourcefn transact(
&self,
ctx: &mut dyn ExecutorStrategyContext,
backend: &mut Backend,
env: &mut Env,
executor_env: &Env,
inspector: &mut InspectorStack,
) -> Result<ResultAndState>
fn transact( &self, ctx: &mut dyn ExecutorStrategyContext, backend: &mut Backend, env: &mut Env, executor_env: &Env, inspector: &mut InspectorStack, ) -> Result<ResultAndState>
Execute a transaction and apply state changes.