Skip to content

Commit 778bc91

Browse files
committed
Move syncing tasks to ChainSource
.. which also gives us the opportunity to simplify and DRY up the logic between background and manual syncing.
1 parent 0c78a24 commit 778bc91

File tree

3 files changed

+239
-304
lines changed

3 files changed

+239
-304
lines changed

src/builder.rs

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -529,6 +529,15 @@ fn build_with_store_internal(
529529
liquidity_source_config: Option<&LiquiditySourceConfig>, seed_bytes: [u8; 64],
530530
logger: Arc<FilesystemLogger>, kv_store: Arc<DynStore>,
531531
) -> Result<Node, BuildError> {
532+
// Initialize the status fields.
533+
let is_listening = Arc::new(AtomicBool::new(false));
534+
let latest_wallet_sync_timestamp = Arc::new(RwLock::new(None));
535+
let latest_onchain_wallet_sync_timestamp = Arc::new(RwLock::new(None));
536+
let latest_fee_rate_cache_update_timestamp = Arc::new(RwLock::new(None));
537+
let latest_rgs_snapshot_timestamp = Arc::new(RwLock::new(None));
538+
let latest_node_announcement_broadcast_timestamp = Arc::new(RwLock::new(None));
539+
let latest_channel_monitor_archival_height = Arc::new(RwLock::new(None));
540+
532541
// Initialize the on-chain wallet and chain access
533542
let xprv = bitcoin::bip32::Xpriv::new_master(config.network, &seed_bytes).map_err(|e| {
534543
log_error!(logger, "Failed to derive master secret: {}", e);
@@ -578,6 +587,10 @@ fn build_with_store_internal(
578587
Arc::clone(&tx_broadcaster),
579588
Arc::clone(&config),
580589
Arc::clone(&logger),
590+
Arc::clone(&latest_wallet_sync_timestamp),
591+
Arc::clone(&latest_onchain_wallet_sync_timestamp),
592+
Arc::clone(&latest_fee_rate_cache_update_timestamp),
593+
latest_channel_monitor_archival_height,
581594
)),
582595
None => {
583596
// Default to Esplora client.
@@ -589,6 +602,10 @@ fn build_with_store_internal(
589602
Arc::clone(&tx_broadcaster),
590603
Arc::clone(&config),
591604
Arc::clone(&logger),
605+
Arc::clone(&latest_wallet_sync_timestamp),
606+
Arc::clone(&latest_onchain_wallet_sync_timestamp),
607+
Arc::clone(&latest_fee_rate_cache_update_timestamp),
608+
latest_channel_monitor_archival_height,
592609
))
593610
},
594611
};
@@ -955,14 +972,6 @@ fn build_with_store_internal(
955972
let (stop_sender, _) = tokio::sync::watch::channel(());
956973
let (event_handling_stopped_sender, _) = tokio::sync::watch::channel(());
957974

958-
let is_listening = Arc::new(AtomicBool::new(false));
959-
let latest_wallet_sync_timestamp = Arc::new(RwLock::new(None));
960-
let latest_onchain_wallet_sync_timestamp = Arc::new(RwLock::new(None));
961-
let latest_fee_rate_cache_update_timestamp = Arc::new(RwLock::new(None));
962-
let latest_rgs_snapshot_timestamp = Arc::new(RwLock::new(None));
963-
let latest_node_announcement_broadcast_timestamp = Arc::new(RwLock::new(None));
964-
let latest_channel_monitor_archival_height = Arc::new(RwLock::new(None));
965-
966975
Ok(Node {
967976
runtime,
968977
stop_sender,
@@ -994,7 +1003,6 @@ fn build_with_store_internal(
9941003
latest_fee_rate_cache_update_timestamp,
9951004
latest_rgs_snapshot_timestamp,
9961005
latest_node_announcement_broadcast_timestamp,
997-
latest_channel_monitor_archival_height,
9981006
})
9991007
}
10001008

0 commit comments

Comments
 (0)