Skip to content

fix: discard duplicate accounts on unlock#5775

Merged
mikesposito merged 19 commits into
mainfrom
mikesposito/fix/discard-duplicates
May 14, 2025
Merged

fix: discard duplicate accounts on unlock#5775
mikesposito merged 19 commits into
mainfrom
mikesposito/fix/discard-duplicates

Conversation

@mikesposito

@mikesposito mikesposito commented May 7, 2025

Copy link
Copy Markdown
Member

Dependent on:

Explanation

It is no longer possible to persist duplicates in the vault, though users that already have duplicates will see them in the accounts list, and won't be able to do any action with their vault. These changes aim to discard duplicates, moving the keyring including a duplicate account to the unsupported array.

Can be tested on extension with MetaMask/metamask-extension#32621

References

Changelog

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, highlighting breaking changes as necessary
  • I've prepared draft pull requests for clients and consumer packages to resolve any breaking changes

@mikesposito

Copy link
Copy Markdown
Member Author

@metamaskbot publish-preview

@github-actions

github-actions Bot commented May 7, 2025

Copy link
Copy Markdown
Contributor

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

Expand for full list of packages and versions.
{
  "@metamask-previews/accounts-controller": "28.0.0-preview-956e6bf8",
  "@metamask-previews/address-book-controller": "6.0.3-preview-956e6bf8",
  "@metamask-previews/announcement-controller": "7.0.3-preview-956e6bf8",
  "@metamask-previews/app-metadata-controller": "1.0.0-preview-956e6bf8",
  "@metamask-previews/approval-controller": "7.1.3-preview-956e6bf8",
  "@metamask-previews/assets-controllers": "61.0.0-preview-956e6bf8",
  "@metamask-previews/base-controller": "8.0.1-preview-956e6bf8",
  "@metamask-previews/bridge-controller": "21.0.0-preview-956e6bf8",
  "@metamask-previews/bridge-status-controller": "18.0.0-preview-956e6bf8",
  "@metamask-previews/build-utils": "3.0.3-preview-956e6bf8",
  "@metamask-previews/chain-agnostic-permission": "0.6.0-preview-956e6bf8",
  "@metamask-previews/composable-controller": "11.0.0-preview-956e6bf8",
  "@metamask-previews/controller-utils": "11.8.0-preview-956e6bf8",
  "@metamask-previews/delegation-controller": "0.2.0-preview-956e6bf8",
  "@metamask-previews/earn-controller": "0.13.0-preview-956e6bf8",
  "@metamask-previews/eip1193-permission-middleware": "0.1.0-preview-956e6bf8",
  "@metamask-previews/ens-controller": "16.0.0-preview-956e6bf8",
  "@metamask-previews/eth-json-rpc-provider": "4.1.8-preview-956e6bf8",
  "@metamask-previews/gas-fee-controller": "23.0.0-preview-956e6bf8",
  "@metamask-previews/json-rpc-engine": "10.0.3-preview-956e6bf8",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.7-preview-956e6bf8",
  "@metamask-previews/keyring-controller": "21.0.6-preview-956e6bf8",
  "@metamask-previews/logging-controller": "6.0.4-preview-956e6bf8",
  "@metamask-previews/message-manager": "12.0.1-preview-956e6bf8",
  "@metamask-previews/multichain": "4.0.0-preview-956e6bf8",
  "@metamask-previews/multichain-api-middleware": "0.2.0-preview-956e6bf8",
  "@metamask-previews/multichain-network-controller": "0.6.0-preview-956e6bf8",
  "@metamask-previews/multichain-transactions-controller": "0.10.0-preview-956e6bf8",
  "@metamask-previews/name-controller": "8.0.3-preview-956e6bf8",
  "@metamask-previews/network-controller": "23.4.0-preview-956e6bf8",
  "@metamask-previews/notification-services-controller": "7.0.0-preview-956e6bf8",
  "@metamask-previews/permission-controller": "11.0.6-preview-956e6bf8",
  "@metamask-previews/permission-log-controller": "3.0.3-preview-956e6bf8",
  "@metamask-previews/phishing-controller": "12.5.0-preview-956e6bf8",
  "@metamask-previews/polling-controller": "13.0.0-preview-956e6bf8",
  "@metamask-previews/preferences-controller": "17.0.0-preview-956e6bf8",
  "@metamask-previews/profile-sync-controller": "13.0.0-preview-956e6bf8",
  "@metamask-previews/queued-request-controller": "10.0.0-preview-956e6bf8",
  "@metamask-previews/rate-limit-controller": "6.0.3-preview-956e6bf8",
  "@metamask-previews/remote-feature-flag-controller": "1.6.0-preview-956e6bf8",
  "@metamask-previews/sample-controllers": "0.1.0-preview-956e6bf8",
  "@metamask-previews/selected-network-controller": "22.0.0-preview-956e6bf8",
  "@metamask-previews/signature-controller": "28.0.0-preview-956e6bf8",
  "@metamask-previews/token-search-discovery-controller": "3.1.0-preview-956e6bf8",
  "@metamask-previews/transaction-controller": "55.0.0-preview-956e6bf8",
  "@metamask-previews/user-operation-controller": "34.0.0-preview-956e6bf8"
}

