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§
fn metadata(&self) -> &StackSubstateMetadata<'config>
fn metadata_mut(&mut self) -> &mut StackSubstateMetadata<'config>
fn enter(&mut self, gas_limit: u64, is_static: bool)
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 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 reset_balance(&mut self, address: H160)
fn touch(&mut self, address: H160)
EIP-7702 - check is authority cold.
EIP-7702 - get authority target address.
Provided Methods§
Sourcefn record_external_operation(
&mut self,
_op: ExternalOperation,
) -> Result<(), ExitError>
fn record_external_operation( &mut self, _op: ExternalOperation, ) -> Result<(), ExitError>
§Errors
Return ExitError
Sourcefn record_external_dynamic_opcode_cost(
&mut self,
_opcode: Opcode,
_gas_cost: GasCost,
_target: StorageTarget,
) -> Result<(), ExitError>
fn record_external_dynamic_opcode_cost( &mut self, _opcode: Opcode, _gas_cost: GasCost, _target: StorageTarget, ) -> Result<(), ExitError>
§Errors
Return ExitError
Sourcefn record_external_cost(
&mut self,
_ref_time: Option<u64>,
_proof_size: Option<u64>,
_storage_growth: Option<u64>,
) -> Result<(), ExitError>
fn record_external_cost( &mut self, _ref_time: Option<u64>, _proof_size: Option<u64>, _storage_growth: Option<u64>, ) -> Result<(), ExitError>
§Errors
Return ExitError