SystemStateBackend

Trait SystemStateBackend 

Source
pub trait SystemStateBackend {
    type Error: Into<StorageError>;

    // Required method
    fn sload_system(
        &mut self,
        account: Address,
        slot: U256,
    ) -> Result<U256, Self::Error>;
}
Expand description

Non-journaled read access to system state.

Reads bypass the EVM journal: no access-list entry, no cold/warm gas tracking, no account-touch propagation. Use for ArbOS state and other system reads with no consensus relationship to user-visible EVM storage.

Writes are NOT in this trait. System-state mutations that happen inside a user-callable precompile must remain journaled so they revert with the outer tx on failure (matching geth’s StateDB semantics). Writes stay on StorageBackend.

Required Associated Types§

Source

type Error: Into<StorageError>

Concrete failure type produced by the backend. Convertible into StorageError so callers can stay uniform.

Required Methods§

Source

fn sload_system( &mut self, account: Address, slot: U256, ) -> Result<U256, Self::Error>

Reads the value at (account, slot) without journaling.

Implementations on Foreign Types§

Source§

impl SystemStateBackend for EvmInternals<'_>

Source§

type Error = StorageError

Source§

fn sload_system( &mut self, account: Address, slot: U256, ) -> Result<U256, Self::Error>

Source§

impl<D: Database> SystemStateBackend for State<D>

Source§

type Error = StorageError

Source§

fn sload_system( &mut self, account: Address, slot: U256, ) -> Result<U256, Self::Error>

Implementors§