Skip to content

Conversation

@ccharly
Copy link
Contributor

@ccharly ccharly commented Nov 3, 2025

Explanation

Multichain account groups can "disable" accounts using AccountProviderWrappers. This is mostly used in combination with remote feature flags or with the "Basic Functionality" flags.

Though, since the account tree is not "consuming" multichain account groups directly, the account list from those groups was not properly updated (since not :account{Added,Removed} are used in this case), resulting in a de-sync between the groups from the tree and the groups from the service.

Note

This PR aims to fix this de-sync in a simple way without involving too many architecture changes (so it's less risky to release this first), but the real fix for this is there:

References

N/A

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

Note

AccountTreeController now skips and removes “outdated” BIP‑44 accounts using MultichainAccountService actions/events, MultichainAccountService simplifies provider creation/error handling, and repo scripts/configs are cleaned up (drop build:all, adjust ts-bridge, prettier/yarn).

  • Account Tree Controller:
    • Skip disabled BIP‑44 accounts on init by cross-checking MultichainAccountService:getMultichainAccountWallets.
    • React to MultichainAccountService:multichainAccountGroup{Created,Updated} to remove accounts no longer in a group.
    • Refactor account removal with batched helper and proper events; update types/messenger to require new actions/events.
  • Multichain Account Service:
    • Update createMultichainAccountGroup to either await all providers or just EVM, running others in background with logging; aggregate errors when awaiting all.
    • Remove Snap provider concurrency throttling; adjust provider configs/imports; delete unused utils.
    • Test updates accordingly.
  • Tooling/Configs:
    • Remove build:all across packages and relax Yarn constraints; reorder build:docs where needed.
    • Pin @ts-bridge/cli to ^0.6.1; update yarn.lock.
    • Drop Prettier package.json plugin; trim Yarn preapproved list.
  • Subscription Controller:
    • Remove sponsorship intents export/type from public API and changelog entry.

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

@ccharly
Copy link
Contributor Author

ccharly commented Nov 3, 2025

@metamaskbot publish-previews

@github-actions
Copy link
Contributor

github-actions bot commented Nov 3, 2025

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": "2.0.0-preview-c222de5",
  "@metamask-previews/accounts-controller": "34.0.0-preview-c222de5",
  "@metamask-previews/address-book-controller": "7.0.0-preview-c222de5",
  "@metamask-previews/announcement-controller": "8.0.0-preview-c222de5",
  "@metamask-previews/app-metadata-controller": "2.0.0-preview-c222de5",
  "@metamask-previews/approval-controller": "8.0.0-preview-c222de5",
  "@metamask-previews/assets-controllers": "86.0.0-preview-c222de5",
  "@metamask-previews/base-controller": "9.0.0-preview-c222de5",
  "@metamask-previews/bridge-controller": "58.0.0-preview-c222de5",
  "@metamask-previews/bridge-status-controller": "58.0.0-preview-c222de5",
  "@metamask-previews/build-utils": "3.0.4-preview-c222de5",
  "@metamask-previews/chain-agnostic-permission": "1.2.2-preview-c222de5",
  "@metamask-previews/composable-controller": "12.0.0-preview-c222de5",
  "@metamask-previews/controller-utils": "11.15.0-preview-c222de5",
  "@metamask-previews/core-backend": "4.0.0-preview-c222de5",
  "@metamask-previews/delegation-controller": "1.0.0-preview-c222de5",
  "@metamask-previews/earn-controller": "9.0.0-preview-c222de5",
  "@metamask-previews/eip-5792-middleware": "2.0.0-preview-c222de5",
  "@metamask-previews/eip-7702-internal-rpc-middleware": "0.1.0-preview-c222de5",
  "@metamask-previews/eip1193-permission-middleware": "1.0.2-preview-c222de5",
  "@metamask-previews/ens-controller": "18.0.0-preview-c222de5",
  "@metamask-previews/error-reporting-service": "3.0.0-preview-c222de5",
  "@metamask-previews/eth-block-tracker": "14.0.0-preview-c222de5",
  "@metamask-previews/eth-json-rpc-middleware": "21.0.0-preview-c222de5",
  "@metamask-previews/eth-json-rpc-provider": "5.0.1-preview-c222de5",
  "@metamask-previews/foundryup": "1.0.1-preview-c222de5",
  "@metamask-previews/gas-fee-controller": "25.0.0-preview-c222de5",
  "@metamask-previews/gator-permissions-controller": "0.3.0-preview-c222de5",
  "@metamask-previews/json-rpc-engine": "10.1.1-preview-c222de5",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.8-preview-c222de5",
  "@metamask-previews/keyring-controller": "24.0.0-preview-c222de5",
  "@metamask-previews/logging-controller": "7.0.0-preview-c222de5",
  "@metamask-previews/message-manager": "14.0.0-preview-c222de5",
  "@metamask-previews/messenger": "0.3.0-preview-c222de5",
  "@metamask-previews/multichain-account-service": "2.0.1-preview-c222de5",
  "@metamask-previews/multichain-api-middleware": "1.2.4-preview-c222de5",
  "@metamask-previews/multichain-network-controller": "2.0.0-preview-c222de5",
  "@metamask-previews/multichain-transactions-controller": "6.0.0-preview-c222de5",
  "@metamask-previews/name-controller": "9.0.0-preview-c222de5",
  "@metamask-previews/network-controller": "25.0.0-preview-c222de5",
  "@metamask-previews/network-enablement-controller": "3.1.0-preview-c222de5",
  "@metamask-previews/notification-services-controller": "19.0.0-preview-c222de5",
  "@metamask-previews/permission-controller": "12.1.0-preview-c222de5",
  "@metamask-previews/permission-log-controller": "5.0.0-preview-c222de5",
  "@metamask-previews/phishing-controller": "15.0.0-preview-c222de5",
  "@metamask-previews/polling-controller": "15.0.0-preview-c222de5",
  "@metamask-previews/preferences-controller": "21.0.0-preview-c222de5",
  "@metamask-previews/profile-sync-controller": "26.0.0-preview-c222de5",
  "@metamask-previews/rate-limit-controller": "7.0.0-preview-c222de5",
  "@metamask-previews/remote-feature-flag-controller": "2.0.0-preview-c222de5",
  "@metamask-previews/sample-controllers": "3.0.0-preview-c222de5",
  "@metamask-previews/seedless-onboarding-controller": "6.0.0-preview-c222de5",
  "@metamask-previews/selected-network-controller": "25.0.0-preview-c222de5",
  "@metamask-previews/shield-controller": "1.1.0-preview-c222de5",
  "@metamask-previews/signature-controller": "35.0.0-preview-c222de5",
  "@metamask-previews/subscription-controller": "3.1.0-preview-c222de5",
  "@metamask-previews/token-search-discovery-controller": "4.0.0-preview-c222de5",
  "@metamask-previews/transaction-controller": "61.1.0-preview-c222de5",
  "@metamask-previews/transaction-pay-controller": "2.0.2-preview-c222de5",
  "@metamask-previews/user-operation-controller": "40.0.0-preview-c222de5"
}

