Trait InspectSystemCallEvm

Source
pub trait InspectSystemCallEvm: InspectEvm + SystemCallEvm {
    // Required method
    fn inspect_one_system_call_with_caller(
        &mut self,
        caller: Address,
        system_contract_address: Address,
        data: Bytes,
    ) -> Result<Self::ExecutionResult, Self::Error>;

    // Provided methods
    fn inspect_one_system_call(
        &mut self,
        system_contract_address: Address,
        data: Bytes,
    ) -> Result<Self::ExecutionResult, Self::Error> { ... }
    fn inspect_system_call(
        &mut self,
        system_contract_address: Address,
        data: Bytes,
    ) -> Result<ExecResultAndState<Self::ExecutionResult, Self::State>, Self::Error> { ... }
    fn inspect_system_call_with_caller(
        &mut self,
        caller: Address,
        system_contract_address: Address,
        data: Bytes,
    ) -> Result<ExecResultAndState<Self::ExecutionResult, Self::State>, Self::Error> { ... }
    fn inspect_one_system_call_with_inspector(
        &mut self,
        system_contract_address: Address,
        data: Bytes,
        inspector: Self::Inspector,
    ) -> Result<Self::ExecutionResult, Self::Error> { ... }
    fn inspect_system_call_with_inspector(
        &mut self,
        system_contract_address: Address,
        data: Bytes,
        inspector: Self::Inspector,
    ) -> Result<ExecResultAndState<Self::ExecutionResult, Self::State>, Self::Error> { ... }
    fn inspect_one_system_call_with_inspector_and_caller(
        &mut self,
        caller: Address,
        system_contract_address: Address,
        data: Bytes,
        inspector: Self::Inspector,
    ) -> Result<Self::ExecutionResult, Self::Error> { ... }
    fn inspect_system_call_with_inspector_and_caller(
        &mut self,
        caller: Address,
        system_contract_address: Address,
        data: Bytes,
        inspector: Self::Inspector,
    ) -> Result<ExecResultAndState<Self::ExecutionResult, Self::State>, Self::Error> { ... }
}
Expand description

InspectSystemCallEvm is an API that allows inspecting system calls in the EVM.

It extends InspectEvm and [SystemCallEvm] traits to provide inspection capabilities for system transactions, enabling tracing and debugging of system calls similar to regular transactions.

Required Methods§

Source

fn inspect_one_system_call_with_caller( &mut self, caller: Address, system_contract_address: Address, data: Bytes, ) -> Result<Self::ExecutionResult, Self::Error>

Inspect a system call with the current inspector and a custom caller.

Similar to InspectEvm::inspect_one_tx but for system calls with a custom caller.

Provided Methods§

Source

fn inspect_one_system_call( &mut self, system_contract_address: Address, data: Bytes, ) -> Result<Self::ExecutionResult, Self::Error>

Inspect a system call with the current inspector.

Similar to InspectEvm::inspect_one_tx but for system calls. Uses [SYSTEM_ADDRESS] as the caller.

Source

fn inspect_system_call( &mut self, system_contract_address: Address, data: Bytes, ) -> Result<ExecResultAndState<Self::ExecutionResult, Self::State>, Self::Error>

Inspect a system call and finalize the state.

Similar to InspectEvm::inspect_tx but for system calls.

Source

fn inspect_system_call_with_caller( &mut self, caller: Address, system_contract_address: Address, data: Bytes, ) -> Result<ExecResultAndState<Self::ExecutionResult, Self::State>, Self::Error>

Inspect a system call with a custom caller and finalize the state.

Similar to InspectEvm::inspect_tx but for system calls with a custom caller.

Source

fn inspect_one_system_call_with_inspector( &mut self, system_contract_address: Address, data: Bytes, inspector: Self::Inspector, ) -> Result<Self::ExecutionResult, Self::Error>

Inspect a system call with a given inspector.

Similar to InspectEvm::inspect_one but for system calls.

Source

fn inspect_system_call_with_inspector( &mut self, system_contract_address: Address, data: Bytes, inspector: Self::Inspector, ) -> Result<ExecResultAndState<Self::ExecutionResult, Self::State>, Self::Error>

Inspect a system call with a given inspector and finalize the state.

Similar to InspectEvm::inspect but for system calls.

Source

fn inspect_one_system_call_with_inspector_and_caller( &mut self, caller: Address, system_contract_address: Address, data: Bytes, inspector: Self::Inspector, ) -> Result<Self::ExecutionResult, Self::Error>

Inspect a system call with a given inspector and caller.

Similar to InspectEvm::inspect_one but for system calls.

Source

fn inspect_system_call_with_inspector_and_caller( &mut self, caller: Address, system_contract_address: Address, data: Bytes, inspector: Self::Inspector, ) -> Result<ExecResultAndState<Self::ExecutionResult, Self::State>, Self::Error>

Inspect a system call with a given inspector and finalize the state.

Similar to InspectEvm::inspect but for system calls.

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<CTX, INSP, INST, PRECOMPILES> InspectSystemCallEvm for Evm<CTX, INSP, INST, PRECOMPILES, EthFrame<EthInterpreter>>
where CTX: ContextSetters + ContextTr<Journal: JournalTr<State = EvmState> + JournalExt, Tx: SystemCallTx>, INSP: Inspector<CTX, EthInterpreter>, INST: InstructionProvider<Context = CTX, InterpreterTypes = EthInterpreter>, PRECOMPILES: PrecompileProvider<CTX, Output = InterpreterResult>,

Source§

fn inspect_one_system_call_with_caller( &mut self, caller: Address, system_contract_address: Address, data: Bytes, ) -> Result<Self::ExecutionResult, Self::Error>

Implementors§