#![cfg_attr(not(test), warn(unused_crate_dependencies))]
#![cfg_attr(not(feature = "std"), no_std)]
#[cfg(not(feature = "std"))]
extern crate alloc as std;
pub mod api;
pub mod evm;
pub mod execution;
mod frame;
mod frame_data;
pub mod handler;
pub mod instructions;
mod item_or_result;
mod mainnet_builder;
mod mainnet_handler;
pub mod post_execution;
pub mod pre_execution;
mod precompile_provider;
pub mod system_call;
pub mod validation;
pub use bytecode;
pub use context;
pub use context_interface;
pub use database_interface;
pub use interpreter;
pub use precompile;
pub use primitives;
pub use state;
pub use api::{ExecuteCommitEvm, ExecuteEvm};
pub use evm::{EvmTr, FrameTr};
pub use frame::{handle_reservoir_remaining_gas, return_create, ContextTrDbError, EthFrame};
pub use frame_data::{CallFrame, CreateFrame, FrameData, FrameResult};
pub use handler::{EvmTrError, Handler};
pub use item_or_result::{FrameInitOrResult, ItemOrResult};
pub use mainnet_builder::{MainBuilder, MainContext, MainnetContext, MainnetEvm};
pub use mainnet_handler::MainnetHandler;
pub use precompile_provider::{
precompile_output_to_interpreter_result, EthPrecompiles, PrecompileProvider,
};
pub use system_call::{SystemCallCommitEvm, SystemCallEvm, SystemCallTx, SYSTEM_ADDRESS};