Skip to content

fix: same block core chain lock height - #979

Merged
QuantumExplorer merged 1 commit into
v0.25-devfrom
feat/sameBlockCoreChainLockHeight
Apr 26, 2023
Merged

QuantumExplorer merged 1 commit into
v0.25-devfrom
feat/sameBlockCoreChainLockHeight

Conversation

@QuantumExplorer

Copy link
Copy Markdown
Member

Issue being fixed or feature implemented

What was done?

How Has This Been Tested?

Breaking Changes

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 made corresponding changes to the documentation

For repository code-owners and collaborators only

  • I have assigned this pull request to a milestone

// propose one
// This is done before all else

let core_chain_lock_update = match self.platform.core_rpc.get_best_chain_lock() {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should also check in ProcessProposal if received core chain lock height is valid

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah there's a todo there already.

@QuantumExplorer
QuantumExplorer merged commit 941a1b5 into v0.25-dev Apr 26, 2023
@QuantumExplorer
QuantumExplorer deleted the feat/sameBlockCoreChainLockHeight branch April 26, 2023 13:18
@thephez thephez added this to the v0.25.0 milestone Oct 11, 2023
HashEngineering added a commit to HashEngineering/platform that referenced this pull request Aug 21, 2026
…68e652)

Carries the wallet-scope born-spent attribution, the rescan reseed fix,
and the repair-span bound into this branch's engine.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
HashEngineering added a commit to HashEngineering/platform that referenced this pull request Aug 25, 2026
…th dev (a5d7ea0b)

The dashpay#979 engine fixes and dashpay#974's coalesced committed-range sweeps now
live on one rev: fix/key-wallet-rescan-changeset merged with dev, with
the durable pending-sweep re-keyed to the coalesced model (manager-level
swept-awaiting-commit receipt, resume-only seeding). Replaces the two
superseded pins this branch carried (6768f983, 9a68e652).

The rev also carries rust-dashcore dashpay#981 (Mnemonic::from_phrase is now
the auto-detecting parse), so the three parse_mnemonic_any_language
wordlist walks (wallet_lifecycle, rs-platform-wallet-ffi derivation +
identity_keys_from_mnemonic, rs-sdk-ffi signer_simple) collapse to thin
delegates and the language-tagged test call sites drop the argument.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
HashEngineering added a commit to HashEngineering/platform that referenced this pull request Sep 4, 2026
…ile accessors over JNI

The two reconcile-diagnostic reads Android lacked. coreWalletState wraps
platform_wallet_core_wallet_state (syncedHeight / lastProcessedHeight /
monitorRevision) — confirms a spvRescanFilters rewind actually took.
accountSpentOutpoints wraps platform_wallet_account_spent_outpoints — the
engine's spent-coin set per account, the dashpay#979 reconcile complement to the
unspent UTXO page and the instrument for the rust-dashcore#992 burn race.
Decoders pinned by CoreWalletStateTest.
HashEngineering added a commit to HashEngineering/platform that referenced this pull request Sep 18, 2026
… + dashpay#1001)

Same integration/979-on-v42pin-93260bf branch as before, now with
dashpay/rust-dashcore#1001 (keep a spend-first coin recognisable so its spend
stays in history) cherry-picked on top; the dashpay#649-skip conflict with dashpay#979's
born-spent staging is resolved by keeping both.
HashEngineering added a commit to HashEngineering/platform that referenced this pull request Sep 18, 2026
… + dashpay#1001 + rust-dashcore#1008)

rust-dashcore#1008: dash-spv collects the scripts derived by every application
of a block, not only the tracked delivery, so gap-widened addresses found by a
re-applied block still reach the batch rescan and the committed-range sweep
(dashpay/rust-dashcore#1006). Cherry-picked onto the fork pin branch with the
one-line dashpay#979 conflict resolved by keeping the durable pending-sweep note for
every delivery.
HashEngineering added a commit to HashEngineering/platform that referenced this pull request Sep 18, 2026
… + dashpay#1001 + rust-dashcore#989)

Swaps rust-dashcore#1008 for dashpay#989, which supersedes it (dashpay#1008 was closed as a
subset). dashpay#989 fixes the same loss of scripts derived by a re-applied block
(dashpay/rust-dashcore#1006) but routes them by height to the batch covering
the block, falls back to the backward sweep when that range has committed,
re-tests everything the wallet watches that a batch never matched before each
commit, and withholds FiltersSyncComplete until the blocks it finds are
applied. dashpay#979's durable pending-sweep note is kept, now taken on every
delivery rather than only the tracked one.
HashEngineering added a commit to HashEngineering/platform that referenced this pull request Sep 18, 2026
A persisted address pool has been observed arriving sparse (a 2026-08-19
field wallet was missing BIP44 change rows 875..=890 between surviving
ones). Ingesting the sparse list as-is makes every output paying a missing
address permanently unrecognizable — no rescan repairs it, because the
row-derived `highest_generated` suppresses the gap-limit re-derivation
that otherwise would. Derivation is pure key arithmetic, so re-derive
every missing index up to the persisted watermark at load.

The key source comes from the pool's own account
(`accounts.account_of_type`), not from `key_source_for_account_type`.
That helper routes through `extended_public_key_for_account_type`, which
has no arm for either DashPay variant and so answers `NoKeySource` for
both — skipping the repair on exactly the account type that needs it
most. `DashpayReceivingFunds` is wallet-owned and funds-bearing, and its
account already carries the xpub the missing addresses derive from; an
unrepaired hole there makes a contact's payments to us invisible. The
helper stays as the fallback for the types `account_of_type` deliberately
does not return: the BLS provider operator account and the Ed25519
platform-node account.

Never fatal: a failed repair restores exactly what the rows carried.

Requires `AddressPool::ensure_contiguous_to` (rust-dashcore dashpay#979).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.

3 participants