pub struct Gasometer<'config> { /* private fields */ }Expand description
EVM gasometer.
Implementations§
Source§impl<'config> Gasometer<'config>
impl<'config> Gasometer<'config>
Sourcepub const fn new(gas_limit: u64, config: &'config Config) -> Self
pub const fn new(gas_limit: u64, config: &'config Config) -> Self
Create a new gasometer with given gas limit and config.
Sourcepub const fn total_used_gas(&self) -> u64
pub const fn total_used_gas(&self) -> u64
Total used gas.
Sourcepub fn refunded_gas(&self) -> i64
pub fn refunded_gas(&self) -> i64
Refunded gas.
Sourcepub fn fail(&mut self) -> ExitError
pub fn fail(&mut self) -> ExitError
Explicitly fail the gasometer with out of gas. Return OutOfGas error.
Sourcepub fn record_refund(&mut self, refund: i64) -> Result<(), ExitError>
pub fn record_refund(&mut self, refund: i64) -> Result<(), ExitError>
Record an explicit refund.
§Errors
Return ExitError that is thrown by gasometer gas calculation errors.
Record refund for authority - EIP-7702
refunded_accounts represent count of valid authority accounts.
§Errors
Return ExitError if record_refund operation fails.
Sourcepub fn record_deposit(&mut self, len: usize) -> Result<(), ExitError>
pub fn record_deposit(&mut self, len: usize) -> Result<(), ExitError>
Record CREATE code deposit.
§Errors
Return ExitError
NOTE: in that context usize->u64 as_conversions is save
Sourcepub fn record_dynamic_cost(
&mut self,
cost: GasCost,
memory: Option<MemoryCost>,
) -> Result<(), ExitError>
pub fn record_dynamic_cost( &mut self, cost: GasCost, memory: Option<MemoryCost>, ) -> Result<(), ExitError>
Sourcepub fn calculate_intrinsic_gas_and_gas_floor(
data: &[u8],
access_list: &[(H160, Vec<H256>)],
authorization_list_len: usize,
config: &Config,
is_contract_creation: bool,
) -> (u64, u64)
pub fn calculate_intrinsic_gas_and_gas_floor( data: &[u8], access_list: &[(H160, Vec<H256>)], authorization_list_len: usize, config: &Config, is_contract_creation: bool, ) -> (u64, u64)
Calculate intrinsic gas and gas floor based on transaction data. Returns intrinsic gas cost and gas floor.
Sourcepub const fn intrinsic_gas_and_gas_floor(
cost: TransactionCost,
config: &Config,
) -> (u64, u64)
pub const fn intrinsic_gas_and_gas_floor( cost: TransactionCost, config: &Config, ) -> (u64, u64)
Sourcepub fn verify_transaction(
&mut self,
cost: TransactionCost,
) -> Result<(u64, u64), ExitError>
pub fn verify_transaction( &mut self, cost: TransactionCost, ) -> Result<(u64, u64), ExitError>
Sourcepub fn record_transaction(
&mut self,
cost: TransactionCost,
) -> Result<(), ExitError>
pub fn record_transaction( &mut self, cost: TransactionCost, ) -> Result<(), ExitError>
Trait Implementations§
Auto Trait Implementations§
impl<'config> Freeze for Gasometer<'config>
impl<'config> RefUnwindSafe for Gasometer<'config>
impl<'config> Send for Gasometer<'config>
impl<'config> Sync for Gasometer<'config>
impl<'config> Unpin for Gasometer<'config>
impl<'config> UnsafeUnpin for Gasometer<'config>
impl<'config> UnwindSafe for Gasometer<'config>
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