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.5.0 #27411

Merged
merged 250 commits into from
Oct 21, 2024
Merged

Version v12.5.0 #27411

merged 250 commits into from
Oct 21, 2024

Conversation

danjm
Copy link
Contributor

@danjm danjm commented Sep 26, 2024

📦 🚀

pnarayanaswamy and others added 30 commits August 30, 2024 12: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**

**Problem**:
The SIWE and other signature tests have been experiencing flakiness,
primarily due to unnecessary timeouts at the end of each test. These
timeouts occur because the test setup waits for all mock requests to
finish, even if some of those requests are not relevant to the specific
test. This results in the tests waiting for API endpoints that were
never called, causing unnecessary delays and timeouts.

**Solution**:
To resolve this, the fix involves splitting the mocked endpoints into
two separate functions. Most signature-related tests only need to check
for "Signature Approved" or "Signature Rejected" events, so these
endpoints are isolated into a dedicated function. This change ensures
that only the necessary mock endpoints are passed to each test, reducing
the likelihood of waiting for unused endpoints and improving overall
test reliability.

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

## **Related issues**

Fixes:
[#26760](#26760)
[#26761](#26761)
[26610](#26610)
[26613](#26613)

## **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.
<!--
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.
-->
Upgrade core packages to release 159.0.0.

Upgraded packages:

-  @metamask/address-book-controller (4.0.2 -> 5.0.0)
-  @metamask/announcement-controller (6.1.0-> 7.0.0)
-  @metamask/base-controller (5.0.1 -> 6.0.2)
-  @metamask/message-manager (7.3.0 -> 10.0.0)
-  @metamask/notification-controller (5.0.1 -> 6.0.0)
-  @metamask/rate-limit-controller (5.0.1 -> 6.0.0)
- @metamask/phishing-warning: (3.0.3 -> 4.0.0),
-  @metamask/build-utils (1.0.0 -> 3.0.0)

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

## **Related issues**

Fixes:
[#25401](#25401)

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

- [ ] 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: MetaMask Bot <metamaskbot@users.noreply.github.com>
…should queue signTypedData tx after eth_sendTransaction confirmation and signTypedData confirmation should target the correct network after eth_sendTransaction is confirmed @no-mmi` (#26794)

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

There is a race condition which happens when we trigger a Send from Dapp
1 (Localhost 7777) and quickly switch to Dapp 0 (Localhost 8545) and
trigger a Sign there.

What happens is that the network for the first Send, is taken for the
one on Dapp 0 (localhost 8545), so when we try to find the correct
network (7777) in the Send screen fails (see artifacts below).

```
// Check correct network on the send confirmation.
        await driver.findElement({
          css: '[data-testid="network-display"]',
          text: 'Localhost 7777',
        });
```
To mitigate this race condition, after we trigger the Send from Dapp 1
(Localhost 7777) we wait until the popup is open and then switch to Dapp
0 and proceed with the Sign action (Localhost 8545).

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

## **Related issues**

Fixes: #26795

## **Manual testing steps**

1. Check ci
2. Run test locally in webpack build `yarn test:e2e:single
test/e2e/tests/request-queuing/dapp1-send-dapp2-signTypedData.spec.js
--browser=chrome --retries=10 --stop-after-one-failure=true`

## **Screenshots/Recordings**
Notice the Send has Localhost 8545, but it should be Localhost 7777


![image](https://github.com/user-attachments/assets/cc7c0758-9587-451c-a8fc-2e9f0caaefef)


## **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.
To celebrate the @Gudahtt contribution to [yarn berry v4.4.1](https://github.com/yarnpkg/berry/releases/tag/%40yarnpkg%2Fcli%2F4.4.1), we're updating our yarn!

Updates:
1. Yarn to celebratory v4.4.1
2. Node to v20.17 (the bug locking us to v20.14 was fixed [here](nodejs/node#53089))
3. CircleCI `cimg` to Node v20.17
4. CircleCI ubuntu to `ubuntu-2404:current` (all of our GitHub Actions are already using `ubuntu-latest`, and I don't think there's a good reason to lock to a specific release of `ubuntu-2404`)
…test (#26779)

<!--
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 for flaky test "Phishing Detection Via Iframe should redirect users
..."
I am unable to reproduce the issue on my mac machine. However, based on
the logs and screenshot, it appears that the Dapp was taking time to
load after clicking the "Continue to the site" button on the phishing
page.

- ~~I added a delay to allow the Dapp sufficient time to load completely
before proceeding with further actions.~~
- To prevent any race conditions from getting the header element and
followed by getting the corresponding text from the element. I removed
that code.
- After Howard's suggestion, I updated the `switchToWindowWithTitle`
method with a conditional wait provided by Selenium. This approach works
effectively and provides logs in case of failure when the title is not
loaded.

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

## **Related issues**

Fixes:
#26505

## **Manual testing steps**

Run the below commands locally or in codespaces:
yarn
ENABLE_MV3=false yarn start:test
ENABLE_MV3=false yarn test:e2e:single
test/e2e/tests/phishing-controller/phishing-detection.spec.js
--browser=firefox

The test was executed x5 times against all the builds. Below is the link
for the Firefox browser as reported in the flaky test failure:

https://app.circleci.com/pipelines/github/MetaMask/metamask-extension/98030/workflows/344ccffd-8671-46a9-83ab-5dce7a0b9cdd/jobs/3649076

## **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).
- [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.
This PR makes it easier to SSH into CircleCI and use VNC.

See the new instructions here:

https://github.com/MetaMask/metamask-extension/blob/circleci-vnc/docs/ssh-to-circleci.md

(This code and procedure were based on the documentation from CircleCI,
which does **not** work as written
https://circleci.com/docs/browser-testing/#interacting-with-the-browser-over-vnc)

---------

Co-authored-by: Charly Chevalier <charly.chevalier@consensys.net>
Co-authored-by: Harika Jetpoluru <153644847+hjetpoluru@users.noreply.github.com>
Co-authored-by: seaona <54408225+seaona@users.noreply.github.com>
…e anymore (#26777)

## **Description**

The description of bug report issues created by this [Github
action](https://github.com/MetaMask/metamask-extension/blob/develop/.github/workflows/create-bug-report.yml)
wasn't up-to-date anymore.
It was still referencing Zenhub which we don't use anymore.

## **Related issues**

Fixes:

Same PR for Mobile repo:
MetaMask/metamask-mobile#10903

## **Manual testing steps**

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

## **Screenshots/Recordings**

See description of this [example
issue](gauthierpetetin-test/repo_test#198).

<img width="660" alt="Screenshot 2024-08-29 at 17 05 24"
src="https://github.com/user-attachments/assets/2929ff32-b6b5-41d2-9ff0-ce65acc29620">

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

---------

Co-authored-by: seaona <54408225+seaona@users.noreply.github.com>
## **Description**

Updates MATIC to POL in swaps UI

## **Related issues**

Fixes:

## **Manual testing steps**

1. Go to this page

Go to swaps screen for POL token, token should be POL not MATIC

## **Screenshots/Recordings**

<img width="318" alt="Screenshot 2024-08-30 at 12 28 52 PM"
src="https://github.com/user-attachments/assets/040385ef-de53-42a9-b589-138c3b9c6bb2">

## **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.
* origin/master:
  fix: Swaps UI should show POL not MATIC (#26827)
  chore: Update v12.1.1 changelog (#26824)
  cherry-pick(v12.1.1):  Bump `@metamask/eth-json-rpc-middleware` to `^14.0.0` (#26143) (#26626)
  fix: Cherry pick `1b4417d` for 12.1.1 (#26780)
  chore(cherry-pick):759b92e to 12.1.1 (#26802)
  fix: cherry pick accounts controller migration improvements (#26778)
  cherrypick: fix: `wallet_addEthereumChain` does not attach a `result` under certain conditions (#26726) (#26733)
  Version v12.1.1
…on (#26606)

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

Introduces support for ERC20 token transactions with the `approve` type.
This includes a new spending cap section and bespoke logic in the
"static simulation" section. Above a certain threshold, spending caps
are represented as "Unlimited".

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

## **Related issues**

Fixes:
[#2924](MetaMask/MetaMask-planning#2924)

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

<img width="472" alt="Screenshot 2024-08-22 at 12 30 02"
src="https://github.com/user-attachments/assets/2b23d5bd-f4d4-4301-b13d-89746954545c">
<img width="472" alt="Screenshot 2024-08-22 at 12 30 06"
src="https://github.com/user-attachments/assets/a4fd67bb-31a6-4d43-84c8-bca6fa4a5b45">


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

In order to instantiate a functioning communication between the
offscreen iframe for Ledger and the LedgerKeyring (through
`LedgerOffscreenBridge`), we need to make sure that the iframe is loaded
before sending any message to it.

We currently wait for the offscreen page to load, but the iframe load is
completely async and it will most likely be ready after the rest of the
offscreen page, leaving messages proxied to the iframe hanging forever.

On a higher level, this is dangerous because everytime we try to send a
message to the Ledger iframe the `KeyringController` controller-level
mutex is locked, and any other operation will wait for its release to
proceed - this creates a deadlock situation in the case the iframe does
not respond to a message.

This PR makes Ledger iframe initialization into a Promise, and the
offscreen page will wait for it to be resolved before sending the
"ready" signal back to the extension. To avoid waiting forever, the
Ledger initialisation promise races with a 5s timeout: in case of
timeout, interactions with Ledger accounts will not work during the
entire session (until the offscreen page is re-initialised, and another
attempt is made to init Ledger).

Note that the UI setup is not affected by this change, since the
Offscreen initialisation is awaited only when unlocking the wallet.

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

## **Related issues**

Progresses: #26840

## **Manual testing steps**

N/A

## **Screenshots/Recordings**

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

## **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 adds a new spec for testing the flow for pasting the encrypted
vault into the [vault decryptor
page](https://metamask.github.io/vault-decryptor/). This was suggested
by @davidmurdoch which also provided the logic for the implementation
:bowing_woman: .

At the moment, we were only testing the upload file functionality. Now
we test both the upload file, and the paste into the field.

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

## **Related issues**

Fixes: MetaMask/MetaMask-planning#3081

## **Manual testing steps**

1. Check ci
https://app.circleci.com/pipelines/github/MetaMask/metamask-extension/97427/workflows/97876a83-553e-4142-8915-32a05c931080/jobs/3626438
2. Or run test locally `yarn dist` && `yarn test:e2e:single
test/e2e/vault-decryption-chrome.spec.js --browser=chrome
--leave-running=true`

## **Screenshots/Recordings**


https://github.com/user-attachments/assets/e4f04b77-0596-4514-b065-07edd6212893




## **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.
chore: Update `develop` with changes from `v12.1.1`
This PR is to add an edit accounts modal

## **Related issues**

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

## **Manual testing steps**

1. Go to EditAccountsModal in storybook
2. Note: Two AvatarAccounts in This modal is not a bug related to this
PR

## **Screenshots/Recordings**


### **Before**

NA
### **After**

![Screenshot 2024-08-27 at 2 10
44 PM](https://github.com/user-attachments/assets/50d4325d-d69f-4188-9935-4190ba3583a6)

## **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 MMI tx flow is working again, we were missing the support for the
new redesign of the transactions confirmation UI.

## **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.
<!--
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 MMI support links to the new page.

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

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

**Context**
When customizing the nonce using a lower increment button nonce value is
set to 0, using higher increment button results in nonce = 1.

This PR aims to fix the support of the arrow buttons to
increase/decrease the number taking the suggested next nonce as the
base.

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

## **Related issues**

Fixes: #23535

## **Manual testing steps**

1. Enable custom nonce
2. Send Eth
3. Customize nonce using the arrow buttons

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

[Screencast from 21-08-2024
10:42:17.webm](https://github.com/user-attachments/assets/d4fc505f-e2f0-4636-8462-5f0c1a2e050b)



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

---------

Co-authored-by: sleepytanya <104780023+sleepytanya@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**

Fixes a problem where padding would not be applied correctly to the
first child of the Snaps UI container. We were expecting all root
elements to be `div`. But many different types of components are allowed
at the root. Quick fix by applying the padding no matter what type the
root element is.

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

## **Screenshots/Recordings**

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

### **Before**


![image](https://github.com/user-attachments/assets/4a6680cc-137b-419d-8265-52345d4414cc)


### **After**


![image](https://github.com/user-attachments/assets/8655005b-f37b-44eb-8624-3f6e75250051)
## **Description**

Our CI was setup to compare each branch with `develop`, and run any
tests that have changed since `develop` extra times to catch new flaky
test regressions. Unfortunately this was happening even for PRs that do
not target develop, resulting in massive lists of "changed" tests that
ended up causing persistent test timeouts.

The quality gate should only impact PRs that target `develop`. PRs that
target other branches no longer repeat "changed" tests. This should fix
release PR e2e test timeouts caused by excessive e2e test runs.

You can see an example of this problem occurring here:
https://app.circleci.com/pipelines/github/MetaMask/metamask-extension/98357/workflows/b61a16b5-acfd-411f-b82e-7a31706ca658/jobs/3660843
Notice that
`/home/circleci/project/test/e2e/tests/request-queuing/ui.spec.js`
appears 6 times in the full test list, as to every other "changed" test.

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

## **Related issues**

This quality gate was first introduced in #24556

## **Manual testing steps**

The script can be run locally if you setup "fake" CircleCI environment
variables to allow it to run properly. For example:

```
CIRCLE_PULL_REQUEST=#26822 yarn tsx ./.circleci/scripts/git-diff-develop.ts
```


The CI run for this PR can be viewed as well:
https://app.circleci.com/pipelines/github/MetaMask/metamask-extension/98369/workflows/e9de2170-a19e-433e-a83c-846eeb239842/jobs/3661034

## **Screenshots/Recordings**

N/A

## **Pre-merge author checklist**

- [x] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
Extension Coding
Standards](https://github.com/MetaMask/metamask-extension/blob/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.
…26756)

<!--
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 documents the manual test scenario for the 'Import account with
private key' feature. Below is a summary of the validations included in
this manual scenario:

- Validate that the account selector is present at the top of the
wallet.
- Validate that the 'Add account or hardware wallet' option is available
at the bottom of the account selector list.
- Validate that the 'Import account' option is available in the next
menu.
- Validate that the user is directed to the Import page upon selecting
'Import account'.
- Validate that the user can paste their private key and click 'Import'.
- Validate that the newly imported account appears in the account
selector dropdown with an 'Imported' tag next to it.


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

## **Related issues**

Fixes: #22006

## **Manual testing steps**

--> test/manual-scenarios/keyring/import account using private key.md
Rendered view of the manual scenario -
https://github.com/MetaMask/metamask-extension/blob/import-account-with-private-key-scenario/test/manual-scenarios/keyring/import%20account%20using%20private%20key.md
…erFrom simulation "Spending cap" (#26684)

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

Fixes PermitSingle, PermitBatch, PermitTransferFrom,
PermitBatchTransferFrom simulation to use their respective provided
token and amount in token details.

Additionally:
- adjusts styles to have an 8px gap between each "Spending Cap" entry
and right align content
- create PermitSimulationValueDisplay component to separate individual
token contract value logic
- adds tests
- adds sentry error to capture exception in case token isn't provided
for the relevant primaryTypes

dev note: majority of the newlines come from updated and new test
snapshots

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

## **Related issues**

Fixes: #26591
(PermitSingle)
Fixes: #26592
(PermitBatch)
## **Manual testing steps**

Test PermitSingle & PermitBatch with Improved Signature setting enabled

See related issues for repro steps

## **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/user-attachments/assets/aac7fa8c-285a-4d2b-bcec-84c7fc6245bf">
<!-- [screenshots/recordings] -->
See Issue screenshots

### **After PermitBatch**

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

![image](https://github.com/user-attachments/assets/4564530d-1c3d-430b-b821-15ed0fca6152)

## **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/26838?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.
<!--
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 copy and corresponding tests.

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

## **Related issues**

Fixes: MetaMask/MetaMask-planning#3063

## **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.
<!--
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 introduces an event to track the use or non-use of basic
functionality. This event was introduced to allow tracking of the status
of features—like notifications—that depend on external services and need
to be turned off if the user decides not to use the basic features.

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

## **Related issues**

N/A

## **Manual testing steps**

You can follow the standard procedure for testing the events as
described in the README.

## **Screenshots/Recordings**

N/A

### **Before**

N/A

### **After**

N/A

## **Pre-merge author checklist**

- [x] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
Extension Coding
Standards](https://github.com/MetaMask/metamask-extension/blob/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**

Moves the portfolio button so that it's next to the token price amount.

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

## **Related issues**

Fixes: MetaMask/MetaMask-planning#3201

## **Manual testing steps**

1. Go to the portfolio page
2. Check that the Portfolio button is present next to the price amount
of token
3. Click it to test it works fine

## **Screenshots/Recordings**

<img width="324" alt="Screenshot 2024-09-03 at 22 57 32"
src="https://github.com/user-attachments/assets/ab9a9818-d9d1-438e-9b66-1335c4e8c1c6">
<img width="331" alt="Screenshot 2024-09-03 at 22 58 54"
src="https://github.com/user-attachments/assets/f260799c-9e22-40dd-8fb8-1d26d3c011ed">



### **Before**

<img width="348" alt="Screenshot 2024-09-03 at 15 46 36"
src="https://github.com/user-attachments/assets/ca261c96-dd93-4699-8e51-d73cf5823cb2">


### **After**

<img width="331" alt="Screenshot 2024-09-03 at 22 58 54"
src="https://github.com/user-attachments/assets/f260799c-9e22-40dd-8fb8-1d26d3c011ed">


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

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

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

Fixes two problems with Snaps usage of `PhishingController`. Following
#25839 the
PhishingController expects full URLs instead of hostnames as the input
to `testOrigin`. In that PR, the argument of `isOnPhishingList` was
incorrectly changed. This PR also patches in some changes from the
`snaps` repo that are currently blocked by a release:
MetaMask/snaps#2835,
MetaMask/snaps#2750

This PR cherry-picks a commit from `develop` that fixes this:
1f1e142

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

## **Manual testing steps**

1. Create a Snap that links to an URL blocked with `eth-phishing-detect`
2. See that triggering the Snap is disallowed if the user has phishing
detection enabled
david0xd and others added 2 commits October 15, 2024 12:07
#27830)

Cherry-picked from:
#27799

## **Description**
Fix issue with sticky Snaps UI Footer component in extended view.

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

## **Related issues**
Fixes: n/a

## **Manual testing steps**
1. Try all the Snaps that use custom footer (Home Page Snap, Custom
Dialog Snap with custom UI, etc.).
2. Make sure that footer has correct width matching the width of the
content view.

## **Screenshots/Recordings**

### **Before**

![image](https://github.com/user-attachments/assets/f2a2c924-2bd9-451e-9b26-aadda9e94b22)

### **After**
![Screenshot 2024-10-11 at 20 38
13](https://github.com/user-attachments/assets/644d97f6-89b3-4971-bc8e-d51322888788)
![Screenshot 2024-10-11 at 20 38
48](https://github.com/user-attachments/assets/b65b113c-8aa1-4d54-b70c-ab88dad41505)
![Screenshot 2024-10-11 at 20 40
55](https://github.com/user-attachments/assets/215ae7a8-4e20-4a6b-a2ff-f4276515ded4)
![Screenshot 2024-10-11 at 20 41
15](https://github.com/user-attachments/assets/fa3f324d-3fc3-473b-81ea-bc4ce65ebaf3)
![Screenshot 2024-10-11 at 20 56
29](https://github.com/user-attachments/assets/6ad44d4b-a869-4f2a-9043-397e5730e757)

## **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.
…multiple parallel transactions (#27852)

## **Description**

Fix issue with nonce not updating when there are multiple transaction
created in parallel and once transaction is submitted.

## **Related issues**

Fixes: #27617

## **Manual testing steps**

1. Go to testdapp
2. create 2 transactions and submit first one
3. Nonce for second transaction should update

## **Screenshots/Recordings**
TODO

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

Cherry-pick of #27810
into 12.5.0.

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

## **Related issues**

Fixes: #27804

## **Manual testing steps**

1. Start a swap on Linea with a token that you have not granted approval
for
2. Observe that the swap does not fail

## **Screenshots/Recordings**

### **Before**


https://github.com/user-attachments/assets/57cdc5e5-cea7-48ad-ba13-38820ecc9155

### **After**


https://github.com/user-attachments/assets/91bbfbf4-8392-41ea-bfe8-d54813758f5c



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

Builds ready [1a65ee7]
Page Load Metrics (1822 ± 78 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint15732270181817182
domContentLoaded15392084177414168
load15802196182216278
domInteractive257545168

Copy link

socket-security bot commented Oct 16, 2024

New and removed dependencies detected. Learn more about Socket for GitHub ↗︎

Package New capabilities Transitives Size Publisher
npm/@adraffy/ens-normalize@1.10.1 None 0 446 kB adraffy
npm/@babel/code-frame@7.24.7 environment 0 24.1 kB nicolo-ribaudo
npm/@babel/generator@7.24.10 None +1 528 kB nicolo-ribaudo
npm/@babel/helper-environment-visitor@7.24.7 None 0 6.72 kB nicolo-ribaudo
npm/@babel/helper-hoist-variables@7.24.7 None 0 6.99 kB nicolo-ribaudo
npm/@babel/helper-member-expression-to-functions@7.24.8 None 0 105 kB nicolo-ribaudo
npm/@babel/helper-optimise-call-expression@7.24.7 None 0 55 kB nicolo-ribaudo
npm/@babel/helper-split-export-declaration@7.24.7 None 0 10.8 kB nicolo-ribaudo
npm/@babel/helper-string-parser@7.24.8 None 0 31.8 kB nicolo-ribaudo
npm/@babel/helper-validator-identifier@7.24.7 None 0 49.3 kB nicolo-ribaudo
npm/@babel/highlight@7.24.7 environment 0 20.3 kB nicolo-ribaudo
npm/@babel/parser@7.24.8 None 0 1.89 MB nicolo-ribaudo
npm/@babel/runtime@7.24.8 None 0 246 kB nicolo-ribaudo
npm/@babel/traverse@7.24.8 None 0 637 kB nicolo-ribaudo
npm/@babel/types@7.24.9 environment 0 2.41 MB nicolo-ribaudo
npm/@contentful/rich-text-html-renderer@16.6.8 None 0 149 kB contentful-ecosystem
npm/@contentful/rich-text-types@16.8.3 None 0 140 kB contentful-ecosystem
npm/@lavamoat/snow@2.0.2 None 0 306 kB weizman
npm/@metamask/accounts-controller@18.2.1 None +1 517 kB metamaskbot
npm/@metamask/address-book-controller@6.0.0 None 0 102 kB metamaskbot
npm/@metamask/announcement-controller@7.0.0 None 0 76.2 kB metamaskbot
npm/@metamask/assets-controllers@37.0.0 None +2 2.05 MB metamaskbot
npm/@metamask/bitcoin-wallet-snap@0.6.0 network 0 1.02 MB metamaskbot
npm/@metamask/build-utils@3.0.0 None 0 120 kB metamaskbot
npm/@metamask/ens-resolver-snap@0.1.2 network 0 531 kB metamaskbot
npm/@metamask/eth-hd-keyring@7.0.4 None 0 59.4 kB metamaskbot
npm/@metamask/eth-ledger-bridge-keyring@3.0.1 None 0 105 kB gudahtt
npm/@metamask/eth-simple-keyring@6.0.5 None 0 43.4 kB metamaskbot
npm/@metamask/eth-snap-keyring@4.3.3 None +1 288 kB metamaskbot
npm/@metamask/keyring-controller@17.2.2 Transitive: environment +1 603 kB metamaskbot
npm/@metamask/logging-controller@6.0.0 None 0 96.1 kB metamaskbot
npm/@metamask/message-manager@10.1.0 None 0 297 kB metamaskbot
npm/@metamask/notification-controller@6.0.0 None 0 78.9 kB metamaskbot
npm/@metamask/notification-services-controller@0.7.0 network +1 1.6 MB metamaskbot
npm/@metamask/phishing-controller@12.0.2 Transitive: network +2 899 kB danfinlay, gudahtt, kumavis, ...8 more
npm/@metamask/phishing-warning@4.0.0 None +1 1.9 MB danfinlay, gudahtt, kumavis, ...8 more
npm/@metamask/polling-controller@9.0.1 None 0 138 kB metamaskbot
npm/@metamask/ppom-validator@0.35.1 None 0 122 kB metamaskbot
npm/@metamask/preinstalled-example-snap@0.1.0 None 0 51.3 kB metamaskbot
npm/@metamask/profile-sync-controller@0.9.7 network +1 1.13 MB metamaskbot
npm/@metamask/rate-limit-controller@6.0.0 None 0 93 kB metamaskbot
npm/@metamask/selected-network-controller@18.0.1 None +1 310 kB metamaskbot
npm/@metamask/signature-controller@19.0.0 None 0 0 B
npm/@metamask/smart-transactions-controller@13.0.0 network +3 1.13 MB metamaskbot
npm/@metamask/snaps-controllers@9.7.0 None +2 2 MB metamaskbot
npm/@metamask/snaps-execution-environments@6.7.2 None +1 5.5 MB metamaskbot
npm/@metamask/snaps-rpc-methods@11.1.1 None 0 1.17 MB metamaskbot
npm/@metamask/snaps-sdk@6.5.1 network +1 1.75 MB metamaskbot
npm/@noble/ciphers@0.5.3 None 0 624 kB paulmillr
npm/@scure/base@1.1.7 None 0 122 kB paulmillr
npm/@sentry-internal/browser-utils@8.33.1 network 0 747 kB sentry-bot
npm/@sentry-internal/feedback@8.33.1 None 0 576 kB sentry-bot
npm/@sentry-internal/replay-canvas@8.33.1 None 0 531 kB sentry-bot
npm/@sentry-internal/replay@8.33.1 None 0 3.76 MB sentry-bot
npm/@sentry/browser@8.33.1 network 0 973 kB sentry-bot
npm/@sentry/core@8.33.1 None 0 1.94 MB sentry-bot
npm/@sentry/types@8.33.1 None 0 338 kB sentry-bot
npm/@sentry/utils@8.33.1 network 0 1.19 MB sentry-bot
npm/@swc/types@0.1.12 None 0 188 kB kdy1
npm/@types/eslint@8.56.11 None 0 193 kB types
npm/@types/pbkdf2@3.1.0 None 0 3.59 kB types
npm/@types/secp256k1@4.0.3 None 0 8.05 kB types
npm/@xstate/fsm@2.0.0 environment 0 62.5 kB xstate-release-bot
npm/abstract-level@1.0.4 None +1 570 kB vweevers
npm/array-buffer-byte-length@1.0.1 None 0 13.5 kB ljharb
npm/arraybuffer.prototype.slice@1.0.3 None 0 20.2 kB ljharb
npm/available-typed-arrays@1.0.7 None 0 20.4 kB ljharb
npm/b4a@1.6.4 None 0 27.6 kB kasperisager
npm/base-x@3.0.10 None 0 9.36 kB junderw
npm/browser-level@1.0.1 None 0 42.4 kB vweevers
npm/builtin-modules@3.3.0 unsafe 0 4.51 kB sindresorhus
npm/classic-level@1.4.1 filesystem 0 5.75 MB vweevers
npm/crypto-js@4.2.0 None 0 487 kB evanvosberg
npm/data-view-buffer@1.0.1 None 0 12.3 kB ljharb
npm/data-view-byte-length@1.0.1 None 0 9.99 kB ljharb
npm/data-view-byte-offset@1.0.0 None 0 12.2 kB ljharb
npm/diff@5.2.0 None 0 429 kB explodingcabbage
npm/duplexify@4.1.3 None 0 18.3 kB mafintosh
npm/es-abstract@1.23.3 None 0 2.38 MB ljharb
npm/es-object-atoms@1.0.0 None 0 9.17 kB ljharb
npm/es-set-tostringtag@2.0.3 None 0 13.9 kB ljharb
npm/eslint-compat-utils@0.1.2 filesystem 0 21.6 kB ota-meshi
npm/eslint-plugin-es-x@7.5.0 None 0 366 kB eslint-community-bot
npm/eslint-plugin-n@16.6.2 filesystem 0 348 kB weiran.zsd
npm/eta@3.4.1 None 0 272 kB nebrelbug
npm/ethereumjs-wallet@1.0.2 None +1 1.01 MB ralxz
npm/fast-uri@3.0.1 None 0 111 kB gurgunday
npm/function.prototype.name@1.1.6 None 0 25.5 kB ljharb
npm/get-symbol-description@1.0.2 None 0 14.3 kB ljharb
npm/glob@10.4.5 None 0 475 kB isaacs
npm/has-tostringtag@1.0.2 None 0 17.6 kB ljharb
npm/html-bundler-webpack-plugin@3.17.3 environment, filesystem, unsafe Transitive: shell +4 5.77 MB webdiscus
npm/internal-slot@1.0.7 None 0 20.5 kB ljharb
npm/is-array-buffer@3.0.4 None 0 17.6 kB ljharb
npm/is-builtin-module@3.2.1 None 0 3.88 kB sindresorhus
npm/is-data-view@1.0.1 None 0 15.6 kB ljharb
npm/is-negative-zero@2.0.3 None 0 27.1 kB ljharb
npm/is-shared-array-buffer@1.0.3 None 0 18.7 kB ljharb
npm/is-typed-array@1.1.13 None +1 64 kB ljharb
npm/jsdom@16.7.0 eval, filesystem, network, shell, unsafe +33 6.33 MB domenic
npm/level-supports@4.0.1 None 0 30.3 kB vweevers
npm/level-transcoder@1.0.1 None 0 35.9 kB vweevers
npm/level@8.0.1 None 0 85.1 kB vweevers
npm/napi-macros@2.2.2 None 0 16.8 kB mafintosh
npm/object-inspect@1.13.2 None 0 99.1 kB ljharb
npm/package-json-from-dist@1.0.0 None 0 33.9 kB isaacs
npm/possible-typed-array-names@1.0.0 None 0 10.9 kB ljharb
npm/queue-microtask@1.2.3 None 0 8.37 kB feross
npm/regexp.prototype.flags@1.5.2 None 0 40.4 kB ljharb
npm/run-parallel-limit@1.1.0 None 0 7.88 kB feross
npm/safe-array-concat@1.1.2 None 0 16.4 kB ljharb
npm/safe-regex-test@1.0.3 None 0 10.2 kB ljharb
npm/semver@7.6.3 None 0 95.8 kB npm-cli-ops
npm/set-function-name@2.0.2 None 0 16.7 kB ljharb
npm/stream-shift@1.0.3 None 0 4.46 kB mafintosh
npm/streamx@2.15.1 None 0 47.7 kB mafintosh
npm/string.prototype.trim@1.2.9 None 0 33.5 kB ljharb
npm/string.prototype.trimend@1.0.8 None 0 22.1 kB ljharb
npm/string.prototype.trimstart@1.0.8 None 0 22.9 kB ljharb
npm/typed-array-buffer@1.0.2 None 0 13.1 kB ljharb
npm/typed-array-byte-length@1.0.1 None 0 20 kB ljharb
npm/typed-array-byte-offset@1.0.2 None 0 20.3 kB ljharb
npm/typed-array-length@1.0.6 None 0 23.3 kB ljharb
npm/utf8@3.0.0 None 0 11.2 kB mathias

🚮 Removed packages: npm/@babel/code-frame@7.24.2, npm/@babel/generator@7.24.5, npm/@babel/helper-environment-visitor@7.22.20, npm/@babel/helper-hoist-variables@7.22.5, npm/@babel/helper-member-expression-to-functions@7.24.5, npm/@babel/helper-optimise-call-expression@7.22.5, npm/@babel/helper-string-parser@7.24.1, npm/@babel/helper-validator-identifier@7.24.5, npm/@babel/highlight@7.24.5, npm/@babel/parser@7.24.5, npm/@babel/runtime@7.25.6, npm/@contentful/content-source-maps@0.11.3, npm/@contentful/rich-text-html-renderer@16.6.10, npm/@contentful/rich-text-types@16.8.5, npm/@lavamoat/snow@2.0.1, npm/@metamask/accounts-controller@18.1.0, npm/@metamask/address-book-controller@4.0.1, npm/@metamask/announcement-controller@6.1.0, npm/@metamask/assets-controllers@36.0.0, npm/@metamask/bitcoin-wallet-snap@0.5.0, npm/@metamask/build-utils@1.0.0, npm/@metamask/eth-snap-keyring@4.3.1, npm/@metamask/logging-controller@5.0.0, npm/@metamask/message-manager@7.3.9, npm/@metamask/notification-controller@5.0.2, npm/@metamask/notification-services-controller@0.2.1, npm/@metamask/phishing-controller@12.0.3, npm/@metamask/phishing-warning@3.0.3, npm/@metamask/polling-controller@9.0.0, npm/@metamask/post-message-stream@8.1.0, npm/@metamask/preferences-controller@13.0.0, npm/@metamask/profile-sync-controller@0.2.1, npm/@metamask/rate-limit-controller@5.0.1, npm/@metamask/selected-network-controller@15.0.2, npm/@metamask/signature-controller@18.1.0, npm/@metamask/smart-transactions-controller@12.0.1, npm/@metamask/snaps-controllers@9.11.1, npm/@metamask/snaps-execution-environments@6.6.2, npm/@metamask/snaps-rpc-methods@11.0.0, npm/@metamask/snaps-sdk@6.3.0, npm/@noble/ciphers@0.5.2, npm/@scure/base@1.1.9, npm/@sentry-internal/browser-utils@8.19.0, npm/@sentry-internal/feedback@8.19.0, npm/@sentry-internal/replay-canvas@8.19.0, npm/@sentry-internal/replay@8.19.0, npm/@sentry/browser@8.19.0, npm/@sentry/core@8.19.0, npm/@sentry/types@8.19.0, npm/@sentry/utils@8.19.0, npm/@storybook/icons@1.2.10, npm/@swc/types@0.1.7, npm/@tootallnate/once@2.0.0, npm/@types/eslint@8.56.12, npm/@types/jsdom@20.0.0, npm/@types/tough-cookie@4.0.2, npm/@vercel/stega@0.1.2, npm/acorn-globals@7.0.1, npm/array-buffer-byte-length@1.0.0, npm/available-typed-arrays@1.0.5, npm/axios@1.7.7, npm/base-x@3.0.9, npm/call-bind@1.0.6, npm/contentful-resolve-response@1.9.0, npm/contentful-sdk-core@8.3.2, npm/contentful@10.15.1, npm/cssom@0.5.0, npm/d@1.0.0, npm/data-urls@3.0.2, npm/define-data-property@1.1.2, npm/es-abstract@1.21.2, npm/es-set-tostringtag@2.0.1, npm/eta@3.5.0, npm/ethereum-ens-network-map@1.0.2, npm/fast-copy@2.1.7, npm/foreach@2.0.6, npm/function.prototype.name@1.1.5, npm/get-symbol-description@1.0.0, npm/globalthis@1.0.1, npm/has-property-descriptors@1.0.1, npm/has-proto@1.0.1, npm/has-tostringtag@1.0.0, npm/hasown@2.0.0, npm/html-bundler-webpack-plugin@3.17.4, npm/html-encoding-sniffer@3.0.0, npm/internal-slot@1.0.6, npm/is-negative-zero@2.0.2, npm/is-shared-array-buffer@1.0.2, npm/is-typed-array@1.1.10, npm/jest-environment-jsdom@29.7.0, npm/jsdom@20.0.3, npm/json-pointer@0.6.2, npm/lodash.isstring@4.0.1, npm/next-tick@1.0.0, npm/nwsapi@2.2.7, npm/object-inspect@1.12.3, npm/object.assign@4.1.4, npm/p-throttle@4.1.1, npm/parse5@7.1.2, npm/regexp.prototype.flags@1.5.1, npm/safe-regex-test@1.0.0, npm/saxes@6.0.0, npm/set-function-length@1.2.1, npm/set-function-name@2.0.1, npm/storybook-dark-mode@4.0.2, npm/stream-shift@1.0.0, npm/string.prototype.trim@1.2.7, npm/string.prototype.trimend@1.0.6, npm/string.prototype.trimstart@1.0.6, npm/tough-cookie@4.1.3, npm/typed-array-length@1.0.4, npm/w3c-xmlserializer@4.0.0, npm/whatwg-encoding@2.0.0, npm/whatwg-mimetype@3.0.0, npm/which-typed-array@1.1.9, npm/xml-name-validator@4.0.0

View full report↗︎

hjetpoluru and others added 5 commits October 17, 2024 14:43
chore: Merge master into v12.5.0 (following v12.4.2)
…0.35.1` (#27939) (#27944)

Cherry-picks #27939
(9716e94) to v12.5.0

---------

Co-authored-by: cryptodev-2s <109512101+cryptodev-2s@users.noreply.github.com>
Co-authored-by: MetaMask Bot <metamaskbot@users.noreply.github.com>
@metamaskbot
Copy link
Collaborator

Builds ready [a3cf5f7]
Page Load Metrics (1859 ± 72 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint16942225185514971
domContentLoaded16872188183213665
load17072232185915072
domInteractive199341189

## **Description**

Adding 12.5.0 Changelog entries. 

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

---------

Co-authored-by: Dan J Miller <danjm.com@gmail.com>
@metamaskbot
Copy link
Collaborator

Builds ready [7954c6d]
Page Load Metrics (1979 ± 88 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint31223871810512246
domContentLoaded17522378194617182
load17782390197918388
domInteractive197744188

Cherry-picks #27943

## **Description**

This PR disables account syncing in prod until we have e2e tests and
documentation of proper testing.

There were no merge conflicts when picking these commits.

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

## **Related issues**

Fixes: #27943

## **Manual testing steps**

1. yarn build
2. Account syncing should not occur

## **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: Dan J Miller <danjm.com@gmail.com>
Co-authored-by: Mark Stacey <markjstacey@gmail.com>
@danjm
Copy link
Contributor Author

danjm commented Oct 21, 2024

@SocketSecurity ignore-all

New authors are known and network requests are needed. The native code warning is in a package that will not affect our prod builds

@metamaskbot
Copy link
Collaborator

Builds ready [ab0250e]
Page Load Metrics (1996 ± 90 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint37224111897395190
domContentLoaded16492359195118187
load16602417199618790
domInteractive20249544823

@danjm danjm merged commit 22bf4ad into master Oct 21, 2024
77 of 79 checks passed
@danjm danjm deleted the Version-v12.5.0 branch October 21, 2024 16:46
@github-actions github-actions bot locked and limited conversation to collaborators Oct 21, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
INVALID-PR-TEMPLATE PR's body doesn't match template release-12.5.0 Issue or pull request that will be included in release 12.5.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.