@ccharly ccharly force-pushed the fix/account-tree-controller-disabled-accounts branch from 8cb8a9e to 60778d9 Compare November 3, 2025 14:57
@ccharly
Copy link
Contributor Author

ccharly commented Nov 3, 2025

@metamaskbot publish-previews

@github-actions
Copy link
Contributor

github-actions bot commented Nov 3, 2025

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": "2.0.0-preview-60778d92",
  "@metamask-previews/accounts-controller": "34.0.0-preview-60778d92",
  "@metamask-previews/address-book-controller": "7.0.0-preview-60778d92",
  "@metamask-previews/announcement-controller": "8.0.0-preview-60778d92",
  "@metamask-previews/app-metadata-controller": "2.0.0-preview-60778d92",
  "@metamask-previews/approval-controller": "8.0.0-preview-60778d92",
  "@metamask-previews/assets-controllers": "86.0.0-preview-60778d92",
  "@metamask-previews/base-controller": "9.0.0-preview-60778d92",
  "@metamask-previews/bridge-controller": "58.0.0-preview-60778d92",
  "@metamask-previews/bridge-status-controller": "58.0.0-preview-60778d92",
  "@metamask-previews/build-utils": "3.0.4-preview-60778d92",
  "@metamask-previews/chain-agnostic-permission": "1.2.2-preview-60778d92",
  "@metamask-previews/composable-controller": "12.0.0-preview-60778d92",
  "@metamask-previews/controller-utils": "11.15.0-preview-60778d92",
  "@metamask-previews/core-backend": "4.0.0-preview-60778d92",
  "@metamask-previews/delegation-controller": "1.0.0-preview-60778d92",
  "@metamask-previews/earn-controller": "9.0.0-preview-60778d92",
  "@metamask-previews/eip-5792-middleware": "2.0.0-preview-60778d92",
  "@metamask-previews/eip-7702-internal-rpc-middleware": "0.1.0-preview-60778d92",
  "@metamask-previews/eip1193-permission-middleware": "1.0.2-preview-60778d92",
  "@metamask-previews/ens-controller": "18.0.0-preview-60778d92",
  "@metamask-previews/error-reporting-service": "3.0.0-preview-60778d92",
  "@metamask-previews/eth-block-tracker": "14.0.0-preview-60778d92",
  "@metamask-previews/eth-json-rpc-middleware": "21.0.0-preview-60778d92",
  "@metamask-previews/eth-json-rpc-provider": "5.0.1-preview-60778d92",
  "@metamask-previews/foundryup": "1.0.1-preview-60778d92",
  "@metamask-previews/gas-fee-controller": "25.0.0-preview-60778d92",
  "@metamask-previews/gator-permissions-controller": "0.3.0-preview-60778d92",
  "@metamask-previews/json-rpc-engine": "10.1.1-preview-60778d92",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.8-preview-60778d92",
  "@metamask-previews/keyring-controller": "24.0.0-preview-60778d92",
  "@metamask-previews/logging-controller": "7.0.0-preview-60778d92",
  "@metamask-previews/message-manager": "14.0.0-preview-60778d92",
  "@metamask-previews/messenger": "0.3.0-preview-60778d92",
  "@metamask-previews/multichain-account-service": "2.0.1-preview-60778d92",
  "@metamask-previews/multichain-api-middleware": "1.2.4-preview-60778d92",
  "@metamask-previews/multichain-network-controller": "2.0.0-preview-60778d92",
  "@metamask-previews/multichain-transactions-controller": "6.0.0-preview-60778d92",
  "@metamask-previews/name-controller": "9.0.0-preview-60778d92",
  "@metamask-previews/network-controller": "25.0.0-preview-60778d92",
  "@metamask-previews/network-enablement-controller": "3.1.0-preview-60778d92",
  "@metamask-previews/notification-services-controller": "19.0.0-preview-60778d92",
  "@metamask-previews/permission-controller": "12.1.0-preview-60778d92",
  "@metamask-previews/permission-log-controller": "5.0.0-preview-60778d92",
  "@metamask-previews/phishing-controller": "15.0.0-preview-60778d92",
  "@metamask-previews/polling-controller": "15.0.0-preview-60778d92",
  "@metamask-previews/preferences-controller": "21.0.0-preview-60778d92",
  "@metamask-previews/profile-sync-controller": "26.0.0-preview-60778d92",
  "@metamask-previews/rate-limit-controller": "7.0.0-preview-60778d92",
  "@metamask-previews/remote-feature-flag-controller": "2.0.0-preview-60778d92",
  "@metamask-previews/sample-controllers": "3.0.0-preview-60778d92",
  "@metamask-previews/seedless-onboarding-controller": "6.0.0-preview-60778d92",
  "@metamask-previews/selected-network-controller": "25.0.0-preview-60778d92",
  "@metamask-previews/shield-controller": "1.1.0-preview-60778d92",
  "@metamask-previews/signature-controller": "35.0.0-preview-60778d92",
  "@metamask-previews/subscription-controller": "3.1.0-preview-60778d92",
  "@metamask-previews/token-search-discovery-controller": "4.0.0-preview-60778d92",
  "@metamask-previews/transaction-controller": "61.1.0-preview-60778d92",
  "@metamask-previews/transaction-pay-controller": "2.0.2-preview-60778d92",
  "@metamask-previews/user-operation-controller": "40.0.0-preview-60778d92"
}