@mikesposito mikesposito force-pushed the mikesposito/fix/discard-duplicates branch from 956e6bf to 1341545 Compare May 8, 2025 18:31
@mikesposito

Copy link
Copy Markdown
Member Author

@metamaskbot publish-preview

@github-actions

github-actions Bot commented May 8, 2025

Copy link
Copy Markdown
Contributor

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

Expand for full list of packages and versions.
{
  "@metamask-previews/accounts-controller": "28.0.0-preview-1341545b",
  "@metamask-previews/address-book-controller": "6.0.3-preview-1341545b",
  "@metamask-previews/announcement-controller": "7.0.3-preview-1341545b",
  "@metamask-previews/app-metadata-controller": "1.0.0-preview-1341545b",
  "@metamask-previews/approval-controller": "7.1.3-preview-1341545b",
  "@metamask-previews/assets-controllers": "61.0.0-preview-1341545b",
  "@metamask-previews/base-controller": "8.0.1-preview-1341545b",
  "@metamask-previews/bridge-controller": "21.0.0-preview-1341545b",
  "@metamask-previews/bridge-status-controller": "18.0.0-preview-1341545b",
  "@metamask-previews/build-utils": "3.0.3-preview-1341545b",
  "@metamask-previews/chain-agnostic-permission": "0.6.0-preview-1341545b",
  "@metamask-previews/composable-controller": "11.0.0-preview-1341545b",
  "@metamask-previews/controller-utils": "11.8.0-preview-1341545b",
  "@metamask-previews/delegation-controller": "0.2.0-preview-1341545b",
  "@metamask-previews/earn-controller": "0.13.0-preview-1341545b",
  "@metamask-previews/eip1193-permission-middleware": "0.1.0-preview-1341545b",
  "@metamask-previews/ens-controller": "16.0.0-preview-1341545b",
  "@metamask-previews/eth-json-rpc-provider": "4.1.8-preview-1341545b",
  "@metamask-previews/gas-fee-controller": "23.0.0-preview-1341545b",
  "@metamask-previews/json-rpc-engine": "10.0.3-preview-1341545b",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.7-preview-1341545b",
  "@metamask-previews/keyring-controller": "21.0.6-preview-1341545b",
  "@metamask-previews/logging-controller": "6.0.4-preview-1341545b",
  "@metamask-previews/message-manager": "12.0.1-preview-1341545b",
  "@metamask-previews/multichain": "4.0.0-preview-1341545b",
  "@metamask-previews/multichain-api-middleware": "0.2.0-preview-1341545b",
  "@metamask-previews/multichain-network-controller": "0.6.0-preview-1341545b",
  "@metamask-previews/multichain-transactions-controller": "0.10.0-preview-1341545b",
  "@metamask-previews/name-controller": "8.0.3-preview-1341545b",
  "@metamask-previews/network-controller": "23.4.0-preview-1341545b",
  "@metamask-previews/notification-services-controller": "7.0.0-preview-1341545b",
  "@metamask-previews/permission-controller": "11.0.6-preview-1341545b",
  "@metamask-previews/permission-log-controller": "3.0.3-preview-1341545b",
  "@metamask-previews/phishing-controller": "12.5.0-preview-1341545b",
  "@metamask-previews/polling-controller": "13.0.0-preview-1341545b",
  "@metamask-previews/preferences-controller": "17.0.0-preview-1341545b",
  "@metamask-previews/profile-sync-controller": "13.0.0-preview-1341545b",
  "@metamask-previews/queued-request-controller": "10.0.0-preview-1341545b",
  "@metamask-previews/rate-limit-controller": "6.0.3-preview-1341545b",
  "@metamask-previews/remote-feature-flag-controller": "1.6.0-preview-1341545b",
  "@metamask-previews/sample-controllers": "0.1.0-preview-1341545b",
  "@metamask-previews/selected-network-controller": "22.0.0-preview-1341545b",
  "@metamask-previews/signature-controller": "28.0.0-preview-1341545b",
  "@metamask-previews/token-search-discovery-controller": "3.1.0-preview-1341545b",
  "@metamask-previews/transaction-controller": "55.0.0-preview-1341545b",
  "@metamask-previews/user-operation-controller": "34.0.0-preview-1341545b"
}

Base automatically changed from mikesposito/fix/unsupported-keyrings to main May 13, 2025 09:09
@mikesposito mikesposito force-pushed the mikesposito/fix/discard-duplicates branch from 524f070 to b863dd5 Compare May 13, 2025 09:49
@mikesposito mikesposito marked this pull request as ready for review May 13, 2025 09:55
@mikesposito mikesposito requested review from a team as code owners May 13, 2025 09:55
Comment thread packages/keyring-controller/src/KeyringController.test.ts
Comment thread packages/keyring-controller/src/KeyringController.test.ts Outdated
Comment thread packages/keyring-controller/src/KeyringController.test.ts Outdated
Co-authored-by: Charly Chevalier <charly.chevalier@consensys.net>
@mikesposito

Copy link
Copy Markdown
Member Author

@metamaskbot publish-preview

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.

4 participants