wallet: route filtered-block and scan-batch writes through the Store#1270
Open
yyforyongyu wants to merge 15 commits into
Open
wallet: route filtered-block and scan-batch writes through the Store#1270yyforyongyu wants to merge 15 commits into
yyforyongyu wants to merge 15 commits into
Conversation
Coverage Report for CI Build 28448454155Warning No base build found for commit Coverage: 56.374%Details
Uncovered Changes
Coverage RegressionsRequires a base build to compare against. How to fix this → Coverage Stats
💛 - Coveralls |
f22553f to
f2cd230
Compare
6fd8846 to
6e49f06
Compare
f2cd230 to
eea1984
Compare
6e49f06 to
ee88d41
Compare
eea1984 to
c1d07f0
Compare
35428a1 to
cb49f87
Compare
c1d07f0 to
9f27795
Compare
cb49f87 to
a46bd24
Compare
2143cd2 to
b64184b
Compare
a46bd24 to
271e6c5
Compare
b64184b to
b06ce94
Compare
6e1c859 to
ba97a4a
Compare
540a296 to
b6d2dbf
Compare
edba198 to
3108912
Compare
b6d2dbf to
0606cc5
Compare
3108912 to
d1e0364
Compare
0606cc5 to
0a2c62c
Compare
d1e0364 to
b822c2a
Compare
0a2c62c to
20aa56e
Compare
b822c2a to
fe89d63
Compare
20aa56e to
c8fe745
Compare
Collaborator
Author
|
No issues found by |
Collaborator
Author
|
No issues found by gpt-5.5 🐞 |
yyforyongyu
commented
Jun 23, 2026
Collaborator
Author
|
No issues found by |
Collaborator
Author
|
No issues found by |
Collaborator
Author
|
No issues found by gpt-5.5 🦜 |
yyforyongyu
commented
Jun 24, 2026
Collaborator
Author
|
No issues found by |
Collaborator
Author
|
No issues found by |
Collaborator
Author
|
No issues found by |
Collaborator
Author
|
No issues found by gpt-5.5 🪶 |
Collaborator
Author
|
No issues found by |
Collaborator
Author
|
No issues found by gpt-5.5 🐌 |
Collaborator
Author
|
No issues found by |
Collaborator
Author
|
No issues found by gpt-5.5 🦇 |
Persist filtered-block notification batches through db.Store so transaction updates and sync-tip advancement stay atomic at the store boundary.
Assert connected-block notifications write one transaction batch together with the matching sync-tip update through the Store.
Cover that a bare-multisig output owned through a member pubkey survives the Store batch path instead of being dropped.
Cover that a relevant transaction carrying both a wallet-owned and an unrelated third-party output credits only the owned output.
Add the helpers that convert recovery scan results into Store batch params: horizon merging, horizon flattening, per-output tx params, and the scan-result block shape.
Write recovery scan batches through db.Store so rescans persist tx notifications, horizons, and synced blocks through one store operation.
Route targeted recovery scan results through the Store batch API without advancing the wallet's synced blocks.
Read the synced tip through syncedTip so checkRollback, advanceChainSync, and scanWithRewind use the Store's tip rather than the legacy addrStore tip in store-backed mode.
scanHorizonParams emitted db.ScanHorizon with an empty AccountName, so ApplyScanBatch fell back to numeric account resolution. That is unsafe for imported and imported-xpub accounts, whose Store-facing numbers are masked to 0 and collide with the default derived account. Thread the *RecoveryState into storeScanBatchParams and stamp every emitted horizon with the durable account name resolved from the recovery state, keeping the numeric fallback only for unexpected missing names.
Add coverage proving a confirmed chain.RelevantTx notification builds an ApplyTxBatch whose transaction carries the confirming block while SyncedTo stays nil, so the standalone notification records the confirmed tx without advancing the wallet sync tip.
Add store-backed reads for recovery scan account horizons: ListAccounts for full scans and GetAccount for targeted scans, converting store account metadata into RecoveryState horizon shape. Every imported account is withheld from the horizons, since its number is masked to 0 and would collide with the default derived account in the by-number recovery lookahead. The wiring of these readers into the scan-state loader follows in a later commit.
Cover storeScanHorizons over both the full-scan ListAccounts path and the targeted GetAccount path, including that imported accounts are withheld from the emitted recovery horizons.
Add store-backed loading of active recovery scan addresses through paginated ListAddresses queries, extracting one address per stored script.
Add store-backed loading of UTXOs that recovery scans should watch through ListOutputsToWatch, converting each store UTXO row into the recovery scan credit shape.
Aggregate store-backed horizon, address, and watch-output reads into loadStoreScanData and route wallet and targeted scan-data loading through the store when store wiring is available.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Routes the wallet chain-scan write path through the runtime
db.Store:filtered block batches, scan-batch params construction, scan-batch and targeted
scan-batch writes, and sync-tip updates in the scan flow, plus the scan-horizon
account-name stamping backport. Includes filtered-block write-shape,
bare-multisig, and third-party-filtering tests.
Split out of the runtime Store PR for reviewability; content-preserving, no
commit changes. Stacked on
impl-runtime-store-3(#1258).