@@ -164,10 +164,13 @@ fn test_block_height_tracking() {
164164
165165 // Initial state
166166 assert_eq ! ( manager. last_processed_height( ) , 0 ) ;
167+ assert_eq ! ( manager. synced_height( ) , 0 ) ;
167168
168- // Set height before adding wallets
169+ // Updating heights before adding wallets is a no-op
169170 manager. update_last_processed_height ( 1000 ) ;
170- assert_eq ! ( manager. last_processed_height( ) , 1000 ) ;
171+ manager. update_synced_height ( 500 ) ;
172+ assert_eq ! ( manager. last_processed_height( ) , 0 ) ;
173+ assert_eq ! ( manager. synced_height( ) , 0 ) ;
171174
172175 let mnemonic1 = Mnemonic :: generate ( 12 , Language :: English ) . unwrap ( ) ;
173176 let wallet_id1 = manager
@@ -191,46 +194,53 @@ fn test_block_height_tracking() {
191194
192195 assert_eq ! ( manager. wallet_count( ) , 2 ) ;
193196
194- // Verify both wallets have last_processed_height of 0 initially
197+ // Verify both wallets have last_processed_height and synced_height of 0 initially
195198 for wallet_info in manager. get_all_wallet_infos ( ) . values ( ) {
196199 assert_eq ! ( wallet_info. last_processed_height( ) , 0 ) ;
200+ assert_eq ! ( wallet_info. synced_height( ) , 0 ) ;
197201 }
198202
199- // Update height - should propagate to all wallets
203+ // Update last-processed height - should propagate to all wallets
200204 manager. update_last_processed_height ( 12345 ) ;
201205 assert_eq ! ( manager. last_processed_height( ) , 12345 ) ;
202206
203- // Verify all wallets got updated
207+ // Verify all wallets got updated while synced_height stays at 0
204208 let wallet_info1 = manager. get_wallet_info ( & wallet_id1) . unwrap ( ) ;
205209 let wallet_info2 = manager. get_wallet_info ( & wallet_id2) . unwrap ( ) ;
206210 assert_eq ! ( wallet_info1. last_processed_height( ) , 12345 ) ;
207211 assert_eq ! ( wallet_info2. last_processed_height( ) , 12345 ) ;
212+ assert_eq ! ( wallet_info1. synced_height( ) , 0 ) ;
213+ assert_eq ! ( wallet_info2. synced_height( ) , 0 ) ;
208214
209- // Update again - verify subsequent updates work
210- manager. update_last_processed_height ( 20000 ) ;
211- assert_eq ! ( manager. last_processed_height ( ) , 20000 ) ;
215+ // Update synced height - should propagate to all wallets without touching last_processed_height
216+ manager. update_synced_height ( 20000 ) ;
217+ assert_eq ! ( manager. synced_height ( ) , 20000 ) ;
212218
213219 for wallet_info in manager. get_all_wallet_infos ( ) . values ( ) {
214- assert_eq ! ( wallet_info. last_processed_height( ) , 20000 ) ;
220+ assert_eq ! ( wallet_info. last_processed_height( ) , 12345 ) ;
221+ assert_eq ! ( wallet_info. synced_height( ) , 20000 ) ;
215222 }
216223
217- // Update wallets individually to different heights
224+ // Update wallets individually to different last-processed heights
218225 let wallet_info1 = manager. get_wallet_info_mut ( & wallet_id1) . unwrap ( ) ;
219226 wallet_info1. update_last_processed_height ( 30000 ) ;
220227
221228 let wallet_info2 = manager. get_wallet_info_mut ( & wallet_id2) . unwrap ( ) ;
222229 wallet_info2. update_last_processed_height ( 25000 ) ;
223230
224- // Verify each wallet has its own last_processed_height
231+ // Verify each wallet has its own last_processed_height and manager reports the max
225232 let wallet_info1 = manager. get_wallet_info ( & wallet_id1) . unwrap ( ) ;
226233 let wallet_info2 = manager. get_wallet_info ( & wallet_id2) . unwrap ( ) ;
227234 assert_eq ! ( wallet_info1. last_processed_height( ) , 30000 ) ;
228235 assert_eq ! ( wallet_info2. last_processed_height( ) , 25000 ) ;
236+ assert_eq ! ( manager. last_processed_height( ) , 30000 ) ;
229237
230- // Manager update_height still syncs all wallets
231- manager. update_last_processed_height ( 40000 ) ;
238+ // Manager synced-height update syncs across all wallets
239+ manager. update_synced_height ( 40000 ) ;
232240 let wallet_info1 = manager. get_wallet_info ( & wallet_id1) . unwrap ( ) ;
233241 let wallet_info2 = manager. get_wallet_info ( & wallet_id2) . unwrap ( ) ;
234- assert_eq ! ( wallet_info1. last_processed_height( ) , 40000 ) ;
235- assert_eq ! ( wallet_info2. last_processed_height( ) , 40000 ) ;
242+ assert_eq ! ( wallet_info1. last_processed_height( ) , 30000 ) ;
243+ assert_eq ! ( wallet_info2. last_processed_height( ) , 25000 ) ;
244+ assert_eq ! ( wallet_info1. synced_height( ) , 40000 ) ;
245+ assert_eq ! ( wallet_info2. synced_height( ) , 40000 ) ;
236246}
0 commit comments