Files
reth/crates/storage/storage-api/src/full.rs

37 lines
880 B
Rust

//! Helper trait for full rpc provider
use reth_chainspec::{ChainSpecProvider, EthereumHardforks};
use crate::{
BlockReaderIdExt, HeaderProvider, StageCheckpointReader, StateProviderFactory,
TransactionsProvider,
};
/// Helper trait to unify all provider traits required to support `eth` RPC server behaviour, for
/// simplicity.
pub trait FullRpcProvider:
StateProviderFactory
+ ChainSpecProvider<ChainSpec: EthereumHardforks>
+ BlockReaderIdExt
+ HeaderProvider
+ TransactionsProvider
+ StageCheckpointReader
+ Clone
+ Unpin
+ 'static
{
}
impl<T> FullRpcProvider for T where
T: StateProviderFactory
+ ChainSpecProvider<ChainSpec: EthereumHardforks>
+ BlockReaderIdExt
+ HeaderProvider
+ TransactionsProvider
+ StageCheckpointReader
+ Clone
+ Unpin
+ 'static
{
}