From 1abe503431892c45b9459849f4ac94b814c67e71 Mon Sep 17 00:00:00 2001 From: pythcoiner Date: Tue, 18 Mar 2025 15:09:43 +0100 Subject: [PATCH] backup: update local state when alias updated from a backup restore --- liana-gui/src/app/state/settings/mod.rs | 19 +------------------ liana-gui/src/app/state/settings/wallet.rs | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/liana-gui/src/app/state/settings/mod.rs b/liana-gui/src/app/state/settings/mod.rs index 774de791..e8f625e4 100644 --- a/liana-gui/src/app/state/settings/mod.rs +++ b/liana-gui/src/app/state/settings/mod.rs @@ -1,9 +1,9 @@ mod bitcoind; mod wallet; +use std::convert::From; use std::path::PathBuf; use std::sync::Arc; -use std::{collections::HashMap, convert::From}; use iced::Task; @@ -223,23 +223,6 @@ impl State for ImportExportSettingsState { self.modal = None; } Message::View(view::Message::ImportExport(m)) => { - if let ImportExportMessage::UpdateAliases(aliases) = m { - let mut wallet = (*self.wallet).clone(); - let mut ka = HashMap::new(); - let mut pk = HashMap::new(); - aliases.iter().for_each(|(k, ks)| { - ka.insert(*k, ks.name()); - if let Some(p_key) = &ks.provider_key { - pk.insert(*k, p_key.clone()); - } - }); - wallet.keys_aliases = ka; - wallet.provider_keys = pk; - let wallet = Arc::new(wallet); - return Task::perform(async {}, move |_| { - Message::WalletUpdated(Ok(wallet.clone())) - }); - } if let Some(modal) = self.modal.as_mut() { return modal.update(m); }; diff --git a/liana-gui/src/app/state/settings/wallet.rs b/liana-gui/src/app/state/settings/wallet.rs index 6db4930d..1bf7c387 100644 --- a/liana-gui/src/app/state/settings/wallet.rs +++ b/liana-gui/src/app/state/settings/wallet.rs @@ -203,6 +203,22 @@ impl State for WalletSettingsState { Task::none() } + Message::View(view::Message::ImportExport(ImportExportMessage::UpdateAliases( + aliases, + ))) => { + self.processing = true; + self.updated = false; + Task::perform( + update_keys_aliases( + self.data_dir.clone(), + cache.network, + self.wallet.clone(), + aliases.into_iter().map(|(fg, ks)| (fg, ks.name)).collect(), + daemon, + ), + Message::WalletUpdated, + ) + } Message::View(view::Message::ImportExport(ImportExportMessage::Close)) => { if let Modal::ImportExport(_) = &self.modal { self.modal = Modal::None; @@ -472,7 +488,7 @@ async fn register_wallet( Ok(wallet) } -async fn update_keys_aliases( +pub async fn update_keys_aliases( data_dir: PathBuf, network: Network, wallet: Arc,