Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test: token detection import #9600

Closed
wants to merge 53 commits into from
Closed

Conversation

chrisleewilcox
Copy link
Contributor

Description

Related issues

Fixes:

Manual testing steps

  1. Go to this page...

Screenshots/Recordings

Before

After

Pre-merge author checklist

  • I’ve followed MetaMask Coding Standards.
  • I've completed the PR template to the best of my ability
  • I’ve included tests if applicable
  • I’ve documented my code using JSDoc format if applicable
  • I’ve applied the right labels on the PR (see labeling guidelines). Not required for external contributors.

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.

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.

@cortisiko cortisiko added the Run Smoke E2E Triggers smoke e2e on Bitrise label May 15, 2024
Copy link
Contributor

github-actions bot commented May 15, 2024

https://bitrise.io/ Bitrise

❌❌❌ pr_smoke_e2e_pipeline failed on Bitrise! ❌❌❌

Commit hash: e048225
Build link: https://app.bitrise.io/app/be69d4368ee7e86d/pipelines/a8b5fbcd-0e3a-4770-821b-f12d1bbdf4db

Note

  • You can kick off another pr_smoke_e2e_pipeline on Bitrise by removing and re-applying the Run Smoke E2E label on the pull request

cortisiko and others added 23 commits May 22, 2024 01:22
<!--
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 pull request focuses on refactoring the browser and testDapp page
objects to improve code readability and facilitate debugging. A recent
update in Detox enables webview support on iOS, which was previously
only available on Android. This upgrade was integrated into this pull
request and greatly simplifies the browser-related tests. Additionally,
we will have the ability to consistently inject code into the web view
for testing (This is especially important for any sort of Dapp-API tests
that we intend on writing in the future).

But why upgrade Detox specifically in this PR? As part of the browser
refactor, we want to interact with elements consistently, which reduces
the possibility of test flakiness. For instance, we used xy coordinates
to interact with elements in the web view, which posed challenges.
However, these tests would break if the device screen size changed,
necessitating the acquisition of new xy coordinates. By upgrading Detox
to version 20.20, we eliminate this issue and reduce the likelihood of
encountering unreliable tests when running them on various devices.

You can read up more on the different web view strategies and web
actions here: https://wix.github.io/Detox/docs/api/webviews

Things to be aware of:

- The matchers class has been updated with new web view locator
strategies. These strategies now include: byID, ByCssSelector,
ByClassName, and ByxPath, providing more flexibility and options for
locating elements in the web view.

- jsDocs was added for the new strategies 

- All of the confirmation tests except: send-eth.spec.js and
advanced-gas-fees.spec.js were updated.


## **Related issues**

Fixes:

## **Manual testing steps**

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

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask Coding
Standards](https://github.com/MetaMask/metamask-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 to NFT names to `useDisplayName` hook.

## **Related issues**

Fixes: MetaMask/mobile-planning#1714

## **Manual testing steps**

N/A

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask Coding
Standards](https://github.com/MetaMask/metamask-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.
…9305)

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

Update Signature Controller to version 6.1.3

Issue: MetaMask/mobile-planning#1626
e2e:
https://app.bitrise.io/app/be69d4368ee7e86d/pipelines/22a741a5-2753-4cba-92ef-919a9e8cb5f9

To avoid a TS error for the SignatureController in the Engine file, I
had to upgrade of LoggingController to v2.
MetaMask/mobile-planning#1707 was included in
this PR

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



https://github.com/MetaMask/metamask-mobile/assets/15312578/66197ff3-e4a6-4b04-9b7e-66ad835d77ab



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


## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask 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 aims to add `useTokenListName` hook which will be used by Name
component.

## **Related issues**

Fixes: MetaMask/mobile-planning#1706

## **Manual testing steps**

N/A

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask Coding
Standards](https://github.com/MetaMask/metamask-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**

The `context` property of `Engine` was typed as `any`, effectively
disabling type checking for most controller interactions. The `any` has
been removed, restoring controller type checking.

## **Related issues**

This problem was introduced in #6749

## **Manual testing steps**

N/A

## **Screenshots/Recordings**

N/A

## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask 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: Brian Nguyen <brianacnguyen@gmail.com>
Co-authored-by: Desi McAdam <desi.mcadam@gmail.com>
…er-passworder (#9203)

Align `Encryptor` methods to match `@metamask/browser-passworder` as much as possible.

Co-authored-by: Gustavo Antunes <17601467+gantunesr@users.noreply.github.com>
## **Description**

This PR adds patches to mobile to enable Open Sea (OS) migration.

## **Related issues**


[MMASSETS-156.](https://consensyssoftware.atlassian.net/jira/software/projects/MMASSETS/boards/640/backlog?selectedIssue=MMASSETS-156)
(Restricted access Jira issue)

Main core PR: MetaMask/core#4030
Core Compare link used to create the assets patch:
https://github.com/MetaMask/core/compare/patch/mobile-assets-controllers-v-18-0-0...patch/mobile-assets-controllers-v-18-0-0-os-migration-v2?expand=1

## **Context**

Problem: We want to roll out Reservoir to Extension and Mobile similar
to how we have done in Portfolio.
Requirements:
Define a way to compare OpenSea’s spam filtering and Reservoir’s spam
filtering. Ideally the spam filtering is similar.
Create Core PR to migrate calls from OS to Reservoir.
Create PR on mobile to migrate from OS to Reservoir.
Create Extension PR to migrate from OS to Reservoir
Define roll out plan for Extension and Mobile
Roll out Reservoir to Extension and Mobile

Today, to get the NFTs core is calling opensea V2 api to fetch user nfts
and to add new nfts (get NFT metadata)
In this ticket we wanted to call Reservoir API instead of calling
openseaV2.
We are not changing any of the functional behaviors of the app, we are
just swapping third party providers.
So the app should behave the exact same regarding any NFT related
functionality:
Like showing NFT details when clicking on the NFT
And being able to remove/add the NFT
Mark it as favorite
Sending NFts

## **Manual testing steps**

1. Go to the NFT tab
2. You should see your NFTs
3. Adding/removing NFTs should still work as expected
4. clicking on the NFT and seeing the NFT details should work as
expected.

## **Screenshots/Recordings**

The NFT tab should behave the same. You should be able to see the same
NFTs you had.

Only thing noticed while testing is for some collections you might see
either a different image or the mobile default image (if the new third
party provider was not able to return the image)

### **Before**


https://github.com/MetaMask/metamask-mobile/assets/10994169/27d6e580-adb3-47f3-8bfe-5d2b9238a3f1




https://github.com/MetaMask/metamask-mobile/assets/10994169/f3eee367-1dcf-4e78-b738-d6e29f1bef86


### **After**


https://github.com/MetaMask/metamask-mobile/assets/10994169/920747e7-ab27-41ab-961a-88004f087c9a




https://github.com/MetaMask/metamask-mobile/assets/10994169/17fa6860-a7b5-4897-a543-d58bb0cdbd5e



## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask 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**

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

<!--
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 one line fix adds the missing `wallet_addEthereumChain` to the
unrestricted rpc methods list. The change was initially missing from the
permission middleware PR here -
#9521

## **Related issues**

Fixes: MetaMask/mobile-planning#1723

## **Manual testing steps**

1.  Connect to `chainlist.org`
2. Add BNB chain
3. Notice prompt for adding BNB chain in app

## **Screenshots/Recordings**

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

### **Before**

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


https://github.com/MetaMask/metamask-mobile/assets/10508597/a650ec8c-f0ff-47a2-8241-17c92e6f547b

### **After**

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


https://github.com/MetaMask/metamask-mobile/assets/10508597/3cbe57f6-4bd5-4137-92ef-149f4dcb97ef


## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask 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.
## **Description**

* Added fatal error to new ensureValidState function
* Removed an unnecessary catchExcepection of migration 37


## **Related issues**

Fixes: [[Sentry] Error: Migration 37: Invalid NetworkController
networkId not found:
'null'](#9462)

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

- [x] I’ve followed [MetaMask 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 pull request eliminates the URL top bar from the tab thumbnails
screen, which previously displayed the network and URL of the selected
tab thumbnail.

The rationale behind this removal is to introduce a new footer for the
tab thumbnails, which will display their network information. This
addition is facilitated through [this PR
here](#9321), which also
includes screenshots illustrating the new footer on each tab thumbnail.

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

## **Related issues**

Fixes:
https://github.com/orgs/MetaMask/projects/66/views/1?pane=issue&itemId=57737399

## **Manual testing steps**

Please follow these improved steps, which are also included in this pull
request:

1. Navigate to the in-app browser and tap on the square icon that
contains a number to view the list of open tabs.
2. On this tab thumbnails list page, the URL top bar should no longer be
visible.
3. Upon clicking on a thumbnail, the tab will expand to full screen, at
which point the URL top bar is expected to reappear.

## **Screenshots/Recordings**

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

| Before       | After        |
|--------------|--------------|
| <img width="350" alt="Screenshot 2024-04-18 at 3 56 43 PM"
src="https://github.com/MetaMask/metamask-mobile/assets/165834542/56b5cbcf-30e2-482c-82b4-bc160ec9f329">
|<img width="350" alt="Screenshot 2024-04-18 at 3 56 43 PM"
src="https://github.com/MetaMask/metamask-mobile/assets/165834542/54e42fd7-fb9d-4db4-8c6b-9c38080bfe29">
|




## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask 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
- [ ] 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.

---------

Co-authored-by: Cal Leung <cleun007@gmail.com>
…about the connected account and network (#9321)

<!--
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 footer to the in-app browser tab, containing information about
the connected account and network.

- The requirements [are in this
issue](MetaMask/mobile-planning#1634).

- The localizations originated from this PR
#9474 I'm told another
team picks it up and adds other languages [in this
PR](#9428)
<!--
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: It's a new feature not a fix

## **Manual testing steps**

1. Go to the browser tab
2. In the broswer's tab view, click on + to add a new tab
3. Again in the browser's tab view, click on the button on the right of
the + sign to see the list of tabs
4. The tab should be displayed with the expected footer at the bottom
like in the 'After' screenshot below.

## **Screenshots/Recordings**

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

| Before       | After        |
|--------------|--------------|
| <img width="350" alt="Screenshot 2024-04-18 at 3 56 43 PM"
src="https://github.com/MetaMask/metamask-mobile/assets/165834542/b35617ff-2afa-4dec-8a33-79984da04e6d">
|<img width="350" alt="Screenshot 2024-04-18 at 3 56 43 PM"
src="https://github.com/MetaMask/metamask-mobile/assets/165834542/10e13fa9-99cb-44af-b073-9d2da1fff617">
|


## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask 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
- [ ] 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 enables Base for swaps. Related to this, it also upgrades
`@metamask/swaps-controller` to `v8.0.0`. See `package.json` and
`yarn.lock` changes

## **Related issues**

Depends on `@metamask/swaps-controller` to `v8.0.0`

## **Manual testing steps**

1. Enable swaps on base feature flag
2. Change network to base
3. Get a quote for a Swap

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] 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
- [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: legobt <6wbvkn0j@anonaddy.me>
Co-authored-by: legobeat <109787230+legobeat@users.noreply.github.com>
## **Description**
Fix documentation link in storybook.md

## **Related issues**

Fixes:

## **Manual testing steps**

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

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask Coding
Standards](https://github.com/MetaMask/metamask-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**
A fix for this issue:
#9517
<!--
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**

- [x] I’ve followed [MetaMask 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?
-->

This PR removes a condition in the `Authentication` service where the
vault would be recreated upon first time log in (excluding password
creation during wallet creation). This logic existed for backwards
compatibility but was never needed since the app was always using the
"original" encryption lib. Since vault recreation isn't needed, this
omits the need to pass selectedAddress, which appears in most of the
changes in this PR. The change in
https://github.com/MetaMask/metamask-mobile/pull/9508/files#diff-75ad251e628bf4ac096dc3ad4e46d4942f61d1576784c71c6150920588b89e1eR45
already prevents this code from running. This PR further removes
remaining traces.

## **Related issues**

Fixes: [#1742](MetaMask/mobile-planning#1742)

## **Manual testing steps**

App behavior remains the same as before throughout the listed scenarios:

- Create a wallet from scratch
- Immediate lock option should be respected and user is still able to
log in after backgrounding/foregrounding app
- Remember me option should be respected + continues to override
immediate lock timer
- Log in after killing app + reopening should work without issues
- Upgrading from before (main) -> (changes in this PR) should still
allow users to log in successfully
- Vault recovery flow recovers wallet successfully

## **Screenshots/Recordings**

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

- Create a wallet from scratch


https://github.com/MetaMask/metamask-mobile/assets/10508597/12a881d2-8016-4180-a4d1-b87362cda9d0

- Immediate lock option should be respected and user is still able to
log in after backgrounding/foregrounding app


https://github.com/MetaMask/metamask-mobile/assets/10508597/1c68d13a-89b2-491b-8d4f-ac77b5ceff8b

- Remember me option should be respected + continues to override
immediate lock timer


https://github.com/MetaMask/metamask-mobile/assets/10508597/08c64684-b152-42df-a46c-4b187827193e

- Log in after killing app + reopening should work without issues


https://github.com/MetaMask/metamask-mobile/assets/10508597/aee455a5-34ac-4fda-85a8-6f43cf1afd67


- Upgrading from before (main) -> (changes in this PR) should still
allow users to log in successfully


https://github.com/MetaMask/metamask-mobile/assets/10508597/72129fa6-8c19-4f7e-a4f3-6ca781776846


- Vault recovery flow recovers wallet successfully


https://github.com/MetaMask/metamask-mobile/assets/10508597/72f9925b-f442-4aa7-9d45-c681d46bbeaa


### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask 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.
## **Description**

- Full sdk protocol async communication and wallet connect sdk update.
- Allow for much faster and stable connection with both sdk and wc.
- Simplify the AccountConnect modal since wc now requests via hostname
(vs id before).

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

- [x] I’ve followed [MetaMask 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.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Akintayo A. Olusegun <akintayo.segun@gmail.com>
Co-authored-by: Mark Stacey <markjstacey@gmail.com>
Co-authored-by: Gustavo Antunes <17601467+gantunesr@users.noreply.github.com>
Co-authored-by: Pedro Figueiredo <ganseki.figueiredo@gmail.com>
Co-authored-by: Jonathan Ferreira <44679989+Jonathansoufer@users.noreply.github.com>
Co-authored-by: SamuelSalas <samuel.salas.reyes@gmail.com>
Co-authored-by: Cal Leung <cleun007@gmail.com>
Co-authored-by: CW <chris.wilcox@consensys.net>
Co-authored-by: tommasini <46944231+tommasini@users.noreply.github.com>
Co-authored-by: infiniteflower <139582705+infiniteflower@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: metamaskbot <metamaskbot@users.noreply.github.com>
Co-authored-by: sethkfman <seth.kaufman@consensys.net>
Co-authored-by: sahar-fehri <sahar.fehri@consensys.net>
Co-authored-by: Brian Bergeron <brian.e.bergeron@gmail.com>
Co-authored-by: Owen Craston <owen.craston@consensys.net>
Co-authored-by: Nico MASSART <NicolasMassart@users.noreply.github.com>
Co-authored-by: Kylan Hurt <kylanhurt@users.noreply.github.com>
Co-authored-by: Xiaoming Wang <dawnseeker8@gmail.com>
Co-authored-by: sethkfman <10342624+sethkfman@users.noreply.github.com>
Co-authored-by: yande <110056475+Andepande@users.noreply.github.com>
Co-authored-by: Curtis David <Curtis.David7@gmail.com>
Co-authored-by: Sébastien Van Eyck <sebastien.vaneyck@consensys.net>
Co-authored-by: Omridan159 <omridan159@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: legobeat <109787230+legobeat@users.noreply.github.com>
Co-authored-by: salimtb <salim.toubal@outlook.com>
Co-authored-by: João Loureiro <1649425+jpcloureiro@users.noreply.github.com>
Co-authored-by: Aslau Mario-Daniel <marioaslau@gmail.com>
Co-authored-by: Pedro Pablo Aste Kompen <wachunei@gmail.com>
Co-authored-by: Amélie <amelie.chan@gmail.com>
Co-authored-by: Omri Dan <61094771+omridan159@users.noreply.github.com>
Co-authored-by: Jyoti Puri <jyotipuri@gmail.com>
Co-authored-by: tommasini <tommasini15@gmail.com>
Co-authored-by: Kylan Hurt <kylan.hurt@gmail.com>
Co-authored-by: Nicholas Ellul <nicholas.ellul1@gmail.com>
Co-authored-by: Olusegun Akintayo <akintayo.segun@gmail.com>
Co-authored-by: Mpendulo Ndlovu <mpendulo@elefantel.com>
Co-authored-by: MetaMask Bot <37885440+metamaskbot@users.noreply.github.com>
Co-authored-by: Priya <priya.narayanaswamy@consensys.net>
Co-authored-by: Frederik Bolding <frederik.bolding@gmail.com>
Co-authored-by: witmicko <witmicko@users.noreply.github.com>
Co-authored-by: EtherWizard33 <165834542+EtherWizard33@users.noreply.github.com>
Co-authored-by: Gauthier Petetin <gauthierpetetin@hotmail.com>
Co-authored-by: Desi McAdam <desi.mcadam@gmail.com>
Co-authored-by: Elliot Winkler <elliot.winkler@gmail.com>
Co-authored-by: gantunesr <gantunesr@users.noreply.github.com>
Co-authored-by: Sylva Elendu <iamsylvaelendu@gmail.com>
Co-authored-by: Frank von Hoven <141057783+frankvonhoven@users.noreply.github.com>
Co-authored-by: Brian August Nguyen <brianacnguyen@gmail.com>
Co-authored-by: Derek Brans <dbrans@gmail.com>
Co-authored-by: LeoTM <1881059+leotm@users.noreply.github.com>
Co-authored-by: gantunesr <gustavoantunesrod@gmail.com>
Co-authored-by: Daniel Cross <dan.s.cross@icloud.com>
Co-authored-by: OGPoyraz <omergoktugpoyraz@gmail.com>
Co-authored-by: Vinicius Stevam <vinicius.stevam@consensys.net>
Co-authored-by: Vinicius Stevam <45455812+vinistevam@users.noreply.github.com>
Co-authored-by: legobt <6wbvkn0j@anonaddy.me>
## **Description**

Upgrades the `permission-controller` from 7.1.0 --> 8.0.0

## **Related issues**

Fixes: [1695](MetaMask/mobile-planning#1695)

## **Manual testing steps**

* Connect to app
    * Single account
    * Multiple accounts
* With multiple connected accounts
    * Disconnect Account
        * Next connected account should be selected
* Open a new tab
    * Connect to test app
    * https://metamask.github.io/test-dapp
        * Connect accounts
        * Disconnect account

## **Recordings**
### Connect Dapp Single Account


https://github.com/MetaMask/metamask-mobile/assets/141057783/9ca0afd9-5b61-4f2d-ba12-e7b1bd12e3b4


### Connect Dapp Multiple Accounts


https://github.com/MetaMask/metamask-mobile/assets/141057783/49b1d67c-6b2e-4203-b172-53420a8753d4


### TestDapp Connect Account


https://github.com/MetaMask/metamask-mobile/assets/141057783/fa896121-34b7-4c2f-8680-6e85640e60cf


### TestDapp Connect/Disconnnect/GET Account


https://github.com/MetaMask/metamask-mobile/assets/141057783/ded58259-4679-4790-85f7-0a34a3b51ca3



## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask 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 is to include minor version updates in the permission-controller.
Should have been included in
[#9527](#9527)

## **Related issues**

Related: [9527](#9527)

## **Manual testing steps**

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

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask Coding
Standards](https://github.com/MetaMask/metamask-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: tommasini <tommasini15@gmail.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?
-->

## **Related issues**

Fixes: #9594

## **Manual testing steps**

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

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask Coding
Standards](https://github.com/MetaMask/metamask-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: tommasini <tommasini15@gmail.com>
## **Description**

Release 7.22.0 PR

[Release Tracker
Sheet](https://docs.google.com/spreadsheets/d/1tsoodlAlyvEUpkkcNcbZ4PM9HuC9cEM80RZeoVv5OCQ/edit#gid=300906497&range=A2)

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Frank von Hoven <141057783+frankvonhoven@users.noreply.github.com>
Co-authored-by: Cal Leung <cleun007@gmail.com>
Co-authored-by: Jonathan Ferreira <44679989+Jonathansoufer@users.noreply.github.com>
Co-authored-by: Aslau Mario-Daniel <marioaslau@gmail.com>
Co-authored-by: João Loureiro <1649425+jpcloureiro@users.noreply.github.com>
Co-authored-by: salimtb <salim.toubal@outlook.com>
Co-authored-by: legobeat <109787230+legobeat@users.noreply.github.com>
Co-authored-by: tommasini <46944231+tommasini@users.noreply.github.com>
Co-authored-by: Curtis David <Curtis.David7@gmail.com>
Co-authored-by: Pedro Pablo Aste Kompen <wachunei@gmail.com>
Co-authored-by: Jyoti Puri <jyotipuri@gmail.com>
Co-authored-by: Brian August Nguyen <brianacnguyen@gmail.com>
Co-authored-by: Derek Brans <dbrans@gmail.com>
Co-authored-by: LeoTM <1881059+leotm@users.noreply.github.com>
Co-authored-by: EtherWizard33 <165834542+EtherWizard33@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: sahar-fehri <sahar.fehri@consensys.net>
Co-authored-by: Desi McAdam <desi.mcadam@gmail.com>
Co-authored-by: Mark Stacey <markjstacey@gmail.com>
Co-authored-by: Nico MASSART <NicolasMassart@users.noreply.github.com>
Co-authored-by: yande <110056475+Andepande@users.noreply.github.com>
Co-authored-by: gantunesr <gustavoantunesrod@gmail.com>
Co-authored-by: Gustavo Antunes <17601467+gantunesr@users.noreply.github.com>
Co-authored-by: gantunesr <gantunesr@users.noreply.github.com>
Co-authored-by: Daniel Cross <dan.s.cross@icloud.com>
Co-authored-by: tommasini <tommasini15@gmail.com>
Co-authored-by: OGPoyraz <omergoktugpoyraz@gmail.com>
Co-authored-by: Kylan Hurt <kylanhurt@users.noreply.github.com>
Co-authored-by: Vinicius Stevam <vinicius.stevam@consensys.net>
Co-authored-by: Vinicius Stevam <45455812+vinistevam@users.noreply.github.com>
Co-authored-by: legobt <6wbvkn0j@anonaddy.me>
Co-authored-by: CW <chris.wilcox@consensys.net>
Co-authored-by: Erik Marks <25517051+rekmarks@users.noreply.github.com>
Co-authored-by: Frederik Bolding <frederik.bolding@gmail.com>
Co-authored-by: Charly Chevalier <charlyy.chevalier@gmail.com>
Co-authored-by: Nicolas Ferro <nicolaspatricioferro@gmail.com>
Co-authored-by: Omri Dan <61094771+omridan159@users.noreply.github.com>
cortisiko and others added 26 commits May 22, 2024 01:22
…h caused confirmation test flakiness (#9610)

<!--
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 purpose of this PR is to address sporadic test flakiness within the
confirmations workflow. The test, at times, would timeout because it was
unable to log into the app. Sometimes, this would result in long-running
confirmation e2e workflows in Bitrise.


### What caused the failure?
The approve-custom-erc20.spec.js and approve-default-erc20.spec.js tests
assert that the submitted the txn is confirmed before making the test as
passed.

The notification dialog appears whenever a successful transaction is
made. See below

![image](https://github.com/MetaMask/metamask-mobile/assets/12821081/4ef9a49f-6b3b-4585-89b6-09af440c16b8)

Unfortunately, the system dialog lingers on the simulator. 


Whenever new tests run on the simulator, the system dialog prevents the
tests from moving forward. See the below screenshot:


![image](https://github.com/MetaMask/metamask-mobile/assets/12821081/77b0ec94-f42e-4169-a280-137ecac364cf)


### Solution 

The solution is to set the notifications permission to true. This will
prevent the notification dialog from appearing within the tests. Detox's
api allows us to set this permission whenever we launch the app for
testing. For the curious minds, please read up more
[here](https://wix.github.io/Detox/docs/next/api/device/#2-permissionsset-runtime-permissions-ios-only).


## **Related issues**

Fixes:

## **Manual testing steps**

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

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask Coding
Standards](https://github.com/MetaMask/metamask-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?
-->

As suggested by the Bitrise team, the changes in the PR replaces both
the `save` and `restore` step with `deploy` and `pull`, which shares
intermediate files within pipelines instead of caching on a global
level. An extra step added post `pull` step was to copy the pulled files
into the directories that Detox uses to find the builds. Lastly, a small
update was made to the `brew install ccache` command to include the flag
`HOMEBREW_NO_DEPENDENTS_CHECK=1`, which should skip updating packages
that depend on`ccache`, therefore speeding up the step.

## **Related issues**

Fixes: #9345 

## **Manual testing steps**

- Run `pr_smoke_e2e_pipeline` and ensure that both iOS and Android are
building and testing successfully
- Smoke test will be run on this PR

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask 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.
## **Description**

This PR only adds a JSDoc to add a deprecated tag to the WebsiteIcon
component.

This eslint rule could also begin to be use on the future to help to
show the deprecated components on the lint pipeline


## **Related issues**

Fixes:

## **Manual testing steps**

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

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask Coding
Standards](https://github.com/MetaMask/metamask-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.
This reverts commit 302d3a4.

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

Reverts: #9286 

## **Manual testing steps**

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

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask Coding
Standards](https://github.com/MetaMask/metamask-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 implements a new step on the onboarding wizard to teach users
about notifications feature.

## **Related issues**

Fixes:

## **Manual testing steps**

Install a fresh app and accept the tour at beginning.

## **Screenshots/Recordings**

### **Before**

### **After**
![Screenshot 2024-05-07 at 12 58
11](https://github.com/MetaMask/metamask-mobile/assets/44679989/aed859d6-a37b-4902-8136-eeb881684a7e)

## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask 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.
## **Description**

Fix key number on migrations index file.

## **Related issues**

Fixes:

## **Manual testing steps**

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

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask Coding
Standards](https://github.com/MetaMask/metamask-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.
Update `Encryptor` directory CODEOWNER to the Accounts Team.

Co-authored-by: gantunesr <gantunesr@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?
-->

This PR only covers the strings from #9565.

## **Related issues**

Split off from: #9565

## **Manual testing steps**

n/a

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask 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
- [ ] 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.
<!--
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**

Changes:
Adds a new privacy policy banner that will show up after May 6, 2024.
[EDIT HB - date set for June 4, 2023]
If the user closes it manually, the privacy policy banner will not show
up again.
If the user does not close the toast manually, the privacy policy banner
will cease to show up after a day of being shown for the first time.
Changes the Survey banner so that we can display multiple banners at the
same time without overlapping each other.

Considerations:
- Make sure this doesn't show up during onboarding
- This toast will show up even after years of the privacy policy being
changed. We should set up a deadline for that or eventually revert this
PR.
- Check if copy is correct.

## **Related issues**

Fixes:

## **Manual testing steps**

1. Go to the home page
2. Check if there's a new privacy banner there (date should be edited in
the code so that the privacy policy shows up earlier than May 6, 2024)
3. When clicking the link, it should take you to the Privacy Policy
website
4. When closing it, it shouldn't show up again
5. If not closing it manually, the toast should not show up again after
1 day of being shown for the first time. This data is saved in
localStorage so editing the timestamp there should be enough to test
this feature out.

## **Screenshots/Recordings**


https://github.com/MetaMask/metamask-mobile/assets/11148144/ae6e74fc-0a7f-47ce-8744-4a292875f7b3


### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask 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: EtherWizard33 <eric.lamontagne@consensys.net>
Co-authored-by: metamaskbot <metamaskbot@users.noreply.github.com>
Co-authored-by: sethkfman <seth.kaufman@consensys.net>
<!--
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 only covers a smaller subset of the files from #9565 for ease of
reviewing. Please refer to that issue for videos. This PR is mostly for
the core logical parts of Smart Transactions (STX). This PR can be
merged as it won't change any existing behavior in the application
without a follow up PR to actually use these utility functions.

It covers the following areas

1. `/app/util`
- except `app/util/test/initial-background-state.json`,
`app/util/transactions/index.js`, `app/util/transactions/index.test.ts`
since it causes tests to fail
3. `/app/images`
4. `/e2e/selectors`
5. `app/core/RPCMethods/RPCMethodMiddleware.ts` (to fix tests)
6. `package.json` (Added `smart-transactions-controller` to this PR to
fix failing tests)
7. `app/components/Nav/Main/RootRPCMethodsUI.js` to fix failing tests
8. `@metamask+transaction-controller+13.0.0.patch`
(https://github.com/MetaMask/core/compare/patch/mobile-transaction-controller-13-0-0-smart-transactions)
9. `yarn.lock`
10. `jest.config.js`

## **Related issues**

- Broken out from #9565
- Functionality in this PR enabled in follow-up
#9448

## **Manual testing steps**

Refer to #9565

## **Screenshots/Recordings**

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

Refer to #9565

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask 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: tommasini <46944231+tommasini@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**

Fixes regression that was introduced while fixing unit tests.

Problem comes from the following:
```
/**
 * TODO: Update this condition once we change E2E builds to use release instead of debug
 */
export const isTest = process.env.METAMASK_ENVIRONMENT !== 'production';
```
it should normally detect via checking env IS_TEST='true':
"test:e2e:ios:debug:build": "IS_TEST='true' detox build -c
ios.sim.debug",



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

- [x] I’ve followed [MetaMask 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**


- Update Signature Controller to v^13
- Changelog
[here](https://github.com/MetaMask/core/blob/%40metamask/signature-controller%4013.0.0/packages/signature-controller/CHANGELOG.md)

<!--
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 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: legobeat <109787230+legobeat@users.noreply.github.com>
Co-authored-by: tommasini <tommasini15@gmail.com>
…tter user `remove wallets` (#9616)

This PR will fix the issue #9560 which all QR code accounts have been
reappeared after user decide to `remove wallets` in metamask mobile.

The fix has been done in `Engine.ts` to make `qrKeyringBuilder` to reset
the qr keyring properties to default value once created a new
`QRHardwareKeyring`.

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

## **Manual testing steps**

1. Setup wallet with QR hardware accounts and using biometric auth
2. Go to Settings>Security & Privacy
3. Scroll all the way to the bottom and select `Delete Wallet`
4. Tap `I understand, continue`
5. input `delete`
6. Tap `Delete my wallet`
7. Tap `Create new wallet`
8. Complete setup flow
9. Tap accounts menu and all QR code accounts have been removed.
10. re-open and authenticate again.
11. Tap accounts menu in home page and confirm that those QR code
accounts haven't been reappeared again.

## **Screenshots/Recordings**

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

### **Before**

https://www.loom.com/share/c5c3d92db6da419eabf8aabbcb63afab?sid=d597eead-d642-4de1-bbbe-3476f1311728

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

### **After**
TODO 

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

## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask 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.
## **Description**

* Network Controller updated to v^17.2.0
* Gas Fee Controller updated to v^13.0.0
* Controller utils v^8
* Assets Controllers v^26

* Updated the patch of Network Controller, now it adds an export a type


* Gas Fee Controller now uses `NetworkController:networkDidChange` event
instead of `NetworkController:stateChange` event.

* Removed resolution for transaction controller and replaced it with a
small change via patch
* Assets Controllers already with Reservoir changes of this
[PR](#9547 (comment))
* Assets Controllers patch cleaner and smaller
* Token Detection Controller and Token Balances Controller updated on
Engine and Engine Service since now they extend BaseController v2
* Added to the patch of assets controllers work around for
TokenBalancesController and TokenRatesController listening the
TokensController events wrongly since TokensController is not extending
BaseControllerV2


* Added migration to reset contractBalances property of
TokenBalancesController

* Changed on Amount and Confirm screen where contractBalances were used
as BN to be converted to BN since now contractBalances property is now
saving balances on hexadecimal string

Created a new core branch to follow up the assets-controllers version:
patch/mobile-assets-controllers-26


## **Related issues**

Fixes:
* MetaMask/mobile-planning#1691
* MetaMask/mobile-planning#1692
* MetaMask/mobile-planning#1694
* MetaMask/mobile-planning#1690
* 
## **Manual testing steps**


1. Sendflow Transaction  On linea sepolia
2. Test dapp transaction On sepolia
3. Switch networks in general
4. Add custom network
5. add networks from popular list
6. Remove network
7. Add network throught dapp
8. Add tokens with auto detect feature, with token list, custom token
fields and via dapp
9. Added nfts with auto detect NFTS, play around with display nft media
and ipfs gateway toggles to check privacy is still working as expected.
Also added nft with custom fields
10. Switched accounts when on dapp and check if permission systems is
working (it should be able to switch accounts when switching dapp that
have different accounts connected)

## **Screenshots/Recordings**


Adding a custom network:



https://github.com/MetaMask/metamask-mobile/assets/46944231/8ac6a11f-c93e-46e6-8b62-188f7df89a02


Playing around with tokens & multiple networks (auto detect, add from
dapp, custom add and add from token list):


https://github.com/MetaMask/metamask-mobile/assets/46944231/4e5d12e6-6ba7-4fba-a1ca-51d2b3c2d61c



https://github.com/MetaMask/metamask-mobile/assets/46944231/160eb191-d952-4cd4-a6a0-0687fd76095e


Dapp sepolia transaction:



https://github.com/MetaMask/metamask-mobile/assets/46944231/0acc6c90-326b-4fcf-bbaf-170873741439



Linea sepolia transcation:


https://github.com/MetaMask/metamask-mobile/assets/46944231/3fdd3e47-85d9-46d9-8fa6-9b62ce5028fd



NFT & privacy playground:


https://github.com/MetaMask/metamask-mobile/assets/46944231/9ed68b4f-06d3-41ef-93dc-ced2a1ee2c7e

* Go to the test dapp and try deploying an ERC20 contract (tap create
token) , deploy a collectible contract
* use a dapp to switch networks. Chainlist would work.
* edit gas before submitting a txn
check this slack thread:
https://consensys.slack.com/archives/C04GLB755TK/p1715772583995679?thread_ts=1715341470.231619&cid=C04GLB755TK

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask 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**

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

Just a chore to bump `boost` checksum when running `yarn setup`. This
shouldn't affect functionality.

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

- [x] I’ve followed [MetaMask 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.
)

Previously used React version 18 is not officially supported until
react-redux v8. Also brings in updates for other redux packages, but
holds off on breaking changes for @reduxjs/toolkit v2.

- Upgrade `react-redux` from `4.1.1` to `4.2.1`
- `4.2.1` was already used transitively so this is effectively a dedupe
- Replace unmaintained `rn-fetch-blob` with `react-native-blob-util`
<!--
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?
-->

The PR that introduced permission controller middleware
#9521, broke verifying
personal sign on the test dapp. This PR resolves a few areas in the app
that needed to use lowercased account addresses. Another note: Since
permission middleware now handles `eth_accounts`, we migrated a
condition to use the correct origin based on SDK, WC, or dapp in the
`BackgroundBridge`. This code is a temporary fix and should be
refactored in the future. To keep this PR smaller, we can follow up with
removing `eth_accounts` from RPCMethodMiddleware in another PR.

## **Related issues**

Fixes: [#1723](MetaMask/mobile-planning#1723),
https://app.zenhub.com/workspaces/mobile-release-testing-6249e5242464b70013315a98/issues/gh/metamask/metamask-mobile/9628

## **Manual testing steps**

Before fix:
1. Connect to the MM test dapp
2. Trigger personal sign
3. Trigger verify
4. Results will not appear

After fix:
1. Connect to the MM test dapp
2. Trigger personal sign
3. Trigger verify
4. Results should show address used to sign
5. Switch/connect another account
6. Trigger personal sign
4. Results should show address used to sign

## **Screenshots/Recordings**

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

### **Before**

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


https://github.com/MetaMask/metamask-mobile/assets/10508597/e38a71b5-6ac0-40ea-b3de-36b38830e7c9


### **After**

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

Signing verification works even after switching accounts

https://github.com/MetaMask/metamask-mobile/assets/10508597/5c43af3b-7c9f-456b-a870-a5345027642b

WC connects and is able to trigger a transaction


https://github.com/MetaMask/metamask-mobile/assets/10508597/7009ac14-fa87-4ebd-88e0-022f2f30264e




## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask 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**

<!--
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 only covers a smaller subset of the files from #9565 for ease of
reviewing. Please refer to that issue for videos. This PR is mostly for
Engine and the views for Smart Transactions (STX). Merging this PR will
cause changes to the functionality and behavior of the app, effectively
making the feature "live".

It covers the following areas:
1. `app/components`
2. `app/core`
3. `app/reducers`
4. `app/selectors`
5. `app/util/test`
6. `patches`
- `PreferencesController` ([PR
here](MetaMask/core#3815) to apply update to
`main`)
- `SwapsController` ([PR
here](MetaMask/swaps-controller#229) to apply
updates to `main`)

Also fixed an issue for network onboarding where it would never set
onboarded to `true`. This needed to be fixed so we could properly show
the STX Opt In Modal. We only show the Opt In modal if the user has
onboarded onto the network, to prevent multiple modals from showing up
at the same time. See discussion
#9448 (comment)

## **Related issues**

Fixes: n/a
- Targeting: #9442
- Broken out from: #9565

## **Manual testing steps**

Refer to #9565

## **Screenshots/Recordings**

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

Refer to #9565

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask 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: tommasini <46944231+tommasini@users.noreply.github.com>
Co-authored-by: Vinicius Stevam <45455812+vinistevam@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?
-->

This PR adds some small changes to the STX Opt In Modal:

- Updates the copy
- Makes it not possible to close by accident

## **Related issues**

n/a

## **Manual testing steps**

1. Install the extension from scratch
1. Check the updated Opt In modal

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

<!-- [screenshots/recordings] -->
![Screenshot 2024-05-15 at 5 15
13 PM](https://github.com/MetaMask/metamask-mobile/assets/139582705/966ff8fc-c9f0-4b49-ae1b-0c962f3d5d44)


## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask 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
- [ ] 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.
<!--
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 updates the TransactionController patch message to accurately
reflect the correct branch the patch was generated from:
`patch/mobile-transaction-controller-13-0-0-smart-transactions`.

## **Related issues**

n/a

## **Manual testing steps**

n/a

## **Screenshots/Recordings**

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

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

### **After**

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

## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask 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
- [ ] 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.
## **Description**
This PR aims to increase the waiting time for swaps to be confirmed and
wait more time for the toast disappear when connecting a new account to
a dapp

Regression:
https://app.bitrise.io/app/be69d4368ee7e86d/pipelines/3582e885-d17c-4ef1-ab5c-d9f13b5222ae
## **Related issues**

Fixes:

## **Manual testing steps**

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

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask Coding
Standards](https://github.com/MetaMask/metamask-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: Cal-L <cleun007@gmail.com>
## **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:
https://github.com/orgs/MetaMask/projects/60/views/6?pane=issue&itemId=61547905

## **Manual testing steps**

1. Go to https://app.poolside.party with the in-app browser and connect
the wallet
2. Once you connect, you would see an `Root Error: Text strings must be
rendered within a <Text> component.` error message, but **now** you
should not see that error message... the wallet should connect just
fine.

## **Screenshots/Recordings**

### **Before**

https://github.com/MetaMask/metamask-mobile/assets/6249205/6a58eca9-e9a0-4240-acdd-f7fb3b52f033

### **After**

https://github.com/MetaMask/metamask-mobile/assets/6249205/d9e68e1f-6aff-42bb-9b3f-80eae8ef2e2d


## **Pre-merge author checklist**

- [X] I’ve followed [MetaMask 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 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.
## **Description**

This PR implements a List screen for Notifications following designs
from
[Figma](https://www.figma.com/file/XcAVSI5z4myb1DtlbIHw7U/ProfileID-(UUID)-mobile?type=design&node-id=906-14213&mode=design&t=QXtJD7nofUBR9M7b-0)

This screen as all notification related code will be behind feature flag
until ALL the code being merged. This PR is part of a series aiming to
make the review process easier.

## **Related issues**

Fixes:

## **Manual testing steps**

1. Enable Notifications from NavBar Bell icon or Settings -->
Notifications -> Enable
2. Click on the NavBar Bell icon again
3.

## **Screenshots/Recordings**

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

### **Before**

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

### **After**


https://github.com/MetaMask/metamask-mobile/assets/44679989/75873986-66bf-4f2e-bed4-980a911c7eb9



## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask 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: tommasini <46944231+tommasini@users.noreply.github.com>
Co-authored-by: legobeat <109787230+legobeat@users.noreply.github.com>
Co-authored-by: Nico MASSART <NicolasMassart@users.noreply.github.com>
Co-authored-by: Cal Leung <cleun007@gmail.com>
Copy link

sonarcloud bot commented May 21, 2024

Quality Gate Passed Quality Gate passed

Issues
0 New issues
0 Accepted issues

Measures
0 Security Hotspots
No data about Coverage
0.0% Duplication on New Code

See analysis details on SonarCloud

@chrisleewilcox
Copy link
Contributor Author

Closing this for #9714

@github-actions github-actions bot locked and limited conversation to collaborators May 22, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Run Smoke E2E Triggers smoke e2e on Bitrise
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet