From 7a64651e0ec6823cc2773f5b4823f56943d2d076 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 --- client/service/src/builder.rs | 1 + client/service/src/lib.rs | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/client/service/src/builder.rs b/client/service/src/builder.rs index 5237a6166b012..fe71e11945bb2 100644 --- a/client/service/src/builder.rs +++ b/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/client/service/src/lib.rs b/client/service/src/lib.rs index e658c7f7d9c71..4a896ecc87263 100644 --- a/client/service/src/lib.rs +++ b/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`.