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};
15use std::fmt::Debug;
16
17pub trait FullProvider<N: NodeTypesWithDB>:
19 DatabaseProviderFactory<
20 DB = N::DB,
21 Provider: BlockReader
22 + StageCheckpointReader
23 + PruneCheckpointReader
24 + ChangeSetReader
25 + StorageChangeSetReader
26 + StorageSettingsCache
27 + HistoryReader
28 + 'static,
29 > + NodePrimitivesProvider<Primitives = N::Primitives>
30 + StaticFileProviderFactory<Primitives = N::Primitives>
31 + RocksDBProviderFactory
32 + BlockReaderIdExt<
33 Transaction = TxTy<N>,
34 Block = BlockTy<N>,
35 Receipt = ReceiptTy<N>,
36 Header = HeaderTy<N>,
37 > + BalProvider
38 + StateProviderFactory
39 + StateRangeProviderFactory
40 + StateReader
41 + ChainSpecProvider<ChainSpec = N::ChainSpec>
42 + ChangeSetReader
43 + StorageChangeSetReader
44 + CanonStateSubscriptions
45 + ForkChoiceSubscriptions<Header = HeaderTy<N>>
46 + PersistedBlockSubscriptions
47 + StageCheckpointReader
48 + PruneCheckpointReader
49 + Clone
50 + Debug
51 + Unpin
52 + 'static
53{
54}
55
56impl<T, N: NodeTypesWithDB> FullProvider<N> for T where
57 T: DatabaseProviderFactory<
58 DB = N::DB,
59 Provider: BlockReader
60 + StageCheckpointReader
61 + PruneCheckpointReader
62 + ChangeSetReader
63 + StorageChangeSetReader
64 + StorageSettingsCache
65 + HistoryReader
66 + 'static,
67 > + NodePrimitivesProvider<Primitives = N::Primitives>
68 + StaticFileProviderFactory<Primitives = N::Primitives>
69 + RocksDBProviderFactory
70 + BlockReaderIdExt<
71 Transaction = TxTy<N>,
72 Block = BlockTy<N>,
73 Receipt = ReceiptTy<N>,
74 Header = HeaderTy<N>,
75 > + BalProvider
76 + StateProviderFactory
77 + StateRangeProviderFactory
78 + StateReader
79 + ChainSpecProvider<ChainSpec = N::ChainSpec>
80 + ChangeSetReader
81 + StorageChangeSetReader
82 + CanonStateSubscriptions
83 + ForkChoiceSubscriptions<Header = HeaderTy<N>>
84 + PersistedBlockSubscriptions
85 + StageCheckpointReader
86 + PruneCheckpointReader
87 + Clone
88 + Debug
89 + Unpin
90 + 'static
91{
92}