diff --git a/crates/node/builder/src/builder/mod.rs b/crates/node/builder/src/builder/mod.rs index 44311f34e3c4..f5fd489ae61a 100644 --- a/crates/node/builder/src/builder/mod.rs +++ b/crates/node/builder/src/builder/mod.rs @@ -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}; @@ -662,8 +662,7 @@ impl BuilderContext { >, > + Unpin + 'static, - Node::Provider: - BlockReader, + Node::Provider: BlockReaderFor, { self.start_network_with(builder, pool, Default::default()) } @@ -689,8 +688,7 @@ impl BuilderContext { >, > + Unpin + 'static, - Node::Provider: - BlockReader, + Node::Provider: BlockReaderFor, { let (handle, network, txpool, eth) = builder .transactions(pool, tx_config) diff --git a/crates/node/builder/src/node.rs b/crates/node/builder/src/node.rs index ce7d12fee3d3..93deb47a0110 100644 --- a/crates/node/builder/src/node.rs +++ b/crates/node/builder/src/node.rs @@ -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> DerefMut for FullNode: + BlockReader< + Block = N::Block, + Header = N::BlockHeader, + Transaction = ::Transaction, + Receipt = N::Receipt, +> +{ +} + +impl BlockReaderFor for T +where + N: NetworkPrimitives, + T: BlockReader< + Block = N::Block, + Header = N::BlockHeader, + Transaction = ::Transaction, + Receipt = N::Receipt, + >, +{ +}