@@ -118,6 +118,22 @@ impl CompactFilterSync {
118118 match & self . state {
119119 SyncState :: SyncChecks => {
120120 let info = source. get_blockchain_info ( ) ?;
121+ // if wallet already past prune height, we don't need filters
122+ if let Some ( prune_height) = info. prune_height {
123+ if self . initial_tip . height >= prune_height {
124+ info ! ( "wallet({}): tip {} >= prune height {}, cbf done" , wallet. name( ) , self . initial_tip. height, prune_height) ;
125+ self . state = SyncState :: Synced ;
126+ return Ok ( ( ) ) ;
127+ }
128+ }
129+ // if wallet already past filter headers, we're done
130+ if let Some ( filter_headers) = info. filter_headers {
131+ if self . initial_tip . height >= filter_headers {
132+ info ! ( "wallet({}): tip {} >= filters {}, cbf done" , wallet. name( ) , self . initial_tip. height, filter_headers) ;
133+ self . state = SyncState :: Synced ;
134+ return Ok ( ( ) ) ;
135+ }
136+ }
121137 if info. headers != info. blocks {
122138 info ! ( "Source still syncing, retrying..." ) ;
123139 * progress = WalletProgressUpdate :: Syncing ;
@@ -138,14 +154,6 @@ impl CompactFilterSync {
138154 self . wait = Some ( Instant :: now ( ) ) ;
139155 return Ok ( ( ) ) ;
140156 }
141- // if wallet already past filter headers, we're done
142- if let Some ( filter_headers) = info. filter_headers {
143- if self . initial_tip . height >= filter_headers {
144- info ! ( "wallet({}): tip {} >= filters {}, cbf done" , wallet. name( ) , self . initial_tip. height, filter_headers) ;
145- self . state = SyncState :: Synced ;
146- return Ok ( ( ) ) ;
147- }
148- }
149157 self . state = SyncState :: LoadFilterRange ( info) ;
150158 }
151159 SyncState :: LoadFilterRange ( info) => {
0 commit comments