pub trait StackState<'config>: Backend {
Show 25 methods // Required methods 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); // Provided methods fn code_size(&self, address: H160) -> U256 { ... } fn code_hash(&self, address: H160) -> H256 { ... } 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> ) { ... }
}

Required Methods§

source

fn metadata(&self) -> &StackSubstateMetadata<'config>

source

fn metadata_mut(&mut self) -> &mut StackSubstateMetadata<'config>

source

fn enter(&mut self, gas_limit: u64, is_static: bool)

source

fn exit_commit(&mut self) -> Result<(), ExitError>

source

fn exit_revert(&mut self) -> Result<(), ExitError>

source

fn exit_discard(&mut self) -> Result<(), ExitError>

source

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

source

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

source

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

source

fn is_storage_cold(&self, address: H160, key: H256) -> bool

source

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

source

fn set_storage(&mut self, address: H160, key: H256, value: H256)

source

fn reset_storage(&mut self, address: H160)

source

fn log(&mut self, address: H160, topics: Vec<H256>, data: Vec<u8>)

source

fn set_deleted(&mut self, address: H160)

source

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

source

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

source

fn reset_balance(&mut self, address: H160)

source

fn touch(&mut self, address: H160)

Provided Methods§

source

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

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.

source

fn record_external_operation( &mut self, _op: ExternalOperation ) -> Result<(), ExitError>

source

fn record_external_dynamic_opcode_cost( &mut self, _opcode: Opcode, _gas_cost: GasCost, _target: StorageTarget ) -> Result<(), ExitError>

source

fn record_external_cost( &mut self, _ref_time: Option<u64>, _proof_size: Option<u64>, _storage_growth: Option<u64> ) -> Result<(), ExitError>

source

fn refund_external_cost( &mut self, _ref_time: Option<u64>, _proof_size: Option<u64> )

Implementations on Foreign Types§

source§

impl<'a, 'config, T: 'a + StackState<'config> + ?Sized> StackState<'config> for &'a mut T

source§

fn metadata(&self) -> &StackSubstateMetadata<'config>

source§

fn metadata_mut(&mut self) -> &mut StackSubstateMetadata<'config>

source§

fn enter(&mut self, gas_limit: u64, is_static: bool)

source§

fn exit_commit(&mut self) -> Result<(), ExitError>

source§

fn exit_revert(&mut self) -> Result<(), ExitError>

source§

fn exit_discard(&mut self) -> Result<(), ExitError>

source§

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

source§

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

source§

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

source§

fn is_storage_cold(&self, address: H160, key: H256) -> bool

source§

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

source§

fn set_storage(&mut self, address: H160, key: H256, value: H256)

source§

fn reset_storage(&mut self, address: H160)

source§

fn log(&mut self, address: H160, topics: Vec<H256>, data: Vec<u8>)

source§

fn set_deleted(&mut self, address: H160)

source§

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

source§

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

source§

fn reset_balance(&mut self, address: H160)

source§

fn touch(&mut self, address: H160)

source§

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

source§

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

source§

fn record_external_operation( &mut self, _op: ExternalOperation ) -> Result<(), ExitError>

source§

fn record_external_dynamic_opcode_cost( &mut self, _opcode: Opcode, _gas_cost: GasCost, _target: StorageTarget ) -> Result<(), ExitError>

source§

fn record_external_cost( &mut self, _ref_time: Option<u64>, _proof_size: Option<u64>, _storage_growth: Option<u64> ) -> Result<(), ExitError>

source§

fn refund_external_cost( &mut self, _ref_time: Option<u64>, _proof_size: Option<u64> )

source§

impl<'config, T: StackState<'config> + ?Sized> StackState<'config> for Box<T>
where Box<T>: Backend,

source§

fn metadata(&self) -> &StackSubstateMetadata<'config>

source§

fn metadata_mut(&mut self) -> &mut StackSubstateMetadata<'config>

source§

fn enter(&mut self, gas_limit: u64, is_static: bool)

source§

fn exit_commit(&mut self) -> Result<(), ExitError>

source§

fn exit_revert(&mut self) -> Result<(), ExitError>

source§

fn exit_discard(&mut self) -> Result<(), ExitError>

source§

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

source§

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

source§

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

source§

fn is_storage_cold(&self, address: H160, key: H256) -> bool

source§

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

source§

fn set_storage(&mut self, address: H160, key: H256, value: H256)

source§

fn reset_storage(&mut self, address: H160)

source§

fn log(&mut self, address: H160, topics: Vec<H256>, data: Vec<u8>)

source§

fn set_deleted(&mut self, address: H160)

source§

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

source§

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

source§

fn reset_balance(&mut self, address: H160)

source§

fn touch(&mut self, address: H160)

source§

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

source§

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

source§

fn record_external_operation( &mut self, _op: ExternalOperation ) -> Result<(), ExitError>

source§

fn record_external_dynamic_opcode_cost( &mut self, _opcode: Opcode, _gas_cost: GasCost, _target: StorageTarget ) -> Result<(), ExitError>

source§

fn record_external_cost( &mut self, _ref_time: Option<u64>, _proof_size: Option<u64>, _storage_growth: Option<u64> ) -> Result<(), ExitError>

source§

fn refund_external_cost( &mut self, _ref_time: Option<u64>, _proof_size: Option<u64> )

Implementors§

source§

impl<'backend, 'config, B: Backend> StackState<'config> for MemoryStackState<'backend, 'config, B>