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>)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.