backup: update local state when alias updated from a backup restore

This commit is contained in:
pythcoiner 2025-03-18 15:09:43 +01:00
parent 2e6cceea96
commit 1abe503431
No known key found for this signature in database
GPG Key ID: C1048AEEDF303B88
2 changed files with 18 additions and 19 deletions

View File

@ -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);
};

View File

@ -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<Wallet>,