@ccharly
Copy link
Contributor Author

ccharly commented Nov 4, 2025

@metamaskbot publish-previews

@github-actions
Copy link
Contributor

github-actions bot commented Nov 4, 2025

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": "2.0.0-preview-f86a6bc4",
  "@metamask-previews/accounts-controller": "34.0.0-preview-f86a6bc4",
  "@metamask-previews/address-book-controller": "7.0.0-preview-f86a6bc4",
  "@metamask-previews/announcement-controller": "8.0.0-preview-f86a6bc4",
  "@metamask-previews/app-metadata-controller": "2.0.0-preview-f86a6bc4",
  "@metamask-previews/approval-controller": "8.0.0-preview-f86a6bc4",
  "@metamask-previews/assets-controllers": "86.0.0-preview-f86a6bc4",
  "@metamask-previews/base-controller": "9.0.0-preview-f86a6bc4",
  "@metamask-previews/bridge-controller": "58.0.0-preview-f86a6bc4",
  "@metamask-previews/bridge-status-controller": "58.0.0-preview-f86a6bc4",
  "@metamask-previews/build-utils": "3.0.4-preview-f86a6bc4",
  "@metamask-previews/chain-agnostic-permission": "1.2.2-preview-f86a6bc4",
  "@metamask-previews/composable-controller": "12.0.0-preview-f86a6bc4",
  "@metamask-previews/controller-utils": "11.15.0-preview-f86a6bc4",
  "@metamask-previews/core-backend": "4.0.0-preview-f86a6bc4",
  "@metamask-previews/delegation-controller": "1.0.0-preview-f86a6bc4",
  "@metamask-previews/earn-controller": "9.0.0-preview-f86a6bc4",
  "@metamask-previews/eip-5792-middleware": "2.0.0-preview-f86a6bc4",
  "@metamask-previews/eip-7702-internal-rpc-middleware": "0.1.0-preview-f86a6bc4",
  "@metamask-previews/eip1193-permission-middleware": "1.0.2-preview-f86a6bc4",
  "@metamask-previews/ens-controller": "18.0.0-preview-f86a6bc4",
  "@metamask-previews/error-reporting-service": "3.0.0-preview-f86a6bc4",
  "@metamask-previews/eth-block-tracker": "14.0.0-preview-f86a6bc4",
  "@metamask-previews/eth-json-rpc-middleware": "21.0.0-preview-f86a6bc4",
  "@metamask-previews/eth-json-rpc-provider": "5.0.1-preview-f86a6bc4",
  "@metamask-previews/foundryup": "1.0.1-preview-f86a6bc4",
  "@metamask-previews/gas-fee-controller": "25.0.0-preview-f86a6bc4",
  "@metamask-previews/gator-permissions-controller": "0.3.0-preview-f86a6bc4",
  "@metamask-previews/json-rpc-engine": "10.1.1-preview-f86a6bc4",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.8-preview-f86a6bc4",
  "@metamask-previews/keyring-controller": "24.0.0-preview-f86a6bc4",
  "@metamask-previews/logging-controller": "7.0.0-preview-f86a6bc4",
  "@metamask-previews/message-manager": "14.0.0-preview-f86a6bc4",
  "@metamask-previews/messenger": "0.3.0-preview-f86a6bc4",
  "@metamask-previews/multichain-account-service": "2.0.1-preview-f86a6bc4",
  "@metamask-previews/multichain-api-middleware": "1.2.4-preview-f86a6bc4",
  "@metamask-previews/multichain-network-controller": "2.0.0-preview-f86a6bc4",
  "@metamask-previews/multichain-transactions-controller": "6.0.0-preview-f86a6bc4",
  "@metamask-previews/name-controller": "9.0.0-preview-f86a6bc4",
  "@metamask-previews/network-controller": "25.0.0-preview-f86a6bc4",
  "@metamask-previews/network-enablement-controller": "3.1.0-preview-f86a6bc4",
  "@metamask-previews/notification-services-controller": "19.0.0-preview-f86a6bc4",
  "@metamask-previews/permission-controller": "12.1.0-preview-f86a6bc4",
  "@metamask-previews/permission-log-controller": "5.0.0-preview-f86a6bc4",
  "@metamask-previews/phishing-controller": "15.0.0-preview-f86a6bc4",
  "@metamask-previews/polling-controller": "15.0.0-preview-f86a6bc4",
  "@metamask-previews/preferences-controller": "21.0.0-preview-f86a6bc4",
  "@metamask-previews/profile-sync-controller": "26.0.0-preview-f86a6bc4",
  "@metamask-previews/rate-limit-controller": "7.0.0-preview-f86a6bc4",
  "@metamask-previews/remote-feature-flag-controller": "2.0.0-preview-f86a6bc4",
  "@metamask-previews/sample-controllers": "3.0.0-preview-f86a6bc4",
  "@metamask-previews/seedless-onboarding-controller": "6.0.0-preview-f86a6bc4",
  "@metamask-previews/selected-network-controller": "25.0.0-preview-f86a6bc4",
  "@metamask-previews/shield-controller": "1.1.0-preview-f86a6bc4",
  "@metamask-previews/signature-controller": "35.0.0-preview-f86a6bc4",
  "@metamask-previews/subscription-controller": "3.1.0-preview-f86a6bc4",
  "@metamask-previews/token-search-discovery-controller": "4.0.0-preview-f86a6bc4",
  "@metamask-previews/transaction-controller": "61.1.0-preview-f86a6bc4",
  "@metamask-previews/transaction-pay-controller": "2.0.2-preview-f86a6bc4",
  "@metamask-previews/user-operation-controller": "40.0.0-preview-f86a6bc4"
}

