]> Untitled Git - bdk/commitdiff
refactor(keychain_txout): `apply_changeset` restores spk cache before last revealed
authorvalued mammal <valuedmammal@protonmail.com>
Sat, 12 Jul 2025 14:44:46 +0000 (10:44 -0400)
committervalued mammal <valuedmammal@protonmail.com>
Mon, 14 Jul 2025 16:36:51 +0000 (12:36 -0400)
This change improves readability and maintains logical consistency with
the use of `spk_cache` throughout the `keychain_txout` module.

crates/chain/src/indexer/keychain_txout.rs

index dceb25a9b6252583e3aff8c585effb47b3355fb2..c4668cbe9f6c46b6fb9bf08298badfccde83b982 100644 (file)
@@ -938,16 +938,16 @@ impl<K: Clone + Ord + Debug> KeychainTxOutIndex<K> {
 
     /// Applies the `ChangeSet<K>` to the [`KeychainTxOutIndex<K>`]
     pub fn apply_changeset(&mut self, changeset: ChangeSet) {
-        for (did, index) in changeset.last_revealed {
-            let v = self.last_revealed.entry(did).or_default();
-            *v = index.max(*v);
-            self.replenish_inner_index_did(did, self.lookahead);
-        }
         if self.persist_spks {
             for (did, spks) in changeset.spk_cache {
                 self.spk_cache.entry(did).or_default().extend(spks);
             }
         }
+        for (did, index) in changeset.last_revealed {
+            let v = self.last_revealed.entry(did).or_default();
+            *v = index.max(*v);
+            self.replenish_inner_index_did(did, self.lookahead);
+        }
     }
 }