@@ -828,55 +828,56 @@ impl<S: MutinyStorage> MutinyWalletBuilder<S> {
828828 storage : & S ,
829829 config : & MutinyWalletConfig ,
830830 ) {
831- if let ( Some ( lsp_url) , Ok ( Some ( node_id) ) ) = ( config. lsp_url . as_ref ( ) , storage. get_node_id ( ) )
832- {
833- match fetch_lnd_channels_snapshot ( & Client :: new ( ) , lsp_url, & node_id, & logger) . await {
834- Ok ( first_lnd_snapshot) => {
835- log_debug ! (
836- logger,
837- "First fetched lnd snapshot: {:?}" ,
838- first_lnd_snapshot
839- ) ;
831+ let ( Some ( lsp_url) , Ok ( Some ( node_id) ) ) = ( config. lsp_url . as_ref ( ) , storage. get_node_id ( ) )
832+ else {
833+ log_warn ! ( logger, "LSP URL or node ID not found" ) ;
834+ return ;
835+ } ;
840836
841- let pending = VSS_MANAGER . get_pending_writes ( ) ;
842- if pending. is_empty ( )
843- || ( pending. len ( ) == 1
844- && pending. iter ( ) . any ( |( key, _) | key == DEVICE_LOCK_KEY ) )
845- {
846- if let Ok ( second_lnd_snapshot) =
847- fetch_lnd_channels_snapshot ( & Client :: new ( ) , lsp_url, & node_id, & logger)
848- . await
849- {
850- log_debug ! (
851- logger,
852- "Second fetched lnd snapshot: {:?}" ,
853- second_lnd_snapshot
854- ) ;
855- if first_lnd_snapshot. snapshot == second_lnd_snapshot. snapshot {
856- log_debug ! ( logger, "Saving lnd snapshot" ) ;
857- if let Err ( e) = storage. write_data (
858- LND_CHANNELS_SNAPSHOT_KEY . to_string ( ) ,
859- & second_lnd_snapshot,
860- Some ( now ( ) . as_secs ( ) as u32 ) ,
861- ) {
862- log_error ! ( logger, "Error saving lnd snapshot: {e}" ) ;
863- }
864- }
865- } else {
866- log_error ! ( logger, "Second lnd snapshot fetch failed" ) ;
867- }
868- } else {
869- log_info ! (
870- logger,
871- "VSS writing in progress: {:?}, skipping lnd snapshot update" ,
872- pending
873- ) ;
874- }
837+ let first_lnd_snapshot =
838+ match fetch_lnd_channels_snapshot ( & Client :: new ( ) , lsp_url, & node_id, & logger) . await {
839+ Ok ( snapshot) => {
840+ log_debug ! ( logger, "First fetched lnd snapshot: {:?}" , snapshot) ;
841+ snapshot
875842 }
876843 Err ( e) => {
877844 log_error ! ( logger, "First lnd snapshot fetch failed: {e}" ) ;
845+ return ;
846+ }
847+ } ;
848+
849+ let pending = VSS_MANAGER . get_pending_writes ( ) ;
850+ if pending. is_empty ( )
851+ || ( pending. len ( ) == 1 && pending. iter ( ) . any ( |( key, _) | key == DEVICE_LOCK_KEY ) )
852+ {
853+ let second_lnd_snapshot =
854+ match fetch_lnd_channels_snapshot ( & Client :: new ( ) , lsp_url, & node_id, & logger) . await
855+ {
856+ Ok ( snapshot) => {
857+ log_debug ! ( logger, "Second fetched lnd snapshot: {:?}" , snapshot) ;
858+ snapshot
859+ }
860+ Err ( e) => {
861+ log_error ! ( logger, "Second lnd snapshot fetch failed: {e}" ) ;
862+ return ;
863+ }
864+ } ;
865+ if first_lnd_snapshot. snapshot == second_lnd_snapshot. snapshot {
866+ log_debug ! ( logger, "Saving lnd snapshot" ) ;
867+ if let Err ( e) = storage. write_data (
868+ LND_CHANNELS_SNAPSHOT_KEY . to_string ( ) ,
869+ & second_lnd_snapshot,
870+ Some ( now ( ) . as_secs ( ) as u32 ) ,
871+ ) {
872+ log_error ! ( logger, "Error saving lnd snapshot: {e}" ) ;
878873 }
879874 }
875+ } else {
876+ log_info ! (
877+ logger,
878+ "VSS writing in progress: {:?}, skipping lnd snapshot update" ,
879+ pending
880+ ) ;
880881 }
881882 }
882883
@@ -983,10 +984,6 @@ impl<S: MutinyStorage> MutinyWalletBuilder<S> {
983984 log_debug ! ( logger_clone, "waiting for VSS to finish" ) ;
984985 sleep ( 300 ) . await ;
985986 }
986- while is_updating_lnd_snapshot. load ( Ordering :: SeqCst ) {
987- log_debug ! ( logger_clone, "waiting for snapshot to finish" ) ;
988- sleep ( 300 ) . await ;
989- }
990987 if let Err ( e) = storage_clone. release_device_lock ( & logger_clone) {
991988 log_error ! ( logger_clone, "Error releasing device lock: {e}" ) ;
992989 }
0 commit comments