Skip to content

Cw/keyring/add-mpc-keyring-type#8142

Draft
ieow wants to merge 5 commits intomainfrom
cw/keyring/add-mpc-keyring-type
Draft

Cw/keyring/add-mpc-keyring-type#8142
ieow wants to merge 5 commits intomainfrom
cw/keyring/add-mpc-keyring-type

Conversation

@ieow
Copy link
Contributor

@ieow ieow commented Mar 9, 2026

Explanation

Previously we used the isHexAddress function to validate the erc20
token address. This function expects the input value to be in lowercase
hex.

Because we are splitting the address from the terms, now we just
validate that the entire terms is valid Hex (using case-insensitive
function) in the makePermissionRule function.

no-changelog because this is a fix to an unreleased change.

References

Checklist

  • I've updated the test suite for new or updated code as appropriate
  • I've updated documentation (JSDoc, Markdown, etc.) for new or
    updated code as appropriate
  • I've communicated my changes to consumers by updating changelogs
    for packages I've
    changed
  • I've introduced breaking
    changes

    in this PR and have prepared draft pull requests for clients and
    consumer packages to resolve them

Note

Medium Risk
Changes account wallet ID generation and naming for KeyringTypes.mpc, which can affect persisted wallet/group identifiers and UI grouping for MPC accounts. Scope is limited to type additions and grouping logic, with no direct cryptographic or auth changes.

Overview
Adds a new KeyringTypes.mpc keyring type and wires it into account/keyring naming helpers.

Updates KeyringRule to treat MPC keyrings as multi-instance: it looks up the concrete keyring instance metadata.id for an account, incorporates it into the generated wallet ID (mpc/<id>), persists that id in wallet metadata, and derives default wallet names like MPC Wallet 1, MPC Wallet 2 based on instance order.

Written by Cursor Bugbot for commit ccd74c3. This will update automatically on new commits. Configure here.

Explanation

References

Checklist

  • I've updated the test suite for new or updated code as appropriate
  • I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate
  • I've communicated my changes to consumers by updating changelogs for packages I've changed
  • I've introduced breaking changes in this PR and have prepared draft pull requests for clients and consumer packages to resolve them

@ieow
Copy link
Contributor Author

ieow commented Mar 9, 2026

@metamaskbot publish-preview

@github-actions
Copy link
Contributor

github-actions bot commented Mar 9, 2026

Preview builds have been published. See these instructions for more information about preview builds.

