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