[pull] main from MetaMask:main#356
Merged
Merged
Conversation
Reverts #6680, which was created in errors and has no changes.
## Explanation Add `TransactionType` values for Predict. ## References ## Checklist - [x] I've updated the test suite for new or updated code as appropriate - [x] I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate - [x] I've communicated my changes to consumers by [updating changelogs for packages I've changed](https://github.com/MetaMask/core/tree/main/docs/contributing.md#updating-changelogs), highlighting breaking changes as necessary - [x] I've prepared draft pull requests for clients and consumer packages to resolve any breaking changes
) ## Explanation This reverts commit 1aae93d, which was accidentally released as part of v44 with a bunch of undocumented breaking changes. ## References See #6454 ## Checklist - [x] I've updated the test suite for new or updated code as appropriate - [x] I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate - [x] I've communicated my changes to consumers by [updating changelogs for packages I've changed](https://github.com/MetaMask/core/tree/main/docs/contributing.md#updating-changelogs), highlighting breaking changes as necessary - [x] I've prepared draft pull requests for clients and consumer packages to resolve any breaking changes
## Explanation This release reverts some accidental changes introduced in v44 of the two bridge controllers. It also (incidentally) includes one change to the `bridge-status-controller`. ## References N/A ## Checklist N/A
## Explanation Re-introduce proper prefixes based on the keyring types for non-HD keyrings. ## 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](https://github.com/MetaMask/core/tree/main/docs/contributing.md#updating-changelogs), highlighting breaking changes as necessary - [ ] I've prepared draft pull requests for clients and consumer packages to resolve any breaking changes
## Explanation <!-- Thanks for your contribution! Take a moment to answer these questions so that reviewers have the information they need to properly understand your changes: * What is the current state of things and why does it need to change? * What is the solution your changes offer and how does it work? * Are there any changes whose purpose might not obvious to those unfamiliar with the domain? * If your primary goal was to update one package but you found you had to update another one along the way, why did you do so? * If you had to upgrade a dependency, why did you do so? --> Release subscription controller 0.2.0 ## References <!-- Are there any issues that this pull request is tied to? Are there other links that reviewers should consult to understand these changes better? Are there client or consumer pull requests to adopt any breaking changes? For example: * Fixes #12345 * Related to #67890 --> ## Checklist - [x] I've updated the test suite for new or updated code as appropriate - [x] I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate - [x] I've communicated my changes to consumers by [updating changelogs for packages I've changed](https://github.com/MetaMask/core/tree/main/docs/contributing.md#updating-changelogs), highlighting breaking changes as necessary - [x] I've prepared draft pull requests for clients and consumer packages to resolve any breaking changes
## Explanation **What is the current state of things and why does it need to change?** The current `#onAddNetwork` behavior in `NetworkEnablementController` was inconsistent and didn't provide a good user experience: - All newly added networks were automatically enabled, regardless of context - The logic for determining "popular networks mode" required ALL popular networks to be enabled, which was impractical - Users experienced unexpected network switching when adding popular networks in multi-network scenarios **What is the solution your changes offer and how does it work?** This PR implements a more intuitive network addition behavior: 1. **Improved Popular Networks Detection**: Changed from requiring "all popular networks enabled" to ">2 popular networks enabled", making the detection much more practical and user-friendly. 2. **Context-Aware Network Addition**: - **If in popular networks mode (>2 popular networks enabled) AND adding a popular network** → Keep current selection (add but don't enable the new network) - **Otherwise** → Switch to the newly added network (disable all others, enable the new one) 3. **Key Benefits**: - When users have multiple popular networks enabled and add another popular network, their current workflow isn't disrupted - When users add non-popular networks or add networks when not in "popular mode", they get the expected behavior of switching to the new network - The popular networks threshold (>2) is much more realistic than requiring all popular networks **Are there any changes whose purpose might not obvious to those unfamiliar with the domain?** - The method rename from `#areAllPopularNetworksEnabled()` to `#isInPopularNetworksMode()` reflects the conceptual shift from checking all networks to checking if the user is in a "popular networks" usage pattern - The ">2" threshold was chosen because it indicates the user is actively using multiple popular networks (suggesting they prefer the multi-network mode) vs. having just 1-2 networks enabled ## References This change improves the user experience for network management in MetaMask by implementing more intuitive network addition behavior based on user context. ## Checklist - [x] I've updated the test suite for new or updated code as appropriate - [x] 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](https://github.com/MetaMask/core/tree/main/docs/contributing.md#updating-changelogs), highlighting breaking changes as necessary - [ ] I've prepared draft p
…hest index from account group names (#6696) ## Explanation Now allows a bit more pattern when extracting account group name index. ## 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](https://github.com/MetaMask/core/tree/main/docs/contributing.md#updating-changelogs), highlighting breaking changes as necessary - [ ] I've prepared draft pull requests for clients and consumer packages to resolve any breaking changes
…perations (#6697) ## Explanation ```md - Set the `setAccountGroupName`'s option `autoHandleConflict` to `true` for all backup & sync operations ``` <!-- Thanks for your contribution! Take a moment to answer these questions so that reviewers have the information they need to properly understand your changes: * What is the current state of things and why does it need to change? * What is the solution your changes offer and how does it work? * Are there any changes whose purpose might not obvious to those unfamiliar with the domain? * If your primary goal was to update one package but you found you had to update another one along the way, why did you do so? * If you had to upgrade a dependency, why did you do so? --> ## References <!-- Are there any issues that this pull request is tied to? Are there other links that reviewers should consult to understand these changes better? Are there client or consumer pull requests to adopt any breaking changes? For example: * Fixes #12345 * Related to #67890 --> ## Checklist - [x] I've updated the test suite for new or updated code as appropriate - [x] I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate - [x] I've communicated my changes to consumers by [updating changelogs for packages I've changed](https://github.com/MetaMask/core/tree/main/docs/contributing.md#updating-changelogs), highlighting breaking changes as necessary - [ ] I've prepared draft pull requests for clients and consumer packages to resolve any breaking changes
Reverts #6695 because it was using the wrong format for the PR title, so it didn't trigger a release
Releases of: - `SubscriptionController` 0.2.0 - `AccountTreeController` 1.1.0, which includes: * Various fixes for account group names * Auto-conflict resolution for account group names with backup & sync
## Explanation Uniswap reported a bug in slack [here](https://consensys.slack.com/archives/C017NBJL1S7/p1758234734587359?thread_ts=1752698865.023109&cid=C017NBJL1S7) where MetaMask was unpermitting any EVM connections for a dapp if that dapp used the solana wallet standard provider to make a connect request and then cancelled it. This call to `disconnect()` is happening outside of our packages and is not related to a previous but similar bug where our own wallet-standard provider was calling `wallet_revokeSession` when receiving an empty solana `accountsChanged` event. To fix this, this PR proposes an implementation for partial permission revoking in the `wallet_revokeSession` handler so that we can then update our solana `wallet-standard` provider to only revoke the solana scopes when it is asked to disconnect. <!-- Thanks for your contribution! Take a moment to answer these questions so that reviewers have the information they need to properly understand your changes: * What is the current state of things and why does it need to change? * What is the solution your changes offer and how does it work? * Are there any changes whose purpose might not obvious to those unfamiliar with the domain? * If your primary goal was to update one package but you found you had to update another one along the way, why did you do so? * If you had to upgrade a dependency, why did you do so? --> ## References <!-- Are there any issues that this pull request is tied to? Are there other links that reviewers should consult to understand these changes better? Are there client or consumer pull requests to adopt any breaking changes? For example: * Fixes #12345 * Related to #67890 --> * Fixes [#728](https://consensyssoftware.atlassian.net/browse/WAPI-728) ## Checklist - [x] I've updated the test suite for new or updated code as appropriate - [x] I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate - [x] I've communicated my changes to consumers by [updating changelogs for packages I've changed](https://github.com/MetaMask/core/tree/main/docs/contributing.md#updating-changelogs), highlighting breaking changes as necessary - [x] I've prepared draft pull requests for clients and consumer packages to resolve any breaking changes --------- Co-authored-by: Alex Donesky <adonesky@gmail.com>
## Explanation Release for `@metamask/multichain-api-middleware` - Add partial permission revoke into `wallet_revokeSession` ([#6668](#6668)) - Bump `@metamask/chain-agnostic-permission` from `1.0.0` to `1.1.1` ([#6241](#6241), [#6345](#6241)) - Bump `@metamask/controller-utils` from `^11.10.0` to `^11.14.0` ([#6069](#6069), [#6303](#6303), [#6620](#6620), [#6629](#6629)) - Bump `@metamask/network-controller` from `^24.0.0` to `^24.2.0` ([#6148](#6148), [#6303](#6303), [#6678](#6678)) - Bump `@metamask/utils` from `^11.2.0` to `^11.4.2` ([#6054](#6054)) - Bump `@metamask/utils` from `^11.4.2` to `^11.8.0` ([#6588](#6588)) - Bump `@metamask/json-rpc-engine` from `^10.0.3` to `^10.1.0` ([#6678](#6678)) <!-- Thanks for your contribution! Take a moment to answer these questions so that reviewers have the information they need to properly understand your changes: * What is the current state of things and why does it need to change? * What is the solution your changes offer and how does it work? * Are there any changes whose purpose might not obvious to those unfamiliar with the domain? * If your primary goal was to update one package but you found you had to update another one along the way, why did you do so? * If you had to upgrade a dependency, why did you do so? --> ## References <!-- Are there any issues that this pull request is tied to? Are there other links that reviewers should consult to understand these changes better? Are there client or consumer pull requests to adopt any breaking changes? For example: * Fixes #12345 * Related to #67890 --> * Fixes https://consensyssoftware.atlassian.net/browse/WAPI-728 ## Checklist - [x] I've updated the test suite for new or updated code as appropriate - [x] I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate - [x] I've communicated my changes to consumers by [updating changelogs for packages I've changed](https://github.com/MetaMask/core/tree/main/docs/contributing.md#updating-changelogs), highlighting breaking changes as necessary - [x] I've prepared draft pull requests for clients and consumer packages to resolve any breaking changes
pull Bot
pushed a commit
that referenced
this pull request
Oct 16, 2025
`@metamask/network-controller` now contains an `RpcService` class. Using this class not only allows us to remove a lot of code from this package, as it incorporates the vast majority of logic contained in `createFetchMiddleware`, including the retry logic, but it also allows us to use the circuit breaker pattern and the exponential backoff pattern to prevent too many retries if the network is unreliable, and then automatically cut over to a failover node when the network truly goes down. Closes #356. Closes #207. Closes #209. Closes #211. Closes #166.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )