Trait InspectorFrame

pub trait InspectorFrame: Frame {
    type IT: InterpreterTypes;

    // Required methods
    fn run_inspect(
        &mut self,
        evm: &mut Self::Evm,
    ) -> Result<ItemOrResult<Self::FrameInit, Self::FrameResult>, 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§

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

It runs the frame in inspection mode.

This will internally call InspectorEvmTr::run_inspect_interpreter

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

Returns a mutable reference to the interpreter.

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.

Implementors§

§

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

Impl InspectorFrame for EthFrame.