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.2.0 #25803

Merged
merged 135 commits into from
Sep 9, 2024
Merged

Version v12.2.0 #25803

merged 135 commits into from
Sep 9, 2024

Conversation

benjisclowder
Copy link
Contributor

@benjisclowder benjisclowder commented Jul 12, 2024

RC V12.2.0

Open in GitHub Codespaces

adonesky1 and others added 30 commits June 28, 2024 12:16
…ingNetworkSwitch` (#25562)

## **Description**

Though signature requests like `personal_sign`, `eth_signTypedData`,
`eth_signTypedData_v3` and `eth_signTypedData_v4` do not depend on state
of network connections, these confirmations do use nicknames/addressbook
state which is dependent on globally selected network state for parsing
signatures and injecting nicknaming where possible. The queueing system
introduced with Amon Hen v1 (v12.0.0 release) introduces certain
conditions in which these signature confirmations will be rendered on
the wrong network. Though this doesn't actually result in faulty
signatures, we should switch to the appropriate/expected network for the
UX reasons described above. Adding `eth_signTypedData_v3` and
`eth_signTypedData` to the `methodsRequiringNetworkSwitch` array will
cause the network to switch to the selected network for the requesting
origin before initializing the confirmation.

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

## **Related issues**

Fixes: #25528
See this slack thread:
https://consensys.slack.com/archives/C06FXU326RL/p1719429561925649?thread_ts=1719415715.492249&cid=C06FXU326RL
## **Manual testing steps**
 See videos below 👇 

## **Screenshots/Recordings**

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

### **Before**

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


https://github.com/MetaMask/metamask-extension/assets/34557516/3e32fce7-046c-4856-893d-a85083877327


### **After**

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


https://github.com/MetaMask/metamask-extension/assets/34557516/306d88aa-f5f3-4eae-a8e9-30b621c02626


## **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/develop/.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/develop/.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]>
<!--
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 doesn't have user-facing effects, just setting up state
management for subsequent feature PRs.

Changes include
* a new bridge controller that manages background state for the
cross-chain swaps experience
* basic redux slice for bridging. Note that the slice extends swaps,
since we plan to decouple the frontend components for now but merge the
experiences later on
* e2e tests for current bridge button behavior
* new logic for fetching and setting bridge feature flags

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

## **Related issues**

Fixes:
[METABRIDGE-889](https://consensyssoftware.atlassian.net/browse/METABRIDGE-889)

## **Manual testing steps**

1. Load extension
2. Verify that Bridge button behavior has not changed

## **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 Coding
Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.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
- [] 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/develop/.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?
-->

This PR bumps `@metamask/assets-controllers` to `^34.0.0`.
## **Related issues**

Fixes MetaMask/accounts-planning#481

## **Manual testing steps**

This PR affects all assets related tokens

1. Test added and removing of and tokens
2. Transfer tokens
3. Turn on off token detection and see the detected tokens
4. Check if the token rate values on mainnet

## **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/develop/.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/develop/.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: MetaMask Bot <[email protected]>
… have been modified (#24556)

<!--
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 adds a quality gate for new or modified e2e spec files. Whenever
there is a PR which modifies or changes a test, this will be run more
times, in order to prevent introducing a flakiness accidentally. It is
done as follows:


- Identifies any new or modified e2e file from inside the test/ folder
using `git diff` and using these 2 filters:
  - `file.filename.startsWith('test/e2e/') &&`
- `file.filename.endsWith('.spec.js') ||
file.filename.endsWith('.spec.ts') `
- Copies the given specs x5 times in the list of testpaths to execute ->
this number is arbitrary, we could modify it to any value we want. The
reason for taking this approach instead of changing the retrial number
is to benefit of the parallelization, as @HowardBraham pointed out in a
comment.
- Since we already had a flag which could support the re-running
successful tests, `--retry-until-failure` I just leveraged this into the
`for` loop for each test, and if that testcase was identified as
new/modified, the flag is added so the new tests fail fast without
retrials

### Incremental git fetch depth within shallow clone
We use git fetch with incremental depth as @danjm suggested. The ci
environment uses a shallow clone, meaning we won't be able to succeed
just by using git diff as it won't find the merge base. For fixing that,
we start with a git fetch depth of 1, and keep incrementing the depth
(1, 10, 100) it the error is `no merge base` up until 100. If the git
diff still fails, we then do a full git fetch with the `unshallow` flag.

- [Update] This is the working result with the last commit
https://app.circleci.com/pipelines/github/MetaMask/metamask-extension/89269/workflows/103b78a8-8f0d-4323-96b0-9e235c4cbc81/jobs/3296802
![Screenshot from 2024-06-26
11-39-19](https://github.com/MetaMask/metamask-extension/assets/54408225/a2a89d6a-3a73-48ba-91a3-20aeadc38573)


### New ci Job
The git diff is done in a new ci job which runs at the beginning in
parallel of prep-deps.





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


## **Related issues**

Fixes: #24009

## **Manual testing steps**

1. Check ci runs (notice previous runs had failing and changed tests on
purpose, in order to try the different scenarios described below)

## **Screenshots/Recordings**


=============================================== [UPDATE with the new
code changes]
- 🟢 Case 1: A test has changed -> it's rerun 1+5 times and
it's successful (it will be run in different buckets)




https://github.com/MetaMask/metamask-extension/assets/54408225/c1456104-1f5f-4ef3-9364-4e435f8797f4



https://app.circleci.com/pipelines/github/MetaMask/metamask-extension/89277/workflows/7fce0a2e-773f-46da-8ab9-1dbec7992b58/jobs/3297267/parallel-runs/10?filterBy=ALL


- 🟢 Case 2: A test has changed, but it has a mistake in the
code (intentionally to simulate a flaky test) -> it fails immediately
and there are no more retries. The rest of the tests, are retried if
they failed as usual


- Case for main test build test:
https://app.circleci.com/pipelines/github/MetaMask/metamask-extension/89277/workflows/7fce0a2e-773f-46da-8ab9-1dbec7992b58/jobs/3297267/artifacts
- Case for flask specific test:
https://app.circleci.com/pipelines/github/MetaMask/metamask-extension/89277/workflows/7fce0a2e-773f-46da-8ab9-1dbec7992b58/jobs/3297277/artifacts



- 🟢 Case 3: A PR has no test spec files changed -> nothing
different happens
- ci run: check current ci 


## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask Coding
Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.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/develop/.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: Mark Stacey <[email protected]>
Co-authored-by: Howard Braham <[email protected]>
…portfolio tab when flag is turned off` (#25607)

<!--
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 test is failing since we are trying to manually add a token which is
already added using fixtures.
See ci failure
[here](https://app.circleci.com/pipelines/github/MetaMask/metamask-extension/89950/workflows/6dce2bee-4cdf-4118-9fea-9ddc10f25096/jobs/3330074/tests).


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

## **Related issues**

Fixes: #25607

## **Manual testing steps**

1. Check ci

## **Screenshots/Recordings**


![image](https://github.com/MetaMask/metamask-extension/assets/54408225/4519217f-e01d-48ba-a515-b483fc952854)


Failure and fix:



https://github.com/MetaMask/metamask-extension/assets/54408225/423f628b-e902-444c-815b-1aa05f824aa8



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

On #23743, we
introduced a BannerAlert that warns the user if they migrated from
OpenSea to Blockaid security alerts and they are on a network that
doesn't support them.

Since enough time has passed, this PR removes that logic

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

## **Related issues**

#23743

## **Manual testing steps**

See instructions on
#23743

## **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/develop/.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/develop/.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.
…ded` (#25583)

## **Description**

This fixes the expanded authorship install origin being left aligned
when the text takes more than a line.

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

## **Related issues**

Fixes:

## **Manual testing steps**

1. Install a snap with a long install origin
2. Go to the snap's settings page
3. Look at the install origin

## **Screenshots/Recordings**

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

### **Before**


![image](https://github.com/MetaMask/metamask-extension/assets/13910212/3d6689a0-8e78-458e-bfe4-28094f893f61)

### **After**

![Screenshot 2024-06-28 at 17 04
27](https://github.com/MetaMask/metamask-extension/assets/13910212/660431d2-434f-4df4-ae08-aad6fb9e2c27)


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

The token symbol send page's asset picker is not vertically aligned with
other dropdowns on the page. This PR removes an unneeded margin
introduced in #25470.

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

## **Related issues**

Fixes:

## **Manual testing steps**

1. Go to send page
2. Ensure asset picker is spaced correctly and vertically aligned with
other components

## **Screenshots/Recordings**

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

### **Before**

<img width="379" alt="Screenshot 2024-06-27 at 5 55 08 PM"
src="https://github.com/MetaMask/metamask-extension/assets/44588480/638e53d6-df84-4f0d-a855-6e5d8c63529a">


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

### **After**

<img width="379" alt="Screenshot 2024-06-27 at 5 58 37 PM"
src="https://github.com/MetaMask/metamask-extension/assets/44588480/bb98dfe9-dadb-4307-aa4a-d796e9f94554">


<!-- [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/develop/.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/develop/.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**

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

This PR adds a Storybook story for the `RestoreVaultPage` component. The
story allows for isolated testing and visualization of the
`RestoreVaultPage` component within the Storybook UI.

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

## **Related issues**

## **Manual testing steps**

1. Go to the latest build of storybook in this PR
2. Navigate to the `RestoreVaultPage` component in the `Pages/Keychains`
folder.

## **Screenshots/Recordings**

<img width="1503" alt="Screenshot 2024-06-13 at 7 34 21 AM"
src="https://github.com/Devin-Applications/metamask-extension-devin/assets/168687171/274552b6-3ef4-4c2c-921c-a9ba32911b8c">

<img width="1503" alt="Screenshot 2024-06-13 at 7 34 48 AM"
src="https://github.com/Devin-Applications/metamask-extension-devin/assets/168687171/101e10f8-20f2-4614-9ac2-11d6980d1877">

## **Pre-merge author checklist**

- [X] I’ve followed [MetaMask Coding
Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.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/develop/.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.

[Devin
Run](https://preview.devin.ai/devin/6d166713059149e5816c5666c2c85ed9)

Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…e.component.js (#25227)

## **Description**

This pull request replaces the deprecated mixins in the
`unlock-page.component.js` and `index.scss` files with the `Text`
component. The changes include updating the `unlock-page__title` class
to use the `Text` component with appropriate properties and removing the
deprecated mixin instance from the SCSS file.

Devin Run Link:
https://preview.devin.ai/devin/de079f9a40fd45adb09783a36409256c

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

## **Related issues**

Partially Fixes:
#20496

## **Manual testing steps**

1. Go to the latest build of storybook in this PR
2. Verify that the "UnlockPage" component renders correctly with the
updated `Text` component
3. Ensure that the `unlock-page__title` class is replaced with
`[data-testid="unlock-page-title"]` in the
`test/e2e/tests/settings/auto-lock.spec.js` file

## **Screenshots/Recordings**

### **Before**


![](https://api.devin.ai/attachments/991317c8-2109-4a41-bf0c-5d3edd8add50/980098aa-0372-4728-9f89-f8eff532a8f2.png)

### **After**


![](https://api.devin.ai/attachments/49521e22-bbd6-4016-81a2-839816a3008f/0361fee1-e517-4e0e-8959-f22c6b2e1fac.png)

## **Pre-merge author checklist**

- [X] I’ve followed [MetaMask Coding
Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.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/develop/.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: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: George Marshall <[email protected]>
…ccount.component.js (#25262)

## **Description**

Replaced deprecated mixins with Text component in
`selected-account.component.js`. The change aims to modernize the
codebase by using the Text component from the design system, ensuring
consistency and maintainability.

Devin Run Link:
https://preview.devin.ai/devin/6dcddd7b3ee2456ca004b34d033b0d82

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

## **Related issues**

Partially Fixes:
#20496

## **Manual testing steps**

1. Go to the latest build of storybook in this PR
2. Verify the "SelectedAccount" component displays correctly with the
updated Text component.

## **Screenshots/Recordings**

### **Before**


![](https://api.devin.ai/attachments/ad6f5c71-8714-4f0d-9675-d36481abbafa/before_changes_selected-account.component.png)

### **After**

<img width="1653" alt="Screenshot 2024-06-12 at 21 55 36"
src="https://github.com/MetaMask/metamask-extension/assets/168687171/3e05ef54-8272-4c48-8637-ddedcf2f3830">

## **Pre-merge author checklist**

- [X] I’ve followed [MetaMask Coding
Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.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/develop/.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: George Marshall <[email protected]>
Co-authored-by: Shreyasi Mandal <[email protected]>
… test suite (#25373)

## **Description**

The Page Object Model (POM) is a design pattern that promotes code
reusability and maintainability in e2e testing by encapsulating UI
element selectors and interactions within page objects. This initial PR
is the beginning of integrating POM into e2e test suite, aiming to
enhance test code quality.

The entire implementation is done in TypeScript instead of JavaScript.

Key Considerations for Implementation:

- Easy Adaptation: ensure that the structure is straightforward and
intuitive, thereby accelerating the development speed and facilitating
easier migration.

- Enhanced Logging: offer better insights during test execution and
debugging, making it easier to investigate flaky test

Structure:
The POM structure is organized around distinct page objects for each
application UI screen. (Common components, such as the HeaderNavbar, are
directly integrated as part of a screen's component when interaction is
required. This approach eliminates the need for explicit class extension
and allows for the exclusion of the HeaderNavbar in screens where
interaction with it is unnecessary.)

Page functions and process:
I've introduced page objects, each designed to encapsulate the elements
and interactions specific to their respective pages. Additionally, I've
implemented processes such as `loginWaitBalance` and `sendTransaction`
to efficiently manage common test flows that require interactions across
multiple screens.

Processes should be defined for sequences that involve multiple page
objects, facilitating broader testing objectives like completing
transactions or logging in. These are typically actions that navigate
through several screens.

Functions within a class (page object) are best used for actions and
verifications that are specific to a single page. This approach promotes
the encapsulation and reusability of code for individual UI components
or screens, making the tests more modular and maintainable.

3 Migrated Test Cases:
Migrated 3 transaction test cases to the new POM structure, showcasing
the improved test architecture and log information. These migrations
serve as a POC, demonstrating the effectiveness of POM in our testing
environment and provide the base for future migrations.

Additionally, I'm eliminating CSS selectors that aren't robust and
replacing them with more stable selectors in this PR.

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

## **Related issues**

Fixes: #24985 
Relates to: #22464 

## **Manual testing steps**

Tests should pass on CI. Code should be easy to understand.

## **Screenshots/Recordings**

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

### **Before**

![Screenshot 2024-06-14 at 12 01
32](https://github.com/MetaMask/metamask-extension/assets/105063779/e0a48e9e-d8e1-4508-8b3b-6e1923b65efc)

![Screenshot 2024-06-18 at 11 25
05](https://github.com/MetaMask/metamask-extension/assets/105063779/d10f9bc8-9a3c-4d80-a341-0d7a8fcf73fc)

### **After**

![Screenshot 2024-06-14 at 22 38
22](https://github.com/MetaMask/metamask-extension/assets/105063779/35b1b150-dc0c-436b-9062-af0a71dd48ef)

![Screenshot 2024-06-18 at 11 28
10](https://github.com/MetaMask/metamask-extension/assets/105063779/ddbb953c-7839-4d6c-ae1a-07fa1e825f7d)



## **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/develop/.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/develop/.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**
The e2e that are using page objects are failing due to this error:
`Waiting for element to be located By(xpath, .//*[contains(concat(' ',
normalize-space(./@Class), ' '), ' unlock-page__title
')][(contains(string(.), 'Welcome back!') or contains(string(.),
'Welcomeback!'))])`.

It looks like the selector is not correct. This PR uses the data test id
to find the correct element.

Explanation: [this
PR](#25227) removed
the css selector, and [this other
PR](#25373)
implemented page objects with the old selector -possibly the last PR was
not updated, so the tests were green, but once the 2 have been merged,
now this selector is not found and fails in the subsequent branches

ci failure
[here](https://app.circleci.com/pipelines/github/MetaMask/metamask-extension/90108/workflows/5d04a531-048a-40e8-87f2-1d4d02f51291/jobs/3338274/tests#failed-test-0)

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

## **Related issues**

Fixes:

## **Manual testing steps**

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

## **Screenshots/Recordings**

![Screenshot from 2024-07-02
11-48-09](https://github.com/MetaMask/metamask-extension/assets/54408225/faf2a546-d8af-4ed2-884c-85c836994d86)


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

Update author team mapping list for PR

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

## **Related issues**

Fixes:

## **Manual testing steps**
Check new authur/team mapping

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

This PR fixes a regression where the connected account is not showing up
on the page.

## **Related issues**

## **Manual testing steps**

1. Go to a test dapp
2. Connect the account
3. Open the popup
4. Click on the connection icon and see the connected account. 

## **Screenshots/Recordings**

### **Before**

<img width="360" alt="Screenshot 2024-06-25 at 15 30 55"
src="https://github.com/MetaMask/metamask-extension/assets/96463427/35fe21b3-7434-4bde-93a8-d3bbfe0126b6">


### **After**
<img width="362" alt="Screenshot 2024-06-25 at 15 31 01"
src="https://github.com/MetaMask/metamask-extension/assets/96463427/474a9681-75b7-4e00-a8a9-95fb60daad74">


## **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/develop/.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
- [ ] 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/develop/.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: Nidhi Kumari <[email protected]>
Co-authored-by: Charly Chevalier <[email protected]>
…lop`, `master` and release branches (#25605)

<!--
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 excludes running the git-diff script for the e2e quality gate
added
[here](3ea381d),
for `develop` as well as for `master` and release branches.
We don't want to run this in develop, master or release branch, since
there is no point on re-running the new/changed tests there, as the
changes are already in `develop` branch. This could add up more credits
and also slow down ci in those branches.

**Context**: in `develop` branch the current quality gate fails, since
the `diffResult` is empty, and we were throwing the following
[error](https://app.circleci.com/pipelines/github/MetaMask/metamask-extension/89939/workflows/dccfb6e0-741d-4416-bc01-8ab1a884c12b/jobs/3329380)
as we were entering in the !diffResult condition.
However, this PR fixes the issue on the higher level, by skipping
entirely the git diff for the mentioned branches above.


```
  await fetchUntilMergeBaseFound();
  const { stdout: diffResult } = await exec(`git diff --name-only origin/HEAD...${process.env.CIRCLE_BRANCH}`);
  if (!diffResult) {
      throw new Error('Unable to get diff after full checkout.');
  }
```


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

## **Related issues**

Fixes: current develop ci

## **Manual testing steps**
- ci should continue to work
- once merged, fixes develop

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

<!--
This adds an e2e test that creates a new snap account with Snap Simple
Keyring (SSK) and completes a swap from ETH to DAI in synchronous mode
-->

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

## **Related issues**

Fixes:  [469](https://github.com/MetaMask/accounts-planning/issues/469)

## **Manual testing steps**

1. `yarn build:test:mv2` then `ENABLE_MV3=false yarn test:e2e:single
test/e2e/accounts/snap-account-eth-swap.spec.ts --browser=firefox`
2. `yarn build:test` then `yarn test:e2e:single
test/e2e/accounts/snap-account-eth-swap.spec.ts --browser=chrome`


## **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/develop/.github/guidelines/CODING_GUIDELINES.md).
- [x] 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
- [x] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.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**

Issue #22837 descrip that ledger sometimes will display `Unknown Error`
during pairing. we have tried to replicate the issue and discover that
it happen during ledger is lock and not open Eth app. this PR will
replace the `Unknown Error` with more meaningful error message to guide
user solve the issue.

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

## **Related issues**

Fixes: #22837 

## **Manual testing steps**

1. Setup wallet
2. Connect, unlock and open the Ethereum app on Ledger
3. Use the add hardware flow to add some Ledger accounts
4. Remove the Ledger accounts from full screen mode
5. Use add hardware flow to try and add any Ledger accounts
6. Select the `paired` with that ledger when it is available
7. ledger should be locked status or unlock ledger but not opening eth
app.
8. you will see new error message `Unlock your Ledger device and open
the ETH app`
9. After you unlock your ledger and open ETH app. and click paired again
10. you should be able to select accounts from next screen and import
those accounts from ledger.


## **Screenshots/Recordings**

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

### **Before**
https://recordit.co/kdCDL4laWo

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

### **After**

https://github.com/MetaMask/metamask-extension/assets/7315988/f11a1867-ad3f-4796-8661-6d3469bed682


<!-- [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/develop/.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/develop/.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: chloeYue <[email protected]>
… spec (#25616)

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

Test name was not being captured correctly and recently came to
appreciate that some of the snap account related fixtures were not
actually needed for this test.

Updated test name and removed `accountSnapFixtures`

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

## **Related issues**

Fixes:  [505](https://github.com/MetaMask/accounts-planning/issues/505)

## **Manual testing steps**
Firefox: 
`yarn build:test:mv2` then `ENABLE_MV3=false yarn test:e2e:single
test/e2e/accounts/smart-swap-disabled.spec.ts --browser=firefox`
Chrome:
`yarn build:test` then `yarn test:e2e:single
test/e2e/accounts/smart-swap-disabled.spec.ts --browser=chrome`

## **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/develop/.github/guidelines/CODING_GUIDELINES.md).
- [x] 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/develop/.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**

Updates the Ramps banners for BTC accounts. 

Added

- `BTC` to `RAMPS_CARD_VARIANT_TYPES` with `illustractionSrc`,
`gradient`, `title`, and `body` in the `RAMPS_CARD_VARIANTS`
- [BTC
illustration](https://www.figma.com/design/vsHVGgHiWo37Qs2EyMMy0K/Empty-Account-Contextual-Buy-Button?node-id=354-8198&t=61v1CV61FZV68ssr-0)
to `app/images`
- `BtcBanner` to `RampsMetaMaskEntry` enum 

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

## **Related issues**

Fixes: https://github.com/MetaMask/accounts-planning/issues/496

## **Manual testing steps**

N/A 
@georgeweiler is working on subsequent PR to include BTC in the list of
buyable tokens, which will render the new banner in that flow.

## **Screenshots/Recordings**

<img width="321" alt="Screenshot 2024-07-01 at 3 50 59 PM"
src="https://github.com/MetaMask/metamask-extension/assets/91970214/2ca6b3a9-842c-42ea-8c87-4e8e4481e923">

## **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/develop/.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/develop/.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 Permit signature redesign copy "Approve spend limit" → "Spending
cap"

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

## **Related issues**

Fixes: MetaMask/MetaMask-planning#2719

## **Manual testing steps**

1. Go to test dapp
2. Click on Malicious Permit within the ppom section

## **Screenshots/Recordings**

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

### **Before**

<img width="320"
src="https://github.com/MetaMask/metamask-extension/assets/20778143/c63c615e-4ae3-4cc2-a74d-fe00c9416ece">

### **After**

<img width="320"
src="https://github.com/MetaMask/metamask-extension/assets/20778143/00fc3099-25f9-46ff-bc85-f93b8e36ae86">

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

This PR updates the block explorer to support non-EVM explorers and
fixes the QR code to also display non-EVM accounts.

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


## **Related issues**

Fixes MetaMask/accounts-planning#489

## **Manual testing steps**

EVM
1. Click on global menu and click on `View on Explorer` 
2. See that the user goes to etherscan
3. Click on the account details
4. Click on copy address to clipboard and verify that the address is a
0x prefixed.
5. Verify QR code is also `ethereum:` prefixed 

Non-EVM
1.  Create a BTC account
2. Click on global menu and click on `View on Explorer` 
3. See that the user goes to blockstream.io
4. Click on the account details
6. Click on copy address to clipboard and verify that the address is not
0x prefixed.
7. Verify QR code is only the btc address

## **Screenshots/Recordings**

### **Before**
![Screenshot 2024-06-26 at 23 14
46](https://github.com/MetaMask/metamask-extension/assets/96463427/b358be0b-5586-42b6-850e-64e5d7f91279)
![Screenshot 2024-06-26 at 23 14
18](https://github.com/MetaMask/metamask-extension/assets/96463427/5f5b8d4c-993c-4de9-ad99-0cb28ab46617)
![Screenshot 2024-06-26 at 23 14
28](https://github.com/MetaMask/metamask-extension/assets/96463427/415f40ad-06eb-4936-a71f-c71db5a3f5ca)


### **After**
![Screenshot 2024-06-26 at 23 14
40](https://github.com/MetaMask/metamask-extension/assets/96463427/3d8467db-eacc-48a9-90b5-c29ee121fe7b)
![Screenshot 2024-06-26 at 23 14
37](https://github.com/MetaMask/metamask-extension/assets/96463427/00b914a5-82de-4420-b85c-f26989b79740)
![Screenshot 2024-06-26 at 23 14
32](https://github.com/MetaMask/metamask-extension/assets/96463427/f5445c78-90c6-434c-9fb0-9315db289908)

## **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/develop/.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/develop/.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: Charly Chevalier <[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**

Adds account mismatch warning alert to SIWE redesign page, "Signing in
with" row

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

## **Related issues**

Fixes: #25317

## **Manual testing steps**

1. comment out `isSIWE` condition in
`ui/pages/confirmations/hooks/useCurrentConfirmation.ts` file
2. turn on redesign in Experimental Settings
3. `yarn start`
4. Go to test-dapp and test SIWE Bad Account button

## **Screenshots/Recordings**

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

### **Before**

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

### **After**
<img width="320"
src="https://github.com/MetaMask/metamask-extension/assets/20778143/89de68e4-aca0-474e-9a8e-1aa254162f3e">
<img width="320"
src="https://github.com/MetaMask/metamask-extension/assets/20778143/1b3d5e13-7457-4076-b784-30fc37a7023a">


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

Improvements to our E2E tests.

## **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/develop/.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/develop/.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 adds a special case for Portfolio to allow it to call
`submitRequest` and `getAccountsBalances` methods of a keyring Snap
needed to support the BTC Snap, alongside other management methods
(`listAccounts` and `getAccount`).

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

## **Related issues**

Resolves: MetaMask/accounts-planning#506

## **Manual testing steps**

## **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/develop/.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/develop/.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.
…dRequestCount (#25614)

## **Description**

There's a case where there could be a race condition between the
`QueuedRequestController`'s network switching and the Routes' network
switching. The root issue is that the use of `getUnapprovedTransactions`
only gets transactions on the `current` chain, thus triggering Routes to
switch networks once the last transaction of the current chain is done,
but there could be more transactions on other chains which we should
allow QRC to handle network switching for.

Thus, this PR lets QRC control network switching until there are
absolutely no transactions or queued requests left.

[This PR includes an
**E2E](#25536 for
the scenario where there are multiple queued transactions but since this
is a race issue, it's difficult to reproduce in a provable E2E

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

## **Related issues**

Possibly related:
#25596

## **Manual testing steps**

1. Open `Tab 1`, connect to `Uniswap` on `Ethereum Mainnet`
2. Open `Tab 2`, connect to `PancakeSwap` on `BNB Chain`
3. Open `Tab 3`, connect to `Test Dapp` on `Sepolia`
4. Initiate a swap on `Tab 1` and `Tab 2` *BUT DO NOT CONFIRM IT, JUST
MOVE ON TO THE NEXT TAB*
5. Initiate a send on `Tab 3` *BUT DO NOT CONFIRM IT*
6. On the confirmation screen, you should still see the first
confirmation from `Tab 1` (`Uniswap`) on `Ethereum Mainnet`; confirm or
reject it. See the confirmation window close
7. A new confirmation popup should come up with the `PancakeSwap`/ `Tab
2` confirmation on `BNB` chain; confirm or reject it. See the
confirmation window close
8. See one last confirmation screen pop up for the `Tab 3` / `Test Dapp`
send on `Sepolia`. Confirm or reject it.

Create transactions on different networks, reject and/or confirm them,
click around between popup and notification window, ensure nothing
unexpected occurs


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

Builds ready [7a5acb3]
Page Load Metrics (142 ± 176 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint7512692147
domContentLoaded94422105
load391742142367176
domInteractive9442295

@metamaskbot
Copy link
Collaborator

Builds ready [8fa9cc0]
Page Load Metrics (233 ± 240 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint683091145225
domContentLoaded96127178
load421927233499240
domInteractive96127178

…d scripts using `defer`ed script tags (#26555) (#26822)

This PR removes `load-*.js` helpers and load scripts using the `defer`
property instead.

This change drastically improves the performance of the extension but
greatly reduces perceived performance because the browser won't display
the popup until the DOMContentLoaded event.

But improve perceived performance is mostly regained by initially
loading an asset-less HTML file, `popup-init.html`, that then redirects
to the slower (but much faster than before this PR) `popup.html`.

This was initially authored by @Gudahtt, I've just updated and optimized
it to work with the both build systems.

One change I did not make was moving scripts to the `head`. I don't
think putting the scripts in the head does anything in our case[^1]
other than potentially require that we wait for `DOMContentLoaded`
before querying for the app container.

Note: In Firefox we continue to use `popup.html`. Firefox is very slow
to render the `popup-init.html` redirect, and it renders the page only
partially anyway, making the UX feel very janky. It also doesn't delay
opening the popup until `DOMContentLoaded`, like Chrome does, so the
issue `popup-init.html` solves doesn't do anything anyway.

---

Here is side-by-side video comparison of `develop` vs
`popup-defer-scripts`.

This video displays the elapsed time from clicking the MetaMask Fox to
Lock Screen render.

The end of the video is a frame-by-frame comparison of the new "jank"
this PR introduces. The develop branch renders the fox immediately,
whereas the popup-defer-scripts branch renders an empty page for about
15 milliseconds.

These stats aren't representative of real world performance, but are
intended to illustrate relative performance and perceived performance.

Both builds were created by running `yarn build dist`.


https://github.com/user-attachments/assets/38b856ca-d269-48f7-b305-19f4b9c6dce8

---

1. build with `yarn dist`
2. install into your browser and go through onboarding
3. open MetaMask
4. Marvel at how much faster it is

---

Closes
[#25721](#25721)

[^1]: our HTML files are very tiny, and thus will be loaded all in one
go, we don't have to worry about packets being lost and retransmitted
over the network, delaying the browser's preload scanner.


<!--
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 the popup loading changes.

> [!WARNING]
> There was a conflict around webpack changes since those aren't
included in v12.2.0
> 
> Specifically, the build's script and some html files changed in the
webpack PR as well as in
#26555.
>


[![Open in GitHub
Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/26822?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/develop/.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/develop/.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: Mark Stacey <[email protected]>
@metamaskbot
Copy link
Collaborator

Builds ready [226d9a4]
Page Load Metrics (1548 ± 44 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint1386174115559244
domContentLoaded1374169315289144
load1381174315489144
domInteractive10149363014

@wachunei
Copy link
Member

wachunei commented Sep 3, 2024

I validated Ramps changes #25621 #25686

* origin/master:
  chore: Update changelog for v12.1.2 (#26886)
  fix: Fix Trezor signing and connecting [cherry-pick] (#26885)
  Version v12.1.2
Update v12.2.0 with changes from v12.1.2
@metamaskbot
Copy link
Collaborator

Builds ready [947095c]
Page Load Metrics (1672 ± 84 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint14042084167717082
domContentLoaded13952040165517383
load14062084167217684
domInteractive128531189

matteoscurati and others added 2 commits September 4, 2024 21:07
<!--
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.
-->

This PR updates or corrects the events related to notifications. The
events have also been updated in the Segment repository.

[![Open in GitHub

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

Fixes:

To test these new events, you can follow the standard procedure outlined
in the README file.

N/A

N/A

N/A

- [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/develop/.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/develop/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

- [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/26924?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/develop/.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/develop/.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.
…y enforcing inclusion of a blockExplorerUrls property which is not required (#26938)" (#26944)

Fix issue where `wallet_addEtherumChain` was incorrectly enforcing
inclusion of a blockExplorerUrls property which is not required

## **Description**

[![Open in GitHub

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

## **Related issues**

Fixes: #26844

## **Manual testing steps**

1. Go to https://protect.flashbots.net/summary?fast=true
2. Click "Add to Metamask"
3. You should see the add network confirmation and be able to add the
network configuration successfully to the wallet

## **Screenshots/Recordings**

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

### **Before**

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



https://github.com/user-attachments/assets/5c5718b5-f5e7-4499-9393-307bbe5c4eaa


### **After**



https://github.com/user-attachments/assets/14d1b1aa-f2d8-4133-9056-064d7875379a


## **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/develop/.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/develop/.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/26944?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/develop/.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/develop/.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

Builds ready [a60dbcb]
Page Load Metrics (1721 ± 101 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint27321621577455219
domContentLoaded144021451704209100
load144921601721210101
domInteractive136328157

This is a cherry-pick of #26332 and #26636 for v12.2.0, with the
TransactionController update removed from #26332.

Follow these steps to manually test:

* Create a personal Sentry account (if you don't have one already) and
create a `metamask` project
* Set the DSN of this project as `SENTRY_DSN_DEV` in your `.metamaskrc`
file
* Create a new dev build
* Install the build and go through onboarding, ensuring that you opt-in
to metrics
* Make a few page navigations

You should see the UI traces in the Sentry performance dashboard on your
personal account.

This was cherry-picked to get the benefits described in #26636 (#26332
was partially included only out of necessity). The original description
of #26636 is below:

## **Description**

Record a `UI Startup` Sentry trace to monitor startup times of the UI
pages.

In addition:

- Support use of `trace` utility function in non-asynchronous contexts.
- Remove `getMetaMetricsEnabled` check as this is already done in the
custom transport before submission.
- Generate default ID if omitted when starting and ending traces.

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

## **Related issues**

Fixes: #25724

## **Manual testing steps**

## **Screenshots/Recordings**

### **Before**

### **After**

<img width="966" alt="Sentry"
src="https://github.com/user-attachments/assets/355e835c-24c0-42e6-ab06-4b549c2c7973">

<img width="705" alt="Console"
src="https://github.com/user-attachments/assets/211c5445-ee05-4e5f-8de5-e60e8e3133d3">

## **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/develop/.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/develop/.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: Matthew Walsh <[email protected]>
@metamaskbot
Copy link
Collaborator

Builds ready [7cc4af7]
Page Load Metrics (1806 ± 107 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint27523371657498239
domContentLoaded152923211787224107
load154223311806223107
domInteractive15101372311

@danjm
Copy link
Contributor

danjm commented Sep 9, 2024

@SocketSecurity ignore-all

@danjm danjm merged commit de74411 into master Sep 9, 2024
71 checks passed
@danjm danjm deleted the Version-v12.2.0 branch September 9, 2024 14:57
@github-actions github-actions bot locked and limited conversation to collaborators Sep 9, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
extension-delivery INVALID-PR-TEMPLATE PR's body doesn't match template release-12.2.0 Issue or pull request that will be included in release 12.2.0 team-extension-platform
Projects
None yet
Development

Successfully merging this pull request may close these issues.