reth_rpc/eth/helpers/
spec.rs

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