StackState

Trait StackState 

Source
pub trait StackState<'config>: Backend {
Show 29 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_created(&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_created(&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); fn tstore( &mut self, address: H160, index: H256, value: U256, ) -> Result<(), ExitError>; fn tload(&mut self, address: H160, index: H256) -> Result<U256, ExitError>; fn is_authority_cold(&mut self, address: H160) -> Option<bool>; fn get_authority_target(&mut self, address: H160) -> Option<H160>; // Provided methods 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>

§Errors

Return ExitError

Source

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

§Errors

Return ExitError

Source

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

§Errors

Return ExitError

Source

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

Source

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

Source

fn is_created(&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>

§Errors

Return 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_created(&mut self, address: H160)

Source

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

Source

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

§Errors

Return ExitError

Source

fn reset_balance(&mut self, address: H160)

Source

fn touch(&mut self, address: H160)

Source

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

Set tstorage value of address at index. EIP-1153: Transient storage

§Errors

Return ExitError

Source

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

Get tstorage value of address at index. EIP-1153: Transient storage

§Errors

Return ExitError

Source

fn is_authority_cold(&mut self, address: H160) -> Option<bool>

EIP-7702 - check is authority cold.

Source

fn get_authority_target(&mut self, address: H160) -> Option<H160>

EIP-7702 - get authority target address.

Provided Methods§

Source

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

§Errors

Return ExitError

Source

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

§Errors

Return ExitError

Source

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

§Errors

Return 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_created(&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_created(&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 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§

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

Source§

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

Source§

fn is_authority_cold(&mut self, address: H160) -> Option<bool>

Source§

fn get_authority_target(&mut self, address: H160) -> Option<H160>

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_created(&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_created(&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 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§

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

Source§

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

Source§

fn is_authority_cold(&mut self, address: H160) -> Option<bool>

Source§

fn get_authority_target(&mut self, address: H160) -> Option<H160>

Implementors§

Source§

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