reth_rpc/eth/helpers/
spec.rs

1use alloy_primitives::U256;
2use reth_chainspec::EthereumHardforks;
3use reth_network_api::NetworkInfo;
4use reth_provider::{
5    BlockNumReader, BlockReader, ChainSpecProvider, ProviderTx, StageCheckpointReader,
6};
7use reth_rpc_eth_api::{helpers::EthApiSpec, RpcNodeCore};
8
9use crate::EthApi;
10
11impl<Provider, Pool, Network, EvmConfig> EthApiSpec for EthApi<Provider, Pool, Network, EvmConfig>
12where
13    Self: RpcNodeCore<
14        Provider: ChainSpecProvider<ChainSpec: EthereumHardforks>
15                      + BlockNumReader
16                      + StageCheckpointReader,
17        Network: NetworkInfo,
18    >,
19    Provider: BlockReader,
20{
21    type Transaction = ProviderTx<Provider>;
22
23    fn starting_block(&self) -> U256 {
24        self.inner.starting_block()
25    }
26
27    fn signers(
28        &self,
29    ) -> &parking_lot::RwLock<Vec<Box<dyn reth_rpc_eth_api::helpers::EthSigner<Self::Transaction>>>>
30    {
31        self.inner.signers()
32    }
33}