diff --git a/liana-gui/src/app/state/spend/mod.rs b/liana-gui/src/app/state/spend/mod.rs index 9f79ac66..1fb6b4df 100644 --- a/liana-gui/src/app/state/spend/mod.rs +++ b/liana-gui/src/app/state/spend/mod.rs @@ -185,8 +185,11 @@ impl State for CreateSpendPanel { fn reload( &mut self, daemon: Arc, - _wallet: Arc, + wallet: Arc, ) -> Task { + for step in self.steps.iter_mut() { + step.reload_wallet(wallet.clone()); + } let daemon1 = daemon.clone(); let daemon2 = daemon.clone(); let coin_statuses_1 = if self.draft.is_recovery() { diff --git a/liana-gui/src/app/state/spend/step.rs b/liana-gui/src/app/state/spend/step.rs index 8cf90925..510a20e8 100644 --- a/liana-gui/src/app/state/spend/step.rs +++ b/liana-gui/src/app/state/spend/step.rs @@ -78,6 +78,7 @@ pub trait Step { fn apply(&self, _draft: &mut TransactionDraft) {} fn interrupt(&mut self) {} fn load(&mut self, _coins: &[Coin], _tip_height: i32, _draft: &TransactionDraft) {} + fn reload_wallet(&mut self, _wallet: Arc) {} fn subscription(&self) -> Subscription { Subscription::none() } @@ -975,6 +976,10 @@ impl Step for SaveSpend { )); } + fn reload_wallet(&mut self, wallet: Arc) { + self.wallet = wallet; + } + fn interrupt(&mut self) { if let Some((psbt_state, _)) = &mut self.spend { psbt_state.interrupt() @@ -1063,6 +1068,10 @@ impl Step for SelectRecoveryPath { self.load_from_coins_and_tip_height(coins, tip_height); } + fn reload_wallet(&mut self, wallet: Arc) { + self.wallet = wallet; + } + fn view<'a>(&'a self, cache: &'a Cache) -> Element<'a, view::Message> { view::recovery::recovery( cache,