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§
Sourcefn original_storage(&self, address: H160, index: H256) -> H256
fn original_storage(&self, address: H160, index: H256) -> H256
Get original storage value of address at index.
Sourcefn created(&self, address: H160) -> bool
fn created(&self, address: H160) -> bool
Check whether an address has already been created in the transaction.
Sourcefn is_cold(&self, address: H160, index: Option<H256>) -> bool
fn is_cold(&self, address: H160, index: Option<H256>) -> bool
Checks if the address or (address, index) pair has been previously accessed.
Sourcefn mark_storage_hot(&mut self, address: H160, index: H256)
fn mark_storage_hot(&mut self, address: H160, index: H256)
Mark an (address, index) pair as hot.
Sourcefn set_storage(
&mut self,
address: H160,
index: H256,
value: H256,
) -> Result<(), ExitError>
fn set_storage( &mut self, address: H160, index: H256, value: H256, ) -> Result<(), ExitError>
Set storage value of address at index.
Sourcefn set_transient_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>
Set transient storage value of address at index, transient storage gets discarded after every transaction. (see EIP-1153)
Sourcefn log(&mut self, log: Log) -> Result<(), ExitError>
fn log(&mut self, log: Log) -> Result<(), ExitError>
Create a log owned by address with given topics and data.
Sourcefn mark_delete_reset(&mut self, address: H160)
fn mark_delete_reset(&mut self, address: H160)
Mark an address to be deleted and its balance to be reset.
Sourcefn mark_create(&mut self, address: H160)
fn mark_create(&mut self, address: H160)
Mark an address as created in the current transaction.
Sourcefn reset_storage(&mut self, address: H160)
fn reset_storage(&mut self, address: H160)
Fully delete storages of an account.
Sourcefn set_code(
&mut self,
address: H160,
code: Vec<u8>,
origin: SetCodeOrigin,
) -> Result<(), ExitError>
fn set_code( &mut self, address: H160, code: Vec<u8>, origin: SetCodeOrigin, ) -> Result<(), ExitError>
Set code of an account.