@@ -127,37 +127,23 @@ impl CompactFilterSync {
127127 return Ok ( ( ) ) ;
128128 }
129129 }
130- // if wallet already past filter headers, we're done
131- if let Some ( filter_headers) = info. filter_headers {
132- if self . initial_tip . height >= filter_headers {
133- info ! ( "wallet({}): tip {} >= filters {}, cbf done" , wallet. name( ) , self . initial_tip. height, filter_headers) ;
134- self . state = SyncState :: Synced ;
135- return Ok ( ( ) ) ;
136- }
137- }
138130 if info. headers != info. blocks {
139131 info ! ( "Source still syncing, retrying..." ) ;
140132 * progress = WalletProgressUpdate :: new ( WalletStatus :: Syncing , None ) ;
141133 self . wait = Some ( Instant :: now ( ) ) ;
142134 return Ok ( ( ) ) ;
143135 }
144- if info. filters != info. filter_headers {
136+ let filters_synced = info. filters_progress . unwrap_or ( 0.0 ) == 1.0 ;
137+ if !filters_synced {
145138 if !self . filters_queued {
146139 source. queue_filters ( ) ?;
147140 self . filters_queued = true ;
148141 }
149142
150143 info ! ( "Filters syncing, retrying..." ) ;
151- * progress = WalletProgressUpdate :: new ( WalletStatus :: CbfFilterSync , Some (
152- calc_progress (
153- info. checkpoint . map ( |c| c. height ) . unwrap_or ( 0 ) ,
154- info. filters . unwrap_or ( 0 ) ,
155- std:: cmp:: max (
156- info. prune_height . unwrap_or ( 0 ) ,
157- info. filter_headers . unwrap_or ( 0 )
158- ) ,
159- )
160- ) ) ;
144+ * progress = WalletProgressUpdate :: new ( WalletStatus :: CbfFilterSync ,
145+ Some ( info. filters_progress . unwrap_or ( 0.0 ) )
146+ ) ;
161147 self . wait = Some ( Instant :: now ( ) ) ;
162148 return Ok ( ( ) ) ;
163149 }
0 commit comments