From e03d4e17be937cf49f32a9f3d9d80351d7652a9a Mon Sep 17 00:00:00 2001 From: Michael Mallan Date: Thu, 17 Apr 2025 13:45:55 +0100 Subject: [PATCH] refactor: add function to get coins to cache --- liana-gui/src/app/cache.rs | 16 +++++++++++++++- liana-gui/src/app/mod.rs | 4 +--- liana-gui/src/loader.rs | 8 ++------ 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/liana-gui/src/app/cache.rs b/liana-gui/src/app/cache.rs index e33f3153..a6c1f111 100644 --- a/liana-gui/src/app/cache.rs +++ b/liana-gui/src/app/cache.rs @@ -1,6 +1,11 @@ -use crate::daemon::model::Coin; +use crate::daemon::{ + model::{Coin, ListCoinsResult}, + Daemon, DaemonError, +}; use liana::miniscript::bitcoin::Network; +use lianad::commands::CoinStatus; use std::path::PathBuf; +use std::sync::Arc; #[derive(Debug, Clone)] pub struct Cache { @@ -31,3 +36,12 @@ impl std::default::Default for Cache { } } } + +/// Get the coins that should be cached. +pub async fn coins_to_cache( + daemon: Arc, +) -> Result { + daemon + .list_coins(&[CoinStatus::Unconfirmed, CoinStatus::Confirmed], &[]) + .await +} diff --git a/liana-gui/src/app/mod.rs b/liana-gui/src/app/mod.rs index 174c0b60..cce65196 100644 --- a/liana-gui/src/app/mod.rs +++ b/liana-gui/src/app/mod.rs @@ -318,9 +318,7 @@ impl App { daemon.is_alive(&datadir_path, network).await?; let info = daemon.get_info().await?; - let coins = daemon - .list_coins(&[CoinStatus::Unconfirmed, CoinStatus::Confirmed], &[]) - .await?; + let coins = cache::coins_to_cache(daemon).await?; Ok(Cache { datadir_path, coins: coins.coins, diff --git a/liana-gui/src/loader.rs b/liana-gui/src/loader.rs index 4a86dd4a..ccd66abe 100644 --- a/liana-gui/src/loader.rs +++ b/liana-gui/src/loader.rs @@ -18,7 +18,6 @@ use liana_ui::{ widget::*, }; use lianad::{ - commands::CoinStatus, config::{BitcoinBackend, Config, ConfigError}, StartupError, }; @@ -28,7 +27,7 @@ use crate::backup::Backup; use crate::export::RestoreBackupError; use crate::{ app::{ - cache::Cache, + cache::{coins_to_cache, Cache}, config::Config as GUIConfig, wallet::{Wallet, WalletError}, }, @@ -429,10 +428,7 @@ pub async fn load_application( .load_from_settings(&datadir_path, network)? .load_hotsigners(&datadir_path, network)?; - let coins = daemon - .list_coins(&[CoinStatus::Unconfirmed, CoinStatus::Confirmed], &[]) - .await - .map(|res| res.coins)?; + let coins = coins_to_cache(daemon.clone()).await.map(|res| res.coins)?; let cache = Cache { datadir_path,