reth_provider/traits/
full.rs1use crate::{
4 BalProvider, BlockReader, BlockReaderIdExt, ChainSpecProvider, ChangeSetReader,
5 DatabaseProviderFactory, PruneCheckpointReader, RocksDBProviderFactory, StageCheckpointReader,
6 StateProviderFactory, StateRangeProviderFactory, StateReader, StaticFileProviderFactory,
7};
8use reth_chain_state::{
9 CanonStateSubscriptions, ForkChoiceSubscriptions, PersistedBlockSubscriptions,
10};
11use reth_node_types::{BlockTy, HeaderTy, NodeTypesWithDB, ReceiptTy, TxTy};
12use reth_storage_api::{
13 HistoryReader, NodePrimitivesProvider, StorageChangeSetReader, StorageSettingsCache,
14};
15
16pub trait FullProvider<N: NodeTypesWithDB>:
18 DatabaseProviderFactory<
19 DB = N::DB,
20 Provider: BlockReader
21 + StageCheckpointReader
22 + PruneCheckpointReader
23 + ChangeSetReader
24 + StorageChangeSetReader
25 + StorageSettingsCache
26 + HistoryReader
27 + 'static,
28 > + NodePrimitivesProvider<Primitives = N::Primitives>
29 + StaticFileProviderFactory<Primitives = N::Primitives>
30 + RocksDBProviderFactory
31 + BlockReaderIdExt<
32 Transaction = TxTy<N>,
33 Block = BlockTy<N>,
34 Receipt = ReceiptTy<N>,
35 Header = HeaderTy<N>,
36 > + BalProvider
37 + StateProviderFactory<Primitives = N::Primitives>
38 + StateRangeProviderFactory
39 + StateReader
40 + ChainSpecProvider<ChainSpec = N::ChainSpec>
41 + ChangeSetReader
42 + StorageChangeSetReader
43 + CanonStateSubscriptions<Primitives = N::Primitives>
44 + ForkChoiceSubscriptions<Header = HeaderTy<N>>
45 + PersistedBlockSubscriptions
46 + StageCheckpointReader
47 + PruneCheckpointReader
48 + Clone
49 + Unpin
50 + 'static
51{
52}
53
54impl<T, N: NodeTypesWithDB> FullProvider<N> for T where
55 T: DatabaseProviderFactory<
56 DB = N::DB,
57 Provider: BlockReader
58 + StageCheckpointReader
59 + PruneCheckpointReader
60 + ChangeSetReader
61 + StorageChangeSetReader
62 + StorageSettingsCache
63 + HistoryReader
64 + 'static,
65 > + NodePrimitivesProvider<Primitives = N::Primitives>
66 + StaticFileProviderFactory<Primitives = N::Primitives>
67 + RocksDBProviderFactory
68 + BlockReaderIdExt<
69 Transaction = TxTy<N>,
70 Block = BlockTy<N>,
71 Receipt = ReceiptTy<N>,
72 Header = HeaderTy<N>,
73 > + BalProvider
74 + StateProviderFactory<Primitives = N::Primitives>
75 + StateRangeProviderFactory
76 + StateReader
77 + ChainSpecProvider<ChainSpec = N::ChainSpec>
78 + ChangeSetReader
79 + StorageChangeSetReader
80 + CanonStateSubscriptions<Primitives = N::Primitives>
81 + ForkChoiceSubscriptions<Header = HeaderTy<N>>
82 + PersistedBlockSubscriptions
83 + StageCheckpointReader
84 + PruneCheckpointReader
85 + Clone
86 + Unpin
87 + 'static
88{
89}