reth_provider/traits/
full.rs1use crate::{
4 AccountReader, BlockReaderIdExt, ChainSpecProvider, ChangeSetReader, DatabaseProviderFactory,
5 StageCheckpointReader, StateProviderFactory, StaticFileProviderFactory,
6};
7use reth_chain_state::{CanonStateSubscriptions, ForkChoiceSubscriptions};
8use reth_node_types::{BlockTy, HeaderTy, NodeTypesWithDB, ReceiptTy, TxTy};
9use reth_storage_api::NodePrimitivesProvider;
10use std::fmt::Debug;
11
12pub trait FullProvider<N: NodeTypesWithDB>:
14 DatabaseProviderFactory<DB = N::DB>
15 + NodePrimitivesProvider<Primitives = N::Primitives>
16 + StaticFileProviderFactory<Primitives = N::Primitives>
17 + BlockReaderIdExt<
18 Transaction = TxTy<N>,
19 Block = BlockTy<N>,
20 Receipt = ReceiptTy<N>,
21 Header = HeaderTy<N>,
22 > + AccountReader
23 + StateProviderFactory
24 + ChainSpecProvider<ChainSpec = N::ChainSpec>
25 + ChangeSetReader
26 + CanonStateSubscriptions
27 + ForkChoiceSubscriptions<Header = HeaderTy<N>>
28 + StageCheckpointReader
29 + Clone
30 + Debug
31 + Unpin
32 + 'static
33{
34}
35
36impl<T, N: NodeTypesWithDB> FullProvider<N> for T where
37 T: DatabaseProviderFactory<DB = N::DB>
38 + NodePrimitivesProvider<Primitives = N::Primitives>
39 + StaticFileProviderFactory<Primitives = N::Primitives>
40 + BlockReaderIdExt<
41 Transaction = TxTy<N>,
42 Block = BlockTy<N>,
43 Receipt = ReceiptTy<N>,
44 Header = HeaderTy<N>,
45 > + AccountReader
46 + StateProviderFactory
47 + ChainSpecProvider<ChainSpec = N::ChainSpec>
48 + ChangeSetReader
49 + CanonStateSubscriptions
50 + ForkChoiceSubscriptions<Header = HeaderTy<N>>
51 + StageCheckpointReader
52 + Clone
53 + Debug
54 + Unpin
55 + 'static
56{
57}