fix(account-tree-controller)!: automatically removes "outdated" accounts from multichain account groups
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:
- https://github.com/MetaMask/core/pull/6646
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
createMultichainAccountGroupto 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:allacross packages and relax Yarn constraints; reorderbuild:docswhere needed.- Pin
@ts-bridge/clito^0.6.1; updateyarn.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 3c46556c4a2d645b3dc474dde061aa544ab8c728. This will update automatically on new commits. Configure here.
@metamaskbot publish-previews
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"
}
@metamaskbot publish-previews
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"
}
@metamaskbot publish-previews
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"
}
@metamaskbot publish-previews
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"
}