feat: relax NodeTypesWithEngine bounds on EngineTypes to PayloadTypes (#15257)

This commit is contained in:
Federico Gimenez
2025-03-25 11:06:22 +01:00
committed by GitHub
parent c0c29862bc
commit 985a926bee
29 changed files with 154 additions and 142 deletions

View File

@@ -8,7 +8,7 @@ use std::{
sync::Arc,
};
use reth_node_api::{EngineTypes, FullNodeComponents};
use reth_node_api::{EngineTypes, FullNodeComponents, PayloadTypes};
use reth_node_core::{
dirs::{ChainPath, DataDirPath},
node_config::NodeConfig,
@@ -81,7 +81,7 @@ where
C: Send + Sync + Unpin + 'static,
AO: Send + Sync + Unpin + Clone + 'static,
{
type Engine = <N::Types as NodeTypesWithEngine>::Engine;
type Payload = <N::Types as NodeTypesWithEngine>::Payload;
}
impl<N, C, AO> Node<N> for AnyNode<N, C, AO>
@@ -118,7 +118,7 @@ pub struct FullNode<Node: FullNodeComponents, AddOns: NodeAddOns<Node>> {
/// Provider to interact with the node's database
pub provider: Node::Provider,
/// Handle to the node's payload builder service.
pub payload_builder_handle: PayloadBuilderHandle<<Node::Types as NodeTypesWithEngine>::Engine>,
pub payload_builder_handle: PayloadBuilderHandle<<Node::Types as NodeTypesWithEngine>::Payload>,
/// Task executor for the node.
pub task_executor: TaskExecutor,
/// The initial node config.
@@ -146,10 +146,10 @@ impl<Node: FullNodeComponents, AddOns: NodeAddOns<Node>> Clone for FullNode<Node
}
}
impl<Engine, Node, AddOns> FullNode<Node, AddOns>
impl<Payload, Node, AddOns> FullNode<Node, AddOns>
where
Engine: EngineTypes,
Node: FullNodeComponents<Types: NodeTypesWithEngine<Engine = Engine>>,
Payload: PayloadTypes,
Node: FullNodeComponents<Types: NodeTypesWithEngine<Payload = Payload>>,
AddOns: NodeAddOns<Node>,
{
/// Returns the chain spec of the node.
@@ -158,10 +158,10 @@ where
}
}
impl<Engine, Node, AddOns> FullNode<Node, AddOns>
impl<Payload, Node, AddOns> FullNode<Node, AddOns>
where
Engine: EngineTypes,
Node: FullNodeComponents<Types: NodeTypesWithEngine<Engine = Engine>>,
Payload: PayloadTypes,
Node: FullNodeComponents<Types: NodeTypesWithEngine<Payload = Payload>>,
AddOns: RethRpcAddOns<Node>,
{
/// Returns the [`RpcServerHandle`] to the started rpc server.
@@ -173,7 +173,14 @@ where
pub const fn auth_server_handle(&self) -> &AuthServerHandle {
&self.add_ons_handle.rpc_server_handles.auth
}
}
impl<Engine, Node, AddOns> FullNode<Node, AddOns>
where
Engine: EngineTypes,
Node: FullNodeComponents<Types: NodeTypesWithEngine<Payload = Engine>>,
AddOns: RethRpcAddOns<Node>,
{
/// Returns the [`EngineApiClient`] interface for the authenticated engine API.
///
/// This will send authenticated http requests to the node's auth server.