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 v11.13.0 #23368

Merged
merged 107 commits into from
Mar 25, 2024
Merged

Version v11.13.0 #23368

merged 107 commits into from
Mar 25, 2024

Conversation

benjisclowder
Copy link
Contributor

@benjisclowder benjisclowder commented Mar 7, 2024

RC v11.13.0

Screenshots/Recordings

Before

After

Pre-merge author checklist

  • I’ve followed MetaMask Coding Standards.
  • I've clearly explained what problem this PR is solving and how it is solved.
  • I've linked related issues
  • I've included manual testing steps
  • I've included screenshots/recordings if applicable
  • I’ve included tests if applicable
  • I’ve documented my code using JSDoc format if applicable
  • I’ve applied the right labels on the PR (see labeling guidelines). Not required for external contributors.
  • I’ve properly set the pull request status:
    • In case it's not yet "ready for review", I've set it to "draft".
    • In case it's "ready for review", I've changed it from "draft" to "non-draft".

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.

dbrans and others added 30 commits February 22, 2024 17:11
…#23092)

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

## **Description**
Add `useFirstPartyContractName` hook to find names for our first-party
contracts based on their address and chainID.

Integrated with `useDisplayName` to ensure Petnames recognize these
contracts correctly.

**Why It Matters:**
Prior to Petnames, MetaMask displayed first-party contracts like the
MetaMask Bridge as cryptic hex addresses. This wasn't very
user-friendly. However, with the introduction of Petnames in version
11.11, these addresses will start appearing even more alarming due to
the new color scheme and icons. Our update aims to make these contracts
easily recognizable and less intimidating.

Before Petnames:

<img
src="https://github.com/MetaMask/metamask-extension/assets/507015/1ce9a85e-43b0-4fe3-a2ba-67bcd858a738"
width="300px"/>

With Petnames, before this PR:

<img
src="https://github.com/MetaMask/metamask-extension/assets/507015/bdedae38-80dc-405c-80b4-ce1ad599bf57"
width="300px"/>



## **Related issues**

Fixes: MetaMask/MetaMask-planning#2136

## **Manual testing steps**

1. Set the current chain to mainnet
2. Start a send transaction from the extension wallet
3. Put `0x0439e60F02a8900a951603950d8D4527f400C3f1` as the recipient
4. Click "Next"
5. On the confirmation screen, the recipient should be labelled as
"MetaMask Bridge"

