Skip to main content

InspectSystemCallEvm

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

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§