Trait State

Source
pub trait State {
    type Error: StdError;

    // Required methods
    fn basic(
        &mut self,
        address: Address,
    ) -> Result<Option<AccountInfo>, Self::Error>;
    fn code_by_hash(&mut self, code_hash: B256) -> Result<Bytecode, Self::Error>;
    fn storage(
        &mut self,
        address: Address,
        index: StorageKey,
    ) -> Result<StorageValue, Self::Error>;
}
Expand description

Trait for mutable access to state data including accounts, code, and storage. This is typically used for database implementations that may modify state or need mutable access for caching purposes.

Required Associated Types§

Source

type Error: StdError

Error type for state operations

Required Methods§

Source

fn basic( &mut self, address: Address, ) -> Result<Option<AccountInfo>, Self::Error>

Gets basic account information.

Source

fn code_by_hash(&mut self, code_hash: B256) -> Result<Bytecode, Self::Error>

Gets account code by its hash.

Source

fn storage( &mut self, address: Address, index: StorageKey, ) -> Result<StorageValue, Self::Error>

Gets storage value of address at index.

Implementations on Foreign Types§

Source§

impl<'a, T: 'a + State + ?Sized> State for &'a mut T

Source§

type Error = <T as State>::Error

Source§

fn basic( &mut self, address: Address, ) -> Result<Option<AccountInfo>, Self::Error>

Source§

fn code_by_hash(&mut self, code_hash: B256) -> Result<Bytecode, Self::Error>

Source§

fn storage( &mut self, address: Address, index: StorageKey, ) -> Result<StorageValue, Self::Error>

Source§

impl<T> State for &T
where T: StateRef,

Source§

type Error = <T as StateRef>::Error

Source§

fn basic( &mut self, address: Address, ) -> Result<Option<AccountInfo>, Self::Error>

Source§

fn code_by_hash(&mut self, code_hash: B256) -> Result<Bytecode, Self::Error>

Source§

fn storage( &mut self, address: Address, index: StorageKey, ) -> Result<StorageValue, Self::Error>

Source§

impl<T> State for Arc<T>
where T: StateRef,

Source§

type Error = <T as StateRef>::Error

Source§

fn basic( &mut self, address: Address, ) -> Result<Option<AccountInfo>, Self::Error>

Source§

fn code_by_hash(&mut self, code_hash: B256) -> Result<Bytecode, Self::Error>

Source§

fn storage( &mut self, address: Address, index: StorageKey, ) -> Result<StorageValue, Self::Error>

Source§

impl<T: State + ?Sized> State for Box<T>

Source§

type Error = <T as State>::Error

Source§

fn basic( &mut self, address: Address, ) -> Result<Option<AccountInfo>, Self::Error>

Source§

fn code_by_hash(&mut self, code_hash: B256) -> Result<Bytecode, Self::Error>

Source§

fn storage( &mut self, address: Address, index: StorageKey, ) -> Result<StorageValue, Self::Error>

Implementors§