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