diff --git a/src/builder.rs b/src/builder.rs index ceb3c0918..87a520ba9 100644 --- a/src/builder.rs +++ b/src/builder.rs @@ -782,11 +782,22 @@ fn build_with_store_internal( let tx_broadcaster = Arc::new(TransactionBroadcaster::new(Arc::clone(&logger))); let fee_estimator = Arc::new(OnchainFeeEstimator::new()); + + let payment_store = match io::utils::read_payments(Arc::clone(&kv_store), Arc::clone(&logger)) { + Ok(payments) => { + Arc::new(PaymentStore::new(payments, Arc::clone(&kv_store), Arc::clone(&logger))) + }, + Err(_) => { + return Err(BuildError::ReadFailed); + }, + }; + let wallet = Arc::new(Wallet::new( bdk_wallet, wallet_persister, Arc::clone(&tx_broadcaster), Arc::clone(&fee_estimator), + Arc::clone(&payment_store), Arc::clone(&logger), )); @@ -1176,16 +1187,6 @@ fn build_with_store_internal( }, } - // Init payment info storage - let payment_store = match io::utils::read_payments(Arc::clone(&kv_store), Arc::clone(&logger)) { - Ok(payments) => { - Arc::new(PaymentStore::new(payments, Arc::clone(&kv_store), Arc::clone(&logger))) - }, - Err(_) => { - return Err(BuildError::ReadFailed); - }, - }; - let event_queue = match io::utils::read_event_queue(Arc::clone(&kv_store), Arc::clone(&logger)) { Ok(event_queue) => Arc::new(event_queue), diff --git a/src/wallet/mod.rs b/src/wallet/mod.rs index b52d937a3..5aaabe6d8 100644 --- a/src/wallet/mod.rs +++ b/src/wallet/mod.rs @@ -7,9 +7,10 @@ use persist::KVStoreWalletPersister; -use crate::logger::{log_debug, log_error, log_info, log_trace, Logger}; +use crate::logger::{log_debug, log_error, log_info, log_trace, FilesystemLogger, Logger}; use crate::fee_estimator::{ConfirmationTarget, FeeEstimator}; +use crate::payment::store::PaymentStore; use crate::Error; use lightning::chain::chaininterface::BroadcasterInterface; @@ -66,6 +67,7 @@ where persister: Mutex, broadcaster: B, fee_estimator: E, + payment_store: Arc>>, logger: L, } @@ -77,11 +79,12 @@ where { pub(crate) fn new( wallet: bdk_wallet::PersistedWallet, - wallet_persister: KVStoreWalletPersister, broadcaster: B, fee_estimator: E, logger: L, + wallet_persister: KVStoreWalletPersister, broadcaster: B, fee_estimator: E, + payment_store: Arc>>, logger: L, ) -> Self { let inner = Mutex::new(wallet); let persister = Mutex::new(wallet_persister); - Self { inner, persister, broadcaster, fee_estimator, logger } + Self { inner, persister, broadcaster, fee_estimator, payment_store, logger } } pub(crate) fn get_full_scan_request(&self) -> FullScanRequest {