mirror of
https://github.com/paradigmxyz/reth.git
synced 2026-01-26 07:38:59 -05:00
chore(rpc): Remove provider and network trait methods from EthApiSpec (#12050)
This commit is contained in:
@@ -114,24 +114,43 @@ where
|
||||
}
|
||||
}
|
||||
|
||||
impl<N> EthApiSpec for OpEthApi<N>
|
||||
impl<N> RpcNodeCore for OpEthApi<N>
|
||||
where
|
||||
Self: Send + Sync,
|
||||
N: FullNodeComponents<Types: NodeTypes<ChainSpec: EthereumHardforks>>,
|
||||
Self: Clone,
|
||||
N: RpcNodeCore,
|
||||
{
|
||||
#[inline]
|
||||
fn provider(
|
||||
&self,
|
||||
) -> impl ChainSpecProvider<ChainSpec: EthereumHardforks> + BlockNumReader + StageCheckpointReader
|
||||
{
|
||||
self.inner.provider()
|
||||
type Provider = N::Provider;
|
||||
type Pool = N::Pool;
|
||||
type Network = <N as RpcNodeCore>::Network;
|
||||
type Evm = <N as RpcNodeCore>::Evm;
|
||||
|
||||
fn pool(&self) -> &Self::Pool {
|
||||
self.inner.pool()
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn network(&self) -> impl NetworkInfo {
|
||||
fn evm_config(&self) -> &Self::Evm {
|
||||
self.inner.evm_config()
|
||||
}
|
||||
|
||||
fn network(&self) -> &Self::Network {
|
||||
self.inner.network()
|
||||
}
|
||||
|
||||
fn provider(&self) -> &Self::Provider {
|
||||
self.inner.provider()
|
||||
}
|
||||
}
|
||||
|
||||
impl<N> EthApiSpec for OpEthApi<N>
|
||||
where
|
||||
Self: Send + Sync,
|
||||
N: RpcNodeCore<
|
||||
Provider: ChainSpecProvider<ChainSpec: EthereumHardforks>
|
||||
+ BlockNumReader
|
||||
+ StageCheckpointReader,
|
||||
Network: NetworkInfo,
|
||||
>,
|
||||
{
|
||||
#[inline]
|
||||
fn starting_block(&self) -> U256 {
|
||||
self.inner.starting_block()
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
//! block_executor: BlockExecutor,
|
||||
//! ) where
|
||||
//! Provider: FullRpcProvider + AccountReader + ChangeSetReader,
|
||||
//! Pool: TransactionPool + 'static,
|
||||
//! Pool: TransactionPool + Unpin + 'static,
|
||||
//! Network: NetworkInfo + Peers + Clone + 'static,
|
||||
//! Events: CanonStateSubscriptions + Clone + 'static,
|
||||
//! EvmConfig: ConfigureEvm<Header = Header>,
|
||||
@@ -85,6 +85,7 @@
|
||||
//! use reth_tasks::TokioTaskExecutor;
|
||||
//! use reth_transaction_pool::TransactionPool;
|
||||
//! use tokio::try_join;
|
||||
//!
|
||||
//! pub async fn launch<
|
||||
//! Provider,
|
||||
//! Pool,
|
||||
@@ -104,7 +105,7 @@
|
||||
//! block_executor: BlockExecutor,
|
||||
//! ) where
|
||||
//! Provider: FullRpcProvider + AccountReader + ChangeSetReader,
|
||||
//! Pool: TransactionPool + 'static,
|
||||
//! Pool: TransactionPool + Unpin + 'static,
|
||||
//! Network: NetworkInfo + Peers + Clone + 'static,
|
||||
//! Events: CanonStateSubscriptions + Clone + 'static,
|
||||
//! EngineApi: EngineApiServer<EngineT>,
|
||||
|
||||
@@ -8,21 +8,21 @@ use reth_errors::{RethError, RethResult};
|
||||
use reth_network_api::NetworkInfo;
|
||||
use reth_provider::{BlockNumReader, ChainSpecProvider, StageCheckpointReader};
|
||||
|
||||
use super::EthSigner;
|
||||
use crate::{helpers::EthSigner, RpcNodeCore};
|
||||
|
||||
/// `Eth` API trait.
|
||||
///
|
||||
/// Defines core functionality of the `eth` API implementation.
|
||||
#[auto_impl::auto_impl(&, Arc)]
|
||||
pub trait EthApiSpec: Send + Sync {
|
||||
/// Returns a handle for reading data from disk.
|
||||
fn provider(
|
||||
&self,
|
||||
) -> impl ChainSpecProvider<ChainSpec: EthereumHardforks> + BlockNumReader + StageCheckpointReader;
|
||||
|
||||
/// Returns a handle for reading network data summary.
|
||||
fn network(&self) -> impl NetworkInfo;
|
||||
|
||||
pub trait EthApiSpec:
|
||||
RpcNodeCore<
|
||||
Provider: ChainSpecProvider<ChainSpec: EthereumHardforks>
|
||||
+ BlockNumReader
|
||||
+ StageCheckpointReader,
|
||||
Network: NetworkInfo,
|
||||
> + Send
|
||||
+ Sync
|
||||
{
|
||||
/// Returns the block node is started on.
|
||||
fn starting_block(&self) -> U256;
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ use reth_primitives::BlockNumberOrTag;
|
||||
use reth_provider::{BlockReaderIdExt, CanonStateSubscriptions, ChainSpecProvider};
|
||||
use reth_rpc_eth_api::{
|
||||
helpers::{EthSigner, SpawnBlocking},
|
||||
EthApiTypes,
|
||||
EthApiTypes, RpcNodeCore,
|
||||
};
|
||||
use reth_rpc_eth_types::{
|
||||
EthApiBuilderCtx, EthApiError, EthStateCache, FeeHistoryCache, GasCap, GasPriceOracle,
|
||||
@@ -140,6 +140,35 @@ where
|
||||
}
|
||||
}
|
||||
|
||||
impl<Provider, Pool, Network, EvmConfig> RpcNodeCore for EthApi<Provider, Pool, Network, EvmConfig>
|
||||
where
|
||||
Provider: Send + Sync + Clone + Unpin,
|
||||
Pool: Send + Sync + Clone + Unpin,
|
||||
Network: Send + Sync + Clone,
|
||||
EvmConfig: Send + Sync + Clone + Unpin,
|
||||
{
|
||||
type Provider = Provider;
|
||||
type Pool = Pool;
|
||||
type Network = Network;
|
||||
type Evm = EvmConfig;
|
||||
|
||||
fn pool(&self) -> &Self::Pool {
|
||||
self.inner.pool()
|
||||
}
|
||||
|
||||
fn evm_config(&self) -> &Self::Evm {
|
||||
self.inner.evm_config()
|
||||
}
|
||||
|
||||
fn network(&self) -> &Self::Network {
|
||||
self.inner.network()
|
||||
}
|
||||
|
||||
fn provider(&self) -> &Self::Provider {
|
||||
self.inner.provider()
|
||||
}
|
||||
}
|
||||
|
||||
impl<Provider, Pool, Network, EvmConfig> std::fmt::Debug
|
||||
for EthApi<Provider, Pool, Network, EvmConfig>
|
||||
{
|
||||
|
||||
@@ -2,13 +2,14 @@ use alloy_primitives::U256;
|
||||
use reth_chainspec::EthereumHardforks;
|
||||
use reth_network_api::NetworkInfo;
|
||||
use reth_provider::{BlockNumReader, ChainSpecProvider, StageCheckpointReader};
|
||||
use reth_rpc_eth_api::helpers::EthApiSpec;
|
||||
use reth_rpc_eth_api::{helpers::EthApiSpec, RpcNodeCore};
|
||||
use reth_transaction_pool::TransactionPool;
|
||||
|
||||
use crate::EthApi;
|
||||
|
||||
impl<Provider, Pool, Network, EvmConfig> EthApiSpec for EthApi<Provider, Pool, Network, EvmConfig>
|
||||
where
|
||||
Self: RpcNodeCore<Provider = Provider, Network = Network>,
|
||||
Pool: TransactionPool + 'static,
|
||||
Provider: ChainSpecProvider<ChainSpec: EthereumHardforks>
|
||||
+ BlockNumReader
|
||||
@@ -17,17 +18,6 @@ where
|
||||
Network: NetworkInfo + 'static,
|
||||
EvmConfig: Send + Sync,
|
||||
{
|
||||
fn provider(
|
||||
&self,
|
||||
) -> impl ChainSpecProvider<ChainSpec: EthereumHardforks> + BlockNumReader + StageCheckpointReader
|
||||
{
|
||||
self.inner.provider()
|
||||
}
|
||||
|
||||
fn network(&self) -> impl NetworkInfo {
|
||||
self.inner.network()
|
||||
}
|
||||
|
||||
fn starting_block(&self) -> U256 {
|
||||
self.inner.starting_block()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user