Trait RuntimeBackend

Source
pub trait RuntimeBackend: RuntimeBaseBackend {
Show 18 methods // Required methods fn original_storage(&self, address: H160, index: H256) -> H256; fn deleted(&self, address: H160) -> bool; fn created(&self, address: H160) -> bool; fn is_cold(&self, address: H160, index: Option<H256>) -> bool; fn mark_hot(&mut self, address: H160, kind: TouchKind); fn mark_storage_hot(&mut self, address: H160, index: H256); fn set_storage( &mut self, address: H160, index: H256, value: H256, ) -> Result<(), ExitError>; fn set_transient_storage( &mut self, address: H160, index: H256, value: H256, ) -> Result<(), ExitError>; fn log(&mut self, log: Log) -> Result<(), ExitError>; fn mark_delete_reset(&mut self, address: H160); fn mark_create(&mut self, address: H160); fn reset_storage(&mut self, address: H160); fn set_code( &mut self, address: H160, code: Vec<u8>, origin: SetCodeOrigin, ) -> Result<(), ExitError>; fn deposit(&mut self, target: H160, value: U256); fn withdrawal(&mut self, source: H160, value: U256) -> Result<(), ExitError>; fn inc_nonce(&mut self, address: H160) -> Result<(), ExitError>; // Provided methods fn is_hot(&self, address: H160, index: Option<H256>) -> bool { ... } fn transfer(&mut self, transfer: Transfer) -> Result<(), ExitError> { ... }
}
Expand description

The distinguish between RuntimeBaseBackend and RuntimeBackend is for the implementation of overlays.

Required Methods§

Source

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

Get original storage value of address at index.

Source

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

Check whether an address has already been deleted.

Source

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

Check whether an address has already been created in the transaction.

Source

fn is_cold(&self, address: H160, index: Option<H256>) -> bool

Checks if the address or (address, index) pair has been previously accessed.

Source

fn mark_hot(&mut self, address: H160, kind: TouchKind)

Mark an address as hot.

Source

fn mark_storage_hot(&mut self, address: H160, index: H256)

Mark an (address, index) pair as hot.

Source

fn set_storage( &mut self, address: H160, index: H256, value: H256, ) -> Result<(), ExitError>

Set storage value of address at index.

Source

fn set_transient_storage( &mut self, address: H160, index: H256, value: H256, ) -> Result<(), ExitError>

Set transient storage value of address at index, transient storage gets discarded after every transaction. (see EIP-1153)

Source

fn log(&mut self, log: Log) -> Result<(), ExitError>

Create a log owned by address with given topics and data.

Source

fn mark_delete_reset(&mut self, address: H160)

Mark an address to be deleted and its balance to be reset.

Source

fn mark_create(&mut self, address: H160)

Mark an address as created in the current transaction.

Source

fn reset_storage(&mut self, address: H160)

Fully delete storages of an account.

Source

fn set_code( &mut self, address: H160, code: Vec<u8>, origin: SetCodeOrigin, ) -> Result<(), ExitError>

Set code of an account.

Source

fn deposit(&mut self, target: H160, value: U256)

Deposit value into the target.

Source

fn withdrawal(&mut self, source: H160, value: U256) -> Result<(), ExitError>

Withdrawal value from the source.

Source

fn inc_nonce(&mut self, address: H160) -> Result<(), ExitError>

Increase the nonce value.

Provided Methods§

Source

fn is_hot(&self, address: H160, index: Option<H256>) -> bool

Checks if the address is hot. Opposite of RuntimeBackend::is_cold.

Source

fn transfer(&mut self, transfer: Transfer) -> Result<(), ExitError>

Initiate a transfer.

Implementors§