From 968795db2818bd87f72a166ca56e281d61212f14 Mon Sep 17 00:00:00 2001 From: Liu-Cheng Xu Date: Wed, 31 May 2023 18:27:06 +0400 Subject: [PATCH] Expose `build_system_rpc_future` and `TransactionPoolAdapator` in sc-service (#14238) * Make block sync service customizable This change allows user to have their own network block logic, for example, we'd like to disable the builtin block sync service when using another syncing approach. * Remove unnecessary Box * Revert network_block * Expose build_system_rpc_future() and TransactionPoolAdaptor * fmt --- substrate/client/service/src/builder.rs | 1 + substrate/client/service/src/lib.rs | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/substrate/client/service/src/builder.rs b/substrate/client/service/src/builder.rs index 5237a6166b..fe71e11945 100644 --- a/substrate/client/service/src/builder.rs +++ b/substrate/client/service/src/builder.rs @@ -749,6 +749,7 @@ pub struct BuildNetworkParams<'a, TBl: BlockT, TExPool, TImpQu, TCl> { /// Optional warp sync params. pub warp_sync_params: Option>, } + /// Build the network service, the network status sinks and an RPC sender. pub fn build_network( params: BuildNetworkParams, diff --git a/substrate/client/service/src/lib.rs b/substrate/client/service/src/lib.rs index e658c7f7d9..4a896ecc87 100644 --- a/substrate/client/service/src/lib.rs +++ b/substrate/client/service/src/lib.rs @@ -211,7 +211,7 @@ async fn build_network_future< } /// Builds a future that processes system RPC requests. -async fn build_system_rpc_future< +pub async fn build_system_rpc_future< B: BlockT, C: BlockchainEvents + HeaderBackend @@ -421,6 +421,13 @@ pub struct TransactionPoolAdapter { client: Arc, } +impl TransactionPoolAdapter { + /// Constructs a new instance of [`TransactionPoolAdapter`]. + pub fn new(pool: Arc

, client: Arc) -> Self { + Self { pool, client } + } +} + /// Get transactions for propagation. /// /// Function extracted to simplify the test and prevent creating `ServiceFactory`.