reth_storage_api/full.rs
1//! Helper trait for full rpc provider
2
3use reth_chainspec::{ChainSpecProvider, EthereumHardforks};
4
5use crate::{
6 BlockReaderIdExt, HeaderProvider, StageCheckpointReader, StateProviderFactory,
7 TransactionsProvider,
8};
9
10/// Helper trait to unify all provider traits required to support `eth` RPC server behaviour, for
11/// simplicity.
12pub trait FullRpcProvider:
13 StateProviderFactory
14 + ChainSpecProvider<ChainSpec: EthereumHardforks>
15 + BlockReaderIdExt
16 + HeaderProvider
17 + TransactionsProvider
18 + StageCheckpointReader
19 + Clone
20 + Unpin
21 + 'static
22{
23}
24
25impl<T> FullRpcProvider for T where
26 T: StateProviderFactory
27 + ChainSpecProvider<ChainSpec: EthereumHardforks>
28 + BlockReaderIdExt
29 + HeaderProvider
30 + TransactionsProvider
31 + StageCheckpointReader
32 + Clone
33 + Unpin
34 + 'static
35{
36}