Skip to content

Commit e8ab882

Browse files
authored
fix(helpers): extend http to ws address conversion (#2166)
Extends `common::http_uri_to_ws_address` helper to include address path.
1 parent 79752e1 commit e8ab882

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

mm2src/coins/tendermint/tendermint_balance_events.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,10 @@ impl EventBehaviour for TendermintCoin {
6868

6969
let socket_address = format!("{}/{}", http_uri_to_ws_address(node_uri), "websocket");
7070

71-
let mut wsocket = match tokio_tungstenite_wasm::connect(socket_address).await {
71+
let mut wsocket = match tokio_tungstenite_wasm::connect(&socket_address).await {
7272
Ok(ws) => ws,
7373
Err(e) => {
74-
log::error!("{e}");
74+
log::error!("Couldn't connect to '{socket_address}': {e}");
7575
continue;
7676
},
7777
};

mm2src/common/common.rs

+12-2
Original file line numberDiff line numberDiff line change
@@ -1121,9 +1121,10 @@ pub fn http_uri_to_ws_address(uri: http::Uri) -> String {
11211121
};
11221122

11231123
let host_address = uri.host().expect("Host can't be empty.");
1124+
let path = if uri.path() == "/" { "" } else { uri.path() };
11241125
let port = uri.port_u16().map(|p| format!(":{}", p)).unwrap_or_default();
11251126

1126-
format!("{}{}{}", address_prefix, host_address, port)
1127+
format!("{}{}{}{}", address_prefix, host_address, port, path)
11271128
}
11281129

11291130
#[test]
@@ -1132,13 +1133,22 @@ fn test_http_uri_to_ws_address() {
11321133
let ws_connection = http_uri_to_ws_address(uri);
11331134
assert_eq!(ws_connection, "wss://cosmos-rpc.polkachu.com");
11341135

1135-
let uri = "http://cosmos-rpc.polkachu.com".parse::<http::Uri>().unwrap();
1136+
let uri = "http://cosmos-rpc.polkachu.com/".parse::<http::Uri>().unwrap();
11361137
let ws_connection = http_uri_to_ws_address(uri);
11371138
assert_eq!(ws_connection, "ws://cosmos-rpc.polkachu.com");
11381139

11391140
let uri = "http://34.82.96.8:26657".parse::<http::Uri>().unwrap();
11401141
let ws_connection = http_uri_to_ws_address(uri);
11411142
assert_eq!(ws_connection, "ws://34.82.96.8:26657");
1143+
1144+
let uri = "https://cosmos.blockpi.network/rpc/v1/65cc8a9ffe1627352b911dd4b7c751db4a3eaee3"
1145+
.parse::<http::Uri>()
1146+
.unwrap();
1147+
let ws_connection = http_uri_to_ws_address(uri);
1148+
assert_eq!(
1149+
ws_connection,
1150+
"wss://cosmos.blockpi.network/rpc/v1/65cc8a9ffe1627352b911dd4b7c751db4a3eaee3"
1151+
);
11421152
}
11431153

11441154
#[test]

0 commit comments

Comments
 (0)