Skip to content

Conversation

@metamaskbot
Copy link
Collaborator

@metamaskbot metamaskbot commented Nov 20, 2025

This PR syncs the stable branch to main for version 13.11.0.

Synchronization Process:

  • Fetches the latest changes from the remote repository
  • Resets the branch to match the stable branch
  • Attempts to merge changes from main into the branch
  • Handles merge conflicts if they occur

File Preservation:

Preserves specific files from the stable branch:

  • CHANGELOG.md
  • bitrise.yml
  • android/app/build.gradle
  • ios/MetaMask.xcodeproj/project.pbxproj
  • package.json

Indicates the next version candidate of main to 13.11.0


Note

Updates CHANGELOG.md with the full 13.10.0 release notes and adjusts compare links.

  • Docs:
    • Updates CHANGELOG.md with the new 13.10.0 section.
      • Highlights: Shield UX/metrics updates, Tron support (swaps/bridge), sidepanel introduction, claims controller integration, tokens list virtualization, platform notifications, auto account upgrade, Snap auto-updates.
      • Numerous fixes across Shield flows, subscriptions, confirmations, UI polish, deeplinks, and performance.
    • Updates compare links: [Unreleased] now compares from v13.10.0; adds [13.10.0] link.

Written by Cursor Bugbot for commit ae91841. This will update automatically on new commits. Configure here.

metamaskbot and others added 23 commits November 14, 2025 06:58
This PR updates the change log for 13.10.0. (Hotfix - no test plan
generated.)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Updates CHANGELOG with 13.10.0 Added/Fixed entries and adjusts compare
links.
> 
> - **Changelog**:
> - Add `13.10.0` section with key additions (Shield UI/metrics,
sidepanel, Tron support incl. swaps/bridge, Snaps auto-update, tokens
list virtualization) and fixes (Shield, onboarding, subscriptions,
UI/UX, performance).
> - Update `[Unreleased]` compare to start from `v13.10.0` and add
`[13.10.0]` compare link.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
c6514b2. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: metamaskbot <[email protected]>
Co-authored-by: Gauthier Petetin <[email protected]>
… events cp-13.10.0 (#37840)

- feat: shield cohort and priority support events cp-13.10.0 (#37822)

<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->
This PR adds new events tracking for the segment ~
- `Shield Eligibility Cohort Assigned`
- `Shield Eligibility Cohort Timeout`
- `Shield Priority Support Clicked` 

[![Open in GitHub

Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/37822?quickstart=1)

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: added new events for shield eligibility and priority
support

## **Related issues**

Fixes:

## **Manual testing steps**

1. Go to this page...
2.
3.

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->

## **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**

- [x] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [x] 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]
> Adds Shield metrics events (cohort assigned/timeout, priority support
clicked, error-state clicked) and integrates tracking across toasts,
global menu, settings, and cohort flow; updates constants and e2e mocks.
> 
> - **Metrics/Analytics**
> - Add new events in `MetaMetricsEventName`:
`ShieldPrioritySupportClicked`, `ShieldEligibilityCohortAssigned`,
`ShieldEligibilityCohortTimeout`, `ShieldErrorStateClicked`.
> - Extend `useSubscriptionMetrics` with
`captureShieldEligibilityCohortEvent`,
`captureCommonExistingShieldSubscriptionEvents`, and
`captureShieldErrorStateClickedEvent`; use shared formatter in `utils`.
> - **UI Integrations**
> - `ui/components/app/toast-master/toast-master.js`:
`ShieldPausedToast` now tracks error-state CTA/dismiss with payment
context.
> - `ui/components/multichain/global-menu/global-menu.tsx`: Track
`ShieldPrioritySupportClicked` when support is clicked and priority tag
is shown.
> - `ui/pages/settings/transaction-shield-tab/transaction-shield.tsx`:
Track error-state CTA from banner; reuse common tracker for billing
history open and payment method updated.
> - `ui/contexts/shield/shield-subscription.tsx`: On cohort
assignment/timeout, emit corresponding events and gate assignment by
`modalType`.
> - **Constants**
> - Add `ShieldErrorStateActionClickedEnum`,
`ShieldErrorStateLocationEnum`, `ShieldErrorStateViewEnum` in
`shared/constants/subscriptions.ts`.
> - **Tests/Mocks**
> - Update eligibility mocks to include `modalType` and cohort fields in
`test/e2e/mock-e2e.js` and `shield-entry-modal.spec.ts`.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
3138e53. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->


[b99a059](b99a059)

---------

Co-authored-by: Lwin <[email protected]>
Co-authored-by: MetaMask Bot <[email protected]>
Co-authored-by: Gauthier Petetin <[email protected]>
…10.0 (#37856)

- fix: JIRA-759, 760, 765, 754, 756 cp-13.10.0 (#37848)

<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

In this PR, Updated Transaction Shield UI Bugs.

Jira Link: 
- https://consensyssoftware.atlassian.net/browse/SUBS-759
- https://consensyssoftware.atlassian.net/browse/SUBS-760
- https://consensyssoftware.atlassian.net/browse/SUBS-765
- https://consensyssoftware.atlassian.net/browse/SUBS-754
- https://consensyssoftware.atlassian.net/browse/SUBS-756


Figma Link: 
-

https://www.figma.com/design/HTAO1SrmixV4ppv7qIvLoa/Metamask-Transaction-Shield?node-id=14740-209891&m=dev
-

https://www.figma.com/design/agblIyQvyxSoqGMjQDAPBK/Transaction-Shield?node-id=277-14&p=f&t=apuyU6XgEuw694p7-0

[![Open in GitHub

Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/37722?quickstart=1)

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: Used feature flag to only show this change when
sidepanel flag is enabled for chrome. Updated button on wallet creation
successful page from 'Done' to 'Open wallet'.

## **Related issues**

Fixes:

## **Manual testing steps**

1. Open extension
2. Create wallet and validate Transaction Shield from settings. 

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->

<img width="382" height="938" alt="Screenshot 2025-11-14 at 3 58 50 PM"

src="https://github.com/user-attachments/assets/b709385d-4179-49da-8c85-56d591594761"
/>
![Uploading Screenshot 2025-11-14 at 4.45.54 PM.png…]()


## **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**

- [x] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [x] 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]
> Replaces the shield entry modal animation with a static image, updates
Transaction Shield copy, improves responsive layouts (settings, claims,
plan), and adds light-theme styling for inactive membership.
> 
> - **UI/UX**:
> - **Shield Entry Modal**: Replace animated illustration with static
image `transaction-shield-modal.png`; add responsive title sizing and
full-height layout; new `shield-entry-modal-sheild-image` styles.
> - **Settings > Transaction Shield**: Add light-theme inactive
membership style via
`transaction-shield-page__membership--inactive-light` using
`--shield-membership-inactive-light`.
> - **Settings Layout (mobile)**: Make `settings-page__content__modules`
flex column with scroll on small screens and in
`settings-page--selected`.
> - **Claims Form**: Adjust padding; remove sub-descriptions under
personal/incident sections; minor heading spacing.
> - **Shield Plan**: Add plan card padding/gap tweaks and responsive
price font size.
> - **Localization**:
> - Update titles: `shieldTxDetails1Title` to "Up to $10,000 transaction
protection"; `shieldTxMembershipBillingDetailsViewBillingHistory` to
"Manage billing".
> - Remove unused descriptions: `shieldClaimIncidentDetailsDescription`,
`shieldClaimPersonalDetailsDescription` (en and en_GB).
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
d6e68ff. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->


[238a703](238a703)

Co-authored-by: Ganesh Suresh Patra <[email protected]>
Co-authored-by: Gauthier Petetin <[email protected]>
…or msgs cp-13.10.0 (#37859)

- chore: update Shield copywriting and error msgs cp-13.10.0 (#37829)

<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

This PR updates 
- Shield confirmation msgs, copywriting
- add marketing deep link for shield
- Fixes confirmation release blocker introduced by side panel changes
[here](#37778)
- Enables shield flag in all builds
- Fixes paused state subscription release blocker 


[![Open in GitHub

Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/37829?quickstart=1)

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: update Shield confirmation msgs

## **Related issues**

Fixes:

## **Manual testing steps**

1. Go to this page...
2.
3.

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->
<img width="489" height="949" alt="Screenshot 2025-11-14 at 2 10 26 PM"

src="https://github.com/user-attachments/assets/14db38bc-5f9f-440e-8ff7-c5b9533764f1"
/>

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->

## **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**

- [x] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [x] 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]
> Refreshes Transaction Shield copy and paused-state UX, adds deep link
to show the entry modal, refactors metrics/events (incl. approval tx
type), adjusts crypto approval flow, and enables Shield across builds.
> 
> - **Localization**:
> - Replace “membership” with “plan”; revise paused/payment/error
strings; add granular paused states; tweak pricing tooltip and savings;
mirror in `en_GB`; minor removals in `ga`.
> - **Deep Links / Settings**:
> - Add `showShieldEntryModal` query param; route `/shield` to
`SETTINGS_ROUTE` to show entry modal or to `SHIELD_PLAN_ROUTE`
otherwise.
> - Settings page reads param to auto-open Shield entry modal or
navigate to Shield tab.
> - **UI/UX (Shield)**:
> - Toast and Settings banner now tailor paused messages/actions by
payment method (card/crypto/unexpected); new support action.
> - Payment method row shows contextual tooltips/actions; renew banner
copy updated.
>   - Billing details uses design-system color prop.
> - **Metrics/Tracking**:
> - Add `TransactionType.shieldSubscriptionApprove` to direct mappings.
> - Introduce `getShieldCommonTrackingProps`; standardize event props
across Shield metrics.
> - Replace generic error-state event with `Shield Membership Error
State Clicked`.
> - Move subscription restart request tracking to UI hook; remove
backend restart tracking helper.
> - **Subscription Flow**:
> - Crypto approval: navigate to confirm only after approval appears
(pending confirmation check).
> - Add restart (uncancel) tracking; add “Contact support” handler with
user identifiers in link.
> - **Build Config**:
> - Set `METAMASK_SHIELD_ENABLED` to `true` globally; clean up sidepanel
env entry.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
1d4936f. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: hieu-w <[email protected]>
Co-authored-by: Nguyen Anh Tu <[email protected]>
Co-authored-by: Chaitanya Potti <[email protected]>
[9df6889](9df6889)

Co-authored-by: Lwin <[email protected]>
Co-authored-by: hieu-w <[email protected]>
Co-authored-by: Nguyen Anh Tu <[email protected]>
Co-authored-by: Chaitanya Potti <[email protected]>
Co-authored-by: Gauthier Petetin <[email protected]>
- fix: shield-cta cp-13.10.0 (#37860)

<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

- Fix payment method select card if no crypto available between plan
change
- Fix copy text in confirmation tooltip and start now button

[![Open in GitHub

Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/37860?quickstart=1)

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: null

## **Related issues**

Fixes:

## **Manual testing steps**

1. Go to this page...
2.
3.

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->

## **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**

- [x] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [x] 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]
> Show “Start free trial” for untrialed Shield approvals, default
payment method to card when appropriate, and correct monthly tooltip
text; add i18n key and update tests.
> 
> - **Confirmations Footer (`ui/pages/.../footer.tsx`)**:
> - Dynamic CTA for `shieldSubscriptionApprove`: shows
`shieldStartNowCTAWithTrial` if Shield not trialed, otherwise
`shieldStartNowCTA`.
> - Integrates `useUserSubscriptions` and `PRODUCT_TYPES` to determine
trial state.
> - **Shield Plan (`ui/pages/shield-plan/shield-plan.tsx`)**:
> - Ensures payment method defaults to `card` when no eligible crypto
token/selection, improving plan-switch behavior.
> - **Shield Subscription Approve Info (`.../estimated-changes.tsx`)**:
> - Fixes monthly tooltip arguments order to display monthly and total
correctly.
> - **i18n (`app/_locales/en*.json`)**:
>   - Adds `shieldStartNowCTAWithTrial` message.
> - **Tests (`.../footer.test.tsx`)**:
> - Mocks `useUserSubscriptions` and updates snapshots/expectations
accordingly.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
b985a51. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->


[d89e04b](d89e04b)

Co-authored-by: Nguyen Anh Tu <[email protected]>
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

One off PR on release/13.10 to disable tron on main and keep it
experimental

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

[![Open in GitHub
Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/37862?quickstart=1)

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: null

## **Related issues**

Fixes:

## **Manual testing steps**

1. Go to this page...
2.
3.

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->

## **Pre-merge author checklist**

- [ ] 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).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] 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]
> Disables Tron in the main build and wraps Tron account discovery code
behind the tron feature flag.
> 
> - **Build**:
> - Remove `tron` feature from `builds.yml` `buildTypes.main.features`
to disable Tron in the main build.
> - **Controller** (`app/scripts/metamask-controller.js`):
> - Wrap Tron account type usage in `getDiscoveryCountByProvider` with
`ONLY_INCLUDE_IF(tron)` fences, making Tron discovery counting
conditional on the tron feature.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
882b05a. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: Gauthier Petetin <[email protected]>
…37867)

- feat: added sidepanel icon (#37777)

This PR is to add sidepanel/popup icon to the DS component library.

It also fixes an edge case with the Advanced Settings `Show extension in
full-size view` button where users who have turned sidepanel on after
enabling this will see sidepanel by default.

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry:null

## **Related issues**

Fixes:

[https://consensyssoftware.atlassian.net/browse/CEUX-684](https://consensyssoftware.atlassian.net/browse/CEUX-684)
)
## **Manual testing steps**

1. In storybook, check sidepanel icon
2. Go to popup view or sidepanel and check the icon in global menu

## **Screenshots/Recordings**
### **Before**

NA

### **After**
<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->
![Screenshot 2025-11-13 at 4 36

06 PM](https://github.com/user-attachments/assets/127b771a-a5e8-4521-a508-ffa0afbf71d2)


![Screenshot 2025-11-13 at 10 10

04 PM](https://github.com/user-attachments/assets/d214efc2-2817-42ab-acf9-5e4ba1e307d7)


## **Pre-merge author checklist**

- [ ] 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).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] 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]
> Adds popup/sidepanel icons and updates the global menu toggle to
switch views with correct icons; also enables “open full-size” from
sidepanel.
> 
> - **Icons**:
>   - Add `popup.svg` and `sidepanel.svg` in `app/images/icons/`.
> - Extend `IconName` enum with `Popup` and `Sidepanel` in
`ui/components/component-library/icon/icon.types.ts`.
> - **Global Menu**
(`ui/components/multichain/global-menu/global-menu.tsx`):
>   - New separator after notifications.
> - Replace toggle menu item to switch default view between
popup/sidepanel:
> - Uses `IconName.Popup` or `IconName.Sidepanel` based on
`isSidePanelDefault`.
>     - Updates tracking payload `to` based on new default.
> - Calls `toggleDefaultView()` and closes current view when
appropriate.
> - **Routing** (`ui/pages/routes/routes.component.tsx`):
> - Extend `showExtensionInFullSizeView` behavior to trigger from both
`ENVIRONMENT_TYPE_POPUP` and `ENVIRONMENT_TYPE_SIDEPANEL`.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
5e3963e. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: ameliejyc <[email protected]>
[9793ca4](9793ca4)

Co-authored-by: Nidhi Kumari <[email protected]>
Co-authored-by: ameliejyc <[email protected]>
Co-authored-by: Gauthier Petetin <[email protected]>
- fix: cp-13.10.0 bump bitcoin (#37906)

<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

Updates bitcoin to 1.6.0, which updates from and to fields in the
confirmation modal.

[![Open in GitHub

Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/37906?quickstart=1)

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: Added `from` and `to` to send confirmation view
([#563](MetaMask/snap-bitcoin-wallet#563))

## **Related issues**

Fixes: [Send - Bitcoin - When I perform a Bitcoin Send I can't see the
Recipient address in the last confirmation screen, and missleading
Account field
#37845](#37845)

## **Manual testing steps**

1. Go to this page...
2.
3.

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->

## **Pre-merge author checklist**

- [ ] 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).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] 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]
> Bumps `@metamask/bitcoin-wallet-snap` dependency to 1.6.0.
> 
> - **Dependencies**:
> - Update `@metamask/bitcoin-wallet-snap` from `^1.5.0` to `^1.6.0` in
`package.json` and `yarn.lock`.
> - **Attributions**:
>   - Reflect version change to `1.6.0` in `attribution.txt`.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
23c209e. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->


[eadd65b](eadd65b)

---------

Co-authored-by: Fred <[email protected]>
Co-authored-by: MetaMask Bot <[email protected]>
…7940)

- chore: Fix audit advisory cp-13.10.0 (#37938)

## **Description**

The audit advisory about `glob` has been addressed up updating impacted
versions to v10.5.0, which fixes the issue. The advisory had to be
suppressed as well because the range hasn't been updated since this
backport was published.

[![Open in GitHub

Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/37938?quickstart=1)

## **Changelog**

CHANGELOG entry: null

## **Related issues**

N/A

## **Manual testing steps**

N/A

## **Screenshots/Recordings**

N/A

## **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]
> Forces glob to v10.5.0 across the project and adds an audit ignore for
the pending advisory; updates lockfile accordingly.
> 
> - **Security/Audit**:
> - Add ignore for `glob` advisory `GHSA-5j98-mcp5-4vw2` (`1109809`) in
`.yarnrc.yml`.
> - **Dependencies**:
> - Force `glob` to `10.5.0` (remove `10.4.x`), updating `yarn.lock`
entries.
> - Add `"addons-linter/glob": "^10.5.0"` to `resolutions` in
`package.json`.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
8d0357e. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->


[48dc4d2](48dc4d2)

Co-authored-by: Mark Stacey <[email protected]>
…f264d839ec26c` cp-13.10.0 (#37918)

- fix: Revert `6286882567a0520732be6d70f5af264d839ec26c` (#37898)

<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

This PR reverts
#37778 as it
introduced regression on sidepanel.

[![Open in GitHub

Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/37898?quickstart=1)

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry:

## **Related issues**

Fixes:

https://consensyssoftware.atlassian.net/browse/CEUX-701?atlOrigin=eyJpIjoiZmQ4YjE2NmQ5M2E1NGQ0ZWE3MDA4NzEwZTNhMDZiNDkiLCJwIjoiaiJ9

## **Manual testing steps**

1. Go to this page...
2.
3.

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->

## **Pre-merge author checklist**

- [ ] 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).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] 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]
> Make confirm footer actions await async flows, route addEthereumChain
to home, remove side-panel-based redirect, and update tests accordingly.
> 
> - **Confirmations UI**:
> - **Footer (`footer.tsx`)**: Make `onSubmit`/`handleFooterCancel`
async; await `onAddEthereumChain`, `onTransactionConfirm`, and
`resolvePendingApproval`; navigate to `DEFAULT_ROUTE` for
`wallet_addEthereumChain`, otherwise
`navigateNext(currentConfirmation.id)`; integrate `useHistory` and keep
state resets.
> - **Confirm Actions (`useConfirmActions.ts`)**: Make
`rejectApproval`/`onCancel` async and await `rejectPendingApproval`;
keep transaction state reset.
> - **Confirm Transaction (`confirm-transaction.component.js`)**:
> - Remove side-panel-based redirect logic; no longer checks
`useSidePanelEnabled` or pending approvals to redirect.
> - **Tests (`footer.test.tsx`)**:
> - Add async handling with `waitFor` and thunk-capable mocked
`dispatch`; mock hooks (`useAddEthereumChain`, `useTransactionConfirm`,
navigation) and update expectations for async Confirm/Cancel flows and
navigation.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
a4062f5. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->


[00e1006](00e1006)

---------

Co-authored-by: OGPoyraz <[email protected]>
Co-authored-by: Gauthier Petetin <[email protected]>
Co-authored-by: MetaMask Bot <[email protected]>
… (reading 'to') cp-13.10.0 (#37942)

- fix: Cannot read properties of undefined (reading 'to') cp-13.10.0
(#37910)

## **Description**
Fixes this issue: Cannot read properties of undefined (reading 'to')

## **Changelog**

CHANGELOG entry: null

## **Related issues**

Fixes: #37786

## **Manual testing steps**

Install 13.10.0 main build

Connect to [Polymarket](https://polymarket.com/) or
[Magiceden](https://magiceden.io/)

Notice error

Connect to test dapp

Trigger any signature request

Notice error

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->

## **Pre-merge author checklist**

- [ ] 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).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] 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]
> Safely access `txParams?.to` in `useIsGaslessSupported` to avoid
undefined property errors when determining 7702 support.
> 
> - **Confirmations UI**
> - **Gasless support hook**
(`ui/pages/confirmations/hooks/gas/useIsGaslessSupported.ts`): use
`transactionMeta?.txParams?.to` when checking 7702 eligibility to
prevent undefined access errors.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
a1f55ee. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

Signed-off-by: dan437 <[email protected]>
[0d170d3](0d170d3)

Signed-off-by: dan437 <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: Gauthier Petetin <[email protected]>
…7947)

- fix: menu height overflow cp-13.10.0 (#37915)

## **Description**

Allow the main menu to scroll when height > viewport height

Without this, the user can't navigate to the item down the list because
scrolling will hide it

[![Open in GitHub

Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/37915?quickstart=1)

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: fix: menu height overflow

## **Related issues**

Fixes: https://consensyssoftware.atlassian.net/browse/CEUX-710

## **Manual testing steps**

1. Shorten the window height
2. Open sidepanel or full view

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<img width="238" height="439" alt="image"

src="https://github.com/user-attachments/assets/0abbad1d-8b8a-49cc-8852-87b7d2d74ceb"
/>


## **Pre-merge author checklist**

- [ ] 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).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] 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]
> Makes the global menu scrollable within the viewport and replaces
hardcoded header heights with the --header-height CSS variable.
> 
> - **UI**
> - **Global menu
(`ui/components/multichain/global-menu/global-menu.tsx`)**:
> - Constrains popover with `maxHeight: calc(100vh -
var(--header-height))` and enables scrolling via `overflow-y-auto`.
>   - **App header (`ui/components/multichain/app-header/index.scss`)**:
>     - Replaces hardcoded `68px` heights with `var(--header-height)`.
>   - **Base styles (`ui/css/base-styles.scss`)**:
>     - Defines `--header-height: 68px` CSS variable.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
68cac86. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->


[7631e92](7631e92)

Co-authored-by: Francis Nepomuceno <[email protected]>
…flow cp-13.10.0 (#37949)

- fix: crash when clicking away from swap flow cp-13.10.0 (#37922)

<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

Adds additional typesafety in an assets selector used in the swap/bridge
experience to fix a crash.

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

[![Open in GitHub

Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/37922?quickstart=1)

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: null

## **Related issues**

Fixes: #37877

## **Manual testing steps**

1. Go to the swaps page on an imported account
2. Click away from the metamask popup
3. No crash should be observed

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->

## **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]
> Adds a null-check in `getMultichainNativeTokenBalance` to return a
zero-balance fallback when no selected account exists, preventing a
crash.
> 
> - **Selectors**
> - Add null guard in
`ui/selectors/assets.ts#getMultichainNativeTokenBalance` to return
`zeroBalanceAssetFallback` when `selectedAccountAddress` is absent,
avoiding crashes during swap/bridge flow.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
244cfb1. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->


[8594207](8594207)

Co-authored-by: hunty <[email protected]>
- chore: bump core-backend to 4.1.0 (#37902)

<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

[![Open in GitHub

Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/37902?quickstart=1)

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: None - dependency bump

## **Related issues**

Fixes:

## **Manual testing steps**

1. Go to this page...
2.
3.

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->

## **Pre-merge author checklist**

- [ ] 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).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] 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]
> Bumps `@metamask/core-backend` to 4.1.0 and removes explicit
timeout/reconnect options from `BackendWebSocketServiceInit` with
matching test updates.
> 
> - **Core backend init**:
> - Simplifies `BackendWebSocketServiceInit` by removing explicit
`timeout`, `reconnectDelay`, `maxReconnectDelay`, and `requestTimeout`
options; relies on defaults.
> - Updates test `backend-websocket-service-init.test.ts` to stop
asserting removed options.
> - **Dependencies**:
>   - Upgrades `@metamask/core-backend` from `^4.0.0` to `^4.1.0`.
> - **Attribution**:
> - Updates `@metamask/core-backend` version reference in
`attribution.txt`.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
37ce8e4. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->


[dfc804e](dfc804e)

---------

Co-authored-by: Christian Tran <[email protected]>
Co-authored-by: MetaMask Bot <[email protected]>
…0.0 (#37953)

- fix: styling of hover components cp-13.10.0 (#37792)

<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

This PR fixes the styles in `MultichainHoveredAddressRowsList` and
`MultichainAggregatedAddressListRow`

Reference to the figma:

https://www.figma.com/design/8u9mhomOTy9wsqvrT1aH1G?node-id=1545-5318&m=dev#1510995440

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

[![Open in GitHub

Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/37792?quickstart=1)

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: fix styling in `MultichainHoveredAddressRowsList` and
`MultichainAggregatedAddressListRow`
components

## **Related issues**

Related to:

https://consensyssoftware.atlassian.net/browse/MUL-1226?atlOrigin=eyJpIjoiNWRmZTYxYzEyOTI1NDQ1YWE2NTA1OGU0OTA3MGM5NzMiLCJwIjoiaiJ9

## **Manual testing steps**

1. Go to the wallet home
2. Hover over the network icons
3. Hover over a row and see that it is a pointer.

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**
<img width="992" height="660" alt="Screenshot 2025-11-13 at 21 31 21"

src="https://github.com/user-attachments/assets/09c34e13-5eb5-4a26-84ff-224b055ed10e"
/>



<!-- [screenshots/recordings] -->

## **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]
> Polishes multichain hover list styling and behavior: row-click copy
with success state, smaller network avatars with limit, popover/header
tweaks, and aligned tests.
> 
> - **UI/UX**:
> - **Aggregated Row (`multichain-aggregated-address-row`)**: Row is now
clickable for copy; adds hover/success color states, pointer cursor,
tighter gaps, fixed height, and right-aligned truncated address with
icon; replaces `ButtonIcon` with `Icon`.
> - **Network Avatars (`MultichainAccountNetworkGroup`)**: Uses
`AvatarTokenSize.Xs`, enforces avatar `limit` via `.slice(0, limit)`,
and sets row alignment via `Box` props.
> - **Hover Popover (`MultichainHoveredAddressRowsList`)**: Reduces
`hoverCloseDelay` to 50ms, adds popover `offset`, updates header
typography and balance color.
> - **Tests**:
> - Update selectors/expectations for new class/test IDs, row-click copy
behavior, avatar queries, and hover trigger usage across related specs.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
0f5e648. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: Owen Craston <[email protected]>
[35d0d22](35d0d22)

Co-authored-by: Monte Lai <[email protected]>
Co-authored-by: Owen Craston <[email protected]>
Co-authored-by: Gauthier Petetin <[email protected]>
….0 (#37962)

- fix: checksummed address copied cp-13.10.0 (#37939)

<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

This PR fixes the issue where the address being copied is not being the
checksummed version.

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

[![Open in GitHub

Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/37939?quickstart=1)

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: Fix a bug that was not copying the checksummed address

## **Related issues**

Fixes:

## **Manual testing steps**

1. Go to the wallet
2. Hover over the network icon
3. Click a row
4. See that the copied value is the checksummed address

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

No visual change.

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->

## **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]
> Ensures the multichain hover address list copies a checksummed EVM
address and updates tests to assert the checksummed value.
> 
> - **Frontend**
> - `multichain-hovered-address-rows-hovered-list.tsx`: Use
`normalizeSafeAddress` when invoking copy, ensuring checksummed address
is copied; add import.
> - **Tests**
> - `multichain-hovered-address-rows-hovered-list.test.tsx`: Update EVM
mock address and expectations to checksummed form; adjust IDs to match;
remove mock dependency on address normalizer.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
c3d076c. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

Co-authored-by: Owen Craston <[email protected]>
[e2a2da5](e2a2da5)

Co-authored-by: Monte Lai <[email protected]>
Co-authored-by: Owen Craston <[email protected]>
…deep link to redirect to /prediction-markets (#37973)

- fix(predict): cp-13.10.0 Update predict deep link to redirect to
/prediction-markets (#37907)

# Pull Request Description

## **Description**

This PR adds a deep link handler for the Predict page, enabling
redirection from `https://link.metamask.io/predict` to
`https://metamask.io/prediction-markets` with query parameter
preservation.



https://github.com/user-attachments/assets/eeb114aa-2b2e-4f9c-bb94-46bd68fca626

## **Changelog**

CHANGELOG entry: Update Predict deeplink handler

## **Related issues**

Fixes:

## **Manual testing steps**

1. Go to `https://link.metamask.io/predict`
2. Should be routed to `https://metamask.io/prediction-markets`
3. Test with query parameters:
`https://link.metamask.io/predict?param=value`
4. Verify parameters are preserved in the redirect:
`https://metamask.io/prediction-markets?param=value`

## **Screenshots/Recordings**

### **Before**

N/A - New feature

### **After**

N/A - Redirect functionality (no UI changes)

## **Pre-merge author checklist**

- [x] I've followed MetaMask Contributor Docs and MetaMask Extension
Coding Standards.
- [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 format if applicable
- [x] I've applied the right labels on the PR (see labeling guidelines).
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.

---

## **Technical Details**

### Files Changed

1. **`shared/lib/deep-links/routes/predict.ts`** (modified)
   - Route handler for `/predict` path
   - Redirects to `https://metamask.io/prediction-markets`
   - Preserves all query parameters from original URL

2. **`test/e2e/tests/deep-link/deep-link.spec.ts`** (modified)
   - Updated E2E test: `handles /predict route redirect`
   - Tests both signed and unsigned deep link flows
   - Verifies redirect to `https://metamask.io/prediction-markets`

3. **`app/_locales/en/messages.json`** (modified)
   - Updated `deepLink_thePredictPage` localization key
   - Message: "the prediction markets page"

4. **`app/_locales/en_GB/messages.json`** (modified)
   - Updated `deepLink_thePredictPage` localization key
   - Message: "the prediction markets page"

### Implementation Pattern

This implementation follows the same pattern as the existing perps deep
link handler (PR #35817):

- Uses the `Route` class with pathname, title, and handler
- Leverages `BaseUrl.MetaMask` constant for redirect target
- Preserves query parameters using `URLSearchParams`
- Includes comprehensive E2E test coverage

### Test Coverage

The E2E test verifies:
- ✅ Signed deep link flow redirects correctly
- ✅ Unsigned deep link flow redirects correctly
- ✅ Target URL matches expected `https://metamask.io/prediction-markets`
- ✅ User can access the page after authentication

## **Notes for Reviewers**

- This is a straightforward deep link redirect similar to the perps
handler
- No new dependencies added
- No breaking changes
- Query parameters are preserved in the redirect
- Localization keys follow existing naming convention


<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Redirects the `/predict` deep link to `metamask.io/prediction-markets`
(with params preserved) and updates copy and E2E checks.
> 
> - **Deep links**:
> - Update `shared/lib/deep-links/routes/predict.ts` to redirect from
`BaseUrl.MetaMask + /prediction-markets` for pathname `/predict`;
preserves query params.
> - **Tests**:
> - Adjust E2E `test/e2e/tests/deep-link/deep-link.spec.ts` to expect
`.../prediction-markets` for both signed and unsigned `/predict` flows.
> - **Localization**:
> - Change `deepLink_thePredictPage` message in
`app/_locales/en/messages.json` and `app/_locales/en_GB/messages.json`
to "the prediction markets page".
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
2f0cec8. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->


[e627234](e627234)

Co-authored-by: Andre Pimenta <[email protected]>
- chore: menu item text cp-13.10.0 (#37916)

## **Description**

Removes the "MetaMask Extension" subtitle in the Open full screen menu
item

[![Open in GitHub

Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/37916?quickstart=1)

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: fix: open full screen text

## **Related issues**

Fixes: https://consensyssoftware.atlassian.net/browse/CEUX-684

## **Manual testing steps**

Open main menu, observe Open full screen item

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<img width="234" height="53" alt="image"

src="https://github.com/user-attachments/assets/84123d29-6225-4b15-9fc4-1652ecae5971"
/>


### **After**

<img width="233" height="46" alt="image"

src="https://github.com/user-attachments/assets/1e1d6278-3cc2-409a-9df1-b8e1b6b0ad9c"
/>


## **Pre-merge author checklist**

- [ ] 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).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] 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]
> Removes the “MetaMask Extension” subtitle from the Global Menu’s “Open
full screen” item and deletes the unused `metamaskExtension` i18n key.
> 
> - **UI**:
> - `ui/components/multichain/global-menu/global-menu.tsx`: Remove
subtitle under `openFullScreen` menu item; item now shows only
`t('openFullScreen')`.
> - **i18n**:
> - Delete `metamaskExtension` key from `app/_locales/en/messages.json`
and `app/_locales/en_GB/messages.json`.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
6f65b2d. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->


[20f49e6](20f49e6)

Co-authored-by: Francis Nepomuceno <[email protected]>
…p-13.10.0 (#37986)

- fix: added support link to unlock page (#37967)

<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

[![Open in GitHub

Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/37967?quickstart=1)

In this PR, we have enabled the MetaMask Support link in unlock page.

Jira Link: https://consensyssoftware.atlassian.net/browse/SL-329

Figma Link:

https://www.figma.com/design/pViOUcmjwhEzFsdrwknpNc/Onboarding-Redesign?node-id=18656-27472&m=dev


## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: added the support link back in unlock page.

## **Related issues**

Fixes:

## **Manual testing steps**

1. Open Extension
2. Create Wallet
3. Lock the app
4. Validate changes in unlock page.
5.

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

<img width="1728" height="1007" alt="Screenshot 2025-11-19 at 1 06
31 PM"

src="https://github.com/user-attachments/assets/9dbf610c-1d7a-4aad-9a9f-de52bc23a71a"
/>


### **After**

<!-- [screenshots/recordings] -->

<img width="385" height="1002" alt="Screenshot 2025-11-19 at 12 51
52 PM"

src="https://github.com/user-attachments/assets/8172d54e-09d1-4eb7-ae85-b0b56fa9f1fc"
/>
<img width="381" height="994" alt="Screenshot 2025-11-19 at 12 52 07 PM"

src="https://github.com/user-attachments/assets/c29c2a40-dc66-402b-9812-63e008d116f2"
/>
<img width="498" height="761" alt="Screenshot 2025-11-19 at 12 52 37 PM"

src="https://github.com/user-attachments/assets/58f4cd6e-89c0-46b1-8b48-44fcf5f90c40"
/>
<img width="494" height="647" alt="Screenshot 2025-11-19 at 12 53 04 PM"

src="https://github.com/user-attachments/assets/69b15d7f-ff87-4d6d-b9cc-02d2f3379ff4"
/>
<img width="1727" height="987" alt="Screenshot 2025-11-19 at 12 53
20 PM"

src="https://github.com/user-attachments/assets/1eeabfae-30c7-4dd0-8090-0701eb8cba88"
/>
<img width="1722" height="1031" alt="Screenshot 2025-11-19 at 12 53
38 PM"

src="https://github.com/user-attachments/assets/e5eea7ee-d609-4956-b397-a29b75e74e93"
/>


## **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**

- [x] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [x] 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]
> Adds a help/support link to the unlock page and tweaks horizontal logo
spacing with a popup-specific style, wiring `isPopup` from container to
component.
> 
> - **Unlock Page UI** (`ui/pages/unlock-page/unlock-page.component.js`)
> - Add persistent "Need help?" text with link to `SUPPORT_LINK` and
tracking.
> - Reduce "Forgot password?" button bottom margin (`marginBottom` 6 →
4).
> - Apply popup-specific class to `MetaFoxHorizontalLogo` when `isPopup`
is true.
>   - Add `isPopup` to `PropTypes`.
> - **Styling** (`ui/pages/unlock-page/index.scss`)
> - Decrease `unlock-page__mascot-container__horizontal-logo`
margin-bottom (60px → 24px) and add `--popup` modifier (margin-bottom:
0).
> - **Container** (`ui/pages/unlock-page/unlock-page.container.js`)
> - Determine `isPopup` via `getEnvironmentType()` and pass to
component; reuse for restore-in-browser logic.
> - **Tests** (`__snapshots__/unlock-page.test.js.snap`)
> - Update snapshot to reflect new help text/link, spacing changes, and
logo class.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
477688e. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: Lwin <[email protected]>
[355e33f](355e33f)

Co-authored-by: Ganesh Suresh Patra <[email protected]>
Co-authored-by: Lwin <[email protected]>
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

Update 13.10.0 changelog based on new cherry-picks

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

[![Open in GitHub
Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/38050?quickstart=1)

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: null

## **Related issues**

Fixes:

## **Manual testing steps**

1. Go to this page...
2.
3.

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->

## **Pre-merge author checklist**

- [ ] 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).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] 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]
> Adds Shield eligibility and error-state metrics with UI/flow updates,
refines multichain address UX and deep-linking, and bumps key
dependencies with build/config tweaks.
> 
> - **Shield (metrics + UX)**:
> - Metrics: add `ShieldPrioritySupportClicked`,
`ShieldEligibilityCohort{Assigned,Timeout}`, common tracking props
(`getShieldCommonTrackingProps`), error-state clicked events; refactor
existing events to use common props.
> - Eligibility: cohort assignment/timeout tracking in
`ui/contexts/shield`; e2e mocks include eligibility payload.
> - UI: paused toast now contextual (card/crypto) with tracking; entry
modal uses static image, responsive styles; settings banner/error
actions improved; support link action includes user IDs; CTA text
reflects trial status.
> - Deep link: `/shield` accepts `showShieldEntryModal=true` to open
settings and modal.
> - **Deep Links**:
> - Redirect `/predict` → `/prediction-markets`; export
`SETTINGS_ROUTE`.
> - **Multichain accounts (UI/behavior)**:
> - Network group avatars size/limit and alignment tweaks; hovered list
row renamed/styled; clicking row copies address (tests updated); header
uses `--header-height` CSS var.
> - **Confirmations/Navigation**:
> - Make cancel/submit flows async-safe, navigate appropriately (incl.
addEthereumChain → default route); gasless check null-safe;
sidepanel/popup open-in-browser handling; global menu adds
popup/sidepanel toggle and priority support tracking.
> - **Settings/Unlock UX**:
> - Mobile settings layout scroll fixes; unlock page spacing and
persistent “Need help?” support link; shield plan and claim form
spacing/responsiveness.
> - **Icons/Constants**:
>   - Add `Popup`, `Sidepanel` icons; new Shield enums and constants.
> - **Tests/Mocks**:
> - Update deep-link expectations, Shield entry modal/hovered
list/confirm footer tests; add subscription eligibility mock.
> - **Build/Config**:
> - Enable `METAMASK_SHIELD_ENABLED` by default; adjust build features
(remove `tron` from `main`); sidepanel env var cleanup.
> - **Dependencies**:
> - Bump `@metamask/bitcoin-wallet-snap` to `^1.6.0`,
`@metamask/core-backend` to `^4.1.0`; add `addons-linter/glob@^10.5.0`;
lockfile updates.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
fdcbb3b. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
@github-actions
Copy link
Contributor

CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.

@metamaskbot metamaskbot added the team-bots Bot team (for MetaMask Bot, Runway Bot, etc.) label Nov 20, 2025
@metamaskbot
Copy link
Collaborator Author

Builds ready [ae91841]
UI Startup Metrics (1209 ± 102 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12091057163010212671363
load102688813899610861168
domContentLoaded102088513829510811158
domInteractive231496171967
firstPaint53580137341510161139
backgroundConnect2081932338212222
firstReactRender29195483245
getState361776124262
initialActions108113
loadScripts819680117694885951
setupStore1274551321
numNetworkReqs1257720572
BrowserifyPower User HomeuiStartup17971479265226619572451
load94282915801629451408
domContentLoaded92681715711609211383
domInteractive31151653323130
firstPaint63013915123659021327
backgroundConnect20018223012208222
firstReactRender78481321585110
getState18013434343198292
initialActions103112
loadScripts74363513791567371186
setupStore1695072030
numNetworkReqs987020833104189
WebpackStandard HomeuiStartup798725106269819969
load60755382562616771
domContentLoaded60255081961612765
domInteractive2413103182176
firstPaint25198769169261613
backgroundConnect1153471428
firstReactRender28194253237
getState291481113748
initialActions104112
loadScripts59954880959610755
setupStore1152641317
numNetworkReqs1257720571
WebpackPower User HomeuiStartup14001087267224415051936
load6585701402134669985
domContentLoaded6485651387133654976
domInteractive35162314028146
firstPaint26591998186273643
backgroundConnect1565791832
firstReactRender8047118128894
getState15112227628157213
initialActions103112
loadScripts6455631372130652968
setupStore23964143354
numNetworkReqs1527230652186282
FirefoxBrowserifyStandard HomeuiStartup12851104163911113591525
load107694512788211391230
domContentLoaded107594112738211381224
domInteractive64312163886140
firstPaint------
backgroundConnect3920168214383
firstReactRender23185352334
getState96434916
initialActions103122
loadScripts105292712557911161199
setupStore145194221052
numNetworkReqs1156615655
BrowserifyPower User HomeuiStartup25051780367931727383081
load1146923166717011861523
domContentLoaded1145920166717011851523
domInteractive14633652133149479
firstPaint------
backgroundConnect17926925186208681
firstReactRender84441301695117
getState19478839198162780
initialActions3110227
loadScripts1105906163416411391496
setupStore121675619397738
numNetworkReqs97582204496213
WebpackStandard HomeuiStartup14861311181711115331777
load1255108514658313051420
domContentLoaded1255108514658313051420
domInteractive68282193887130
firstPaint------
backgroundConnect43171972744112
firstReactRender29215453240
getState147130151349
initialActions102122
loadScripts1230106914037712831377
setupStore14779141245
numNetworkReqs1256917664
WebpackPower User HomeuiStartup28532141369734231013474
load14091106196121615991827
domContentLoaded14081106196121615981827
domInteractive13229589132137500
firstPaint------
backgroundConnect18129799190239631
firstReactRender83391522092122
getState27785880270264841
initialActions318237
loadScripts13661086189320715141809
setupStore896759117115336
numNetworkReqs1006822241100195
📊 Page Load Benchmark Results

Current Commit: ae91841 | Date: 11/20/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.06s (±43ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 739ms (±39ms) 🟢 | historical mean value: 727ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 80ms (±11ms) 🟢 | historical mean value: 79ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.06s 43ms 1.03s 1.35s 1.08s 1.35s
domContentLoaded 739ms 39ms 717ms 1.01s 755ms 1.01s
firstPaint 80ms 11ms 64ms 176ms 92ms 176ms
firstContentfulPaint 80ms 11ms 64ms 176ms 92ms 176ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 53 Bytes (0%)
  • ui: 0 Bytes (0%)
  • common: 20 Bytes (0%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size-S team-bots Bot team (for MetaMask Bot, Runway Bot, etc.)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants