Skip to content

Test: disable multi-SRP #14857

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

Open
wants to merge 169 commits into
base: stable
Choose a base branch
from
Open

Test: disable multi-SRP #14857

wants to merge 169 commits into from

Conversation

shane-t
Copy link
Member

@shane-t shane-t commented Apr 24, 2025

Description

Related issues

Fixes:

Manual testing steps

  1. Go to this page...

Screenshots/Recordings

Before

After

Pre-merge author checklist

Pre-merge reviewer checklist

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

metamaskbot and others added 30 commits March 27, 2025 19:00
## **Description**

This PR adjust a minor formatting issue causing problems on the
`bitrise.yml` script.

## **Related issues**

Fixes:

## **Manual testing steps**

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

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

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

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


This PR updates the `@metamask/design-tokens` package from `v5.0` to
`v5.1.0` to align with MetaMask's [brand evolution color
updates](https://consensys.slack.com/archives/C1L7H42BT/p1742922214475199).
The most notable change is the transition from our traditional blue to
the new "blurple" color scheme. It touches a lot of snapshots but there
are no functional changes other than upgrading the design tokens
library.

## **Related issues**

Fixes: MetaMask/MetaMask-planning#4405

## **Manual testing steps**

1. Run the application and verify the updated colors across various
components
2. Check light mode and dark mode

## **Screenshots/Recordings**

### **Before**

Navigating around the app with current colors using primary (blue)


https://github.com/user-attachments/assets/358af5a6-bee3-4a56-a41d-17b4e6deb66e

### **After**

Navigating around the app with brand evolution colors using primary
(blurple)


https://github.com/user-attachments/assets/087b7036-68ac-475b-bff0-7e0f0a7b1521

## **Pre-merge author checklist**

- [x] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I've included tests if applicable
- [x] I've documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I've applied the right labels on the PR

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

Issue: The network controller may return data that is missing or
malformed

Solution: Add a guard clause when building the block explorer URL. When
`undefined` is thrown, The "View on Etherscan" option will not be shown
in the edit account bottom sheet

Also fixed an issue where the fixture builder was return malformed
network configurations object which would crash on tests

## **Related issues**

Fixes:
#[14255](#14255)

## **Manual testing steps**

### Normal Flow
1. Goto wallet home screen
2. Switch to any network 
3. Click on the account switch button up top
4. Click on the kebab icon next to an account 
5. The bottom sheet should appear as normal
6. If the network controller returns any malformed object that relates
to building a block explorer url, the "View on Etherscan" should not be
shown

### E2E Flow
#### To test the guard clause
1. Comment out the guard clause
```typescript
      if (!explorer) {
        return undefined;
      }
 ```
2. Undo all the changes from `e2e/fixtures/fixture-builder.js` in this PR
3. Run `yarn test:e2e:ios:debug:build` this will give you a build with a malformed network which is Localhost in this case
4. Run `yarn test:e2e:ios:debug:run e2e/specs/accounts/change-account-name.spec.js` and observe the invalid url error
5. Comment back the guard clause and re-run the e2e test and it should pass without the changes from `e2e/fixtures/fixture-builder.js`

#### To test the fixture fix
1. Comment out the guard clause
```typescript
      if (!explorer) {
        return undefined;
      }
 ```
2. Run `yarn test:e2e:ios:debug:run
e2e/specs/accounts/change-account-name.spec.js` and it will pass


## **Screenshots/Recordings**

| Before  | After  | 
|:---:|:---:|

|![before](https://github.com/user-attachments/assets/d6e939bc-c439-432e-8bb0-c5abd5335ac0)|![after](https://github.com/user-attachments/assets/a7aa3a6f-2eca-4c5a-a004-2cb72121ceeb)|

### **Before**

NA

### **After**

NA

## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [x] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [x] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

This PR sync stable and main with the 7.43.0 release.

## **Related issues**

Fixes:

## **Manual testing steps**

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

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

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

---------

Co-authored-by: metamaskbot <[email protected]>
Co-authored-by: MetaMask Bot <[email protected]>
Co-authored-by: runway-github[bot] <73448015+runway-github[bot]@users.noreply.github.com>
Co-authored-by: Vince Howard <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: sahar-fehri <[email protected]>
Co-authored-by: Aslau Mario-Daniel <[email protected]>
Co-authored-by: Eric Bishard <[email protected]>
Co-authored-by: Owen Craston <[email protected]>
Co-authored-by: tommasini <[email protected]>
Co-authored-by: Curtis David <[email protected]>
Co-authored-by: Davide Brocchetto <[email protected]>
Co-authored-by: Matthew Grainger <[email protected]>
Co-authored-by: OGPoyraz <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: Jyoti Puri <[email protected]>
Co-authored-by: Prithpal Sooriya <[email protected]>
Co-authored-by: Xiaoming Wang <[email protected]>
Co-authored-by: Nick Gambino <[email protected]>
Co-authored-by: Brian August Nguyen <[email protected]>
Co-authored-by: Nico MASSART <[email protected]>
Co-authored-by: Salim TOUBAL <[email protected]>
Co-authored-by: CW <[email protected]>
Co-authored-by: Pedro Figueiredo <[email protected]>
Co-authored-by: digiwand <[email protected]>
Co-authored-by: Gustavo Antunes <[email protected]>
Co-authored-by: Vinicius Stevam <[email protected]>
Co-authored-by: EtherWizard33 <[email protected]>
Co-authored-by: Bryan Fullam <[email protected]>
Co-authored-by: Devin Stewart <[email protected]>
Co-authored-by: Ziad Saab <[email protected]>
Co-authored-by: Nicholas Smith <[email protected]>
Co-authored-by: George Weiler <[email protected]>
Co-authored-by: Cal Leung <[email protected]>
Co-authored-by: Amitabh Aggarwal <[email protected]>
Co-authored-by: Gauthier Petetin <[email protected]>
Co-authored-by: Frederik Bolding <[email protected]>
Co-authored-by: infiniteflower <[email protected]>
Co-authored-by: Iván <[email protected]>
Co-authored-by: Daniel Cross <[email protected]>
Co-authored-by: Owen Craston <[email protected]>
Co-authored-by: Kylan Hurt <[email protected]>
Co-authored-by: jake-perkins <[email protected]>
Co-authored-by: David Drazic <[email protected]>
Co-authored-by: Pedro Pablo Aste Kompen <[email protected]>
Co-authored-by: AxelGes <[email protected]>
Co-authored-by: Michele Esposito <[email protected]>
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

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

We recently added `TransactionController` event handlers by having
flexibility of "modular initialisation".
This means that we can get rid of existing `Transaction Finalized`
events living in the Engine file.

All STX metric properties will be added as expected as before. 

## **Related issues**

Fixes: MetaMask/MetaMask-planning#4520

## **Manual testing steps**

No manual testing required - user flows are not affected.

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [X] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [X] I've completed the PR template to the best of my ability
- [X] I’ve included tests if applicable
- [X] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [X] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

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

<!--
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 pull request introduces enhancements to the handling and tracking
of phishing-related events in the `PhishingModal` component. The key
changes include the addition of event tracking when the phishing modal
is displayed and when users choose to proceed to a phishing site despite
warnings.


## **Related issues**

Fixes:

## **Manual testing steps**

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

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

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

We escape RTL override unicode from signTypedData requests. This PR
escapes LTR override unicode since we also support RTL languages

## **Related issues**

Fixes: MetaMask/MetaMask-planning#4421

## **Manual testing steps**

1. Go to a url that can load windows.ethereum (e.g. test-dapp)
2. Send request with unicode characters. You may paste the unicode
characters directly https://unicode-explorer.com/c/202D

e.g.
```
const rawMessageV4 = {
  types: {
    EIP712Domain: [
      { name: 'name', type: 'string' },
      { name: 'version', type: 'string' },
      { name: 'chainId', type: 'uint256' },
      { name: 'verifyingContract', type: 'address' },
    ],
    Person: [
      { name: 'name', type: 'string' },
      { name: 'wallet', type: 'address' },
    ],
    Mail: [
      { name: 'from', type: 'Person' },
      { name: 'to', type: 'Person' },
      { name: 'contents', type: 'string' },
    ],
  },
  primaryType: 'Mail',
  domain: {
    name: 'Ether Mail', 
    version: '1
', 
    chainId: 11155111,
    verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
  },
  message: {
    from: { 
      name: 'Cow', 
      wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826' 
    },
    to: { 
      name: 'Bob', 
      wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD123' 
    },
    contents: 'he󠁶llo󠁶‮world
hi∞',  // Hid‭den characters in string
  },
};

// Send the request
await window.ethereum.request({
  method: "eth_signTypedData_v4",
  params: ["0xYourWalletAddress", JSON.stringify(rawMessageV4)]
});
```

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

As a part of Portfolio View v1, we want to support filtering by chain
for the Activity View. This means that when “All Networks” is selected,
it also shows the activity for all networks when Activity tab is
selected. When “Curren Network” is selected, it shows the activity only
for the current network.

Smart transaction PR:
MetaMask/smart-transactions-controller#498

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

## **Manual testing steps**

1. Go to the activity page
2. You should have a drop down menu to filter on networks
3. when you choose current network , you should see only transaction for
current network

## **Screenshots/Recordings**

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

### **Before**

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



https://github.com/user-attachments/assets/a5c0095d-d811-4954-bda1-9ef92e84e687



### **After**

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




https://github.com/user-attachments/assets/5a8c6258-2a9c-427a-9d06-ec4baef7578c




## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

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

Two changes are made in this PR to fix the issue where an invalid
password message is missing
- Remove redundant `lockApp` call from `Authentication`. This is not
needed since the user is already locked out and is on the login screen.
The disappearance of the invalid password message was a result of the
`lockApp` action re-navigating to the login screen
- We also consolidating the invalid password logic so that the catch
block handles both the password requirement and invalid password
scenario

## **Related issues**

Fixes: #13558

## **Manual testing steps**

1. Create a wallet
2. Kill and re-open app to land on the login screen
3. Try entering 2 characters and login, which will result in an invalid
password message as a result of failed password requirements
4. Try entering 10 characters, which will result in an invalid password
message as a result of a failed vault decryption (wrong password)

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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


https://github.com/user-attachments/assets/90b908d7-fa80-48e9-a730-d4d398eafc37


## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

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

<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

Fixes missing translations in Swap tx.

## **Related issues**

Fixes: #14285

## **Manual testing steps**

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

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

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

In new designs app was hanged after any error in ledger signing. The PR
fixes this issue.

## **Related issues**

Fixes: MetaMask/MetaMask-planning#4482

## **Manual testing steps**

1. Connect to ledger
2. On test dapp submit signatures
3. Ensure they works as expected

## **Screenshots/Recordings**
TODO

## **Pre-merge author checklist**

- [X] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [X] I've completed the PR template to the best of my ability
- [X] I’ve included tests if applicable
- [X] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [X] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

Support input types on the `SnapUIInput` component. For mobile, this
means changing the keyboard type and potentially hiding characters in a
password input. This PR does not implement `min`, `max` or `step` as
there doesn't seem to be any direct equivalents on mobile at this time.

This PR also fixes a number of small issues like the sheets not having a
max height and the banner sometimes showing an empty title.

## **Related issues**

Fixes: MetaMask/snaps#3181
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

Bump Snaps packages to latest and handle required changes.

Summary of changes:
- Prevent concurrent decryption of Snap state
- Increase Snap interface context size limit
- Add underlying support for `AssetSelector` and `AddressInput` (UI/UX
to follow)
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

This PR introduces the ability for a user to add an account to a
specific SRP.

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

- Added SelectSRP, SRPList and SRPListItem components
- Changed the AddAccountAction to show SRP list if there are multiple
srps, otherwise the behavior is the same
- Added e2e selectors that are not currently used in tests. 
- Changed Nav/App's `RootModalFlow` to accept a new optional prop to
pass the route information.

## **Related issues**

Fixes:

## **Manual testing steps**

1. Import a new SRP
2. Open account actions 
3. Click add account
4. See that you can select the srp to add the account to. 
5. Add Account
6. Go back to the add account srp list, and see that the account as been
added to the specified srp.

## **Screenshots/Recordings**

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

### **Before**

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

### **After**



https://github.com/user-attachments/assets/507d84b7-6a00-4a55-80ed-aed2faed1068


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

## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

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

As result of [Confirmations code folder structure
proposal](https://www.notion.so/metamask-consensys/Confirmations-code-folder-structure-improvements-1c0f86d67d6880dfa74acc25f2f27832),
this PR relocates old confirmation code into `legacy` folder.
It has no functional change - just relocation. 

## **Related issues**

Fixes: MetaMask/MetaMask-planning#4550

## **Manual testing steps**

No user flow changes.

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [X] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [X] I've completed the PR template to the best of my ability
- [X] I’ve included tests if applicable
- [X] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [X] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**
Enable e2e testing on flask builds in ci to allow engineers and QA to
run automated tests early in development, ensuring faster feedback and
improved stability
<!--
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:
NA

## **Manual testing steps**

1. Ensure the spec files are placed in the directory e2e/specs/flask,
similar to the extension repo structure.

2. Navigate to Bitrise dashboard.

3. Start a new build for your project.

4. Select the branch you want to run the tests on.

5. In the build workflow, add or select the run_e2e_flask_pipeline step
to trigger the E2E tests.

6. Wait for the build to complete and review the E2E test results.

7. If necessary, fix any issues identified during testing and rerun the
pipeline.

## **Screenshots/Recordings**

<img width="409" alt="image"
src="https://github.com/user-attachments/assets/492b0771-5600-45ba-b86b-dc2d0ab486dc"
/>


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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I’ve included tests if applicable
- [ ] 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-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

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

The loading banner flickers and was delayed because we have 2 loading
states from 2 different controllers.
We now combine them into a contiguous loading state, and ensure we check
both controllers are loading to show the loading banner.

## **Related issues**

Fixes:

## **Manual testing steps**

Test notification enable flow
1. Onboard
2. Click Bell
3. Enable Notifications

## **Screenshots/Recordings**

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

### **Before**


https://www.loom.com/share/8a7f4dc67c1b46f0b3fd3be8b3766108?sid=e45d1f5f-ecb0-4ede-8608-ac1376be51cd

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

### **After**


https://www.loom.com/share/84dc07aa17524cf19baee592006b5099?sid=dbbb9340-a02b-46eb-8015-cf21d61caa09

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

## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

This PR's purpose is to temporarily skip a flaking onramp e2e test to
unblock e2e on main. There will be a follow-up PR to address the
flakiness.

Test run:
https://app.bitrise.io/app/be69d4368ee7e86d/pipelines/16a92e22-a60e-4102-abaa-2dc6fe5de80f

## **Related issues**

Fixes:

## **Manual testing steps**

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

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

This PR introduces a new QuoteDetailsCard component to enhance the
Bridge UI by displaying detailed quote information along with features
such as expandable content for price impact and slippage settings, as
well as adding relevant tests and updating redux state management.

### Key Components Added

#### 1. QuoteDetailsCard
- Displays essential quote information including:
  - Network fee and estimated processing time
  - Source and destination network details
  - Exchange rate and price impact
  - Slippage settings
- Features an expandable accordion view for additional details


#### 2. SlippageModal (Updated)
- Refactored to use Redux for state management

## **Related issues**

Fixes:
[MMS-1985](https://consensyssoftware.atlassian.net/browse/MMS-1985)

## **Manual testing steps**

1. Navigate to the Bridge screen
2. Verify the QuoteDetailsCard displays:
3. Source and destination network badges
4. Network fee amount
5. Estimated transaction time
6. Quote rate
7. Price impact (when expanded)
8. Test the expand/collapse functionality
9. Verify the slippage edit button opens the SlippageModal
10. Check that the quote info button opens the QuoteInfoModal

## **Screenshots/Recordings**


https://github.com/user-attachments/assets/9b964521-5886-461b-abf5-466f1b609e96



## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

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


[MMS-1985]:
https://consensyssoftware.atlassian.net/browse/MMS-1985?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
…14237)

## **Description**
This PR refactors the Stake Input component to make it compatible with
evm tokens that are not ETH.

We approach this task by starting a fresh Earn directory where we will
slowly convert components, utils, hooks etc. to be compatible with all
evm tokens. The first flow to tackle is the Stake Input flow. This was
moved to the Earn directory and is now Earn Input flow.

Several other files have been moved to the Earn folder and possibly
renamed if appropriate. If a file or directory has been moved the
counterpart has been removed from the Stake directory and it is now the
source of truth. The Earn directory files handle logic whether the
`isStableCoinLendingFeatureEnabled` feature flag is true or false.

The first commit moves some directories over with no logical changes,
only path changes if any
The second commit moves some other components, hooks and views and
updates logic generally, fixing existing unit tests
The third commit adds unit tests

**This PR does not fully complete the Earn Deposit flow**, but aims to
make the component compatible with all evm tokens to prepare for
completion in another ticket. While making this component compatible,
there was a considerable amount of headway made for the Earn Withdraw
flow as well as they use the same input hook. The Earn Withdraw flow is
also not fully complete but is prepared for completion in another
ticket.
## **Related issues**

Fixes: https://consensyssoftware.atlassian.net/browse/STAKE-949

## **Manual testing steps**

- With stable coin lending flag off, everything should work as it was
working before
- With stable coin lending flag off, user should be able to deposit,
withdraw and claim
- With stable coin lending flag off, user should get appropriate errors
for not enough eth for gas or not enough for balance
- With stable coin lending flag off, there should be no leaking of
stable coin features

- With stable coin lending flag on, user should be able to begin a
deposit with any of the tokens in the earn selection list
- With stable coin lending flag on, user should get appropriate errors
for not enough token for balance or not enough ETH for gas
- Note that currently gas estimation for stablecoin lending is not
implemented, however, a user should not be able to deposit more than
they have. There is also a check for gas that is implemented that allows
user to spend max balance of a token that is not ETH as long of they
have enough ETH in gas. We will plug in the proper gas estimation in
another ticket.
- With stable coin lending flag on, user should be able to begin a
withdrawal like normal for ETH as there is no Earn ui yet. Note that if
there was evm tokens are now supported

## **Screenshots/Recordings**


https://github.com/user-attachments/assets/d4c3d008-9ada-420d-bd4a-849ed45a547b

### **After**


https://github.com/user-attachments/assets/ef1a5d62-41fe-457c-bc34-ef14c6ee9bf3

## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

Add a legacy compatible process in the addProperties function to handle
the object props that contains a `anonymous: true` and move them to
sensitiveProperties instead.

It was planned that code would use addSensistive properties, but
sometimes, we get some mixed props from places like a getAnalyticsParams
function that returns a lot props and passes them along far before the
event is built.
It would require a too big refactoring to split these props at the
source.
I decided to add a new processing in the addProperties directly to
filter anonymous props passed as normal props and redirect them.

Even if this new additional processing is executed for all the
addProperties calls, it is not adding enough processing time to
negatively impact performances.

## **Related issues**

Fixes #12728

>[!NOTE]
> This fixes props for when events are not properly polulated, but
ideally they are, and some effort to fix how eventsa re populated have
been made in #12532

## **Manual testing steps**

1. View the tx approval screen
2. check `Approval Started` event props
3. generates both a non-anonymous and an anonymous event.
4. Only anonymous event contains `number_tokens_requested`

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

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

## **Related issues**

Fixes:

## **Manual testing steps**

1. Go to NFT tab and notice the network filter bar.
2. You should be able to see your NFTs detected on Ethereum and linea.
Make sure you see the correct NFTs and the right
network icon.
3. Switch to polygon and import the NFTs you have on polygon, make sure
they are imported properly.
4. Click on the NFTs and see the NFT  details page

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

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

This PR bumps `@metamask/controller-utils` to `^11.6.0`

## **Related issues**

Fixes:

## **Manual testing steps**

1. No manual testing steps

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [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: Mathieu Artu <[email protected]>
## **Description**

A function to search a token was expecting a fixed value, and if it
wasn't present the test was failing. I updated the function to search
for the token by it's name and then selecting it.

## **Related issues**

Fixes: Flaky test was failing the pipeline

## **Manual testing steps**

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

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [ ✓ ] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ✓ ] I've completed the PR template to the best of my ability
- [ ✓ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ✓ ] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

Resolve a couple of issues with Snaps UI in dark mode.

## **Related issues**

Fixes: #14286

## **Screenshots/Recordings**

### **After**
![Simulator Screenshot - iPhone 16 Pro 2 - 2025-04-01 at 16 07
00](https://github.com/user-attachments/assets/b9bdb96a-e80f-4e74-8199-bc4c8a6857f1)
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

This PR aims to address the issue where the apk path was incorrect in
`build_android_devbuild`. The default string generated for an expo apk
is `app-prod-debug.apk` and the folder where it lives is in `/debug`

Here is an example of the passing builds:
https://app.bitrise.io/app/be69d4368ee7e86d/pipelines/2aed60c0-237a-48b0-af72-c712e4d7c1c6

Here is the specific problematic build on main:
https://app.bitrise.io/build/1644e3e9-4a02-4be7-851e-5b0a6300c4ff

Now here on my branch:
https://app.bitrise.io/build/79ba7b27-716b-43b1-8546-032c9f5e48ac?tab=log

I update the `_android_build_template` to account for android expo
builds.


```

# Set base paths for release builds
                 if [ "$IS_DEV_BUILD" = "true" ]; then
                    APK_DIR="$PROJECT_LOCATION/app/build/outputs/apk/$APP_NAME/debug"
                else
                    APK_DIR="$PROJECT_LOCATION/app/build/outputs/apk/$APP_NAME/release"
                    BUNDLE_DIR="$PROJECT_LOCATION/app/build/outputs/bundle/$OUTPUT_PATH"
                fi

                # Generate new names based on build type and version
                NEW_BASE_NAME="metamask-${METAMASK_ENVIRONMENT}-${METAMASK_BUILD_TYPE}-${NAME}-${NUMBER}"

                # Rename APK
                if [ "$IS_DEV_BUILD" = "true" ]; then
                    OLD_APK="$APK_DIR/app-$APP_NAME-debug.apk"
                    OLD_AAB="$BUNDLE_DIR/app-$APP_NAME-debug.aab"
                else
                    OLD_APK="$APK_DIR/app-$APP_NAME-release.apk"
                    OLD_AAB="$BUNDLE_DIR/app-$APP_NAME-release.aab"
                fi

```

## **Related issues**

Fixes:

## **Manual testing steps**

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

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

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

<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**


The PR introduced an onboarding blocker which is making the apps
unusable. To unblock engineers,
#12931 was reverted.

## **Related issues**

Fixes:

## **Manual testing steps**

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

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

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

Problem: `TOKEN_ADDED` events are being sent to Mixpanel. Many of these
events are set with the `source` as `(not set)`:
https://mixpanel.com/project/1979229/view/132079/app/boards#id=6919493&edited-bookmark=NBBXi19rnuQX

This is because we are building the metrics like this:
```
    this.props.metrics.trackEvent(
      this.props.metrics
        .createEventBuilder(MetaMetricsEvents.TOKEN_ADDED)
        .addProperties(this.getAnalyticsParams())
        .build(),
    );
```
Then, `getAnalyticsParams` is set in a try/catch:
```
 getAnalyticsParams = () => {
    try {
      const { chainId } = this.props;
      const { address, symbol } = this.state;
      return {
        token_address: address,
        token_symbol: symbol,
        chain_id: getDecimalChainId(chainId),
        source: 'Custom token',
      };
    } catch (error) {
      return {};
    }
  };
```

This means, that we there’s an error, we send an empty event. This PR
refactors to return `undefined`, not send the empty event to Mixpanel
when there's an error, and then logging the error being emitted for
further troubleshooting.

The root cause of the error is still unknown. We anticipate that it's
because for the `AddCustomToken` event, we are passing an array of
params, when this could not be supported for very large data sets.

The rest of these changes should at minimum ensure that the data being
sent to Mixpanel for tracking is meaningful.

## **Related issues**

Fixes: https://consensyssoftware.atlassian.net/browse/MMASSETS-657

## **Manual testing steps**

## **Screenshots/Recordings**

## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**
We have been seeing random failures on main branch related to lockfile
sync due to latency or infrastructure issues. These are not test
failures.
<!--
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://app.bitrise.io/build/3d0f5e39-2c0b-447a-a715-90a7f40b5a0e

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

https://app.bitrise.io/app/be69d4368ee7e86d/pipelines/c205bda9-70d0-424a-839d-e434b79ac55b

## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.
metamaskbot and others added 12 commits April 20, 2025 00:10
…stablecoin pairs (#14760)

- fix: not setting default slippage for non stablecoin pairs (#14730)

<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

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

This PR fixes an issue where if you were on a stablecoin pair then
selected a pair of tokens which were both not stablecoins, we would be
keeping the default slippage as 0.5%. This will set the default slippage
to 2% for non stablecoin pairs.

## **Related issues**

Fixes:

## **Manual testing steps**

1. Go to Swaps
2. Select USDC and USDT as the pair
3. See slippage be set to 0.5%
4. Change USDC to ETH
5. See slippage be set to 2%

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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




https://github.com/user-attachments/assets/f0a67e3d-acbf-4ab9-a0a7-2860e175027f



## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding

Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I’ve included tests if applicable
- [ ] 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-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

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

Co-authored-by: infiniteflower <[email protected]>
…ferent chain (#14783)

- fix: Switch chains when sending NFT on different chain (#14749)
## **Description**
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

This pr fixes the input text color to show the alternative text color in
dark mode and moves validation logic into a validation file.

Changes:
1. ImportNewSecretRecoveryPhrase dark mode text color.
2. Moved logic into a new validation file

<!--
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?
3. What is the improvement/solution? -->

Fixes:

https://consensyssoftware.atlassian.net/browse/MMMULTISRP-172?atlOrigin=eyJpIjoiODc2NzY1Y2RjMGExNDBiMzlkODY2OWFkOWNkYjIxMTUiLCJwIjoiaiJ9

1. Go to account actions
2. Click on `Secret Recovery Phrase`
4. Enter a word
5. Switch to dark mode and see that the text color is visible.

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

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

![Screenshot 2025-04-17 at 19 13

05](https://github.com/user-attachments/assets/8dc35491-b45f-4eb5-8ceb-02ece09208f0)

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

- [x] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding

Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

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

<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

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

## **Related issues**

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

## **Manual testing steps**

1. Follow steps in issue

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding

Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling

guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

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

---------

Co-authored-by: Ziad Saab <[email protected]>
[bd2259d](bd2259d)

---------

Co-authored-by: Frank von Hoven <[email protected]>
Co-authored-by: Ziad Saab <[email protected]>
Co-authored-by: Cal Leung <[email protected]>
- fix: blockaid metrics to properly merge into the ui_customizations
(#14764)
@shane-t shane-t requested review from a team as code owners April 24, 2025 17:00
vpintorico
vpintorico previously approved these changes Apr 24, 2025
Base automatically changed from release/7.45.0 to stable April 29, 2025 20:38
@sethkfman sethkfman dismissed vpintorico’s stale review April 29, 2025 20:38

The base branch was changed.

@sethkfman sethkfman requested review from a team as code owners April 29, 2025 20:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.