diff --git a/crates/node/builder/src/launch/engine.rs b/crates/node/builder/src/launch/engine.rs index de794a258..3e699b913 100644 --- a/crates/node/builder/src/launch/engine.rs +++ b/crates/node/builder/src/launch/engine.rs @@ -282,7 +282,7 @@ where ), ); - let RpcHandle { rpc_server_handles, rpc_registry, engine_events } = + let RpcHandle { rpc_server_handles, rpc_registry, engine_events, beacon_engine_handle } = add_ons.launch_add_ons(add_ons_ctx).await?; // TODO: migrate to devmode with https://github.com/paradigmxyz/reth/issues/10104 @@ -406,7 +406,12 @@ where task_executor: ctx.task_executor().clone(), config: ctx.node_config().clone(), data_dir: ctx.data_dir().clone(), - add_ons_handle: RpcHandle { rpc_server_handles, rpc_registry, engine_events }, + add_ons_handle: RpcHandle { + rpc_server_handles, + rpc_registry, + engine_events, + beacon_engine_handle, + }, }; // Notify on node started on_node_started.on_event(FullNode::clone(&full_node))?; diff --git a/crates/node/builder/src/rpc.rs b/crates/node/builder/src/rpc.rs index 9319ab775..630ed5ea2 100644 --- a/crates/node/builder/src/rpc.rs +++ b/crates/node/builder/src/rpc.rs @@ -7,7 +7,7 @@ use std::{ ops::{Deref, DerefMut}, }; -use crate::{BeaconConsensusEngineEvent, EthApiBuilderCtx}; +use crate::{BeaconConsensusEngineEvent, BeaconConsensusEngineHandle, EthApiBuilderCtx}; use alloy_rpc_types::engine::ClientVersionV1; use futures::TryFutureExt; use reth_node_api::{ @@ -310,6 +310,9 @@ pub struct RpcHandle { /// dispatch events pub engine_events: EventSender::Primitives>>, + /// Handle to the beacon consensus engine. + pub beacon_engine_handle: + BeaconConsensusEngineHandle<::Engine>, } impl Clone for RpcHandle { @@ -318,6 +321,7 @@ impl Clone for RpcHandle