Skip to content

Conversation

@sethkfman
Copy link
Contributor

Description

Stable sync 7.45.0

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 February 13, 2025 22:48
This PR updates the change log for 7.41.0 and generates the test plan
here
[commit.csv](https://github.com/MetaMask/metamask-mobile/blob/chore/7.41.0-Changelog/commits.csv)

---------

Co-authored-by: metamaskbot <metamaskbot@users.noreply.github.com>
- chore: remove SRP videos (#13507)

## **Description**

Removing the SRP video (saving 7.5 mb) and replaced with new designs

[here](https://www.figma.com/design/pViOUcmjwhEzFsdrwknpNc/Onboarding-redesign?node-id=1-117&t=SrTBBEz0dgAQsaoU-1)
In the future we are doing a bigger redesign. This is a small step
towards it

## **Related issues**

Fixes:

## **Manual testing steps**

1. Fresh install of the app
2. Create a new wallet and going through onboarding flow, make sure the
new design is there and fits on all devices
3. Afterwards goto settings and goto "Security and Privacy" to make sure
its removed altogether (no design)

## **Screenshots/Recordings**

### Larger Devices
iPhone 16

<img

src="https://github.com/user-attachments/assets/a470060d-292f-46fc-acbe-2d3eea859557"
width="250px" />

### Smaller Devices

iPhone SE



https://github.com/user-attachments/assets/f2f45941-1b1d-4f2b-8151-c0028183f1f0

Pixel 2

<img

src="https://github.com/user-attachments/assets/94ebea2e-100b-469a-afbc-f61369e2ee5f"
width="250px" />

### **Before**

<img

src="https://github.com/user-attachments/assets/a9c9011c-a466-4d1b-bcac-fcf930e1c5c1"
width="250px" />


### **After**

<img

src="https://github.com/user-attachments/assets/20f44bf9-17fe-440e-984e-69ce18a2b70f"
width="250px" />


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

Co-authored-by: Vince Howard <vincenguyenhoward@gmail.com>
This PR cherry-picks #13530

Co-authored-by: Vince Howard <vincenguyenhoward@gmail.com>
This PR cherry-picks #13513

Co-authored-by: sahar-fehri <sahar.fehri@consensys.net>
This PR cherry-picks #13484

Co-authored-by: sahar-fehri <sahar.fehri@consensys.net>
This PR cherry-picks #13503

Co-authored-by: Vince Howard <vincenguyenhoward@gmail.com>
Updated formatting to info plist
This PR cherry-picks
#12857

---------

Co-authored-by: Eric Bishard <eric@httpjunkie.com>
Co-authored-by: metamaskbot <metamaskbot@users.noreply.github.com>
Co-authored-by: Owen Craston <owen.craston@consensys.net>
## **Description**

- Added additional app icons
- Removed unused tint fields in `Contents.json`
- Updated `info.plist`

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

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.
This PR cherry-picks #13554

Co-authored-by: tommasini <46944231+tommasini@users.noreply.github.com>
…13587)

This PR cherry-picks #13514

Co-authored-by: Curtis David <Curtis.David7@gmail.com>
… workarounds) (#13586)

This PR cherry-picks #13509

Co-authored-by: Davide Brocchetto <davide.brocchetto@consensys.net>
… package into existing pooled staking hooks) (#13612)

This PR cherry-picks
#13594
This PR cherry-picks #13590

Co-authored-by: Eric Bishard <eric@httpjunkie.com>
…yModal` (#13669)

- fix: cp-7.41.0 Prevent flickering on `RetryModal` (#13637)

<!--
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 relocates `RetryModal` to stop flickering in
`TransactionsHistory` screen.

## **Related issues**

Fixes: #13547

## **Manual testing steps**

See issue #13547

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

Co-authored-by: OGPoyraz <omergoktugpoyraz@gmail.com>
)

- fix: cp-7.41.0 Temporarily revert gas included swaps (#13639)

## **Description**
Reverts #13430 for now.

We initially believed that resolving the known issue with gas-included
swaps requiring token approval would be easy and could be completed
before the release candidate for version 7.41.0 was pushed to
production, but it turns out that more fundamental changes are needed.
Specifically, submitBatch support from the
TransactionController—allowing the simultaneous submission of multiple
transactions (approval and swap)—is required. This submitBatch support
will likely also be used for current swaps that need token approval to
increase success rates.

## **Related issues**

Fixes: #13584 

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

Co-authored-by: Daniel <80175477+dan437@users.noreply.github.com>
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

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

Cherry-picks
bee0c07

This PR relocates `RetryModal` to stop flickering in
`TransactionsHistory` screen.

## **Related issues**

Fixes: #13547

## **Manual testing steps**

See issue #13547

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

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

Fix request from url displayed for signatures. Wrong url is spamming
sentry.

## **Related issues**

Fixes: #13580

## **Manual testing steps**
NA

## **Screenshots/Recordings**
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**

- [ ] 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.
…#13695)

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

## **Description**

Fix swaps done using hardware wallets.

## **Related issues**

Fixes: #13570 

## **Manual testing steps**

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

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

Co-authored-by: OGPoyraz <omergoktugpoyraz@gmail.com>
…cons for improved dark/light mode handling (#13697)

- fix: cp-7.41.0 implement transparent app icons for improved dark/light
mode handling (#13597)

## **Description**

**Issue:** Our app icons were stuck in dark mode and ignored light mode
settings in TestFlight builds (while working correctly locally). The
build process was stripping the light mode icons during compilation.

**Solution:** Implement transparent background app icons that leverage
iOS system defaults:
- Light mode: System automatically applies white background
- Dark mode: System automatically applies gradient black background
This matches our brand color schemes perfectly and simplifies our icon
management.

**Additional Changes:**
- Removed legacy `CFBundleIcons` dictionary from Info.plist
- Kept only the modern `CFBundleIconName` entry
- Simplified asset catalog configuration to use transparent icons

**Risk Assessment:**
- Primary risk is potential App Store rejection due to transparent app
icons
- However, many apps successfully use this approach
- Fallback backgrounds are consistent with our brand guidelines
- Simplifies our icon management and build process

### Testing:
- Verified icons display correctly in development
- Confirmed proper light/dark mode behavior locally

### Next Steps:
- Monitor App Store review process
- Have backup solution with explicit backgrounds if needed
- Document this approach for future reference

## **Related issues**

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

## **Manual testing steps**

1. Install a fresh app
2. Hold down on the home screen until the apps jiggle, indicating that
the icons can be moved/deleted/edited
3. Click on the "Edit" button at the top right or left depending on the
device, and click "Customize"
4. A bottom sheet should appear allowing you to toggle light, dark, and
tint
5. Confirm that those still work

## **Screenshots/Recordings**

### Release Build



https://github.com/user-attachments/assets/bf3365b6-ac27-4592-a48b-56ae9a28bd18

### **Before**

![Screenshot 2025-02-17 at 09 51

36](https://github.com/user-attachments/assets/cada73ae-4b0b-46ab-b8d8-b319bdfbe1ee)

### **After**



![after](https://github.com/user-attachments/assets/dee4e5c3-9d17-4ea7-a025-4851949d4fea)

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

---------

Co-authored-by: metamaskbot <metamaskbot@users.noreply.github.com>
[3d1e941](3d1e941)

Co-authored-by: Vince Howard <vincenguyenhoward@gmail.com>
Co-authored-by: metamaskbot <metamaskbot@users.noreply.github.com>
…ting tags in pre-init (#13694)

- fix: cp-7.41.0 Handle better errors by getting tags in pre-init
(#13598)

## **Description**

Handle errors in a more scalable way by adding a try catch to get tags
function. Also added test coverage

## **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.
[257c3ac](257c3ac)

Co-authored-by: tommasini <46944231+tommasini@users.noreply.github.com>
@sethkfman sethkfman requested a review from a team April 30, 2025 22:15
@github-actions
Copy link
Contributor

CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.

@metamaskbot metamaskbot added the team-mobile-platform Mobile Platform team label Apr 30, 2025
@socket-security
Copy link

socket-security bot commented Apr 30, 2025

No dependency changes detected. Learn more about Socket for GitHub.

👍 No dependency changes detected in pull request

@sethkfman sethkfman added No E2E Smoke Needed no-changelog no-changelog Indicates no external facing user changes, therefore no changelog documentation needed labels May 1, 2025
@codecov-commenter
Copy link

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 67.77%. Comparing base (f518fc9) to head (d9c4ae9).
Report is 33 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #15044      +/-   ##
==========================================
- Coverage   67.84%   67.77%   -0.08%     
==========================================
  Files        2343     2344       +1     
  Lines       50476    50620     +144     
  Branches     7452     7483      +31     
==========================================
+ Hits        34246    34306      +60     
- Misses      14062    14135      +73     
- Partials     2168     2179      +11     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

NicolasMassart
NicolasMassart previously approved these changes May 6, 2025
@sethkfman sethkfman enabled auto-merge May 8, 2025 15:53
@sonarqubecloud
Copy link

sonarqubecloud bot commented May 8, 2025

@sethkfman sethkfman added this pull request to the merge queue May 8, 2025
Merged via the queue into main with commit f996151 May 8, 2025
39 of 40 checks passed
@sethkfman sethkfman deleted the stable-sync branch May 8, 2025 16:17
@github-actions github-actions bot locked and limited conversation to collaborators May 8, 2025
@metamaskbot metamaskbot added the release-7.47.0 Issue or pull request that will be included in release 7.47.0 label May 8, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

no-changelog no-changelog Indicates no external facing user changes, therefore no changelog documentation needed release-7.47.0 Issue or pull request that will be included in release 7.47.0 team-mobile-platform Mobile Platform team

Projects

None yet

Development

Successfully merging this pull request may close these issues.