-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
release: 7.55.0 #18899
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
release: 7.55.0 #18899
Conversation
…18746) ## **Description** This PR addresses multiple bugs and UX improvements in the Perps order flow, improving the overall trading experience and fixing critical issues reported by users. ### Key improvements: 1. **Fixed double order submission on Android ([TAT-1424](https://consensyssoftware.atlassian.net/browse/TAT-1424))** - Added submission guard to prevent race conditions 2. **Improved order submission UX ([TAT-1414](https://consensyssoftware.atlassian.net/browse/TAT-1414))** - Navigate immediately with "Order Submitted" toast, then show "Order Confirmed" after execution 3. **Updated minimum order size ([TAT-1351](https://consensyssoftware.atlassian.net/browse/TAT-1351))** - Changed to $10 across all environments for consistency 4. **Auto-open limit price modal ([TAT-1368](https://consensyssoftware.atlassian.net/browse/TAT-1368))** - Automatically opens when switching to limit order type, preventing error state 5. **Enhanced TP/SL filtering ([TAT-1384](https://consensyssoftware.atlassian.net/browse/TAT-1384))** - Properly filters Stop Market and Take Profit Limit orders from Orders tab 6. **Fixed limit price presets ([TAT-1411](https://consensyssoftware.atlassian.net/browse/TAT-1411))** - Direction-specific presets now work correctly (Long: -1%,-2%,-5%,-10% | Short: +1%,+2%,+5%,+10%) 7. **Dynamic tab visibility ([TAT-1410](https://consensyssoftware.atlassian.net/browse/TAT-1410))** - Tabs hide/show based on available data (no empty tabs) 8. **TP/SL row grouping** - Combined into single row showing percentages for better UX 9. **Fixed leverage bottom sheet alignment ([TAT-1382](https://consensyssoftware.atlassian.net/browse/TAT-1382))** - Resolved text overflow and improved visual consistency 10. **Optimized price subscriptions** - Added price channel pre-warming to maintain single WebSocket connection for all market prices, reducing connection overhead and improving performance 11. **Improved code maintainability** - Extracted magic numbers to configuration constants, added comprehensive JSDoc documentation, and centralized color management for consistency 12. **Enhanced slider UX** - Increased thumb size and touch target area for better mobile interaction in both leverage and position sliders 13. **MetaMask builder fees ([TAT-1221](https://consensyssoftware.atlassian.net/browse/TAT-1221))** - Restructured fee calculation to properly include MetaMask's 0.1% builder fee with provider-agnostic architecture ready for future points-based discounts 14. **Enhanced tooltip accessibility** - Increased info icon size from 16px to 20px and touch target to 40x40px for better visibility and mobile interaction 15. **Fixed activity page title alignment ([TAT-1387](https://consensyssoftware.atlassian.net/browse/TAT-1387))** - Centered title text in transaction detail views for better visual alignment 16. **Fixed back arrow navigation ([TAT-1398](https://consensyssoftware.atlassian.net/browse/TAT-1398))** - Back arrow now consistently navigates to Perps markets page and increased touch target to 44x44px for better accessibility 17. **Added time to transaction dates ([TAT-1388](https://consensyssoftware.atlassian.net/browse/TAT-1388))** - Transaction detail screens now show both date and time (e.g., "January 18, 2022 at 12:00 AM") 18. **Display PnL in trade history ([TAT-1374](https://consensyssoftware.atlassian.net/browse/TAT-1374))** - Trade history now shows actual profit/loss instead of order size - opens show fee paid, closes show net PnL (after fees) 19. **Hide network picker in Perps tab ([TAT-1402](https://consensyssoftware.atlassian.net/browse/TAT-1402))** - Network picker is now hidden when viewing the Perps tab in Activity view as Perps is network-agnostic 20. **Fix funding history order ([TAT-1375](https://consensyssoftware.atlassian.net/browse/TAT-1375))** - Funding tab now shows newest transactions first, matching the behavior of Orders and Trades tabs 21. **Fixed PnL color display** - Trade history now correctly shows green for positive PnL and red for negative PnL 22. **Removed points display** - Temporarily disabled points feature in transaction details as it's not yet activated 23. **Display limit orders in Perps homescreen ([TAT-1400](https://consensyssoftware.atlassian.net/browse/TAT-1400))** - Open limit orders now properly display below positions in the Perps tab with unified card design 24. **Fixed app crash when switching accounts ([TAT-1363](https://consensyssoftware.atlassian.net/browse/TAT-1363))** - Resolved CLIENT_NOT_INITIALIZED race condition errors occurring when switching between accounts or testnet/mainnet by implementing proper initialization synchronization ## **Changelog** CHANGELOG entry: Fixed multiple Perps trading issues including double order submission, improved order flow UX, enhanced TP/SL display, resolved leverage bottom sheet alignment issues, optimized WebSocket price subscriptions, improved code maintainability with constants and documentation, enhanced slider and tooltip UX for better mobile interaction, and restructured fee calculation to properly include MetaMask builder fees ## **Related issues** Fixes: - [TAT-1424](https://consensyssoftware.atlassian.net/browse/TAT-1424): Each order is submitted twice (Android only) - [TAT-1414](https://consensyssoftware.atlassian.net/browse/TAT-1414): Order submission and execution UX differ from designs - [TAT-1351](https://consensyssoftware.atlassian.net/browse/TAT-1351): Trade screen - default & minimum order size is $6 instead of $10 - [TAT-1368](https://consensyssoftware.atlassian.net/browse/TAT-1368): Auto-open limit price bottom sheet when limit order selected - [TAT-1384](https://consensyssoftware.atlassian.net/browse/TAT-1384): Remove TP and SL from the order tab - [TAT-1411](https://consensyssoftware.atlassian.net/browse/TAT-1411): Limit order price bottom sheet presets bugs - [TAT-1410](https://consensyssoftware.atlassian.net/browse/TAT-1410): Hide empty tabs dynamically - [TAT-1382](https://consensyssoftware.atlassian.net/browse/TAT-1382): Mis-alignment in leverage config bottom sheet - [TAT-1221](https://consensyssoftware.atlassian.net/browse/TAT-1221): MetaMask builder fees not included in order calculations - [TAT-1387](https://consensyssoftware.atlassian.net/browse/TAT-1387): Bad title alignment in Activity Pages (Trades, Orders, Funding) - [TAT-1398](https://consensyssoftware.atlassian.net/browse/TAT-1398): Perps asset detail screen return arrow has wrong navigation and small touch target - [TAT-1388](https://consensyssoftware.atlassian.net/browse/TAT-1388): Missing Time in Activity Details - [TAT-1374](https://consensyssoftware.atlassian.net/browse/TAT-1374): Show PnL instead of order size in trade history - [TAT-1402](https://consensyssoftware.atlassian.net/browse/TAT-1402): Network picker is displayed in Activity page when selecting perps tab - [TAT-1375](https://consensyssoftware.atlassian.net/browse/TAT-1375): Issues in funding history tab - wrong order - [TAT-1400](https://consensyssoftware.atlassian.net/browse/TAT-1400): Display limit orders in perps tab in homescreen - [TAT-1363](https://consensyssoftware.atlassian.net/browse/TAT-1363): App crash when switching across accounts ## **Manual testing steps** ```gherkin Feature: Perps Order Flow Bug Fixes Scenario: User submits a market order on Android Given the user is on the Perps order screen And the user has sufficient balance When user taps the place order button once Then the order should be submitted only once And user should see "Order Submitted" toast immediately And user should be navigated to market details And user should see "Order Confirmed" toast after execution Scenario: User switches to limit order type Given the user is on the Perps order screen with market order selected When user changes order type to limit Then the limit price modal should open automatically And no error state should be shown Scenario: User views orders tab Given the user has open orders including TP/SL orders When user navigates to the orders tab Then only limit orders should be displayed And Stop Market and Take Profit Limit orders should be filtered out Scenario: User sets limit price using presets Given the user has the limit price modal open When user taps a preset button (e.g., -1%) Then the input should update with the calculated price And long orders should show negative presets (-1%, -2%, -5%, -10%) And short orders should show positive presets (+1%, +2%, +5%, +10%) Scenario: User views market tabs with no positions Given the user has no open positions or orders When user views the market details page Then only the Statistics section should be visible And no empty tabs should be shown Scenario: User configures TP/SL Given the user is on the order screen When user views the TP/SL row Then TP and SL should be combined in a single row And values should display as percentages (e.g., "TP 10%, SL 20%") And an info tooltip should be available Scenario: User adjusts leverage Given the user opens the leverage bottom sheet When user views the leverage slider Then the warning text should fit on a single line And warning text color should match the slider gradient position And the slider should show min, middle, and max values And all content should have proper horizontal margins ``` ## **Screenshots/Recordings** ### **Before** - Double orders submitted on Android - Error state shown when switching to limit order - TP/SL orders visible in Orders tab - Separate TP and SL rows with dollar amounts - Empty tabs shown when no data available - Leverage warning text overflowing off screen - No middle value on leverage slider ### **After** - Single order submission with proper guard - Limit price modal auto-opens smoothly - Only limit orders shown in Orders tab - Combined TP/SL row with percentage display - Dynamic tab visibility based on data - Leverage warning text properly aligned with dynamic colors - Slider shows min, middle, and max values ## **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. [TAT-1424]: https://consensyssoftware.atlassian.net/browse/TAT-1424?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ [TAT-1414]: https://consensyssoftware.atlassian.net/browse/TAT-1414?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ [TAT-1351]: https://consensyssoftware.atlassian.net/browse/TAT-1351?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ [TAT-1368]: https://consensyssoftware.atlassian.net/browse/TAT-1368?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ [TAT-1384]: https://consensyssoftware.atlassian.net/browse/TAT-1384?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ [TAT-1411]: https://consensyssoftware.atlassian.net/browse/TAT-1411?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ --------- Co-authored-by: Claude <[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? --> * Update the unit test to include all unit tests in the e2e folder * Add unit tests for mockHelpers to make it easier to make changes in future ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: ## **Related issues** Fixes: ## **Manual testing steps** ```gherkin Feature: my feature name Scenario: user [verb for user action] Given [describe expected initial app state] When user [verb for user action] Then [describe expected outcome] ``` ## **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** Specify the deposit amount in the selected fiat currency in the Perps Deposit confirmation. In addition: - Limit maximum number of decimal places to `2`. - Limit maximum length of input to `28`. - Automatically update font size based on input length. - Fix `useSignedOrSubmittedAlert` to only flag transactions on same chain and account. - Remove `MM_CONFIRMATION_INTENTS` environment variable. ## **Changelog** CHANGELOG entry: null ## **Related issues** Fixes: [#5640](MetaMask/MetaMask-planning#5640) ## **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.
…mver version (#18755) <!-- 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** As indicated by @davidmurdoch in this [comment](https://github.com/MetaMask/metamask-extension/pull/35248/files#r2298594479), git tags might be problematic because they're not protected. We've decided to remove the dependency on tags because we don’t actually need them. They were introduced 2 years ago when this GitHub Action was created, but in practice the next semver version has always been determined by branches. Branches make more sense as the source of truth anyway, since creating a new release branch is what actually defines that a new release has been cut. ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: ## **Related issues** Fixes: ## **Manual testing steps** ```gherkin Feature: my feature name Scenario: user [verb for user action] Given [describe expected initial app state] When user [verb for user action] Then [describe expected outcome] ``` ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> This PR adds a check to verify if the Card Home page is running in an E2E test environment. When detected, the skeleton loading is disabled. This adjustment is required due to a known compatibility issue between Detox and the Skeleton component. ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: ## **Related issues** Fixes: ## **Manual testing steps** ```gherkin Feature: my feature name Scenario: user [verb for user action] Given [describe expected initial app state] When user [verb for user action] Then [describe expected outcome] ``` ## **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** Bug fix: when we scan a Wallet Connect (WC) QR code, the app displays "this page doesn't exist" modal ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: null ## **Related issues** Fixes: #18641 ## **Manual testing steps** ```gherkin Feature: Fix WC QR Code Scan Scenario: user scans wallet connect QR code from https://rainbowkit.com/ Given user on QR code scanner screen When user scans the QR code Then wallet connect modal should pop up to allow users to connect ``` ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before**  ### **After** iOS  Android  <!-- [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.
…e commits.csv from changelog pr, add workflow artifact (#18840) <!-- 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** Ticket: https://consensyssoftware.atlassian.net/browse/INFRA-2867 Added chore prefix to PR, await for create release, remove commits.csv from changelog pr, add commits.csv to workflow artifacts The Github Action doesn’t inform us when [createReleaseSheet](https://github.com/MetaMask/github-tools/blob/dde6d530bebae07d1e50180894ab2cac64170a2c/.github/scripts/update-release-sheet.mjs#L313) succeeds or fails, we should add an ‘await’ in front of it. The changelog PR shall not include ‘commits.csv’ as we have here: [MetaMask/metamask-extension@](https://github.com/MetaMask/metamask-extension/commit/e6be418e07eb04d47ce7dd07432a2136382f1180#r2254840331)https://github.com/MetaMask/metamask-extension/commit/e6be418e07eb04d47ce7dd07432a2136382f1180[#r2254840331](https://github.com/MetaMask/metamask-extension/commit/e6be418e07eb04d47ce7dd07432a2136382f1180#r2254840331) The title of the version bump PR created by the Github Action doesn’t respect conventional commits format, which makes the CI fail. It should be prefixed with release: . Tested here: https://github.com/consensys-test/metamask-extension-test-workflow2/actions/runs/17270524861/job/49013733053, https://github.com/consensys-test/metamask-extension-test-workflow2/actions/runs/17272422001 consensys-test/metamask-extension-test-workflow2#28 (No commits.csv) consensys-test/metamask-extension-test-workflow2#32 (Added release prefix) https://github.com/consensys-test/metamask-extension-test-workflow2/actions/runs/17272422001 (commits.csv workflow artifact) ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: ## **Related issues** Fixes: ## **Manual testing steps** ```gherkin Feature: my feature name Scenario: user [verb for user action] Given [describe expected initial app state] When user [verb for user action] Then [describe expected outcome] ``` ## **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. Signed-off-by: Pavel Dvorkin <[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 reintroduces the scan button to the Wallet Homepage <!-- 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? --> ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: ## **Related issues** Fixes: #18640 ## **Manual testing steps** ```gherkin Feature: my feature name Scenario: user [verb for user action] Given [describe expected initial app state] When user [verb for user action] Then [describe expected outcome] ``` ## **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/916cd417-6692-46ce-b502-0f03eb8c052d <!-- [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 slims down all Smoke suites to allow faster and objective feedback. It also adds the regression workflows on 3 triggers: - Schedule - every day at 4:30 UTC (same as bitrise) - Workflow Dispatch - ability to select the suites on demand - Workflow call - in case we want to tie this in to other workflows ℹ️ **Old Regression test count:** 92 ℹ️ **New Regression test count:** 172 ### Regression changes All tests currently marked with tag `Regression` have been moved to their respective areas. This means that the existing regression tests will now execute in GHA (android only for the time being) as parallel jobs. The bitrise workflows are now updated to slice up tests into the new regression labels instead of using the generic label. A script to validate the inputs has been added so that the job is not called manually with 0 selected tags. **Bitrise before changes:** <img width="1362" height="1404" alt="Screenshot 2025-08-26 at 20 54 23" src="https://github.com/user-attachments/assets/b3b4ff58-37f4-4edc-a2f5-43115eef1843" /> **Bitrise after changes:** <img width="1285" height="1789" alt="Screenshot 2025-08-26 at 21 12 40" src="https://github.com/user-attachments/assets/d31d834b-e479-4b56-aef8-83d4a2be41aa" /> ### New tags: - SmokeAssets - not yet in use but ready to have more tests - RegressionAssets - RegressionAccounts - RegressionConfirmations - RegressionWalletUX - SmokeWalletUX - not yet in use but ready to have more tests - RegressionIdentity - RegressionTrade - RegressionNetworkAbstractions - RegressionWalletPlatform - RegressioNNetworkExpansion <!-- 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? --> ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: ## **Related issues** Fixes: ## **Manual testing steps** ```gherkin Feature: my feature name Scenario: user [verb for user action] Given [describe expected initial app state] When user [verb for user action] Then [describe expected outcome] ``` ## **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 cleans up the `AddressList` style to use components from `@metamask/design-system-react-native` and proper spacing <!-- 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? --> ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: ## **Related issues** Fixes: https://consensyssoftware.atlassian.net/jira/software/c/projects/DSYS/boards/1888?quickFilter=2109&selectedIssue=DSYS-116 ## **Manual testing steps** ```gherkin Feature: AddressList Scenario: AddressList on Multichain State 2 Given Multichain State 2 feature flag is enabled When user clicks on Address Copy on the Wallet page Then the new AddressList should appear ``` ## **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/4ac7d080-77d9-4865-af9a-4202416805d8 <!-- [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.
#18765) <!-- 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** When in the deeplink: In case the user doesn't have the solana account active by the time the deeplink opens, we are still opening the swaps page with the correct asset preselected, by the chainId. The account will also automatically switch to the chain in use (the asset to swap). https://github.com/user-attachments/assets/508d6360-8bf5-445b-8f46-39d6876aca69 ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: chore: When in the deeplink, pass the native asset for navigating to swaps page ## **Related issues** Fixes: ## **Manual testing steps** ```gherkin Feature: my feature name Scenario: user click on depplink (`xcrun simctl openurl booted https://link.metamask.io/create-account\?chainId\=solana%3A5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp`) The current selected/active account in the app, is an EVM account Then the app opens the solana swap flow with the default pair and automatically sets the solana account as active ``` ## **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: Alejandro Garcia Anglada <[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** All banners will now come from Contentful. Thus, this PR removes all hardcoded banners and adds the ability to order the Contentful banners. Additional information can be found here: https://docs.google.com/document/d/1qfntKBDNQVCQzbBNcd0Qb8rzsVn8PPUIjaKPk5R9dBY/edit?tab=t.0 PR on the extension side: MetaMask/metamask-extension#35109 <!-- 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? --> ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: Updated Carousel Banners ## **Related issues** Fixes: ## **Manual testing steps** ```gherkin Feature: my feature name Scenario: user [verb for user action] Given [describe expected initial app state] When user [verb for user action] Then [describe expected outcome] ``` ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> <img width="443" height="893" alt="Screenshot 2025-08-27 at 6 14 52 PM" src="https://github.com/user-attachments/assets/ebda03b0-092f-4111-a457-e01fb71ba217" /> <img width="405" height="925" alt="Screenshot 2025-08-27 at 8 04 02 PM" src="https://github.com/user-attachments/assets/9772f36c-1565-447f-8b13-8ddfce60f8a0" /> ## **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 - [ ] 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: Prithpal Sooriya <[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? --> This PR implements a 5-minute Redux caching strategy for MetaMask Card token allowances to prevent infinite loading states in the CardHome component. **Key Changes:** - Added `priorityToken` and `lastFetched` fields to card Redux slice - Implemented `selectIsCardCacheValid` selector with 5-minute expiration logic - Modified `useGetPriorityCardToken` hook to use cache-first approach - Added comprehensive test coverage for caching scenarios - Enhanced compatibility with redux-persist (Date objects and ISO strings) ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: Improved Card component performance by implementing a 5-minute caching strategy for token allowances ## **Related issues** Fixes: ## **Manual testing steps** ```gherkin Feature: Card Token Caching Strategy Scenario: user accesses Card component with fresh cache Given the Card component is mounted with a valid user address And no cached priority token data exists When the component loads for the first time Then it should fetch priority token data from the API And store the result in Redux cache with timestamp And display the priority token information Scenario: user accesses Card component with valid cache Given the Card component is mounted with a valid user address And cached priority token data exists from less than 5 minutes ago When the component loads Then it should use the cached data without making API calls And display the cached priority token information immediately Scenario: user accesses Card component with expired cache Given the Card component is mounted with a valid user address And cached priority token data exists from more than 5 minutes ago When the component loads Then it should fetch fresh priority token data from the API And update the cache with new data and timestamp And display the updated priority token information ``` ## **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/6b1da7e8-75a1-4123-9366-e6344c58e701 ### **After** <!-- [screenshots/recordings] --> https://github.com/user-attachments/assets/438c642d-788f-4aa5-9937-41c03ba3f2ef ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> Imports the selector from `@metamask/assets-controllers` so that it can be used by subsequent PRs by multiple teams. Including tokens list by assets and send flow by confirmations. Preview WIP PR for tokens list using the same selector: #18566 I have verified that calling the selector returns the expected output. ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: ## **Related issues** Fixes: ## **Manual testing steps** ```gherkin Feature: my feature name Scenario: user [verb for user action] Given [describe expected initial app state] When user [verb for user action] Then [describe expected outcome] ``` ## **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** The TradingView chart component was loading the Lightweight Charts library from an external CDN: https://unpkg.com/[email protected]/dist/lightweight-charts.standalone.production.js There are several problems with this, two of which are: 1. If unpkg.com gets compromised, malicious JavaScript could be injected into our app 2. Chart could fail is CDN is unreachable This PR introduces the bundle for [lightweight-charts](https://github.com/tradingview/lightweight-charts) locally. This removes the external dependency on the CDN, with the caveat that we will be locked in at this version until we manually update the local bundle. ## **Changelog** CHANGELOG entry: Add local bundle of lightweight-charts library to mobile codebase ## **Related issues** Fixes: ## **Manual testing steps** ```gherkin Feature: my feature name Scenario: user [verb for user action] Given [describe expected initial app state] When user [verb for user action] Then [describe expected outcome] ``` ## **Screenshots/Recordings** Perps chart should remain fully functional: <img width="439" height="893" alt="Screenshot 2025-08-27 at 12 07 23 PM" src="https://github.com/user-attachments/assets/12743bab-48fa-408f-9896-92406ed440de" /> ## **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 bumps `@metamask/signature-controller` from `^30.0.0` to `^32.0.0` ([CHANGELOG](https://github.com/MetaMask/core/blob/main/packages/signature-controller/CHANGELOG.md#3200)) - No major breaking changes, but resolves 2 peer dependency warnings. <!-- 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? --> ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: ## **Related issues** Fixes: #17488 ## **Manual testing steps** ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
…#18545) <!-- 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** Integrates perps account balances into the wallet portfolio view, allowing users to see their total portfolio value including perps positions. **Reason for change:** Users couldn't see their complete financial position as perps balances were isolated from wallet totals. **Improvement:** - Perps balances now included in total wallet balance - WebSocket connections optimized - only active in perps environment - Balances persist in Redux for offline viewing - Real 24h historical data for accurate portfolio change calculations <!-- 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? --> ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: Added perps account value to wallet total balance and unrealized P&L display ## **Related issues** Fixes: https://consensyssoftware.atlassian.net/browse/TAT-1299 Fixes: https://consensyssoftware.atlassian.net/browse/TAT-1044 ## **Manual testing steps** ```gherkin Feature: Perps Balance Integration Scenario: User views combined wallet and perps balance Given user has $1000 in wallet And user has $500 in perps account And perps feature is enabled When user opens wallet view Then total balance shows $1500 And perps balance is included without WebSocket connection Scenario: User switches between wallet and perps tabs Given user is viewing wallet with perps balance included When user navigates to perps tab Then WebSocket connection establishes And real-time updates begin When user returns to wallet view Then WebSocket disconnects And perps balance persists from Redux Scenario: User restarts app with perps balance Given user has perps balance of $500 And app is force quit When user reopens app Then perps balance of $500 displays immediately And no WebSocket connection is made until entering perps Scenario: User sees accurate 24h portfolio changes Given yesterday's perps balance was $400 And today's perps balance is $500 And wallet balance unchanged When user views portfolio percentage Then percentage reflects combined portfolio change And uses real historical data not estimates ``` ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> - Perps balance not included in wallet total - No historical data for accurate percentages ### **After** <!-- [screenshots/recordings] --> - Unified portfolio balance (wallet + perps) - Real 24h historical data for changes <img width="1179" height="2556" alt="Simulator Screenshot - iPhone 15 Pro - 2025-08-27 at 15 40 14" src="https://github.com/user-attachments/assets/3433c197-a0b7-4151-ac60-f13f0f568797" /> ## **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: Arthur Breton <[email protected]>
## **Description** Market price should get replaced by funding cost in the PerpsPositionDetailCard component: ## **Changelog** CHANGELOG entry: Remove market price, and replace with funding cost in PerpsPositionDetail card ## **Related issues** Fixes: https://consensyssoftware.atlassian.net/browse/TAT-1352 ## **Manual testing steps** ```gherkin Feature: Funding cost Scenario: As a user I want to see the funding cost of my Perps position Given I have a position with a funding cost When user opens the perps position details page Then I should see the Funding cost in the position details card ``` ## **Screenshots/Recordings** <img width="423" height="410" alt="Screenshot 2025-08-27 at 4 18 31 PM" src="https://github.com/user-attachments/assets/99fdb34f-be64-4072-ab43-bd4b6679e0f2" /> ## **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 adds a new component `MultichainPermissionSummary`, it is the permission summary screen that supports bip44 accounts. Currently this component has not been wired up and is only testable with storybook. <!-- 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? --> ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: null ## **Related issues** Related to: https://consensyssoftware.atlassian.net/browse/MUL-669?atlOrigin=eyJpIjoiOWJmY2Q2NGUxZTIwNDA5MmExOGM0ZjJhZjlhMzUwZjgiLCJwIjoiaiJ9 ## **Manual testing steps** This component has not been wired up. The only way to test this is to use storybook. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **After** <img width="1179" height="2556" alt="Simulator Screenshot - iPhone 15 Pro - 2025-08-25 at 22 34 57" src="https://github.com/user-attachments/assets/519f7bca-19c8-425a-9b62-7bcbb3d22558" /> <img width="1179" height="2556" alt="Simulator Screenshot - iPhone 15 Pro - 2025-08-25 at 22 35 04" src="https://github.com/user-attachments/assets/830524f9-8a03-4e0a-b176-cf79c2d26ef0" /> ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> [Should remove invalid header when protecting the account](#18715 (comment)) ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: ## **Related issues** Fixes: ## **Manual testing steps** ```gherkin Feature: my feature name Scenario: user [verb for user action] Given [describe expected initial app state] When user [verb for user action] Then [describe expected outcome] ``` ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> #18715 ### **After** <!-- [screenshots/recordings] --> https://github.com/user-attachments/assets/bcde161b-e9b1-45a1-b49b-737f482c541a https://github.com/user-attachments/assets/994f8acd-2364-4030-8d2e-7ec0d155b7ad ## **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 adds support for displaying the AAVE token icon in the earning workflow interface. The change specifically targets the ContractTag component to show a custom AAVE icon when interacting with AAVE V3 pool contracts. **Key Changes** - Added AAVE token icon import to the image icons registry - Modified ContractTag component to conditionally display AAVE icon for AAVE V3 pool contracts - Implemented address-based detection to determine when to show the AAVE icon <!-- 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? --> ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: Update ContractTag component to displaying AAVE token icon if the address argument is a AAVE contract address ## **Related issues** #18707 ## **Manual testing steps** ```gherkin Feature: my feature name Scenario: user [verb for user action] Given [describe expected initial app state] When user [verb for user action] Then [describe expected outcome] ``` ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <img width="300" alt="image" src="https://github.com/user-attachments/assets/578c7ca9-99ef-485c-9dd4-a097aca19d4a" /> <!-- [screenshots/recordings] --> ### **After** <img width="300" alt="aave" src="https://github.com/user-attachments/assets/3188813a-7c37-42f2-bc23-70fae6e8ee3f" /> <!-- [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. --------- Co-authored-by: Frederic HENG <[email protected]>
…twork (#18763) ## **Description** This PR implements a comprehensive redesign of the Perps withdrawal interface, addressing critical stability issues and enhancing user experience through modern UI patterns and improved network handling. **1. What is the reason for the change?** - Poor UX: Outdated interface lacking modern input methods (numeric keypad, percentage buttons) made amount entry cumbersome - Incorrect messaging: Toast notifications displayed wrong currency (ETH instead of USDC), confusing users about their withdrawals - Technical debt: Hyperliquid network references remained in the codebase despite migration to new infrastructure **2. What is the improvement/solution?** - Completely redesigned withdrawal UI with Tailwind CSS featuring large amount display, percentage buttons (10%, 25%, 50%, Max), and integrated numeric keypad - Fixed toast notifications to correctly show USDC amounts and accurate timing ("Processing withdrawal" → "Withdrawal successful - X USDC will arrive within 5 minutes") - Removed all Hyperliquid references, displaying "Perps Account" instead for cleaner branding ## **Changelog** CHANGELOG entry: Updated Perps withdrawal screen with new design, fixed Arbitrum network validation crash, and improved withdrawal notifications to show correct USDC amounts ## **Related issues** Fixes: - [TAT-1379](https://consensyssoftware.atlassian.net/browse/TAT-1379): Remove Hyperliquid network from GNS - [TAT-1396](https://consensyssoftware.atlassian.net/browse/TAT-1396): USDC logo doesn't load in withdrawal screen - [TAT-1397](https://consensyssoftware.atlassian.net/browse/TAT-1397): Toast improvements for withdrawal notifications ## **Manual testing steps** ```gherkin Feature: Perps Withdrawal Screen Update Scenario: User performs a withdrawal with new UI Given user is on the Perps main screen with a positive balance And Arbitrum network is either enabled or disabled initially When user taps on "Withdraw" button Then the new withdrawal screen appears with: - Large amount display at top - Available balance shown - Percentage buttons (10%, 25%, 50%, Max) - Numeric keypad for amount entry - USDC token display in receive section - Provider fee information When user enters an amount using the keypad or percentage buttons And taps "Withdraw" Then user is immediately navigated back to the previous screen And a toast appears saying "Processing withdrawal - This may take a few moments" And after withdrawal completes, a success toast appears saying "Withdrawal successful - X USDC will arrive within 5 minutes" Scenario: Arbitrum network auto-enablement Given user has Arbitrum network disabled When user enters the Perps environment Then Arbitrum network is automatically enabled And no crashes occur during deposit or withdrawal operations Scenario: Minimum amount validation Given user is on the withdrawal screen When user enters an amount below the minimum ($1.01) Then an error message appears: "Minimum withdrawal amount is $1.01" And the Continue button remains disabled ``` ## **Screenshots/Recordings** ### **Before** - Old withdrawal screen with Hyperliquid network display - No percentage buttons or proper keypad - Incorrect toast messages showing ETH instead of USDC - App crashes when Arbitrum not enabled ### **After** - New modern dark theme withdrawal UI matching design mockups - Clean interface with amount display, percentage buttons, and integrated keypad - Proper USDC withdrawal toasts - Arbitrum auto-enablement prevents crashes - "Perps Account" shown instead of Hyperliquid https://github.com/user-attachments/assets/846aba53-646b-49eb-9b34-958d661c9e54 ## **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. [TAT-1361]: https://consensyssoftware.atlassian.net/browse/TAT-1361?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ [TAT-1379]: https://consensyssoftware.atlassian.net/browse/TAT-1379?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** Fix balance display and validation on amount page. ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: ## **Related issues** Fixes: #18548 ## **Manual testing steps** ```gherkin Feature: my feature name Scenario: user [verb for user action] Given [describe expected initial app state] When user [verb for user action] Then [describe expected outcome] ``` ## **Screenshots/Recordings** <img width="401" height="842" alt="Screenshot 2025-08-27 at 5 56 16 PM" src="https://github.com/user-attachments/assets/50f3a16d-37f4-472d-9c80-535b0f39085f" /> ## **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** This PR integrates the automated `RCA-needed` label removal workflow from the [github-tools repository](https://github.com/MetaMask/github-tools). The workflow automatically removes the `RCA-needed` label from GitHub issues once a Root Cause Analysis (RCA) has been submitted via Google Forms. The solution consumes a **reusable workflow** from `github-tools` that: - Reads RCA submissions from a Google Sheet - Removes the label from matching issues - Eliminates manual tracking and reduces noise in issue management The workflow runs automatically every 6 hours and integrates with the existing RCA process established in INFRA-2406 and INFRA-2510. ## **Changelog** CHANGELOG entry: null ## **Related issues** Fixes: INFRA-2864 ## **Manual testing steps** Since this is an automated GitHub Actions workflow that runs on a schedule, traditional manual testing is not applicable. The workflow behavior can be verified by: ```gherkin Feature: Automated RCA label removal Scenario: Workflow processes issues with RCA submissions Given The workflow runs on its 6-hour schedule And There are closed issues with "RCA-needed" label And Some of these issues have RCA submissions in the Google Sheet When The workflow executes Then The Google Sheets API authentication succeeds And RCA responses are read from the configured sheet And Issues with matching RCA submissions have their labels removed And Issues without RCA submissions keep their labels ``` ## **Screenshots/Recordings** ### **Before** Manual process requiring team members to: - Check Google Sheets for RCA submissions - Find corresponding GitHub issues - Manually remove `RCA-needed` labels ### **After** Automated workflow that runs every 6 hours and removes labels automatically. - ✅ Successfully tested in fork repository: [Test Run #1](https://github.com/consensys-test/metamask-extension-test-fork/actions/runs/17266390093) and [Test Run #2](https://github.com/consensys-test/metamask-extension-test-fork/actions/runs/17266424658) ## **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 (N/A - GitHub Actions workflow) - [ ] I've documented my code using [JSDoc](https://jsdoc.app/) format if applicable (N/A - YAML workflow) - [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. --- ## **Implementation Details** ### **Files Changed** This PR adds only one file: - `.github/workflows/remove-rca-needed-label-sheets.yml` - Workflow configuration that consumes the reusable workflow from github-tools ### **Workflow Configuration** ```yaml name: Remove RCA-needed Label on: schedule: - cron: '0 */6 * * *' # Run every 6 hours jobs: remove-rca-labels: name: Remove RCA-needed Labels uses: MetaMask/github-tools@d354252 with: spreadsheet_id: '1Y16QEnDwZuR3DAQIe3T5LTWy1ye07GNYqxIei_cMg24' # Update this for mobile repository sheet_name: 'Form Responses 1' secrets: github-token: ${{ secrets.GITHUB_TOKEN }} google-application-creds-base64: ${{ secrets.GCP_RLS_SHEET_ACCOUNT_BASE64 }} ```
<!-- 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 implement new asset selectors in `asset` page in send flow. ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: ## **Related issues** Fixes: ## **Manual testing steps** ```gherkin Feature: my feature name Scenario: user [verb for user action] Given [describe expected initial app state] When user [verb for user action] Then [describe expected outcome] ``` ## **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. --------- Co-authored-by: Bernardo Garces Chapero <[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? --> Fixes a tiny bug on hook where we collect account group names for state2 multichain accounts. ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: ## **Related issues** Fixes: ## **Manual testing steps** ```gherkin Feature: my feature name Scenario: user [verb for user action] Given [describe expected initial app state] When user [verb for user action] Then [describe expected outcome] ``` ## **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 removes the possibility to conditionally run individual suites to align with the Bitrise workflow. Also adds the build step to the regression job. <!-- 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? --> ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: ## **Related issues** Fixes: ## **Manual testing steps** ```gherkin Feature: my feature name Scenario: user [verb for user action] Given [describe expected initial app state] When user [verb for user action] Then [describe expected outcome] ``` ## **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 recently [updated our `.gitignore`](https://github.com/MetaMask/metamask-mobile/pull/17773/files#diff-bc37d034bad564583790a46f19d807abfe519c5671395fd494d8cce506c42947) which had a regression that added unit test coverage files to git. <img width="502" height="181" alt="Screenshot 2025-08-27 at 14 37 50" src="https://github.com/user-attachments/assets/a3ab3273-26eb-4434-9a21-1e222d3d3f2a" /> This adds back the ignore for unit test coverage files. ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: N/A ## **Related issues** Fixes: ## **Manual testing steps** ```gherkin Feature: my feature name Scenario: user [verb for user action] Given [describe expected initial app state] When user [verb for user action] Then [describe expected outcome] ``` ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: ## **Related issues** Fixes: ## **Manual testing steps** ```gherkin Feature: my feature name Scenario: user [verb for user action] Given [describe expected initial app state] When user [verb for user action] Then [describe expected outcome] ``` ## **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** Adds cursor rules for E2E Testing <!-- 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? --> ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: ## **Related issues** Fixes: ## **Manual testing steps** ```gherkin Feature: my feature name Scenario: user [verb for user action] Given [describe expected initial app state] When user [verb for user action] Then [describe expected outcome] ``` ## **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: Javier Briones <[email protected]>
This comment was marked as outdated.
This comment was marked as outdated.
|
|
2 similar comments
|
|
run_tag_smoke_identity_ios is flaky on this branch |
🚀 v7.55.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
https://docs.google.com/spreadsheets/d/1tsoodlAlyvEUpkkcNcbZ4PM9HuC9cEM80RZeoVv5OCQ/edit?gid=1722820469#gid=1722820469