-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
feat: 7.43.0 #14016
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.43.0 #14016
Conversation
…ction controller etc) (#13436) <!-- 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 updates the [AccountsController](https://github.com/MetaMask/core/blob/main/packages/accounts-controller/CHANGELOG.md#2310) and the [TransactionController](https://github.com/MetaMask/core/blob/main/packages/transaction-controller/CHANGELOG.md#4510). These are the two major updates however there are a few smaller peer dep updates as well. Here is a description of the changes... ### "@metamask/accounts-controller": "^21.0.0" -> 23.1.0" - [changelog](https://github.com/MetaMask/core/blob/main/packages/accounts-controller/CHANGELOG.md#2310) - Breaking changes: - BREAKING: Now requires SnapKeyring:account{AssetList,Balances,Transactions}Updated events to be registered on the messenger (MetaMask/core#5190) - BREAKING: Bump @metamask/snaps-controllers peer dependency from ^9.7.0 to ^9.19.0 (MetaMask/core#5265) - Bump @metamask/base-controller from ^7.1.1 to ^8.0.0 - Non breaking changes: - Bump @metamask/keyring-api" from ^16.1.0 to ^17.0.0 (MetaMask/core#5280) - Bump @metamask/eth-snap-keyring from ^9.1.1 to ^10.0.0 (MetaMask/core#5280) - Bump @metamask/snaps-sdk from ^6.7.0 to ^6.17.1 (MetaMask/core#5220), (MetaMask/core#5265) - Bump @metamask/snaps-utils from ^8.9.0 to ^8.10.0 (MetaMask/core#5265) ### "@metamask/transaction-controller": "^43.0.0" -> 45.1.0 - [changelog](https://github.com/MetaMask/core/blob/main/packages/transaction-controller/CHANGELOG.md#4510) - Breaking changes: - BREAKING: Bump @metamask/accounts-controller peer dependency from ^22.0.0 to ^23.0.0 ### "@metamask/keyring-api": "^13.0.0" -> 17.0.0 - [changelog](https://github.com/MetaMask/accounts/blob/main/packages/keyring-api/CHANGELOG.md#1700) - Breaking changes: - BREAKING: Make CaipAssetType type more restritive (MetaMask/accounts#150) It used to be a string but it has been restricted with a template literal type that matches CAIP-19 asset type. - BREAKING: Make specific *AccountStruct.scopes more strict (MetaMask/accounts#159) - BREAKING: Remove CAIP redefinitions (MetaMask/accounts#167) We now rely on CAIP definitions coming @metamask/utils. - BREAKING: Enforce that scopes contains CAIP-2 chain IDs (MetaMask/accounts#165) Initially scopes accepted CAIP-2 namespaces as well to address the EVM EOA accounts that supports all EVM chains. This has been dropped in favor of eip155:0 scope. - BREAKING: Rename *Scopes enums to *Scope (MetaMask/accounts#165) - BREAKING: Use CaipAccountId for ResolvedAccountAddress.address (MetaMask/accounts#186) This was missing from SIP-26, but we expect this address to be CAIP-10 compliant. ### "@metamask/keyring-internal-api": "^2.0.0" -> 4.0.2 - [changelog](https://github.com/MetaMask/accounts/blob/main/packages/keyring-internal-api/CHANGELOG.md#402) - Breaking changes - BREAKING: Bump @metamask/keyring-api from ^14.0.0 to ^15.0.0 (MetaMask/accounts#160) The scopes from each *AccountStruct types is now more strict which impact all Internal*AccountStruct types. - BREAKING: Bump @metamask/keyring-api from ^15.0.0 to ^16.0.0 (MetaMask/accounts#172) The scopes from each *AccountStruct types is now more strict (remove support of CAIP-2 namespaces) which impact all Internal*AccountStruct types. - Bump @metamask/keyring-api from ^16.1.0 to ^17.0.0 (MetaMask/accounts#192) ### "@metamask/eth-snap-keyring": "^7.1.0" -> 10.0.0 - [changelog](https://github.com/MetaMask/accounts/blob/main/packages/keyring-snap-bridge/CHANGELOG.md) - Breaking changes: - BREAKING: Bump @metamask/keyring-api from ^12.0.0 to ^13.0.0 (MetaMask/accounts#101) This change was not properly reported as breaking on the 7.1.0. KeyringAccount and InternalAccount have a new required field (scopes) and are part of the public API. - BREAKING: Bump @metamask/keyring-internal-api from ^1.0.0 to ^2.0.0 (MetaMask/accounts#135) This change was not properly reported as breaking on the 7.1.0. InternalAccount extends KeyringAccount which has a new required field (scopes) and is part of the public API. - BREAKING: Bump @metamask/keyring-snap-internal-client from ^1.0.0 to ^2.0.0 (MetaMask/accounts#135) This change was not properly reported as breaking on the 7.1.0. KeyringAccount has a new required field (scopes) and is part of the public API. - BREAKING: Use Messenger instead of SnapsController (MetaMask/accounts#152) This allows to break the runtime dependency we had with some snaps-* pacakges. - BREAKING: Make scopes more strict (MetaMask/accounts#159) We now use specific *AccountStucts when checking created/updated accounts to make the scopes sent by the Snap are valid regarding their account type definition. - BREAKING: Use CaipAccountId for ResolvedAccountAddress.address (MetaMask/accounts#186) This was missing from SIP-26, but we expect this address to be CAIP-10 compliant. ### "@metamask/snaps-sdk": "^6.13.0" -> 6.17.1 - [changelog](https://github.com/MetaMask/snaps/blob/main/packages/snaps-sdk/CHANGELOG.md#6171) - no breaking changes ### "@metamask/snaps-utils": "^8.6.1" -> ^8.10.0 - [changelog](https://github.com/MetaMask/snaps/blob/main/packages/snaps-utils/CHANGELOG.md#8100) - no breaking changes ## **Related issues** Fixes: #13374 Fixes: #13377 ## **Manual testing steps** #### Testing snap accounts 1. ensure you are building metamask flask by setting the value of `METAMASK_BUILD_TYPE` to `flask` in your `.js.env` 2. source .js.env 3. yarn setup 4. yarn start:ios 5. create/import a wallet 6. click on the selected account at the top of the home page 7. click on the Add account button 8. then click the Add Solana account (Beta) button 9. a popup with a suggested name should appeaer 10. click OK, the account should now be added to your account list. if you have a balance on this address then it should show in the portfolio view. 11. repeat the above steps with the Bitcoin and Bitcoin testnet account #### Testing transactions 1. ensure you are NOT building flask by setting the value of `METAMASK_BUILD_TYPE` to `main` in your `.js.env` 2. source .js.env 3. yarn setup 4. yarn start:ios 5. import an account that has funds 6. click on the selected account at the top of the screen and the account list should open 7. then click on the add account button, then click add account 8. a new eth account should appear in your wallet 9. click on main bottom tab navigator icon which should open a list of actions, select Send. 10. the Send flow should open. 11. set your from account to the account that has funds and the to account to your newly created account. 12. type in a valid amount then go through the rest of the send flow 13. in the end the transaction should go through. 14. the account balances on the home page should be updated ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** On-boarding and Account Creation Flow https://github.com/user-attachments/assets/2ccd8fb4-4857-4a99-ab52-cdb071bd0447 Send flow https://github.com/user-attachments/assets/da81d49c-b472-49a7-83c4-1d1046521072 ## **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 updates the Header for the Token details view, based on this [design update ](https://www.figma.com/design/bkJ9Ot0HGXiakMqZtQfs8G/Design-Quality?node-id=2362-458)by @amandaye0h . Specifically - Left and right button icons are now using the `ButtonIcon` component with the large size - Overflow icon is updated to vertical version - Alignment of header is now top aligned <!-- 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: #11854 ## **Manual testing steps** 1. Go to Wallet 2. Click on a token 3. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before**   <!-- [screenshots/recordings] --> ### **After** https://github.com/user-attachments/assets/d1e0c824-f403-4f34-95c0-5d27c0dd6b3b <!-- [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 - [ ] 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** - add empty options to match params order - fix unit test (complete rewrite as it was not properly testing the existing code, it was fake green!) - add non regression unit test for this new bug fix - update SelectComponent UI component to include testID to properly test the feature ## **Related issues** Fixes #3414 ## **Manual testing steps** 1. Start app on Android 2. Go to privacy settings 3. activate ipfs gateway switch 4. check ipfs list is populated 5. Test on iOS too. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** See [issue comment](#3414 (comment)) ### **After** [screen_ipfs_fixed.webm](https://github.com/user-attachments/assets/86227026-720b-4d20-8fc7-6ffc0a732e5c) ## **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.
…ding (#13458) <!-- 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 solution for preventing somebody from draining holesky ETH from our test account as the SRP is currently exposed. Basically the stake account containing the Holesky ETH is now imported from the ENV variable `MM_STAKE_TEST_ACCOUNT_PRIVATE_KEY` containing the PK of the account. To run the tests locally engineers will need to set the value found 1Password and add it to `.js.env` I also reduced the amount of ETH used for staking as requested by the stake team ## **Related issues** Fixes: #13433 ## **Manual testing steps** 1. yarn test:e2e:android:debug:run e2e/specs/stake/stake-action-smoke.spec.js ## **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 - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [x] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] 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** Removing the SRP video (saving 7.5 mb) and replaced with new designs [here](https://www.figma.com/design/pViOUcmjwhEzFsdrwknpNc/Onboarding-redesign?node-id=1-117&t=SrTBBEz0dgAQsaoU-1) In the future we are doing a bigger redesign. This is a small step towards it ## **Related issues** Fixes: ## **Manual testing steps** 1. Fresh install of the app 2. Create a new wallet and going through onboarding flow, make sure the new design is there and fits on all devices 3. Afterwards goto settings and goto "Security and Privacy" to make sure its removed altogether (no design) ## **Screenshots/Recordings** ### Larger Devices iPhone 16 <img src="https://github.com/user-attachments/assets/a470060d-292f-46fc-acbe-2d3eea859557" width="250px" /> ### Smaller Devices iPhone SE https://github.com/user-attachments/assets/f2f45941-1b1d-4f2b-8151-c0028183f1f0 Pixel 2 <img src="https://github.com/user-attachments/assets/94ebea2e-100b-469a-afbc-f61369e2ee5f" width="250px" /> ### **Before** <img src="https://github.com/user-attachments/assets/a9c9011c-a466-4d1b-bcac-fcf930e1c5c1" width="250px" /> ### **After** <img src="https://github.com/user-attachments/assets/20f44bf9-17fe-440e-984e-69ce18a2b70f" width="250px" /> ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [x] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [x] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** This PR enables Smart Transactions (STX) in MetaMask Mobile by default through migration number #68 for users who have either opted out with notification if the Smart Transactions toggle has been enabled for them. Docs: [SmartTransactionsMigrationBanner](https://www.notion.so/consensys/SmartTransactionsMigrationBanner-Feature-Documentation-180fc61a326e80a19da2ce55e6c8687f) How it works (if user does not have STX enabled or prior STX Transaction history: - Upon Migration STX is enabled in Settings: - A banner alert will displays on the following transaction confirmations - Send Confirmation flow - Swaps confirmation flow - Contract deployment & interactions (deploy, minting, etc.) In the case a user migrates from a previous version of the Mobile app and the migration runs and sets STX toggle "ON" in `Settings > Advanced > Smart Transactions`, they will receive an Alert on transaction confirmation screens until dismissed, or by clicking on the "Higher success rates" link within the alert. If they click on the link in the banner alert they will get sent to: [What is 'Smart Transactions'?](https://support.metamask.io/transactions-and-gas/transactions/smart-transactions/) for more information. When returning to the confirmation they just navigated from the banner alert should not show and should never show again. Edge Cases: If a user is new and setting up a wallet for the first time, they will not receive the Banner Alert. If a user imports a new wallet during a fresh install of the extension on a new browser or recovers a wallet, it's possible they may not see the alert if STX was on in a previous install. The STX Banner Alert is dismissed and will not show again if a user is in the state to get shown the banner and toggles STX off independently even if they do not physically dismiss the STX Banner Alert. Migration Logic: 1. If `smartTransactionsOptInStatus` is `null` (new/never interacted) - Sets status to true - Enables notification flag 2. If status is false (previously opted out): - With no Ethereum Mainnet STX activity: Sets to true with notification - With existing Mainnet STX activity: Preserves user preference 3. If status is true: No changes needed UI Components: Implements `SmartTransactionsMigrationBanner` component for user notification. The notification system bridges the migration changes with the UI, ensuring users are informed of the STX enablement while maintaining their ability to opt out through settings. Target release: release-7.39.0 Affected user base: ~5.7M users who previously opted out of STX but have no STX activity. ## **Running Unit Tests** Migration 067 test: ```bash yarn jest "./app/store/migrations/068.test.ts" --no-cache ``` SmartTransactions Migration Banner component test: ```bash yarn jest "./app/components/Views/confirmations/components/SmartTransactionsMigrationBanner/SmartTransactionsMigrationBanner.test.ts" --no-cache ``` QuotesView component test: ```bash yarn jest "./app/components/UI/Swaps/QuotesView.test.ts" --no-cache ``` SendFlow component test: ```bash yarn jest "./app/components/Views/confirmations/SendFlow/Confirm/index.test.tsx" --no-cache ``` TransactionReview component test: ```bash yarn jest "./app/components/Views/confirmations/components/TransactionReview/index.test.tsx" --no-cach ``` ## **Manual testing steps** **Test Migration (using a wallet/account with no STX Transactions)** Start with an older repo version: **Terminal #1** ```bash git checkout tags/v7.32.0 ``` ```bash yarn setup && yarn watch ``` **Terminal #2** ```bash yarn start:ios ``` 1. Import or setup a wallet without STX transactions, launch the wallet (do not enable STX if prompted), check that toggle is OFF in: `Settings > Advanced > Smart Transactions` 2. Switch to feature branch and run app: **Terminal #1** ```bash git checkout feat/enable-stx-migration ``` ```bash yarn setup && yarn watch ``` **Terminal #2** ```bash yarn start:ios ``` 3. Test that Alert only shows during confirmation screens for transactions and contract interactions, but not for signing 4. Create a Send transaction to your own wallet for `0.0001` ETH 5. Ensure that Smart Transactions Banner Alert IS showing 6. Start a Swaps transaction on Ethereum Mainnet 7 Ensure that Smart Transactions Banner Alert IS showing 8. Try several Signs (ETH Sign, Personal Sign, Sign Typed Data, etc..) and ensure the STX Banner Alert does not show on those confirmations screens. 9. Ensure that the Smart Transactions Banner Alert is only showing on STX supported chains: - Ethereum - Sepolia 10. Ensure that link in alert "Higher success rates" link (inspect) goes to: [What is 'Smart Transactions'?](https://support.metamask.io/transactions-and-gas/transactions/smart-transactions/) 11. Dismiss the Smart Transactions Banner Alert 12. Create a Send transaction to your own wallet for `0.0001` ETH 13. Ensure that Smart Transactions Banner Alert IS NOT showing * Note: The Smart Transactions Banner Alert should not show up on chains like Linea which are not supported ## **Screenshots/Recordings** The following before and after screenshots show the state of varying Mobile views like Swaps, Send, Contract Deployment, Signing, etc.. that show the `SmartTransactionsMigrationBanner` component and how it's displayed on each view. The before shows the view without the component being rendered and the after (after migration and before dismissal) show the component as it will appear for the user on each view. ### **Before** <img width="150" alt="01-stx_before" src="https://github.com/user-attachments/assets/f526d21a-8a38-40ed-810e-1c102636ccbb" /> <img width="150" alt="02-send_before" src="https://github.com/user-attachments/assets/78155c14-295d-4d8a-94b6-6845158b29bf" /> <img width="150" alt="02-sendLegacy_before" src="https://github.com/user-attachments/assets/8f0049c5-ab00-45d0-adae-ed7d203ec79d" /> <img width="150" alt="04-signTypedDataV4_before" src="https://github.com/user-attachments/assets/07eef175-a431-4c88-a752-db8ea16c3328" /> <img width="150" alt="06-contractInteraction_before" src="https://github.com/user-attachments/assets/dcb63432-9f2d-4589-b6b6-25d5e13ea28f" /> <img width="150" alt="05-contractDeployment_before" src="https://github.com/user-attachments/assets/61dbc3f6-599b-435b-a994-07b1e1f41bcf" /> ### **After** <img width="150" alt="01-stx_after" src="https://github.com/user-attachments/assets/dae49867-093d-475f-a16c-911e79406e3f" /> <img width="150" alt="02-send_after" src="https://github.com/user-attachments/assets/5152d738-304d-4fa8-a835-84c4ba22878b" /> <img width="150" alt="02-sendLegacy_after" src="https://github.com/user-attachments/assets/84eebe4f-f374-48de-9f4a-76ab33da64f2" /> <img width="150" alt="04-signTypedDataV4_after" src="https://github.com/user-attachments/assets/c99b0251-2a9b-4f3a-83c3-a3ab5d6523ac" /> <img width="150" alt="06-contractInteraction_after" src="https://github.com/user-attachments/assets/09731034-a4cc-40f1-b5ff-23b2eccee0d5" /> <img width="150" alt="05-contractDeployment_after" src="https://github.com/user-attachments/assets/3c0ab0ba-2188-45e3-b0ae-622800f76773" /> <img width="150" alt="09-swap_after" src="https://github.com/user-attachments/assets/0943676d-eb21-4aa1-a975-3545d029bf34" /> <img width="150" alt="09-swap_after" src="https://github.com/user-attachments/assets/1b50c741-3105-4fb0-b010-ba08111ead89" /> ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [x] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [x] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --------- Co-authored-by: metamaskbot <[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 fixes the swap chart tests and removes some bug workarounds now that the bug has been fixed ## **Related issues** Fixes: 13504 ## **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 - [ ] 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.
…3503) ## **Description** Added stories for the `app/components/UI/Swaps/components/LoadingAnimation/ShapesBackgroundAnimation.tsx` component. Also, fixed a centering issue when animating ## **Related issues** Fixes: [#13492](#13492) ## **Manual testing steps** 1. Goto swaps page 2. When getting a quote you should see the animation with the fox 3. Open Storybook to view component under "Component Animations" ## **Screenshots/Recordings** ### Stories https://github.com/user-attachments/assets/b63e64d4-0e5a-4966-9683-c20b732e27b5 ### **Before** NOTE: The animation slowly moves off center https://github.com/user-attachments/assets/f491b7b2-5d03-470c-b8c4-110a942b9d92 ### **After** https://github.com/user-attachments/assets/aa4763ec-aafa-42ef-83b6-ddbeffd8afa8 <!-- [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 removes an obsolete e2e test. Furthermore, the CHAIN_PERMISSIONS: FALSE flag in the regression pipeline was removed since chain permissions are on by default. ## **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** Add navigation for opening confirmation pages. ## **Related issues** Fixes: MetaMask/MetaMask-planning#4143 ## **Manual testing steps** 1. Go to test dapp 2. Open signature pages and check navigation ## **Screenshots/Recordings** Dapp Requests: https://github.com/user-attachments/assets/a82e7170-d9d5-4574-9772-418b253a7f48 Staking: https://github.com/user-attachments/assets/bfe0d65c-fc00-4561-8b61-1e55bad104a4 ## **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** The account tracker polling was executed twice—once in the constructor and again in the `useAccountTrackerPolling` hook. This caused additional requests to be sent by the app, leading to performance issues. <!-- 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: #13345 ## **Manual testing steps** 1. Go to network tab 2. Verify that the request sent to get the balances are not sent twice ## **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.
#13441) ## **Description** This is another partial PR from our large draft feature branch: #13006 We have 1 (or 2) more PRs to do the integration and then push notifications are in! ## **Related issues** Fixes: ## **Manual testing steps** No testing steps yet, this PR is not (yet) testable as the feature is not released and incomplete. ## **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** PR to fix account selector balance ## **Related issues** Fixes: #13476 ## **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/0ec13f45-3ca0-45e3-81c3-e202d1277b73 ## **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? --> Bump detox version to 20.33.0. This required additional changes to the build scripts. ## **Related issues** Fixes: #13321 ## **Manual testing steps** Should continue to be able to run e2e locally. Should continue to be able to run e2e on 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] --> See linked issue. ## **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** fixes main aggregated balance ## **Related issues** Fixes: #13478 ## **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** update plist to include CFBundleIconName for app icons ## **Related issues** Fixes: ## **Manual testing steps** 1. View `ios/MetaMask/Info.plist` to confirm `CFBundleIconName` is there 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.
## **Description** - Added additional app icons - Removed unused tint fields in `Contents.json` - Updated `info.plist` ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** 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.
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** Adds hook that encapsulates the component logic, and unit tests. <!-- 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/MetaMask-planning#4081 ## **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] --> <img width="320" alt="Screenshot 2025-02-13 at 12 37 26" src="https://github.com/user-attachments/assets/6e2181ba-5ce0-4da4-aa6b-465964d84da1" /> ## **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.
…#13369) <!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** - Add redesign Permit support - Displays appropriate title and subtitle - Displays "Spender" if applicable - Fix InfoRow padding and alignment - InfoRow alignItems: 'baseline' was causing inconsistent alignment since each wrapped row has its own relative baseline - Fix Permit Simulation values not aligning to the right - Updates DisplayURL test - replaces snapshot test - fix toBeDefined → toBeTruthy to ensure test checks null case ## **Related issues** Fixes: MetaMask/MetaMask-planning#3919 (Permit support) Fixes: #13368 (Permit Simulation value alignment) ## **Manual testing steps** 1. Go to a test dapp https://develop.d3bkcslj57l47p.amplifyapp.com/ or https://metamask.github.io/test-dapp/ 2. Test various Permit signatures ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <img width="320" src="https://github.com/user-attachments/assets/ae196a59-284c-4b6b-90fa-20f4ed84850c"> <img width="320" src="https://github.com/user-attachments/assets/dc910b1d-4c1a-4d13-94a0-777802c0f7dc"> ### **After** <img width="320" src="https://github.com/user-attachments/assets/38dda8c0-61b9-466b-9b9a-581ef61e380a"> <img width="320" src="https://github.com/user-attachments/assets/8a510a1a-1ec3-484e-b191-3e3d684a6718"> <img width="320" src="https://github.com/user-attachments/assets/11b387c6-beb8-4332-b6af-b276e311077d"> ## **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? --> ## **Related issues** Fixes: [#4220](MetaMask/MetaMask-planning#4220) ## **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.
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** This PR adds the `<EarnTokenList />` component which displays a list of supported staking and lending tokens. Portions of the EarnTokenList are still hardcoded until we add data-fetching. #### Network Switching - The active network will be switched automatically if a token that isn't on the current network is selected (e.g. Base USDC) #### Filtering Out Ineligible Tokens - Staking tokens won't be displayed in the list if a user isn't eligible to stake - Lending tokens won't be displayed in the list if a user isn't eligible to lend. #### Token Display Order - Tokens where a user has a balance will be displayed first - Tokens where a user **doesn't** have a balance will **still** be displayed with an APR estimate. <!-- 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? --> #### Reason for change This is part of the Stablecoin Lending initiative. ## **Related issues** - [STAKE-898: [FE] Build 'Select Token' component for Earn Products](https://consensyssoftware.atlassian.net/browse/STAKE-898) ## **Manual testing steps** 1. Add `export MM_STABLECOIN_LENDING_UI_ENABLED=true` to your `.js.env` file 2. From the home screen (asset list), click on the wallet action button (the center blue bottom in the bottom tab bar with 2 arrows) 3. Select the "Earn" action 4. Select any token 5. The network should change automatically if not already selected 6. You should be redirected to the input screen. This screen should have a title of `Stake ETH` or `Deposit ${token.symbol}` depending on your selection during step 4 ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Designs** https://www.figma.com/design/HSYn1fXfnBvDwHvBO1ZZHb/Earn?m=auto&node-id=7079-143568 ### **Before** <!-- [screenshots/recordings] --> https://github.com/user-attachments/assets/20c73603-9111-4f11-81f4-3edf9d8580ac ### **After** <!-- [screenshots/recordings] --> https://github.com/user-attachments/assets/b265e999-6672-4a3d-b5e8-5ab5ebc56c2c ## **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 - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --------- Co-authored-by: tommasini <[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** * Update accounts controller (^24), assets controller(^50) and transaction controller(^46) * Handle breaking changes of assets controllers * Update the patch of assets controllers to be on v50 * Add MultichainNetworkController v0.1.1 (Although only added and not used at this PR, setActiveNetwork will be refactored in a follow up PR) ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** https://github.com/user-attachments/assets/cb378ce5-1e46-45f1-8520-1f18cb4b3b02 <!-- [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: Gustavo Antunes <[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** <!-- 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/MetaMask-planning#3941 ## **Manual testing steps** 1. Go to the test dapp 2. Perform transactions and signatures in the section `PPOM - Malicious Transactions and Signatures` 3. Test one previous supported chain and another chain outside the list below: ``` // previous supported chains ARBITRUM = '0xa4b1' AVALANCHE = '0xa86a' BASE = '0x2105' BERACHAIN = '0x138d4' BSC = '0x38' LINEA_MAINNET = '0xe708' MAINNET = '0x1' METACHAIN_ONE = '0x1b6e6' OPBNB = '0xcc' OPTIMISM = '0xa' POLYGON = '0x89' SCROLL = '0x82750' SEPOLIA = '0xaa36a7' ZKSYNC_ERA = '0x144' ``` ## **Screenshots/Recordings** https://github.com/user-attachments/assets/21da834d-e8e4-42df-be9f-08c8cb897b70 <!-- 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.
…3555) <!-- 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** Brings first party contract list up to date to match the [extension's when it comes to staking contracts](https://github.com/MetaMask/metamask-extension/blob/main/shared/constants/first-party-contracts.ts#L24). <!-- 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/MetaMask-planning#4221 ## **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** Add scroll button similar to extension on confirmation pages. The scroll button added is almost exactly like extension except for hover styles, it does not have hover styles. ## **Related issues** Fixes: MetaMask/MetaMask-planning#4090 ## **Manual testing steps** 1. Go to test dapp 2. Open long signature like seaport bulk request 3. Check scroll button that appears ## **Screenshots/Recordings** https://github.com/user-attachments/assets/3e7b5548-9d3c-4f37-a394-8357b586e98a ## **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** Reject transaction as user closes modal by swiping out. ## **Related issues** Fixes: MetaMask/MetaMask-planning#4231 ## **Manual testing steps** 1. Open signature request in test dapp 2. Swiping out modal should reject the transaction ## **Screenshots/Recordings** https://github.com/user-attachments/assets/0ac41b2b-96d5-4809-b2c5-f109d990585d ## **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** tooltip display for text should have label, this change is suggestion of design team ## **Related issues** Fixes: MetaMask/MetaMask-planning#4230 ## **Manual testing steps** 1. Go to test dapp 2. Open permit and detailed message 3. Click token value to see tooltip and ensure it has label ## **Screenshots/Recordings** <img width="398" alt="Screenshot 2025-02-18 at 3 49 39 PM" src="https://github.com/user-attachments/assets/7c586eed-2d51-48ea-b0a8-6bfc2b68c1ef" /> ## **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** Bump `@metamask/notification-services-controller` from `^0.15.0` to `^0.21.0` ## **Related issues** Fixes: ## **Manual testing steps** N/A Just need to make sure the app doesn't crash. ## **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 adds comprehensive unit tests for components involved in managing network permissions. ### Key Changes - NetworkSelectorList tests: - Snapshot tests for rendering verification. - Tests for network selection and right accessory rendering. - NetworkConnectMultiSelector tests: - Simulate network permission update flows. - Validate handling of multi-select behavior and correct chain ID usage. - ConnectionDetails tests: - Verify proper rendering and date formatting for network permission details. - PermittedNetworksInfoSheet tests: - Ensure the info sheet renders the correct title, description, and action button. - PermissionsManager tests: - Check that the component renders the empty state when no network permissions exist. <!-- 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** Contributes to: MetaMask/MetaMask-planning#3664 ## **Manual testing steps** 1. run jest for each test file, npx jest <test-file-path>, or just yarn test:unit ## **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.
…etworkController (#13556) ## **Description** Update setActiveNetwork function to be called from MultichainNetworkController instead of NetworkController ## **Related issues** Fixes: ## **Manual testing steps** 1. Add network via dapp 2. Add network via popular list 3. Add custom network 4. Remove selected network ## **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/63ca6d56-a523-46f0-a7a8-a861fc05d81d https://github.com/user-attachments/assets/c6d07314-9b47-4a70-a287-73b452ebf190 ## **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). - [ ] 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 - [ ] 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). - [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.
|
|
@SocketSecurity ignore-all |
@metamaskbot update-attributions |
Attributions updated |
|
|
🚀 v7.43.0 Testing & Release Quality Process
Hi Team,
As part of our new MetaMask Release Quality Process, here’s a quick overview of the key processes, testing strategies, and milestones to ensure a smooth and high-quality deployment.
📋 Key Processes
Testing Strategy
Conduct regression and exploratory testing for your functional areas, including automated and manual tests for critical workflows.
Focus on exploratory testing across the wallet, prioritize high-impact areas, and triage any Sentry errors found during testing.
Validate new functionalities and provide feedback to support release monitoring.
GitHub Signoff
Issue Resolution
Cherry-Picking Criteria
🗓️ Timeline and Milestones
✅ Signoff Checklist
Each team is responsible for signing off via GitHub. Use the checkbox below to track signoff completion:
Team sign-off checklist
This process is a major step forward in ensuring release stability and quality. Let’s stay aligned and make this release a success! 🚀
Feel free to reach out if you have questions or need clarification.
Many thanks in advance
Reference