Skip to content

added xdc mainnet and testnet support #1

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

Draft
wants to merge 54 commits into
base: develop
Choose a base branch
from

Conversation

kshitij01042002
Copy link
Collaborator

Description

Related issues

Fixes:

Manual testing steps

  1. Go to this page...

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.

@kshitij01042002 kshitij01042002 marked this pull request as draft January 19, 2024 13:02
BlocksScanIO and others added 28 commits January 23, 2024 16:22
## **Description**
Hello, this is the imToken team. 

imToken is a mobile crypto wallet founded in 2016. It has been operating
safely and steadily for 7 years. Recently, we successfully supported
ERC-4527, and imToken can function as a QR code-based signer now. This
integration seamlessly aligns with Metamask's bidirectional QR account
feature, enhancing the ability to track accounts whose private keys are
stored on external devices.

Therefore, we propose that Metamask expand its supported QR code-based
wallet connection methods and include imToken. This will not only
enhance Metamask's functionality and user coverage, but also provide
users with a wider, more secure and efficient choice of wallets.

We have successfully completed the integration of ERC-4527 and look
forward to discussing in depth the possibility of adding imToken into
Metamask's QR code-based wallet connection methods. Thank you very much
for your attention and feedback on this matter.

## **Related issues**
no
## **Manual testing steps**
1. Please check if the added links to the imToken official website and
tutorials are correct.
2. The process is consistent with the current QR-Based Keystone and
Airgap methods. Please refer to the test video provided below for
reference.

