Skip to content

chore: update rust-dashcore to b056d07c - #4343

Merged
QuantumExplorer merged 1 commit into
v4.2-devfrom
claude/update-rust-dash-core-6b1cfc
Aug 8, 2026
Merged

chore: update rust-dashcore to b056d07c#4343
QuantumExplorer merged 1 commit into
v4.2-devfrom
claude/update-rust-dash-core-6b1cfc

Conversation

@QuantumExplorer

Copy link
Copy Markdown
Member

Issue being fixed or feature implemented

The rust-dashcore pin was two commits behind dev, missing two fixes — one of
which the platform tree already works around and refers to by issue number.

rs-platform-wallet carries a defensive duplicate-prevout check that cites
rust-dashcore#931 as 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-dashcore git dependencies from 944e53a5 to b056d07c
(current dev tip) 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_funding
    appends 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 an
    earlier add_funding of an overlapping account), that outpoint became two
    candidates. Coin selection does not deduplicate by outpoint, so
    SelectionStrategy::All was guaranteed to put both copies in the
    transaction, 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_height sits below the chain anchor could never be certified and the
    rescan never terminated. On mainnet hd_wallet_sync_floor pushes the anchor
    to the checkpoint at 200000 while the CLI creates wallets at birth height 0,
    so synced_height stayed at 0 for the whole run — thousands of restarts and
    batch scans producing zero sync-height advances at ~350% CPU, indefinitely.

No platform source changes were required.

How Has This Been Tested?

  • cargo update moved only the eight rust-dashcore crates and their internal
    members — 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 (#933
adds 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-spv and key-wallet;
no public signature changed, and nothing in the platform tree needed adjusting.

Checklist:

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated relevant unit/integration/functional/e2e tests
  • I have added "!" to the title and described breaking changes in the corresponding section if my code contains any
  • I have made corresponding changes to the documentation if needed

For repository code-owners and collaborators only

  • I have assigned this pull request to a milestone

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.
@github-actions github-actions Bot added this to the v4.2.0 milestone Aug 8, 2026
@coderabbitai

coderabbitai Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@QuantumExplorer, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 45 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 677b496b-0085-49ac-8e99-45a664f9ca5d

📥 Commits

Reviewing files that changed from the base of the PR and between 7a7ec9f and 4f59528.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (1)
  • Cargo.toml

Comment @coderabbitai help to get the list of available commands.

@thepastaclaw

thepastaclaw commented Aug 8, 2026

Copy link
Copy Markdown
Collaborator

🔍 Review in progress — actively reviewing now (commit 4f59528)
Stage: Opus review + final verification
ETA: complete ~17:45 UTC (median 14m across 30 recent reviews)
Running 19m · Last checked: 2026-08-08 17:40 UTC

@QuantumExplorer
QuantumExplorer merged commit b7dc4b8 into v4.2-dev Aug 8, 2026
17 checks passed
@QuantumExplorer
QuantumExplorer deleted the claude/update-rust-dash-core-6b1cfc branch August 8, 2026 17:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants