Skip to main content

ethrex_vm/
lib.rs

1mod db;
2mod errors;
3mod execution_result;
4pub mod tracing;
5mod witness_db;
6
7pub mod backends;
8
9/// EIP-8037 (Amsterdam+, PR #2703) per-tx 2D inclusion check. Re-exported so the
10/// payload builder can enforce it with identical semantics to the validator.
11pub use backends::levm::check_2d_gas_allowance;
12/// Bounds the parallel Amsterdam path uses to reject an over-limit block early.
13pub use backends::levm::{CompletedGas, block_work_budget, check_minimum_block_work};
14pub use backends::{
15    BlockExecutionResult, Evm, TxGasBreakdown, TxStatus, compute_burned_fees, log_gas_used_mismatch,
16};
17pub use db::{DynVmDatabase, VmDatabase};
18pub use errors::EvmError;
19pub use ethrex_levm::StatelessValidator;
20pub use ethrex_levm::errors::{InternalError, PrecompileError, VMError};
21pub use ethrex_levm::precompiles::{
22    PrecompileCache, PrecompileMoves, is_precompile, precompiles_for_fork,
23};
24/// EIP-8037 intrinsic gas split `(regular, state)` for a transaction.
25/// Re-exported for mempool / payload-builder use.
26pub use ethrex_levm::utils::intrinsic_gas_dimensions;
27/// EIP-7623/7976/7981 floor gas for a transaction. Re-exported so the mempool
28/// can match the VM's `validate_min_gas_limit` check at admission time.
29pub use ethrex_levm::utils::intrinsic_gas_floor;
30pub use ethrex_levm::vm::validate_frame_signatures;
31pub use execution_result::ExecutionResult;
32pub use witness_db::GuestProgramStateWrapper;
33pub mod system_contracts;