reth_provider/traits/
full.rs1use crate::{
4 AccountReader, BlockReader, BlockReaderIdExt, ChainSpecProvider, ChangeSetReader,
5 DatabaseProviderFactory, HashedPostStateProvider, PruneCheckpointReader,
6 RocksDBProviderFactory, StageCheckpointReader, StateProviderFactory, StateReader,
7 StaticFileProviderFactory, TrieReader,
8};
9use reth_chain_state::{CanonStateSubscriptions, ForkChoiceSubscriptions};
10use reth_node_types::{BlockTy, HeaderTy, NodeTypesWithDB, ReceiptTy, TxTy};
11use reth_storage_api::NodePrimitivesProvider;
12use std::fmt::Debug;
13
14pub trait FullProvider<N: NodeTypesWithDB>:
16 DatabaseProviderFactory<
17 DB = N::DB,
18 Provider: BlockReader + TrieReader + StageCheckpointReader + PruneCheckpointReader,
19 > + NodePrimitivesProvider<Primitives = N::Primitives>
20 + StaticFileProviderFactory<Primitives = N::Primitives>
21 + RocksDBProviderFactory
22 + BlockReaderIdExt<
23 Transaction = TxTy<N>,
24 Block = BlockTy<N>,
25 Receipt = ReceiptTy<N>,
26 Header = HeaderTy<N>,
27 > + AccountReader
28 + StateProviderFactory
29 + StateReader
30 + HashedPostStateProvider
31 + ChainSpecProvider<ChainSpec = N::ChainSpec>
32 + ChangeSetReader
33 + CanonStateSubscriptions
34 + ForkChoiceSubscriptions<Header = HeaderTy<N>>
35 + StageCheckpointReader
36 + Clone
37 + Debug
38 + Unpin
39 + 'static
40{
41}
42
43impl<T, N: NodeTypesWithDB> FullProvider<N> for T where
44 T: DatabaseProviderFactory<
45 DB = N::DB,
46 Provider: BlockReader + TrieReader + StageCheckpointReader + PruneCheckpointReader,
47 > + NodePrimitivesProvider<Primitives = N::Primitives>
48 + StaticFileProviderFactory<Primitives = N::Primitives>
49 + RocksDBProviderFactory
50 + BlockReaderIdExt<
51 Transaction = TxTy<N>,
52 Block = BlockTy<N>,
53 Receipt = ReceiptTy<N>,
54 Header = HeaderTy<N>,
55 > + AccountReader
56 + StateProviderFactory
57 + StateReader
58 + HashedPostStateProvider
59 + ChainSpecProvider<ChainSpec = N::ChainSpec>
60 + ChangeSetReader
61 + CanonStateSubscriptions
62 + ForkChoiceSubscriptions<Header = HeaderTy<N>>
63 + StageCheckpointReader
64 + Clone
65 + Debug
66 + Unpin
67 + 'static
68{
69}