Skip to content

Release 1299.0.0 - #10565

Merged
matthewwalsh0 merged 1 commit into
mainfrom
release/1299.0.0
Sep 29, 2026
Merged

matthewwalsh0 merged 1 commit into
mainfrom
release/1299.0.0

Conversation

@matthewwalsh0

@matthewwalsh0 matthewwalsh0 commented Sep 29, 2026 •

Copy link
Copy Markdown
Member

@matthewwalsh0
matthewwalsh0 marked this pull request as ready for review September 29, 2026 10:39
@matthewwalsh0
matthewwalsh0 requested review from a team as code owners September 29, 2026 10:39
@metamask-ci

metamask-ci Bot commented Sep 29, 2026

Copy link
Copy Markdown
Contributor

✅ No changelog changes needed.

@matthewwalsh0

Copy link
Copy Markdown
Member Author

@metamaskbot publish-preview

@github-actions

Copy link
Copy Markdown
Contributor

Preview builds have been published. Learn how to use preview builds in other projects.

Expand for full list of packages and versions.
@metamask-previews/account-tree-controller@11.0.0-preview-bba5d41
@metamask-previews/accounts-controller@40.0.0-preview-bba5d41
@metamask-previews/address-book-controller@8.0.0-preview-bba5d41
@metamask-previews/advanced-chart-core@1.0.0-preview-bba5d41
@metamask-previews/ai-controllers@2.0.0-preview-bba5d41
@metamask-previews/analytics-controller@3.2.0-preview-bba5d41
@metamask-previews/analytics-data-regulation-controller@0.0.0-preview-bba5d41
@metamask-previews/announcement-controller@9.0.0-preview-bba5d41
@metamask-previews/app-metadata-controller@3.0.0-preview-bba5d41
@metamask-previews/approval-controller@10.0.0-preview-bba5d41
@metamask-previews/assets-controller@17.0.0-preview-bba5d41
@metamask-previews/assets-controllers@112.0.4-preview-bba5d41
@metamask-previews/authenticated-user-storage@4.1.0-preview-bba5d41
@metamask-previews/base-controller@10.0.0-preview-bba5d41
@metamask-previews/base-data-service@2.1.0-preview-bba5d41
@metamask-previews/bitcoin-regtest-up@2.0.0-preview-bba5d41
@metamask-previews/bridge-controller@81.3.3-preview-bba5d41
@metamask-previews/bridge-status-controller@76.3.3-preview-bba5d41
@metamask-previews/build-utils@4.0.0-preview-bba5d41
@metamask-previews/chain-agnostic-permission@2.0.0-preview-bba5d41
@metamask-previews/chomp-api-service@6.0.0-preview-bba5d41
@metamask-previews/claims-controller@1.0.2-preview-bba5d41
@metamask-previews/client-controller@2.0.0-preview-bba5d41
@metamask-previews/client-utils@3.0.3-preview-bba5d41
@metamask-previews/compliance-controller@3.0.0-preview-bba5d41
@metamask-previews/composable-controller@13.0.0-preview-bba5d41
@metamask-previews/config-registry-controller@4.0.0-preview-bba5d41
@metamask-previews/connectivity-controller@1.0.0-preview-bba5d41
@metamask-previews/controller-utils@13.0.0-preview-bba5d41
@metamask-previews/core-backend@11.0.0-preview-bba5d41
@metamask-previews/cryptography@0.0.0-preview-bba5d41
@metamask-previews/delegation-controller@4.0.0-preview-bba5d41
@metamask-previews/earn-controller@13.0.2-preview-bba5d41
@metamask-previews/eip-5792-middleware@4.0.1-preview-bba5d41
@metamask-previews/eip-7702-internal-rpc-middleware@1.0.0-preview-bba5d41
@metamask-previews/eip1193-permission-middleware@3.0.0-preview-bba5d41
@metamask-previews/eth-block-tracker@16.0.0-preview-bba5d41
@metamask-previews/eth-json-rpc-middleware@25.0.0-preview-bba5d41
@metamask-previews/eth-json-rpc-provider@7.0.0-preview-bba5d41
@metamask-previews/foundryup@2.0.0-preview-bba5d41
@metamask-previews/gas-fee-controller@27.0.0-preview-bba5d41
@metamask-previews/gator-permissions-controller@6.0.1-preview-bba5d41
@metamask-previews/geolocation-controller@2.0.0-preview-bba5d41
@metamask-previews/java-tron-up@2.0.0-preview-bba5d41
@metamask-previews/json-rpc-engine@11.0.0-preview-bba5d41
@metamask-previews/json-rpc-middleware-stream@9.0.0-preview-bba5d41
@metamask-previews/keyring-controller@28.1.0-preview-bba5d41
@metamask-previews/kyc-controller@0.6.0-preview-bba5d41
@metamask-previews/local-node-utils@2.0.0-preview-bba5d41
@metamask-previews/logging-controller@10.0.0-preview-bba5d41
@metamask-previews/message-manager@15.0.0-preview-bba5d41
@metamask-previews/messenger@3.0.0-preview-bba5d41
@metamask-previews/messenger-cli@1.0.0-preview-bba5d41
@metamask-previews/money-account-api-data-service@2.1.0-preview-bba5d41
@metamask-previews/money-account-balance-service@3.1.1-preview-bba5d41
@metamask-previews/money-account-controller@2.0.0-preview-bba5d41
@metamask-previews/money-account-upgrade-controller@5.1.0-preview-bba5d41
@metamask-previews/money-account-utils@2.1.0-preview-bba5d41
@metamask-previews/multichain-account-service@14.1.0-preview-bba5d41
@metamask-previews/multichain-api-middleware@5.0.0-preview-bba5d41
@metamask-previews/multichain-network-controller@4.0.0-preview-bba5d41
@metamask-previews/multichain-transactions-controller@8.0.0-preview-bba5d41
@metamask-previews/name-controller@10.0.0-preview-bba5d41
@metamask-previews/network-connection-banner-controller@1.0.0-preview-bba5d41
@metamask-previews/network-controller@37.0.0-preview-bba5d41
@metamask-previews/network-enablement-controller@7.0.1-preview-bba5d41
@metamask-previews/notification-services-controller@29.0.2-preview-bba5d41
@metamask-previews/passkey-controller@4.1.0-preview-bba5d41
@metamask-previews/permission-controller@14.0.0-preview-bba5d41
@metamask-previews/permission-log-controller@6.0.0-preview-bba5d41
@metamask-previews/perps-controller@18.0.1-preview-bba5d41
@metamask-previews/phishing-controller@18.1.1-preview-bba5d41
@metamask-previews/platform-api-docs@0.2.1-preview-bba5d41
@metamask-previews/polling-controller@17.0.0-preview-bba5d41
@metamask-previews/preferences-controller@24.0.0-preview-bba5d41
@metamask-previews/profile-metrics-controller@5.1.2-preview-bba5d41
@metamask-previews/profile-sync-controller@33.0.0-preview-bba5d41
@metamask-previews/ramps-controller@26.0.1-preview-bba5d41
@metamask-previews/rate-limit-controller@8.0.0-preview-bba5d41
@metamask-previews/react-data-query@2.0.0-preview-bba5d41
@metamask-previews/remote-feature-flag-controller@7.0.0-preview-bba5d41
@metamask-previews/sample-controllers@6.0.0-preview-bba5d41
@metamask-previews/seedless-onboarding-controller@11.0.1-preview-bba5d41
@metamask-previews/selected-network-controller@27.0.0-preview-bba5d41
@metamask-previews/sentinel-api-service@2.0.0-preview-bba5d41
@metamask-previews/shield-controller@7.0.3-preview-bba5d41
@metamask-previews/signature-controller@40.0.0-preview-bba5d41
@metamask-previews/smart-transactions-controller@27.0.3-preview-bba5d41
@metamask-previews/snap-account-service@4.0.0-preview-bba5d41
@metamask-previews/social-controllers@3.4.0-preview-bba5d41
@metamask-previews/solana-test-validator-up@2.0.0-preview-bba5d41
@metamask-previews/stellar-quickstart-up@0.0.0-preview-bba5d41
@metamask-previews/storage-service@2.0.0-preview-bba5d41
@metamask-previews/subscription-controller@10.0.1-preview-bba5d41
@metamask-previews/transaction-controller@72.0.1-preview-bba5d41
@metamask-previews/transaction-pay-controller@30.0.0-preview-bba5d41
@metamask-previews/user-operation-controller@42.0.1-preview-bba5d41
@metamask-previews/utils@12.0.0-preview-bba5d41
@metamask-previews/wallet@15.0.1-preview-bba5d41
@metamask-previews/wallet-cli@0.0.0-preview-bba5d41

@matthewwalsh0
matthewwalsh0 added this pull request to the merge queue Sep 29, 2026
Merged via the queue into main with commit a021a8c Sep 29, 2026
54 checks passed
@matthewwalsh0
matthewwalsh0 deleted the release/1299.0.0 branch September 29, 2026 11:54
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

1 active deployment
default-branch — bba5d41e Deployed Sep 29, 2026 by matthewwalsh0 via Update changelogs #4855
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants