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