[pull] main from MetaMask:main#452
Merged
Merged
Conversation
## **Description** Initial support for `Max` button in MetaMask Pay, specifically Perps deposit and MUSD conversion. Displays skeleton loaders in custom amount and pay token amount while quote is loading. **Current Limitations** - Does not support native tokens, since the gas cost is not subtracted in the Relay quote. - Does not support gas fee tokens, since the gas cost can only be calculated after the quote is retrieved. - Does not support Predict deposit, since initial deposits include additional transactions. ## **Changelog** CHANGELOG entry: null ## **Related issues** Fixes: [#6498](MetaMask/MetaMask-planning#6498) ## **Manual testing steps** ## **Screenshots/Recordings** ### **Before** ### **After** https://github.com/user-attachments/assets/8016c857-1b0d-46d6-8acf-52e65dde25ed ## **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. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Introduces a controller-driven “Max” amount flow and improved loading UX for MetaMask Pay in supported flows. > > - Adds `isMaxAmount` state/selectors/hooks in pay data; toggled via `TransactionPayController.setIsMaxAmount` when selecting 100% and cleared on manual/partial edits > - Updates UI: `CustomAmount`, `PayTokenAmount`, and keyboard now show skeletons while quotes load and disable Max for native pay tokens; `useTransactionPayToken` exposes `isNative` > - Reads server-provided amounts: `transaction-details-hero` and transaction decoding prefer `metamaskPay.targetFiat` when present; refactors amount decoding into hooks > - Enables Max in `PerpsDepositInfo` and `MusdConversionInfo` > - Bumps deps: `@metamask/transaction-controller` to 62.9.0 and `@metamask/transaction-pay-controller` to 11.0.0; adds bridge controller packages > - Comprehensive tests added/updated for hooks, components, and decode logic > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 63708e6. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
<!-- 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. Fixing the off-ramp token amount test - Removed the obsolete SellGetStartedView.tapGetStartedButton() step since the "Get Started" screen was removed from the ramp flow in PR #22739 2. Enabling Card E2E tests - Removed .skip from three Card tests that were previously disabled: - card-button.spec.ts - card-home-add-funds.spec.ts - card-home-manage-card.spec.ts 3. Adding testID to CardHome component - Added testID={CardHomeSelectors.CARD_VIEW_TITLE} to the ScrollView for E2E test targeting 4. Adding mock infrastructure for Card tests - Added comprehensive Linea RPC mocking to support Card E2E tests: - Mock responses for Linea Tenderly RPC - Mock responses for Linea Infura RPC - ABI-encoded spendersAllowancesForTokens responses for the balance scanner contract - Support for both direct and proxied RPC requests 5. Updating E2E allowlist - Added necessary endpoints: - sepolia.infura.io, mainnet.infura.io, linea-sepolia.infura.io, linea-mainnet.infura.io - https://api.hyperliquid.xyz/exchange Related Issues - Fixes failing SmokeRamps: Off-ramp token amounts test caused by PR #22739 removing the GetStarted screen ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: ## **Related issues** Fixes: ## **Manual testing steps** ```gherkin Feature: my feature name Scenario: user [verb for user action] Given [describe expected initial app state] When user [verb for user action] Then [describe expected outcome] ``` ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [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 aplicable - [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. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > - **CI workflows:** Add `SmokeCard` and `SmokeRamps` jobs to Android/iOS smoke workflows and include them in the aggregated report. > - **Card E2E enablement:** Un-skip `card-button.spec.ts`, `card-home-add-funds.spec.ts`, and `card-home-manage-card.spec.ts`; add `testID` to `CardHome` ScrollView for targeting. > - **Mocks/infrastructure:** Implement robust Linea RPC mocking (Tenderly/Infura, direct and proxied, ABI-encoded `spendersAllowancesForTokens`) and client-config/geolocation mocks; expand allowlist (Infura hosts, Hyperliquid). > - **Ramps test fix:** Update off-ramp token amount flow by removing the obsolete Get Started step and adjusting assertions. > - **AI tag selector:** Allow `SmokeCard`/`SmokeRamps` by removing them from excluded tags. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 10d8794. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )