Skip to content

[pull] main from MetaMask:main#90

Merged
pull[bot] merged 7 commits into
Reality2byte:mainfrom
MetaMask:main
Aug 21, 2025
Merged

[pull] main from MetaMask:main#90
pull[bot] merged 7 commits into
Reality2byte:mainfrom
MetaMask:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Aug 21, 2025

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.3)

Can you help keep this open source service alive? 💖 Please sponsor : )

tommasini and others added 7 commits August 21, 2025 18:45
<!--
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 shajs and cipher base

GHSA-cpq7-6gpm-g9rc
GHSA-95m3-7q98-8xr5


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

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry:

## **Related issues**

Fixes:

## **Manual testing steps**

```gherkin
Feature: my feature name

  Scenario: user [verb for user action]
    Given [describe expected initial app state]

    When user [verb for user action]
    Then [describe expected outcome]
```

## **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**
Adds a mock to `http://localhost:9452/favicon.ico` to prevent tests from
hanging.

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

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry:

## **Related issues**

Fixes:

## **Manual testing steps**

```gherkin
Feature: my feature name

  Scenario: user [verb for user action]
    Given [describe expected initial app state]

    When user [verb for user action]
    Then [describe expected outcome]
```

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

**Bump Assets Controllers to v73.3.0**

Polling for native and ERC20 tokens is now consolidated into a single
RPC request, eliminating the need for separate polling in
AccountTrackerController and reducing the total number of RPC calls.

Additionally, all RPC requests across account addresses are now batched
through the `multicall3` contract, providing improved performance.

core PR: MetaMask/core#6354

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

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry:

## **Related issues**

Fixes:

## **Manual testing steps**

```gherkin
Feature: my feature name

  Scenario: user [verb for user action]
    Given [describe expected initial app state]

    When user [verb for user action]
    Then [describe expected outcome]
```

## **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: Prithpal Sooriya <prithpal.sooriya@consensys.net>
Co-authored-by: Amitabh Aggarwal <aggarwal.amitabh@gmail.com>
…8494)

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

## **Description**
This PR adds `useAccountGroupName` to be used as display name in Wallet
component when multichain accounts are enabled
<!--
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?
-->

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: null

## **Related issues**

Fixes:
Jira ticket: https://consensyssoftware.atlassian.net/browse/MUL-399

## **Manual testing steps**

```gherkin
Feature: Account Group Name Display in Wallet View
  As a MetaMask Mobile user
  I want to see the account group name in the wallet header when multichain accounts are enabled
  So that I can easily identify which account group I'm currently viewing

  Background:
    Given the MetaMask Mobile app is installed and running
    And I have completed the onboarding process
    And I have at least one account group with a custom name

  @multichain-accounts @wallet-header
  Scenario: Display account group name when multichain accounts state 2 is enabled
    Given multichain accounts state 2 feature flag is enabled
    And I have an account group named "Personal Wallet"
    And the account group contains at least one account
    And I am on the main wallet view
    When the wallet view loads
    Then I should see "Personal Wallet" displayed in the wallet header
    And the account group name should be clearly visible to the user

  @multichain-accounts @wallet-header
  Scenario: Fall back to account name when multichain accounts state 2 is disabled
    Given multichain accounts state 2 feature flag is disabled
    And I have an account named "Account 1"
    And I am on the main wallet view
    When the wallet view loads
    Then I should see "Account 1" displayed in the wallet header
    And the account group name should not be displayed

  @multichain-accounts @wallet-header @Edge-Case
  Scenario: Handle missing account group metadata gracefully
    Given multichain accounts state 2 feature flag is enabled
    And I have a selected account group
    But the account group metadata is null or undefined
    And I am on the main wallet view
    When the wallet view loads
    Then the app should not crash
    And the header should display a fallback name or remain empty
    And no error should be logged to the console

  @multichain-accounts @wallet-header
  Scenario: Update header when switching between account groups
    Given multichain accounts state 2 feature flag is enabled
    And I have multiple account groups:
      | Group Name      | Accounts |
      | Personal Wallet | 2        |
      | Business Wallet | 1        |
    And I am currently viewing "Personal Wallet"
    And I am on the main wallet view
    When I switch to "Business Wallet" account group
    Then the wallet header should update to display "Business Wallet"
    And the change should be immediate without requiring a page refresh

  @multichain-accounts @wallet-header @long-names
  Scenario: Display long account group names appropriately
    Given multichain accounts state 2 feature flag is enabled
    And I have an account group named "My Very Long Account Group Name That Might Overflow"
    And I am on the main wallet view
    When the wallet view loads
    Then the account group name should be displayed in the header
    And the name should be truncated or wrapped appropriately if too long
    And the header layout should remain intact

  @multichain-accounts @wallet-header @special-characters
  Scenario: Display account group names with special characters
    Given multichain accounts state 2 feature flag is enabled
    And I have an account group named "🚀 Crypto Portfolio & Trading 💰"
    And I am on the main wallet view
    When the wallet view loads
    Then the account group name "🚀 Crypto Portfolio & Trading 💰" should be displayed correctly
    And all special characters and emojis should render properly

  @multichain-accounts @wallet-header @performance
  Scenario: Account group name updates efficiently
    Given multichain accounts state 2 feature flag is enabled
    And I have multiple account groups
    And I am on the main wallet view
    When I rapidly switch between different account groups
    Then each account group name should update in the header
    And there should be no performance degradation
    And no memory leaks should occur from the useAccountGroupName hook

  @multichain-accounts @wallet-header @network-switching
  Scenario: Account group name persists when switching networks
    Given multichain accounts state 2 feature flag is enabled
    And I have an account group named "Multi-Chain Wallet"
    And I am on the Ethereum mainnet
    And I am on the main wallet view
    When I switch to Polygon network
    Then the account group name "Multi-Chain Wallet" should still be displayed
    And the header should not revert to showing individual account names

  @multichain-accounts @wallet-header @state-management
  Scenario: Account group name reflects current Redux state
    Given multichain accounts state 2 feature flag is enabled
    And I have an account group named "Trading Account"
    And I am on the main wallet view
    When the selected account group changes in the Redux store
    Then the useAccountGroupName hook should return the updated name
    And the wallet header should reflect the new account group name
    And the update should happen reactively without manual refresh
```

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

