revm_interpreter

Trait Host

Source
pub trait Host {
    type EvmWiringT: EvmWiring;

Show 13 methods // Required methods fn env(&self) -> &EnvWiring<Self::EvmWiringT>; fn env_mut(&mut self) -> &mut EnvWiring<Self::EvmWiringT>; fn load_account_delegated( &mut self, address: Address, ) -> Option<AccountLoad>; fn block_hash(&mut self, number: u64) -> Option<B256>; fn balance(&mut self, address: Address) -> Option<StateLoad<U256>>; fn code(&mut self, address: Address) -> Option<Eip7702CodeLoad<Bytes>>; fn code_hash(&mut self, address: Address) -> Option<Eip7702CodeLoad<B256>>; fn sload( &mut self, address: Address, index: U256, ) -> Option<StateLoad<U256>>; fn sstore( &mut self, address: Address, index: U256, value: U256, ) -> Option<StateLoad<SStoreResult>>; fn tload(&mut self, address: Address, index: U256) -> U256; fn tstore(&mut self, address: Address, index: U256, value: U256); fn log(&mut self, log: Log); fn selfdestruct( &mut self, address: Address, target: Address, ) -> Option<StateLoad<SelfDestructResult>>;
}
Expand description

EVM context host.

Required Associated Types§

Source

type EvmWiringT: EvmWiring

Chain specification.

Required Methods§

Source

fn env(&self) -> &EnvWiring<Self::EvmWiringT>

Returns a reference to the environment.

Source

fn env_mut(&mut self) -> &mut EnvWiring<Self::EvmWiringT>

Returns a mutable reference to the environment.

Source

fn load_account_delegated(&mut self, address: Address) -> Option<AccountLoad>

Load an account code.

Source

fn block_hash(&mut self, number: u64) -> Option<B256>

Get the block hash of the given block number.

Source

fn balance(&mut self, address: Address) -> Option<StateLoad<U256>>

Get balance of address and if the account is cold.

Source

fn code(&mut self, address: Address) -> Option<Eip7702CodeLoad<Bytes>>

Get code of address and if the account is cold.

Source

fn code_hash(&mut self, address: Address) -> Option<Eip7702CodeLoad<B256>>

Get code hash of address and if the account is cold.

Source

fn sload(&mut self, address: Address, index: U256) -> Option<StateLoad<U256>>

Get storage value of address at index and if the account is cold.

Source

fn sstore( &mut self, address: Address, index: U256, value: U256, ) -> Option<StateLoad<SStoreResult>>

Set storage value of account address at index.

Returns StateLoad with SStoreResult that contains original/new/old storage value.

Source

fn tload(&mut self, address: Address, index: U256) -> U256

Get the transient storage value of address at index.

Source

fn tstore(&mut self, address: Address, index: U256, value: U256)

Set the transient storage value of address at index.

Source

fn log(&mut self, log: Log)

Emit a log owned by address with given LogData.

Source

fn selfdestruct( &mut self, address: Address, target: Address, ) -> Option<StateLoad<SelfDestructResult>>

Mark address to be deleted, with funds transferred to target.

Implementors§

Source§

impl<EvmWiringT> Host for DummyHost<EvmWiringT>
where EvmWiringT: EvmWiring,

Source§

type EvmWiringT = EvmWiringT