reth_e2e_test_utils/
lib.rs1#![doc = include_str!("../README.md")]
2
3use node::NodeTestContext;
4use reth_db::{test_utils::TempDatabase, DatabaseEnv};
5use reth_network_api::test_utils::PeersHandleProvider;
6use reth_node_builder::{
7 components::NodeComponentsBuilder,
8 rpc::{EngineValidatorAddOn, RethRpcAddOns},
9 FullNodeTypesAdapter, Node, NodeAdapter, NodeComponents, NodeTypesWithDBAdapter,
10};
11use reth_provider::providers::{BlockchainProvider, NodeTypesForProvider};
12use std::sync::Arc;
13
14pub mod node;
16pub mod testsuite;
17
18pub mod transaction;
20
21pub mod wallet;
23
24mod payload;
26
27#[cfg(feature = "chain-import")]
29pub mod setup_import;
30
31mod network;
33
34mod rpc;
36
37pub mod test_rlp_utils;
39
40pub mod trie;
42
43pub mod receipt;
44
45pub mod wait;
46
47pub mod engine;
48
49pub mod snap;
50
51mod chain_spec;
52pub use chain_spec::{
53 eth_payload_attributes, test_chain_spec, test_chain_spec_builder, test_genesis,
54};
55
56mod setup_builder;
58pub use setup_builder::{E2ETestSetupBuilder, E2ETestSetupExt, TestNodeBuilder};
59
60pub type TmpDB = Arc<TempDatabase<DatabaseEnv>>;
64type TmpNodeAdapter<N, Provider = BlockchainProvider<NodeTypesWithDBAdapter<N, TmpDB>>> =
65 FullNodeTypesAdapter<N, TmpDB, Provider>;
66
67pub type Adapter<N, Provider = BlockchainProvider<NodeTypesWithDBAdapter<N, TmpDB>>> = NodeAdapter<
69 TmpNodeAdapter<N, Provider>,
70 <<N as Node<TmpNodeAdapter<N, Provider>>>::ComponentsBuilder as NodeComponentsBuilder<
71 TmpNodeAdapter<N, Provider>,
72 >>::Components,
73>;
74
75pub type NodeHelperType<N, Provider = BlockchainProvider<NodeTypesWithDBAdapter<N, TmpDB>>> =
77 NodeTestContext<Adapter<N, Provider>, <N as Node<TmpNodeAdapter<N, Provider>>>::AddOns>;
78
79pub trait NodeBuilderHelper
81where
82 Self: Default
83 + NodeTypesForProvider
84 + Node<
85 TmpNodeAdapter<Self>,
86 ComponentsBuilder: NodeComponentsBuilder<
87 TmpNodeAdapter<Self>,
88 Components: NodeComponents<TmpNodeAdapter<Self>, Network: PeersHandleProvider>,
89 >,
90 AddOns: RethRpcAddOns<Adapter<Self>> + EngineValidatorAddOn<Adapter<Self>>,
91 >,
92{
93}
94
95impl<T> NodeBuilderHelper for T where
96 Self: Default
97 + NodeTypesForProvider
98 + Node<
99 TmpNodeAdapter<Self>,
100 ComponentsBuilder: NodeComponentsBuilder<
101 TmpNodeAdapter<Self>,
102 Components: NodeComponents<TmpNodeAdapter<Self>, Network: PeersHandleProvider>,
103 >,
104 AddOns: RethRpcAddOns<Adapter<Self>> + EngineValidatorAddOn<Adapter<Self>>,
105 >
106{
107}