reth_e2e_test_utils/
lib.rs1use alloy_rpc_types_engine::PayloadAttributes;
4use node::NodeTestContext;
5use reth_db::{test_utils::TempDatabase, DatabaseEnv};
6use reth_network_api::test_utils::PeersHandleProvider;
7use reth_node_builder::{
8 components::NodeComponentsBuilder,
9 rpc::{EngineValidatorAddOn, RethRpcAddOns},
10 FullNodeTypesAdapter, Node, NodeAdapter, NodeComponents, NodeTypesWithDBAdapter, PayloadTypes,
11};
12use reth_provider::providers::{BlockchainProvider, NodeTypesForProvider};
13use std::sync::Arc;
14
15pub mod node;
17pub mod testsuite;
18
19pub mod transaction;
21
22pub mod wallet;
24
25mod payload;
27
28pub 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
47mod chain_spec;
48pub use chain_spec::{
49 eth_payload_attributes, test_chain_spec, test_chain_spec_builder, test_genesis,
50};
51
52mod setup_builder;
54pub use setup_builder::{E2ETestSetupBuilder, E2ETestSetupExt};
55
56pub type TmpDB = Arc<TempDatabase<DatabaseEnv>>;
60type TmpNodeAdapter<N, Provider = BlockchainProvider<NodeTypesWithDBAdapter<N, TmpDB>>> =
61 FullNodeTypesAdapter<N, TmpDB, Provider>;
62
63pub type Adapter<N, Provider = BlockchainProvider<NodeTypesWithDBAdapter<N, TmpDB>>> = NodeAdapter<
65 TmpNodeAdapter<N, Provider>,
66 <<N as Node<TmpNodeAdapter<N, Provider>>>::ComponentsBuilder as NodeComponentsBuilder<
67 TmpNodeAdapter<N, Provider>,
68 >>::Components,
69>;
70
71pub type NodeHelperType<N, Provider = BlockchainProvider<NodeTypesWithDBAdapter<N, TmpDB>>> =
73 NodeTestContext<Adapter<N, Provider>, <N as Node<TmpNodeAdapter<N, Provider>>>::AddOns>;
74
75pub trait NodeBuilderHelper
77where
78 Self: Default
79 + NodeTypesForProvider<Payload: PayloadTypes<PayloadAttributes: From<PayloadAttributes>>>
80 + Node<
81 TmpNodeAdapter<Self>,
82 ComponentsBuilder: NodeComponentsBuilder<
83 TmpNodeAdapter<Self>,
84 Components: NodeComponents<TmpNodeAdapter<Self>, Network: PeersHandleProvider>,
85 >,
86 AddOns: RethRpcAddOns<Adapter<Self>> + EngineValidatorAddOn<Adapter<Self>>,
87 >,
88{
89}
90
91impl<T> NodeBuilderHelper for T where
92 Self: Default
93 + NodeTypesForProvider<Payload: PayloadTypes<PayloadAttributes: From<PayloadAttributes>>>
94 + Node<
95 TmpNodeAdapter<Self>,
96 ComponentsBuilder: NodeComponentsBuilder<
97 TmpNodeAdapter<Self>,
98 Components: NodeComponents<TmpNodeAdapter<Self>, Network: PeersHandleProvider>,
99 >,
100 AddOns: RethRpcAddOns<Adapter<Self>> + EngineValidatorAddOn<Adapter<Self>>,
101 >
102{
103}