ethrex-vm 29.0.0

EVM execution backend and database abstraction for the ethrex Ethereum execution client
Documentation
mod db;
mod errors;
mod execution_result;
pub mod tracing;
mod witness_db;

pub mod backends;

/// EIP-8037 (Amsterdam+, PR #2703) per-tx 2D inclusion check. Re-exported so the
/// payload builder can enforce it with identical semantics to the validator.
pub use backends::levm::check_2d_gas_allowance;
/// Bounds the parallel Amsterdam path uses to reject an over-limit block early.
pub use backends::levm::{CompletedGas, block_work_budget, check_minimum_block_work};
pub use backends::{
    BlockExecutionResult, Evm, TxGasBreakdown, TxStatus, compute_burned_fees, log_gas_used_mismatch,
};
pub use db::{DynVmDatabase, VmDatabase};
pub use errors::EvmError;
pub use ethrex_levm::StatelessValidator;
pub use ethrex_levm::errors::{InternalError, PrecompileError, VMError};
pub use ethrex_levm::precompiles::{
    PrecompileCache, PrecompileMoves, is_precompile, precompiles_for_fork,
};
/// EIP-8037 intrinsic gas split `(regular, state)` for a transaction.
/// Re-exported for mempool / payload-builder use.
pub use ethrex_levm::utils::intrinsic_gas_dimensions;
/// EIP-7623/7976/7981 floor gas for a transaction. Re-exported so the mempool
/// can match the VM's `validate_min_gas_limit` check at admission time.
pub use ethrex_levm::utils::intrinsic_gas_floor;
pub use ethrex_levm::vm::validate_frame_signatures;
pub use execution_result::ExecutionResult;
pub use witness_db::GuestProgramStateWrapper;
pub mod system_contracts;