From 394f0d30bfb638d0463f215212e194ea7b85df3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20H=C3=A4ggblad?= Date: Wed, 30 Mar 2022 11:51:41 +0200 Subject: [PATCH] wallet: expose validator urls to the frontent --- nym-wallet/src-tauri/src/main.rs | 2 ++ .../src/operations/mixnet/account.rs | 33 +++++++++++++++++++ nym-wallet/src/types/rust/validatorurls.ts | 3 ++ 3 files changed, 38 insertions(+) create mode 100644 nym-wallet/src/types/rust/validatorurls.ts diff --git a/nym-wallet/src-tauri/src/main.rs b/nym-wallet/src-tauri/src/main.rs index 47490e17ae..bf61019485 100644 --- a/nym-wallet/src-tauri/src/main.rs +++ b/nym-wallet/src-tauri/src/main.rs @@ -42,6 +42,8 @@ fn main() { mixnet::account::create_password, mixnet::account::does_password_file_exist, mixnet::account::get_balance, + mixnet::account::get_validator_nymd_urls, + mixnet::account::get_validator_api_urls, mixnet::account::logout, mixnet::account::sign_in_with_password, mixnet::account::switch_network, diff --git a/nym-wallet/src-tauri/src/operations/mixnet/account.rs b/nym-wallet/src-tauri/src/operations/mixnet/account.rs index 56a051ae34..10bf49c4c7 100644 --- a/nym-wallet/src-tauri/src/operations/mixnet/account.rs +++ b/nym-wallet/src-tauri/src/operations/mixnet/account.rs @@ -60,6 +60,13 @@ pub struct Balance { printable_balance: String, } +#[cfg_attr(test, derive(ts_rs::TS))] +#[cfg_attr(test, ts(export, export_to = "../src/types/rust/validatorurls.ts"))] +#[derive(Serialize, Deserialize)] +pub struct ValidatorUrls { + urls: Vec, +} + #[tauri::command] pub async fn connect_with_mnemonic( mnemonic: String, @@ -157,6 +164,32 @@ pub async fn update_validator_urls( Ok(()) } +#[tauri::command] +pub async fn get_validator_nymd_urls( + network: WalletNetwork, + state: tauri::State<'_, Arc>>, +) -> Result { + let config = state.read().await.config(); + let urls: Vec = config + .get_nymd_urls(network) + .map(|url| url.to_string()) + .collect(); + Ok(ValidatorUrls { urls }) +} + +#[tauri::command] +pub async fn get_validator_api_urls( + network: WalletNetwork, + state: tauri::State<'_, Arc>>, +) -> Result { + let config = state.read().await.config(); + let urls: Vec = config + .get_api_urls(network) + .map(|url| url.to_string()) + .collect(); + Ok(ValidatorUrls { urls }) +} + async fn _connect_with_mnemonic( mnemonic: Mnemonic, state: tauri::State<'_, Arc>>, diff --git a/nym-wallet/src/types/rust/validatorurls.ts b/nym-wallet/src/types/rust/validatorurls.ts new file mode 100644 index 0000000000..c4b4a7624e --- /dev/null +++ b/nym-wallet/src/types/rust/validatorurls.ts @@ -0,0 +1,3 @@ +export interface ValidatorUrls { + urls: Array; +}