Repository navigation
fix(platform-wallet): require only atomic tracked-lock writes for reconciliation #5207
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
lklimek
wants to merge
229
commits into
v5.1-dev
Choose a base branch
from
fix/sqlite-asset-lock-reconciliation
base: v5.1-dev
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
229 commits
Select commit
Hold shift + click to select a range
49ad468
chore(platform)!: bump rust-dashcore to 719de34b (secp256k1 0.33)
PastaPastaPasta b3904ee
fix(wallet): use upstream late transaction accounting corrections
lklimek a72737a
fix(swift-sdk): reconcile persisted Core transaction accounting
lklimek c4a3be4
fix(swift-sdk): exclude contact TXOs from history accounting
lklimek 60e1f6d
fix(wallet): reconcile persisted Core transaction accounting
lklimek 82cec94
refactor(wallet): pin minimal Core transaction accounting fix
lklimek 85deb41
test(drive): track latest protocol version in grovedb structure snapshot
PastaPastaPasta 7b63fc6
ci: bootstrap trusted publisher before feature runner adoption
infraclaw-dash 37ea1bb
Merge branch 'v4.3-dev' into fix/pr-5126
lklimek e2fd47d
Merge pull request #5175: bootstrap trusted CI image publisher
ktechmidas e80b55e
Merge remote-tracking branch 'origin/v4.3-dev' into fix/pr-5126
lklimek c0425f7
fix(platform-wallet-storage): restore confirmed spends before wallet …
lklimek 986df8a
fix(wallet): allow scoped SQLite asset-lock reconciliation
lklimek 9c8dff2
fix(platform-wallet-storage): keep each replayed UTXO in one funds ac…
lklimek 4b80513
fix(platform-wallet-storage): never load contact-only outputs as spen…
lklimek 3d04bb0
fix(swift-sdk): skip load-time accounting repair inside an open chang…
lklimek 9a21b34
fix(platform-wallet): require tracked asset locks to round-trip
lklimek c0fd3b1
fix(platform-wallet): limit reconciliation to atomic tracked-lock writes
lklimek 55730ff
Merge remote-tracking branch 'origin/v4.3-dev' into fix/pr-5126
lklimek 9766169
fix(platform-version): select folded DRIVE_ABCI_QUERY_VERSIONS_V2 in …
lklimek 28796ac
fix(platform-wallet): drop unused IdentityGettersV0 import in dpns
lklimek ba36075
Merge remote-tracking branch 'origin/fix/pr-5126' into fix/sqlite-ass…
lklimek c2a5765
test(drive): regenerate GroveDB structure for protocol version 15
lklimek f19cc0a
Merge remote-tracking branch 'origin/fix/pr-5126' into fix/sqlite-ass…
lklimek c4a5b23
fix(platform-wallet-storage)!: harden wallet history restore after #5…
lklimek 1279864
fix(platform-wallet-storage): gate V019 blob length before reading it…
lklimek b4b7366
fix(platform-wallet): let the higher-ranked record win account coales…
lklimek fcfa464
test(swift-sdk): expect the load-time accounting reads before the loc…
lklimek b004bc9
fix(swift-sdk): keep incoming amounts when a payment has foreign inputs
lklimek 1c8ec82
test(swift-sdk): cover wallet-scoped direction and amounts
lklimek a70ee60
fix(platform-wallet-storage): validate birth height before scheduling…
lklimek c0f3a4c
fix(platform-wallet): classify asset locks as internal on the live path
lklimek 6e82bf1
test(platform-wallet): pin live-fold accounting for non-asset-lock tr…
lklimek 7002582
docs(swift-sdk): point the direction rule comment at wallet_direction
lklimek a1f46c0
Merge branch 'v5.1-dev' into fix/structure-tests-latest-protocol
PastaPastaPasta cbed68d
test(drive): regenerate grovedb structure snapshot after v5.0-dev merge
PastaPastaPasta 5e74f42
Merge branch 'v5.1-dev' into fix/pr-5126
lklimek b1610d3
fix(platform-wallet-storage): ignore witness-only body differences fo…
lklimek a4e1c3f
refactor(platform-wallet): share the net-amount formula with the SQLi…
lklimek be7f8ec
fix(swift-sdk): read account wallets through the Optional cast in acc…
lklimek 628efc3
test(drive): relabel team-action layers in grovedb-structure.json for…
lklimek f78bccb
perf(platform-wallet): index accounted outputs once in wallet accounting
lklimek 3eff6f6
Merge branch 'v5.1-dev' into fix/pr-5126
lklimek aec5bb8
Merge remote-tracking branch 'origin/fix/structure-tests-latest-proto…
lklimek bfbaf31
Merge branch 'v5.1-dev' into fix/structure-tests-latest-protocol
lklimek b042573
Merge remote-tracking branch 'origin/fix/structure-tests-latest-proto…
lklimek defafa2
fix(platform-wallet-storage): rebuild spend marks for height-only fun…
lklimek 0f09a3a
fix(platform-wallet-storage): settle InstantSend conflicts regardless…
lklimek bd49cfe
fix(platform-wallet-storage): gate owned-output script length before …
lklimek d82b65e
docs(swift-sdk): mark shared-wallet amount gap for Rust-sourced accou…
lklimek 999a9ae
Merge branch 'v5.1-dev' into fix/structure-tests-latest-protocol
lklimek 536a004
Merge branch 'v5.0-dev' into chore/bump-rust-dashcore-secp-033
PastaPastaPasta bf382b1
fix(sdk)!: require Node.js 20 for the WASM packages
PastaPastaPasta 1b82309
fix(sdk): move v5.0-dev's encrypted-for and moderation-charter code t…
PastaPastaPasta 754e7fa
Merge remote-tracking branch 'origin/fix/structure-tests-latest-proto…
lklimek 4e632ce
fix(platform-wallet-storage): sweep confirmed conflicts after history…
lklimek 97179c6
fix(platform-wallet-storage): reconcile settled history across accounts
lklimek 8d6d9e7
fix(swift-sdk): preserve wallet accounting when participants change
lklimek 9894a0c
fix(wallet-storage): preserve durable claims during replay recovery
lklimek 9cd322f
Merge remote-tracking branch 'origin/v5.1-dev' into fix/pr-5126
lklimek a2b6f50
fix(wallet-storage): retain unknown claims during startup repair
lklimek f2e572b
test(wallet-storage): verify clean event-driven spend restoration
lklimek 5ee6f20
chore(platform)!: merge rust-dashcore migration and pin spent-claim API
lklimek ad2b8c2
chore: port rust-dashcore migration to v5.1
lklimek d397edb
chore: stack wallet accounting repairs on the v5.1 rust-dashcore port
lklimek d3861e4
chore: merge v5.1-dev into rust-dashcore migration
lklimek efa487d
fix(sdk)!: require Node 20 for legacy WASM-DPP consumers
lklimek 3271536
chore: move Node runtime requirements to a separate PR
lklimek d9149f1
chore(platform): pin rust-dashcore to merged dev
lklimek c0b4b97
chore!: require Node.js >=22 for JS packages and >=24 for dashmate (#…
lklimek 938b60f
Merge branch 'v5.1-dev' into chore/rust-dashcore-1112-v5.1
lklimek 7c73e98
fix(platform-wallet): retain SPV client and track shutdown through ca…
lklimek 4045c13
refactor: share rust-dashcore BLS backend through dpp::bls (#5320)
lklimek 8377b64
fix(platform-wallet)!: tell a retryable SPV stop from one that needs …
Claudius-Maginificent 9af2033
chore(deps)!: pin rust-dashcore to BLS compatibility fix
lklimek 41e9453
chore(deps): pin rust-dashcore to legacy serde restoration
lklimek 1dbcaaf
fix(drive-abci): preserve quorum key storage independently of serde
lklimek d8b911d
fix(wallet-ffi): adapt platform node ID hashing to rust-dashcore
lklimek c1c7b09
fix(test-suite): wait for rotated quorum publication before retrying …
lklimek 069a5ca
fix(dpp): require WASM-compatible blst for external consumers
lklimek cbb694d
test(platform): freeze historical storage and signing vectors
lklimek f475f72
chore(deps): pin rust-dashcore to PR 1149
lklimek 7ee8f7b
feat(platform-wallet): return dash-spv's verification status with an …
PastaPastaPasta 6744658
chore: merge v5.1-dev and preserve historical compatibility tests
lklimek f29c092
chore: merge remote quorum verification status update
lklimek 3265fad
chore: merge fix/pr-5126 into fix/sqlite-asset-lock-reconciliation
lklimek 206e86c
fix(platform-wallet-storage): cache the replay claim and swept asset-…
lklimek dfe9064
fix(platform-wallet-storage): record the spender of a new mempool res…
lklimek 9e41acd
fix(platform-wallet-storage): keep unsafe unconfirmed amounts from fa…
lklimek 981141e
test(platform-wallet-storage): plant writer-encoded outpoints in reco…
lklimek b30a09e
chore: merge fix/pr-5126 into fix/sqlite-asset-lock-reconciliation
lklimek 9183842
build!: pin rust-dashcore to dev d036d844
lklimek 7ada303
chore: merge chore/rust-dashcore-1112-v5.1 into fix/pr-5126
lklimek d280e72
fix(platform-wallet): keep restored spend claims for accounts added l…
lklimek d3247db
chore: merge fix/pr-5126 into fix/sqlite-asset-lock-reconciliation
lklimek 4917d07
perf(platform-wallet-storage): reuse cached statements in the replay …
lklimek 251a9b6
fix(platform-wallet-storage): settle set-aside mempool records agains…
lklimek f29dbd4
fix(platform-wallet-storage): let V019 migrate past an unaccountable …
lklimek 1c86da2
fix(platform-wallet-storage): store a mempool record whose net does n…
lklimek 8624543
docs: name the rust-dashcore#1112 pin in the changelog
lklimek f49527f
fix(platform-wallet-storage): attribute a held sweep input to its sur…
lklimek 055727f
chore: merge fix/pr-5126 into fix/sqlite-asset-lock-reconciliation
lklimek f1bcefe
fix(platform-wallet-storage): keep a mempool record with unsafe owned…
lklimek c225ab6
fix(platform-wallet-storage): gate spent-claim blob lengths before re…
lklimek 60ca7e2
perf(platform-wallet-storage): sweep at load only where an unconfirme…
lklimek 3b3e073
fix(platform-wallet-storage): gate spent-claim lengths in the reading…
lklimek a3c1e23
perf(platform-wallet-storage): replay InstantSend-locked records befo…
lklimek 2ee7daf
perf(platform-wallet-storage): hand each planned sweep only what it c…
lklimek 9d29de2
perf(platform-wallet-storage): replay the mempool ancestors of a fina…
lklimek 6633010
perf(platform-wallet-storage): plan conflict sweeps without the walle…
lklimek 484b196
fix(platform-wallet-storage): restore a set-aside record into every a…
lklimek d6465c1
fix(platform-wallet-storage): restore a record with unsafe input amou…
lklimek 3d4ef96
perf(platform-wallet-storage): cache the contact-ownership probe stat…
lklimek 4db12aa
perf(platform-wallet-storage): cache the prior spend-state probe stat…
lklimek 7d192bf
refactor(swift-sdk): move the SwiftData transaction accounting to its…
lklimek 1b749e9
chore(platform)!: port rust-dashcore migration (secp256k1 0.33) to v5.1
PastaPastaPasta 1aba0bd
chore(platform): pin rust-dashcore to merged dev
lklimek 6e022c0
chore!: require Node.js >=22 for JS packages and >=24 for dashmate (#…
lklimek 70c02af
fix(platform-wallet): retain SPV client and track shutdown through ca…
lklimek cdbeec5
refactor: share rust-dashcore BLS backend through dpp::bls (#5320)
lklimek 80ee8f5
fix(platform-wallet)!: tell a retryable SPV stop from one that needs …
Claudius-Maginificent fc62159
chore(deps)!: pin rust-dashcore to BLS compatibility fix
lklimek 1b804dd
chore(deps): pin rust-dashcore to legacy serde restoration
lklimek 007a51f
fix(drive-abci): preserve quorum key storage independently of serde
lklimek b7a246c
fix(wallet-ffi): adapt platform node ID hashing to rust-dashcore
lklimek 835f6af
fix(test-suite): wait for rotated quorum publication before retrying …
lklimek 0a4ade5
fix(dpp): require WASM-compatible blst for external consumers
lklimek 00b1c6c
test(platform): freeze historical storage and signing vectors
lklimek dd29a05
chore(deps): pin rust-dashcore to PR 1149
lklimek 97baf6b
feat(platform-wallet): return dash-spv's verification status with an …
PastaPastaPasta 8743c62
Merge branch 'v5.1-dev' into chore/rust-dashcore-1112-v5.1
lklimek 50b28de
build!: pin rust-dashcore to dev d036d844
lklimek 1bc426d
docs(platform-wallet): mark the unvalidated fork rewind in dash-spv
lklimek e26de73
chore: adopt the rewritten history of the base branch
lklimek 7a48ab6
Merge branch 'chore/rust-dashcore-1112-v5.1' into fix/pr-5126
lklimek 4f30e10
build!: pin rust-dashcore to dev 90359ed5
lklimek 266f76b
feat(dpp): tell whether a BLS public key is the identity point
lklimek 765c7e4
fix(platform-wallet-storage): gate stored widths before the claim sca…
lklimek 691541a
chore: merge v5.1-dev into chore/rust-dashcore-1112-v5.1
lklimek 912e06b
fix(platform-wallet): forward a noted chain-lock height to the core w…
lklimek 39a6de0
chore: merge chore/rust-dashcore-1112-v5.1 and pin rust-dashcore to 9…
lklimek 9774c72
revert(test-suite): drop the rotated-quorum proof retry
PastaPastaPasta e51d1ec
chore: merge final head of #5307 (9774c72d3c) into fix/pr-5126
lklimek 6aacbf3
chore: merge v5.1-dev before the #5307 squash (6a3f081113) into fix/p…
lklimek 35554cb
chore: record the #5307 squash merge (3b5e4a7dfb) in fix/pr-5126
lklimek 1d003a9
docs(changelog): name the rust-dashcore#1112 revision fix/pr-5126 pins
lklimek 052f100
feat(platform-wallet): expose the verdict a sweep gives a DashPay pay…
lklimek 28158c6
fix(platform-wallet-storage): fail the sent payment of a transaction …
lklimek 80332fa
test(platform-wallet): add shared core fixtures and table-drive proje…
lklimek 3c44f56
test(platform-wallet-storage): share migrated wallet-db fixtures in h…
lklimek d8828e1
test(platform-wallet-storage): DRY the V019 migration tests
lklimek a7d8016
test(platform-wallet-storage): build replay tests from shared fixtures
lklimek cc24eed
test(platform-wallet-storage): table-drive the spent-rehydration scen…
lklimek 3d1d0ee
test(platform-wallet-storage): table-drive clean-restart and constrai…
lklimek cf9fe4b
test(platform-wallet-storage): compact the replay-amount staging helper
lklimek f991080
refactor(platform-wallet-storage): share the frozen V019 history repa…
lklimek 34deed4
refactor(platform-wallet-storage): reuse the live repair helpers in V019
lklimek bbd98f5
docs(platform-wallet-storage): name both guards of the shared V019 re…
lklimek 19b2008
test(platform-wallet-storage): pin V019's repair of an asset lock wit…
lklimek 6e63275
test(platform-wallet-storage): rescan a wallet whose Core history was…
lklimek 4c450e7
fix(platform-wallet-storage)!: rebuild pre-V019 Core history by resca…
lklimek 486e6a2
fix(platform-wallet-storage)!: renumber the Core rescan migration to …
lklimek 62582b0
test(platform-wallet-storage): pin which asset-lock rows a conflict r…
lklimek 6c3b7f8
docs(changelog): note the non-exhaustive WalletStorageError API change
lklimek 8182993
chore: merge v5.1-dev into fix/pr-5126
lklimek a437848
build!: pin rust-dashcore to the rust-dashcore#1112 head 214f7d3e
lklimek fa110a1
test(platform-wallet-storage): rescan an upgraded wallet below its re…
lklimek 3d0a7c3
chore: pin rust-dashcore for crypto API migration
lklimek 34d93ec
refactor(wallet): adapt native crypto keys and preserve signature bytes
lklimek cccf3cc
refactor(ffi): adapt native bindings to typed Core cryptography
lklimek 069207d
test(ffi): pin signer bytes across deterministic digests
lklimek f17cfde
refactor!: migrate Platform consumers to typed Core cryptography
lklimek 43795f5
fix: adapt zeroizing key exports to signing slices
lklimek 1e87670
fix(dpp): preserve identity public key parse errors
lklimek 4625a62
fix(sdk): remove redundant voucher key reference
lklimek 374d0c6
fix(wallet): convert provider keys at crypto API boundaries
lklimek dde93e9
fix(wallet): use native secret export autoderef
lklimek 6aee11e
fix: adapt WASM encryption keys and seeded node test keys
lklimek 4ad35d0
fix(wasm): retain private key owner during scalar conversion
lklimek a9018cd
fix(ffi): preserve key ownership and use typed scalar parsers
lklimek 5c5dfa0
style(wasm): apply crate edition import ordering
lklimek 549d013
test(dpp): assert transparent legacy key parsing errors
lklimek 675a7ea
refactor(dpp): use Core ECDSA verification directly
lklimek 9f28131
test(dpp): assert typed crypto errors and clarify nonce parity
lklimek d14aa58
test(swift-sdk): retain fixture writer while taking migration snapshot
lklimek eac4f4c
fix(wallet): merge typed crypto base into transaction accounting
lklimek 0044a40
chore(deps): update rust-dashcore to latest 0.46 dev
lklimek c653e46
Merge updated rust-dashcore prerequisite into wallet recovery
lklimek 5441a2b
test(wallet-storage): derive sweep fixture IDs from transaction bodies
lklimek f750022
fix(wallet-storage): reject inconsistent transaction bodies before re…
lklimek 292b510
Merge released crypto prerequisite into wallet recovery
lklimek f56c12f
fix(platform-wallet): preserve drain restore requirements across stac…
lklimek dae6045
fix(wallet-storage): withhold unsupported drain operation capability
lklimek 0410b5a
Merge commit 'dae60456ec08feb6baa52f4155670988961b271b' into refresh/…
lklimek 519f7a8
fix(platform-wallet): verify pending coin reservation authorization
lklimek cdaf796
fix(platform-wallet): preserve noncanonical signed spend authorization
lklimek 06cf4f8
test(platform-wallet): cover nonstandard signed reservation hash flags
lklimek c7d09cb
fix(wallet-storage): authenticate restored claims and checkpoint prom…
lklimek 6b254b6
fix(wallet-storage): index spend-claim ownership once per load
lklimek 449d31b
fix(wallet-storage)!: keep unmined spend evidence through the V021 re…
lklimek 4766303
test(wallet-storage): pin how kept unmined spends settle after the V0…
lklimek 4e135b8
Merge remote-tracking branch 'origin/v5.1-dev' into merge/pr5150-v51-…
lklimek b1d19ac
refactor(platform-wallet-storage)!: renumber core transaction account…
lklimek 80c680a
Merge commit 'b1d19ac07d' into mig/5207
lklimek 29c1abe
fix(platform-wallet-storage): index every input of kept pending recor…
lklimek 3ff702d
fix(platform-wallet-storage): index retained coins by funding txid an…
lklimek 19f60d2
fix(platform-wallet-storage): restore set-aside records where their c…
lklimek 841ede2
docs(changelog): note the breaking WalletStorageError change
lklimek fd8b8ee
test(platform-wallet-storage): widen scaling bounds and pin the V020 …
lklimek ef7910e
fix(platform-wallet-storage): make V020 honour the load policy on unr…
lklimek 4247fed
Merge commit '132ae31a1356d035cd8326f27c1109685090a71d' into stack/5150
lklimek 2b5cc1f
Merge commit '132ae31a1356d035cd8326f27c1109685090a71d' into stack/5207
lklimek 5b26750
test(platform-wallet): pin a no-change asset lock's row when a block …
lklimek 48dad85
fix(platform-wallet): fold the manager's held slices into a block's w…
lklimek d2395b5
test(platform-wallet): pin which held slices a block's wallet-level r…
lklimek 32b5dfc
Merge commit 'd2395b509c' into stack/5207
lklimek e66df27
fix(platform-wallet-storage): harden V020 reads and preserve its hist…
lklimek f573d63
fix(platform-wallet-storage): repair authorization by persisted trans…
lklimek 09abc40
fix(platform-wallet-storage): freeze V019 codec and recover corrupt m…
lklimek 08f7c55
fix(platform-wallet-storage): preserve survivor evidence across doubl…
lklimek f72313e
fix(platform-wallet-storage): guard live migration codec with immutab…
lklimek 5a2204c
Merge commit 'f72313e48b' into stack/5207
lklimek e67b481
Merge branch 'v5.1-dev' into fix/pr-5126
lklimek e055580
Merge branch 'fix/pr-5126' into fix/sqlite-asset-lock-reconciliation
lklimek 2197dc2
Merge remote-tracking branch 'origin/v5.1-dev' into fix/pr-5126
lklimek 914d883
Merge branch 'fix/pr-5126' into fix/sqlite-asset-lock-reconciliation
lklimek 01baa72
chore: merge v5.1-dev into PR 5150
lklimek 452a460
chore: merge fix/pr-5126 into PR 5207
lklimek 6c01f7e
refactor(platform-wallet): detach reconciliation capability from acco…
lklimek File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
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
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.