JournalAccess

Trait JournalAccess 

Source
pub trait JournalAccess {
    // Required methods
    fn sload(&mut self, addr: Address, key: U256) -> Result<(U256, bool)>;
    fn sstore(
        &mut self,
        addr: Address,
        key: U256,
        value: U256,
    ) -> Result<SStoreInfo>;
    fn tload(&mut self, addr: Address, key: U256) -> U256;
    fn tstore(&mut self, addr: Address, key: U256, value: U256);
    fn log(&mut self, log: Log);
    fn account_balance(&mut self, addr: Address) -> Result<(U256, bool)>;
    fn account_code(&mut self, addr: Address) -> Result<(Vec<u8>, bool)>;
    fn account_codehash(&mut self, addr: Address) -> Result<(B256, bool)>;
    fn address_in_access_list(&self, addr: Address) -> bool;
    fn add_address_to_access_list(&mut self, addr: Address);
    fn is_account_empty(&mut self, addr: Address) -> Result<bool>;
}
Expand description

Object-safe trait wrapping Journal<DB> operations needed by Stylus.

By erasing the DB type parameter, StylusEvmApi becomes non-generic and trivially satisfies 'static (required by wasmer’s FunctionEnv).

Required Methods§

Source

fn sload(&mut self, addr: Address, key: U256) -> Result<(U256, bool)>

Source

fn sstore( &mut self, addr: Address, key: U256, value: U256, ) -> Result<SStoreInfo>

Source

fn tload(&mut self, addr: Address, key: U256) -> U256

Source

fn tstore(&mut self, addr: Address, key: U256, value: U256)

Source

fn log(&mut self, log: Log)

Source

fn account_balance(&mut self, addr: Address) -> Result<(U256, bool)>

Source

fn account_code(&mut self, addr: Address) -> Result<(Vec<u8>, bool)>

Source

fn account_codehash(&mut self, addr: Address) -> Result<(B256, bool)>

Source

fn address_in_access_list(&self, addr: Address) -> bool

Source

fn add_address_to_access_list(&mut self, addr: Address)

Source

fn is_account_empty(&mut self, addr: Address) -> Result<bool>

Implementations on Foreign Types§

Source§

impl<DB: Database> JournalAccess for Journal<DB>

Source§

fn sload(&mut self, addr: Address, key: U256) -> Result<(U256, bool)>

Source§

fn sstore( &mut self, addr: Address, key: U256, value: U256, ) -> Result<SStoreInfo>

Source§

fn tload(&mut self, addr: Address, key: U256) -> U256

Source§

fn tstore(&mut self, addr: Address, key: U256, value: U256)

Source§

fn log(&mut self, log: Log)

Source§

fn account_balance(&mut self, addr: Address) -> Result<(U256, bool)>

Source§

fn account_code(&mut self, addr: Address) -> Result<(Vec<u8>, bool)>

Source§

fn account_codehash(&mut self, addr: Address) -> Result<(B256, bool)>

Source§

fn address_in_access_list(&self, addr: Address) -> bool

Source§

fn add_address_to_access_list(&mut self, addr: Address)

Source§

fn is_account_empty(&mut self, addr: Address) -> Result<bool>

Implementors§