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 + PruneCheckpointReader
47 + Clone
48 + Debug
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 > + NodePrimitivesProvider<Primitives = N::Primitives>
64 + StaticFileProviderFactory<Primitives = N::Primitives>
65 + RocksDBProviderFactory
66 + BlockReaderIdExt<
67 Transaction = TxTy<N>,
68 Block = BlockTy<N>,
69 Receipt = ReceiptTy<N>,
70 Header = HeaderTy<N>,
71 > + AccountReader
72 + BalProvider
73 + StateProviderFactory
74 + StateReader
75 + HashedPostStateProvider
76 + ChainSpecProvider<ChainSpec = N::ChainSpec>
77 + ChangeSetReader
78 + StorageChangeSetReader
79 + CanonStateSubscriptions
80 + ForkChoiceSubscriptions<Header = HeaderTy<N>>
81 + PersistedBlockSubscriptions
82 + StageCheckpointReader
83 + PruneCheckpointReader
84 + Clone
85 + Debug
86 + Unpin
87 + 'static
88{
89}