Trait InspectCommitEvm

pub trait InspectCommitEvm: InspectEvm + ExecuteCommitEvm {
    // Provided methods
    fn inspect_tx_commit(
        &mut self,
        tx: Self::Tx,
    ) -> Result<Self::ExecutionResult, Self::Error> { ... }
    fn inspect_commit(
        &mut self,
        tx: Self::Tx,
        inspector: Self::Inspector,
    ) -> Result<Self::ExecutionResult, Self::Error> { ... }
}
Expand description

InspectCommitEvm is a API that allows inspecting similar to InspectEvm but it has functions that commit the state diff to the database.

Functions return CommitOutput from ExecuteCommitEvm trait.

Provided Methods§

fn inspect_tx_commit( &mut self, tx: Self::Tx, ) -> Result<Self::ExecutionResult, Self::Error>

Inspect the EVM with the current inspector and previous transaction by replaying, similar to InspectEvm::inspect_tx and commit the state diff to the database.

fn inspect_commit( &mut self, tx: Self::Tx, inspector: Self::Inspector, ) -> Result<Self::ExecutionResult, Self::Error>

Inspect the EVM with the given transaction and inspector similar to InspectEvm::inspect and commit the state diff to the database.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

§

impl<CTX, INSP, PRECOMPILE> InspectCommitEvm for OpEvm<CTX, INSP, EthInstructions<EthInterpreter, CTX>, PRECOMPILE>
where CTX: OpContextTr + ContextSetters, <CTX as ContextTr>::Journal: JournalExt, <CTX as ContextTr>::Db: DatabaseCommit, INSP: Inspector<CTX>, PRECOMPILE: PrecompileProvider<CTX, Output = InterpreterResult>,

Implementors§

§

impl<CTX, INSP, INST, PRECOMPILES> InspectCommitEvm for Evm<CTX, INSP, INST, PRECOMPILES, EthFrame>
where CTX: ContextSetters + ContextTr, <CTX as ContextTr>::Journal: JournalTr<State = HashMap<Address, Account, RandomState>> + JournalExt, <CTX as ContextTr>::Db: DatabaseCommit, INSP: Inspector<CTX>, INST: InstructionProvider<Context = CTX, InterpreterTypes = EthInterpreter>, PRECOMPILES: PrecompileProvider<CTX, Output = InterpreterResult>,