pub trait FoundryContextExt: ContextTr<Block: FoundryBlock + Clone, Tx: FoundryTransaction + Clone, Cfg: FoundryCfg, Journal: JournalExt> {
// Required methods
fn block_mut(&mut self) -> &mut Self::Block;
fn tx_mut(&mut self) -> &mut Self::Tx;
fn cfg_mut(&mut self) -> &mut Self::Cfg;
fn db_journal_inner_mut(&mut self) -> (&mut Self::Db, &mut JournaledState);
// Provided methods
fn set_block(&mut self, block: Self::Block) { ... }
fn set_tx(&mut self, tx: Self::Tx) { ... }
fn set_cfg(&mut self, cfg: Self::Cfg) { ... }
fn set_journal_inner(&mut self, journal_inner: JournaledState) { ... }
fn set_evm(
&mut self,
evm_env: EvmEnv<<Self::Cfg as FoundryCfg>::Spec, Self::Block>,
)
where Self::Cfg: From<CfgEnv<<Self::Cfg as FoundryCfg>::Spec>> { ... }
fn tx_clone(&self) -> Self::Tx { ... }
fn evm_clone(&self) -> EvmEnv<<Self::Cfg as FoundryCfg>::Spec, Self::Block>
where Self::Cfg: Into<CfgEnv<<Self::Cfg as FoundryCfg>::Spec>> { ... }
}Expand description
Extension trait providing mutable field access to block, tx, and cfg environments.
[ContextTr] only exposes immutable references for block, tx, and cfg.
Cheatcodes like vm.warp(), vm.roll(), vm.chainId() need to mutate these fields.
Required Methods§
Sourcefn db_journal_inner_mut(&mut self) -> (&mut Self::Db, &mut JournaledState)
fn db_journal_inner_mut(&mut self) -> (&mut Self::Db, &mut JournaledState)
Mutable reference to the db and the journal inner.
Provided Methods§
Sourcefn set_journal_inner(&mut self, journal_inner: JournaledState)
fn set_journal_inner(&mut self, journal_inner: JournaledState)
Sets journal inner.
Sourcefn set_evm(
&mut self,
evm_env: EvmEnv<<Self::Cfg as FoundryCfg>::Spec, Self::Block>,
)
fn set_evm( &mut self, evm_env: EvmEnv<<Self::Cfg as FoundryCfg>::Spec, Self::Block>, )
Sets EVM environment.
Sourcefn evm_clone(&self) -> EvmEnv<<Self::Cfg as FoundryCfg>::Spec, Self::Block>
fn evm_clone(&self) -> EvmEnv<<Self::Cfg as FoundryCfg>::Spec, Self::Block>
Cloned EVM environment (Cfg + Block).