Struct evm::executor::stack::MemoryStackState
source · pub struct MemoryStackState<'backend, 'config, B> { /* private fields */ }
Implementations§
source§impl<'backend, 'config, B: Backend> MemoryStackState<'backend, 'config, B>
impl<'backend, 'config, B: Backend> MemoryStackState<'backend, 'config, B>
pub fn new( metadata: StackSubstateMetadata<'config>, backend: &'backend mut B ) -> Self
sourcepub fn account_mut(&mut self, address: H160) -> &mut MemoryStackAccount
pub fn account_mut(&mut self, address: H160) -> &mut MemoryStackAccount
Returns a mutable reference to an account given its address
pub fn deconstruct( self ) -> (impl IntoIterator<Item = Apply<impl IntoIterator<Item = (H256, H256)>>>, impl IntoIterator<Item = Log>)
pub fn withdraw(&mut self, address: H160, value: U256) -> Result<(), ExitError>
pub fn deposit(&mut self, address: H160, value: U256)
Trait Implementations§
source§impl<'backend, 'config, B: Backend> Backend for MemoryStackState<'backend, 'config, B>
impl<'backend, 'config, B: Backend> Backend for MemoryStackState<'backend, 'config, B>
source§fn block_hash(&self, number: U256) -> H256
fn block_hash(&self, number: U256) -> H256
Environmental block hash.
source§fn block_number(&self) -> U256
fn block_number(&self) -> U256
Environmental block number.
source§fn block_coinbase(&self) -> H160
fn block_coinbase(&self) -> H160
Environmental coinbase.
source§fn block_timestamp(&self) -> U256
fn block_timestamp(&self) -> U256
Environmental block timestamp.
source§fn block_difficulty(&self) -> U256
fn block_difficulty(&self) -> U256
Environmental block difficulty.
source§fn block_randomness(&self) -> Option<H256>
fn block_randomness(&self) -> Option<H256>
Get environmental block randomness.
source§fn block_gas_limit(&self) -> U256
fn block_gas_limit(&self) -> U256
Environmental block gas limit.
source§fn block_base_fee_per_gas(&self) -> U256
fn block_base_fee_per_gas(&self) -> U256
Environmental block base fee.
source§impl<'backend, 'config, B: Debug> Debug for MemoryStackState<'backend, 'config, B>
impl<'backend, 'config, B: Debug> Debug for MemoryStackState<'backend, 'config, B>
source§impl<'backend, 'config, B: Backend> StackState<'config> for MemoryStackState<'backend, 'config, B>
impl<'backend, 'config, B: Backend> StackState<'config> for MemoryStackState<'backend, 'config, B>
fn metadata(&self) -> &StackSubstateMetadata<'config>
fn metadata_mut(&mut self) -> &mut StackSubstateMetadata<'config>
fn enter(&mut self, gas_limit: u64, is_static: bool)
fn exit_commit(&mut self) -> Result<(), ExitError>
fn exit_revert(&mut self) -> Result<(), ExitError>
fn exit_discard(&mut self) -> Result<(), ExitError>
fn is_empty(&self, address: H160) -> bool
fn deleted(&self, address: H160) -> bool
fn is_cold(&self, address: H160) -> bool
fn is_storage_cold(&self, address: H160, key: H256) -> bool
fn inc_nonce(&mut self, address: H160) -> Result<(), ExitError>
fn set_storage(&mut self, address: H160, key: H256, value: H256)
fn reset_storage(&mut self, address: H160)
fn log(&mut self, address: H160, topics: Vec<H256>, data: Vec<u8>)
fn set_deleted(&mut self, address: H160)
fn set_code(&mut self, address: H160, code: Vec<u8>)
fn transfer(&mut self, transfer: Transfer) -> Result<(), ExitError>
fn reset_balance(&mut self, address: H160)
fn touch(&mut self, address: H160)
source§fn code_size(&self, address: H160) -> U256
fn code_size(&self, address: H160) -> U256
Fetch the code size of an address.
Provide a default implementation by fetching the code, but
can be customized to use a more performant approach that don’t need to
fetch the code.
source§fn code_hash(&self, address: H160) -> H256
fn code_hash(&self, address: H160) -> H256
Fetch the code hash of an address.
Provide a default implementation by fetching the code, but
can be customized to use a more performant approach that don’t need to
fetch the code.
fn record_external_operation( &mut self, _op: ExternalOperation ) -> Result<(), ExitError>
fn record_external_dynamic_opcode_cost( &mut self, _opcode: Opcode, _gas_cost: GasCost, _target: StorageTarget ) -> Result<(), ExitError>
fn record_external_cost( &mut self, _ref_time: Option<u64>, _proof_size: Option<u64>, _storage_growth: Option<u64> ) -> Result<(), ExitError>
fn refund_external_cost( &mut self, _ref_time: Option<u64>, _proof_size: Option<u64> )
Auto Trait Implementations§
impl<'backend, 'config, B> RefUnwindSafe for MemoryStackState<'backend, 'config, B>where
B: RefUnwindSafe,
impl<'backend, 'config, B> Send for MemoryStackState<'backend, 'config, B>where
B: Send,
impl<'backend, 'config, B> Sync for MemoryStackState<'backend, 'config, B>where
B: Sync,
impl<'backend, 'config, B> Unpin for MemoryStackState<'backend, 'config, B>
impl<'backend, 'config, B> !UnwindSafe for MemoryStackState<'backend, 'config, B>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more