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 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> 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