Trait InspectorFrame

Source
pub trait InspectorFrame: Frame {
    type IT: InterpreterTypes;

    // Required methods
    fn run_inspect(
        &mut self,
        evm: &mut Self::Evm,
    ) -> Result<FrameInitOrResult<Self>, Self::Error>;
    fn interpreter(&mut self) -> &mut Interpreter<Self::IT>;
    fn frame_input(&self) -> &FrameInput;
}
Expand description

Traits that extends the Frame with additional functionality that is needed for inspection

It is implemented for EthFrame as default Ethereum frame implementation.

Required Associated Types§

Required Methods§

Source

fn run_inspect( &mut self, evm: &mut Self::Evm, ) -> Result<FrameInitOrResult<Self>, Self::Error>

It runs the frame in inspection mode.

This will internally call InspectorEvmTr::run_inspect_interpreter

Source

fn interpreter(&mut self) -> &mut Interpreter<Self::IT>

Returns a mutable reference to the interpreter.

Source

fn frame_input(&self) -> &FrameInput

Returns a reference to the frame input. Frame input is needed for call/create/eofcreate crate::Inspector methods

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§

Source§

impl<EVM, ERROR> InspectorFrame for EthFrame<EVM, ERROR, EthInterpreter>
where EVM: EvmTr<Context: ContextTr, Precompiles: PrecompileProvider<EVM::Context, Output = InterpreterResult>, Instructions: InstructionProvider<Context = EVM::Context, InterpreterTypes = EthInterpreter>> + InspectorEvmTr, ERROR: From<ContextTrDbError<EVM::Context>> + FromStringError,

Impl InspectorFrame for EthFrame.

Source§

type IT = EthInterpreter

Source§

fn run_inspect( &mut self, evm: &mut Self::Evm, ) -> Result<FrameInitOrResult<Self>, Self::Error>

Source§

fn interpreter(&mut self) -> &mut Interpreter<Self::IT>

Source§

fn frame_input(&self) -> &FrameInput

Implementors§