If you want to test other addresses and names on other chains, you can
refer to [first-party-contracts.ts in this PR for a full
list](https://github.com/MetaMask/metamask-extension/pull/23092/files#diff-68785145ed32475edef8bbc5869898d31b70a56a7005c43657bec065b7450c2e).

## **Screenshots/Recordings**

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

### **Before**

See description

### **After**


![image](https://github.com/MetaMask/metamask-extension/assets/507015/412ba102-cda0-42df-8062-df748ddc2178)


![image](https://github.com/MetaMask/metamask-extension/assets/507015/a18ddaa8-1c50-404e-b7c8-819c62444673)


## **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 clearly explained what problem this PR is solving and how it
is solved.
- [ ] I've linked related issues
- [ ] I've included manual testing steps
- [ ] I've included screenshots/recordings if applicable
- [ ] 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.
- [ ] I’ve properly set the pull request status:
  - [ ] In case it's not yet "ready for review", I've set it to "draft".
- [ ] In case it's "ready for review", I've changed it from "draft" to
"non-draft".

## **Pre-merge reviewer checklist**

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

This PR fixes two problems that cause the same bug. We are currently not
effectively generating unique keys for components used in Snaps custom
UI. This becomes a problem especially when using dynamic UI and
re-rendering the screen where React is unable to clean up the previous
screen and may fail to remove old components.

The fix is two-fold: First, we need to always have a unique suffix
("root key") for our keys, so that changing the UI content always
re-renders the entire screen and cleans out old components. Secondly, we
need to restore a trick that was used before recent changes to
`elementKeyIndex`. When using an object container for `elementKeyIndex`
we can reference the same number value across recursion. In a recent PR
this trick was removed in favor of simply passing a number, but passing
the number passes the literal value and thus results in duplicates keys
in potentially complex component trees.

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

In #22828 we intended
to remove `setInputState` from the values passed in `getTemplateValues`
for confirmations as it is no longer needed. We forgot to remove it from
the function itself. This PR fixes that. This makes sure that
confirmation templates now again get their `data`.

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

Updates MMI visual Snapshots.

Can be checked in GH "Files changed" tab -> Swipe view option and drag

## **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 Coding
Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've clearly explained what problem this PR is solving and how it
is solved.
- [ ] I've linked related issues
- [ ] I've included manual testing steps
- [ ] I've included screenshots/recordings if applicable
- [ ] 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.
- [ ] I’ve properly set the pull request status:
  - [ ] In case it's not yet "ready for review", I've set it to "draft".
- [ ] In case it's "ready for review", I've changed it from "draft" to
"non-draft".

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

We're seeing ppom throwing errors on Flask, but we don't have further
details on what the error is. We should capture more details about the
error.

#22728 fixes this but, this PR is to do some code cleanup suggested on
that PR.

## **Related issues**

Fixes:
[#1535](https://github.com/MetaMask/MetaMask-planning/issues/1535)
#22728

## **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 clearly explained what problem this PR is solving and how it
is solved.
- [x] I've linked related issues
- [x] I've included manual testing steps
- [x] I've included screenshots/recordings if applicable
- [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 properly set the pull request status:
  - [ ] In case it's not yet "ready for review", I've set it to "draft".
- [x] In case it's "ready for review", I've changed it from "draft" to
"non-draft".

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

Fixes an issue where the image files for some networks were not present
in the filesystem, causing metamask to crash when trying to load them.
The affected chains were:

```
0x288 ./images/endurance-smart-chain.png
0x4d2 ./images/setp.svg
0x6a ./images/velas.svg
0x133e40 ./images/zkatana.svg
```

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

## **Related issues**

Fixes: #23084

## **Manual testing steps**

Add any of the 4 affected chains to metamask, and visit the settings ->
networks page. should not crash.

## **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 Coding
Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've clearly explained what problem this PR is solving and how it
is solved.
- [ ] I've linked related issues
- [ ] I've included manual testing steps
- [ ] I've included screenshots/recordings if applicable
- [ ] 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.
- [ ] I’ve properly set the pull request status:
  - [ ] In case it's not yet "ready for review", I've set it to "draft".
- [ ] In case it's "ready for review", I've changed it from "draft" to
"non-draft".

## **Pre-merge reviewer checklist**

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

I forgot to expose the `label` prop of the Snap custom UI `input`
component. This PR fixes it.

## **Manual testing steps**

1. Spin up a custom UI screen with an input with a label
2. The label should render

## **Screenshots/Recordings**


![image](https://github.com/MetaMask/metamask-extension/assets/13910212/f96fd383-c006-4a04-af4c-609803f4b50f)

## **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 clearly explained what problem this PR is solving and how it
is solved.
- [ ] I've linked related issues
- [ ] I've included manual testing steps
- [ ] I've included screenshots/recordings if applicable
- [ ] 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.
- [ ] I’ve properly set the pull request status:
  - [ ] In case it's not yet "ready for review", I've set it to "draft".
- [ ] In case it's "ready for review", I've changed it from "draft" to
"non-draft".

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

Adds e2e tests for the request queuing system. Tests include enable the
toggle settings, sending a tx from a different selected/global network
which results in a switch chain request, and request queuing for
multiple daps on different networks.

<!--
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: https://github.com/MetaMask/MetaMask-planning/issues/1404

## **Manual testing steps**

1. `yarn && yarn build:test`
2. `yarn test:e2e:single
test/e2e/tests/request-queuing/enable-queuing.spec.js --browser=chrome`
3. `yarn test:e2e:single
test/e2e/tests/request-queuing/switch-network.spec.js --browser=chrome`
4. `yarn test:e2e:single
test/e2e/tests/request-queuing/multiple-networks-dapps-txs.spec.js
--browser=chrome`
5. All request queuing tests should pass individually. `yarn
test:e2e:chrome && yarn test:e2e:firefox` for a bonus.

## **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 clearly explained what problem this PR is solving and how it
is solved.
- [x] I've linked related issues
- [x] I've included manual testing steps
- [x] I've included screenshots/recordings if applicable
- [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 properly set the pull request status:
  - [ ] In case it's not yet "ready for review", I've set it to "draft".
- [x] In case it's "ready for review", I've changed it from "draft" to
"non-draft".

## **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: Alex Donesky <[email protected]>
## **Description**

Removes Goerli network from the settings=>Network tab.
Removes Goerli network from network-display picker.
When the user tried to add a network manually and he attempts to add
goerli network, we display a new modal to say that the network is
deprecated.

Designs for the new Modal here:
https://www.figma.com/file/KXgbxFucvk3FM5VULGZmzk/Assets%3A-Bug-Fixes?node-id=442%3A4490&mode=dev

## **Related issues**

Fixes: MetaMask/mobile-planning#1368

## **Manual testing steps**

1. Go to Settings
2. Click on Nework
3. you should not be able to see goerli testnetwork
4. Go back to home page
5. Click on network display picker
6. You should not be able to see goerli testnetwork.
7. Go to home page
8. Click on Add network manually
9. Try adding goerli network
10. You should be able to see a new modal saying that the network is
deprecated and you should not be able to add goerli.

## **Screenshots/Recordings**

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

### **Before**


https://github.com/MetaMask/metamask-extension/assets/10994169/6b2b0c7b-22c6-4fcd-a04e-0395aec539ad


### **After**


https://github.com/MetaMask/metamask-extension/assets/10994169/7f168355-d011-4bd8-a0c5-b3bca38a4122


## **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 clearly explained what problem this PR is solving and how it
is solved.
- [ ] I've linked related issues
- [ ] I've included manual testing steps
- [ ] I've included screenshots/recordings if applicable
- [ ] 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.
- [ ] I’ve properly set the pull request status:
  - [ ] In case it's not yet "ready for review", I've set it to "draft".
- [ ] In case it's "ready for review", I've changed it from "draft" to
"non-draft".

## **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: Antonio Regadas <[email protected]>
## **Description**

If user tries to cancel transaction which is already confirmed, we would
like to show them a modal to show a link to block explorer.

## **Related issues**

Fixes: #22314
Related: #22663

## **Manual testing steps**

Please see the recording. 

## **Screenshots/Recordings**


https://github.com/MetaMask/metamask-extension/assets/7644512/861ef616-89a4-4292-8a2b-8a1733f2d88b

## **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 clearly explained what problem this PR is solving and how it
is solved.
- [x] I've linked related issues
- [x] I've included manual testing steps
- [x] I've included screenshots/recordings if applicable
- [ ] 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.
- [ ] I’ve properly set the pull request status:
  - [ ] In case it's not yet "ready for review", I've set it to "draft".
- [ ] In case it's "ready for review", I've changed it from "draft" to
"non-draft".

## **Pre-merge reviewer checklist**

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

---------

Co-authored-by: MetaMask Bot <[email protected]>
#22530 broke eslint
for `*.test.ts` and `*.test.tsx` files. This PR restores eslint
functionality in those files.

In order for eslint to work with typescript files the typescript files
need to have a corresponding `tsconfig.json`. Instead of having a
separate config for our test files I've added the test files to our
existing `tsconfig.json`. Many of the tests didn't pass the type
checker, so I had to update types in the tests to get everything
working.

This PR does not restore eslint for `*.stories.ts(x)` files. I think
that should be in another PR, as there are 40 stories files that don't
pass the type checker.
## Updates Sass

Updates `sass` to the latest version, while also switching to
`sass-embedded` (maintained by the same team, is faster than sass, and
we don't need to patch it anymore!).

## Moves fonts

This PR also moves the `fonts` directory to be relative to the CSS file
that imports it. This helps with two things:

1. its just nice to use _real_ relative paths to files that are using
them while developing (not just in the final build)
2. the webpack build will work differently: it _requires_ all the
imports to use relative paths (there is a hack I can put in place to not
require relative paths, but meh. I don't want to do that :-) ).

## Use `@use` for the design-system instead of `@import`

The biggest change in this PR is moving towards the use of `@use` and
away from `@import`, which is slated to be completely removed from Sass
in some distance future release.

### Bonus savings!

This PR also fixes a the duplication of CSS, as the design-system
previously included actual CSS (colors, fonts, and font-awesome styles)
and reduces the output size from ~1700KB to ~1300KB. The issue with that
some devs were already `@use`ing the `design-system`, which was
re-including its all of its rules (mentioned above).

### ⚠️ Changes How We Write SCSS

So, from now on, if someone wants to use something from the
design-system they'll need to put `@use design-system";` at the top of
the SCSS file.
## **Description**

The Prettier ESLint VSCode extension updated, and now our default
formatters don't work anymore

https://marketplace.visualstudio.com/items?itemName=rvest.vs-code-prettier-eslint

The new version requires the package `prettier-eslint` to be installed.

## **Manual testing steps**

1. Run `yarn`
2. Open a file in VSCode and change it so it's formatted incorrectly
3. Run the formatter
    **Windows:** Shift + Alt + F
    **Mac:** Shift + Option + F

---------

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

Two improvements to `yarn download-builds`

1. No longer uses `sudo`
2. More graceful exit if no builds can be downloaded

## **Manual testing steps**

1. Run `yarn download-builds` in a place that would have required `sudo` before
2. Make sure no password is required
## **Description**

This PR adds test coverage for About MetaMask section - Links using
TestScript which is critical flow in the extension.

## **Related issues**

Fixes: #22812

## **Manual testing steps**

Run the tests locally checkout to the branch
yarn
yarn start:test
yarn test:e2e:single
test/e2e/tests/settings/about-metamask/ui-validation.spec.ts
--browser=firefox --debug --leave-running
yarn test:e2e:single
test/e2e/tests/settings/about-metamask/ui-validation.spec.ts
--browser=chrome --debug --leave-running

## ** Notes **
This PR specifically addresses the links found in the About section,
which is an essential aspect of the extension. This section provides
users with access to support and privacy-related information, making it
a critical pathway for user engagement and trust.

Initially, my strategy involved validating the functionality by clicking
on the links within this section, which would then open in a new tab in
the web browser, directing to the MetaMask and ConsenSys sites. However,
I encountered a challenge: we needed to include the links in the
privacy-snapshot.json file, along with the corresponding child links
(such as YouTube, Twitter, etc.).

Consequently, the decision was made to avoid clicking on the links
directly. Instead, we opted to validate the href attributes, and this
task was successfully completed as part of the end-to-end (e2e) testing
process. I strongly agree with the feedback provided by @seaona and I
believe that this validation process should indeed be incorporated into
the unit testing due to the effort involved in the validation now.

After dedicating some time to learning, I was able to write the unit
tests and also have the e2e tests for comparative purposes. I also
intend to document this here for future reference on the approach taken.

## **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 clearly explained what problem this PR is solving and how it
is solved.
- [x] I've linked related issues
- [x] I've included manual testing steps
- [ ] I've included screenshots/recordings if applicable
- [ ] 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.
- [ ] I’ve properly set the pull request status:
  - [ ] In case it's not yet "ready for review", I've set it to "draft".
- [ ] In case it's "ready for review", I've changed it from "draft" to
"non-draft".

## **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 our e2e tests to use Sepolia testnet.


## **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 Coding
Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've clearly explained what problem this PR is solving and how it
is solved.
- [ ] I've linked related issues
- [ ] I've included manual testing steps
- [ ] I've included screenshots/recordings if applicable
- [ ] 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.
- [ ] I’ve properly set the pull request status:
  - [ ] In case it's not yet "ready for review", I've set it to "draft".
- [ ] In case it's "ready for review", I've changed it from "draft" to
"non-draft".

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

Hides preinstalled Snaps from the Snaps list view by omitting them from
the `getSnapsList` selector. This is a prerequisite to start using the
preinstalled Snaps functionality.

This was originally part of
#22435
## **Description**
Update @metamask/user-operation-controller to v4
<!--
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/23160?quickstart=1)

## **Related issues**

Fixes:

## **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 Coding
Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've clearly explained what problem this PR is solving and how it
is solved.
- [ ] I've linked related issues
- [ ] I've included manual testing steps
- [ ] I've included screenshots/recordings if applicable
- [ ] 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.
- [ ] I’ve properly set the pull request status:
  - [ ] In case it's not yet "ready for review", I've set it to "draft".
- [ ] In case it's "ready for review", I've changed it from "draft" to
"non-draft".

## **Pre-merge reviewer checklist**

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

---------

Co-authored-by: MetaMask Bot <[email protected]>
Co-authored-by: legobt <[email protected]>
## **Description**
This PR adds the ability to use Accounts in the Avatar Group component,
and adds a new Account Group in the Connection List Item for non-snap
items. TODO: tooltips (DS creating new component), and per-dapp network
badges.
<!--
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/23080?quickstart=1)

## **Related issues**

Fixes: https://github.com/MetaMask/MetaMask-planning/issues/1980

## **Manual testing steps**

1. Open Metamask > All Permissions
2. Verify that Account avatar groups are limited to 5 showing per dapp

## **Screenshots/Recordings**

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

### **Before**

<!-- [screenshots/recordings] -->
<img width="356" alt="image"
src="https://github.com/MetaMask/metamask-extension/assets/10986371/9cfe77b1-1927-434a-beb4-fd36ff44c676">


### **After**

<!-- [screenshots/recordings] -->
<img width="360" alt="image"
src="https://github.com/MetaMask/metamask-extension/assets/10986371/84367c90-87d5-411e-930f-89523e20c1f5">



## **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 clearly explained what problem this PR is solving and how it
is solved.
- [ ] I've linked related issues
- [ ] I've included manual testing steps
- [ ] I've included screenshots/recordings if applicable
- [ ] 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.
- [ ] I’ve properly set the pull request status:
  - [ ] In case it's not yet "ready for review", I've set it to "draft".
- [ ] In case it's "ready for review", I've changed it from "draft" to
"non-draft".

## **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**
Fixing AvatarGroup tsx test failures due to avatarType being a required
type
<!--
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/23184?quickstart=1)

## **Related issues**

Fixes: #23080

## **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 Coding
Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've clearly explained what problem this PR is solving and how it
is solved.
- [ ] I've linked related issues
- [ ] I've included manual testing steps
- [ ] I've included screenshots/recordings if applicable
- [ ] 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.
- [ ] I’ve properly set the pull request status:
  - [ ] In case it's not yet "ready for review", I've set it to "draft".
- [ ] In case it's "ready for review", I've changed it from "draft" to
"non-draft".

## **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 is to add badge status in the Account List

## **Related issues**

Fixes:
[1942](https://app.zenhub.com/workspaces/metamask-wallet-ux-63529dce65cbb100265a3842/issues/gh/metamask/metamask-planning/1942)

## **Manual testing steps**

1. Run extension using MULTICHAIN=1 yarn start
2. Connect Metamask to a dapp
3. Open extension in popup view
4. Go to Accounts List
5. Check the badge in accounts list

## **Screenshots/Recordings**

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

### **Before**
![Screenshot 2024-02-19 at 2 28
09 PM](https://github.com/MetaMask/metamask-extension/assets/39872794/6888e98a-6021-47f4-b1ed-d7477a1319c8)


### **After**

#### Popup View
![Screenshot 2024-02-19 at 2 27
37 PM](https://github.com/MetaMask/metamask-extension/assets/39872794/bb56ff13-f7b7-45e2-a8e1-840159348ed8)

#### Full Screen View 
![Screenshot 2024-02-19 at 2 28
44 PM](https://github.com/MetaMask/metamask-extension/assets/39872794/affdf869-28ce-4525-a905-55cd2cce5969)



## **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 clearly explained what problem this PR is solving and how it
is solved.
- [ ] I've linked related issues
- [ ] I've included manual testing steps
- [ ] I've included screenshots/recordings if applicable
- [ ] 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.
- [ ] I’ve properly set the pull request status:
  - [ ] In case it's not yet "ready for review", I've set it to "draft".
- [ ] In case it's "ready for review", I've changed it from "draft" to
"non-draft".

## **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: Antonio Regadas <[email protected]>
When creating transactions on a Linea network, use the updated gas fee
estimates provided by the `linea_estimateGas` RPC method.
## **Description**

When you go to the popular network list, on an already existing network,
the "Suggested ticker symbol: [symbol name]" appears. This should only
appear with new added custom networks.

The suggestion is also duplicating the exact symbol that's been already
added.


## **Related issues**

Fixes: #22491 

## **Manual testing steps**

1. Go to popular network
2. Try to add one of them 
3. go to edit network form
4. the Symbol will be suggested

## **Screenshots/Recordings**

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

### **Before**

<!-- [screenshots/recordings] -->
<img width="1100" alt="Screenshot 2024-02-26 at 13 41 19"
src="https://github.com/MetaMask/metamask-extension/assets/26223211/0c8b2ad2-5415-4b2c-b529-574947a56146">


### **After**

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

<img width="1124" alt="Screenshot 2024-02-26 at 13 39 55"
src="https://github.com/MetaMask/metamask-extension/assets/26223211/8cf1ce5f-a955-474a-9951-0a55946209b2">

## **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 clearly explained what problem this PR is solving and how it
is solved.
- [x] I've linked related issues
- [x] I've included manual testing steps
- [x] I've included screenshots/recordings if applicable
- [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.
- [x] I’ve properly set the pull request status:
  - [ ] In case it's not yet "ready for review", I've set it to "draft".
- [x] In case it's "ready for review", I've changed it from "draft" to
"non-draft".

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

## **Description**

We are seeing an error in prod that could only be explained if a
migration fails. This PR adds some error handling to better detect and
monitor one possible source of migration failure.

The prod error is:
> TypeError getSelectedInternalAccount(ui/selectors/selectors.js)
> Cannot read properties of undefined (reading 'selectedAccount')

https://metamask.sentry.io/issues/4999905586/?project=273505&query=is%3Aunresolved+release%3A11.10.0+is%3Anew&referrer=issue-stream&statsPeriod=7d&stream_index=9

## **Manual testing steps**

Unit tests should pass. Also:

1. Build this branch and install metamask
2. During the onboarding flow, make sure to opt _in_ to metametrics
3. Run the following script in the background console
```
chrome.storage.local.get(({ data, meta }) => chrome.storage.local.set({ data: { ...data, PreferencesController: {selectedAddress: undefined} }, meta: {...meta, version: 104} }, () => { window.location.reload() }))
```
You should see a network request to sentry with
`state.PreferencesController?.selectedAddress is undefined` in the
payload

## **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 clearly explained what problem this PR is solving and how it
is solved.
- [ ] I've linked related issues
- [ ] I've included manual testing steps
- [ ] I've included screenshots/recordings if applicable
- [ ] 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.
- [ ] I’ve properly set the pull request status:
  - [ ] In case it's not yet "ready for review", I've set it to "draft".
- [ ] In case it's "ready for review", I've changed it from "draft" to
"non-draft".

## **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.
1 . This PR is to add the Connections page.
2. Have used Header, Content and Footer Structure
3. This Pr is for the state when metamask is not connected to the site.
4. For the non connected state, I have created a separate component and
have a snapshot test for that

NOTE: I have not added the test for connections page. I will add it once
I implement the connected state as well.


## **Related issues**

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

## **Manual testing steps**

1. Run extension with Multichain Feature Flag in Popup View
2. Click on the globe icon
3. Check the state when site is not connected.

## **Screenshots/Recordings**

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

### **Before**

NA
### **After**

![Screenshot 2024-02-21 at 9 24
20 PM](https://github.com/MetaMask/metamask-extension/assets/39872794/5b34341f-732b-47ac-bb84-adbf778c5648)

## **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 clearly explained what problem this PR is solving and how it
is solved.
- [ ] I've linked related issues
- [ ] I've included manual testing steps
- [ ] I've included screenshots/recordings if applicable
- [ ] 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.
- [ ] I’ve properly set the pull request status:
  - [ ] In case it's not yet "ready for review", I've set it to "draft".
- [ ] In case it's "ready for review", I've changed it from "draft" to
"non-draft".

## **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: Victor Thomas <[email protected]>
Co-authored-by: David Walsh <[email protected]>
## Required Action

Prior to merging this pull request, please ensure the following has been
completed:
- [x] The lines specifying `branches` correctly specifies this
repository's default branch (usually `main`).
- [ ] Any paths you would like to ignore have been added to the
`paths_ignored` configuration option (see
[setup](https://github.com/MetaMask/Security-Code-Scanner/blob/main/README.md#setup))
- [x] Any existing CodeQL configuration has been disabled.

## What is the Security Code Scanner?
This pull request enables the [MetaMask Security Code
Scanner](https://github.com/metamask/Security-Code-Scanner/) GitHub
Action. This action runs on each pull request, and will flag potential
vulnerabilities as a review comment. It will also scan this repository's
default branch, and log any findings in this repository's [Code Scanning
Alerts
Tab](https://github.com/metamask/metamask-extension/security/code-scanning).

<img width="500" alt="Screenshot 2024-02-12 at 9 19 05 PM"
src="https://github.com/MetaMask/temp-poc-templates-repo/assets/15018469/327691d5-84e6-4603-859d-ad84c82a8b05">

The action itself runs various static analysis engines behind the
scenes. Currently, it is only running GitHub's CodeQL engine. For this
reason, we recommend disabling any existing CodeQL configuration your
repository may have.

## How do I interact with the tool?

Every finding raised by the Security Code Scanner will present context
behind the potential vulnerability identified, and allow the developer
to fix, or dismiss it.

The finding will automatically be dismissed by pushing a commit that
fixes the identified issue, or by manually dismissing the alert using
the button in GitHub's UI. If dismissing an alert manually, please add
any additional context surrounding the reason for dismissal, as this
informs our decision to disable, or improve any poor performing rules.

<img width="983" alt="Screenshot 2024-02-12 at 8 41 46 PM"
src="https://github.com/MetaMask/temp-poc-templates-repo/assets/15018469/ca1c7083-966b-4025-8722-65900dbd1b1b">



For more configuration options, please review the tool's
[README](https://github.com/MetaMask/Security-Code-Scanner/blob/main/README.md).
For any additional questions, please reach out to
`@mm-application-security` slack.

---------

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

Whenever we trigger a signature/transaction, if we click on the Report
False Positive link we see that the Chain Name is left empty.
Affected flows:
- in Mainnet, only Singatures
- in the rest of nets, Singatures + Transactions

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

## **Related issues**

Fixes: #23067 

## **Manual testing steps**

1. Enable Blockaid
2. Select Mainnet
3. Trigger a malicious signature
4. Click Report False Positive
5. See details
6. See Chain Name missing
7. Checkout this branch and deploy
8. Repease 1-5
9. See Chain name is now displayed

## **Screenshots/Recordings**

### **Before**


https://github.com/MetaMask/metamask-extension/assets/54408225/d9a08fb6-e2ce-49c7-9812-76a0742e48fa

### **After**


https://github.com/MetaMask/metamask-extension/assets/44811/b5d7c4b6-627d-49d4-9817-545cfd3c65b2

## **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 clearly explained what problem this PR is solving and how it
is solved.
- [x] I've linked related issues
- [x] I've included manual testing steps
- [x] I've included screenshots/recordings if applicable
- [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 properly set the pull request status:
  - [ ] In case it's not yet "ready for review", I've set it to "draft".
- [x] In case it's "ready for review", I've changed it from "draft" to
"non-draft".

## **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**
In
[this](https://app.circleci.com/pipelines/github/MetaMask/metamask-extension/71054/workflows/acf777f0-8e6e-4c80-a746-6565c7d3b3bb/jobs/2388143/tests)
recent flaky test, the button continue for sending eth to another
address was clicked before max fee is calculated and hence we didn't
reach the total calculation and button enabled (see screenshot
[here](https://circleci-tasks-prod.s3.us-east-1.amazonaws.com/storage/artifacts/fb281712-ea41-446f-b28f-c0bea18842cc/8560d0e1-2f72-4ecd-8753-12c17c19895f/9/test-artifacts/chrome/Send%20ETH%20from%20inside%20MetaMask%20finds%20the%20transaction%20in%20the%20transactions%20list%20when%20sending%20to%20a%20Multisig%20Address/test-failure-screenshot.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAQVFQINEOLMSJMIH3%2F20240227%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240227T162622Z&X-Amz-Expires=60&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEPH%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMSJHMEUCIQCXpVbctwIwYlzzk3w5WltOGxKUQP4dN1R22L1W3KHZWQIgU7NqRviwH7bXl4RB49qvgkTBDtv7Mp6zqYB7giAzbssqtAII2f%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARADGgwwNDU0NjY4MDY1NTYiDIBqb9zzf9lscXpd1CqIAoPw9bWdcTikirjQzALziQTb1KbHH2KnJtOMbUEa1QWEXz9vU6rQ22DdeT%2FK5W%2FkcLXkiJmKe%2Btq%2FsQiM3TI2cu8SJLewe0Y9RVZ%2B6CAmBvtDhDpdITDriswMub7H%2F6kjjJQYfpvnyK%2BL%2BS1KdpgwBlSU9y9C%2FZ495GH0q%2BmHQv4fQ4gNJbME11VkyygsXlMCaG79awBH%2Fw2KujrrYYZjxSni%2FLkShZvaI9cV8Wpar7gR4aIBB58awTG4Lzs3Hwo%2Bt5qqFMzzoQ2YT0Cukog5ZhCINMlYPik5GyanNS5MdpxIuRCZ7vZ4lJZrSZgCathCJO%2FVt07PoUY652uNUH8E5%2FRmyqx8PtA8jCSmPiuBjqdAa2dr5Z3DqAcxn6taSfygpRaK37YXBUOVBAOg1T8udB8QBFgoeY5s7TXHtEqiGJdNfwWl9u3SmWp7Ys9hHwej1hW28LtUf6l9EtnVp7XZIQ3HHHELIiEMVWu%2BjEcQaMAUigKE1X12cwavBr08kHatGj%2Fas6zlvYV6xJOy2%2BOugbtyH%2BFPgyK95OMckKhAwRCeH58diCQTf7PF%2BpfIoA%3D&X-Amz-SignedHeaders=host&x-id=GetObject&X-Amz-Signature=efe2621511f345599e87863a0b966428c804d4a2eb4ce45b4f9d6ce0acdb1034)).

The fix is straightforward, we add an assertion for max fee to keep
consistent with non-multichain flow.
 
<!--
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/23205?quickstart=1)

## **Related issues**

Fixes:
https://app.zenhub.com/workspaces/extension-delivery-board-6216892781ac020010e826d1/issues/gh/metamask/metamask-extension/23198

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


https://github.com/MetaMask/metamask-extension/assets/12678455/53cb2dad-bbb8-41a6-9907-05e5a2d257a7



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

## **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 clearly explained what problem this PR is solving and how it
is solved.
- [ ] I've linked related issues
- [ ] I've included manual testing steps
- [ ] I've included screenshots/recordings if applicable
- [ ] 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.
- [ ] I’ve properly set the pull request status:
  - [ ] In case it's not yet "ready for review", I've set it to "draft".
- [ ] In case it's "ready for review", I've changed it from "draft" to
"non-draft".

## **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.
@benjisclowder
Copy link
Contributor Author

@benjisclowder
Copy link
Contributor Author

benjisclowder commented Mar 7, 2024

Manual test scenarios:

Chrome

  • Onboarding - create a wallet
  • Onboarding - import a wallet
  • Keyring - connect hardware wallet
  • Keyring - reset a wallet
  • Transactions - send native token origin MM
  • Transactions - send native token origin dapp
  • Transactions - send ERC20 token origin MM
  • Transactions - send ERC20 token origin dapp
  • Transactions - send ERC721 token origin MM
  • Transactions - send ERC721 token origin dapp
  • Transactions - speed up transaction
  • Transactions - cancel transaction
  • Tokens - import ERC20 token origin MM
  • Tokens - import ERC20 token origin dapp
  • Tokens - import ERC721 token origin MM
  • Tokens - import ERC721 token origin dapp
  • Tokens - import ERC1155 token origin MM
  • Tokens - import ERC1155 token origin dapp
  • Tokens - approve ERC1155 token
  • Tokens - approve ERC20 token
  • Tokens - approve ERC721 token
  • Tokens - autodetect tokens
  • Tokens - autodetect NFTs
  • ENS - name resolution
  • Phishing - warning page
  • Network - add custom network manually
  • Network - add custom network from the list of popular networks
  • Network - add custom network from dApp
  • Network - update networks
  • Network - switching networks
  • Network - delete networks from the dropdown list
  • Network - delete networks in Settings
  • Backup - backup user data
  • Backup - restore user data
  • Metrics - send event metrics
  • Address-book - add a contact to the address book
  • Address-book - remove a contact from the address book
  • Address-book - update a contact in the address book
  • Gas fee - EIP-1559 gas
  • Gas fee - legacy gas
  • Sign - eth sign
  • Sign - personal sign
  • Sign - sign in with ethereum
  • Sign - sign typed with data
  • Sign - sign typed data v3 with hardware wallet
  • Sign - sign typed data v4 with hardware wallet
  • Permissions - connecting and disconnecting from a dapp
  • Swap - smart swap
  • Swap - swap eth
  • Incoming transactions - receive native token
  • Settings - about MetaMask
  • Settings - general
  • Settings - advanced

Firefox testing results can be found here: #23368 (comment)

@chloeYue
Copy link
Contributor

chloeYue commented Mar 12, 2024

We need teams' approval on the 20th of March at the latest.

Instructions for Team Review

  1. Review Changes: Refer to the Release Tracker for v11.13.0 to see all changes relevant to your team.
  2. Log Bugs: If you find any issues, log them in the release tracker and attach them to this bug report epic.
  3. Approval: After reviewing, indicate your team's approval by:
    • Marking the checkbox next to your team's name in this comment.
    • Optionally, leave a comment for additional information.

Your thorough review ensures a smooth and successful release. If you have any questions please reach out to extension platform team or in the #metamask-qa slack channel. Thank you for your collaboration!

Base automatically changed from Version-v11.12.0 to master March 13, 2024 19:44
@Bullcoiner
Copy link

Firefox v11.13.0 QA Testing

  • Onboarding - create a wallet
  • Onboarding - import a wallet
  • Keyring - connect hardware wallet
  • Keyring - reset a wallet
  • Transactions - send native token origin MM
  • Transactions - send native token origin dapp
  • Transactions - send ERC20 token origin MM
  • Transactions - send ERC20 token origin dapp
  • Transactions - send ERC721 token origin MM
  • Transactions - send ERC721 token origin dapp
  • Transactions - speed up transaction
  • Transactions - cancel transaction
  • Tokens - import ERC20 token origin MM
  • Tokens - import ERC20 token origin dapp
  • Tokens - import ERC721 token origin MM
  • Tokens - import ERC721 token origin dapp
  • Tokens - import ERC1155 token origin MM
  • Tokens - import ERC1155 token origin dapp
  • Tokens - approve ERC1155 token
  • Tokens - approve ERC20 token
  • Tokens - approve ERC721 token
  • Tokens - autodetect tokens
  • Tokens - autodetect NFTs
  • ENS - name resolution
  • Phishing - warning page
  • Network - add custom network manually
  • Network - add custom network from the list of popular networks
  • Network - add custom network from dApp
  • Network - update networks
  • Network - switching networks
  • Network - delete networks from the dropdown list
  • Network - delete networks in Settings
  • Backup - backup user data
  • Backup - restore user data
  • Metrics - send event metrics
  • Address-book - add a contact to the address book
  • Address-book - remove a contact from the address book
  • Address-book - update a contact in the address book
  • Gas fee - EIP-1559 gas
  • Gas fee - legacy gas
  • Sign - eth sign
  • Sign - personal sign
  • Sign - sign in with ethereum
  • Sign - sign typed with data
  • Sign - sign typed data v3 with hardware wallet
  • Sign - sign typed data v4 with hardware wallet
  • Permissions - connecting and disconnecting from a dapp
  • Swap - smart swap
  • Swap - swap eth
  • Incoming transactions - receive native token
  • Settings - about MetaMask
  • Settings - general
  • Settings - advanced

@legobeat
Copy link
Contributor

Any chance #23164 can make it for this release? Availability-impacting bug fix for Trezor users.

@plasmacorral
Copy link
Contributor

🟢 Approval from Accounts team

@zone-live zone-live added the release-blocker This bug is blocking the next release label Mar 18, 2024
## **Description**

Reference
[PR](466e7ec)

Cherry picks a commit needed for MMI.
We need to add the `service` key value as a fallback for when the
custodian doesn't send an `environment` property.

## **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 Coding
Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've clearly explained what problem this PR is solving and how it
is solved.
- [ ] I've linked related issues
- [ ] I've included manual testing steps
- [ ] I've included screenshots/recordings if applicable
- [ ] 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.
- [ ] I’ve properly set the pull request status:
  - [ ] In case it's not yet "ready for review", I've set it to "draft".
- [ ] In case it's "ready for review", I've changed it from "draft" to
"non-draft".

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

<!--
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/23540?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 Coding
Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've clearly explained what problem this PR is solving and how it
is solved.
- [ ] I've linked related issues
- [ ] I've included manual testing steps
- [ ] I've included screenshots/recordings if applicable
- [ ] 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.
- [ ] I’ve properly set the pull request status:
  - [ ] In case it's not yet "ready for review", I've set it to "draft".
- [ ] In case it's "ready for review", I've changed it from "draft" to
"non-draft".

## **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.
@zone-live zone-live removed the release-blocker This bug is blocking the next release label Mar 18, 2024
@sleepytanya
Copy link
Contributor

sleepytanya commented Mar 18, 2024

🟢 Approval from the Confirmations System team.

#23559 - bug related to this PR (sev-3).

@seaona
Copy link
Contributor

seaona commented Mar 20, 2024

🟢 QA Sign Off from Confirmations UX team.

Note: there are 2 issues related to ppom which are currently under investigation. We do not consider them blockers and they are already in prod, but they are top priority, since they leave the ppom validation forever loading without a recovery path.

## **Description**

Bumps `snaps-utils` to latest to solve a few bugs related to validation.

- Allow `maxRequestTime` on `endowment:rpc`
- Update markdown parsing for better link validation
@metamaskbot
Copy link
Collaborator

Builds ready [9cead27]
Page Load Metrics (1237 ± 449 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint754061698541
domContentLoaded1081412512
load6923901237935449
domInteractive1081412512
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 2.23 KiB (0.06%)
  • ui: 0 Bytes (0.00%)
  • common: 114.2 KiB (2.44%)

Copy link

socket-security bot commented Mar 22, 2024

👍 Dependency issues cleared. Learn more about Socket for GitHub ↗︎

This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored.

Ignoring: npm/@account-abstraction/[email protected], npm/@bufbuild/[email protected], npm/@ethersproject/[email protected], npm/@ethersproject/[email protected], npm/@ethersproject/[email protected], npm/@ethersproject/[email protected], npm/@lavamoat/[email protected], npm/@lavamoat/[email protected], npm/@metamask/[email protected], npm/@metamask/[email protected], npm/@metamask/[email protected], npm/@metamask/[email protected], npm/@metamask/[email protected], npm/@metamask/[email protected], npm/@metamask/[email protected], npm/@metamask/[email protected], npm/@metamask/[email protected], npm/@metamask/[email protected], npm/@types/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected]

View full report↗︎

Next steps

Take a deeper look at the dependency

Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support [AT] socket [DOT] dev.

Remove the package

If you happen to install a dependency that Socket reports as Known Malware you should immediately remove it and select a different dependency. For other alert types, you may may wish to investigate alternative packages or consider if there are other ways to mitigate the specific risk posed by the dependency.

Mark a package as acceptable risk

To ignore an alert, reply with a comment starting with @SocketSecurity ignore followed by a space separated list of ecosystem/package-name@version specifiers. e.g. @SocketSecurity ignore npm/[email protected] or ignore all packages with @SocketSecurity ignore-all

## **Description**

Adding V11.13.0 changelog.

[![Open in GitHub
Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/23581?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 Coding
Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've clearly explained what problem this PR is solving and how it
is solved.
- [ ] I've linked related issues
- [ ] I've included manual testing steps
- [ ] I've included screenshots/recordings if applicable
- [ ] 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.
- [ ] I’ve properly set the pull request status:
  - [ ] In case it's not yet "ready for review", I've set it to "draft".
- [ ] In case it's "ready for review", I've changed it from "draft" to
"non-draft".

## **Pre-merge reviewer checklist**

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

---------

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

Builds ready [e680797]
Page Load Metrics (780 ± 406 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint803301325426
domContentLoaded983332110
load712191780846406
domInteractive983332110

@danjm
Copy link
Contributor

danjm commented Mar 25, 2024

@Socket-Security ignore-all

The author mentioned is a long time contributor to eslint projects, and the shell access mentioned is needed for a dev dependency

@danjm
Copy link
Contributor

danjm commented Mar 25, 2024

@SocketSecurity ignore-all

@danjm danjm merged commit dc36a46 into master Mar 25, 2024
68 of 70 checks passed
@danjm danjm deleted the Version-v11.13.0 branch March 25, 2024 19:39
@github-actions github-actions bot locked and limited conversation to collaborators Mar 25, 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-11.13.0 Issue or pull request that will be included in release 11.13.0 team-extension-platform
Projects
None yet
Development

Successfully merging this pull request may close these issues.