Skip to content

fix(wallet): resolve saved asset-lock keys through platform-wallet - #1035

Draft
lklimek wants to merge 2 commits into
fix/orphaned-txfrom
fix/asset-lock-key-resume
Draft

lklimek wants to merge 2 commits into
fix/orphaned-txfrom
fix/asset-lock-key-resume

Conversation

@lklimek

@lklimek lklimek commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

TL;DR

Funding a Platform address from a saved deposit now works when the wallet owns its signing key but the address is absent from DET's local address list.

User story

As a wallet user, I can reuse an existing funding deposit without a misleading missing-address error.

Scenario

In Wallets → Dash Core → Asset Locks, choose Fund for an unused deposit and a destination outside the upstream wallet address pool. Previously this could fail despite a valid funding proof. The deposit can now fund the destination. Deposits reserved for DashPay invitations are rejected before signing.

Detailed discussion

Stacked on #1028 (fix/orphaned-tx). No dependency pin changes.

The manual funding path now resolves the tracked outpoint through resume_asset_lock, derives the returned funding-account path, and signs inside one wallet-backend secret session. It no longer relies on Wallet::known_addresses for the credit-output key or accesses seed material in the backend task.

Validation:

  • Existing TC-018 reproduced AssetLockAddressNotFound before the fix with known_locally=false and a proof present.
  • Live testnet TC-018 passed (1 executed, 92 filtered); it explicitly removes the credit address from the legacy cache before funding.
  • Invitation guard test passed, covering rejection of invitation vouchers and acceptance of the five other funding types.
  • cargo fmt --all -- --check, scoped Clippy (--locked --test backend-e2e --all-features -- -D warnings), and git diff --check passed.

The non-pool SDK submission retains its existing consumption/retry behavior; this change fixes key resolution. The independent SQLite wallet_restore reconciliation error is fixed separately in dashpay/platform#5207 and integrated into DET by #1036. This is a draft, so automatic PR CI is suppressed.

🤖 Co-authored by Claudius the Magnificent AI Agent

Keep manual Platform funding signing inside the wallet backend secret session and reject invitation vouchers. Exercise credit-key lookup without the legacy address cache.

Co-Authored-By: OpenAI Codex <noreply@openai.com>
@coderabbitai

coderabbitai Bot commented Sep 29, 2026

Copy link
Copy Markdown
Contributor

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@thepastaclaw

thepastaclaw commented Sep 29, 2026 •

Copy link
Copy Markdown
Collaborator

🕓 Review not started yet because this PR is a draft.

  • Request normal review — click when the PR is ready for review.
  • Request priority review — click to move this review to the front of the queue.

Commit 9cf5456. Normal review starts when eligible; priority review starts as soon as a slot is available.

Bring in the latest v1.0-dev merged into the fix/orphaned-tx base. No conflicts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@lklimek lklimek added the blocked Blocked by something external to this issue label Oct 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

blocked Blocked by something external to this issue

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants