-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
chore: Merge main into into chore/provider-middleware-filters-2 #12254
chore: Merge main into into chore/provider-middleware-filters-2 #12254
Conversation
…k#11996) ## **Description** Upgrade `@metamask/signature-controller` to remove the global network usage. ## **Related issues** ## **Manual testing steps** ## **Screenshots/Recordings** ### **Before** ### **After** ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** Removes tilde from return value on swap page. <!-- 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 swap page 2. enter tokens/amounts 3. see return value without tilde ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <img width="316" alt="Screenshot 2024-10-30 at 17 31 44" src="https://github.com/user-attachments/assets/d0cb503a-fc8c-4956-bec3-da3cbf9564b6"> <!-- [screenshots/recordings] --> ### **After** <img width="319" alt="Screenshot 2024-10-30 at 17 31 14" src="https://github.com/user-attachments/assets/18389231-421b-4855-9631-38118e533bd7"> <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** This tests has become flaky and will need to go to quarantine. ## **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** https://app.bitrise.io/app/be69d4368ee7e86d/pipelines/2122f77b-77f6-469e-8bd0-c367feb37fca?tab=workflows ### **After** https://app.bitrise.io/app/be69d4368ee7e86d/pipelines/66b628b2-ffbd-4c48-94c2-54199ca71469?tab=workflows ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. Co-authored-by: tommasini <[email protected]>
…etaMask#12085) ## **Description** - Upgrade `@metamask/providers` from `^13.1.0` to `^16.1.0` - Upgrade from `json-rpc-middleware-stream@^4.2.3` to `@metamask/json-rpc-middleware-stream@^8.0.2` Removes usage of depecated `[email protected]`, `extension-port-stream` ## **Related issues** ### Blocking - MetaMask#11952 ## **Manual testing steps** ## **Screenshots/Recordings** ### **Before** ### **After** ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --------- Co-authored-by: sethkfman <[email protected]>
…k#12209) ## **Description** Update gitignore so that we don't need to remember to stash ios configuration after setup. ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** This is a 3/3 PRs to implement Firebase service into MetaMask. This needs to merged sequentially following: [12028](MetaMask#12028) [12045](MetaMask#12045) ## **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 Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [x] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [x] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
## **Description** Extending functionality for the design system library components below (while not introducing any visible changes) ### CellSelectWithMenu The `showSecondaryTextIcon` prop is needed so that in future use cases; the developer can opt out of showing the caret icon. I am using this component in the [Header Update PR](MetaMask#11763) and this what it looks like and without the prop. Here is the [Figma](https://www.figma.com/design/DFLO6VVgikalwAFyOln3Cb/Mobile-account-picker-update?node-id=34-4156&m=dev) as well | Before | After | |:---:|:---:| |![Screenshot 2024-10-31 at 5 39 21 PM](https://github.com/user-attachments/assets/22d6d446-2fbe-4560-8231-01f935015868)|![Screenshot 2024-11-04 at 1 29 13 PM](https://github.com/user-attachments/assets/2d1cacf8-e799-45a4-8425-f97c4b3fa46b)| The caret icon is currently used in the `NetworkSelector` and remains unaffected by this change <img src="https://github.com/user-attachments/assets/1c13162a-caf4-4ffd-9551-d696eea84169" width="500" > The `Tag` component is introduced here because we need to show which account is imported in the [Header Update](MetaMask#11763). View the stories screenshots at the bottom of the description to see the. change ### ListItemMultiSelectButton The `paddingHorizontal` change to `paddingRight` is needed because with it the UI doesn't match the [Figma](https://www.figma.com/design/DFLO6VVgikalwAFyOln3Cb/Mobile-account-picker-update?node-id=34-4156&m=dev) for the Header Update and for future use cases it wouldn't make sense to have the elements so far apart from each other. These changes have no affect in where its currently used, in this case the `NetworkSelector` | Before | After | |:---:|:---:| |![ListItemMultiSelector_before](https://github.com/user-attachments/assets/3dc8bfb8-8717-4dbe-b1fb-6449d1f3324c)|![ListItemMultiSelector_after](https://github.com/user-attachments/assets/3e0f9218-f496-4edb-bda9-5cb376c26de5)| The test id `buttonTestId` prop has been introduced so that we can target a specific component during e2e tests. Currently its using only `BUTTON_TEST_ID` which works for unit tests but not e2e tests especially when its mapped out into a list. There is no direct way to target the component ### Stories | ListItemMultiSelectButton | CellSelectWithMenu | |:---:|:---:| |![Simulator Screenshot - iPhone 15 - 2024-11-04 at 14 09 36](https://github.com/user-attachments/assets/4fb80c7e-745c-4bf8-86dc-ad5c5e80713a)|![Simulator Screenshot - iPhone 15 - 2024-11-04 at 14 08 33](https://github.com/user-attachments/assets/b5024b88-ea14-42a1-9c9a-2fe06cee6d5c) ## **Related issues** Related: ## **Manual testing steps** 1. Launch Storybook 2. 3. ## **Screenshots/Recordings** NA ### **Before** NA ### **After** NA ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [x] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [x] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
…ns (MetaMask#12145) <!-- 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 disables certain buttons in the WalletActions component when the selected account cannot sign transactions. This change improves the user experience by preventing attempts to perform actions that require transaction signing when the account cannot do so. The reason for the change is to prevent users from attempting actions that their current account cannot perform. The improvement is that Buy, Sell, Send, Swap, and Bridge buttons are now disabled when the selected account cannot sign transactions, providing clear visual feedback to the user about available actions. This work is a continuation of Kate's [PR](MetaMask#11330 (comment)). Since her departure it was easier to start with a fresh branch than rebase her work. Her pr already went through QA and reviews. ## **Related issues** Fixes: MetaMask/accounts-planning#570 ## **Manual testing steps** 1. Go to the [SSK](https://metamask.github.io/snap-simple-keyring/latest/) and create an account 2. Update the account using this JSON, replacing the address and ID fields with the new account information (this update step removes `eth_signTransaction` from the account's methods) ```json { "id": "your new account ID", "address": "you new account address", "options": {}, "methods": [ "personal_sign", "eth_sign", "eth_signTypedData_v1", "eth_signTypedData_v3", "eth_signTypedData_v4" ], "type": "eip155:eoa" } ``` 3. Switch to the account that cannot sign transactions if not already there 4. Verify that the Buy, Sell, Send, Swap, and Bridge buttons are visually disabled with a message and not clickable 5. Click on the asset details view 6. Verify that the Buy, Sell, Send, Swap, and Bridge buttons are visually disabled and not clickable 7. Switch back to an account that can sign transactions 8. Verify that the buttons are now enabled and functional in wallet view and asset details view ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** Wallet view <img src="https://github.com/user-attachments/assets/d0cdcd63-cec5-4641-95a4-a47450319282" width=350 /> Asset details view <img src="https://github.com/user-attachments/assets/ceac95af-3653-4178-9718-f75ff97e239f" width=350/> ### **After** Wallet view <img src="https://github.com/user-attachments/assets/e254813e-6fcf-40e9-8ba8-222311e27bcc" width=350 /> Asset details view <img src="https://github.com/user-attachments/assets/bdf42f9f-cdb8-41d5-97db-537a1fe19d97" width=350/> ## QA This PR is a direct copy of [MetaMask#11330](MetaMask#11330). Kates change went through several rounds of QA with Mike. His first round found a few issues which were outlined [here](MetaMask#11330 (comment)). Those issues were addressed in subsequent commits and finally QA passed [here](MetaMask#11330 (comment)). All of the code in this PR is a copy of the previous except that I addressed @brianacnguyen's [comments](MetaMask#11330 (comment)). The extra styles that I removed have no effect on the UX since the opacity of 0.5 (correctly applied) has the desired effect on the buttons and makes them appear disabled. This came from a discussion with Brian during a code review. ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
…2217) <!-- 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** There are some performance issues with the existing e2e due to hundreds of accounts added by default which is causing some non-accounts tests to fail Update flaky test to override default e2e and use a wallet that doesn't have hundreds of accounts added. ## **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** See E2E results ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
## **Description** This PR forces UI to rerender when contractBalances change in state. When a user switches from account A to account B; the value of [contractBalances](https://github.com/MetaMask/metamask-mobile/blob/d112027e57343f8447ded38b33b794e14ed928dc/app/core/Engine.ts#L2010) would still have the state values from accountA; If account A and accountB have some tokens in common (exp both hold USDC) you would see the total = native fiat value + USDC value; Also; When a user switches accounts, the tokensStateChange [subscription](https://github.com/MetaMask/core/blob/b27a5d7f9652a0a145b2a5ed0e72abb6d29c55ba/packages/assets-controllers/src/TokenBalancesController.ts#L145) is fired; except that by the time it got to update the contractBalances in state; the UI has already rendered the total fiat value; The reason why after a while, it would update to the correct total value; is because the [conversionRate](https://github.com/MetaMask/metamask-mobile/blob/d112027e57343f8447ded38b33b794e14ed928dc/app/components/Views/Wallet/index.tsx#L184) in state would change forcing the UI to re-render the component; My fix [here](MetaMask#12205) is adding contractBalances as a dependency which will force the array to rerender once contractBalances in state are updated; ## **Related issues** Fixes: ## **Manual testing steps** 1. Import two accounts with native and ERC20 balances 2. Switch between accounts; 3. You should see the correct total balance in fiat ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> https://github.com/user-attachments/assets/af618c18-0da1-4121-a98f-2c338aa08ef9 ### **After** <!-- [screenshots/recordings] --> https://github.com/user-attachments/assets/d4bc13c1-0229-4025-8d24-5ecc99860797 ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
…isabling biometrics and continuing with the onboarding (MetaMask#12120) ## **Description** During the course of onboarding, if the user enables Face ID to log in to the app, but the Face ID is unsuccessful in reading the users face, or the user cancels the Face ID check, the user is then locked out of the app and kicked out of the onboarding flow. When they sign back in they are taken to the wallet screen. I have added a fix so that if the Face ID fails or the user cancels the Face ID check, Face ID will be disabled and the user will have to log in with their password. The onboarding process will also continue without locking the user out of the app. The fix isn't 'ideal' as we use a `catch` block to catch an error and then perform some state setting, when ideally a `catch` should be used exclusively for error handling. However, when Biometrics fail, React Native throws an error that ends up in the `catch`. I also would prefer an `enum` to be used but we are in a JS file instead of a TS file. To test the issue repeat the following: 1. Install the app on device. 2. Start the onboarding and enter a new password. 3. Enable Face ID (iOS) and cover the camera so the Face ID fails. 4. Then hit cancel, or repeat the process and hit cancel when the second alert appears. 5. You should then be pushed through to the next onboarding screen and you should not be sent back to the lock screen and be asked to log in again. ## **Related issues** Fixes: https://github.com/orgs/MetaMask/projects/60/views/16?pane=issue&itemId=84422135&issue=MetaMask%7Cmetamask-mobile%7C11964 ## **Manual testing steps** 1. Install the app on device. 2. Start the onboarding and enter a new password. 3. Enable Face ID (iOS) and cover the camera so the Face ID fails. 4. Then hit cancel, or repeat the process and hit cancel when the second alert appears. 5. You should then be pushed through to the next onboarding screen and you should not be sent back to the lock screen and be asked to log in again. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** https://github.com/user-attachments/assets/39dc4b1f-3099-433f-ac7b-4aff9e6ca742 ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
## **Description** When adding a network with wallet_addEthereumChain, MetaMask was requiring the chain's symbol to be minimum of 2 characters. But there are networks with single character symbols. ## **Related issues** - Equivalent PR on extension: MetaMask/metamask-extension#24872 - MetaMask#11217 ## **Manual testing steps** ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** This PR implements support to FCM (Firebase Cloud Messaging) on both iOS and Android on mobile. ## **Related issues** Fixes: [NOTIFY-1219](https://consensyssoftware.atlassian.net/browse/NOTIFY-1219?atlOrigin=eyJpIjoiZDJiMzczYTc5ZGI5NGU3OWE4YTNjZDAyN2M0ZjIzYWYiLCJwIjoiaiJ9) ## **Manual testing steps** 1. Go to Settings --> Notifications --> Enable 2. Open a separated device (or extension) repeat the process above 3. Do any transaction between the two clients/devices 4. Leave the transaction recipient open to see it in Foreground 5. Put app in background to see a native notification ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** https://github.com/user-attachments/assets/3bb403cb-c1b1-4664-bad9-95fd185d3ecc <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [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. [NOTIFY-1219]: https://consensyssoftware.atlassian.net/browse/NOTIFY-1219?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
<!-- 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 aims to update `transaction-controller` to latest version. The issue with previous version is fixed here: MetaMask/core#4897 ## **Related issues** Fixes: ## **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** - [X] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [X] I've completed the PR template to the best of my ability - [X] I’ve included tests if applicable - [X] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [X] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
…k#12219) <!-- 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 fix an error apparently caused by a missing `NotificationServicesController` property on the `state.engine.backgroundState` ## **Related issues** Fixes: MetaMask#12207 ## **Manual testing steps** Although we didn't pinpoint what was causing the `NotificationServicesController` to be missing, this code fills in the data if it is missing. ## **Screenshots/Recordings** n/a ### **Before** n/a ### **After** n/a ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --------- Co-authored-by: sethkfman <[email protected]>
…2231) <!-- 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 Staking review screen was previously being cut off on device with a shorter screen height. This made the button on the page inaccessible to the user. <!-- 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** Jira Ticket: [STAKE-865: Staking confirmation view cut off on smaller devices](https://consensyssoftware.atlassian.net/browse/STAKE-865) ## **Manual testing steps** Prerequisites: - Use a smaller device in your simulator (e.g. iPhone SE 3rd generation) - Ensure you have ETH in your wallet in order to go through the staking flow. 1. Set `export MM_POOLED_STAKING_UI_ENABLED=true` in your local `.js.env` file 2. From the asset list page, click Ethereum 3. Click on "Stake" or "Stake More" buttons to begin staking flow 4. Enter any valid amount to stake and click "Review" 5. In the stake confirmation screen you should be able to scroll down. The overflowing content is no longer inaccessible. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ![image](https://github.com/user-attachments/assets/20c60415-8e41-49d8-ab55-e17b04560bd7) ### **After** <!-- [screenshots/recordings] --> https://github.com/user-attachments/assets/f036a291-4dd4-4265-af6d-4d40b3482fdd ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [ ] 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 updates the display of snap accounts in the MetaMask mobile app. Previously, all snap accounts were shown with a generic “Snaps (Beta)” label. This change replaces the generic label with the specific name of the snap when available, providing users with clearer and more useful information about their snap accounts. Key changes include: - Creation of the getInternalAccountByAddress utility function to retrieve account information of the InternalAccount type. - Modification of getAccountLabelTextByKeyring to return the snap name for snap accounts, or “Snaps (Beta)” if the name is unavailable. - Updates to affected components to display the correct snap name in the account list. - Unit tests added to verify the new functionality. ## Related issues Fixes: https://github.com/MetaMask/accounts-planning/issues/603 ## Manual testing steps 1. Build the mobile client in Flask 2. Navigate to the [SSK dapp](https://metamask.github.io/snap-simple-keyring/latest/), install the snap, and create a snap account 3. Open the account list 4. You _should_ see a tag under your new snap account that says "MetaMask Simple Snap Keyring" 5. Note: we do not have any snaps yet that do not have names, so we will need to rely on the jest unit tests for the "Snaps (Beta)" rendering behavior ## Screenshots/Recordings **Before** <image src="https://github.com/user-attachments/assets/1c34187c-3807-4514-a4e2-55a6d60b1e1c" width="350" /> <image src="https://github.com/user-attachments/assets/72c2950a-5c3a-444d-939d-c82aa615457e" width="350" /> **After** <image src="https://github.com/user-attachments/assets/23c93404-097f-4736-8fa8-f11fa69f3de5" width="350" /> <image src="https://github.com/user-attachments/assets/b5cd66a6-4c0e-4dc9-9d6e-528f675041c1" width="350" /> Pre-merge author checklist - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I’ve completed the PR template to the best of my ability. - [x] I’ve included unit tests to cover the new behavior. - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable. - [x] I’ve applied the correct labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Pre-merge reviewer checklist - [ ] I’ve manually tested the PR by running the app and testing the modified behavior. - [ ] I confirm that this PR addresses all acceptance criteria described in the issue and includes the necessary testing evidence such as screenshots and recordings. --------- Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: Gustavo Antunes <[email protected]> Co-authored-by: Owen Craston <[email protected]>
… data (MetaMask#11590) <!-- 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 data is not ready yet to display permissions of all source, it will require a 'source' attribute to say if its sdk, wallet connect or in app browser. This is an attempt at filtering them based on differences the 'might' always have, but even if it did work now, it could break anytime because it requires a real source property meant to identify the source. <!-- 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. set the feature flag export MM_MULTICHAIN_V1_ENABLED="1" 2. go to settings -> permissions 3. if you have in app browser permissions, they should be visible in this list of permissions ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> | Before (mocked list) | After (not mocked list) | |--------------|--------------| | <img width="350" alt="Screenshot 2024-04-18 at 3 56 43 PM" src="https://github.com/user-attachments/assets/2a46f217-742a-4651-a7d0-71c2cef60fde"> |<img width="350" alt="Screenshot 2024-04-18 at 3 56 43 PM" src="https://github.com/user-attachments/assets/1f965baa-89c8-4745-b378-1281c7001db2"> | ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --------- Co-authored-by: Alex <[email protected]>
## **Description** udpate LSMinimumSystemVersion to 12.0.0 ## **Related issues** Fixes MetaMask#12113 ## **Manual testing steps** N/A ## **Screenshots/Recordings** N/A ### **Before** N/A ### **After** N/A ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. Co-authored-by: sethkfman <[email protected]>
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** Increase test coverage by re-enable `run_tag_smoke_notifications_android` CI workflow. - Re-enable workflow - fix flaky tests - Adjust test to use hooks ## **Related issues** Fixes: MetaMask/mobile-planning#2033 ## **Manual testing steps** - Run smoke tests on bitrise - All test pass ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** Disabled ### **After** See e2e results ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [x] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [x] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
## **Description** Bump assets-controllers to v41 ## **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] --> https://github.com/user-attachments/assets/83ae8f0b-173d-4bb2-9e95-f5cfcd82a9d0 ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --------- Co-authored-by: Brian Bergeron <[email protected]>
## **Description** The header is being updated according to this [Figma design](https://www.figma.com/design/aMYisczaJyEsYl1TYdcPUL/Portfolio-View?m=auto&node-id=5019-59596&t=PAdxL1bg2Mk08dSk-1) (second to last screen). Because `WalletAccount` is being removed, the more icon or overflow icon will be moved to the `AccountSelectorList`. Here is the [PR for more info](MetaMask#11823) Regression Tests Passing (11/04/24): https://app.bitrise.io/app/be69d4368ee7e86d/pipelines/6224a4f4-1c55-43cf-a622-ec6d91f42110?tab=workflows ## **Related issues** Ticket: [MetaMask#3448](MetaMask/MetaMask-planning#3448) ## **Manual testing steps** 1. Wallet Home Page - Open the account picker and switch between accounts - Verify functionality remains the same as before 2. Copy Address - Use the copy address feature in the top right - Confirm it works as expected 3. Network Switcher - Switch between different networks - Ensure all networks load correctly and balances update 4. Overflow (Edit Account): This is on MetaMask#11823 - Tap on account picker and a bottom sheet will appear - Click on the overflow icon (the vertical more icon) and edit your account just like before ## **Screenshots/Recordings** | Light | Dark | |:---:|:---:| |![light_mode_header_update](https://github.com/user-attachments/assets/39fdde2b-40a9-4119-aa93-3145fb8f7c63)|![dark_mode_header_update](https://github.com/user-attachments/assets/a5c8346b-ad89-4c6b-9e1c-f95727ec7efa)| ### **Before** | Light | Dark | |:---:|:---:| |![light_mode_original](https://github.com/user-attachments/assets/11e473f5-3b14-454f-bd14-66e418733abb)|![dark_mode_original](https://github.com/user-attachments/assets/a50064e9-5114-498d-958b-8e2ba8fddf5c)| ### **After** | Light | Dark | |:---:|:---:| |![light_mode_screenshot](https://github.com/user-attachments/assets/e65578ed-227a-41bb-b142-f636f81590d6)|![dark_mode_screenshot](https://github.com/user-attachments/assets/3e65ffa5-83a1-4eef-bda2-95effb32fa28)| ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [x] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [x] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
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. |
New and removed dependencies detected. Learn more about Socket for GitHub ↗︎
🚮 Removed packages: npm/@metamask/[email protected], npm/@metamask/[email protected], npm/@metamask/[email protected] |
@legobeat can this be merged? |
There are a lot of conflicts on this PR now. We may wish to recreate this PR, or at the very least we will need to resolve these conflicts. CI also did not pass so we will need to make this PR pass before it can be merged. |
Looks like Seth has resolved conflicts here instead: 7f3880b |
Description
main
updates into fix: replace legacy eth-json-rpc deps #11952Related issues
Manual testing steps
Screenshots/Recordings
Before
After
Pre-merge author checklist
Pre-merge reviewer checklist