[pull] main from MetaMask:main#33
Merged
Merged
Conversation
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** This PR does the following: - Logs are now shown whenever a request is sent to a live server or redirected to the catch-all mock, making it easier to debug unexpected network calls. - A temporary URL and domain allowlist has been added to permit specific requests to reach real servers. The long-term goal is to reduce this list to zero. - Merging this PR will only log a warning for new, non-mocked requests and the tests will not fail yet. This allows teams time to mock missing URLs without blocking CI. What's Next: - Extend the allowlist to include all current live URLs used in existing tests, preserving the current behavior. - Enforce stricter validation in the test setup: throw an error if new tests access live URLs that are not in the allowlist and haven’t been mocked. - Collaborate across teams to fully mock all URLs in the allowlist ## **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: [MMQA-805](https://consensyssoftware.atlassian.net/browse/MMQA-805) ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. [MMQA-805]: https://consensyssoftware.atlassian.net/browse/MMQA-805?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> - Bug 1: #17690 - Bug 2: #17596 - Bug 3: https://www.notion.so/metamask-consensys/Save-your-SRP-blurry-text-should-be-dark-for-dark-mode-23ef86d67d6880d38c77f1c2a20e651a?v=211f86d67d68803c88d7000cfcf4f021&source=copy_link - Bug 4: https://www.notion.so/metamask-consensys/Remove-extra-space-after-Learn-how-on-the-wallet-is-ready-screen-23ef86d67d6880178aefe8060287cabd?v=211f86d67d68803c88d7000cfcf4f021&source=copy_link - Bug 5: https://www.notion.so/metamask-consensys/Remove-Learn-more-on-the-wallet-recovery-screen-in-settings-and-the-R-in-the-title-should-be-low-23ef86d67d6880cca1dbd8d7158e42d7?v=211f86d67d68803c88d7000cfcf4f021&source=copy_link - Bug 6: https://www.notion.so/metamask-consensys/Remove-white-part-in-graphics-23ff86d67d6880459efec45fee8047e0?v=211f86d67d68803c88d7000cfcf4f021&source=copy_link - Bug 7: https://www.notion.so/metamask-consensys/Remove-back-button-from-Save-your-SRP-screen-23ff86d67d6880f29d78e0b25bf0897a?v=211f86d67d68803c88d7000cfcf4f021&source=copy_link - Bug 8: https://www.notion.so/metamask-consensys/Capitalise-G-and-A-in-Google-and-Apple-in-settings-23ff86d67d688043b81fe446fb9c8ba2?v=211f86d67d68803c88d7000cfcf4f021&source=copy_link - Bug 9: https://www.notion.so/metamask-consensys/Copy-issues-in-Forgot-your-password-screens-23ff86d67d68809b9eaef9e204509ccd?v=211f86d67d68803c88d7000cfcf4f021&source=copy_link ## **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** 1. Go to the app 2. please follow the given steps in each bug. 3. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> - Bug 1: #17690 - Bug 2: #17596 - Bug 3: https://www.notion.so/metamask-consensys/Save-your-SRP-blurry-text-should-be-dark-for-dark-mode-23ef86d67d6880d38c77f1c2a20e651a?v=211f86d67d68803c88d7000cfcf4f021&source=copy_link - Bug 4: https://www.notion.so/metamask-consensys/Remove-extra-space-after-Learn-how-on-the-wallet-is-ready-screen-23ef86d67d6880178aefe8060287cabd?v=211f86d67d68803c88d7000cfcf4f021&source=copy_link - Bug 5: https://www.notion.so/metamask-consensys/Remove-Learn-more-on-the-wallet-recovery-screen-in-settings-and-the-R-in-the-title-should-be-low-23ef86d67d6880cca1dbd8d7158e42d7?v=211f86d67d68803c88d7000cfcf4f021&source=copy_link - Bug 6: https://www.notion.so/metamask-consensys/Remove-white-part-in-graphics-23ff86d67d6880459efec45fee8047e0?v=211f86d67d68803c88d7000cfcf4f021&source=copy_link - Bug 7: https://www.notion.so/metamask-consensys/Remove-back-button-from-Save-your-SRP-screen-23ff86d67d6880f29d78e0b25bf0897a?v=211f86d67d68803c88d7000cfcf4f021&source=copy_link - Bug 8: https://www.notion.so/metamask-consensys/Capitalise-G-and-A-in-Google-and-Apple-in-settings-23ff86d67d688043b81fe446fb9c8ba2?v=211f86d67d68803c88d7000cfcf4f021&source=copy_link - Bug 9: https://www.notion.so/metamask-consensys/Copy-issues-in-Forgot-your-password-screens-23ff86d67d68809b9eaef9e204509ccd?v=211f86d67d68803c88d7000cfcf4f021&source=copy_link ### **After** <!-- [screenshots/recordings] --> https://github.com/user-attachments/assets/f75f57e9-279e-4b64-a6eb-b9f21b713fa8 <img width="1076" height="1001" alt="Screenshot 2025-07-30 at 4 06 46 PM" src="https://github.com/user-attachments/assets/aebae079-3085-4bd3-bf1a-2b4a17c0e0c2" /> <img width="1065" height="979" alt="Screenshot 2025-07-30 at 6 53 44 PM" src="https://github.com/user-attachments/assets/e5442fba-1314-494f-9fb1-b023f2122a21" /> <img width="978" height="978" alt="Screenshot 2025-07-30 at 6 57 49 PM" src="https://github.com/user-attachments/assets/9a58402b-a26e-4bc1-9fe1-107265e0c801" /> <img width="550" height="966" alt="Screenshot 2025-07-30 at 7 18 31 PM" src="https://github.com/user-attachments/assets/b076a5cd-6009-43e6-94e2-6b07dd0fb042" /> <img width="1233" height="973" alt="Screenshot 2025-07-30 at 7 31 15 PM" src="https://github.com/user-attachments/assets/5f9b5d58-544f-4d87-8deb-de3cb88423ad" /> <img width="1044" height="1005" alt="Screenshot 2025-07-30 at 7 46 43 PM" src="https://github.com/user-attachments/assets/1250e2bb-e0a9-4a13-aa91-ff42746ba997" /> <img width="1019" height="987" alt="Screenshot 2025-07-30 at 7 48 50 PM" src="https://github.com/user-attachments/assets/1366eb11-acd1-4cb8-9bf7-c9141a67d5fd" /> <img width="547" height="1005" alt="Screenshot 2025-07-30 at 7 58 19 PM" src="https://github.com/user-attachments/assets/ffe1b2d1-a67f-4d71-8442-3ed93251a782" /> <img width="716" height="160" alt="Screenshot 2025-07-30 at 8 02 24 PM" src="https://github.com/user-attachments/assets/3873c3cb-afae-4258-81d3-526925aeefcd" /> <img width="1199" height="962" alt="Screenshot 2025-07-30 at 8 48 39 PM" src="https://github.com/user-attachments/assets/163f2d70-a197-4df1-bde2-00a2e007023f" /> <img width="1153" height="997" alt="Screenshot 2025-07-30 at 8 53 33 PM" src="https://github.com/user-attachments/assets/b6a1752c-8269-4e25-8d43-7b14ecd40462" /> ## **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** User is unable to see and trigger an upgrade across networks that are down on the list. <!-- 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: Fixed a but with scroll on new account details view ## **Related issues** Fixes: #17708 ## **Manual testing steps** 1. Have multiple 7702 networks in the wallet 2. Go into account details ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** https://github.com/user-attachments/assets/0a4a9fe5-6a2b-417e-a8a1-5c958cb1679b <!-- [screenshots/recordings] --> ### **After** https://github.com/user-attachments/assets/8eccca41-a0d2-4dc6-9250-4d5ce4e9fed5 <!-- [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 bumps `@metamask/profile-sync-controller` from `^21.0.0` to `^23.0.0`. ## **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: ## **Manual testing steps** 1. No manual testing steps ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [x] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [x] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> This PR helps to reset send flow when it's previously succeed. This prevents previous selected token is removed from redux state when another send flow is initiated. ## **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: #17126 ## **Manual testing steps** 1. Send ERC20 token 2. Switch networks 3. Click on send button 4. Notice the token sent at step 1 is not selected anymore ## **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/a648a8b1-e88c-49e2-b2a4-53340b5ed93f ## **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 the Card-related copy to the en.json file. ## **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** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
…7761) <!-- 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** Uses a separate end point to poll for user's kyc status so that rejected users can resubmit. <!-- 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** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --------- Co-authored-by: Pedro Pablo Aste Kompen <wachunei@gmail.com>
## **Description** Add option on send page to use max available amount of token for transfer, this works for native / ERC20 tokens. ## **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: MetaMask/MetaMask-planning#5434 ## **Manual testing steps** 1. Enable send re-designs locally 2. Click max button 3. Check that max available amount to token is filled in amount input ## **Screenshots/Recordings** <img width="399" height="850" alt="Screenshot 2025-07-28 at 10 09 51 AM" src="https://github.com/user-attachments/assets/6d4cba62-4362-4557-a149-c9c4f8af7ddd" /> ## **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: OGPoyraz <omergoktugpoyraz@gmail.com>
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> This PR implements the ability for users to close perpetual positions (TAT-1826) and introduces protocol-agnostic fee computation for the perps trading system. ### Key Changes: 1. **Close Position Feature** - Added new `PerpsClosePositionBottomSheet` component with market/limit order tabs - Integrated position size slider for partial/full position closing - Displays position P&L, effective margin, and closing percentage - Automatic TP/SL closure when position is closed - Success animations and feedback upon trade execution 2. **Protocol-Agnostic Fee Computation** - Created unified `usePerpsOrderFees` hook for centralized fee calculation - Added async `calculateFees` method to IPerpsProvider interface - Supports future volume-based discounts and user tier calculations - Separated protocol fees from MetaMask fees for transparency - Fixed incorrect HyperLiquid fee rates (0.045% taker, 0.015% maker) The protocol-agnostic fee system allows each provider to implement its own fee structure while maintaining a consistent interface. This sets the foundation for future enhancements like user tier discounts and staking benefits. ## **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 the ability to close perpetual trading positions with market or limit orders, including partial position closing and automatic TP/SL closure ## **Related issues** Fixes: TAT-1826 ## **Manual testing steps** 1. Navigate to the Perps trading screen and open a position 2. Tap the "Close" button on an open position 3. Test market order closing: - Select "Market" tab - Use slider to select partial amount (e.g., 50%) - Verify position size, effective margin, and P&L display correctly - Confirm and verify position is partially closed 4. Test limit order closing: - Select "Limit" tab - Set a limit price - Use slider to select full position (100%) - Verify order is placed correctly 5. Verify fees are calculated correctly: - Check that market orders show 0.045% fee - Check that limit orders show 0.015% fee (when acting as maker) 6. Verify TP/SL orders are automatically cancelled when position is closed 7. Verify success animation and Fox points display after closing ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> Users could only open positions but had no way to close them through the UI. ### **After** https://github.com/user-attachments/assets/a3196795-b60f-4362-ad43-7bab85ef4500 <!-- [screenshots/recordings] --> - Close position bottom sheet with market/limit tabs - Position size slider for partial closing - P&L and effective margin display - Success animations after closing ## **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: Nicholas Gambino <nicholas.gambino@consensys.net> Co-authored-by: Nick Gambino <35090461+gambinish@users.noreply.github.com>
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** Adds Perps eligibility state and fresh method to PerpsController. Also adds the `usePerpsEligibility` hook. <!-- 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 eligibility state and refresh method to Perps Controller and added `usePerpsEligibility` hook. ## **Related issues** Fixes: - TAT-1233: As a user, I can only use Perps if certain conditions are met ## **Manual testing steps** ## Testing 1. import `usePerpsEligibility` hook in any component to access current eligibility status and refresh eligibility. ## **Screenshots/Recordings** N/A ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [ ] 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** Moves quote validation/simulation to happen on quote fetch instead of on quote submission. <!-- 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** 1. Go to Solana swaps 2. Get quote that fails simulation or validation 3. See simulation or validation error and disabled submit button ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <img width="342" height="740" alt="Screenshot 2025-07-30 at 10 53 43" src="https://github.com/user-attachments/assets/b8603da6-2e83-4f1b-a42c-77b0e463d03b" /> <!-- [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.
…17571) This PR will fix #17498 issue found by QA regression test. The root clause of this issue is new camera component introduced by this [PR](#15363), the close icon has been covered by camera component, the only fix to make close icon above the camera is to put it outside the camera component Also, it was needed to fix parent view margin positions (done for both QR and Ledger) <!-- 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: #17498 ## **Manual testing steps** 1. Add hardware wallet (QR) 2. Import QR accounts 3. initiate a transaction 4. When confirm transaction screen is shown to scan the QR code, there should be an X to close the window, if the user wants to amend the transaction before confirming ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <img src="https://github.com/user-attachments/assets/b7c3ac58-7f43-42d5-97d2-4df13b667e5f" height="500"> <img src="https://github.com/user-attachments/assets/1545edb0-103b-45d3-b0f6-dede866ecb83" height="500"> <img src="https://github.com/user-attachments/assets/6a78dabe-a73c-4a58-935d-1c1b7e4ff321" height="500"> ### **After** <img src="https://github.com/user-attachments/assets/090a039d-5871-4bf2-8852-f021f35e4a33" height="500"> <img src="https://github.com/user-attachments/assets/bddb6d5b-d6fa-4836-90ef-c907b055faf9" height="500"> <img src="https://github.com/user-attachments/assets/b529f9c6-7cb2-401a-82ed-dc1978853b63" height="500"> ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [x] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [x] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --------- Co-authored-by: Sébastien Van Eyck <sebastien.vaneyck@consensys.net>
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** Add test results for E2E smoke testing suites <!-- 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? Improve test visibility for E2E smoke 2. What is the improvement/solution? Generate report attached in the Summary tab ## **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: https://consensyssoftware.atlassian.net/browse/INFRA-2792 ## **Manual testing steps** 1. Enable E2E smoke testing by adding `if: github.event.label.name == 'Run E2E Smoke Test'` to any of the testing suites, ie `"Confirmations Smoke (iOS)` at `.github/workflows/run-e2e-smoke.yml` 2. Create a PR 4. Add the label `Run E2E Smoke Test` to your PR 5. Once finished, check the reporting job `Summary` ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** https://github.com/MetaMask/metamask-mobile/actions/runs/16598106490 <!-- [screenshots/recordings] --> ### **After** <img width="905" height="1230" alt="image" src="https://github.com/user-attachments/assets/9413319d-9f8d-4ed8-92e8-f5ba5e9b45a3" /> ## **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 fixes when the pipeline fails, to explictly shows better the total time took on the test and an error message e2e pipeline to succeed https://app.bitrise.io/app/be69d4368ee7e86d/pipelines/fd645116-4a4c-42f8-95fc-219ad9d7d262 e2e pipeline to fail https://app.bitrise.io/app/be69d4368ee7e86d/pipelines/ecd53b16-7be8-40ea-8a6b-945817d18129 <!-- 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** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.3)
Can you help keep this open source service alive? 💖 Please sponsor : )