Trait RuntimeBaseBackend

Source
pub trait RuntimeBaseBackend {
    // Required methods
    fn balance(&self, address: H160) -> U256;
    fn code(&self, address: H160) -> Vec<u8> ;
    fn storage(&self, address: H160, index: H256) -> H256;
    fn transient_storage(&self, address: H160, index: H256) -> H256;
    fn exists(&self, address: H160) -> bool;
    fn nonce(&self, address: H160) -> U256;

    // Provided methods
    fn code_size(&self, address: H160) -> U256 { ... }
    fn code_hash(&self, address: H160) -> H256 { ... }
    fn can_create(&self, address: H160) -> bool { ... }
}
Expand description

Runtime base backend. The immutable and limited part of RuntimeBackend.

Required Methods§

Source

fn balance(&self, address: H160) -> U256

Get balance of address.

Source

fn code(&self, address: H160) -> Vec<u8>

Get code of address.

Source

fn storage(&self, address: H160, index: H256) -> H256

Get storage value of address at index.

Source

fn transient_storage(&self, address: H160, index: H256) -> H256

Get transient storage value of address at index.

Source

fn exists(&self, address: H160) -> bool

Check whether an address exists.

If you are running Rust EVM on Ethereum mainnet, set the Backend to pre-EIP161 rule, and the Overlay with config for post-EIP161 rule.

Source

fn nonce(&self, address: H160) -> U256

Get the current nonce of an account.

Provided Methods§

Source

fn code_size(&self, address: H160) -> U256

Get code size of address.

Source

fn code_hash(&self, address: H160) -> H256

Get code hash of address.

The caller is responsible for checking whether the account is empty.

Source

fn can_create(&self, address: H160) -> bool

Detect for create collision. Note EIP-7610.

Implementations on Foreign Types§

Source§

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

Source§

fn balance(&self, address: H160) -> U256

Source§

fn code_size(&self, address: H160) -> U256

Source§

fn code_hash(&self, address: H160) -> H256

Source§

fn code(&self, address: H160) -> Vec<u8>

Source§

fn storage(&self, address: H160, index: H256) -> H256

Source§

fn transient_storage(&self, address: H160, index: H256) -> H256

Source§

fn exists(&self, address: H160) -> bool

Source§

fn can_create(&self, address: H160) -> bool

Source§

fn nonce(&self, address: H160) -> U256

Source§

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

Source§

fn balance(&self, address: H160) -> U256

Source§

fn code_size(&self, address: H160) -> U256

Source§

fn code_hash(&self, address: H160) -> H256

Source§

fn code(&self, address: H160) -> Vec<u8>

Source§

fn storage(&self, address: H160, index: H256) -> H256

Source§

fn transient_storage(&self, address: H160, index: H256) -> H256

Source§

fn exists(&self, address: H160) -> bool

Source§

fn can_create(&self, address: H160) -> bool

Source§

fn nonce(&self, address: H160) -> U256

Implementors§