@@ -118,6 +118,22 @@ impl CompactFilterSync {
118
118
match & self . state {
119
119
SyncState :: SyncChecks => {
120
120
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
+ }
121
137
if info. headers != info. blocks {
122
138
info ! ( "Source still syncing, retrying..." ) ;
123
139
* progress = WalletProgressUpdate :: Syncing ;
@@ -138,14 +154,6 @@ impl CompactFilterSync {
138
154
self . wait = Some ( Instant :: now ( ) ) ;
139
155
return Ok ( ( ) ) ;
140
156
}
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
- }
149
157
self . state = SyncState :: LoadFilterRange ( info) ;
150
158
}
151
159
SyncState :: LoadFilterRange ( info) => {
0 commit comments