### Video
[Dropbox
link](https://www.dropbox.com/scl/fi/kbfcthouwgqaaueepsslc/imToken_Connect_Metamask_.mp4?rlkey=vz6js9g81oevg2y77vkizfefq&dl=0)
### User Flow

![metamask](https://github.com/MetaMask/metamask-extension/assets/7024451/9280a9dd-de4e-4635-b3db-eb44f3276b6b)

## **Screenshots/Recordings**
### **Before**
<img width="571" alt="image"
src="https://github.com/MetaMask/metamask-extension/assets/7024451/e67a1c52-4c1a-46eb-8140-8df9acc8556d">

### **After**
<img width="346" alt="image"
src="https://github.com/MetaMask/metamask-extension/assets/7024451/3246af50-7187-49a4-b7f5-a84eaf1874f7">

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

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

---------

Co-authored-by: Sébastien Van Eyck <[email protected]>
Co-authored-by: Sébastien Van Eyck <[email protected]>
## **Description**

Currently we send ppom validation requests only for incoming requests,
this PR adds ppom validation for send requests from wallets too.

## **Related issues**

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

## **Manual testing steps**

1. Build and launch MM
2. Send ETH on mainnet to this address
`0x5FbDB2315678afecb367f032d93F642f64180aa3`
3. See that Blockaid banner is not shown
4. Checkout this branch, build and launch MM
5. Send ETH on mainnet to the address
`0x5FbDB2315678afecb367f032d93F642f64180aa3`
6. See that Blockaid banner is shown.

## **Screenshots/Recordings**

### **Before**


https://github.com/MetaMask/metamask-extension/assets/44811/9c81e157-1d78-4609-a037-7a8897309d12

### **After**


https://github.com/MetaMask/metamask-extension/assets/44811/8b2ec828-9636-4302-a943-b023caaba730

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

hardcode a mapping of chainIDs to currency symbol, once the svg are
uploaded we mapped the images to the network name and chainIDs

**Acceptance criteria**
When the network list is displayed within the Select a network modal, or
custom network list, or any similar context, the hardcoded network image
avatars should be displayed. This will reduce the often appearing "?"
that appears when the network avatar is not present.

## **Related issues**

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

## **Manual testing steps**

1. Go to the network modal
2. Add a new network displayed on this
[list](https://docs.google.com/spreadsheets/d/16G3SRiQvWXK6hp5duob0aopeKyx2HOAQpz152Fy8VNQ/edit#gid=2080069111)
3. check if the image is displayed

## **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/26223211/b109668a-9bc2-432b-b603-e90e9c85804f



### **After**



https://github.com/MetaMask/metamask-extension/assets/26223211/aae091f7-a89c-4653-a996-223ec288fd31


## **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:
  - [x] 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.
…MetaMask#21553)

## **Description**
Currently, MetaMask faces tight coupling between its UI and the
keyring-controller. The UI heavily relies on the keyring-controller's
state while also amalgamating information from various sources, such as
preferences and balances.

However, this approach presents some challenges. The keyring-controller
must be aware of the UI's limitations, like the need for instant account
list provision to avoid lag. Moreover, it takes on the responsibility of
adding metadata to accounts, such as the associated keyring type,
required for displaying account details.

To address these issues, the introduction of the accounts-controller
comes into play as a new abstraction layer between the UI and the
keyring-controller. This separation of responsibilities allows the
keyring-controller to focus on two main tasks:

- Routing requests to the appropriate keyring.
- Persisting the state of the keyrings.

This PR replaces the usage of `getSelectedAddress` with
`getSelectedInternalAccount`

Depends on: MetaMask#21554

## **Related issues**

Resolves MetaMask/accounts-planning#135

## **Manual testing steps**

1. Use a hardware wallet to test all the flows

## **Screenshots/Recordings**

No UI/UX changes

## **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:
  - [x] What problem this PR is solving.
  - [x] How this problem was solved.
  - [x] How reviewers can test my changes.
- [x] I’ve indicated what issue this PR is linked to: Fixes #???
- [x] I’ve included tests if applicable.
- [x] I’ve documented any added code.
- [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)).
- [x] 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: gantunesr <[email protected]>
Co-authored-by: Gustavo Antunes <[email protected]>
Co-authored-by: Howard Braham <[email protected]>
Co-authored-by: chloeYue <[email protected]>
Co-authored-by: Harsh Shukla <[email protected]>
Co-authored-by: Olusegun Akintayo <[email protected]>
Co-authored-by: Ariella Vu <[email protected]>
Co-authored-by: David Walsh <[email protected]>
Co-authored-by: Sébastien Van Eyck <[email protected]>
Co-authored-by: Mark Stacey <[email protected]>
Co-authored-by: legobeat <[email protected]>
Co-authored-by: Mako Shan <[email protected]>
Co-authored-by: Sébastien Van Eyck <[email protected]>
…k#22591)

## **Description**

We found some issues at Trezor with the Metamask integration, one of
them related to the USB permissions page being linked to a deprecated
version of our SDK.
Metamask already uses the v9 package, but in this particular instance
it's hardcoded to load from v5.

We added a workaround on our side for now, by adding a redirect. 
This PR solves the problem properly by updating the version in the code.

# **Related issues**

Unknown

## **Manual testing steps**

NA

## **Screenshots/Recordings**

NA

Co-authored-by: Brad Decker <[email protected]>
Co-authored-by: legobeat <[email protected]>
Co-authored-by: Sébastien Van Eyck <[email protected]>
## **Description**

When investigating flaky tests, I found that some tests are flaky
because the input field was not cleared before entering a new value. The
issue is that Selenium sometimes doesn't clear input fields effectively.
Now, we use sendkeys() to clear input fields, i've added another way to
use selenium actions to simulate we select all text with keyboard and
replace it with the new value. With both ways, we can clear input fields
more effectively, which I believe will stabilize multiple flaky tests.

Examples:

Failing test because input field was not cleared as expected:
![Screenshot 2024-01-24 at 11 46
01](https://github.com/MetaMask/metamask-extension/assets/105063779/5f067bd0-c426-42fd-b378-62b6dbba6b8a)


Tests failing because although the input field was cleared, the
application automatically added a '0'. So when we entered the input
value '4000', it was actually entered as '04000'. With my approach, when
we find that the input field is not empty, it will select the '0' and
replace it with '4000'. This way, we finally get the correct value of
'4000'.
<img width="363" alt="Screenshot 2024-01-24 at 14 44 04"
src="https://github.com/MetaMask/metamask-extension/assets/105063779/98d6d811-46df-4d15-be50-7f18fe13fdf7">


I also fixed another flaky test in this PR.

## **Related issues**

Fixes: MetaMask#22573 

## **Manual testing steps**

Run the e2e test.
…ask#22672)

## **Description**

We've been having a lot of issues recently with flaky tests where the
error is something like

```ElementClickInterceptedError: Element <div class="mm-box multichain-app-header-logo mm-box--margin-2 mm-box--display-none mm-box--sm:display-flex mm-box--justify-content-center mm-box--align-items-center"> is not clickable at point (576,45) because another element <div class="mm-box loading-overlay"> obscures it```

We have been fixing these flaky tests one at a time, but I realized that there's a more general solution.

Every time you try to click on an element, catch an `ElementClickInterceptedError`, wait for `.loading-overlay` to disappear, and try again!

## **Related issues**
## **Manual testing steps**

Yes, this is kind of hard to test, because you're looking for the **_lack_** of a certain type of flakiness.  But I came up with the following test procedure:

1. In driver.js, comment out the whole block from lines 72-95.  This effectively reverts this PR.
2. In routes.component.js, on line 130, add `const startTime = performance.now();`
3. In routes.component.js, around what is now line 621, replace the whole `isLoadingShown` expression with
`let isLoadingShown = performance.now() - startTime < 8000;`
4. The loading overlay should now be on for 8 seconds, causing most E2E tests to fail
5. Uncomment lines 72-95 from driver.js
6. The new click() method is active, and E2E tests pass even though the loading overlay is in front for 8 seconds

## **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.
- [ ] I've linked related issues
- [x] I've included manual testing steps
- [ ] 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.
## **Description**

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->
This PR 
* add a toggle to the experimental screen that allows users to enable or
disable petnames. This toggle is set to "ON" by default
* remove the petnames code fence as it's no longer necessary.

## **Related issues**

Fixes: MetaMask/MetaMask-planning#1631

## **Manual testing steps**

> [!NOTE] 
> Use a non-flask build when testing.

**Describe Petnames** 
**it should be enabled by default:**
1. Navigate to [test dapp](https://metamask.github.io/test-dapp/).
2. Click on "Sign" under the heading "Sign Typed Data V3"
3. Notice the signature confirmation screen uses the petnames name
component.

**it can be toggled off:**
1. Go to advanced settings
5. The petnames toggle should be on by default
6. Switch off the petnames toggle
1. Navigate to [test dapp](https://metamask.github.io/test-dapp/).
2. Click on "Sign" under the heading "Sign Typed Data V3"
3. Notice the signature confirmation screen _does not_ use the petnames
name component.

## **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.
…ons.ts` (MetaMask#22522)

I'm working on updating our TypeScript version to v5.3.3, and this code
will fail to typecheck in the newest version. There are a dependency
issues to work through, so I'm PRring ahead of the other updates since
it can't hurt to have some better types now.

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

Listens for changes to account identities and sets those as petnames.

## **Related issues**

Part of: MetaMask/MetaMask-planning#1624
(https://github.com/orgs/MetaMask/projects/47/views/1?pane=issue&itemId=43756188)

Follow-up: migration to grab any existing account identities.

## **Manual testing steps**

1. Open MM extension
2. Change the account label for any account
3. TODO

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

## **Pre-merge author checklist**
- [x] how to confirm in the UI that petname was added?
- [x] What is the correct type and variation to use for the setName
call?
- [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:
  - [x] 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: MetaMask Bot <[email protected]>
Co-authored-by: chloeYue <[email protected]>
Co-authored-by: Harsh Shukla <[email protected]>
Co-authored-by: Olusegun Akintayo <[email protected]>
Co-authored-by: Ariella Vu <[email protected]>
Co-authored-by: David Walsh <[email protected]>
Co-authored-by: Monte Lai <[email protected]>
Co-authored-by: Sébastien Van Eyck <[email protected]>
Co-authored-by: Mark Stacey <[email protected]>
Co-authored-by: legobeat <[email protected]>
Co-authored-by: Mako Shan <[email protected]>
Co-authored-by: Sébastien Van Eyck <[email protected]>
Co-authored-by: salimtb <[email protected]>
Co-authored-by: gantunesr <[email protected]>
Co-authored-by: Gustavo Antunes <[email protected]>
Co-authored-by: Howard Braham <[email protected]>
Co-authored-by: Tomáš Martykán <[email protected]>
Co-authored-by: Brad Decker <[email protected]>
Co-authored-by: Daniel <[email protected]>
…taMask#22692)

## **Description**

This PR creates a patch to check for all types of custodian keyrings
that start with the prefix `Custody`

## **Related issues**

## **Manual testing steps**

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

This PR adds an e2e spec for testing Blockaid support to multiple
networks. This verifies that:
- We initially display the malicious warning for Mainnet
- We switch to another supported network and we continue to display the
malicious warning (in this case Arbitrum)


## **Related issues**

Fixes: MetaMask/MetaMask-planning#993

## **Manual testing steps**

1. Check circle ci job
2. Alternatively, run the test locally `yarn test:e2e:single
test/e2e/tests/ppom-blockaid-alert-networks-support.spec.js
--browser=chrome`

## **Screenshots/Recordings**

![Screenshot from 2024-01-29
11-43-34](https://github.com/MetaMask/metamask-extension/assets/54408225/589c302c-4be4-44f0-b5d0-df57ac814951)


## **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".
- [ ] 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 script is used to filter and group commits by teams based on unique
commit messages. It takes two branches as input and generates a CSV file
with the commit hash, commit message, author, team, and PR link.
Command to run the script: node generate-rc-commits.js origin/branchA
origin/branchB
Output: the generated commits will be in a file named 'commits.csv'.

## **Related issues**

Fixes: MetaMask/extension-delivery#138

## **Manual testing steps**

Pull the branch and try running it with two branches to see if commits
are generated

## **Screenshots/Recordings**

![Screenshot 2024-01-26 at 10 39
42](https://github.com/MetaMask/metamask-extension/assets/105063779/619d0b21-ab51-4364-85b8-2a46618a07ac)


### **Before**

### **After**


## **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:
  - [x] 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: Dan J Miller <[email protected]>
Co-authored-by: Danica Shen <[email protected]>
## **Description**

Design wanted to add the "+" to the Add Network button

## **Related issues**

Fixes: MetaMask/MetaMask-planning#1941

## **Manual testing steps**

1. Open the network menu
2. See the "+" icon on the button

## **Screenshots/Recordings**

### **Before**

N/A

### **After**

<img width="426" alt="SCR-20240122-nusi"
src="https://github.com/MetaMask/metamask-extension/assets/46655/53661e71-a383-44c8-b73c-a1b7e5400026">


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

**Part 2** Replace static hex values to a token from design-tokens that
best matches. If unavailable, a temporary file has been set up for any
new tokens needed but not yet provided by the design-tokens package.

_The last of the hex codes in repo appear best to be left as is_

In VS code you can search regex: `#(?:[0-9a-fA-F]{3}){1,2}` files to
include `ui/**/*.{scss,jsx,tsx,js,ts,css}`

## **Related issues**

Fixes: MetaMask#22364 

## **Manual testing steps**

1. Run locally
2. Compare [local
storybook](http://localhost:6006/?path=/docs/getting-started-introduction--docs)
to [production
storybook](https://metamask.github.io/metamask-storybook/?path=/story/getting-started-introduction--docs)
on the components color change
3. Be sure to test light and dark mode

## **Screenshots/Recordings**
 `See code comments`
<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

See code files

<!-- [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
- [ ] 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
- [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:
  - [x] 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.
…hecks/hints (MetaMask#22520)

The default setting in VSCode it for it to use its own version of TypeScript when Typechecking and providing type hints. This PR changes it to use our workspace version.

Co-authored-by: Howard Braham <[email protected]>
This PR is to update the connections icon from global menu to the
connected dapp icon

## **Related issues**

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

## **Manual testing steps**

1. Connect MetaMask to Uniswap or test-dapp
2. Check the connections icon is changed to the dapp icon
3. Disconnect the dapp. Check the icon is back to Global Icon

## **Screenshots/Recordings**


### **Before**
![Screenshot 2024-01-23 at 2 24
12 PM](https://github.com/MetaMask/metamask-extension/assets/39872794/7e8c3821-fd67-4d1f-b21c-77b7a252ff7c)


### **After**
![Screenshot 2024-01-23 at 2 25
01 PM](https://github.com/MetaMask/metamask-extension/assets/39872794/9615037b-e593-4b22-8db6-968b38447f93)

![Screenshot 2024-01-23 at 2 24
30 PM](https://github.com/MetaMask/metamask-extension/assets/39872794/b4eec7ed-f89f-4bb5-829d-5edd5a302e7d)

## **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.
georgewrmarshall and others added 25 commits January 29, 2024 15:32
…sk#22658)

## **Description**
This PR updates the design-tokens package to `v1.13.0`, introducing
accessibility enhancements to various color categories, including
`warning/default`, `success/default`, and inverse colors. Additionally,
it incorporates hover and pressed tokens.

For a detailed overview of the color updates, please refer to [this PR
in the design-tokens
repository](MetaMask/design-tokens#586).

The accessibility improvements ensure that:

- Text using the `warning/default` color now meets WCAG AA color
contrast requirements.
- Text using the `success/default` color now meets WCAG AA color
contrast requirements.
- Text using the `primary/inverse`, `error/inverse`, `success/inverse`,
and `info/inverse` colors in dark mode now meets WCAG AA color contrast
requirements.

These updates enhance the accessibility and user experience for vision
impaired folks in the extension.

## **Related issues**

Related:
https://github.com/MetaMask/metamask-extension#workspaces/design-system-61e8a2ae77c3a60012e5003c/issues/zh/329

## **Manual testing steps**
The easiest way to review these accessibility updates is to check
storybook

1. Go to the latest build of storybook in this PR
2. Search `HelpText` in the search bar
3. Go to the `Severity` story
4. Check the accessibility tab in storybook
5. See all accessibility tests for color contrast are passing 
6. Go to the `Button` story
7. Change the mode to dark mode
8. To make sure it's picking up dark mode colors change something in the
controls then use the revert button
9. Check the accessibility tab in storybook
10. See all accessibility tests for color contrast are passing
## **Description**
Following the suggestion divided from [this
thread](MetaMask#22548 (comment))
to refactor all selectors for modal in e2e tests. They are now referred
by `data-testid` in selector.
More specifically speaking, when the modal has been adapted to new
component, a `data-testid` will be appended directly to `<Modal >`
component and selected; when the component is using deprecated modal
component, this `data-testid` will be appended to as a property passing
to `FadeModal` component
  
## **Related issues**

Fixes: MetaMask#22552
…22674)

## **Description**
The package `@metamask/transaction-controller` has been upgraded to
`v21.0.1`.

This version has the following fixes:
- Resolves transaction custodian promise when setting transaction status
to submitted or failed
([MetaMask#3845](MetaMask/core#3845))
- Fix normalizer ensuring property type is always present in
TransactionParams ([MetaMask#3817](MetaMask/core#3817))

See here for the changelog:
https://github.com/MetaMask/core/blob/main/packages/transaction-controller/CHANGELOG.md#2101
## **Description**

Fixing flaky test "Check if user select different type of secret
recovery phrase" modified the dropdown to specifically select the
element related to the secret recovery phrase, distinguishing it from
another dropdown used for language selection. Additionally, updated the
method to find elements by using a CSS selector for option selection.

## **Related issues**

MetaMask#22714
## **Description**

Removes the abandoned `AppFooter`, `SelectActionModal`, and the UI
around it.

## **Related issues**

Fixes:  MetaMask/MetaMask-planning#1824

## **Manual testing steps**

1. `MULTICHAIN=1 yarn start`
2. No longer see the bottom navigation, do see the EthOverview buttons
restored.

## **Screenshots/Recordings**

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

### **Before**

N/A

### **After**

<img width="848" alt="SCR-20240122-lify"
src="https://github.com/MetaMask/metamask-extension/assets/46655/3f0984cc-e5d9-4581-a56b-76d51d04ed3c">


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

New component to display the confirmation title and subtitle

Notes:
- storybook page created
- I put the custom hooks directly in the confirm/title directory because
it is not being used outside of this directory

## **Related issues**

Fixes: MetaMask#21282
Blocked By: MetaMask#21970

## **Manual testing steps**

## **Screenshots/Recordings**

see blue box in below image:
<img width="693" alt="confirmtitle"
src="https://github.com/MetaMask/metamask-extension/assets/20778143/4582858f-9574-40a9-aee4-cbcfc7c517f9">

<!-- [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: George Marshall <[email protected]>
…ion (MetaMask#22693)

This PR is to make sure if two networks with same id but different
rpcUrl are there, list should show both of them

## **Related issues**

Fixes: MetaMask#22559 

## **Manual testing steps**

1. Have ganache running locally with npx ganache-cli --fork
https://mainnet.infura.io/v3/[YOUROWNINFURAID] --chainId 1
2. Add it as a custom network with chainId=1
3. Select the newly added network
4. Change to another network
5. Note that you are able to change back to see the custom network in
the list and able to switch back.

## **Screenshots/Recordings**


### **Before**


### **After**

![Screenshot 2024-01-29 at 6 07
35 PM](https://github.com/MetaMask/metamask-extension/assets/39872794/2baf2b30-8cd9-4343-9f71-01836e82a1d1)

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

Reverts the commits related to staking. The relevant PRs being reverted
are:
- MetaMask#22347
- MetaMask#22291
- MetaMask#22511

## **Related issues**

No issue for the revert exists.

## **Manual testing steps**

1. Install the build and open MM
2. Look at the "What's new" announcements
3. Confirm that the one for staking has been removed but the following
one (Blockaid) remains
4. Go to token listing
5. Confirm that the "Stake" button no longer appears by the mainnet ETH
token symbol

## **Screenshots/Recordings**

### **Before**

<img width="349" alt="Screenshot 2024-01-25 at 3 52 36 PM"
src="https://github.com/MetaMask/metamask-extension/assets/15035587/391f0f76-a3bc-470d-aacc-f3d6f9dd156c">


### **After**

<img width="344" alt="Screenshot 2024-01-25 at 3 58 38 PM"
src="https://github.com/MetaMask/metamask-extension/assets/15035587/60cc7d6f-63d0-49fc-b43a-99df45fcac2e">


## **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
- [ ] 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**
When using with a QR code hardware wallet, if the data is large, it will
take a lot of time, but users cannot get any response during the scan.
Adding a scanning progress will give users a better experience.

## **Manual testing steps**

1. Connect a hardware wallet.
2. Connect your QR hardware wallet.
3. Scan QR code.

## **Screenshots/Recordings**

### **Before**

<img width="529" alt="image"
src="https://github.com/MetaMask/metamask-extension/assets/111484932/6a2a4208-ec10-42ef-9add-b3f95bccc2f0">

### **After**

<img width="566" alt="image"
src="https://github.com/MetaMask/metamask-extension/assets/111484932/24faa911-1e4b-4843-bb7b-de942a7de315">

## **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:
  - [x] What problem this PR is solving.
  - [x] How this problem was solved.
  - [x] How reviewers can test my changes.

## **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.
…tureRequestOriginalWarning (MetaMask#22741)

## **Description**
This PR addresses a Sev2 visual regression bug that occurred due to
incorrect migration of component API in a [previous
PR](MetaMask#20070), which
aimed to update stale components with component library components. Not
only does this PR rectify these visual regressions, but it also extends
the integration of the component library by replacing additional stale
components.

## **Related issues**

Fixes: MetaMask#22171

## **Manual testing steps**

1. Go to the latest [storybook build in this
PR](https://output.circle-artifacts.com/output/job/91d2b3eb-5921-4431-83d6-daa89b0d6687/artifacts/0/storybook/index.html)
2. Search `SignatureRequestOriginalWarning` in the search bar 
3. Click on the result 
4. See updated `SignatureRequestOriginalWarning` modal component with
correct buttons

## **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/8112138/9ad3e17a-624f-4fca-a089-b92b5c6b097b

### **After**


https://github.com/MetaMask/metamask-extension/assets/8112138/e9d1f2a7-b335-40db-bd26-474d3978f169

Screencast below shows working in app


https://github.com/MetaMask/metamask-extension/assets/8112138/96504942-c412-4b7b-94da-d1c3fb5abe8b

## **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.
Transactions that are being signed are displayed with the `Signing`
status in the activity list for additional clarity.
The standard `Cancel` button in the activity list will now cancel the
signing process for a transaction and mark it as failed.
While a transaction is being signed and submitted, subsequent
transactions will display an error in the confirmation and the `Confirm`
button will be disabled.
…22734)

## **Description**

This PR introduces a new `useDisplayName` hook, aimed at including logic
for displaying token names within the `<Name/>` component. This hook
replicates existing display logic, before Petnames.

## Details

### Development of `useDisplayName` Hook

- **Functionality**: The new `useDisplayName` hook encapsulates the
existing logic for determining a token's displayName. It performs
sequential checks for:
  - **Petname**: Prioritizes the petname if available.
- **Token Metadata**: Fetches the name from static or dynamic token
lists.

### Integration with `<Name/>` Component

- **Replacement of Logic**: The existing `useName` logic within the
`<Name/>` component is replaced by the `useDisplayName` hook.

- **Icon Display**: The component adjusts the displayed icon (either a
bookmark or a warning sign) based on the presence or absence of a
resolved name.

## **Related issues**

Fixes: MetaMask#22735

## **Manual testing steps**

## **Screenshots/Recordings**

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

### **Before**

<img width="237" alt="image"
src="https://github.com/MetaMask/metamask-extension/assets/507015/50bf8929-ca12-41c2-a84c-f689e853d4cd">


### **After**

<img width="238" alt="image"
src="https://github.com/MetaMask/metamask-extension/assets/507015/49c08b74-9c35-4b73-b318-9053f71fd375">

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

## **Description**
In a [previous
PR](MetaMask#22741), I
unintentionally left out a commit from my local setup that added a modal
overlay to the `SignatureRequestOriginalWarning` modal. The before/after
videos I used were from my local setup, which mistakenly suggested that
the modal overlay was included in the PR. This current PR rectifies that
oversight by including the `ModalOverlay`, thereby resolving the missing
overlay issue for the modal.

## **Related issues**

Related: MetaMask#22171

## **Manual testing steps**
To modal overlay in storybook

1. Go to the storybook build of this PR
2. Search `SignatureRequestOriginalWarning` in the search bar
3. See that the `ModalOverlay` is included compared to [develop build of
storybook
](https://metamask.github.io/metamask-storybook/?path=/story/components-app-signaturerequestoriginalwarning--default-story)

To check modal overlay works in app

1. Enable eth sign from settings
2. Go to [test dapp](https://metamask.github.io/test-dapp/)
3. Trigger Eth Sign
5. Accept
6. See `SignatureRequestOriginalWarning` modal

## **Screenshots/Recordings**

### **Before**

Storybook showing no modal overlay


https://github.com/MetaMask/metamask-extension/assets/8112138/63b2cdab-518c-4aa0-9e72-6e4d6b559aec

In app showing modal overlay missing


https://github.com/MetaMask/metamask-extension/assets/8112138/499d07ca-1f1c-4b0d-9af1-8d5270139a18

### **After**

Storybook showing modal overlay


https://github.com/MetaMask/metamask-extension/assets/8112138/ac5af61b-4fd0-4fd9-bf2c-4b500b032807

In app showing modal overlay 


https://github.com/MetaMask/metamask-extension/assets/8112138/07695140-98f5-43a8-9641-ad7b6977a72e

## **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.
- Update `@storybook/test-runner` to latest
  - [Changes](https://github.com/storybookjs/test-runner/releases)
- Uses Jest v29 (like `metamask-extension` itself already does) instead
of Jest v28
## **Description**

Various updates related to Blockaid metrics

### Fixes 
- Remove duplicate SignatureRequested SIWE event 
  - related: MetaMask#21955)
- Removes `security_alert_response` and `security_alert_reason`
transaction, event fragment prop if unnecessary. Previously would add
"not applicable" values to all transaction metrics.

### Feat 
- Add 'external_link_clicked' transaction fragment prop
- Add `security_alert_failed ` ui_customization metric prop
- Removes ExternalLinkClicked from "Report an issue" click
  - related: MetaMask#22667
- Add test coverage:
  -  utils/metrics:
    - test not applicable resultType and reason
    - test when type is failed, malicious, and benign

### Cleanup
- removes current MetaMetricsEventName.ExternalLinkClicked /
onSupportLinkClicked metric events for Blockaid
- adds external_link_clicked fragment prop to transaction metrics
related to Blockaid
- `let uiCustomizations` → `const uiCustomizations = [];` 
- other various cleanup e.g.:
  - rename variables
  - update test phrases

## **Related issues**

Fixes: MetaMask/MetaMask-planning#1756

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

Before this PR, the `<Identicon/>` was displayed next to the name
component, like this:
<img width="293" alt="image"
src="https://github.com/MetaMask/metamask-extension/assets/507015/fcc0f131-a02e-4c6d-b5b4-748b061a21f0">

The goal of this PR is to move it inside the name component, and to
bring the Name component in line with design's vision:


![image](https://github.com/MetaMask/metamask-extension/assets/507015/d9d31632-3c75-4352-8718-503fbee7879e)


## **Related issues**

Fixes: MetaMask#22736

## **Manual testing steps**



## **Screenshots/Recordings**

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

### **Before**

<img width="238" alt="image"
src="https://github.com/MetaMask/metamask-extension/assets/507015/92b749fa-39b3-4190-b960-b3b4d39d1a40">

### **After**
<img width="228" alt="image"
src="https://github.com/MetaMask/metamask-extension/assets/507015/2f730148-d787-474d-b1f1-f1d8291cfbd4">


![image](https://github.com/MetaMask/metamask-extension/assets/507015/8e4b383a-4e2c-47ac-950c-042177b1b1a2)

![image](https://github.com/MetaMask/metamask-extension/assets/507015/6d7d80ed-96c2-48c5-b6dd-f5e06195bb3c)


![image](https://github.com/MetaMask/metamask-extension/assets/507015/6f5134fa-4909-4723-9b5e-356abbd196dd)

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

Some test jobs in CI occasionally fail with the following error message:

    Fontconfig error: cannot load default config file

Why this happens only occasionally is a mystery, especially considering
that we are running Chromium via Chromedriver in sandbox mode. But the
most common solution for this kind of problem (for example,
[here](https://askubuntu.com/questions/1151094/cannot-load-config-file-from-etc-fonts-fonts-conf))
is to set the `FONTCONFIG_PATH` environment variable to point to the
directory that contains the `fontconfig` configuration file. Given that
context, this commit sets `FONTCONFIG_PATH` to `/etc/fonts`. I've
shelled into the Docker image that we use in CI to confirm that 1) this
environment variable is not set and 2) `/etc/fonts` exists.

## **Related issues**

Fixes: MetaMask#22564

## **Manual testing steps**

There is no way to test this, but if this works, no jobs in CI should
time out and print the error message above.
## **Description**
Adds missing padding by using the newly created `ModalBody` component.

## **Related issues**

Fixes: N/A

## **Manual testing steps**

1. Go to the account details modal
2. See that there is adequate padding 

## **Screenshots/Recordings**

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

### **Before**

<img width="363" alt="Screenshot 2024-02-01 at 9 02 37 AM"
src="https://github.com/MetaMask/metamask-extension/assets/8112138/e599cab5-fa94-48d4-b372-56dd9b1a0101">


### **After**


<img width="362" alt="Screenshot 2024-02-01 at 9 04 03 AM"
src="https://github.com/MetaMask/metamask-extension/assets/8112138/ec8e9465-7cf0-4c3d-b946-48ee7f715ed2">




https://github.com/MetaMask/metamask-extension/assets/8112138/b1182f6e-adbf-4bdb-bc6a-eb560bf42bdf



## **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.
Update Node.js to v20 (LTS)

---------

Co-authored-by: Howard Braham <[email protected]>
…zation Control (MetaMask#22600)

## **Description**

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->
This PR introduces the `shouldSyncPetname` method to
`AbstractPetnamesBridge` to provide a refined control mechanism over
which Petname entries participate in synchronization with another
source.

By default, every Petname entry is automatically considered for
synchronization, ensuring that the Petname state is a comprehensive
mirror of the source entries and vice versa post-synchronization. By
overriding this method, developers can now specify which Petname entries
should be included or excluded from the synchronization process.

This has implications, depending on the sync direction:

- `Source->Petnames`: Entries in the Petnames state, which are marked as
non-participants (i.e., shouldSyncPetname returns false), will not be
deleted during the synchronization process. This ensures that specific
entries are preserved in the Petnames state, regardless of their absence
or deletion in the source.
- `Petnames->Source`: In this synchronization direction, entries in the
Petnames state marked as non-participants will not be added to the
source. This allows for maintaining entries exclusively in the Petnames
state without affecting the source dataset.

## **Related issues**

* Fixes: MetaMask#22556

## **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: chloeYue <[email protected]>
Co-authored-by: Harsh Shukla <[email protected]>
Co-authored-by: Olusegun Akintayo <[email protected]>
Co-authored-by: Ariella Vu <[email protected]>
Co-authored-by: David Walsh <[email protected]>
Co-authored-by: Monte Lai <[email protected]>
Co-authored-by: Sébastien Van Eyck <[email protected]>
Co-authored-by: Mark Stacey <[email protected]>
Co-authored-by: legobeat <[email protected]>
Co-authored-by: Mako Shan <[email protected]>
Co-authored-by: Sébastien Van Eyck <[email protected]>
Co-authored-by: salimtb <[email protected]>
Co-authored-by: gantunesr <[email protected]>
Co-authored-by: Gustavo Antunes <[email protected]>
Co-authored-by: Howard Braham <[email protected]>
Co-authored-by: Tomáš Martykán <[email protected]>
Co-authored-by: Brad Decker <[email protected]>
Co-authored-by: Daniel <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.