Skip to content

Release/1216.0.0 - #10005

Merged
amitabh94 merged 3 commits into
mainfrom
release/1216.0.0
Aug 28, 2026
Merged

Release/1216.0.0#10005
amitabh94 merged 3 commits into
mainfrom
release/1216.0.0

Conversation

@amitabh94

@amitabh94 amitabh94 commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Explanation

Releases @metamask/ramps-controller 20.1.0 to 20.2.0 so Mobile and Extension can consume the client-identity query params from #9983. The monorepo version goes 1215.0.0 to 1216.0.0.

No other package is being published. @metamask/transaction-pay-controller only tightens its workspace range to ^20.2.0 (same pattern as Release/1215.0.0). Unreleased deps of ramps-controller (base-controller, controller-utils, messenger, profile-sync-controller) are intentionally skipped — this release does not rely on those unreleased changes.

The bump is minor. The new section is additive and nothing in it is marked **BREAKING:**:

  • Added optional clientProduct and clientVersion constructor options on RampsService and TransakService, sent as clientProduct / clientVersion query params on every on-ramp API fetch so the API can evaluate version-gated feature flags per client. Identity travels in the URL (not headers) because the on-ramp CDN cache key is the URL. Also exports RampsClientIdentity, addRampsClientIdentityParams, and the param name constants (#9983).

Jira: TRAM-3828

Changelog

Updated packages/ramps-controller/CHANGELOG.md (Unreleased → 20.2.0) and recorded the workspace bump in packages/transaction-pay-controller/CHANGELOG.md.

Checklist

  • I've updated the test suite for new or updated code as appropriate
  • I've updated documentation (JSDoc) for new or updated code as appropriate
  • I've communicated my changes to consumers by updating changelogs for packages I've changed
  • No breaking changes introduced

Made with Cursor

amitabh94 and others added 2 commits August 28, 2026 10:35
@amitabh94
amitabh94 requested review from a team as code owners August 28, 2026 15:37
@amitabh94
amitabh94 deployed to default-branch August 28, 2026 15:37 — with GitHub Actions Active
Co-authored-by: Cursor <cursoragent@cursor.com>
@amitabh94 amitabh94 added the release:keep-open Prevent auto-close of inactive release/* PRs (3h) label Aug 28, 2026
@metamask-ci

metamask-ci Bot commented Aug 28, 2026

Copy link
Copy Markdown

✅ No changelog changes needed.

@amitabh94
amitabh94 enabled auto-merge August 28, 2026 16:06

@mcmire mcmire left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM.

@amitabh94
amitabh94 added this pull request to the merge queue Aug 28, 2026
Merged via the queue into main with commit fd8291b Aug 28, 2026
53 checks passed
@amitabh94
amitabh94 deleted the release/1216.0.0 branch August 28, 2026 16:32
pull Bot pushed a commit to Pe44e/metamask-extension that referenced this pull request Aug 28, 2026
…aMask#45823)

## **Description**

Wires the extension's client identity (`clientProduct:
'metamask-extension'`, `clientVersion` from
`process.env.METAMASK_VERSION`) into `RampsService`. The
ramps-controller sends these as `clientProduct`/`clientVersion` query
params so CDN cache keys vary per client, letting the on-ramp API
evaluate version-gated LaunchDarkly flags — first consumer:
`ramps-v2-fiat-soft-default`
([TRAM-3828](https://consensyssoftware.atlassian.net/browse/TRAM-3828)).

This also bumps `@metamask/ramps-controller` from `^15.0.0` to `^20.2.0`
(MetaMask/core#9983 in
[Release/1216.0.0](MetaMask/core#10005)),
adapting to the intervening breaking changes:

- **v16** — provider IDs are canonical as-is; dropped the removed
`normalizeProviderCode` in `useRampsBuildQuote`
- **v20** — `addPrecreatedOrder` requires a non-empty `chainId`; the
extension param types now require it (no production caller passes params
yet)
- v17/v18/v19 breaks don't touch extension code
(`getProviderScope`/`getDefaultRedirectUrl` unused; the messenger
spreads `RAMPS_CONTROLLER_REQUIRED_SERVICE_ACTIONS`)

Pinned to `@metamask/ramps-controller@^20.2.0` (released).

## **Changelog**

CHANGELOG entry: null

## **Related issues**

Fixes:
[TRAM-3828](https://consensyssoftware.atlassian.net/browse/TRAM-3828)

## **Manual testing steps**

1. Point the extension at the dev on-ramp API
2. Load buy quotes / regions catalog
3. Verify requests carry
`clientProduct=metamask-extension&clientVersion=<x.y.z>` query params
(no client-identity headers)

## **Screenshots/Recordings**

N/A — no UI change.

## **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)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Medium Risk**
> Large dependency jump on ramps buy/checkout paths and new required
`chainId` for precreated orders; client identity on all ramps API calls
affects backend flag rollout behavior.
> 
> **Overview**
> Wires **extension client identity** into `RampsService` via
`clientProduct: 'metamask-extension'` and `clientVersion` from
`METAMASK_VERSION`, so on-ramp API requests can carry version-gated
LaunchDarkly behavior through query params (not headers).
> 
> Upgrades **`@metamask/ramps-controller`** from `^15.0.0` to
**`^20.2.0`** and adapts to breaking changes: buy-quote checkout uses
provider IDs as-is (drops `normalizeProviderCode`), and **`chainId` is
required** on `addRampsPrecreatedOrder` / hook types. E2E fixtures and
metrics snapshots drop the removed `RampsController.countries` persisted
state.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
81a8033. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

## Demo

<div>
<a href="https://www.loom.com/share/9f913895e9bb4ccd95a3a79138566f4c">
<p>Introducing Launchdarkly flags for Ramps Backend - Watch Video</p>
    </a>
<a href="https://www.loom.com/share/9f913895e9bb4ccd95a3a79138566f4c">
<img style="max-width:300px;"
src="https://cdn.loom.com/sessions/thumbnails/9f913895e9bb4ccd95a3a79138566f4c-36a975aecd13f632-full-play.gif#t=0.1">
    </a>
  </div>

[TRAM-3828]:
https://consensyssoftware.atlassian.net/browse/TRAM-3828?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
[TRAM-3828]:
https://consensyssoftware.atlassian.net/browse/TRAM-3828?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
pull Bot pushed a commit to Reality2byte/metamask-mobile that referenced this pull request Aug 28, 2026
…aMask#35359)

## **Description**

Wires MetaMask Mobile's client identity (`clientProduct:
'metamask-mobile'`, `clientVersion` from the app's base semver) into
`RampsService` and `TransakService`. The ramps-controller sends these as
`clientProduct`/`clientVersion` query params so CDN cache keys vary per
client, letting the on-ramp API evaluate version-gated LaunchDarkly
flags — first consumer: `ramps-v2-fiat-soft-default`
([TRAM-3828](https://consensyssoftware.atlassian.net/browse/TRAM-3828)).

Depends on MetaMask/core#9983, shipped in
`@metamask/ramps-controller@20.2.0`
([Release/1216.0.0](MetaMask/core#10005)).

## **Related issues**

Fixes:
[TRAM-3828](https://consensyssoftware.atlassian.net/browse/TRAM-3828)

## **Manual testing steps**

1. Point the app at the dev on-ramp API
2. Load buy quotes / regions catalog
3. Verify requests carry
`clientProduct=metamask-mobile&clientVersion=<x.y.z>` query params (no
client-identity headers)

## **Screenshots/Recordings**

N/A — no UI change.

## **Pre-merge author checklist**

- [x] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/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-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Medium Risk**
> Changes every on-ramp/Transak API call’s query params and depends on
correct semver wiring; scope is limited to ramps init and a dependency
bump with no auth or payment logic touched.
> 
> **Overview**
> On-ramp **RampsService** and **TransakService** now receive
**`clientProduct: 'metamask-mobile'`** and **`clientVersion`** from the
app’s base semver via a shared **`getRampsClientIdentity()`** helper, so
**`@metamask/ramps-controller`** can attach them to API requests for
version-gated backend flags (e.g. fiat soft default).
> 
> **`@metamask/ramps-controller`** is bumped to **^20.2.0** to match the
controller support for these fields. Unit tests mock
**`getBaseSemVerVersion`** / **`getRampsClientIdentity`** and assert the
new constructor args.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
d165a32. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

## Demo

<div>
<a href="https://www.loom.com/share/9f913895e9bb4ccd95a3a79138566f4c">
<p>Introducing Launchdarkly flags for Ramps Backend - Watch Video</p>
    </a>
<a href="https://www.loom.com/share/9f913895e9bb4ccd95a3a79138566f4c">
<img style="max-width:300px;"
src="https://cdn.loom.com/sessions/thumbnails/9f913895e9bb4ccd95a3a79138566f4c-36a975aecd13f632-full-play.gif#t=0.1">
    </a>
  </div>

[TRAM-3828]:
https://consensyssoftware.atlassian.net/browse/TRAM-3828?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
[TRAM-3828]:
https://consensyssoftware.atlassian.net/browse/TRAM-3828?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release:keep-open Prevent auto-close of inactive release/* PRs (3h)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants