mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
chore: add helper trait for BlockReader tied to NetworkPrimitives (#13449)
This commit is contained in:
@ -7,7 +7,7 @@ use crate::{
|
||||
components::NodeComponentsBuilder,
|
||||
node::FullNode,
|
||||
rpc::{RethRpcAddOns, RethRpcServerHandles, RpcContext},
|
||||
DefaultNodeLauncher, LaunchNode, Node, NodeHandle,
|
||||
BlockReaderFor, DefaultNodeLauncher, LaunchNode, Node, NodeHandle,
|
||||
};
|
||||
use alloy_eips::eip4844::env_settings::EnvKzgSettings;
|
||||
use futures::Future;
|
||||
@ -35,7 +35,7 @@ use reth_node_core::{
|
||||
};
|
||||
use reth_provider::{
|
||||
providers::{BlockchainProvider, NodeTypesForProvider},
|
||||
BlockReader, ChainSpecProvider, FullProvider,
|
||||
ChainSpecProvider, FullProvider,
|
||||
};
|
||||
use reth_tasks::TaskExecutor;
|
||||
use reth_transaction_pool::{PoolConfig, PoolTransaction, TransactionPool};
|
||||
@ -658,8 +658,7 @@ impl<Node: FullNodeTypes> BuilderContext<Node> {
|
||||
>,
|
||||
> + Unpin
|
||||
+ 'static,
|
||||
Node::Provider:
|
||||
BlockReader<Receipt = N::Receipt, Block = N::Block, Header = N::BlockHeader>,
|
||||
Node::Provider: BlockReaderFor<N>,
|
||||
{
|
||||
self.start_network_with(builder, pool, Default::default())
|
||||
}
|
||||
@ -685,8 +684,7 @@ impl<Node: FullNodeTypes> BuilderContext<Node> {
|
||||
>,
|
||||
> + Unpin
|
||||
+ 'static,
|
||||
Node::Provider:
|
||||
BlockReader<Receipt = N::Receipt, Block = N::Block, Header = N::BlockHeader>,
|
||||
Node::Provider: BlockReaderFor<N>,
|
||||
{
|
||||
let (handle, network, txpool, eth) = builder
|
||||
.transactions(pool, tx_config)
|
||||
|
||||
@ -7,13 +7,14 @@ use std::{
|
||||
sync::Arc,
|
||||
};
|
||||
|
||||
use reth_node_api::{EngineTypes, FullNodeComponents};
|
||||
use reth_network::NetworkPrimitives;
|
||||
use reth_node_api::{BlockBody, EngineTypes, FullNodeComponents};
|
||||
use reth_node_core::{
|
||||
dirs::{ChainPath, DataDirPath},
|
||||
node_config::NodeConfig,
|
||||
};
|
||||
use reth_payload_builder::PayloadBuilderHandle;
|
||||
use reth_provider::ChainSpecProvider;
|
||||
use reth_provider::{BlockReader, ChainSpecProvider};
|
||||
use reth_rpc_api::EngineApiClient;
|
||||
use reth_rpc_builder::{auth::AuthServerHandle, RpcServerHandle};
|
||||
use reth_tasks::TaskExecutor;
|
||||
@ -210,3 +211,27 @@ impl<Node: FullNodeComponents, AddOns: NodeAddOns<Node>> DerefMut for FullNode<N
|
||||
&mut self.add_ons_handle
|
||||
}
|
||||
}
|
||||
|
||||
/// This is a type alias to make type bounds simpler, when we have a [`NetworkPrimitives`] and need
|
||||
/// a [`BlockReader`] whose associated types match the [`NetworkPrimitives`] associated types.
|
||||
pub trait BlockReaderFor<N: NetworkPrimitives>:
|
||||
BlockReader<
|
||||
Block = N::Block,
|
||||
Header = N::BlockHeader,
|
||||
Transaction = <N::BlockBody as BlockBody>::Transaction,
|
||||
Receipt = N::Receipt,
|
||||
>
|
||||
{
|
||||
}
|
||||
|
||||
impl<N, T> BlockReaderFor<N> for T
|
||||
where
|
||||
N: NetworkPrimitives,
|
||||
T: BlockReader<
|
||||
Block = N::Block,
|
||||
Header = N::BlockHeader,
|
||||
Transaction = <N::BlockBody as BlockBody>::Transaction,
|
||||
Receipt = N::Receipt,
|
||||
>,
|
||||
{
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user