Skip to main content

Cfg

Trait Cfg 

Source
pub trait Cfg {
    type Spec: Into<SpecId> + Clone;

Show 22 methods // Required methods fn chain_id(&self) -> u64; fn tx_chain_id_check(&self) -> bool; fn tx_gas_limit_cap(&self) -> u64; fn spec(&self) -> Self::Spec; fn max_blobs_per_tx(&self) -> Option<u64>; fn max_code_size(&self) -> usize; fn max_initcode_size(&self) -> usize; fn is_eip3607_disabled(&self) -> bool; fn is_eip3541_disabled(&self) -> bool; fn is_eip7623_disabled(&self) -> bool; fn is_balance_check_disabled(&self) -> bool; fn is_block_gas_limit_disabled(&self) -> bool; fn is_nonce_check_disabled(&self) -> bool; fn is_base_fee_check_disabled(&self) -> bool; fn is_priority_fee_check_disabled(&self) -> bool; fn is_fee_charge_disabled(&self) -> bool; fn is_eip7708_disabled(&self) -> bool; fn is_eip8246_delayed_clear_disabled(&self) -> bool; fn memory_limit(&self) -> u64; fn gas_params(&self) -> &GasParams; fn is_amsterdam_eip8037_enabled(&self) -> bool; fn is_amsterdam_eip2780_enabled(&self) -> bool;
}
Expand description

Configuration for the EVM.

Required Associated Types§

Source

type Spec: Into<SpecId> + Clone

Specification id type, it requires to be convertible to SpecId so it can be used by default in mainnet.

Required Methods§

Source

fn chain_id(&self) -> u64

Returns the chain ID of the EVM that is compared with the transaction’s chain ID.

Source

fn tx_chain_id_check(&self) -> bool

Returns whether the transaction’s chain ID check is enabled.

Source

fn tx_gas_limit_cap(&self) -> u64

Returns the gas limit cap for the transaction.

Cap is introduced in EIP-7825: Transaction Gas Limit Cap with initial cap of 30M gas.

Value before EIP-7825 is u64::MAX.

Source

fn spec(&self) -> Self::Spec

Specification id

Source

fn max_blobs_per_tx(&self) -> Option<u64>

Returns the maximum number of blobs allowed per transaction. If it is None, check for max count will be skipped.

Source

fn max_code_size(&self) -> usize

Returns the maximum code size for the given spec id.

Source

fn max_initcode_size(&self) -> usize

Returns the max initcode size for the given spec id.

Source

fn is_eip3607_disabled(&self) -> bool

Returns whether the EIP-3607 (account clearing) is disabled.

Source

fn is_eip3541_disabled(&self) -> bool

Returns whether the EIP-3541 (disallowing new contracts with 0xEF prefix) is disabled.

Source

fn is_eip7623_disabled(&self) -> bool

Returns whether the EIP-7623 (increased calldata cost) is disabled.

Source

fn is_balance_check_disabled(&self) -> bool

Returns whether the balance check is disabled.

Source

fn is_block_gas_limit_disabled(&self) -> bool

Returns whether the block gas limit check is disabled.

Source

fn is_nonce_check_disabled(&self) -> bool

Returns whether the nonce check is disabled.

Source

fn is_base_fee_check_disabled(&self) -> bool

Returns whether the base fee check is disabled.

Source

fn is_priority_fee_check_disabled(&self) -> bool

Returns whether the priority fee check is disabled.

Source

fn is_fee_charge_disabled(&self) -> bool

Returns whether the fee charge is disabled.

Source

fn is_eip7708_disabled(&self) -> bool

Returns whether EIP-7708 (ETH transfers emit logs) is disabled.

Source

fn is_eip8246_delayed_clear_disabled(&self) -> bool

Returns whether the EIP-8246 delayed clearing of self-destructed accounts is disabled.

When enabled, revm tracks all self-destructed addresses and, at the end of the transaction, clears the code, storage and nonce of any that still have a remaining balance while preserving the balance (EIP-8246). This can be disabled for performance reasons as it requires storing and iterating over all self-destructed accounts. When disabled, this clearing can be done outside of revm when applying accounts to database state.

Source

fn memory_limit(&self) -> u64

Returns the limit in bytes for the memory buffer.

Source

fn gas_params(&self) -> &GasParams

Returns the gas params for the EVM.

Source

fn is_amsterdam_eip8037_enabled(&self) -> bool

Returns whether EIP-8037 (Amsterdam) state creation gas cost increase is enabled.

When enabled, storage creation gas is tracked separately from regular gas via the reservoir model. EIP-8037 specifies concrete gas values based on cost_per_state_byte and adds a hash cost for deployed bytecode.

Source

fn is_amsterdam_eip2780_enabled(&self) -> bool

Returns whether EIP-2780 (Amsterdam) reduced intrinsic transaction gas is enabled.

When enabled, the legacy 21,000 intrinsic base is replaced with the decomposed TX_BASE_COST + to-based + value-based model and top-level execution charges are applied for empty recipients with value and EIP-7702-delegated recipients.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<'a, T: 'a + Cfg + ?Sized> Cfg for &'a T

Source§

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

Source§

impl<T: Cfg + ?Sized> Cfg for Arc<T>

Source§

impl<T: Cfg + ?Sized> Cfg for Box<T>

Implementors§