Comment on lines +257 to +262
this.messenger.subscribe(
'MultichainAccountService:multichainAccountGroupCreated',
(group) => {
this.#handleMultichainAccountWalletGroupCreatedOrUpdated(group);
},
);
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Since one should really be useful, but I added it in to avoid having another breaking change with another PR that should replace this one someday:

@ccharly ccharly marked this pull request as ready for review November 4, 2025 16:01
@ccharly ccharly requested review from a team as code owners November 4, 2025 16:01
@ccharly
Copy link
Contributor Author

ccharly commented Nov 4, 2025

@metamaskbot publish-previews

@github-actions
Copy link
Contributor

github-actions bot commented Nov 4, 2025

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": "2.0.0-preview-359767df",
  "@metamask-previews/accounts-controller": "34.0.0-preview-359767df",
  "@metamask-previews/address-book-controller": "7.0.0-preview-359767df",
  "@metamask-previews/announcement-controller": "8.0.0-preview-359767df",
  "@metamask-previews/app-metadata-controller": "2.0.0-preview-359767df",
  "@metamask-previews/approval-controller": "8.0.0-preview-359767df",
  "@metamask-previews/assets-controllers": "87.0.0-preview-359767df",
  "@metamask-previews/base-controller": "9.0.0-preview-359767df",
  "@metamask-previews/bridge-controller": "59.0.0-preview-359767df",
  "@metamask-previews/bridge-status-controller": "59.0.0-preview-359767df",
  "@metamask-previews/build-utils": "3.0.4-preview-359767df",
  "@metamask-previews/chain-agnostic-permission": "1.2.2-preview-359767df",
  "@metamask-previews/composable-controller": "12.0.0-preview-359767df",
  "@metamask-previews/controller-utils": "11.15.0-preview-359767df",
  "@metamask-previews/core-backend": "4.0.0-preview-359767df",
  "@metamask-previews/delegation-controller": "1.0.0-preview-359767df",
  "@metamask-previews/earn-controller": "9.0.0-preview-359767df",
  "@metamask-previews/eip-5792-middleware": "2.0.0-preview-359767df",
  "@metamask-previews/eip-7702-internal-rpc-middleware": "0.1.0-preview-359767df",
  "@metamask-previews/eip1193-permission-middleware": "1.0.2-preview-359767df",
  "@metamask-previews/ens-controller": "18.0.0-preview-359767df",
  "@metamask-previews/error-reporting-service": "3.0.0-preview-359767df",
  "@metamask-previews/eth-block-tracker": "14.0.0-preview-359767df",
  "@metamask-previews/eth-json-rpc-middleware": "21.0.0-preview-359767df",
  "@metamask-previews/eth-json-rpc-provider": "5.0.1-preview-359767df",
  "@metamask-previews/foundryup": "1.0.1-preview-359767df",
  "@metamask-previews/gas-fee-controller": "25.0.0-preview-359767df",
  "@metamask-previews/gator-permissions-controller": "0.3.0-preview-359767df",
  "@metamask-previews/json-rpc-engine": "10.1.1-preview-359767df",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.8-preview-359767df",
  "@metamask-previews/keyring-controller": "24.0.0-preview-359767df",
  "@metamask-previews/logging-controller": "7.0.0-preview-359767df",
  "@metamask-previews/message-manager": "14.0.0-preview-359767df",
  "@metamask-previews/messenger": "0.3.0-preview-359767df",
  "@metamask-previews/multichain-account-service": "2.1.0-preview-359767df",
  "@metamask-previews/multichain-api-middleware": "1.2.4-preview-359767df",
  "@metamask-previews/multichain-network-controller": "2.0.0-preview-359767df",
  "@metamask-previews/multichain-transactions-controller": "6.0.0-preview-359767df",
  "@metamask-previews/name-controller": "9.0.0-preview-359767df",
  "@metamask-previews/network-controller": "25.0.0-preview-359767df",
  "@metamask-previews/network-enablement-controller": "3.1.0-preview-359767df",
  "@metamask-previews/notification-services-controller": "19.0.0-preview-359767df",
  "@metamask-previews/permission-controller": "12.1.0-preview-359767df",
  "@metamask-previews/permission-log-controller": "5.0.0-preview-359767df",
  "@metamask-previews/phishing-controller": "15.0.0-preview-359767df",
  "@metamask-previews/polling-controller": "15.0.0-preview-359767df",
  "@metamask-previews/preferences-controller": "21.0.0-preview-359767df",
  "@metamask-previews/profile-sync-controller": "26.0.0-preview-359767df",
  "@metamask-previews/rate-limit-controller": "7.0.0-preview-359767df",
  "@metamask-previews/remote-feature-flag-controller": "2.0.0-preview-359767df",
  "@metamask-previews/sample-controllers": "3.0.0-preview-359767df",
  "@metamask-previews/seedless-onboarding-controller": "6.1.0-preview-359767df",
  "@metamask-previews/selected-network-controller": "25.0.0-preview-359767df",
  "@metamask-previews/shield-controller": "1.2.0-preview-359767df",
  "@metamask-previews/signature-controller": "35.0.0-preview-359767df",
  "@metamask-previews/subscription-controller": "3.2.0-preview-359767df",
  "@metamask-previews/token-search-discovery-controller": "4.0.0-preview-359767df",
  "@metamask-previews/transaction-controller": "61.1.0-preview-359767df",
  "@metamask-previews/transaction-pay-controller": "3.0.0-preview-359767df",
  "@metamask-previews/user-operation-controller": "40.0.0-preview-359767df"
}

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