29091aab8e
* Renaming all instances of nymd to nyxd * Might as well get the changelogs too * Making it clearer that an ApiClient is a NymApiClient * Lining up config templates with struct keys on gateway * Changed the last references to validator_urls to nyxd_urls * Fixed up a few type errors after refactoring * Changed the changelog * Fixed typo in changelog * Further instances of renaming 'nymd' + introducing additional clap aliases * updated environmental variables and allowed usage of deprecated variants * missing occurences of coconut-locked environmental variables Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
45 lines
1.5 KiB
Rust
45 lines
1.5 KiB
Rust
// Copyright 2022 - Nym Technologies SA <contact@nymtech.net>
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
use client_core::config::GatewayEndpointConfig;
|
|
use wasm_bindgen::prelude::*;
|
|
|
|
#[wasm_bindgen]
|
|
pub async fn get_gateway(api_server: String, preferred: Option<String>) -> GatewayEndpointConfig {
|
|
let validator_client = validator_client::client::NymApiClient::new(api_server.parse().unwrap());
|
|
|
|
let gateways = match validator_client.get_cached_gateways().await {
|
|
Err(err) => panic!("failed to obtain list of all gateways - {err}"),
|
|
Ok(gateways) => gateways,
|
|
};
|
|
|
|
if let Some(preferred) = preferred {
|
|
if let Some(details) = gateways
|
|
.iter()
|
|
.find(|g| g.gateway.identity_key == preferred)
|
|
{
|
|
return GatewayEndpointConfig {
|
|
gateway_id: details.gateway.identity_key.clone(),
|
|
gateway_owner: details.owner.to_string(),
|
|
gateway_listener: format!(
|
|
"ws://{}:{}",
|
|
details.gateway.host, details.gateway.clients_port
|
|
),
|
|
};
|
|
}
|
|
}
|
|
|
|
let details = gateways
|
|
.first()
|
|
.expect("current topology holds no gateways");
|
|
|
|
GatewayEndpointConfig {
|
|
gateway_id: details.gateway.identity_key.clone(),
|
|
gateway_owner: details.owner.to_string(),
|
|
gateway_listener: format!(
|
|
"ws://{}:{}",
|
|
details.gateway.host, details.gateway.clients_port
|
|
),
|
|
}
|
|
}
|