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}