Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Version v12.14.0 RC #30617

Draft
wants to merge 143 commits into
base: master
Choose a base branch
from
Draft

Version v12.14.0 RC #30617

wants to merge 143 commits into from

Conversation

metamaskbot
Copy link
Collaborator

@metamaskbot metamaskbot commented Feb 27, 2025

🚀 v12.14.0 Testing & Release Quality Process

Hi Team,
We’re kicking off the testing and validation for v12.14.0 builds. As part of our new MetaMask Release Quality Process, here’s a quick overview of the key processes, testing strategies, and milestones to ensure a smooth and high-quality deployment.

📋 Key Processes

Testing Strategy

Review Changes: Refer to the Release Tracker for v12.14.0

  • Developer Teams:
    Conduct regression and exploratory testing for your functional areas, including automated and manual tests for critical workflows.

  • QA Team:
    Focus on exploratory testing across the wallet, prioritize high-impact areas, and triage any Sentry errors found during testing.

  • Customer Success Team:
    Validate new functionalities and provide feedback to support release monitoring.

GitHub Signoff

  • Each team must sign off on the Release Candidate (RC) via GitHub by the end of the validation timeline (Tuesday EOD PT).

  • Ensure all tests outlined in the Testing Plan are executed, and any identified issues are addressed.

Issue Resolution

  • Resolve all Release Blockers by next Tuesday EOD PT.

  • For unresolved blockers, PRs may be reverted, or feature flags disabled to maintain release quality and timelines.

Cherry-Picking Criteria

  • Only critical fixes meeting outlined criteria will be cherry-picked.
  • Developers must ensure these fixes are thoroughly reviewed, tested, and merged by next Tuesday EOD PT.

✅ Signoff Checklist

Each team is responsible for signing off via GitHub. Use the checkbox below to track signoff completion:

  • Accounts
  • Assets
  • Confirmations
  • Design System
  • Extension Platform
  • Identity
  • MMI
  • QA
  • Snaps Platform
  • Solana
  • Swaps and Bridge
  • Transactions
  • Wallet API Platform
  • Wallet Framework
  • Wallet UX

This process is a major step forward in ensuring release stability and quality. Let’s stay aligned and make this release a success! 🚀

Feel free to reach out if you have questions or need clarification.

Many thanks in advance!

salimtb and others added 30 commits February 14, 2025 10:10
<!--
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/30211?quickstart=1)

## **Related issues**

Fixes: #30149 

## **Manual testing steps**

1. Go to dapp ( sushi swap for instance )
2. switch network
3. check the list of tokens

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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


https://github.com/user-attachments/assets/14760fbf-f8ad-4753-867b-478822a37bd0



## **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.
… setting is off` antipattern (#30318)

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

The specs on
`/home/circleci/project/test/e2e/tests/settings/account-token-list.spec.js`
are failing due to a race condition on the assertion, due to an
anti-pattern, of looking for the element and then asserting its inner
value, instead of looking for the selector with the expected inner
value.

See more about this anti-ṕattern here:
#19870


https://app.circleci.com/pipelines/github/MetaMask/metamask-extension/124349/workflows/041da71b-8190-4d7a-b158-5de69e28a0ef/jobs/4547966/tests#failed-test-0


![Screenshot from 2025-02-14
12-23-07](https://github.com/user-attachments/assets/e1224de3-7e31-4863-a427-2ec12428116e)

![Screenshot from 2025-02-14
12-23-23](https://github.com/user-attachments/assets/9ff8a3c7-3bd1-43ea-98b8-40adfe39386f)

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

## **Related issues**

Fixes:

## **Manual testing steps**

1. Check ci

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

Bumps `@metamask/api-specs` to `^0.10.15`

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

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

---------

Co-authored-by: MetaMask Bot <[email protected]>
## **Description**

Bump `@metamask/assets-controllers` to v49

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

## **Related issues**

Fixes: #30247

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

---------

Co-authored-by: MetaMask Bot <[email protected]>
Co-authored-by: António Regadas <[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**

<!--
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 is a lock-only change to update `express` to a version higher than
`4.19.2`, according to this security advisory:
https://github.com/MetaMask/metamask-extension/security/dependabot/157

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

## **Related issues**

Related: MetaMask/core#4847

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

---------

Co-authored-by: MetaMask Bot <[email protected]>
Co-authored-by: Elliot Winkler <[email protected]>
#29833)

- update text in _locales json
- update Snapshot in `ui/pages/settings/advanced-tab`

<!--
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 content in Advanced Settings for BSC in the STX section to read:
"Turn on Smart Transactions for more reliable and secure transactions on
Ethereum Mainnet and BNB Smart Chain."

## **Related issues**

N/A

## **Manual testing steps**

1. Load Extension from feature branch
2. Go to Settings > Advanced > Smart Transactions section
3. Ensure that text reads:
- "Turn on Smart Transactions for more reliable and secure transactions
on Ethereum Mainnet and BNB Smart Chain."
  instead of:
- "Turn on Smart Transactions for more reliable and secure transactions
on Ethereum Mainnet"

## **Screenshots/Recordings**

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

### **Before & After**

<img width="200" alt="stx_before"
src="https://github.com/user-attachments/assets/32e87b4e-0c14-478e-b2c8-f1b1e920c3dc"
/>

<img width="200" alt="stx_after"
src="https://github.com/user-attachments/assets/458cc292-13b9-477c-875a-828d969e405f"
/>

## **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.
… decimals (#29990)

<!--
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/29990?quickstart=1)

## **Related issues**

Fixes:  https://consensyssoftware.atlassian.net/browse/MMS-1840

## **Manual testing steps**

1. Select optimism USDC as src token
2. Select Polygon USDC as destination
3. Type in 10.0000007
4. Quotes should be fetched
5. Try typing/pasting in other invalid inputs like `1abc,.` or `.1.1.1`
6. Input field should only reflect valid parts of the amount

## **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
- [ ] 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.
…ponent and story) (#30282)

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

new account picker component and child components for solana crosschain
swaps

integration blocked by dependencies, separate integration PR will come
in the future, probably next week, to add it to the prepare-bridge page.

<!--
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/30282?quickstart=1)

## **Related issues**

Fixes:

https://consensyssoftware.atlassian.net/browse/MMS-1872

## **Manual testing steps**

Not relevant. Only on storybook for now. Component is not rendered
anywhere in the app.

## **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.
…#30301)

## **Description**

This adds the missing controller names to `ControllersToInitialize`,
types might need an update later has they don't fully support not having
an `initMessenger`.

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

## **Related issues**

## **Manual testing steps**

## **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.
…github action and skip validation for RC (#30295)

<!--
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**
Before, we skipped performing the `git-diff` operation in cases where
the PR was not targetting the default branch or when there was the
`skip-e2e-quality-gate` label.
However, now we still need to perform the git-diff, as the artifacts are
consumed not only by the e2e quality gate, but also by the Page Object
Model validation github action, and it could be consumed by more jobs in
the future.
So, no matter if we want to skip the e2e quality gate, we still perform
the git diff.

This PR adds the base PR and the labels into the PR info file artifact,
so we can then read it to check if we want to skip the e2e quality gate.
And it performs the git diff (uploading the diff artifacts and PR info)
always, to be accessible from other jobs.

It also skips the POM validation on PRs which don't target `main`.

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

## **Related issues**

Fixes:

## **Manual testing steps**

- [check ci
artifacts](https://circleci-tasks-prod.s3.us-east-1.amazonaws.com/storage/artifacts/fb281712-ea41-446f-b28f-c0bea18842cc/04b7f9bd-6353-43e1-b2a8-5104e5286774/0/changed-files/pr-body.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Checksum-Mode=ENABLED&X-Amz-Credential=ASIAQVFQINEOMLWNSGNO%2F20250214%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250214T115938Z&X-Amz-Expires=60&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEAQaCXVzLWVhc3QtMSJGMEQCIEmPY58AcRhJG3dQ3CcB6ERDkKb4h2gNAg7fBwZFpSOFAiB5N6qFA6r3IrEy71Ui2oPWLoXgmE4S34%2BjEQNEIHutFSqrAggtEAMaDDA0NTQ2NjgwNjU1NiIMUb0tACexmFZ3iwsaKogCr3iQRTTjeXNKC6ulWvBSVzpS9aN5TbYa9z6bU2H4Ys7iWZjGZI20MMMG1CiKu5J81j4m%2B5rKWEBsLRQZm1tXzntGjFHNLtBL2ZVlnNOw4m%2Bm2vVY1wy4a5r%2BSzFDYLnYgoBQsLxLH7a0A2bJbY4ju0f7L9lrA4M9nTPuNZhxPm5fznfaVnn%2FZbls9tDc%2F9EEyeuqyOwSUZM2uMSYMBkyCe3uy4A8k1aUB0HF7R6GDAb4v0vSpEZWCQSndPHMOwBTF9TrARAQX1gnm56B4Z5sznG3OjbrBHzWxhKcSxgmGB3dNPkiuZTmq7fZfr7cIGVBW1qUmSgVYI7WFZAe5P8jJUFtcbKQu3T8MLzfvL0GOp4B8CjFmdpcotJQy3iXkxyFvI1pYeXegpbcBReO2IiCuE01Y%2BorBw0%2BujIBkXWQUUN1JGJpetzgkJQEvILxa077MBz%2BVLJJz9krXTCDJlznFTs2cy8oY63FNi6Nd%2B%2Ban5LG6i3L4rzHRpNJMvqMZ92cusI56eKYg314ESdFIXtQh6e29fiUS9NMES48WljZsdETT%2BTw5YB%2FJiOzxFkZJGE%3D&X-Amz-SignedHeaders=host&x-id=GetObject&X-Amz-Signature=429e0beaffdf34cf408ac746ac6353f4aef3d5505fa6c888842c5ab7fa32135a)
for PR info: now pr info has the PR labels as well as the PR base

- Git diff is performed no matter if I have applied the
`skip-e2e-quality-gate` label





## **Screenshots/Recordings**
See PR label and base added in the top of PR info artifact


![Screenshot from 2025-02-14
11-48-19](https://github.com/user-attachments/assets/f55e1e41-ae6d-4b3a-b2d7-0cbec6b8e68f)


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

---------

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
<!--
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**
Fix "Segment User Traits sends identify event when user opts in both
metrics and data in privacy settings after opting out during
onboarding". The detailed log can be find in ci
https://app.circleci.com/pipelines/github/MetaMask/metamask-extension/123710/workflows/7819ab4b-9730-43a2-b231-b2ca9d30a036/jobs/4542393/tests.

The reason is in original test, we toggle "participate in metametrics"
and then immediately "Data collection for marketing", there's a race
condition that the segment request is sent before 2nd toggle, hence when
we assert the events after 2nd toggle we would get different response
back.

The fix is to remove "participate in metametrics" toggle, lucky for us,
when we toggle "Data collection for marketing", the first one will be
toggled on too. So we can guarantee the event is captured with only 1
click.


<!--
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/30346?quickstart=1)

## **Related issues**

Fixes: #30190

## **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**
The report of running the test locally 20 times, failed on attempt no.14

[before.txt](https://github.com/user-attachments/files/18807136/before.txt)
<!-- [screenshots/recordings] -->

### **After**
The report of running the test locally 50 times, all success

[after.txt](https://github.com/user-attachments/files/18807132/after.txt)
<!-- [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.
<!--
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**

- Add Unichain ID: 130
- Add Network logo for Unichain and Unichain Sepolia
- Use ETH Token Logo for Unichain and Unichain Sepolia

<!--
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/30234?quickstart=1)

## **Related issues**

Fixes:N/A

## **Manual testing steps**

1. Go to app.uniswap.org
2. Connect w/ Metamask
3. Open In-App Wallet Settings in the right hand menu
4. Enable Unichain Beta
5. Attempt to Swap on Unichain Mainnet
6. Add Unichain to Metamask Networks

## **Screenshots/Recordings**

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

### **Before**

<img width="400" alt="Screenshot 2025-02-10 at 14 00 31"
src="https://github.com/user-attachments/assets/de3b61d3-96d9-4583-87c3-71c8c18fb484"
/>



### **After**

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

<img width="398" alt="Screenshot 2025-02-10 at 14 03 57"
src="https://github.com/user-attachments/assets/80647d44-a495-45fe-b667-5223c323cec9"
/>



## **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
- [ ] 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.
…30291)

<!--
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 aims to integrate the new multichainAssetsRatesControllers into
the extension. To achieve this, an upgrade of the assets controller to
version 49 is required. As a result, the target branch is set
accordingly:
[MetaMask PR
#30250](#30250).

<!--
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/30291?quickstart=1)

## **Related issues**

Fixes:

## **Manual testing steps**

1. open a flask build and add a solana account
2. check if the polling for the rates is running

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

---------

Co-authored-by: sahar-fehri <[email protected]>
Co-authored-by: MetaMask Bot <[email protected]>
Co-authored-by: António Regadas <[email protected]>
Co-authored-by: Guillaume Roux <[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**

<!--
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/30375?quickstart=1)

Context here:
https://consensys.slack.com/archives/C1L7H42BT/p1739789037475089

## **Related issues**

Fixes: MetaMask/MetaMask-planning#4220

## **Manual testing steps**

1. yarn audit passes CI

## **Screenshots/Recordings**

Not applicable

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

---------

Co-authored-by: MetaMask Bot <[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**
The purpose of this PR is to review and align the currency list with the
options available in our price API. If a user has already chosen a
currency that no longer appears in the updated list, they will be
automatically migrated to USD.

<!--
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/30324?quickstart=1)

## **Related issues**

Fixes:

## **Manual testing steps**

1. Go to main and choose any currency not available on the new list
2. Switch the branch
3. you should see usd

## **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="1595" alt="Screenshot 2025-02-14 at 16 05 05"
src="https://github.com/user-attachments/assets/20dad4cd-be99-4256-8320-3fa2b8cb901e"
/>




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

We need to do the same thing we did for balances, but this time for
transactions, in order to get them at the very first account bootstrap.

## **Related issues**

Fixes:

## **Manual testing steps**

1. Checkout this branch and run `yarn`
2. Update the file `shared/lib/accounts/solana-wallet-snap.ts` with:
`export const SOLANA_WALLET_SNAP_ID: SnapId =
'local:http://localhost:8080' as SnapId;`
3. Update the filtering code in MultichainTransactionsController under
node modules to return transactions for devnet, currently only returns
for mainnet. It's under
`node_modules/@metamask/multichain-transactions-controller/dist/MultichainTransactionsController.mjs`
and
`node_modules/@metamask/multichain-transactions-controller/dist/MultichainTransactionsController.cjs`
with:
```
MultichainNetwork.SolanaDevnet
instead of
MultichainNetwork.Solana

```
4. Run the extension with `yarn start:flask`
5. Run the Snap: https://github.com/MetaMask/snap-solana-wallet
    - Clone it
    - Run `yarn`
    - Run `yarn start`
6. Go to http://localhost:3000/
7. Install the Snap
8. In the extension, go to the Settings > Experimental > Enable Solana
account
9. Import a Solana account that has transactions already
10. Check that the transactions display in the activity tab
11. Thats it! 🎉
## **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.
<!--
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/29773?quickstart=1)

## **Related issues**

Fixes: MetaMask/MetaMask-planning#3940

## **Manual testing steps**

1. Go to the test dapp
2. Perform transactions and signatures in the section `PPOM - Malicious
Transactions and Signatures`
3. Test one previous supported chain and another chain outside the list
below:

```
// previous supported chains
ARBITRUM = '0xa4b1'
AVALANCHE = '0xa86a'
BASE = '0x2105'
BERACHAIN = '0x138d4'
BSC = '0x38'
LINEA_MAINNET = '0xe708'
MAINNET = '0x1'
METACHAIN_ONE = '0x1b6e6'
OPBNB = '0xcc'
OPTIMISM = '0xa'
POLYGON = '0x89'
SCROLL = '0x82750'
SEPOLIA = '0xaa36a7'
ZKSYNC_ERA = '0x144'
```


## **Screenshots/Recordings**

[Screencast from 2025-01-28
14-56-38.webm](https://github.com/user-attachments/assets/a7fdf9ca-d34d-407b-93b9-5191e6279ca1)

<!-- 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.
## **Description**

Prevents unwanted rerenders on the AddressCopyButton when props are the
same

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

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

Bump `@metamask/notification-services-controller` from `^0.20.1` to
`^0.21.0`

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

## **Related issues**

Fixes:

## **Manual testing steps**

1. Check notifications flow (enable notifications, disable
notifications)

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

Refactor the current implementation with better typing and by
re-organizing things a bit.

We have some new modifications coming up soon on the Snap keyring
flows/logic, so I'd like to have this small refactor to come first to
ease the incoming PR reviews.

Requires this one to be merged first:
- [x] #30205

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

## **Related issues**

N/A

## **Manual testing steps**

1. Run `yarn start:flask`
2. Install the SSK:
https://metamask.github.io/snap-simple-keyring/latest/
3. Creates an SSK account
- You should see the usual dialogs for non-preinstalled Snaps (account
renaming, confirmation dialogs to create the account)
4. Creates a Bitcoin/Solana account
  - Those are preinstalled, so some dialogs will be skipped
5. Remove those accounts
- You should see a dialog (to confirm the account deletion) upon the
removal of an SSK account
  - You should not see the same dialog for Bitcoin/Solana

## **Screenshots/Recordings**

### **Before**

### **After**

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

---------

Co-authored-by: Daniel Rocha <[email protected]>
## **Description**

Removes some ESLint rules that don't provide any real value, and would
require us to "auto-fix" a lot of files.

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

## **Related issues**

Fixes:

## **Manual testing steps**

Check that `yarn lint:fix` does not introduce any new file changes.

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

Replace current copy description for "Fund your wallet" carousel banner
to "Add or transfer tokens to get started".
Replace current copy description for "MetaMask Card" carousel banner to
"Available in select regions".

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

## **Related issues**

Fixes: MetaMask/metamask-mobile#13021

## **Manual testing steps**

1. Go to the main wallet page
2. Check that the slides show the new descriptions

## **Screenshots/Recordings**

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

### **Before**

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

### **After**


<img width="935" alt="Image"
src="https://github.com/user-attachments/assets/74087d46-88ac-4a93-9d4e-7c26f3d283ef"
/>

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

This PR fixes a visual issue where a flashing scroll bar appears during
modal animations. The issue was caused by the animation properties in
the `modal-content` component in [this recently merged
PR](#30258). The fix
involves:

1. Setting `overflow: hidden` on the modal-content container
2. Adding `overflow: hidden` to the animation keyframes to prevent
scroll bar flickering

This is a hotfix for the 12.13.0 release and addresses a regression
identified during visual testing.

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

## **Related issues**

Fixes: #30354

## **Manual testing steps**

1. Open any modal in the application (e.g. Networks modal)
2. Observe the modal animation
3. Verify there is no flashing scroll bar during the animation
4. Test with different screen sizes to ensure consistent behavior

## **Screenshots/Recordings**

### **Before**


https://github.com/user-attachments/assets/1b8689f7-199d-4b8d-b51f-22d4e24fbb2e



### **After**


https://github.com/user-attachments/assets/c5dd06fc-d9b9-45c0-8468-0cf959c87263



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

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

Visual regression testing for all modals is being tracked in this
spreadsheet:

https://docs.google.com/spreadsheets/d/1fzGHktbmnE-jDa8SxvmiTmunTOchFyAYmpBRlKAbQYo/edit?gid=700367359#gid=700367359
<!--
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**

~~Previously the inpage provider would withhold events for
`chainChanged` events (and property value updates, i.e.
window.ethereum.chainId and .networkVersion) when the dapp's network was
changed to an rpc endpoint that was unresponsive or did not support
`net_version`. The dapp would instead receive a `disconnect` event.~~

~~Now the inpage provider always emits `chainChanged` and
`networkChanged` events (and exposes the correct values on
window.ethereum.chainId and .networkVersion) when the selected network
for the dapp has changed regardless of if the network being changed to
is responsive or if it supports `net_version` requests. It does this by
having the wallet send a `loading` for `networkVersion` when it cannot
be resolved (same behavior as before) AND a new `isConnected` property
in the `metamask_getProviderState` request and `metamask_chainChanged`
events (these are different from the events emittted by
window.ethereum). `isConnected` is derived from whether the
`NetworkController.state.networkMetadata[].status` value is the
Available constant.~~

The above was handled in a separate PR
[here](#30111).

Additionally, this PR also no longer fires `metamask_unlockStateChanged`
events to the inpage provider when the wallet is locked or unlocked.
This has the downstream effect of making `window.ethereum` no longer
emit an empty array value for the `accountsChanged` event when the logic
becomes locked.

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

## **Related issues**

Fixes:
https://github.com/orgs/MetaMask/projects/146/views/1?filterQuery=label%3A%22team-wallet-api-platform%22+-status%3ABacklog&pane=issue&itemId=95374156&issue=MetaMask%7CMetaMask-planning%7C4039
Fixes: MetaMask/MetaMask-planning#3853

## **Manual testing steps**
```
window.ethereum.on('accountsChanged', (data) => console.log('accountsChanged', data))
window.ethereum.on('chainChanged', (data) => console.log('chainChanged', data))
window.ethereum.on('networkChanged', (data) => console.log('networkChanged', data))
window.ethereum.on('connect', (data) => console.log('connect', data))
window.ethereum.on('disconnect', (data) => console.log('disconnect', data))
```

For chainChanged/networkChanged/connect/disconnect:

1. Go to a dapp and enter the above in console
2. Using the wallet ui, switch the network for the dapp
3. When switching to a network without net_version support,
`networkChanged` should be emitted by the inpage provider with `null`
4. When switching to a network that is not responsive, a `disconnect`
event should be fired AND `chainChanged` and `networkChanged` should
fire as well if those values have changed
5. When switching from an unresponsive network to a responsive network,
a `connect` event should be fired AND `chainChanged` and
`networkChanged` should fire as well if those values have changed
6. When switching to a network that was previously responsive that also
supported net_version but is no longer responsive, a `disconnect` event
should be fired and `networkChanged` should return the previously cached
value

 For accountsChanged:
1. Go to a permissioned dapp and enter the above in console
2. Using the wallet ui, lock the wallet
3. There should be no `accountsChanged` event emitted on the dapp
console
4. Using the wallet ui, unlock the wallet,
5. There should be no `accountsChanged` event emitted on the dapp
console

## **Screenshots/Recordings**


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

### **Before**

For chainChanged/networkChanged/connect/disconnect:


https://github.com/user-attachments/assets/e551971c-a686-44c4-8173-977f12f48e56

For accountsChanged:



https://github.com/user-attachments/assets/03420add-c159-4fdd-905c-aea5c322c611



### **After**

For chainChanged/networkChanged/connect/disconnect:


https://github.com/user-attachments/assets/6a368f0f-b173-4911-ab24-7e41b5e80623

For accountsChanged:


https://github.com/user-attachments/assets/18afae43-bb86-45d5-b790-d4bc7b0f9391



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

---------

Co-authored-by: Christian Montoya <[email protected]>
Co-authored-by: ffmcgee <[email protected]>
Co-authored-by: Alex <[email protected]>
## **Description**

### Major changes
- **benchmarks.yml** - Does some important and new-to-us things like:
- ~~Self-hosted runner `runs-on:
gha-mm-scale-set-ubuntu-22.04-amd64-med`~~
- ~~Running in the same kind of Docker container we use in CircleCI
`container: image: cimg/node:22.13-browsers`~~
  - ~~Unlike on CircleCI, does not work without installing `Xvfb`~~
- **codespaces.yml**
- I originally added this workflow, and it was important to caching in
the past, but with the new workflows in GHA, it's no longer needed, so I
deleted it
- **test-circular-deps.yml**
- We were hitting the workflow limit of 20, so I inlined this simple
workflow, that did not need to be reusable


### Prerequisites to merging this PR
- ✔️ Merge this `benchmarks` branch of `github-tools`:
https://github.com/MetaMask/github-tools/blob/benchmarks/.github/actions/setup-environment/action.yml
- ✔️ Change `setup-environment@benchmarks` to
`setup-environment@1d657e262aea7e3f216754febb624831527d2565`
- ~~Vastly increase the number of allocated self-hosted runners~~ (no
longer needed because not using self-hosted anymore)

### This is just Part 1 of a larger 4-part task to make the startup time
quality gate, but I think it's the hardest part
1. Run on GitHub-hosted runners so that hopefully the numbers will be
more stable (this PR)
2. Get this to measure the same measurements in the same way as we do
for Sentry
3. Make metamaskbot post with the results of this instead of the current
CircleCI source
4. Set up the quality gate

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

## **Related issues**

Progresses: MetaMask/MetaMask-planning#3679

<!--
## **Manual testing steps**
## **Screenshots/Recordings**
### **Before**
### **After**
## **Pre-merge author checklist**
## **Pre-merge reviewer checklist**
-->

---------

Co-authored-by: Norbert Elter <[email protected]>
This PR solves an issue with circular dependencies. It does not change
the behavior of the application. It only rearranges functions/files to
avoid circular references.

<!--
## **Description**



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

## **Related issues**

Fixes:

## **Manual testing steps**

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

## **Screenshots/Recordings**

### **Before**

### **After**

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

I'm adding these utils for mobile, and we didn't really explain in tests
and code comments what each of the date formatting sections do.

This adds code comments on both tests and code to make it clear what the
date formatting does.

FUTURE NOTE: It would be nice to extract this into CORE to be reused by
extension and mobile. However mobile does not support
`Intl.DateTimeFormat`

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

## **Related issues**

Fixes: N/A

## **Manual testing steps**

N/A - we are just adding docs/code comments.

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

The purpose of this improvement is to automate several steps that I
currently do manually when a new release x.y.z is created:

1. Create regression labels on public code repo (metamask-extension) and
private planning repo (MetaMask-planning)
  a. `regression-RC-x.y.z`
  b. `regression-prod-x.y.z`
2. Create bug report issue on planning repo
3. Add the bug report issue to the Releases Github Project board 
4. Set the RC cut date on the Releases Github Project board.

These steps are important because the data pipelines of our metrics
system consume the data that's present on the [Releases Github Project
board](https://github.com/orgs/MetaMask/projects/86/views/1).

Finally this improvement includes a check to no longer re-create the bug
report issue when it already exists, which used to happen sometimes when
the release was re-cut, and which was disturbing other automations (e.g.
wrong metrics, duplicated Slack notifications).

The following prerequisites are already met:

- [x] Add `BUG_REPORT_TOKEN` to repo secrets (fine grained access token
with `Issues:Write` and `Metadata:Read` permissions for
metamask-extension and MetaMask-planning repos, as well as `Projects:
Write` permissions for MetaMask organization)
- [x] Add `RELEASES_GITHUB_PROJECT_BOARD_NUMBER` to repo variables
- [x] Add `RELEASES_GITHUB_PROJECT_BOARD_VIEW_NUMBER` to repo variables

[Same PR for
Mobile](MetaMask/metamask-mobile#13397)

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

## **Related issues**

None

## **Manual testing steps**

1. Go to this [public code
repo](https://github.com/gauthierpetetin-test/repo_test) (equivalent of
metamask-extension repo)
2. Create a [new
branch](https://github.com/gauthierpetetin-test/repo_test/branches) with
the following format: `release/x.y.z` (where x, y, z, are numbers)
3. Wait for 30s, until the Github action execution is finalised
4. Check that `regression-RC-x.y.z` and r`egression-prod-x.y.z` labels
have been created on the [public code
repo](https://github.com/gauthierpetetin-test/repo_test/labels)
5. Go to this [private planning
repo](https://github.com/gauthierpetetin-test/repo_test_2) (equivalent
of MetaMask-planning repo)
6. Check that `regression-RC-x.y.z` and r`egression-prod-x.y.z` labels
have been created on the [private planning
repo](https://github.com/gauthierpetetin-test/repo_test_2/labels)
7. Check that the bug report issue has been created on the [private
planning
repo](https://github.com/gauthierpetetin-test/repo_test_2/issues) and
has the following title: "vx.y.z Bug Report"
8. Go to this [Github Project
board](https://github.com/users/gauthierpetetin-test/projects/2/views/1)
9. Check that the bug report issue is present on the board and its "RC
Cut" date is set to the current date.

In case, you don't have sufficient permissions on these test repos,
here's a video where the manual testing steps are demoed.

## **Screenshots/Recordings**

### **Before**

None

### **After**

<div>
<a href="https://www.loom.com/share/0f794c36cb6843809afed9472e396830">
      <p>Github action to automate bug report creation - Watch Video</p>
    </a>
<a href="https://www.loom.com/share/0f794c36cb6843809afed9472e396830">
<img style="max-width:300px;"
src="https://cdn.loom.com/sessions/thumbnails/0f794c36cb6843809afed9472e396830-6d9405bba082fb85-full-play.gif">
    </a>
  </div>

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

---------

Co-authored-by: Harika <[email protected]>
Co-authored-by: Norbert Elter <[email protected]>
## **Description**

Integration of the new `MultichainTransactionController`. The initial PR
was here:
- #30309 (@gantunesr)

We found some unrelated issues while upgrading the
`transaction-controller`, so we decided to drop this change to not block
the integration of our new controller.

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

## **Related issues**

N/A

## **Manual testing steps**

> [!NOTE]
> The multichain network logic will be implemented in follow-up PRs.

No actual functional changes, it's just a bumps of the
`accounts-controller` for now. So the extension should just work like
before.

## **Screenshots/Recordings**

### **Before**

### **After**

## **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.
micaelae and others added 2 commits February 28, 2025 14:31
<!--
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/30618?quickstart=1)

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

Hacky way to display when Solana txs in the activity log are bridges.
Polling and more robust code to be added.

<!--
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/30619?quickstart=1)

## **Related issues**

Fixes:

## **Manual testing steps**

1. Go to bridge page on Solana.
2. Bridge to EVM network.
3. Observe transaction labeled as Bridge populate in activity after it
is detected.

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

---------

Co-authored-by: Micaela Estabillo <[email protected]>
@metamaskbot
Copy link
Collaborator Author

Builds ready [3183b75]
Page Load Metrics (1682 ± 66 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint35520741607318153
domContentLoaded14502050165413364
load14582070168213766
domInteractive25114442713
backgroundConnect107628199
firstReactRender146527178
getState56021209
initialActions01000
loadScripts10821555122611555
setupStore760232210
uiStartup17012405191016780

fix: cherry pick solana swap bridge commits into v12.14.0
@metamaskbot
Copy link
Collaborator Author

Builds ready [a1c41f2]
Page Load Metrics (1731 ± 116 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint22619271561372178
domContentLoaded150826971716241116
load152227091731241116
domInteractive16129392914
backgroundConnect9105272311
firstReactRender1572342311
getState576152110
initialActions00000
loadScripts11101961125818388
setupStore75816168
uiStartup174628411958227109

GustavoRSSilva and others added 2 commits March 4, 2025 17:49
## **Description**

When the users does not have a non Evm account, the bridge cannot
calculated the users balance.

[![Open in GitHub

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

## **Related issues**

Fixes: #30662

## **Manual testing steps**

1. Build the App
2. Go to the brige page

## **Screenshots/Recordings**

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

### **Before**



### **After**

<img width="679" alt="Screenshot 2025-03-03 at 10 00 26"
src="https://github.com/user-attachments/assets/144d091f-f73e-4270-9cc1-85275fdd9574"
/>


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

<!--
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/30698?quickstart=1)

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

- [ ] 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.
<!--
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 solana snap to
[v1.10.0](https://github.com/MetaMask/snap-solana-wallet/releases)

## **Related issues**

Adds:
- Update balances post transaction
(MetaMask/snap-solana-wallet#208)

Fixes:
- Account keeps incrementing after rejecting add account
(MetaMask/snap-solana-wallet#222)
- Loss of precision on transfer amounts
(MetaMask/snap-solana-wallet#219)
- Solve race condition when simulating transaction in send form
(MetaMask/snap-solana-wallet#221)

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

<!--
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/30751?quickstart=1)

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

---------

Co-authored-by: António Regadas <[email protected]>
Co-authored-by: Maarten Zuidhoorn <[email protected]>
@metamaskbot
Copy link
Collaborator Author

Builds ready [a6216e8]

runway-github bot and others added 3 commits March 5, 2025 09:19
…h 2D version (#30717)

- fix: cp-12.14.0 replace 3D beta mascot with 2D version (#30686)

## **Description**

Issue: The Beta 3D asset isn't ready yet

Solution: Replace all instances of the 3D asset for Beta with the 2D
counterpart temporarily until we get the asset

[![Open in GitHub

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

## **Related issues**

Fixes:
[#30665](#30665)

## **Manual testing steps**

1. Run `yarn start --build-type beta`
2. Confirm that the 2D beta logo is visible in the following flows
3. Swap Quote flow 
4. Create Wallet flow
5. Login

## **Screenshots/Recordings**


`ui/pages/onboarding-flow/welcome/welcome.js`
| Before  | After  |
|:---:|:---:|


|![before_welcome](https://github.com/user-attachments/assets/959e1efb-a908-4ebf-8d9a-6d9f1e47b95a)|![after_welcome](https://github.com/user-attachments/assets/5080d8e5-d92e-43b3-a44c-b66575fbaa46)|

`ui/pages/swaps/awaiting-swap/awaiting-swap.js`
| Before  | After  |
|:---:|:---:|


|![before_await_swap](https://github.com/user-attachments/assets/5a301276-d6b0-4601-9825-27d590118974)|![after_await_swap](https://github.com/user-attachments/assets/4fec08bb-024f-44b1-a982-41651cd4890e)|

`ui/pages/swaps/loading-swaps-quotes/loading-swaps-quotes.js`
| Before  | After  |
|:---:|:---:|


|![before_loading_swap_quote](https://github.com/user-attachments/assets/21063505-208e-4707-a5d4-9f77ab8e05d5)|![after_loading_swap_quote](https://github.com/user-attachments/assets/f6527646-989e-492e-a451-5661ddc8f91e)|



`ui/pages/swaps/mascot-background-animation/mascot-background-animation.js`
| Before  | After  |
|:---:|:---:|


|![before_background_animation](https://github.com/user-attachments/assets/ff95d42d-8527-4d57-845d-e62c17d85808)|![after_background_animation](https://github.com/user-attachments/assets/8abfae3d-6e5a-406e-9484-9098bc04a178)|

`ui/pages/unlock-page/unlock-page.component.js`
| Before  | After  |
|:---:|:---:|


|![before](https://github.com/user-attachments/assets/6ab5a887-cb8b-471d-ad74-c53000fb24f0)|![after](https://github.com/user-attachments/assets/129b90fa-cc10-441d-bd47-fdd2e0fb10d0)|


### **Before**

NA

### **After**

NA

## **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.
[a601157](a601157)

Co-authored-by: Vince Howard <[email protected]>
…warning in … (#30660)

Cherry picks #30616
to v12.14.0

## **Description**

V1 does not support non-evm token detail navigation. We should disable
the click handler for non-evm tokens, so that the below warning does not
get thrown on click:
![Screenshot 2025-02-27 at 12 45

32](https://github.com/user-attachments/assets/cbf7dcb4-502b-4413-93d3-7ce9cab1298b)



[![Open in GitHub

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

## **Related issues**

Fixes:

## **Manual testing steps**

1. Start flask build
2. Add Solana Account, and Evm Account
3. TokenListItem clicks should remain functional for evm tokens, non-evm
tokens should not be functional, but should not throw warning to
console.

## **Screenshots/Recordings**




https://github.com/user-attachments/assets/fe6f5d77-3231-4316-b525-8bff22fba0e8

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

<!--
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/30660?quickstart=1)

## **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.
- fix: cp-12.14.0 color inheritance (#30651)

## **Description**

This PR addresses an issue introduced in PR #30408 where elements using
`color: inherit` incorrectly inherit `var(--brand-colors-white)` in
light mode. The previous PR fixed error page text visibility in dark
mode but inadvertently created contrast and readability issues in light
mode.

The issue stems from changes in the CSS cascade and selector structure
in `ui/css/base-styles.scss`, specifically how color is applied to the
`body` element within the dark mode media query. This fix ensures proper
color inheritance based on the current theme while maintaining the dark
mode improvements.

## **Related issues**

Fixes: #30650
Related to: #30408 (original dark mode error page fix)

## **Manual testing steps**

1. Set your system to light mode
2. Verify text using `color: inherit` appears with proper contrast (dark
text on light background) in more menu and send screens
3. Switch to dark mode and verify text is still visible (light text on
dark background)
4. Test the error page in both modes to ensure it maintains proper text
visibility (testing steps in #30408)
5. Test components using `color: inherit` in both modes to verify
correct inheritance

## **Screenshots/Recordings**

### **Before**

![image

(2)](https://github.com/user-attachments/assets/62fb3bdb-11a3-4273-889e-ad03c8968b3b)
![image

(3)](https://github.com/user-attachments/assets/d37f846b-c5c1-46e5-b24c-25e57d68db5a)

### **After**

Colors are correctly inheriting theme level design tokens again



https://github.com/user-attachments/assets/ca17a98c-37e8-4e48-98b6-4967ef8f5bc0

Error page still works as expected



https://github.com/user-attachments/assets/f99c1f96-619b-4325-bc68-6cd722277aa9

## **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.
[0d5be0f](0d5be0f)

Co-authored-by: George Marshall <[email protected]>
Copy link
Contributor

@georgewrmarshall georgewrmarshall left a comment

Choose a reason for hiding this comment

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

<!--
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 change removes the bug that causes solana swaps to display as
bridges in the activity tab.

The solution is to check for the txType being 'swap' when mapping the
snap transactions list with the bridge activity list.

This mapping will be removed in the future for a more robust bridge
activity list.

[![Open in GitHub

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

## **Related issues**

Fixes: https://consensyssoftware.atlassian.net/browse/MMS-2030

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

<!--
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/30755?quickstart=1)

## **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.
<!--
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/30756?quickstart=1)

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

<!--
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/30784?quickstart=1)

## **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.
@metamaskbot
Copy link
Collaborator Author

Builds ready [4cce492]
Page Load Metrics (1734 ± 58 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint31819591666330158
domContentLoaded14741949170612459
load14861961173412158
domInteractive158336147
backgroundConnect1175362010
firstReactRender1572342311
getState55916178
initialActions01000
loadScripts10731510128710751
setupStore7481294
uiStartup17282207198113464

<!--
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**
Cherry-picking #30749

<!--
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/30789?quickstart=1)

## **Related issues**

Fixes:

#30773 (comment)

## **Manual testing steps**

1. get bridge quotes on EVM with native asset as the destination token
2. get bridge quotes on solana with native asset as the destination
token
3.  get swap quotes on solana with native asset as the destination token


## **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.
@metamaskbot
Copy link
Collaborator Author

Builds ready [2a09fec]
Page Load Metrics (1570 ± 58 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint14511909156812158
domContentLoaded14101843154311455
load14491908157012158
domInteractive249935178
backgroundConnect96428199
firstReactRender1469332110
getState55414168
initialActions00000
loadScripts1018136711399345
setupStore75613136
uiStartup16372176178814268

#30786)

## **Description**

Cherry picks #30581

## **Related issues**

Fixes:

## **Manual testing steps**

1. Import a solana account
2. See aggregated balance in main view
3. Click on account list selector
4. You should see aggregated fiat balance


## **Screenshots/Recordings**

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

### **Before**

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

### **After**



https://github.com/user-attachments/assets/311b6e19-c3ec-4159-a08a-511fb59da529


<!-- [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.

<!--
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/30786?quickstart=1)

## **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.
@metamaskbot
Copy link
Collaborator Author

Builds ready [ec2c15a]
Page Load Metrics (1609 ± 41 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint1472176416148239
domContentLoaded1459170715878139
load1475175716098541
domInteractive259436189
backgroundConnect97326189
firstReactRender1475312311
getState45014147
initialActions01000
loadScripts1061127411806833
setupStore75915157
uiStartup1676197618209244

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

We temporarily ignore the `'@trezor/connect-web` audit failure to
unblock ci, as upgrading to the new version breaks the webpack build.

```
└─ @trezor/connect-web
   ├─ ID: @trezor/connect-web (deprecation)
   ├─ Issue: This version is no longer supported
   ├─ Severity: moderate
   ├─ Vulnerable Versions: 9.4.7
   │ 
   ├─ Tree Versions
   │  └─ 9.4.7
   │ 
   └─ Dependents
      └─ metamask-crx@workspace:.
```

[This
issue](#30851) is
created in order to upgrade to the latest version and remove the entry
from the ignore list.

[![Open in GitHub

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

## **Related issues**

Fixes:

## **Manual testing steps**

1. Check yarn audit gh action


## **Screenshots/Recordings**

### Before

![Screenshot from 2025-03-07

09-35-05](https://github.com/user-attachments/assets/04fe6b00-93c9-40e3-8b0b-aeb758015ba7)

### After

![Screenshot from 2025-03-07

09-40-00](https://github.com/user-attachments/assets/a895ccfa-8203-4c92-b0dd-61c567cd9f5a)


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

---------

<!--
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/30859?quickstart=1)

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

Co-authored-by: seaona <[email protected]>
Co-authored-by: Frederik Bolding <[email protected]>
@metamaskbot
Copy link
Collaborator Author

Builds ready [aee1c1b]
Page Load Metrics (1681 ± 62 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint53120111624284136
domContentLoaded14701998165312660
load14812011168113062
domInteractive259938199
backgroundConnect1184322211
firstReactRender1570462311
getState54611105
initialActions00000
loadScripts10841525123411455
setupStore7491294
uiStartup16932225190413866

aganglada and others added 2 commits March 7, 2025 18:32
<!--
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**

* Non-EVM swap transactions on activity list
* Solana version update

<!--
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/30866?quickstart=1)

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

---------

Co-authored-by: António Regadas <[email protected]>
… account (#30869)

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

Cherry picks #30793
into 12.14.0

<!--
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/30869?quickstart=1)

## **Related issues**

Fixes: #30792

## **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.
@metamaskbot
Copy link
Collaborator Author

Builds ready [8163eda]
Page Load Metrics (1739 ± 66 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint14732071174413967
domContentLoaded14622028171613464
load14722070173913766
domInteractive26117402311
backgroundConnect117227199
firstReactRender1573422412
getState56518189
initialActions01000
loadScripts10831588129211354
setupStore86117168
uiStartup17002364198815173

gantunesr and others added 2 commits March 7, 2025 14:38
<!--
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/30614?quickstart=1)

Fix Caip <> Hex conversion error for network switching event

## **Related issues**

Fixes: MetaMask/accounts-planning#858

## **Manual testing steps**

1. Switch from Solana to Ethereum or other EVM network
2. See the error in the logs

## **Screenshots/Recordings**

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

### **Before**

![Screenshot 2025-02-27 at 11 27

24](https://github.com/user-attachments/assets/5dbcf7a7-1dda-4628-8c7e-9fbfa03cb898)

### **After**

The error should not be logged

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

Co-authored-by: MetaMask Bot <[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**

<!--
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/30722?quickstart=1)

This change adds a `multichain` code fence to the
`getMultichainNetworkConfigurationsByChainId` selector so the UI is not
exposed to non-EVM network data from the `multichain-network-controller`

## **Related issues**

Fixes: MetaMask/accounts-planning#858

## **Manual testing steps**

1. Build the extension Flask wallet and set the `addSolanaAccount` to
true
2. You **should** see the Solana network in the network picker and use a
Solana account
3. Remove the extension
4. Build the extension MetaMask wallet and set the `addSolanaAccount` to
true
5. You **should not** see the Solana network in the network picker

## **Screenshots/Recordings**

### **Before**

Check issue #30710

### **After**

...

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

Co-authored-by: Dan J Miller <[email protected]>
@metamaskbot
Copy link
Collaborator Author

Builds ready [59ad940]
Page Load Metrics (1851 ± 69 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint15282093185814670
domContentLoaded15162080183514168
load15252096185114369
domInteractive2099422010
backgroundConnect126022146
firstReactRender1571352210
getState558202010
initialActions00000
loadScripts11271522137211254
setupStore863272211
uiStartup17632620213619493

1 similar comment
@metamaskbot
Copy link
Collaborator Author

Builds ready [59ad940]
Page Load Metrics (1851 ± 69 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint15282093185814670
domContentLoaded15162080183514168
load15252096185114369
domInteractive2099422010
backgroundConnect126022146
firstReactRender1571352210
getState558202010
initialActions00000
loadScripts11271522137211254
setupStore863272211
uiStartup17632620213619493

@metamaskbot
Copy link
Collaborator Author

Builds ready [0b97367]
Page Load Metrics (1983 ± 65 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint29322351817515247
domContentLoaded17642192195112259
load17772269198313565
domInteractive29150603417
backgroundConnect10104282311
firstReactRender1676382412
getState66320189
initialActions00000
loadScripts12701688146811053
setupStore864232010
uiStartup20622499227013163

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.