revm/
lib.rs

1//! Revm is a Rust EVM implementation.
2#![cfg_attr(not(test), warn(unused_crate_dependencies))]
3#![cfg_attr(not(feature = "std"), no_std)]
4
5#[macro_use]
6#[cfg(not(feature = "std"))]
7extern crate alloc as std;
8
9// Define modules.
10
11mod builder;
12mod context;
13
14#[cfg(any(test, feature = "test-utils"))]
15pub mod test_utils;
16
17pub mod db;
18mod evm;
19mod frame;
20pub mod handler;
21mod inspector;
22mod journaled_state;
23#[cfg(feature = "optimism")]
24pub mod optimism;
25
26// Export items.
27
28pub use builder::EvmBuilder;
29pub use context::{
30    Context, ContextPrecompile, ContextPrecompiles, ContextStatefulPrecompile,
31    ContextStatefulPrecompileArc, ContextStatefulPrecompileBox, ContextStatefulPrecompileMut,
32    ContextWithHandlerCfg, EvmContext, InnerEvmContext,
33};
34pub use db::{
35    CacheState, DBBox, State, StateBuilder, StateDBBox, TransitionAccount, TransitionState,
36};
37pub use db::{Database, DatabaseCommit, DatabaseRef, InMemoryDB};
38pub use evm::{Evm, CALL_STACK_LIMIT};
39pub use frame::{CallFrame, CreateFrame, Frame, FrameData, FrameOrResult, FrameResult};
40pub use handler::Handler;
41pub use inspector::{inspector_handle_register, inspectors, GetInspector, Inspector};
42pub use journaled_state::{JournalCheckpoint, JournalEntry, JournaledState};
43// export Optimism types, helpers, and constants
44#[cfg(feature = "optimism")]
45pub use optimism::{L1BlockInfo, BASE_FEE_RECIPIENT, L1_BLOCK_CONTRACT, L1_FEE_RECIPIENT};
46
47// Reexport libraries
48
49#[doc(inline)]
50pub use revm_interpreter as interpreter;
51#[doc(inline)]
52pub use revm_interpreter::primitives;
53#[doc(inline)]
54pub use revm_precompile as precompile;