build_arb_engine_orchestrator

Function build_arb_engine_orchestrator 

Source
pub fn build_arb_engine_orchestrator<N, Client, S, V, C>(
    engine_kind: EngineApiKind,
    consensus: Arc<dyn FullConsensus<N::Primitives>>,
    client: Client,
    incoming_requests: S,
    pipeline: Pipeline<N>,
    pipeline_task_spawner: Runtime,
    provider: ProviderFactory<N>,
    blockchain_db: BlockchainProvider<N>,
    pruner: PrunerWithFactory<ProviderFactory<N>>,
    payload_builder: PayloadBuilderHandle<N::Payload>,
    payload_validator: V,
    tree_config: TreeConfig,
    sync_metrics_tx: MetricEventsSender,
    evm_config: C,
    changeset_cache: ChangesetCache,
) -> (ChainOrchestrator<EngineHandler<EngineApiRequestHandler<EngineApiRequest<N::Payload, N::Primitives>, N::Primitives>, S, BasicBlockDownloader<Client, <N::Primitives as NodePrimitives>::Block>>, PipelineSync<N>>, TreeSender<N::Payload, N::Primitives>)
where N: ProviderNodeTypes, Client: BlockClient<Block = <N::Primitives as NodePrimitives>::Block> + 'static, S: Stream<Item = BeaconEngineMessage<N::Payload>> + Send + Sync + Unpin + 'static, V: EngineValidator<N::Payload> + WaitForCaches, C: ConfigureEvm<Primitives = N::Primitives> + 'static,
Expand description

Builds the engine orchestrator AND returns a clone of the tree sender.

This is identical to reth’s build_engine_orchestrator but clones to_tree_tx before passing it to the request handler, allowing external code (our block producer) to send InsertExecutedBlock and ForkchoiceUpdated directly.