-
Notifications
You must be signed in to change notification settings - Fork 0
feat: disable automatic security check prompt #45
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
base: main
Are you sure you want to change the base?
Conversation
|
CLA Signature Action: Thank you for your submission, we really appreciate it. We ask that you all read and sign our Contributor License Agreement before we can accept your contribution. You can sign the CLA by just by adding a comment to this pull request with this exact sentence:
By commenting with the above message you are agreeing to the terms of the CLA. Your account will be recorded as agreeing to our CLA so you don't need to sign it again for future contributions to this repository. 42 out of 60 committers have signed the CLA. |
## **Description** On batched transaction page, Display tag with batched transaction count. ## **Related issues** Fixes: MetaMask/MetaMask-planning#4948 ## **Manual testing steps** 1. Enable 7702 locally 2. Submit 5792 transaction on test-dapp 3. Check tag with transaction count ## **Screenshots/Recordings** <img width="401" alt="Screenshot 2025-05-16 at 9 19 50 PM" src="https://github.com/user-attachments/assets/1bc5d556-fc13-4c92-90c1-effe6caf7a21" /> ## **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 <[email protected]>
…etaMask#15493) ## **Description** Fix updating blockaid validation result in batched confirmation ## **Related issues** Fixes: MetaMask/MetaMask-planning#4964 ## **Manual testing steps** 1. Enable 7702 locally 2. Submit a batched confirmation 3. Check that blockaid validation result is added to the confirmation ## **Screenshots/Recordings** NA ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
## **Description** When validating the balance in the legacy transaction confirmations, ensure the relevant chain balance is used, rather than the global network balance. ## **Related issues** ## **Manual testing steps** ## **Screenshots/Recordings** ### **Before** ### **After** ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
## **Description** Patches [changes](MetaMask/core#5726) on tokenBalancesController state update. PR does not introduce any new functionalities. ## **Related issues** Fixes: ## **Manual testing steps** 1. Import new accounts 2. You should be able to see tokens and balances correctly 3. Import new tokens and you should be able to see balances correctly 4. Remove an account 5. Check state in tokensController and tokenBalancesController, you should not see data for the deleted account ## **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: Nick Gambino <[email protected]>
…Mask#15647) <!-- 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? --> - Replaces the mock SDK calls with real ones via `useDepositSDKMethod` - Adds email validation and OTP code input validation - moves `email` state to the deposit context, available via `useDepositSDK` hook - refactors deposit translation object and adds missing translations - adds test cases and refactors test ## **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 <[email protected]> Co-authored-by: AxelGes <[email protected]>
…etaMask#15498) <!-- 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 "minimum version" awareness to the `bridge-config` feature flag selector. If minimum version is not met, a generic `disabled` config is returned. This PR introduces a patch for `BridgeController` as upgrading to [v26](https://github.com/MetaMask/core/blob/main/packages/bridge-controller/CHANGELOG.md#2600) also involves updating the following: - `MultichainTransactionsController` to `v1` - `AccountsController` to `v29` - `TransactionsController` to `v56` - `KeyringController` to `v22`. Since these would be significant cross-team efforts, in the interest of time, we've decided to use a patch instead. I've opened an issue to remove the patch and upgrade all required packages [here](https://consensyssoftware.atlassian.net/browse/MMS-2512?atlOrigin=eyJpIjoiYmVlMGI4ZGNlM2U4NDEyM2EzMjE5MzAxODQzZjQ4YTciLCJwIjoiamlyYS1zbGFjay1pbnQifQ). As of this writing: - [MultichainTransactionsController bumped to v1](MetaMask#15673) - [Ongoing efforts for Keyring and Accounts controller bumps](MetaMask#15356) <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> ## **Related issues** Fixes: https://consensyssoftware.atlassian.net/browse/MMS-2459 The patch branch: https://github.com/MetaMask/core/compare/patch-%40metamask/bridge-controller%4023.0.0-bridgeConfigV2 ## **Manual testing steps** 1. Adjust LD minimum version in `main-dev` to below the current app version 1. Try to go to Bridge 2. It should be disabled 3. Adjust LD minimum version in `main-dev` to the current app version 4. Try to go to Bridge 2. It should be enabled ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> https://github.com/user-attachments/assets/927fef49-06c9-4c9f-9d76-359f896cbcfe ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --------- Co-authored-by: IF <[email protected]>
…PC endpoints usage (MetaMask#15290) ## **Description** This PR implements GitHub [Issue MetaMask#2707](https://github.com/MetaMask/MetaMask-planning/issues/2707) by adding the ability to track what type of RPC endpoint users are connecting to in MetaMask Mobile. We now capture whether users connect to Ethereum using: - Infura provider (default) - Other providers (like tenderly.co or alchemy.com) - Private IP addresses - Localhost The implementation includes: - A utility function `extractRpcDomain` that parses RPC URLs and returns just the domain part - A domain categorization system that identifies known vs private endpoints - Extension of transaction metrics to include an `rpc_domain` property for all transaction events including "Transaction Submitted", "Transaction Approved", and "Transaction Finalized" - Integration with the NetworkController to retrieve the correct RPC URL for a given chain - **Fixed a bug where `rpc_domain` was missing from failed transaction events specifically** This data will allow us to better understand the most popular RPC endpoints and what percentage of users customize them, helping us optimize our UX accordingly. ### **Key Improvements** - **Consistent RPC domain tracking**: Fixed an issue where `rpc_domain` was missing from "Transaction Finalized" events, particularly for failed transactions - **Enhanced error resilience**: Added robust error handling to ensure the RPC domain is correctly extracted and included in all cases - **Transaction metrics consistency**: Ensured all transaction events have the same properties for better analytics comparisons - **Refactoring**: Of metrics.ts and useSafeChains.ts ### **Privacy and Security Considerations** - Only stores domains from well-known public RPC providers - Returns "private" for custom/unknown endpoints to protect user privacy - Uses locally cached chain data instead of making network requests - Works with Mobile's network settings and preferences ### **Implementation Notes** - Implementation follows the same approach used in the MetaMask Extension - Adapts the design to Mobile's architecture and controller structure - Includes proper error handling and edge case management - Enhanced `handleTransactionFinalizedEventForMetrics` to explicitly retrieve and include RPC domain information ### **Possible values for `rpc_domain`** - Public RPC provider domains: e.g., `mainnet.infura.io`, `eth-mainnet.alchemyapi.io` - Private/Custom endpoints: `private` - Invalid URLs (if encountered): `invalid` ## **Related issues** [MetaMask-planning - MetaMask#2707](https://github.com/MetaMask/MetaMask-planning/issues/2707) ## **Manual testing steps** Set up MetaMask Mobile with different RPC endpoints: 1. Default Infura provider 2. Custom provider (e.g., Alchemy) 3. Private IP/localhost Submit transactions on these networks and verify that the transaction metrics events include the correct `rpc_domain` property in the analytics data. Specifically test: - Submitted transactions - Approved transactions - Failed transactions - Completed transactions Verify that the `rpc_domain` is present and correct in all cases. ## **Screenshots/Recordings** **Submitting a Send:** <img width="807" alt="Screenshot 2025-05-27 at 10 44 56 AM" src="https://github.com/user-attachments/assets/e7feb1e4-df43-4c80-b021-ada3867b33c1" /> ```json "properties": { "chain_id": "0x1", "rpc_domain": "mainnet.infura.io", "smart_transaction_proxied": false, "smart_transaction_timed_out": false, "source": "MetaMask Mobile", "status": "confirmed", "transaction_envelope_type": "0x2", "transaction_internal_id": "a7108420-3b08-11f0-b0a1-5d6d0fa435b7", "transaction_type": "simple_send" }, ``` **Submitting a Swap:** <img width="250" alt="Screenshot 2025-05-21 at 6 01 30 AM" src="https://github.com/user-attachments/assets/92e5c0d5-c165-4610-b225-c502ba0aa729" /> **Data Sent to Metrics:** ```json { "name": "Transaction Finalized", "properties": { "chain_id": "0x1", "status": "confirmed", "source": "MetaMask Mobile", "transaction_type": "swap", "transaction_envelope_type": "swap", "rpc_domain": "mainnet.infura.io", "transaction_internal_id": "d0100642-7830-42c9-95bd-e209b04a3a1c" }, "sensitiveProperties": { "value": "0x5af3107a4000", "to_address": "0x881d40237659c251811cec9c364ef91dc08d300c", "from_address": "0x7e52459c31989ef14c7e61d5b3b03d0a8e6a5ba6" }, "saveDataRecording": true } ``` **Failed Transactions Case:** The `rpc_domain` property is now consistently included across all transaction statuses, and it correctly shows _**"mainnet.infura.io"**_ instead of **_"private"_** for the Infura domains, thanks to our updated `extractRpcDomain` function and updates to the `generateDefaultTransactionMetrics` function to remove the conditional logic that previously only added RPC domain information for 'submitted' or 'confirmed' transactions. <img width="250" alt="Screenshot 2025-05-27 at 10 50 21 AM" src="https://github.com/user-attachments/assets/22326e9f-ee19-4b8a-b923-fb5569b58832" /> <img width="250" alt="Screenshot 2025-05-21 at 8 31 57 AM" src="https://github.com/user-attachments/assets/8a695ba1-f7e7-4d2f-a526-17692aae92ad" /> https://github.com/user-attachments/assets/f77f5cbf-057a-4d31-a219-46c42274caec ``` LOG METRICS BEING SENT - properties: { "chain_id": "0x1", "status": "failed", "source": "MetaMask Mobile", "transaction_type": "contractInteraction", "transaction_envelope_type": "contractInteraction", "error": "Error: Returned error: execution reverted", "rpc_domain": "mainnet.infura.io", // This is now included "simulation_response": "transaction_revert", "simulation_latency": 0.092, "simulation_receiving_assets_quantity": 0, "simulation_receiving_assets_type": [], "simulation_receiving_assets_value": [], "simulation_sending_assets_quantity": 0, "simulation_sending_assets_type": [], "simulation_sending_assets_value": [], "transaction_internal_id": "7ff9afcb-2eee-11f0-9207-cdd28454b630" } ``` ### **Before** N/A ### **After** * See Above screenshots and proof of data being sent to MetaMetrics ## **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: OGPoyraz <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Nico MASSART <[email protected]>
…ask#15693) <!-- 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 specifies shorter date formates for the dates shown on the Bridge transaction details page. <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to swaps 2. Submit swap 3. Go to tx activity page 4. Select bridge tx 5. See shortened date strings ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before**  <!-- [screenshots/recordings] --> ### **After** <img width="347" alt="Screenshot 2025-05-26 at 16 58 27" src="https://github.com/user-attachments/assets/deea24d6-05a1-405f-b33d-03a5a7b19ef9" /> <!-- [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.
…ccounts cp-7.47.0 (MetaMask#15695) ## **Description** This PR fixes a bug where the QR account details/receive were adding the prefix ethereum:<public address>. This is meant to handle deeplinking but since we do not support deeplinking on Solana this would simply just break. Instead, for sol accounts, we should simply not render this prefix. This is the same behaviour that we have on extension. ## **Related issues** Fixes: MetaMask#15395 Resolves https://consensyssoftware.atlassian.net/browse/MUL-238 ## **Manual testing steps** 1. You need to run the app on a physical device to test this change. The easiest way to do this is with expo and an Android phone. See the metamask readme for instructions. 2. import the wallet 3. create a solana account either with the popup or by selecting the account selector, clicking add new account or hardware wallet and selecting solana 4. once your solana account is created and set as the current account, click on the scan icon at the top of the wallet view beside your account name 5. this will open the camera, allow the permissions and then click on your account 6. a qr code with your solana public address should appear 7. scan the qr code with another phone. 8. the qr code should NOT have the `ethereum:` beside the address 9. then go back to the wallet view 10. click on the blue actions button in the middle of the bottom tab menu 11. click on Receive, again, a qr code should render 12. scan this qr code with another phone and notice that it DOES NOT have the ethereum prefix before the public address. 13. Repeat the above steps but change your selected account to an ethereum account 14. the ethereum prefix should be present. If you have metamask installed, it should prompt you to deeplink into the app (this prefix is used for deeplinks) ## **Screenshots/Recordings** ### **Before** <image src="https://github.com/user-attachments/assets/6a1c9323-ca72-4923-a09f-c6fbe3117bdb" height="500" width="300"/> <image src="https://github.com/user-attachments/assets/465a3485-36bc-4085-a9cb-86e178421ff8" height="500" width="300"/> ### **After** <image src="https://github.com/user-attachments/assets/8d77ade6-0ee0-4441-8c49-9b3c89609e98" height="600" width="300"/> <image src="https://github.com/user-attachments/assets/12940113-2c0c-4eb8-af72-2c461ac66936" height="600" width="300"/> #### Ethereum still contains the correct prefix <image src="https://github.com/user-attachments/assets/f626a620-a8f6-46af-a8b7-6109f06d632e" height="600" width="300"/> ## **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 brings Solana Dapp Connectivity via Multichain API to Metamask Mobile. <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> ## **Related issues** MetaMask/MetaMask-planning#4914 Related extension changes: MetaMask/metamask-extension#29887 ## **Manual testing steps** - Run this in a flask build - Create Solana Accounts - Go to the [Multichain Test Dapp](https://metamask.github.io/test-dapp-multichain/latest/) (which now supports Solana!): [Video Demo of Testing with the Test Dapp](https://github.com/user-attachments/assets/5e974f2d-c1ae-4ca7-95a9-8455bf297f36) ## **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: Jiexi Luan <[email protected]> Co-authored-by: Alex <[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** The token chart are failing but on Bitrise but we don't know the cause. While we investigate the issue I am moving these tests to quarantine ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [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). - [x] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [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.
…rice overview (MetaMask#15711) ## **Description** We were not providing the correct type when rendering the price overview. E.g. we were passing in '1697241014535' when it expects a number/Date. (new Date('1697241014535').valueOf() is NaN) ## **Related issues** Fixes: MetaMask#15596 ## **Manual testing steps** See issue repro steps 1. Select Solana Asset 2. Scrub the price overview chart 3. Expected - no NaN prices that causes the UI to jump. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** https://www.loom.com/share/ec5b401b633f424187edc735ba9fbdc1?sid=55665c97-ae97-439a-9713-8890b62e2b05 ### **After** https://www.loom.com/share/9f5d0a2a2eae47c0bfc595f146371b76?sid=45089be5-fd7e-4e0d-9c9d-d0535ffb8df6 ## **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** Reduces re-renders from the `useMetrics` hook. React Compiler will help somewhat by preventing children from rendering, however it does not prevent components that consume hooks from re-rendering. [Example react compiler playground](https://playground.react.dev/#N4Igzg9grgTgxgUxALhAHQHYHosAIASEEA1rgIy4CWYuGEALrhAA72UC21CAJgDRWMA7pQA2I3DAT1YGXAENaCQUwBGAKwRx6mHLgAqAC2q5hY3HDlQwCXPQM24EdswgYEGRnbmMrCGnZsDIlJ6CAl3bgQYHTwAIShPe3MjEW5JWVNxOkZ0yOi3AA8XGEYAMygMLUpXXF8AWQBPQhIyAAoASlxgTFxw6RhZbtle3FKiZFwAchU5GEme3ABfTGWMGIJg3AAmKhoWNk5rbnWA81cwKE4MAHMz51d3RjkMbmTRNPcTUSyGcJeo9alGBOWxGGhBEiYBBFCAlUYVKo1epNYJbDpdBaSfqyeoIdgQVrogC8AD5cK0hiNRuMpjM5gtFu1+ABtAC67RWmChMLhkVKlhEZQRbBqjQAgsxmOjKWcMGBGMBqRAJmMIBRFrgibVrI1msQ2hzho45QqlSqiDsNVrkXq0YbeliZLgADzcSgANxJC16ro9JPwCDEYQA6rDUs6sG7Pd6XXo-PQAMJOFxuDy2eNE4CqsgarBe4Y+uPypP3VOeDNZi25-M+yN+gDcnLWGHKlRFsiLieTDw8FPT8qWnRljoGLqjJOA9Hjiwj45WIEWQA). I'm not saying we should do this for all hooks (this is an over optimisation). However this hook is used everywhere, and did help reduce 1 render cycle on this PoC performance PR: MetaMask#15634 ## **Related issues** Fixes: ## **Manual testing steps** N/A ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
<!-- 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** Makes "continue" button context aware, displaying "Confirm Swap" or "Confirm Bridge" for EVM networks and "Continue" for Solana. <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to EVM bridge 2. Get quotes 3. See button says "Confirm Bridge" instead of "Continue' ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before**  <!-- [screenshots/recordings] --> ### **After** <img width="355" alt="Screenshot 2025-05-27 at 15 55 14" src="https://github.com/user-attachments/assets/390c8068-2beb-4b46-92e5-68ae0b697e4a" /> <!-- [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.
…aMask#15652) <!-- 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? --> Adds the verify identity page to the deposit flow which is rendered after the email OTP. Eventually, this page will need to be dynamically rendered depending on the Transak user properties. For now this will add the verify page as part of the MVP UX.  ## **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 <[email protected]> Co-authored-by: AxelGes <[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** Bumps `@metamask/solana-wallet-snap` to version `1.30.4`. ## **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: Nico MASSART <[email protected]>
This commit modifies the `bitrise.yml` file by re-enabling the `run_ios_api_specs` workflow while commenting out several other workflows related to smoke tests for iOS and Android. This change is part of ongoing adjustments to the CI/CD pipeline. <!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> ## **Related issues** Fixes: MetaMask#14523 ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
## **Description** This pull request removes the `isLinkSafe` utility function and its associated logic, tests, and references. This logic to remove malicious links has been moved to the core repo inside the nft controller in this PR MetaMask/core#5598 ### Removal of `isLinkSafe` functionality: * Removed the `isLinkSafe` function from `app/util/linkCheck.ts`, along with its dependencies on `Url`, `is-url`, and `phishingDetection`. This eliminates the logic for checking link safety based on protocols, domains, and phishing detection. * Deleted the corresponding test file `app/util/linkCheck.test.ts`, which contained unit tests for the `isLinkSafe` function. <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** This PR fixes a check for cases there are no quotes and no custom actions available in the ramps feature. ## **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.
…etaMask#15623) ## **Description** **Issue:** When a dapp is requesting permissions for a network that hasn't been given yet, the flow enters what looks to be a broken state to the user. The functionality works but the user experience is degraded. **Solution:** Give the component options to opt out of the tab view and only show the account permissions or the network permissions. So when the user is prompted to give permissions to a network, they are only shown the network permissions view ## **Related issues** Fixes: MetaMask#15619 ## **Manual testing steps** 1. Goto https://pancakeswap.finance/ 2. Enable all networks except 1 network (or several doesn't matter) 3. Click update 4. In pancake swap click on a network that doesn't have permissions 5. The view with the broken state will apepar ## **Screenshots/Recordings** | Before | After | |:---:|:---:| ||| ### New Props When the new props`showAccountsOnly` is `true` <img src="https://github.com/user-attachments/assets/b52b59b4-ecdd-4946-b2cc-75f1bf2b5bea" width="375"> When the new props`showPermissionsOnly` is `true` <img src="https://github.com/user-attachments/assets/09ac64e8-9349-4f54-8134-ee3a407507a0" width="375"> When both are `true`. Accounts are 0 because there aren't any account props passed. This is just an example of what it would look like <img src="https://github.com/user-attachments/assets/c7c00052-1d82-4d74-a947-3e3475527672" width="375"> ### **Before** NA ### **After** NA ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [x] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [x] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** This PR adds the `pre-release` build as an exclusion for the `isTest` variable that enables test features in the app. ## **Related issues** Fixes: ## **Manual testing steps** 1. Build a pre-release build 2. See that it doesn't include test features ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** Build: https://app.bitrise.io/build/13e63a86-2b26-4f52-8e61-3aed43fb3f4c ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** This PR adds end-to-end tests for key Solana functionality, including the **Create Account** and **Send Token** flows across both iOS and Android. ### Coverage & Changes #### Create Account Flow - Creates a Solana account via the **new feature sheet** - Creates a Solana account from the **Add Account modal** - Renames Solana accounts - Switches between multiple Solana accounts - Utilises fixtures for core Solana flows - Adds `testID`s to relevant Snap components and Solana-specific UI elements #### Send Token Flow - Imports wallet using `importWalletWithRecoveryPhrase` - Creates a Solana account - Validates recipient address - Sends SOL tokens and confirms success ### Implementation Notes - **Fixtures** are used in the create account flow tests - The **send token flow uses an imported SRP** via environment variable, as Solana testnet support is not yet available - A **mainnet account with funds** is used for send tests - Snap updates <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> ## **Related issues** Fixes: https://consensyssoftware.atlassian.net/browse/MMQA-529 Fixes: https://consensyssoftware.atlassian.net/browse/MMQA-529 ## **Manual testing steps** Local test runs [](url) ## **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/a9f29399-f025-477b-8110-0d1d8e960139 ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] 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: Jyoti Puri <[email protected]>
…aMask#15642) ## **Description** This PR removes design and tech debt by cleaning up unused icon assets and modernizing the SmartAccountUpdateSplash component implementation. **What is the reason for the change?** - The previous implementation in PR MetaMask#15355 added new filled icon variants (SpeedometerFilled, SparkleFilled, PetrolPump) when existing icons could be used - The component was using the older Icon component instead of the modern AvatarIcon component - Unused SVG assets were taking up space in the codebase **What is the improvement/solution?** - Removed 3 unused SVG files and their corresponding imports/enum entries - Replaced Icon component with AvatarIcon component for better design consistency - Updated icon names to use existing variants: SpeedometerFilled → Speedometer, PetrolPump → Gas, SparkleFilled → Sparkle - Added proper theming support with useTheme hook - Improved component structure by converting ListItem from arrow function to proper function component ## **Related issues** Fixes: N/A ## **Manual testing steps** 1. Navigate to a confirmation flow that triggers the Smart Account Update Splash 2. Verify that all three list items display with correct icons (speedometer, gas pump, sparkle) 3. Confirm that icons use proper theming (primary color with muted background) 4. Test in both light and dark themes to ensure proper color application 5. Verify that icon functionality and accessibility remain unchanged ## **Screenshots/Recordings** ### **Before** - Used filled icon variants (SpeedometerFilled, SparkleFilled, PetrolPump) - Used basic Icon component without proper theming - Extra SVG files in codebase <img width="398" alt="Screenshot 2025-05-15 at 3 36 37 PM" src="https://github.com/user-attachments/assets/e04a2658-19fa-4d2f-ba54-ad383c06ab24" /> ### **After** - Uses standard icon variants (Speedometer, Gas, Sparkle) - Uses modern AvatarIcon component with proper theming - Cleaner codebase with removed unused assets <img width="447" alt="Screenshot 2025-05-24 at 10 26 23 AM" src="https://github.com/user-attachments/assets/2d95298c-2ae3-47d8-97e2-e41f1f10a363" /> ## **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.
…ser only once. (MetaMask#15705) ## **Description** Smart account upgrade splash page should be displayed for the user only once. ## **Related issues** Fixes: MetaMask/MetaMask-planning#5001 ## **Manual testing steps** 1. Enable 7702 locally 2. Go to test dapp and submit 5792 send calls 3. Acknowledge splash page, but cancel confirmation 4. Submit the request again and check that splash page is not displayed ## **Screenshots/Recordings** NA ## **Pre-merge author checklist** - [X] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [X] I've completed the PR template to the best of my ability - [X] I’ve included tests if applicable - [X] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [X] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] 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.
…MetaMask#15998) <!-- 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 is a directory restructure of the ramp directory to include both the Deposit and Aggregator experiences. These experiences are developed by the ramp-dev-team and there will be a number of shared components, hooks, files, utils, and data. This restructure will make it more clear which components are shared between these experiences. This issue is an example of the need for such a change. Utils/components etc that are scoped inside of ramps should not be used outside of the experience directory: MetaMask#13020 key changes: - Ramps files have been moved to `/Ramps/Aggregator` - Deposit files have bee moved to `/Ramps/Deposit` Follow up: - Move shared files into the `/Ramps` directory, one level up from `/Aggregator` and `/Deposit` <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] 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 <[email protected]>
… engine bug. (MetaMask#16031) <!-- 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 will fix the issue MetaMask#15487 Basically the main cause of this bug is from hermes engine facebook/hermes#1495 TypedArray in hermes has been spec compliant and break the Buffer code. please refer to above issue record for detail. In order to minimise the impact to other area with system, i have discussion with Tomas and only apply patch to ledgerhq/hw-eth-app library. the way to fix it is to use Buffer wrapper to convert TypedArray back to Buffer so that toString('hex') will work again. this fix will make sure iOS and android have same behaviour aslo have following following benefit. This PR also upgrade all bluetooth libraries and ledgerhq libraries to latest to prevent old versions of libraries may have impact to system. The Buffer.from() wrapper ensures that: * Consistent behavior: Both iOS and Android will now produce proper hex strings instead of byte arrays * Hermes compatibility: This bypasses the Hermes engine's broken subarray() inheritance behavior * No performance impact: Buffer.from() with a TypedArray is very fast as it doesn't copy data, just creates a new view * Backward compatibility: Works on both old and new JavaScript engines <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> ## **Related issues** Fixes: MetaMask#15487 ## **Manual testing steps** Need to retests all ledger flow in both iOS and Android. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [x] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [x] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --------- Co-authored-by: Copilot <[email protected]>
…#16019) ## **Description** Displaying nested transaction data in advance section ## **Related issues** Fixes: MetaMask/MetaMask-planning#5069 ## **Manual testing steps** 1. Go to test dapp 2. Submit 5792 send request 3. Check nested transaction data in advance section ## **Screenshots/Recordings** https://github.com/user-attachments/assets/0c064023-2414-48d4-a879-a87cc30b592d ## **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 network logo for `Katana network`.
## **Related issues**
Fixes:
## **Manual testing steps**
1. Open the app
2. Click on the Networks dropdown menu on the top left corner
3. Click on `Add a custom network`
4. Fill in the RPC information for Katana:
Name: Katana
ChainId: 747474,
Symbol: ETH,
RPC (temporary):
https://rpc-katana.t.conduit.xyz/BrEMKtZpcC8zqdMB9McEZg49crMVPJcto
6. The icon should show correctly
## **Screenshots/Recordings**
<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->
### **Before**
### **After**
## **Pre-merge author checklist**
- [x] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
Extension Coding
Standards](https://github.com/MetaMask/metamask-extension/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-extension/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 adds Solana Wallet Standard to the in-app browser. ## **Related issues** Extension PR: MetaMask/metamask-extension#31705 ## **Manual testing steps** 1. Run a flask build a. `yarn setup:flask && yarn start:ios:flask` b. `yarn watch`, then press `i` and open MetaMask Flask 3. Navigate to https://metamask.github.io/test-dapp-solana/latest/ 4. Connect with MetaMask ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** ### **After**   ## **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.
…licked (MetaMask#16032) <!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** Currently clicking the "switch" button when bridging will break the quotes. This fixes that by ensuring the destination chain ID is properly set. <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this bridge 2. Get quote 3. Switch tokens 4. Get quote ## **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/322c17ed-6a13-4b67-bd31-d517f3495ab0 <!-- [screenshots/recordings] --> ### **After** https://github.com/user-attachments/assets/f2968aab-ade1-4dbd-a0b2-cdadc4d588ab <!-- [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** Add logos for Genesys. <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> ## **Related issues** Fixes: ## **Manual testing steps** 1. Open extension 2. Go to https://chainlist.org/ 3. Add the network Genesys 4. After accepting, It should add the network to your MetaMask 5. The network icon should show correctly ## **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.
…entBalance (MetaMask#16063) <!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** The useIsInsufficientBalance hook currently breaks when attempting to parse an amount with more decimals than the decimals of the token. This PR adds a safety check to validate decimals before parsing. <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> ## **Related issues** Fixes: MetaMask#16062 ## **Manual testing steps** 1. Select a Solana account 2. Go to swaps 3. While SOL token is selected as source input the amount "0.123123123" 4. Switch the source token to USDC or PONK ## **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? --> ## **Related issues** Removes extra 8 px padding for simulations in staking deposit ## **Manual testing steps** N/A ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [X] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [X] I've completed the PR template to the best of my ability - [X] I’ve included tests if applicable - [X] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [X] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
## **Description** Adding alerts for un-used approvals in batched confirmations. ## **Related issues** Fixes: MetaMask/MetaMask-planning#5047 ## **Manual testing steps** Detailed here: MetaMask/metamask-extension#33237 ## **Screenshots/Recordings** TODO ## **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: Vinicius Stevam <[email protected]>
…k#15595) <!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** This PR adds the ability for a user to create an Ethereum or Solana account in the dapp connection flow. Changes: 1. `AccountConnectMultiSelector` 2. Added `AddAccount` bottom sheet to the `AccountConnect` flow 3. Updated `AddNewAccount` to be a component and created a bottom sheet for it to be accessible. 4. `MultichainWalletSnapClient` now returns an account when calling createAccount 5. `actions/multiSrp` how returns an InternalAccount instead of void when creating a hd account. <!-- 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? 6. What is the improvement/solution? --> ## **Related issues** Fixes: https://consensyssoftware.atlassian.net/browse/MUL-153?atlOrigin=eyJpIjoiMmI1Yzk3NGU1YjJmNDhhZjg2YTI0Y2E0ODU4MTIzNWUiLCJwIjoiaiJ9 ## **Manual testing steps** 1. Open the [test dapp](https://metamask.github.io/test-dapp-multichain/latest/) 2. Click on a scope and then create a session 7. Click edit accounts. 8. See that there is an add account option. 9. Create a eth and solana account. ## **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/ee59681c-a3d5-4ff7-8522-9a58153cc165 ### **After** https://github.com/user-attachments/assets/3118615f-8b99-42b4-b803-64b6e102f595 <!-- [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? --> 1.3 Update New SRP onboarding flow as per figma design https://www.figma.com/design/pViOUcmjwhEzFsdrwknpNc/Onboarding-redesign?node-id=434-55200&t=wmEoQSF9g9lFtkwp-0 This PR is part 3 of 7 for the new SRP ui update This PR cover - new ui create srp - new ui for import srp ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> https://github.com/user-attachments/assets/a4e8578a-63a1-4393-8237-ef2b339a34bd ## **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: smgv <[email protected]> Co-authored-by: Chaitanya Potti <[email protected]> Co-authored-by: hieu-w <[email protected]> Co-authored-by: hieu-w <[email protected]> Co-authored-by: tommasini <[email protected]>
…#16011) <!-- 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 loading indicator while the balance is being fetched, instead of showing `undefined`. <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> ## **Related issues** Fixes: MetaMask#15396 ## **Manual testing steps** 1. Go Account list 2. check the balance **in order to reproduce , you can test on android and create a slow device emulator, then add a new Solana account** ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> <img width="590" alt="Screenshot 2025-06-03 at 10 52 41" src="https://github.com/user-attachments/assets/614d2ce0-5232-4a10-8d18-40de9db8b253" /> ### **After** <!-- [screenshots/recordings] --> <img width="381" alt="Screenshot 2025-06-03 at 10 52 34" src="https://github.com/user-attachments/assets/3069e841-12b5-4474-b218-7077baa0b3ba" /> ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
…etaMask#16045) ## **Description** **Problem**: Bitcoin networks were appearing in main/beta builds where they should be hidden. The `selectNonEvmNetworkConfigurationsByChainId` selector was not properly code fenced, causing Bitcoin to show up **Solution**: Implemented proper conditional compilation using code fencing to ensure Bitcoin networks are only included when the bitcoin feature is enabled ## **Related issues** Fixes: ## **Manual testing steps** 1. run `yarn clean && yarn setup` and observe during the permissions flow that BTC doesn't exist ## **Screenshots/Recordings** ### Main build <img src="https://github.com/user-attachments/assets/72895849-23ef-44c3-b378-1bee60c840e8" width="350" > ### **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** - [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 aims to adjust e2e tests and infrastructure. **E2e tests changes:** - Adds `e2e/specs/confirmations-redesigned/transactions/wallet-initiated-transfer.spec.js` - Basic send flow e2e tests - Use max e2e test - Adds `e2e/specs/confirmations-redesigned/transactions/dapp-initiated-transfer.spec.js` - EIP1559 transfer button in test-dapp - Adds `e2e/specs/confirmations-redesigned/transactions/contract-interaction.spec.js` - Basic ERC721 mint interaction - Re-enable skipped security alert API e2e **Infrastructure changes:** - Remove section ids as we are using "rows" now - Rename existing sections into rows. - Add `ignoreFields` support to `mock-server` in case if we want to ignore fields from request - this gives us flexibility of mocking requests. ## **Related issues** Fixes: MetaMask/MetaMask-planning#4874 Fixes: MetaMask#15726 ## **Manual testing steps** N/A ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [X] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [X] I've completed the PR template to the best of my ability - [X] I’ve included tests if applicable - [X] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [X] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
<!-- 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** Solana account discovery failure was breaking the entire wallet creation/restoration flow, causing users to get locked out and restart onboarding. **Key Changes:** 1. Non-blocking Discovery: Solana account discovery now runs asynchronously and can't break wallet creation 2. Automatic Retries: Built-in exponential backoff retry (3 attempts, up to 10s delay) 3. Persistent Retry: If all immediate retries fail, it stores a flag and retries on next app unlock 4. Clean Success: Removes retry flags when discovery succeeds ## **Related issues** Fixes: MetaMask#15965 Jira ticket: https://consensyssoftware.atlassian.net/browse/MUL-251 ## **Manual testing steps** 1. Import SRP with multiple accounts with funds 2. Type the new password 3. Password screen should not appear 4. If only 1 accounts has been created, after few seconds other accounts should be restored as well ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
## **Description** PR if doing some refactoring of origin-throttling spam detection and also enable it for `wallet_sendCalls`. ## **Related issues** Fixes: MetaMask/MetaMask-planning#5024 ## **Manual testing steps** 1. Enable 7702 locally 2. Submit 5792 request 3 times and reject it 3. Check the origin throttling modal appears ## **Screenshots/Recordings** <img width="401" alt="Screenshot 2025-05-30 at 11 40 55 AM" src="https://github.com/user-attachments/assets/967c4307-3299-4d74-bd5b-c151e03aaa0d" /> ## **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.
Crash on Android was fixed in the PR MetaMask#15544 To make this E2E test work I had to update **fixtures** with an empty **favourites** array for the browser. Otherwise, app is throwing an error **[MetaMask DEBUG]: Error fetching or caching favicon: [TypeError: Cannot read property 'find' of undefined]** and not loading SVG icons. Additionally, I have to turn off **testSpecificMock**. If it's turned on, we load SVG icons via mockServer (http://10.0.2.2:8000/proxy?url=https://app.ens.domains/favicon.svg) and this url returns incorrect Content-type header **text/html** which is filtered out in the patch (react-native-svg+15.11.2.patch, line 16), but in prod app we load URL https://app.ens.domains/favicon.svg which returns Content-type **image/svg+xml** I added E2E test for it which fails if Icon is not loading or if App is crashing. Video: https://github.com/user-attachments/assets/2efa7fac-83e6-4f3d-a72c-4b8670984784 ## **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.
## **Description** Uses the shortened currency symbol to provide consistency throughout the app. This was only visible since I am testing under an `en-GB` locale. ## **Related issues** Fixes: ## **Manual testing steps** 1. force change the device locale (or move to the UK) 2. Open app 3. Expected - we are using `$xx.yy` and not `UX$xx.yy` throughout the app. There should be currency consistency. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **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.
…hen the app start (MetaMask#15977) <!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> ## **Related issues** Fixes: MetaMask#14504 ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
## **Description** ## **Related issues** Fixes: MetaMask#13784 **You will notice that this gracefully handles both the `UrlAutocomplete` issue with bottom of results being cut off, and also the WebView input UI glitch. ## **Manual testing steps** 1. Open MM mobile app 2. Go to WebView 3. Go to https://portfolio.metamask.io 4. Click upper-right "hamburger" icon 5. Click "Send" 6. Click on the "to" field to focus it 7. Check UI ## **Screenshots/Recordings** ### **Before** https://github.com/user-attachments/assets/294561e9-0619-4a24-81b9-2efbf6c5b0ca ### **After** iOS: https://github.com/user-attachments/assets/ff07109f-58e6-47db-9dce-bab927d5da90 Android: https://github.com/user-attachments/assets/5103a521-4239-460d-8cc8-5cd22dd341c9 ## **Pre-merge author checklist** - [X] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [X] I've completed the PR template to the best of my ability - [] I’ve included tests if applicable - [X] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [X] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
…etaMask#16038) ## **Description** This PR fixes a bug where users were automatically redirected to the "Accounts" tab after editing network permissions, instead of staying on the "Permissions" tab they were originally viewing. The fix is just adding the state for tab in the parent component. I have also improved and added tests to the permission summary tests ## **Related issues** Fixes: MetaMask#15875 ## **Manual testing steps** 1. Connect to any dapp 2. Click on the top right (the account icon) 3. Manage your permissions by editing the accounts/networks connected 4. Click accept or back and observe you're in the correct tab as before ## **Screenshots/Recordings** NA ### **Before** https://github.com/user-attachments/assets/aaa3f06f-cfc7-47e4-9685-6b21c444df3a ### **After** https://github.com/user-attachments/assets/48e88309-3f36-45a5-aae7-452358a7bd07 ## **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.
We're working on adding new Workflows to Bitrise to support more granular customisation of builds for Android and iOS. Ticket: MetaMask#15565 Target state: https://docs.google.com/spreadsheets/d/1tj3Pi2RpOmGs0cnQfv219khs7JSyzW8Raz7eHXlGBqE/edit?pli=1&gid=0#gid=0 In this PR I've added only 6 workflows, below you can find examples of their runs: 1. build_ios_main_prod https://app.bitrise.io/build/665389f1-a3bb-4651-a44d-ed7899092416 2. build_ios_main_beta https://app.bitrise.io/build/e318e232-8eb4-401b-b134-0510ffe1387d 3. build_ios_main_rc https://app.bitrise.io/build/96cca5c2-a0d0-44df-8684-4180fe0820d9 4. build_android_main_prod https://app.bitrise.io/build/1c657bf4-8a94-4c85-ac91-01e6f28c97d1 5. build_android_main_beta https://app.bitrise.io/build/2c9339e9-b4dd-49c6-b7e2-44b05695ed38 6. build_android_main_rc https://app.bitrise.io/build/e56fb2e7-242f-46e0-a591-17254679be58 ## **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.
…15653)" (MetaMask#16107) <!-- 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 reverts commit 5d87b79. MetaMask#15653 This PR is causing e2e failures on our main pipeline. ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
<!-- 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 sets the Deposit SDK Environment ## **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.
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> ## **Related issues** Fixes: MetaMask#15267 ## **Manual testing steps** 1. Go to import token page 2. go to custom import 3. click on select network then try to scroll ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> https://github.com/user-attachments/assets/441e7fd0-05eb-4f27-a3c3-6f7163f4cbd7 ## **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** There's a flaky test that makes smoke runs to fail, I'm putting this in quarantine until we have time to check and fix this issue. ## **Related issues** Fixes: Fails in smoke runs ## **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.
| } | ||
| // Special case for Infura subdomains - always return the actual domain | ||
| // even if not in the known domains list | ||
| if (domain.includes('infura.io')) { |
Check failure
Code scanning / CodeQL
Incomplete URL substring sanitization High
infura.io
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix
AI 7 months ago
To fix the issue, replace the substring check domain.includes('infura.io') with a more robust validation that ensures the domain is either infura.io or a valid subdomain of infura.io. This can be achieved by checking if the domain ends with .infura.io and ensuring there is no trailing dot before the suffix. This approach prevents arbitrary hosts from being incorrectly identified as valid subdomains.
Changes to make:
- Replace the
domain.includes('infura.io')check with a validation that usesdomain.endsWith('.infura.io')or checks for exact matches withinfura.io. - Ensure that the domain is not malformed (e.g.,
evil-infura.io.example.com).
-
Copy modified line R130
| @@ -129,3 +129,3 @@ | ||
| // even if not in the known domains list | ||
| if (domain.includes('infura.io')) { | ||
| if (domain === 'infura.io' || domain.endsWith('.infura.io')) { | ||
| return domain; |
| return domain; | ||
| } | ||
| // Special case for Alchemy subdomains | ||
| if (domain.endsWith('alchemyapi.io')) { |
Check failure
Code scanning / CodeQL
Incomplete URL substring sanitization High
alchemyapi.io
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix
AI 7 months ago
To fix the issue, the code should validate the domain against an explicit whitelist of allowed hosts, ensuring that only legitimate domains are accepted. This involves replacing the domain.endsWith('alchemyapi.io') check with a comparison against a predefined list of trusted Alchemy domains. The fix should also ensure that the domain variable is parsed correctly to extract the host component, avoiding substring-based checks.
Steps to implement the fix:
- Define a whitelist of allowed Alchemy domains (e.g.,
['alchemyapi.io']). - Replace the
domain.endsWith('alchemyapi.io')check with a validation against the whitelist using strict equality. - Ensure that the
domainvariable is parsed correctly to extract the host component before performing the validation.
-
Copy modified lines R134-R135
| @@ -133,3 +133,4 @@ | ||
| // Special case for Alchemy subdomains | ||
| if (domain.endsWith('alchemyapi.io')) { | ||
| const allowedAlchemyDomains = ['alchemyapi.io']; | ||
| if (allowedAlchemyDomains.includes(domain)) { | ||
| return domain; |
Description
This pr remove the enable automatic security check option in the security settings and hide/disable the check prompt on login addressing issue ##
This will resultant the minimum version will always been checked.
Another pr will remove all the logics and metrics
Related issues
Fixes:
Manual testing steps
Screenshots/Recordings
Before
After
Pre-merge author checklist
Pre-merge reviewer checklist