Release 1299.0.0 - #10565
Merged
Merged
Release 1299.0.0#10565
Conversation
matthewwalsh0
marked this pull request as ready for review
September 29, 2026 10:39
matthewwalsh0
enabled auto-merge
September 29, 2026 10:40
Contributor
|
✅ No changelog changes needed. |
Member
Author
|
@metamaskbot publish-preview |
Contributor
|
Preview builds have been published. Learn how to use preview builds in other projects. Expand for full list of packages and versions. |
jpuri
approved these changes
Sep 29, 2026
pull Bot
pushed a commit
to Reality2byte/metamask-mobile
that referenced
this pull request
Sep 29, 2026
…etaMask#36889) ## Description Bumps `transaction-pay-controller` to `^30.0.0` ([MetaMask/core#10461](MetaMask/core#10461), released in [MetaMask/core#10565](MetaMask/core#10565)), which reads token metadata, balances, and prices straight from `AssetsController` rather than the legacy projection assembled from five separate controllers. The messenger now delegates `AccountsController:getState` and `AssetsController:getState` in place of the `AccountTrackerController`, `CurrencyRateController`, `TokenBalancesController`, `TokenRatesController`, and `TokensController` reads that backed `AssetsController:getStateForTransactionPay`. It also delegates `AssetsController:stateChange`, which the controller now subscribes to in place of the separate per-controller asset state events. ### Dependencies No resolutions are needed: main already declares the versions the controller requires (`accounts-controller` ^40, `assets-controller` ^17, `ramps-controller` ^26.0.1), so adopting it introduces no duplicate `@metamask` packages. ## Checklist - [x] Typecheck clean (only pre-existing failures from the gitignored generated `termsOfUseContent`) - [x] Messenger action union verified to resolve to its 33 real actions rather than `any` - [x] 701 Pay-related tests pass across 52 suites <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Medium Risk** > MetaMask Pay now depends on a single AssetsController surface for balances, rates, and tokens; regressions could affect pay estimates or fiat flows if asset state diverges from the old multi-controller projection. > > **Overview** > Upgrades **`@metamask/transaction-pay-controller`** to **^30.0.0** and aligns the mobile **`TransactionPayController`** messenger with the new asset data path. > > **Messenger delegation** now wires **`AccountsController:getState`** and **`AssetsController:getState`** plus **`AssetsController:stateChange`**, instead of the previous bundle (`AccountTrackerController`, `CurrencyRateController`, `TokenBalancesController`, `TokenRatesController`, `TokensController`, and **`AssetsController:getStateForTransactionPay`**). A unit test asserts those **`AssetsController`** action and event delegations. > > Lockfile changes follow the bumped controller and its transitive deps (e.g. **`assets-controller` ^17**, **`ramps-controller` ^26**). > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit ab14eb2. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY -->
pull Bot
pushed a commit
to firas9941/metamask-extension
that referenced
this pull request
Sep 30, 2026
…etaMask#46706) ## **Description** Bumps `transaction-pay-controller` to `^30.0.0` ([MetaMask/core#10461](MetaMask/core#10461), released in [MetaMask/core#10565](MetaMask/core#10565)), which reads token metadata, balances, and prices straight from `AssetsController` rather than the legacy projection assembled from five separate controllers. The messenger now delegates `AccountsController:getState` and `AssetsController:getState` in place of the `AccountTrackerController`, `CurrencyRateController`, `TokenBalancesController`, `TokenRatesController`, and `TokensController` reads that backed `AssetsController:getStateForTransactionPay`. The controller now subscribes only to `AssetsController:stateChange` (already delegated), so the `CurrencyRateController`, `TokenRatesController`, and `TokensController` state events are dropped. ### Why `ramps-controller` is bumped Extension was three majors behind, so this also absorbs the v29 Ramps `getQuotes` -> `getQuoteWithFees` rename. `ramps-controller` is bumped to `^26.0.1` and its `^22` resolution removed. Bumping only Pay leaves that resolution forcing it onto `ramps-controller` 22, which has no `getQuoteWithFees`: - At runtime, the fiat strategy's `RampsController:getQuoteWithFees` call fails. - At compile time, the import sits in a `.d.ts`, so `skipLibCheck` resolves it to `any`. That collapses the UI messenger's action union to plain `string`, surfacing only as two `Unused '@ts-expect-error'` errors in `ui-messenger.test.ts`. Ramps 26's own breaking change adds `KycController:getProviderFlowStatus` to `RAMPS_CONTROLLER_REQUIRED_CONTROLLER_ACTIONS`. It is only called on the VBA onboarding path, like the existing `KycController` actions extension already delegates via that constant, so no wiring changes are needed. No other dependencies or resolutions change. Pay declares `accounts-controller` `^40.0.0`, but extension's existing `^39.1.0` resolution is kept: 40.0.0 only drops CommonJS and bumps Node/ES targets, with no API change. ## **Changelog** CHANGELOG entry: null ## **Related issues** Depends on: MetaMask/core#10461, released in MetaMask/core#10565 as 30.0.0 ## **Manual testing steps** 1. Run the extension and open a Pay confirmation (deposit or withdraw). 2. Verify the payment token list shows correct balances and fiat values. 3. Switch the payment token and verify the quote and fees update. 4. Verify a token with a zero balance still appears with the correct metadata. ## **Screenshots/Recordings** N/A — no visual change; this is an internal state-source refactor. ## **Pre-merge author checklist** - [x] I've followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Extension Coding Standards](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability. - [x] I've included tests if applicable. - [x] I've documented my code using [JSDoc](https://jsdoc.app/) format if applicable. - [x] I've applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
This branch was successfully deployed
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Major release of
@metamask/transaction-pay-controller.Adoption PRs