1. What is the reason for the change?
- While testing the latest RC (7.54.0) we noticed that the reveal
private credentials page (SRP and Private Key) were broken on Android.
- Clicking the password input field caused the page content to be pushed
to the very top which made it unreadable.
2. What is the improvement/solution?
- This issue was caused by the nested scrollview not applying the
flexGrow to the children. I removed the scrollview in favour of a
standard view and passed in the style flexGrow.
- I also refined the styles (removed unnecessary padding) so that the
Done button could fit on one page without scrolling.

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: null

## **Related issues**

Fixes: https://consensyssoftware.atlassian.net/browse/MUL-558

## **Manual testing steps**

```gherkin
Feature: Reveal private credential

  Scenario: user clicks on the three dot menu inside the account list and it takes them to the account details page
    Given a user click on reveal Secret recovery phrase

    Given a user completes the SRP reveal quiz
    When a user clicks on the password text field
    Then the password field should remain in view of the user at all times
    Given the user types the correct password
    Then their SRP should be revealed

repeat the above steps with reveal private key

```

## **Screenshots/Recordings**

### **Before**


https://github.com/user-attachments/assets/7fe2ad7a-4695-4d08-8202-0a71a7b5338c


### **After**


https://github.com/user-attachments/assets/379f2479-324d-4a3a-8f6d-4969528f0591

<img width="350" height="700" alt="Simulator Screenshot - iPhone 15 Pro
- 2025-08-21 at 15 17 26"
src="https://github.com/user-attachments/assets/c1fe2644-a493-4c06-a600-2410b159a22c"
/>


## **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.
…page (#18461)

<!--
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 'i' button in the asset row behaves inconsistently depending on the
entry point:
- When accessed from the main action menu, it works as expected.
- When accessed from the token details page, it does not work.

This PR fixes this issue by replacing `navigation.navigate` with
`navigation.dispatch`, which allows the new asset overlay to properly
render as new instead of returning to the previous asset.


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

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry:

## **Related issues**

Fixes:

## **Manual testing steps**

```gherkin
Feature: fixed asset page navigation from bridge

  Scenario: user clicks "i" icon from bridge destination token selector
    Given in swap page accessed from asset page

    When user clicks "i" icon
    Then asset page opens for that asset
```

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

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

This PR adds a a new view to see all addresses spread across all
available networks.

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: Adds address list for multichain accounts.

## **Related issues**

Fixes: https://consensyssoftware.atlassian.net/browse/MUL-549

## **Manual testing steps**

```gherkin
Feature: Multichain account address list

  Scenario: user shares address
    Given an user that has multichain account
    When the user presses the copy icon in the header
    Then navigates to a list of all available address in the account
```

**Multichain accounts feature flag should be enabled.**

## **Screenshots/Recordings**

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

### **Before**


https://github.com/user-attachments/assets/188dc5f2-ee21-497a-8fca-3da966c4b63c

### **After**


https://github.com/user-attachments/assets/aebf605c-b2fe-47cf-b1e2-65313b994c19

## **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.
@pull pull Bot locked and limited conversation to collaborators Aug 21, 2025
@pull pull Bot added the ⤵️ pull label Aug 21, 2025
@pull pull Bot merged commit dc35c6e into Reality2byte:main Aug 21, 2025
1 of 29 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants