Skip to main content

reth_rpc_api/
lib.rs

1//! Reth RPC interface definitions
2//!
3//! Provides all RPC interfaces.
4//!
5//! ## Feature Flags
6//!
7//! - `client`: Enables JSON-RPC client support.
8
9#![doc(
10    html_logo_url = "https://raw.githubusercontent.com/paradigmxyz/reth/main/assets/reth-docs.png",
11    html_favicon_url = "https://avatars0.githubusercontent.com/u/97369466?s=256",
12    issue_tracker_base_url = "https://github.com/paradigmxyz/reth/issues/"
13)]
14#![cfg_attr(not(test), warn(unused_crate_dependencies))]
15#![cfg_attr(docsrs, feature(doc_cfg))]
16
17mod admin;
18mod anvil;
19mod debug;
20mod engine;
21mod hardhat;
22mod mev;
23mod miner;
24mod net;
25mod otterscan;
26mod reth;
27mod reth_engine;
28mod rpc;
29mod testing;
30mod trace;
31mod txpool;
32mod validation;
33mod web3;
34
35pub use testing::{TestingBuildBlockRequestV1, TESTING_BUILD_BLOCK_V1};
36
37/// re-export of all server traits
38pub use servers::*;
39
40/// Aggregates all server traits.
41pub mod servers {
42    pub use crate::{
43        admin::AdminApiServer,
44        debug::{DebugApiServer, DebugExecutionWitnessApiServer},
45        engine::{EngineApiServer, EngineEthApiServer, IntoEngineApiRpcModule},
46        mev::{MevFullApiServer, MevSimApiServer},
47        miner::MinerApiServer,
48        net::NetApiServer,
49        otterscan::OtterscanServer,
50        reth::RethApiServer,
51        reth_engine::{RethEngineApiServer, RethNewPayloadInput, RethPayloadStatus},
52        rpc::RpcApiServer,
53        testing::TestingApiServer,
54        trace::TraceApiServer,
55        txpool::TxPoolApiServer,
56        validation::BlockSubmissionValidationApiServer,
57        web3::Web3ApiServer,
58    };
59    pub use reth_rpc_eth_api::{
60        self as eth, EthApiServer, EthBundleApiServer, EthCallBundleApiServer, EthFilterApiServer,
61        EthPubSubApiServer, L2EthApiExtServer,
62    };
63}
64
65/// re-export of all client traits
66#[cfg(feature = "client")]
67pub use clients::*;
68
69/// Aggregates all client traits.
70#[cfg(feature = "client")]
71pub mod clients {
72    pub use crate::{
73        admin::AdminApiClient,
74        anvil::AnvilApiClient,
75        debug::{DebugApiClient, DebugExecutionWitnessApiClient},
76        engine::{EngineApiClient, EngineEthApiClient},
77        hardhat::HardhatApiClient,
78        mev::{MevFullApiClient, MevSimApiClient},
79        miner::MinerApiClient,
80        net::NetApiClient,
81        otterscan::OtterscanClient,
82        reth::RethApiClient,
83        reth_engine::RethEngineApiClient,
84        rpc::RpcApiServer,
85        testing::TestingApiClient,
86        trace::TraceApiClient,
87        txpool::TxPoolApiClient,
88        validation::BlockSubmissionValidationApiClient,
89        web3::Web3ApiClient,
90    };
91    pub use reth_rpc_eth_api::{
92        EthApiClient, EthBundleApiClient, EthCallBundleApiClient, EthFilterApiClient,
93        L2EthApiExtServer,
94    };
95}