Skip to main content

InspectCommitEvm

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".

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, FbBuildHasher<20>>> + JournalExt, <CTX as ContextTr>::Db: DatabaseCommit, INSP: Inspector<CTX>, INST: InstructionProvider<Context = CTX, InterpreterTypes = EthInterpreter>, PRECOMPILES: PrecompileProvider<CTX, Output = InterpreterResult>,