From c0728d4d5ed064c577424d969334075609b7e423 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20K=C3=B6cher?= Date: Tue, 7 Mar 2023 13:43:59 +0100 Subject: [PATCH] relay-chain-interface: Do not depend on `polkadot-service` --- Cargo.lock | 1 - .../relay-chain-inprocess-interface/src/lib.rs | 3 ++- client/relay-chain-interface/Cargo.toml | 1 - client/relay-chain-interface/src/lib.rs | 7 ++----- client/relay-chain-minimal-node/src/lib.rs | 6 ++++-- parachain-template/node/src/service.rs | 7 ++----- polkadot-parachain/src/service.rs | 17 ++++------------- test/service/src/lib.rs | 8 +++----- 8 files changed, 17 insertions(+), 33 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6f751d8cb38..a2a1eaaf799 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2250,7 +2250,6 @@ dependencies = [ "jsonrpsee-core", "parity-scale-codec", "polkadot-overseer", - "polkadot-service", "sc-client-api", "sp-api", "sp-blockchain", diff --git a/client/relay-chain-inprocess-interface/src/lib.rs b/client/relay-chain-inprocess-interface/src/lib.rs index 4f042df589f..f230a23bd25 100644 --- a/client/relay-chain-inprocess-interface/src/lib.rs +++ b/client/relay-chain-inprocess-interface/src/lib.rs @@ -367,7 +367,8 @@ pub fn build_inprocess_relay_chain( parachain_config, telemetry_worker_handle, hwbench, - )?; + ) + .map_err(|e| RelayChainError::Application(Box::new(e) as Box<_>))?; let relay_chain_interface_builder = RelayChainInProcessInterfaceBuilder { polkadot_client: full_node.client.clone(), diff --git a/client/relay-chain-interface/Cargo.toml b/client/relay-chain-interface/Cargo.toml index 5f637129a7a..d6c9981d98d 100644 --- a/client/relay-chain-interface/Cargo.toml +++ b/client/relay-chain-interface/Cargo.toml @@ -6,7 +6,6 @@ edition = "2021" [dependencies] polkadot-overseer = { git = "https://github.com/paritytech/polkadot", branch = "master" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "master" } cumulus-primitives-core = { path = "../../primitives/core" } diff --git a/client/relay-chain-interface/src/lib.rs b/client/relay-chain-interface/src/lib.rs index 01ebe9f5d8a..db4fd24c64f 100644 --- a/client/relay-chain-interface/src/lib.rs +++ b/client/relay-chain-interface/src/lib.rs @@ -17,7 +17,6 @@ use std::{collections::BTreeMap, pin::Pin, sync::Arc}; use polkadot_overseer::prometheus::PrometheusError; -use polkadot_service::SubstrateServiceError; use sc_client_api::StorageProof; use futures::Stream; @@ -61,10 +60,8 @@ pub enum RelayChainError { WorkerCommunicationError(String), #[error("Scale codec deserialization error: {0}")] DeserializationError(CodecError), - #[error("Polkadot service error: {0}")] - ServiceError(#[from] polkadot_service::Error), - #[error("Substrate service error: {0}")] - SubServiceError(#[from] SubstrateServiceError), + #[error(transparent)] + Application(#[from] Box), #[error("Prometheus error: {0}")] PrometheusError(#[from] PrometheusError), #[error("Unspecified error occured: {0}")] diff --git a/client/relay-chain-minimal-node/src/lib.rs b/client/relay-chain-minimal-node/src/lib.rs index 90b7162324a..893ac02824a 100644 --- a/client/relay-chain-minimal-node/src/lib.rs +++ b/client/relay-chain-minimal-node/src/lib.rs @@ -158,7 +158,8 @@ async fn new_minimal_relay_chain( client: relay_chain_rpc_client.clone(), spawn_handle: task_manager.spawn_handle(), genesis_hash, - })?; + }) + .map_err(|e| RelayChainError::Application(Box::new(e) as Box<_>))?; let authority_discovery_service = build_authority_discovery_service( &task_manager, @@ -186,7 +187,8 @@ async fn new_minimal_relay_chain( overseer_args, &task_manager, relay_chain_rpc_client.clone(), - )?; + ) + .map_err(|e| RelayChainError::Application(Box::new(e) as Box<_>))?; network_starter.start_network(); diff --git a/parachain-template/node/src/service.rs b/parachain-template/node/src/service.rs index 56e767dc0d4..b82a5c5e8a9 100644 --- a/parachain-template/node/src/service.rs +++ b/parachain-template/node/src/service.rs @@ -17,7 +17,7 @@ use cumulus_client_service::{ start_full_node, BuildNetworkParams, StartCollatorParams, StartFullNodeParams, }; use cumulus_primitives_core::ParaId; -use cumulus_relay_chain_interface::{RelayChainError, RelayChainInterface}; +use cumulus_relay_chain_interface::RelayChainInterface; // Substrate Imports use frame_benchmarking_cli::SUBSTRATE_REFERENCE_HARDWARE; @@ -162,10 +162,7 @@ async fn start_node_impl( hwbench.clone(), ) .await - .map_err(|e| match e { - RelayChainError::ServiceError(polkadot_service::Error::Sub(x)) => x, - s => s.to_string().into(), - })?; + .map_err(|e| sc_service::Error::Application(Box::new(e) as Box<_>))?; let force_authoring = parachain_config.force_authoring; let validator = parachain_config.role.is_authority(); diff --git a/polkadot-parachain/src/service.rs b/polkadot-parachain/src/service.rs index ee18273f3e1..c2733a336ba 100644 --- a/polkadot-parachain/src/service.rs +++ b/polkadot-parachain/src/service.rs @@ -28,7 +28,7 @@ use cumulus_primitives_core::{ relay_chain::{Hash as PHash, PersistedValidationData}, ParaId, }; -use cumulus_relay_chain_interface::{RelayChainError, RelayChainInterface}; +use cumulus_relay_chain_interface::RelayChainInterface; use sp_core::Pair; use jsonrpsee::RpcModule; @@ -383,10 +383,7 @@ where hwbench.clone(), ) .await - .map_err(|e| match e { - RelayChainError::ServiceError(polkadot_service::Error::Sub(x)) => x, - s => s.to_string().into(), - })?; + .map_err(|e| sc_service::Error::Application(Box::new(e) as Box<_>))?; let force_authoring = parachain_config.force_authoring; let validator = parachain_config.role.is_authority(); @@ -573,10 +570,7 @@ where hwbench.clone(), ) .await - .map_err(|e| match e { - RelayChainError::ServiceError(polkadot_service::Error::Sub(x)) => x, - s => s.to_string().into(), - })?; + .map_err(|e| sc_service::Error::Application(Box::new(e) as Box<_>))?; let force_authoring = parachain_config.force_authoring; let validator = parachain_config.role.is_authority(); @@ -1346,10 +1340,7 @@ where hwbench.clone(), ) .await - .map_err(|e| match e { - RelayChainError::ServiceError(polkadot_service::Error::Sub(x)) => x, - s => s.to_string().into(), - })?; + .map_err(|e| sc_service::Error::Application(Box::new(e) as Box<_>))?; let force_authoring = parachain_config.force_authoring; let validator = parachain_config.role.is_authority(); diff --git a/test/service/src/lib.rs b/test/service/src/lib.rs index 85d042c2167..8afa0896e30 100644 --- a/test/service/src/lib.rs +++ b/test/service/src/lib.rs @@ -252,7 +252,8 @@ async fn build_relay_chain_interface( polkadot_service::IsCollator::Yes(CollatorPair::generate().0) }, None, - )?; + ) + .map_err(|e| RelayChainError::Application(Box::new(e) as Box<_>))?; task_manager.add_child(relay_chain_full_node.task_manager); tracing::info!("Using inprocess node."); @@ -309,10 +310,7 @@ where &mut task_manager, ) .await - .map_err(|e| match e { - RelayChainError::ServiceError(polkadot_service::Error::Sub(x)) => x, - s => s.to_string().into(), - })?; + .map_err(|e| sc_service::Error::Application(Box::new(e) as Box<_>))?; let import_queue_service = params.import_queue.service(); let (network, system_rpc_tx, tx_handler_controller, start_network, sync_service) =