From 968795db2818bd87f72a166ca56e281d61212f14 Mon Sep 17 00:00:00 2001 From: Liu-Cheng Xu <xuliuchengxlc@gmail.com> 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 5237a6166b0..fe71e11945b 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<WarpSyncParams<TBl>>, } + /// Build the network service, the network status sinks and an RPC sender. pub fn build_network<TBl, TExPool, TImpQu, TCl>( params: BuildNetworkParams<TBl, TExPool, TImpQu, TCl>, diff --git a/substrate/client/service/src/lib.rs b/substrate/client/service/src/lib.rs index e658c7f7d9c..4a896ecc872 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<B> + HeaderBackend<B> @@ -421,6 +421,13 @@ pub struct TransactionPoolAdapter<C, P> { client: Arc<C>, } +impl<C, P> TransactionPoolAdapter<C, P> { + /// Constructs a new instance of [`TransactionPoolAdapter`]. + pub fn new(pool: Arc<P>, client: Arc<C>) -> Self { + Self { pool, client } + } +} + /// Get transactions for propagation. /// /// Function extracted to simplify the test and prevent creating `ServiceFactory`. -- GitLab