-
-
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
feat: 7.37.0 #12640
feat: 7.37.0 #12640
Conversation
<!-- 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** Use the mock server to create E2E tests for transactions and signatures to test the Security Alert API responses. <!-- 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: MetaMask/mobile-planning#1813 ## **Manual testing steps** 1. Bitrise ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** This PR fixes an issue where the source property was not being set correctly when an error occurred during local PPOM validation. Previously, if the local PPOM failed, the error handling mechanism would add an error message but omit the source property, making it unclear whether the error originated from the API or the local PPOM. **Changes introduced:** - Modified error handling for the local PPOM validation to ensure that the source property is correctly set to "local" when an error occurs during local validation. - Ensured that the source property is properly set to "api" in case of an API failure. <!-- 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: MetaMask/mobile-planning#2058 ## **Manual testing steps** 1. Go to the live test dapp 2. Trigger a send transaction with suggested gas values (ie Send Legacy or send EIP1559) 3. Check Segment Obs: We need to block the network calls for `https://security-alerts.api.cx.metamask.io/` and `https://static.cx.metamask.io/api/v1/confirmations/ppom/ppom_version.json` in the Chrome dev tools > network tab. ## **Screenshots/Recordings** [security-alerts-local.webm](https://github.com/user-attachments/assets/f1fbfe8c-b7ca-4056-99ff-06ab5a9cba6a) <!-- 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.
…tions,Events}` (#12407) ## **Description** The `GlobalActions` and `GlobalEvents` types have not been updated to keep up with the controller V2 upgrades. This commit adds missing entries and fixes redundant, outdated, or erroneous entries. All changes in this commit are purely at the type-level with no impact on runtime behavior. ## **Related issues** - Follow-up to controller V2 upgrades: MetaMask/MetaMask-planning#3234 - Blocks #10441 ## **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.
…12348) ## **Description** The engine context and background state currently include three "non-controllers" with empty/non-existent state: `AssetsContractController`, `NftDetectionController`, `TokenDetectionController`. These should be included in the engine context, but excluded from any representations of background state. This is not a disruptive change, as there are no downstream references to the state objects or state properties of these non-controllers. For more information on non-controllers, see: - https://github.com/MetaMask/decisions/blob/main/decisions/core/0001-messaging-non-controllers.md - https://github.com/MetaMask/decisions/blob/messaging-components-abstraction/decisions/core/0004-messaging-components-abstraction.md#background ## **Related issues** - Blocks #10441 - This ticket will remove non-controller entries from the engine datamodel and state getter method. ## **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** - [ ] 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.
…al prop (#12405) ## **Description** The active network icon in the header has too much margin and is misaligned with the network title. I have also added an optional prop of `networkName` that allows developers to pass in the network name of their choice. This is in preparation of [multichain](#12256) support, currently we are showing the selected network name, in multichain we want to be able to pass in a network name and not the selected chain. ## **Related issues** Fixes: ## **Manual testing steps** 1. Goto asset details, swaps, or buy. Basically any screen that has the header with network name 2. 3. ## **Screenshots/Recordings** (green icon at the very top) | Before | After | |:---:|:---:| |![asset_details_ios_before](https://github.com/user-attachments/assets/26de61bb-a217-456f-9d40-8bc552f4b1ec)|![asset_details_ios_after](https://github.com/user-attachments/assets/a4d4667b-4b1f-485c-a9f9-ef78872da772)| ### **Before** NA ### **After** NA ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> Introduction of `@metamask/remote-feature-flag-controller` library. Remote feature flag controller manages data flow, retry policy, and cache expiry. The controller consumer manages default values, data persistency, and data distribution. See [ADR](https://github.com/MetaMask/decisions/blob/b3094d47a568ac1e076a44fa704c2d29d1b59f35/decisions/wallet-platform/0001-remote-rollout-feature-flags.md) for a in-depth description ## Technical decisions ### Controller init on `Engine.ts` with feature flags fetching only on cold app starts. `@metamask/remote-feature-flag-controller` is only asked to fetch feature flags after its init in `Engine.ts`. Ensures feature flags are only fetched on cold app starts. ### Fallback values Default values are used when remote feature flags are undefined. The fallback mechanism is implemented by each feature flag selector `app/selectors/featureFlagsController/<featureFlagName>` In this PR we include `minimumAppVersion` selector, which manages the LD feature flag `mobile-minimum-versions` ### One selector per each feature flag [LD feature flags can be boolean, number, strings on JSON objects](https://docs.launchdarkly.com/sdk/concepts/flag-types#understanding-flag-types). We've decided to have each feature flag with its own selector A feature flag selector contains: - state selectors for each feature flag value. - business logic - defaults for when feature flags values are undefined. - TS types. - unit tests and mocked data. This architecture offers a clear separation between each feature flag and the logic behind it, allowing easier manipulation. Code owners are assigned to each feature flag. ### ## **Related issues** Fixes: MetaMask/mobile-planning#2054 Fixes: MetaMask/mobile-planning#1975 ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --------- Co-authored-by: Nico MASSART <[email protected]> Co-authored-by: tommasini <[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** This PR does enables the creation of Bitcoin (Mainnet and Testnet) accounts on MetaMask mobile. This is done via the [snap-bitcoin-wallet](https://github.com/MetaMask/snap-bitcoin-wallet) which is included as a preinstalled snap. The added UI buttons to the account actions communicate with the snap, then the snap is routed through our SnapKeyring handlers to enable custom account names. This is just the first step and does not include all of the necessary logic/UI to launch this feature. This PR simply enables Bitcoin account creation and renders the proper BTC address and network in the wallet view. ### How - adds the [Snap Bitcoin Wallet](https://github.com/MetaMask/snap-bitcoin-wallet) as a pre installed snap - added the `BitcoinWalletSnapSender` which allows us to communicate with the bitcoin snap - added the Bitcoin Logo to the assets and conditionally render them on the wallet view if the selected account is BTC. This is just visual and is a disabled button. This also does not change any other network related logic elsewhere in the app. - renamed `selectSelectedInternalAccountChecksummedAddress` to `selectSelectedInternalAccountFormattedAddress` since bitcoin addresses are not checksummed. - instead of eagerly checksumming addresses, I conditionally checksum them based on wether the address is EVM or not. this is done with the `toFormattedAddress` in `app/util/address/index.ts` and `getFormattedAddressFromInternalAccount` in `app/core/MultiChain/utils.ts` - added selector `hasCreatedBtcMainnetAccount` and `hasCreatedBtcTestnetAccount` - added new call to actions in the account actions menu for adding Bitcoin accounts. - added MultichainSettings to the root state to create a feature flag for Bitcoin. This state can easily be expanded to support other chains in the future. For now we have no way to setting this state to true as this is feature is not production ready. Right now this state is is used to hide the bitcoin feature in the wallet. ## **Related issues** Fixes: MetaMask/accounts-planning#698 ## **Manual testing steps** ### Testing the multichain feature flag By default all the bitcoin related features should be hidden behind the `bitcoinSupportEnabled` and `bitcoinTestnetSupportEnabled` which are set to false by default and have no way of modifying them inside the UI. To verify that these feature flags are working.... 1. open `.js.env` and ensure that METAMASK_BUILD_TYPE is set to `flask` 2. run the app on this branch 3. complete onboarding 4. click on your account 5. the account list menu should open with a CTA to add a new account 6. click `Add account or hardware wallet` 7. VERIFY that there are no new account actions (there should be no option to add a bitcoin account) ### Turn on the bitcoin feature 1. navigate to `app/reducers/multichain/index.ts` 2. change the values in the `initialState` to be true 3. force close and reload the app 4. click on your account 5. the account list menu should open with a CTA to add a new account 6. click `Add account or hardware wallet` 7. You should now see the options to add a Bitcoin account and a bitcoin testnet account. ### Adding a Bitcoin Testnet account 1. `ENSURE THAT YOU HAVE TURNED ON THE BTC FEATURE FLAGS` described in the steps above. 2. open `.js.env` and ensure that METAMASK_BUILD_TYPE is set to `flask` 6. run the app on this branch 7. complete onboarding 8. click on your account 9. the account list menu should open with a CTA to add a new account 10. click `Add account or hardware wallet` 11. then click `Add a new Bitcoin Account (Testnet)` 12. a bottom sheet should open with a text field pre filled with `Bitcoin Testnet Account` 13. click `Add account` 14. the account should be added and selected on the wallet view. 15. if you go through the same steps (steps 4-6) the option to add a Bitcoin testnet account should be disabled since you can only have one BTC Test account. 16. Now that you are on the wallet view, verify that the address is rendered in short form i.e `tb1qcv...4av3` 17. you will not see a balance rendered for this account since BTC balances are not yet supported. 18. verify that the network that is displayed on the wallet view shows the Bitcoin logo and that when you click it nothing happens. 19. verify that when clicking on the actions button in the bottom tab bar opens a list of actions that are disabled (send, swap, bridge etc). All of these features should be disabled for BTC 20. click on your account, when the account list opens up select one of your ethereum accounts. 21. the Balance should render and the network should display the ethereum network. 22. clicking on the network picker DOES open the network selector list ### Adding a Bitcoin Mainnet account 1. open `.js.env` and ensure that METAMASK_BUILD_TYPE is set to `flask` 3. run the app on this branch 4. complete onboarding 5. click on your account 6. the account list menu should open with a CTA to add a new account 7. click `Add account or hardware wallet` 9. then click `Add a new Bitcoin Account (Beta)` 10. a bottom sheet should open with a text field pre filled with `Bitcoin Account` 11. click `Add account` 12. the account should be added and selected on the wallet view. 13. if you go through the same steps (steps 4-6) the option to add a Bitcoin Account should be disabled since you can only have one BTC mainnet account. 14. Now that you are on the wallet view, verify that the address is rendered in short form i.e `bc1qrw...atay` 15. you will not see a balance rendered for this account since BTC balances are not yet supported. 16. verify that the network that is displayed on the wallet view shows the Bitcoin logo and that when you click it nothing happens. 17. 15. verify that when clicking on the actions button in the bottom tab bar opens a list of actions that are disabled (send, swap, bridge etc). All of these features should be disabled for BTC 18. click on your account, when the account list opens up select one of your ethereum accounts. 19. the Balance should render and the network should display the ethereum network. 20. clicking on the network picker DOES open the network selector list ### Verify ETH account address formats 1. assuming you completed the above testing steps... 2. select your ethereum account from the account list 3. verify that when selected, the address is rendered in checksummed format WITH a 0z prefix. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** N/A ### **After** https://github.com/user-attachments/assets/96836574-7b12-4566-b70f-ea85efa3b663 <img src="https://github.com/user-attachments/assets/c249775a-e8be-4d72-8c8f-8909d37ef876" width="300" height="600" /> ## **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** The purpose of this PR is to temporarily disable the e2e tests added [here](#12288) as it introduces instability within the smoke 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 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.
…#12199) <!-- 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 fix #10967 User able to add Ledger account with existing account name. Now the ledger Select accounts screen will display `Account Ledger 1 already exists` ## **Related issues** Fixes: #10967 #10188 ## **Manual testing steps** 1. Install MM 2. Recover from SRP 3. Rename 'Account 1' to 'Ledger 1' 4. Connect Ledger device 5. Add 1 Ledger account 6. `Account Ledger 1 already exists` error should be displayed ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** ![image](https://github.com/user-attachments/assets/21a8ee86-63e0-4db0-b784-a8490ceba80f) <!-- [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.
<!-- 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: 1. Add some critical flow accounts e2e tests to the smoke pipeline 2. Fix glob for tests tagged SmokeCore 3. Fix Portfolio dapp connect test. ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 4. 5. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
## **Description** Upgrades `@metamask/profile-sync-controller` to `^1.0.0` This should be a smooth upgrade since the controller is currently unused in mobile (disabled behind a flag) ## **Related issues** Fixes: #12306 ## **Manual testing steps** N/A - this is purely a package upgrade with no additional changes. Just ensure that we can start up the application without any issues. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** PR to add the multichain autodetection to mobile under a feature flag <!-- 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. run `PORTFOLIO_VIEW=true yarn watch` 2. run `yarn start:ios` 3. check if the tokens autodetection is multichained ## **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/c4428c82-5fb7-4701-8625-cf7bb36ee4be ## **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: sahar-fehri <[email protected]>
## **Description** Added an assertion that the selected address would be the same as the one derived from the SRP ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
## **Description** We currently have a few of our page object files lingering outside of a specific folder. As part of our ongoing efforts to improve the organization and maintainability of our test automation codebase, we need to move Page Object files into their respective folders. This will help streamline the project structure, making it easier for team members to locate and manage the files. The folder where each of the remaining files should be moved have to reflect the functionality or feature on the app. This same structure should be reflected on the selectors folder. Files to relocate to the Onboarding folder: - e2e/pages/EnableDeviceNotificationsAlert.js - e2e/pages/modals/EnableAutomaticSecurityChecksView.js - e2e/pages/modals/ExperienceEnhancerModal.js - e2e/pages/modals/OnboardingWizardModal.js - e2e/pages/modals/ProtectYourWalletModal.js - e2e/pages/modals/SkipAccountSecurityModal.js - e2e/pages/modals/TermsOfUseModal.js - e2e/pages/modals/WhatsNewModal.js ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** https://app.bitrise.io/app/be69d4368ee7e86d/pipelines/c8ecb663-d2d1-4522-a6e0-7145ba7bc1e7?tab=workflows ### **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 does a few things 1. Automatically set new PRs targeting main to "draft" state. 2. Enforce the E2E Bitrise Status Check on lifecycle on incoming PRs which will essentially enforce that the PR has 1 of the two labels 'Run Smoke E2E' or 'No E2E Smoke Needed' <!-- 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? 4. What is the improvement/solution? --> With this change we're looking to improve the posture on our PR lifecycle with auto drafts and enforce a higher standard for incoming changes towards or E2E testing posture. ## **Related issues** [Fixes:] #11747 ## **Manual testing steps** UC1 : Nether E2E Label is set -> https://github.com/MetaMask/metamask-mobile/actions/runs/11826040868/job/32951145968?pr=12243 Expected : Not Mergeable UC2 : docs PR Should run: false, Reason: The pull request is documentation related. Skipping Bitrise status check. due to the following reason: The pull request is documentation related. Created 'Bitrise E2E Status' check with skipped status for commit dea08a9 https://github.com/MetaMask/metamask-mobile/actions/runs/11826187817/job/32951608300?pr=12243 Expected: Mergeable UC3 : No E2E Smoke Needed Label is set Anti label: true Should run: false, Reason: The pull request has the anti-label. Skipping Bitrise status check. due to the following reason: The pull request has the anti-label. Created 'Bitrise E2E Status' check with skipped status for commit dea08a9[22] https://github.com/MetaMask/metamask-mobile/actions/runs/11826234735/job/32951749305?pr=12243 Expected Mergeable UC4: Smoke E2E Label is set Should run: true, Reason: The smoke test label is present. Starting Bitrise build for commit dea08a9 ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> N/A CICD Changes only ### **After** <!-- [screenshots/recordings] --> N/A CICD Changes only ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [x] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [x] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --------- Co-authored-by: Cal Leung <[email protected]>
## **Description** This PR is a draft and it still needs to * ~Remove key-tree patch and update to the new release (still pending)~ * ~Remove eth-hd-keyring patch and install the latest release that includes this [PR](MetaMask/accounts#102 * Updated patch version of Keyring Controller to 17.2.2 (Added a patch to the Keyring Controller awaiting for the generation of random mnemonic, that will be removed once this work is done, in this PR or worst scenario, following up work) App launch times pipeline: https://app.bitrise.io/app/be69d4368ee7e86d/pipelines/5b450f2a-91a3-4a94-8479-729655a2cf0b?tab=workflows Follow up work: * Remove patch of keyring controller added * Decrease baseline of performance e2e pipeline (`app_launch_times`) for android and ios (Android less than 2.9 seconds cold app start for wallet view) ## **Related issues** Fixes: ## **Manual testing steps** Build used for testing: https://app.bitrise.io/build/6ed111dd-6bbb-4492-a73e-a11347335e8e?tab=log 1. create new acount generating an SRP, ✅ 2. create a new account when the SRP account is created ✅ https://github.com/user-attachments/assets/71a45633-6b2a-446f-ac7a-6aed99c97b54 3. import with SRP, ✅ 4. add with private key,✅ https://github.com/user-attachments/assets/5ed51268-7b2a-47c1-abb7-1f1da19bda05 6. update the app (from v4) with 1 account imported via SRP ,✅ https://github.com/user-attachments/assets/2364461d-869f-40c5-85a4-ef2db3433ceb 7. update the app with 3 accounts (imported via SRP and private key and added) ,✅ https://github.com/user-attachments/assets/fa452f36-48d8-4573-8c1f-d97a1938baf5 ## **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. --------- Co-authored-by: Charly Chevalier <[email protected]> Co-authored-by: Nico MASSART <[email protected]>
…til (#12372) ## **Description** * Added dpdm to measure circular dependencies: https://github.com/acrazing/dpdm * Fixed circular dependencies between engine -> network/utils * Add script using dpdm to package json `circular:deps` This still have circular deps between the new engineNetworkUtils and Engine, they will be a follow up discussion, since the code in Engine might not be needed anymore PR - https://www.notion.so/metamask-consensys/Remove-all-circular-dependencies-in-the-codebase-30-in-total-to-enable-HMR-and-React-Refresh-Mo-02737ed3b49c4702b8cb55fdb67020e8 ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --------- Co-authored-by: Aslau Mario-Daniel <[email protected]>
## **Description** Cold app start to wallet view decreased quality gate for 4 seconds Warm app start to wallet view decreased quality gate for 3 seconds Cold app start 1: 3430 2: 2987 3: 2769 4: 3693 5: 3386 6: 2898 7: 3509 Warm app start 1: 1950 2: 2564 3: 2011 4: 2791 5: 2198 6: 2173 7: 2524 Bitrise build: https://app.bitrise.io/app/be69d4368ee7e86d/pipelines/6cfecc21-427d-418a-a484-4852adde9921?tab=workflows ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
#12534) ## **Description** This PR takes care of all the necessary changes in order to decouple "Profile Sync" from the notifications feature. This also underlines the ownership change from @MetaMask/notifications to @MetaMask/identity. The changes made here will help transitioning to cleaner separation of concerns when features leveraging profile sync will be released (i.e Notifications, Account syncing...).⚠️ This PR does not add missing tests nor introduces any changes. This is only moving files around and separating concerns. ## **Related issues** Fixes #12535 ## **Manual testing steps** No testing steps since this PR does not change the implementation of existing features. ## **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.
<!-- 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 adapt `estimateGasFee` from `TransactionController` for swaps `trade` and `approval` transactions. For more information please see the extension PR applies same functionality: MetaMask/metamask-extension#27612 Also adding basic unit tests for `QuoteView` screen. <!-- 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: MetaMask/mobile-planning#2026 ## **Manual testing steps** - Regression testing of internal swaps. - Smart swaps and standard. - Specific tests on Linea chains. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [X] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [X] I've completed the PR template to the best of my ability - [X] I’ve included tests if applicable - [X] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [X] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** Addresses a scenario where a commit has been evaluated already with label existence but we want to re-evaluate the status check if the labels change. Fail the E2E Status Check when there's no label present. <!-- 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: Some edge-cases where labels may be retro-actively changed or removed after a status check has been evaluated already ## **Manual testing steps** CI/CD Testing PR scenario ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** N/A CICD Only ### **After** N/A CICD Only ## **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** We currently have a few of our page object files lingering outside of a specific folder. As part of our ongoing efforts to improve the organization and maintainability of our test automation codebase, we need to move Page Object files into their respective folders. This will help streamline the project structure, making it easier for team members to locate and manage the files. The folder where each of the remaining files should be moved have to reflect the functionality or feature on the app. This same structure should be reflected on the selectors folder. Files to relocate to the Wallet folder: - e2e/pages/AccountListView.js (this is not a complete view) - e2e/pages/EditAccountNameView.js - e2e/pages/LoginView.js - e2e/pages/TabBarComponent.js - e2e/pages/TokenOverview.js - e2e/pages/modals/AddAccountModal.js - e2e/pages/modals/ToastModal.js - e2e/pages/modals/AccountActionsModal.js - e2e/pages/modals/NftDetectionModal.js - e2e/pages/modals/WalletActionsModal.js ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** Regression https://app.bitrise.io/app/be69d4368ee7e86d/pipelines/c590e21e-b802-496e-96a7-19f927a20acd?tab=workflows ### **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** The purpose of this PR is to create a specific tag for the MC tests. Here is the passing smoke tests: https://app.bitrise.io/app/be69d4368ee7e86d/pipelines/9d16606d-8a12-4f34-a3b8-1fec42140df3?tab=workflows ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
## **Description** This is the release candidate for version 7.36.0. # Team sign-off checklist - [ ] team-accounts - [ ] team-assets - [ ] team-confirmations - [x] team-design-system - [x] team-notifications - [ ] team-platform - [ ] team-security - [x] team-snaps-platform - [ ] team-sdk - [x] team-stake - [x] team-tiger - [ ] team-wallet-framework - [x] team-swaps # Reference - Testing plan sheet - https://docs.google.com/spreadsheets/d/1tsoodlAlyvEUpkkcNcbZ4PM9HuC9cEM80RZeoVv5OCQ/edit?gid=404070372#gid=404070372 ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --------- Co-authored-by: metamaskbot <[email protected]> Co-authored-by: runway-github[bot] <73448015+runway-github[bot]@users.noreply.github.com> Co-authored-by: tommasini <[email protected]> Co-authored-by: Nicholas Smith <[email protected]> Co-authored-by: sahar-fehri <[email protected]> Co-authored-by: Prithpal Sooriya <[email protected]> Co-authored-by: Kylan Hurt <[email protected]> Co-authored-by: Nico MASSART <[email protected]> Co-authored-by: Frank von Hoven <[email protected]> Co-authored-by: Frank von Hoven <[email protected]> Co-authored-by: Matthew Grainger <[email protected]> Co-authored-by: Matthew Walsh <[email protected]>
## **Description** Picks `AssetPollingProvider` diff from https://github.com/MetaMask/metamask-mobile/pull/12538/files bug fix to isolate changes. ## **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** - [ ] 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 remove redundant e2e tests, specifically those in the quarantine folder. The two tests that will be removed in this PR is: - `import-nft.failing.js`: - We already have test steps to import an NFT: https://github.com/MetaMask/metamask-mobile/blob/main/e2e/specs/assets/nft-details.spec.js#L49#L52 - `send-to-contact.failing.js` - We have multiple e2e tests that send funds to an address. ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
…low (#12295) ## **Description** 1. What is the reason for the change? There was a quick fix for there being a share left in the vault after a user attempts to unstake all shares. This PR adds the long-term fix and upgrades the stake-sdk which added a new getShares method on the contract. 3. What is the improvement/solution? We are now using the stake-sdk to access the getShares contract method instead of creating the interface on the fly. ## **Related issues** Fixes: https://consensyssoftware.atlassian.net/browse/STAKE-871 ## **Manual testing steps** 1. Attempt to unstake all shares and all of them should unstake, leaving no option to unstake anymore. 2. There should be no change from before, as we only change the source we get the contract method from ## **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/b9e7af8b-c421-482c-b3e2-d15982681520 <!-- [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** Bumps all Snaps packages to their latest versions and wires up logic to use native PBKDF2 for key derivation in Snaps. This makes key derivation using the BIP-44 and BIP-32 entropy test Snaps pretty much instant (with the exception of Snap boot), it also improves the speed of using `snap_manageState`.
## **Description** * Fix circular dependencies between engine-> network -> handleNetworkSwitch ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --------- Co-authored-by: Aslau Mario-Daniel <[email protected]>
## **Description** PR to fix NFTs disappearing after the user closes the app ## **Related issues** Fixes: #12523 ## **Manual testing steps** 1. Go to to a network that is not (Ethereum/Linea) where you have NFTs 2. Import your NFT 3. Kill app 4. Open app again 5. Go to NFT tab 6. You should see your NFT ## **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/11ef5fe1-5a14-4f10-9e76-b65db4c519be ### **After** <!-- [screenshots/recordings] --> https://github.com/user-attachments/assets/64cccd43-3ae7-4c27-989d-f842a68127a4 ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> We want to ensure that mobile is using the latest versions of all controllers. - Bump `@metamask/notification-services-controller` from 0.14.0 to 0.15.0 ([view changes](https://github.com/MetaMask/core/blob/main/packages/notification-services-controller/CHANGELOG.md)) - There are no notable changes between these versions. - Bump `@metamask/profile-sync-controller` from 2.0.0 to 3.0.0 ([view changes](https://github.com/MetaMask/core/blob/main/packages/profile-sync-controller/CHANGELOG.md)) - The `UserStorageController` messenger must now allow the actions `NetworkController:getState`, `NetworkController:addNetwork`, `NetworkController:removeNetwork`, and `NetworkController:updateNetwork` - The `UserStorageController` messenger must now allow the event `NetworkController:networkRemoved` <!-- 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: #12514 ## **Manual testing steps** ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] 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** Github bug template updated to include feature branches as a development stage <!-- 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 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** This PR introduces the Unified Asset List feature to MetaMask Mobile, providing users with a consolidated view of their assets across all supported blockchain networks. This enhancement improves the user experience by eliminating the need to switch between networks to view or manage assets, making asset management more intuitive and efficient. We will followup with a PR to fix TS feedback we had! (Not only TS issues but also [this](#12431 (comment) and [this](#12431 (comment))) ## **Related issues** Fixes: #12462 ## **Manual testing steps** Build using `PORTFOLIO_VIEW` flag ``` PORTFOLIO_VIEW=true yarn watch yarn start:ios yarn start:android ``` 1. Go to the wallet page 2. Select all network on the network filter 3. Check the list of assets 4. Click on each asset with the network filter on "All Networks" and "Current Network" 5. Test send/swap flows with testnet networks to confirm everything still works 6. Importing all tokens should work when "All Networks" filter is on 7. Importing networks for a specific network should work when the "Current Network" filter is on 8. Aggregated balance should chance according to the network filter ## **Screenshots/Recordings** | Before | After | |:---:|:---:| |![before](https://github.com/user-attachments/assets/449bd3ef-1f69-4cf9-bb93-f5a28838e11b)|![after](https://github.com/user-attachments/assets/26209026-6863-4085-85ed-d541ca4fa720)| ### **Before** <img src="https://github.com/user-attachments/assets/4f3aa5f5-920c-4ba6-8f13-0ce5bef4735f" width="350" alt="before_screenshot"> ### **After** <img src="https://github.com/user-attachments/assets/41e421b2-5b87-4933-a88e-159a45a15114" width="350" alt="after_screenshot"> ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [x] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [x] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --------- Co-authored-by: salimtb <[email protected]> Co-authored-by: sahar-fehri <[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** Fix flaky test <!-- 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. CI should be green ## **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 fixes the suggested gas API E2E test. <!-- 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: MetaMask/mobile-planning#2067 ## **Manual testing steps** 1. Bitrise Regression ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
## **Description** Fixed an issue where multi chain balance was not being calculated correctly for hide zero tokens settings. Also fixed an issue where the ticker was `undefined` in assets overview when it was a non-native token. These fixes belong to a feature that is hidden behind a feature flag `PORTFOLIO_VIEW` ## **Related issues** Fixes: ## **Manual testing steps** 1. Goto settings and turn on "Hide Tokens Without Balance" 2. Observe that your zero tokens and tokens with no conversion rate disappear ## **Screenshots/Recordings** ### Zero Balance | Before | After | |:---:|:---:| |![zero_balance_before](https://github.com/user-attachments/assets/21bde196-951f-447e-9de0-ce214cee4a1f)|![zero_balance_after](https://github.com/user-attachments/assets/a92aaa8f-5c08-4c45-bd0d-0fdaff89ca74)| ### Ticker | Before | After | |:---:|:---:| |![ticker_before](https://github.com/user-attachments/assets/15776130-ea3e-4cc9-901d-61d591dbaab9)|![ticker_after](https://github.com/user-attachments/assets/b5384a6d-47da-4c92-9b63-2709de52c66d)| ### **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.
## **Description** This PR turns on the Portfolio view feature flag. ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --------- Co-authored-by: vinnyhoward <[email protected]> Co-authored-by: sahar-fehri <[email protected]> Co-authored-by: Nicholas Gambino <[email protected]> Co-authored-by: Nick Gambino <[email protected]>
…ng accounts API (#12419) ## **Description** Update `@metamask/transaction-controller` to retrieve incoming transactions using the accounts API rather than Etherscan. Add incoming transaction E2E tests. ## **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.
CLA Signature Action: Thank you for your submission, we really appreciate it. We ask that you all read and sign our Contributor License Agreement before we can accept your contribution. You can sign the CLA by just by adding a comment to this pull request with this exact sentence:
By commenting with the above message you are agreeing to the terms of the CLA. Your account will be recorded as agreeing to our CLA so you don't need to sign it again for future contributions to this repository. 24 out of 25 committers have signed the CLA. |
…ap (#12622) ## **Description** We want to hide the smart transaction status page if we return a txHash asap, which we want to do always going forward. Once we verify it works as expected and no fallback is needed, we can remove the STX status page from the codebase. ## **Related issues** Fixes: TXL-538 ## **Manual testing steps** 1. Be on Ethereum Mainnet + smart transactions enabled in Advanced Settings 2. Do a transaction 3. You will not see the STX status page, only a Toast notification as we do for regular (non-STX) transactions ## **Screenshots/Recordings** Smart transaction is submitted: ![image](https://github.com/user-attachments/assets/fc04d632-1254-45e1-8c27-2cc56beb6d22) Smart transaction is completed: ![image](https://github.com/user-attachments/assets/18de1f4c-3adc-446e-b5fe-973c1d48a89b) ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [x] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [x] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** Currently there is an issue where yarn start:android doesn't open the android emulator automatically if none is already open. Adding this flag will allow devs to choose which emulator to run the app and it will open the specified emulator. ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🟢 Approving on behalf of the @MetaMask/design-system-engineers
## **Description** [Due to a change in mobile event metrics](#10545), we lost the ability to track conversion for many of swaps mobile funnels. The cause of the issue was that since many of our event did not have a non anonymous component, they could not be tracked through a conversion funnel. These changes update the events so that we pull most of the attributes out of sensitive properties, restoring functionality of event tracking. ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to swaps 2. Complete swap 3. See events in Mixpanel ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
## **Description** when the user has "all Networks" selected we want to filter out native tokens when the balance is zero and when hideZeroBalance setting is ON ## **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] --> https://github.com/user-attachments/assets/4d395a89-4671-4e78-93d3-b3cf44f16d93 ### **After** <!-- [screenshots/recordings] --> https://github.com/user-attachments/assets/fd514b31-3c38-43a4-894d-5f929336b154 ## **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
Related issues
Fixes:
Manual testing steps
Screenshots/Recordings
Before
After
Pre-merge author checklist
Pre-merge reviewer checklist