Skip to content

Fix10 - #215

Merged
BlobMaster41 merged 2 commits into
masterfrom
fix10
Jul 29, 2026
Merged

Fix10#215
BlobMaster41 merged 2 commits into
masterfrom
fix10

Conversation

@BlobMaster41

Copy link
Copy Markdown

Description

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Performance improvement
  • Refactoring (no functional changes)
  • Documentation update
  • CI/CD changes
  • Dependencies update

Checklist

Build & Tests

  • npm install completes without errors
  • npm run build:chrome builds successfully
  • Extension loads without errors in browser

Code Quality

  • Code follows the project's coding standards
  • No new TypeScript/ESLint warnings introduced
  • Error handling is appropriate
  • Console logs removed (except for error logging)

Documentation

  • Code comments added for complex logic
  • README updated (if applicable)

Security

  • No sensitive data (keys, credentials) committed
  • No new security vulnerabilities introduced
  • Private keys are never logged or exposed
  • User inputs are properly validated

OPWallet Specific

  • Changes work across all supported browsers (Chrome, Firefox, Brave, Edge, Opera)
  • Wallet state management is handled correctly
  • Transaction signing follows security best practices
  • RPC communication is secure
  • Content script isolation is maintained
  • Background/popup communication is secure

Testing

Browser Testing

  • Chrome
  • Firefox
  • Brave
  • Edge
  • Opera

Screenshots

Related Issues


By submitting this PR, I confirm that my contribution is made under the terms of the project's license.

The node echoes back a 32-byte key as the identity regardless of whether a link exists, so checking `mldsaHashedPublicKey` presence was a false positive on first link — causing the reveal to be skipped and the transaction to be rejected.

Now `mldsaLinked` is used as the authoritative signal when present. Falls back to the old `mldsaHashedPublicKey` check for older nodes that don't include the field.
Update `opnet` from `^1.9.1` to `^1.10.0` in `package.json` and refresh the lockfile to align installed dependency metadata with the new version.
Copilot AI review requested due to automatic review settings July 29, 2026 06:11
@BlobMaster41
BlobMaster41 merged commit 29501fc into master Jul 29, 2026
3 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR updates ML-DSA on-chain linkage detection to avoid false positives caused by nodes echoing back a queried 32-byte key, and bumps the app/dependency versions to align with the newer OPNet behavior.

Changes:

  • Use mldsaLinked (when available) as the authoritative on-chain linkage indicator, falling back to legacy behavior for older nodes.
  • Apply the updated linkage logic both in the background controller and in the Tx confirmation UI path that bypasses the controller.
  • Bump opwallet version to 1.9.1 and update opnet dependency to ^1.10.0 (with lockfile updates).

Reviewed changes

Copilot reviewed 3 out of 4 changed files in this pull request and generated 1 comment.

File Description
src/ui/pages/Wallet/TxOpnetConfirmScreen.tsx Updates ML-DSA “already linked” detection to prefer mldsaLinked and avoid false positives during deployment signing.
src/background/controller/wallet.ts Fixes isMLDSALinkedOnChain to use mldsaLinked as authoritative, preventing skipped reveals that would cause rejected transactions.
package.json Bumps app version and updates opnet dependency.
package-lock.json Locks opnet to 1.10.0 and updates integrity metadata accordingly.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +4969 to +4974
// `mldsaLinked` is authoritative. `mldsaHashedPublicKey` is NOT a linkage
// signal: when the node is queried with a 32-byte key it echoes that key
// back as the identity whether or not a link exists, so keying off its
// presence reports a false positive on a first link, skips the reveal and
// gets the transaction rejected. Nodes older than that field omit it, so
// fall back to the previous behaviour rather than always revealing.
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