Skip to content

Commit 1a8829b

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 98c2d89 commit 1a8829b

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
@@ -552,6 +552,15 @@ fn build_with_store_internal(
552552
liquidity_source_config: Option<&LiquiditySourceConfig>, seed_bytes: [u8; 64],
553553
logger: Arc<FilesystemLogger>, kv_store: Arc<DynStore>,
554554
) -> Result<Node, BuildError> {
555+
// Initialize the status fields.
556+
let is_listening = Arc::new(AtomicBool::new(false));
557+
let latest_wallet_sync_timestamp = Arc::new(RwLock::new(None));
558+
let latest_onchain_wallet_sync_timestamp = Arc::new(RwLock::new(None));
559+
let latest_fee_rate_cache_update_timestamp = Arc::new(RwLock::new(None));
560+
let latest_rgs_snapshot_timestamp = Arc::new(RwLock::new(None));
561+
let latest_node_announcement_broadcast_timestamp = Arc::new(RwLock::new(None));
562+
let latest_channel_monitor_archival_height = Arc::new(RwLock::new(None));
563+
555564
// Initialize the on-chain wallet and chain access
556565
let xprv = bitcoin::bip32::Xpriv::new_master(config.network, &seed_bytes).map_err(|e| {
557566
log_error!(logger, "Failed to derive master secret: {}", e);
@@ -601,6 +610,10 @@ fn build_with_store_internal(
601610
Arc::clone(&tx_broadcaster),
602611
Arc::clone(&config),
603612
Arc::clone(&logger),
613+
Arc::clone(&latest_wallet_sync_timestamp),
614+
Arc::clone(&latest_onchain_wallet_sync_timestamp),
615+
Arc::clone(&latest_fee_rate_cache_update_timestamp),
616+
latest_channel_monitor_archival_height,
604617
)),
605618
None => {
606619
// Default to Esplora client.
@@ -612,6 +625,10 @@ fn build_with_store_internal(
612625
Arc::clone(&tx_broadcaster),
613626
Arc::clone(&config),
614627
Arc::clone(&logger),
628+
Arc::clone(&latest_wallet_sync_timestamp),
629+
Arc::clone(&latest_onchain_wallet_sync_timestamp),
630+
Arc::clone(&latest_fee_rate_cache_update_timestamp),
631+
latest_channel_monitor_archival_height,
615632
))
616633
},
617634
};
@@ -978,14 +995,6 @@ fn build_with_store_internal(
978995
let (stop_sender, _) = tokio::sync::watch::channel(());
979996
let (event_handling_stopped_sender, _) = tokio::sync::watch::channel(());
980997

981-
let is_listening = Arc::new(AtomicBool::new(false));
982-
let latest_wallet_sync_timestamp = Arc::new(RwLock::new(None));
983-
let latest_onchain_wallet_sync_timestamp = Arc::new(RwLock::new(None));
984-
let latest_fee_rate_cache_update_timestamp = Arc::new(RwLock::new(None));
985-
let latest_rgs_snapshot_timestamp = Arc::new(RwLock::new(None));
986-
let latest_node_announcement_broadcast_timestamp = Arc::new(RwLock::new(None));
987-
let latest_channel_monitor_archival_height = Arc::new(RwLock::new(None));
988-
989998
Ok(Node {
990999
runtime,
9911000
stop_sender,
@@ -1017,7 +1026,6 @@ fn build_with_store_internal(
10171026
latest_fee_rate_cache_update_timestamp,
10181027
latest_rgs_snapshot_timestamp,
10191028
latest_node_announcement_broadcast_timestamp,
1020-
latest_channel_monitor_archival_height,
10211029
})
10221030
}
10231031

0 commit comments

Comments
 (0)