Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: get
supportedChains
to avoid blocking the confirmation process (…
…#28313) <!-- 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 addresses the blocking behaviour in the confirmation process caused by the synchronous `supportedChains` check. Previously, the Send flow was halted until a response from the `security-alerts.api.cx.metamask.io` API was received. This created delays and negatively impacted the user experience, especially when the API response was slow. **Key Changes:** **Asynchronous Chain Validation:** The `supportedChains` check is now performed asynchronously within the non-awaited `validateRequestWithPPOM` function. This ensures that the Send flow is not blocked while waiting for the API response. **Introduction of CheckingChain Result Type:** A new result type, `CheckingChain`, is introduced to represent the intermediate state before a definitive result is obtained. This state is used before the `loading` status in both middleware and transaction utility functions. <!-- 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? --> [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/28313?quickstart=1) ## **Related issues** Fixes: #28255 #28257 ## **Manual testing steps** 1. Use a proxy to intercept requests 2. Start a Send flow 3. Intercept the request to `security-alerts.api.cx.metamask.io` 4. See send flow cannot be initiated until we have a response to this request ## **Screenshots/Recordings** [supported-chains-.webm](https://github.com/user-attachments/assets/4e9e495a-10f3-4bb1-8d05-8045a735b655) [unsupported-chains.webm](https://github.com/user-attachments/assets/e5767bc1-2eab-44bd-83c3-777d34c23ff6) <!-- 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 Extension Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.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/develop/.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.
- Loading branch information