reth_provider/traits/
full.rs1use crate::{
4 AccountReader, BalProvider, BlockReader, BlockReaderIdExt, ChainSpecProvider, ChangeSetReader,
5 DatabaseProviderFactory, HashedPostStateProvider, PruneCheckpointReader,
6 RocksDBProviderFactory, StageCheckpointReader, StateProviderFactory, StateReader,
7 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 + StateReader
38 + HashedPostStateProvider
39 + ChainSpecProvider<ChainSpec = N::ChainSpec>
40 + ChangeSetReader
41 + StorageChangeSetReader
42 + CanonStateSubscriptions
43 + ForkChoiceSubscriptions<Header = HeaderTy<N>>
44 + PersistedBlockSubscriptions
45 + StageCheckpointReader
46 + Clone
47 + Debug
48 + Unpin
49 + 'static
50{
51}
52
53impl<T, N: NodeTypesWithDB> FullProvider<N> for T where
54 T: DatabaseProviderFactory<
55 DB = N::DB,
56 Provider: BlockReader
57 + StageCheckpointReader
58 + PruneCheckpointReader
59 + ChangeSetReader
60 + StorageChangeSetReader
61 + StorageSettingsCache,
62 > + NodePrimitivesProvider<Primitives = N::Primitives>
63 + StaticFileProviderFactory<Primitives = N::Primitives>
64 + RocksDBProviderFactory
65 + BlockReaderIdExt<
66 Transaction = TxTy<N>,
67 Block = BlockTy<N>,
68 Receipt = ReceiptTy<N>,
69 Header = HeaderTy<N>,
70 > + AccountReader
71 + BalProvider
72 + StateProviderFactory
73 + StateReader
74 + HashedPostStateProvider
75 + ChainSpecProvider<ChainSpec = N::ChainSpec>
76 + ChangeSetReader
77 + StorageChangeSetReader
78 + CanonStateSubscriptions
79 + ForkChoiceSubscriptions<Header = HeaderTy<N>>
80 + PersistedBlockSubscriptions
81 + StageCheckpointReader
82 + Clone
83 + Debug
84 + Unpin
85 + 'static
86{
87}