[pull] main from MetaMask:main#443
Merged
Merged
Conversation
## **Description** Aligned headers and footers for swap/bridge modals and views to ensure consistent spacing and visual alignment across the UI. **Changes include:** - **ButtonToggle**: Simplified component to use `ButtonPrimary` when active and `ButtonSecondary` when inactive, removing custom styling - **BridgeView**: Removed extra bottom padding from the button container for tighter footer alignment - **SlippageModal**: Updated layout with consistent padding and proper text styling using design system tokens - **QuoteExpiredModal**: Added proper footer padding and updated description text color to `TextColor.Alternative` - **TooltipModal**: Added "Got it" footer button and consistent padding structure ## **Changelog** CHANGELOG entry: Fixed inconsistent header and footer spacing in swap and bridge modals ## **Related issues** Fixes: https://consensyssoftware.atlassian.net/browse/MDP-657?atlOrigin=eyJpIjoiYjIzZjdjNmY2NmRiNDMzZGE3MTcwNmE1YjAyZGQ2OTIiLCJwIjoiaiJ9 ## **Manual testing steps** ```gherkin Feature: Swap/Bridge Modal Alignment Scenario: User views the slippage modal Given the user is on the swap/bridge view with a valid quote When user taps on the slippage setting Then the slippage modal should display with consistent header and footer spacing Scenario: User views a tooltip modal Given the user is on a screen with tooltip icons When user taps on a tooltip icon Then the tooltip modal should display with a "Got it" button footer ``` ## **Screenshots/Recordings** ### **Before** <!-- [screenshots/recordings] --> ### **After** https://github.com/user-attachments/assets/2b632787-bfff-479c-a40d-79cbe8ba1cb5 <!-- [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. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Standardizes swap/bridge UI headers/footers and cleans up button styling. > > - Simplifies `ButtonToggle` to render `ButtonPrimary` when active and `ButtonSecondary` when inactive; removes custom styles/constants and updates snapshots (incl. `SegmentedControl`). > - Replaces `BottomSheetHeader` with `HeaderCenter` in Bridge token selectors, `QuoteExpiredModal`, `SlippageModal`, and `TooltipModal`; updates title layout, close button handling, and related snapshots/tests. > - Spacing/style tweaks: remove extra bottom padding in `BridgeView` button container; adjust container/footer paddings (platform-aware) and set body text to `TextColor.Alternative` where applicable. > - Navbar: `getBridgeNavbar` now uses `getHeaderCenterNavbarOptions`; tests updated to expect a `header` function. > - `TooltipModal`: adds "Got it" footer button and interaction test. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 8a063b7. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
… cp-7.61.6 (#24368) <!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** Fix Tron resources calculation and default value. ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: null ## **Related issues** Fixes: ## **Manual testing steps** ```gherkin Feature: my feature name Scenario: user [verb for user action] Given [describe expected initial app state] When user [verb for user action] Then [describe expected outcome] ``` ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Fixes Tron resource max handling and safe percentage calculation. > > - `useTronResources`: passes actual `max` values (can be `0`) to `createResource`; percentage uses `Math.max(1, max)` to avoid divide-by-zero while preserving displayed `max` > - Tests updated to expect `max: 0` when no resources exist; existing parsing and capping behaviors verified > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit d0c7e87. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> --------- Co-authored-by: Antonio Regadas <antonio.regadas@consensys.net>
…24365) <!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: null ## **Related issues** Fixes: ## **Manual testing steps** ```gherkin Feature: my feature name Scenario: user [verb for user action] Given [describe expected initial app state] When user [verb for user action] Then [describe expected outcome] ``` ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Updates dependency to latest minor version. > > - Upgrades `@metamask/tron-wallet-snap` from `^1.17.0` to `^1.19.0` in `package.json`; refreshes `yarn.lock` accordingly > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 460a33e. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> Co-authored-by: Alejandro Garcia Anglada <aganglada@gmail.com>
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** This PR addresses an issue where the "Add Account" button was being displayed in the Account Selector when launched from the Ramp Aggregator component, even though it should be hidden in that context. <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: removes `Add account` in the account selector during the ramps flow. ## **Related issues** Fixes: https://consensyssoftware.atlassian.net/browse/MUL-1211?atlOrigin=eyJpIjoiYjExYTc2N2YwMjkzNDBkN2E5MjI5N2E4ZjJlYWY0MjYiLCJwIjoiaiJ9 Fixes: #21578 ## **Manual testing steps** ```gherkin Feature: Add account from account selector Scenario: user is trying to create a new account Given the user is in the on ramp deposit screen When user clicks the account selector Then they should see that the `Add account` button is not available. ``` ## **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/e71c10fb-ae76-475c-9089-d25777bc6881 <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> [mul-1211-after.webm](https://github.com/user-attachments/assets/7243f2b6-ceb0-46c4-9ac3-fae0de63f4d1) ## **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] > Implements a `disableAddAccountButton` control to hide the add-account UI in Account Selector and applies it to ramp/deposit flows. > > - Adds `disableAddAccountButton` to `AccountSelector` params/types and wires it to conditionally render `BottomSheetFooter` and `MultichainAccountSelectorList` `showFooter` > - Updates Ramp Aggregator and Deposit `AccountSelector` navigations to pass `{ disableAddAccountButton: true }` (alongside `isEvmOnly`/`disablePrivacyMode`) > - Extends tests: validates navigation params from ramps, verifies add button visibility for both multichain and non-multichain modes, and minor expectations adjustments > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit e557606. 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? --> In the reveal SRP flow, the user cannot scroll the accounts list inside the component with the SRP once this one is expanded ## **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: bug fix where a user couldn't scroll through the SRP reveal bottom sheet on Android ## **Related issues** Fixes: #19999 Jira ticket: https://consensyssoftware.atlassian.net/browse/MUL-1366 ## **Manual testing steps** ```gherkin Feature: reveal SRP screen Scenario: user wants to see all of one SRP's accounts on Android Given user has multiple SRPs with more than 10 EVM accounts in each When user goes to settings > security > reveal SRP > XX accounts Then user is able to scroll down the list of accounts without issues ``` ## **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/aa56fcd7-781d-44d1-a97a-6a853a33f32a ### **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. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Resolves Android scrolling issues in the SRP reveal bottom sheet by constraining list height and enabling nested scrolling. > > - Updates `SRPList` to use `useWindowDimensions` and pass `vars.maxHeight` (~70% of window height) to `styleSheet` > - Adds `maxHeight` to `SRPList.styles.ts` and a `flatList` style (`flexGrow: 0`) to prevent over-expansion > - Switches `FlatList` to `react-native-gesture-handler` and enables `scrollEnabled`/`nestedScrollEnabled` > - Cleans up redundant flex styles in `base` and `srpListContentContainer` > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit a5650b9. 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** This pull request updates the create cherry pick workflow to pass untrusted GitHub values as ENV variables instead of raw inputs to the `run` section of the workflow. This helps ensure we are setting good patterns, and eliminates the risk of command injection from an employee who invokes this workflow. Alternatively, if this action is no longer used we can delete it entirely (this is the approach the extension platform team is taking) <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` CHANGELOG entry: null If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: null ## **Related issues** No issue exists ## **Manual testing steps** After merging this pull request, run the workflow to confirm it still works as intended ## **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. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Modernizes and simplifies the cherry-pick workflow. > > - Replace `actions/checkout` + Node setup steps with `MetaMask/action-checkout-and-setup@v1` (`is-high-risk-environment: false`) > - Pass workflow inputs as env vars (`BRANCH_NAME`, `COMMIT_HASH`, `PR_NUMBER`) to `create-cherry-pick-pr.sh` and quote args in `run` > - Remove `fetch-depth`, `ref`, custom token usage, and Node version detection/setup > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit a8428b7. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
## **Description** refine import account screen UI ## **Changelog** CHANGELOG entry:null ## **Related issues** Fixes: https://consensyssoftware.atlassian.net/browse/MDP-323 ## **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** | before | after | | -------- | ------- | |  |  | ### **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. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Modernizes the Import Private Key UI while preserving behavior. > > - Replaces `ButtonIcon` close control with `HeaderCenter` back header (`testID` preserved) and removes decorative download icon > - Adjusts layout and spacing: adds `marginTop`, switches to `paddingHorizontal`, reduces row gaps, and centers scan-QR link row > - Updates typography/colors: body text uses `TextColor.Alternative`; input uses `background.section`, muted text color, and tighter margins > - Cleans up styles (removes background tints) and updates snapshots; import/scan flows and logic remain unchanged > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 75cc51b. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
## **Description** **Reason for change:** The RampsController previously had no request caching infrastructure. Each API call was independent, leading to duplicate network requests when multiple UI components needed the same data, and no shared loading/error states across the app. **Solution:** This PR adds mobile-side integration for the new [RampsController request caching system that was implemented](MetaMask/core#7536): - **New hooks:** `useRampsControllerRequest` (generic) and `useRampsGeolocation` (specialized) that automatically fetch on mount and read from Redux - **Domain-specific selectors:** `selectGeolocation`, `selectGeolocationIsLoading`, `selectGeolocationError`, `selectGeolocationStatus` - no cache keys required for consumers - **Generic selectors:** `makeSelectRequestState`, `makeSelectRequestData`, etc. for advanced use cases - **Clean API:** Hooks return just `{ data, error, status }` - advanced controls accessed via `Engine.context.RampsController` ## **Changelog** CHANGELOG entry: null ## **Related issues** Fixes: [#TRAM-2931](https://consensyssoftware.atlassian.net/browse/TRAM-2931) ## **Manual testing steps** Feature: Geolocation caching in Ramps Scenario: Geolocation is fetched and cached on deposit screen load Given the app is open and user is logged in When user navigates to the Deposit (Buy) screen Then geolocation should be fetched once and displayed And subsequent navigations should use cached geolocation without new API calls Scenario: Loading state is visible during geolocation fetch Given the user has not previously fetched geolocation When user navigates to the Deposit screen Then a loading state should be visible briefly And then the geolocation data should appear ## **Screenshots/Recordings** ### **Before** N/A - New infrastructure, no visible UI changes ### **After** N/A - New infrastructure, no visible UI changes ## **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 - [ ] 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 mobile integration with RampsController request caching focused on geolocation. > > - Adds `useRampsGeolocation` hook returning `{ geolocation, isLoading, error, fetchGeolocation }` and auto-fetching on mount > - New selectors: `selectGeolocation` and `selectGeolocationRequest` (via `createRequestSelector`) for data/loading/error without manual cache keys > - Initializes `RampsController` to call `updateGeolocation` on app startup (non-blocking, errors swallowed) > - `RampsService` now includes platform `context` (`mobile-ios`/`mobile-android`) during init > - Updates tests, snapshots, and initial state to include `RampsController.requests`; upgrades `@metamask/ramps-controller` to `^2.1.0` > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 0d30da3. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
## **Description**
use v3 for EVM historical prices instead of V1 price api.
Api platform team has made improvements on the v3 api; they added
geckoterminal as provider for historical prices, hence it should have
more coverage for prices.
## **Changelog**
CHANGELOG entry: using v3 api to get historical prices for asset details
page instead of v1
## **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] -->
https://github.com/user-attachments/assets/69625f29-0394-4bcc-bec3-a553b8f2704f
### **After**
<!-- [screenshots/recordings] -->
https://github.com/user-attachments/assets/ea15d185-c35e-4495-b124-2b9baf1c0aef
## **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.
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> **Switch EVM historical price fetch to v3**
>
> - In `useTokenHistoricalPrices`, replace v1 `price.api` endpoint with
v3 and change path to use CAIP-2/CAIP-19 (`eip155:{chainId}` and
`erc20:{address}`) for EVM assets
> - Preserve existing query params (`timePeriod`, `vsCurrency`, optional
`from`/`to`) and 204 handling; non-EVM flow unchanged
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
8e2fd83. 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?
-->
- Fix Android E2E report job running before perps tests complete by
adding `perps-android-smoke` to the report job's `needs` array (was
commented out)
## **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
- [ ] 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.
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> **Android E2E workflow**
>
> - Adds `perps-android-smoke` to `report-android-smoke-tests` `needs`,
so the final report aggregates results after perps tests complete.
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
505fc8b. 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 : )