revm_interpreter/
lib.rs

1//! # revm-interpreter
2//!
3//! REVM Interpreter.
4#![cfg_attr(not(test), warn(unused_crate_dependencies))]
5#![cfg_attr(not(feature = "std"), no_std)]
6
7#[cfg(not(feature = "std"))]
8extern crate alloc as std;
9
10#[macro_use]
11mod macros;
12
13// silence lint
14#[cfg(test)]
15use serde_json as _;
16
17#[cfg(test)]
18use walkdir as _;
19
20mod function_stack;
21pub mod gas;
22mod host;
23mod instruction_result;
24pub mod instructions;
25pub mod interpreter;
26pub mod interpreter_action;
27pub mod opcode;
28
29// Reexport primary types.
30pub use function_stack::{FunctionReturnFrame, FunctionStack};
31pub use gas::Gas;
32pub use host::{
33    AccountLoad, DummyHost, Eip7702CodeLoad, Host, SStoreResult, SelfDestructResult, StateLoad,
34};
35pub use instruction_result::*;
36pub use interpreter::{
37    analysis, num_words, Contract, Interpreter, InterpreterResult, SharedMemory, Stack,
38    EMPTY_SHARED_MEMORY, STACK_LIMIT,
39};
40pub use interpreter_action::{
41    CallInputs, CallOutcome, CallScheme, CallValue, CreateInputs, CreateOutcome, CreateScheme,
42    EOFCreateInputs, EOFCreateKind, InterpreterAction,
43};
44pub use opcode::{Instruction, OpCode, OPCODE_INFO_JUMPTABLE};
45pub use primitives::{MAX_CODE_SIZE, MAX_INITCODE_SIZE};
46
47#[doc(hidden)]
48pub use revm_primitives as primitives;