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