edb_common/lib.rs
1// EDB - Ethereum Debugger
2// Copyright (C) 2024 Zhuo Zhang and Wuqi Zhang
3//
4// This program is free software: you can redistribute it and/or modify
5// it under the terms of the GNU Affero General Public License as published by
6// the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8//
9// This program is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12// GNU Affero General Public License for more details.
13//
14// You should have received a copy of the GNU Affero General Public License
15// along with this program. If not, see <https://www.gnu.org/licenses/>.
16
17// Copyright (C) 2024 Zhuo Zhang and Wuqi Zhang
18// SPDX-License-Identifier: AGPL-3.0
19//! EDB Utils - Shared functionality for EDB components
20//!
21//! This crate provides shared utilities used by both the edb binary
22//! and the engine crate, including chain forking and transaction replay.
23
24/// Common types used throughout the EDB ecosystem including execution traces, snapshots, and code representations
25pub mod types;
26
27/// Caching utilities for storing and retrieving RPC responses to optimize performance
28pub mod cache;
29/// Execution context management for EDB, including environment setup and configuration
30pub mod context;
31/// Chain forking utilities for creating and managing forked blockchain states
32pub mod forking;
33/// Logging setup and utilities for consistent logging across EDB components
34pub mod logging;
35/// Extended opcode analysis utilities for EVM state modification detection and debugging
36pub mod opcode;
37/// Specification ID utilities for handling different Ethereum hardforks and protocol versions
38pub mod spec_id;
39
40pub use cache::*;
41pub use context::*;
42pub use forking::*;
43pub use logging::*;
44pub use opcode::*;
45pub use spec_id::*;