Expand for full list of packages and versions.
{
  "@metamask-previews/account-tree-controller": "4.1.1-preview-ccd74c3b",
  "@metamask-previews/accounts-controller": "36.0.1-preview-ccd74c3b",
  "@metamask-previews/address-book-controller": "7.0.1-preview-ccd74c3b",
  "@metamask-previews/ai-controllers": "0.2.0-preview-ccd74c3b",
  "@metamask-previews/analytics-controller": "1.0.0-preview-ccd74c3b",
  "@metamask-previews/analytics-data-regulation-controller": "0.0.0-preview-ccd74c3b",
  "@metamask-previews/announcement-controller": "8.0.0-preview-ccd74c3b",
  "@metamask-previews/app-metadata-controller": "2.0.0-preview-ccd74c3b",
  "@metamask-previews/approval-controller": "8.0.0-preview-ccd74c3b",
  "@metamask-previews/assets-controller": "2.2.0-preview-ccd74c3b",
  "@metamask-previews/assets-controllers": "100.1.0-preview-ccd74c3b",
  "@metamask-previews/base-controller": "9.0.0-preview-ccd74c3b",
  "@metamask-previews/base-data-service": "0.0.0-preview-ccd74c3b",
  "@metamask-previews/bridge-controller": "68.0.0-preview-ccd74c3b",
  "@metamask-previews/bridge-status-controller": "68.0.0-preview-ccd74c3b",
  "@metamask-previews/build-utils": "3.0.4-preview-ccd74c3b",
  "@metamask-previews/chain-agnostic-permission": "1.4.0-preview-ccd74c3b",
  "@metamask-previews/claims-controller": "0.4.2-preview-ccd74c3b",
  "@metamask-previews/client-controller": "1.0.0-preview-ccd74c3b",
  "@metamask-previews/compliance-controller": "1.0.1-preview-ccd74c3b",
  "@metamask-previews/composable-controller": "12.0.0-preview-ccd74c3b",
  "@metamask-previews/config-registry-controller": "0.1.0-preview-ccd74c3b",
  "@metamask-previews/connectivity-controller": "0.1.0-preview-ccd74c3b",
  "@metamask-previews/controller-utils": "11.19.0-preview-ccd74c3b",
  "@metamask-previews/core-backend": "6.0.0-preview-ccd74c3b",
  "@metamask-previews/delegation-controller": "2.0.1-preview-ccd74c3b",
  "@metamask-previews/earn-controller": "11.1.1-preview-ccd74c3b",
  "@metamask-previews/eip-5792-middleware": "3.0.0-preview-ccd74c3b",
  "@metamask-previews/eip-7702-internal-rpc-middleware": "0.1.0-preview-ccd74c3b",
  "@metamask-previews/eip1193-permission-middleware": "1.0.3-preview-ccd74c3b",
  "@metamask-previews/ens-controller": "19.0.3-preview-ccd74c3b",
  "@metamask-previews/error-reporting-service": "3.0.1-preview-ccd74c3b",
  "@metamask-previews/eth-block-tracker": "15.0.1-preview-ccd74c3b",
  "@metamask-previews/eth-json-rpc-middleware": "23.1.0-preview-ccd74c3b",
  "@metamask-previews/eth-json-rpc-provider": "6.0.0-preview-ccd74c3b",
  "@metamask-previews/foundryup": "1.0.1-preview-ccd74c3b",
  "@metamask-previews/gas-fee-controller": "26.0.3-preview-ccd74c3b",
  "@metamask-previews/gator-permissions-controller": "2.0.0-preview-ccd74c3b",
  "@metamask-previews/geolocation-controller": "0.1.1-preview-ccd74c3b",
  "@metamask-previews/json-rpc-engine": "10.2.3-preview-ccd74c3b",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.8-preview-ccd74c3b",
  "@metamask-previews/keyring-controller": "25.1.0-preview-ccd74c3b",
  "@metamask-previews/logging-controller": "7.0.1-preview-ccd74c3b",
  "@metamask-previews/message-manager": "14.1.0-preview-ccd74c3b",
  "@metamask-previews/messenger": "0.3.0-preview-ccd74c3b",
  "@metamask-previews/multichain-account-service": "7.0.0-preview-ccd74c3b",
  "@metamask-previews/multichain-api-middleware": "1.2.7-preview-ccd74c3b",
  "@metamask-previews/multichain-network-controller": "3.0.4-preview-ccd74c3b",
  "@metamask-previews/multichain-transactions-controller": "7.0.1-preview-ccd74c3b",
  "@metamask-previews/name-controller": "9.0.0-preview-ccd74c3b",
  "@metamask-previews/network-controller": "30.0.0-preview-ccd74c3b",
  "@metamask-previews/network-enablement-controller": "4.2.0-preview-ccd74c3b",
  "@metamask-previews/notification-services-controller": "22.0.0-preview-ccd74c3b",
  "@metamask-previews/permission-controller": "12.2.0-preview-ccd74c3b",
  "@metamask-previews/permission-log-controller": "5.0.0-preview-ccd74c3b",
  "@metamask-previews/perps-controller": "1.0.0-preview-ccd74c3b",
  "@metamask-previews/phishing-controller": "16.3.0-preview-ccd74c3b",
  "@metamask-previews/polling-controller": "16.0.3-preview-ccd74c3b",
  "@metamask-previews/preferences-controller": "22.1.0-preview-ccd74c3b",
  "@metamask-previews/profile-metrics-controller": "3.0.1-preview-ccd74c3b",
  "@metamask-previews/profile-sync-controller": "27.1.0-preview-ccd74c3b",
  "@metamask-previews/ramps-controller": "10.2.0-preview-ccd74c3b",
  "@metamask-previews/rate-limit-controller": "7.0.0-preview-ccd74c3b",
  "@metamask-previews/remote-feature-flag-controller": "4.1.0-preview-ccd74c3b",
  "@metamask-previews/sample-controllers": "4.0.3-preview-ccd74c3b",
  "@metamask-previews/seedless-onboarding-controller": "8.1.0-preview-ccd74c3b",
  "@metamask-previews/selected-network-controller": "26.0.3-preview-ccd74c3b",
  "@metamask-previews/shield-controller": "5.0.1-preview-ccd74c3b",
  "@metamask-previews/signature-controller": "39.0.4-preview-ccd74c3b",
  "@metamask-previews/storage-service": "1.0.0-preview-ccd74c3b",
  "@metamask-previews/subscription-controller": "6.0.0-preview-ccd74c3b",
  "@metamask-previews/transaction-controller": "62.20.0-preview-ccd74c3b",
  "@metamask-previews/transaction-pay-controller": "16.4.0-preview-ccd74c3b",
  "@metamask-previews/user-operation-controller": "41.0.3-preview-ccd74c3b"
}

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