Skip to content

Commit 7002481

Browse files
committed
Have Wallet hold PaymentStore and EventQueue refs
1 parent 4bcd4dc commit 7002481

File tree

2 files changed

+33
-25
lines changed

2 files changed

+33
-25
lines changed

src/builder.rs

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -782,11 +782,35 @@ fn build_with_store_internal(
782782

783783
let tx_broadcaster = Arc::new(TransactionBroadcaster::new(Arc::clone(&logger)));
784784
let fee_estimator = Arc::new(OnchainFeeEstimator::new());
785+
786+
let payment_store = match io::utils::read_payments(Arc::clone(&kv_store), Arc::clone(&logger)) {
787+
Ok(payments) => {
788+
Arc::new(PaymentStore::new(payments, Arc::clone(&kv_store), Arc::clone(&logger)))
789+
},
790+
Err(_) => {
791+
return Err(BuildError::ReadFailed);
792+
},
793+
};
794+
795+
let event_queue = match io::utils::read_event_queue(Arc::clone(&kv_store), Arc::clone(&logger))
796+
{
797+
Ok(event_queue) => Arc::new(event_queue),
798+
Err(e) => {
799+
if e.kind() == std::io::ErrorKind::NotFound {
800+
Arc::new(EventQueue::new(Arc::clone(&kv_store), Arc::clone(&logger)))
801+
} else {
802+
return Err(BuildError::ReadFailed);
803+
}
804+
},
805+
};
806+
785807
let wallet = Arc::new(Wallet::new(
786808
bdk_wallet,
787809
wallet_persister,
788810
Arc::clone(&tx_broadcaster),
789811
Arc::clone(&fee_estimator),
812+
Arc::clone(&payment_store),
813+
Arc::clone(&event_queue),
790814
Arc::clone(&logger),
791815
));
792816

@@ -1176,28 +1200,6 @@ fn build_with_store_internal(
11761200
},
11771201
}
11781202

1179-
// Init payment info storage
1180-
let payment_store = match io::utils::read_payments(Arc::clone(&kv_store), Arc::clone(&logger)) {
1181-
Ok(payments) => {
1182-
Arc::new(PaymentStore::new(payments, Arc::clone(&kv_store), Arc::clone(&logger)))
1183-
},
1184-
Err(_) => {
1185-
return Err(BuildError::ReadFailed);
1186-
},
1187-
};
1188-
1189-
let event_queue = match io::utils::read_event_queue(Arc::clone(&kv_store), Arc::clone(&logger))
1190-
{
1191-
Ok(event_queue) => Arc::new(event_queue),
1192-
Err(e) => {
1193-
if e.kind() == std::io::ErrorKind::NotFound {
1194-
Arc::new(EventQueue::new(Arc::clone(&kv_store), Arc::clone(&logger)))
1195-
} else {
1196-
return Err(BuildError::ReadFailed);
1197-
}
1198-
},
1199-
};
1200-
12011203
let peer_store = match io::utils::read_peer_info(Arc::clone(&kv_store), Arc::clone(&logger)) {
12021204
Ok(peer_store) => Arc::new(peer_store),
12031205
Err(e) => {

src/wallet/mod.rs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@
77

88
use persist::KVStoreWalletPersister;
99

10-
use crate::logger::{log_debug, log_error, log_info, log_trace, Logger};
10+
use crate::logger::{log_debug, log_error, log_info, log_trace, FilesystemLogger, Logger};
1111

12+
use crate::event::EventQueue;
1213
use crate::fee_estimator::{ConfirmationTarget, FeeEstimator};
14+
use crate::payment::store::PaymentStore;
1315
use crate::Error;
1416

1517
use lightning::chain::chaininterface::BroadcasterInterface;
@@ -65,6 +67,8 @@ where
6567
persister: Mutex<KVStoreWalletPersister>,
6668
broadcaster: B,
6769
fee_estimator: E,
70+
payment_store: Arc<PaymentStore<Arc<FilesystemLogger>>>,
71+
event_queue: Arc<EventQueue<Arc<FilesystemLogger>>>,
6872
logger: L,
6973
}
7074

@@ -76,11 +80,13 @@ where
7680
{
7781
pub(crate) fn new(
7882
wallet: bdk_wallet::PersistedWallet<KVStoreWalletPersister>,
79-
wallet_persister: KVStoreWalletPersister, broadcaster: B, fee_estimator: E, logger: L,
83+
wallet_persister: KVStoreWalletPersister, broadcaster: B, fee_estimator: E,
84+
payment_store: Arc<PaymentStore<Arc<FilesystemLogger>>>,
85+
event_queue: Arc<EventQueue<Arc<FilesystemLogger>>>, logger: L,
8086
) -> Self {
8187
let inner = Mutex::new(wallet);
8288
let persister = Mutex::new(wallet_persister);
83-
Self { inner, persister, broadcaster, fee_estimator, logger }
89+
Self { inner, persister, broadcaster, fee_estimator, payment_store, event_queue, logger }
8490
}
8591

8692
pub(crate) fn get_full_scan_request(&self) -> FullScanRequest<KeychainKind> {

0 commit comments

Comments
 (0)