From 691ac6d5ea64d28589ef5193de6ccdba480c01c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bogdan-=C8=98tefan=20Neac=C8=99u?= Date: Fri, 11 Aug 2023 14:26:07 +0300 Subject: [PATCH] NC to use network dependent endpoints --- .../src/operations/connection/health_check.rs | 8 ++++++-- .../src-tauri/src/operations/directory/mod.rs | 18 ++++++++++-------- nym-connect/desktop/src-tauri/tauri.conf.json | 2 +- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/nym-connect/desktop/src-tauri/src/operations/connection/health_check.rs b/nym-connect/desktop/src-tauri/src/operations/connection/health_check.rs index 52b47057b1..8344b5805b 100644 --- a/nym-connect/desktop/src-tauri/src/operations/connection/health_check.rs +++ b/nym-connect/desktop/src-tauri/src/operations/connection/health_check.rs @@ -1,6 +1,8 @@ +use crate::operations::directory::WELLKNOWN_DIR; +use nym_config::defaults::var_names::NETWORK_NAME; use serde::{Deserialize, Serialize}; -static HEALTH_CHECK_URL: &str = "https://nymtech.net/.wellknown/connect/healthcheck.json"; +static HEALTH_CHECK_URL: &str = "connect/healthcheck.json"; #[derive(Serialize, Deserialize, Debug)] struct ConnectionSuccess { @@ -9,7 +11,9 @@ struct ConnectionSuccess { pub async fn run_health_check() -> bool { log::info!("Running network health check"); - match crate::operations::http::socks5_get::<_, ConnectionSuccess>(HEALTH_CHECK_URL).await { + let network_name = std::env::var(NETWORK_NAME).expect("network name not set"); + let url = format!("{}/{}/{}", WELLKNOWN_DIR, network_name, HEALTH_CHECK_URL); + match crate::operations::http::socks5_get::<_, ConnectionSuccess>(url).await { Ok(res) if res.status == "ok" => { log::info!("✅✅✅ Healthcheck success!"); true diff --git a/nym-connect/desktop/src-tauri/src/operations/directory/mod.rs b/nym-connect/desktop/src-tauri/src/operations/directory/mod.rs index 575020ff62..dc001dac2e 100644 --- a/nym-connect/desktop/src-tauri/src/operations/directory/mod.rs +++ b/nym-connect/desktop/src-tauri/src/operations/directory/mod.rs @@ -8,7 +8,7 @@ use crate::{ }; use itertools::Itertools; use nym_api_requests::models::GatewayBondAnnotated; -use nym_config::defaults::var_names::NYM_API; +use nym_config::defaults::var_names::{NETWORK_NAME, NYM_API}; use nym_contracts_common::types::Percent; use nym_validator_client::nym_api::Client as ApiClient; use std::str::FromStr; @@ -16,12 +16,12 @@ use std::sync::Arc; use tokio::sync::RwLock; use url::Url; -static SERVICE_PROVIDER_WELLKNOWN_URL: &str = - "https://nymtech.net/.wellknown/connect/service-providers.json"; +pub(crate) static WELLKNOWN_DIR: &str = "https://nymtech.net/.wellknown"; + +static SERVICE_PROVIDER_URL_PATH: &str = "connect/service-providers.json"; // List of network-requesters running with medium toggle enabled, for testing -static SERVICE_PROVIDER_WELLKNOWN_URL_MEDIUM: &str = - "https://nymtech.net/.wellknown/connect/service-providers-medium.json"; +static SERVICE_PROVIDER_MEDIUM_URL_PATH: &str = "connect/service-providers-medium.json"; // Harbour master is used to periodically keep track of which network-requesters are online static HARBOUR_MASTER_URL: &str = "https://harbourmaster.nymtech.net/v1/services/?size=100"; @@ -81,11 +81,13 @@ pub async fn get_services( async fn fetch_services(privacy_level: &PrivacyLevel) -> Result> { let services_url = match privacy_level { - PrivacyLevel::Medium => SERVICE_PROVIDER_WELLKNOWN_URL_MEDIUM, - _ => SERVICE_PROVIDER_WELLKNOWN_URL, + PrivacyLevel::Medium => SERVICE_PROVIDER_MEDIUM_URL_PATH, + _ => SERVICE_PROVIDER_URL_PATH, }; - let services_res = reqwest::get(services_url) + let network_name = std::env::var(NETWORK_NAME)?; + let url = format!("{}/{}/{}", WELLKNOWN_DIR, network_name, services_url); + let services_res = reqwest::get(url) .await? .json::>() .await?; diff --git a/nym-connect/desktop/src-tauri/tauri.conf.json b/nym-connect/desktop/src-tauri/tauri.conf.json index 5f5e86bec0..48cce39527 100644 --- a/nym-connect/desktop/src-tauri/tauri.conf.json +++ b/nym-connect/desktop/src-tauri/tauri.conf.json @@ -51,7 +51,7 @@ "updater": { "active": true, "endpoints": [ - "https://nymtech.net/.wellknown/connect/updater.json" + "https://nymtech.net/.wellknown/mainnet/connect/updater.json" ], "dialog": true, "pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IENCNzQ2M0E5N0VFODE2NApSV1JrZ2U2WE9rYTNETTg1OTBKdE5uWUEra0hML2syOVUvQ2lxZmFZRzZ1T3NWbGM0eVRzUTVhVwo="