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 reth::RethJitAction;
36pub use testing::{
37    TestingBuildBlockRequestV1, TestingBuildBlockResponseV1, TESTING_BUILD_BLOCK_V1,
38    TESTING_COMMIT_BLOCK_V1,
39};
40
41/// re-export of all server traits
42pub use servers::*;
43
44/// Aggregates all server traits.
45pub mod servers {
46    pub use crate::{
47        admin::AdminApiServer,
48        anvil::AnvilApiServer,
49        debug::DebugApiServer,
50        engine::{EngineApiServer, EngineEthApiServer, IntoEngineApiRpcModule},
51        hardhat::HardhatApiServer,
52        mev::{MevFullApiServer, MevSimApiServer},
53        miner::MinerApiServer,
54        net::NetApiServer,
55        otterscan::OtterscanServer,
56        reth::RethApiServer,
57        reth_engine::{RethEngineApiServer, RethNewPayloadInput, RethPayloadStatus},
58        rpc::RpcApiServer,
59        testing::TestingApiServer,
60        trace::TraceApiServer,
61        txpool::TxPoolApiServer,
62        validation::BlockSubmissionValidationApiServer,
63        web3::Web3ApiServer,
64    };
65    pub use reth_rpc_eth_api::{
66        self as eth, EthApiServer, EthBundleApiServer, EthCallBundleApiServer, EthConfigApiServer,
67        EthFilterApiServer, EthPubSubApiServer, L2EthApiExtServer,
68    };
69}
70
71/// re-export of all client traits
72#[cfg(feature = "client")]
73pub use clients::*;
74
75/// Aggregates all client traits.
76#[cfg(feature = "client")]
77pub mod clients {
78    pub use crate::{
79        admin::AdminApiClient,
80        anvil::AnvilApiClient,
81        debug::DebugApiClient,
82        engine::{EngineApiClient, EngineEthApiClient},
83        hardhat::HardhatApiClient,
84        mev::{MevFullApiClient, MevSimApiClient},
85        miner::MinerApiClient,
86        net::NetApiClient,
87        otterscan::OtterscanClient,
88        reth::RethApiClient,
89        reth_engine::RethEngineApiClient,
90        rpc::RpcApiClient,
91        testing::TestingApiClient,
92        trace::TraceApiClient,
93        txpool::TxPoolApiClient,
94        validation::BlockSubmissionValidationApiClient,
95        web3::Web3ApiClient,
96    };
97    pub use reth_rpc_eth_api::{
98        EthApiClient, EthBundleApiClient, EthCallBundleApiClient, EthConfigApiClient,
99        EthFilterApiClient, L2EthApiExtClient,
100    };
101}