backup: update local state when alias updated from a backup restore
This commit is contained in:
parent
2e6cceea96
commit
1abe503431
@ -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);
|
||||
};
|
||||
|
||||
@ -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>,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user