From 5c9fda56c377e2818ab082412392ce06eea3f34f Mon Sep 17 00:00:00 2001
From: Rohit Sarpotdar <rohi7ns@gmail.com>
Date: Tue, 18 Feb 2025 22:07:59 +0530
Subject: [PATCH] Bridges: Remove obsolete relayer CLI args: host, port, path,
 secure (#7549)

Closes: #7291

## Description

*Removes obsolete relayer CLI args from bridges and resolves following
issue: (https://github.com/paritytech/polkadot-sdk/issues/7291)*

---------

Co-authored-by: Branislav Kontur <bkontur@gmail.com>
---
 .../relays/client-substrate/src/client/rpc.rs | 16 +------
 bridges/relays/client-substrate/src/lib.rs    | 19 ++------
 .../src/cli/chain_schema.rs                   | 20 +-------
 .../src/cli/relay_headers_and_messages/mod.rs | 48 +++++--------------
 .../rococo-westend/bridges_rococo_westend.sh  | 42 +++-------------
 bridges/testing/scripts/start-relayer.sh      |  7 ---
 6 files changed, 25 insertions(+), 127 deletions(-)
 delete mode 100755 bridges/testing/scripts/start-relayer.sh

diff --git a/bridges/relays/client-substrate/src/client/rpc.rs b/bridges/relays/client-substrate/src/client/rpc.rs
index 9c7f769462e..7147bad3c28 100644
--- a/bridges/relays/client-substrate/src/client/rpc.rs
+++ b/bridges/relays/client-substrate/src/client/rpc.rs
@@ -194,21 +194,7 @@ impl<C: Chain> RpcClient<C> {
 		params: &ConnectionParams,
 	) -> Result<(Arc<tokio::runtime::Runtime>, Arc<WsClient>)> {
 		let tokio = tokio::runtime::Runtime::new()?;
-		let uri = match params.uri {
-			Some(ref uri) => uri.clone(),
-			None => {
-				format!(
-					"{}://{}:{}{}",
-					if params.secure { "wss" } else { "ws" },
-					params.host,
-					params.port,
-					match params.path {
-						Some(ref path) => format!("/{}", path),
-						None => String::new(),
-					},
-				)
-			},
-		};
+		let uri = params.uri.clone();
 		log::info!(target: "bridge", "Connecting to {} node at {}", C::NAME, uri);
 
 		let client = tokio
diff --git a/bridges/relays/client-substrate/src/lib.rs b/bridges/relays/client-substrate/src/lib.rs
index 12a1c48c09c..7eb1e4a6cde 100644
--- a/bridges/relays/client-substrate/src/lib.rs
+++ b/bridges/relays/client-substrate/src/lib.rs
@@ -57,17 +57,8 @@ pub use bp_runtime::{
 /// Substrate-over-websocket connection params.
 #[derive(Debug, Clone)]
 pub struct ConnectionParams {
-	/// Websocket endpoint URL. Overrides all other URL components (`host`, `port`, `path` and
-	/// `secure`).
-	pub uri: Option<String>,
-	/// Websocket server host name.
-	pub host: String,
-	/// Websocket server TCP port.
-	pub port: u16,
-	/// Websocket endpoint path at server.
-	pub path: Option<String>,
-	/// Use secure websocket connection.
-	pub secure: bool,
+	/// Websocket endpoint URL.
+	pub uri: String,
 	/// Defined chain runtime version
 	pub chain_runtime_version: ChainRuntimeVersion,
 }
@@ -75,11 +66,7 @@ pub struct ConnectionParams {
 impl Default for ConnectionParams {
 	fn default() -> Self {
 		ConnectionParams {
-			uri: None,
-			host: "localhost".into(),
-			port: 9944,
-			path: None,
-			secure: false,
+			uri: "ws://localhost:9944".into(),
 			chain_runtime_version: ChainRuntimeVersion::Auto,
 		}
 	}
diff --git a/bridges/relays/lib-substrate-relay/src/cli/chain_schema.rs b/bridges/relays/lib-substrate-relay/src/cli/chain_schema.rs
index d985d35c9e8..ae00b243c0c 100644
--- a/bridges/relays/lib-substrate-relay/src/cli/chain_schema.rs
+++ b/bridges/relays/lib-substrate-relay/src/cli/chain_schema.rs
@@ -98,21 +98,9 @@ macro_rules! declare_chain_connection_params_cli_schema {
 			#[doc = $chain " connection params."]
 			#[derive(StructOpt, Debug, PartialEq, Eq, Clone)]
 			pub struct [<$chain ConnectionParams>] {
-				#[doc = "WS endpoint of " $chain ": full URI. Overrides all other connection string components (host, port, path, secure)."]
+				#[doc = "WS endpoint of " $chain ": full URI."]
 				#[structopt(long)]
-				pub [<$chain_prefix _uri>]: Option<String>,
-				#[doc = "WS endpoint of " $chain ": host component."]
-				#[structopt(long, default_value = "127.0.0.1")]
-				pub [<$chain_prefix _host>]: String,
-				#[doc = "WS endpoint of " $chain ": port component."]
-				#[structopt(long, default_value = "9944")]
-				pub [<$chain_prefix _port>]: u16,
-				#[doc = "WS endpoint of " $chain ": path component."]
-				#[structopt(long)]
-				pub [<$chain_prefix _path>]: Option<String>,
-				#[doc = "Use secure websocket connection."]
-				#[structopt(long)]
-				pub [<$chain_prefix _secure>]: bool,
+				pub [<$chain_prefix _uri>]: String,
 				#[doc = "Custom runtime version"]
 				#[structopt(flatten)]
 				pub [<$chain_prefix _runtime_version>]: [<$chain RuntimeVersionParams>],
@@ -129,10 +117,6 @@ macro_rules! declare_chain_connection_params_cli_schema {
 						.into_runtime_version(Chain::RUNTIME_VERSION)?;
 					Ok(relay_substrate_client::new(relay_substrate_client::ConnectionParams {
 						uri: self.[<$chain_prefix _uri>],
-						host: self.[<$chain_prefix _host>],
-						port: self.[<$chain_prefix _port>],
-						path: self.[<$chain_prefix _path>],
-						secure: self.[<$chain_prefix _secure>],
 						chain_runtime_version,
 					})
 					.await
diff --git a/bridges/relays/lib-substrate-relay/src/cli/relay_headers_and_messages/mod.rs b/bridges/relays/lib-substrate-relay/src/cli/relay_headers_and_messages/mod.rs
index bb6c689a76e..078bf8ae735 100644
--- a/bridges/relays/lib-substrate-relay/src/cli/relay_headers_and_messages/mod.rs
+++ b/bridges/relays/lib-substrate-relay/src/cli/relay_headers_and_messages/mod.rs
@@ -422,30 +422,22 @@ mod tests {
 
 		let res = BridgeHubKusamaBridgeHubPolkadotHeadersAndMessages::from_iter(vec![
 			"bridge-hub-kusama-bridge-hub-polkadot-headers-and-messages",
-			"--bridge-hub-kusama-host",
-			"bridge-hub-kusama-node-collator1",
-			"--bridge-hub-kusama-port",
-			"9944",
+			"--bridge-hub-kusama-uri",
+			"ws://bridge-hub-kusama-node-collator1:9944",
 			"--bridge-hub-kusama-signer",
 			"//Iden",
 			"--bridge-hub-kusama-transactions-mortality",
 			"64",
-			"--kusama-host",
-			"kusama-alice",
-			"--kusama-port",
-			"9944",
-			"--bridge-hub-polkadot-host",
-			"bridge-hub-polkadot-collator1",
-			"--bridge-hub-polkadot-port",
-			"9944",
+			"--kusama-uri",
+			"ws://kusama-alice:9944",
+			"--bridge-hub-polkadot-uri",
+			"ws://bridge-hub-polkadot-collator1:9944",
 			"--bridge-hub-polkadot-signer",
 			"//George",
 			"--bridge-hub-polkadot-transactions-mortality",
 			"64",
-			"--polkadot-host",
-			"polkadot-alice",
-			"--polkadot-port",
-			"9944",
+			"--polkadot-uri",
+			"ws://polkadot-alice:9944",
 			"--lane",
 			"0000000000000000000000000000000000000000000000000000000000000000",
 			"--prometheus-host",
@@ -467,11 +459,7 @@ mod tests {
 					},
 				},
 				left: BridgeHubKusamaConnectionParams {
-					bridge_hub_kusama_uri: None,
-					bridge_hub_kusama_host: "bridge-hub-kusama-node-collator1".into(),
-					bridge_hub_kusama_port: 9944,
-					bridge_hub_kusama_path: None,
-					bridge_hub_kusama_secure: false,
+					bridge_hub_kusama_uri: "ws://bridge-hub-kusama-node-collator1:9944".into(),
 					bridge_hub_kusama_runtime_version: BridgeHubKusamaRuntimeVersionParams {
 						bridge_hub_kusama_version_mode: RuntimeVersionType::Bundle,
 						bridge_hub_kusama_spec_version: None,
@@ -486,11 +474,7 @@ mod tests {
 					bridge_hub_kusama_transactions_mortality: Some(64),
 				},
 				left_relay: KusamaConnectionParams {
-					kusama_uri: None,
-					kusama_host: "kusama-alice".into(),
-					kusama_port: 9944,
-					kusama_path: None,
-					kusama_secure: false,
+					kusama_uri: "ws://kusama-alice:9944".into(),
 					kusama_runtime_version: KusamaRuntimeVersionParams {
 						kusama_version_mode: RuntimeVersionType::Bundle,
 						kusama_spec_version: None,
@@ -498,11 +482,7 @@ mod tests {
 					},
 				},
 				right: BridgeHubPolkadotConnectionParams {
-					bridge_hub_polkadot_uri: None,
-					bridge_hub_polkadot_host: "bridge-hub-polkadot-collator1".into(),
-					bridge_hub_polkadot_port: 9944,
-					bridge_hub_polkadot_path: None,
-					bridge_hub_polkadot_secure: false,
+					bridge_hub_polkadot_uri: "ws://bridge-hub-polkadot-collator1:9944".into(),
 					bridge_hub_polkadot_runtime_version: BridgeHubPolkadotRuntimeVersionParams {
 						bridge_hub_polkadot_version_mode: RuntimeVersionType::Bundle,
 						bridge_hub_polkadot_spec_version: None,
@@ -517,11 +497,7 @@ mod tests {
 					bridge_hub_polkadot_transactions_mortality: Some(64),
 				},
 				right_relay: PolkadotConnectionParams {
-					polkadot_uri: None,
-					polkadot_host: "polkadot-alice".into(),
-					polkadot_port: 9944,
-					polkadot_path: None,
-					polkadot_secure: false,
+					polkadot_uri: "ws://polkadot-alice:9944".into(),
 					polkadot_runtime_version: PolkadotRuntimeVersionParams {
 						polkadot_version_mode: RuntimeVersionType::Bundle,
 						polkadot_spec_version: None,
diff --git a/bridges/testing/environments/rococo-westend/bridges_rococo_westend.sh b/bridges/testing/environments/rococo-westend/bridges_rococo_westend.sh
index 321f4d9f26d..b146c28ff55 100755
--- a/bridges/testing/environments/rococo-westend/bridges_rococo_westend.sh
+++ b/bridges/testing/environments/rococo-westend/bridges_rococo_westend.sh
@@ -131,13 +131,11 @@ function init_ro_wnd() {
 
     RUST_LOG=runtime=trace,rpc=trace,bridge=trace \
         $relayer_path init-bridge rococo-to-bridge-hub-westend \
-	--source-host localhost \
-	--source-port 9942 \
-	--source-version-mode Auto \
-	--target-host localhost \
-	--target-port 8945 \
-	--target-version-mode Auto \
-	--target-signer //Bob
+        --source-uri ws://localhost:9942 \
+        --source-version-mode Auto \
+        --target-uri ws://localhost:8945  \
+        --target-version-mode Auto \
+        --target-signer //Bob
 }
 
 function init_wnd_ro() {
@@ -145,39 +143,13 @@ function init_wnd_ro() {
 
     RUST_LOG=runtime=trace,rpc=trace,bridge=trace \
         $relayer_path init-bridge westend-to-bridge-hub-rococo \
-        --source-host localhost \
-        --source-port 9945 \
+        --source-uri ws://localhost:9945  \
         --source-version-mode Auto \
-        --target-host localhost \
-        --target-port 8943 \
+        --target-uri ws://localhost:8943 \
         --target-version-mode Auto \
         --target-signer //Bob
 }
 
-function run_relay() {
-    local relayer_path=$(ensure_relayer)
-
-    RUST_LOG=runtime=trace,rpc=trace,bridge=trace \
-        $relayer_path relay-headers-and-messages bridge-hub-rococo-bridge-hub-westend \
-        --rococo-host localhost \
-        --rococo-port 9942 \
-        --rococo-version-mode Auto \
-        --bridge-hub-rococo-host localhost \
-        --bridge-hub-rococo-port 8943 \
-        --bridge-hub-rococo-version-mode Auto \
-        --bridge-hub-rococo-signer //Charlie \
-        --bridge-hub-rococo-transactions-mortality 4 \
-        --westend-host localhost \
-        --westend-port 9945 \
-        --westend-version-mode Auto \
-        --bridge-hub-westend-host localhost \
-        --bridge-hub-westend-port 8945 \
-        --bridge-hub-westend-version-mode Auto \
-        --bridge-hub-westend-signer //Charlie \
-        --bridge-hub-westend-transactions-mortality 4 \
-        --lane "${LANE_ID}"
-}
-
 function run_finality_relay() {
     local relayer_path=$(ensure_relayer)
 
diff --git a/bridges/testing/scripts/start-relayer.sh b/bridges/testing/scripts/start-relayer.sh
deleted file mode 100755
index 38ea62fad52..00000000000
--- a/bridges/testing/scripts/start-relayer.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/bash
-
-RELAY_LOG=`mktemp -p $TEST_FOLDER relay.XXXXX`
-
-pushd $POLKADOT_SDK_PATH/bridges/testing/environments/rococo-westend
-./bridges_rococo_westend.sh run-relay >$RELAY_LOG 2>&1&
-popd
-- 
GitLab