chore: update rust-dashcore to b056d07c - #4343
Conversation
Picks up two fixes on top of the current pin, neither of which changes a public signature: - key-wallet: `add_funding` no longer offers coin selection an outpoint the builder already holds (dashpay/rust-dashcore#931). A UTXO seeded by `add_inputs`, or covered by an earlier `add_funding` of an overlapping account, became two candidates; selection does not deduplicate by outpoint, so it could reach the transaction twice and Core would reject the result. `rs-platform-wallet` already asserts this invariant itself and cites the upstream issue, so this is the pin that makes that citation true. - dash-spv: the filter rescan loop terminates when the chain anchor sits above the wallet's birth height (dashpay/rust-dashcore#933). On mainnet the sync floor pushes the anchor to the checkpoint at 200000 while wallets are created at birth height 0, leaving `synced_height` at 0 and the rescan spinning without ever advancing.
|
Warning Review limit reached
Next review available in: 45 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (1)
Comment |
|
🔍 Review in progress — actively reviewing now (commit 4f59528) |
Issue being fixed or feature implemented
The
rust-dashcorepin was two commits behinddev, missing two fixes — one ofwhich the platform tree already works around and refers to by issue number.
rs-platform-walletcarries a defensive duplicate-prevout check that citesrust-dashcore#931as the upstream fix(transaction.rs),
but the pinned revision predates that fix, so the comment described behavior the
build did not actually have. This bump makes it true.
What was done?
Moved all eight
rust-dashcoregit dependencies from944e53a5tob056d07c(current
devtip) and regenerated the lockfile.The two commits picked up, neither of which changes a public signature:
fix(key-wallet): never offer an outpoint the builder already holds(#931) —
add_fundingappends every unreserved UTXO of a funding account to the candidate set. If
the builder was already seeded with one of them (via
add_inputs, or anearlier
add_fundingof an overlapping account), that outpoint became twocandidates. Coin selection does not deduplicate by outpoint, so
SelectionStrategy::Allwas guaranteed to put both copies in thetransaction, and the ordinary strategies could pick both and double-count
them toward the target. Either way the transaction spends one prevout twice
and Core rejects it.
fix(dash-spv): stop the filter rescan loop when the chain anchors above the wallet(#933) — a wallet whose
synced_heightsits below the chain anchor could never be certified and therescan never terminated. On mainnet
hd_wallet_sync_floorpushes the anchorto the checkpoint at 200000 while the CLI creates wallets at birth height 0,
so
synced_heightstayed at 0 for the whole run — thousands of restarts andbatch scans producing zero sync-height advances at ~350% CPU, indefinitely.
No platform source changes were required.
How Has This Been Tested?
cargo updatemoved only the eightrust-dashcorecrates and their internalmembers — no incidental dependency churn in the lockfile.
cargo check --workspace --all-targets— passes (exit 0).cargo clippy --workspace --all-targets— passes (exit 0).The upstream fixes carry their own regression tests in
rust-dashcore(#933adds four cases that fail before the fix); this PR is the pin bump only.
Breaking Changes
None. Both commits are behavior fixes internal to
dash-spvandkey-wallet;no public signature changed, and nothing in the platform tree needed adjusting.
Checklist:
For repository code-owners and collaborators only