@@ -1121,9 +1121,10 @@ pub fn http_uri_to_ws_address(uri: http::Uri) -> String {
1121
1121
} ;
1122
1122
1123
1123
let host_address = uri. host ( ) . expect ( "Host can't be empty." ) ;
1124
+ let path = if uri. path ( ) == "/" { "" } else { uri. path ( ) } ;
1124
1125
let port = uri. port_u16 ( ) . map ( |p| format ! ( ":{}" , p) ) . unwrap_or_default ( ) ;
1125
1126
1126
- format ! ( "{}{}{}" , address_prefix, host_address, port)
1127
+ format ! ( "{}{}{}{} " , address_prefix, host_address, port, path )
1127
1128
}
1128
1129
1129
1130
#[ test]
@@ -1132,13 +1133,22 @@ fn test_http_uri_to_ws_address() {
1132
1133
let ws_connection = http_uri_to_ws_address ( uri) ;
1133
1134
assert_eq ! ( ws_connection, "wss://cosmos-rpc.polkachu.com" ) ;
1134
1135
1135
- let uri = "http://cosmos-rpc.polkachu.com" . parse :: < http:: Uri > ( ) . unwrap ( ) ;
1136
+ let uri = "http://cosmos-rpc.polkachu.com/ " . parse :: < http:: Uri > ( ) . unwrap ( ) ;
1136
1137
let ws_connection = http_uri_to_ws_address ( uri) ;
1137
1138
assert_eq ! ( ws_connection, "ws://cosmos-rpc.polkachu.com" ) ;
1138
1139
1139
1140
let uri = "http://34.82.96.8:26657" . parse :: < http:: Uri > ( ) . unwrap ( ) ;
1140
1141
let ws_connection = http_uri_to_ws_address ( uri) ;
1141
1142
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
+ ) ;
1142
1152
}
1143
1153
1144
1154
#[ test]
0 commit comments