[pull] main from MetaMask:main#378
Merged
Merged
Conversation
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->
## **Description**
<!--
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?
-->
Set up CODEOWNERS file for Predict team.
## **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]
> Adds CODEOWNERS entries assigning the Predict team to predict-related
components, controllers, messengers, deeplink handler, and glob
patterns.
>
> - **CODEOWNERS**:
> - Add Predict team ownership for:
> - `app/components/UI/Predict/`
> - `app/core/Engine/controllers/predict-controller`
> - `app/core/Engine/messengers/predict-controller-messenger`
> - `app/core/DeeplinkManager/handlers/legacy/handlePredictUrl.ts`
> - `**/Predict/**`, `**/predict/**`
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
bc5491e. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
…23349) <!-- 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** Implementation of Deferred Deep Linking: Deferred deep linking is a technique that allows users to be directed to specific content within an app, even if the app is The first version of deep linking in Mobile doesn't support deferred deep linking. This means that if mobile users who don't have the MetaMask Mobile app installed click a deep link, they are redirected to the iOS/Android store to download and install the app. However, after installation, they are not redirected to the specific page the deep link was intended for. Deferred deep linking will enable this seamless redirection to the intended screen after installation. <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: ## **Related issues** Fixes: ## **Manual testing steps** ```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] ``` Important note for testing on Android in Dev If testing deep link on Android via Expo, when the link opens Expo to open the app, the deep link passed to the app itself will be changed by Expo into something seen bellow  instead of https://link.metamask.io/perps, which makes the deeplinking/deferral system work but it never gets the right link to process, resulting in the "This page doesn't exist"  ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> **iOS** https://github.com/user-attachments/assets/d7692309-09e5-4e50-80fe-a39aca9e926d https://github.com/user-attachments/assets/0f440e22-511b-4ccf-92e9-277ff72339a8 **Android** https://github.com/user-attachments/assets/32c092b9-5136-40a2-9bc1-0db726383d42 ### **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 - [ ] 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] > Enables Branch pasteboard check on iOS app launch and refactors onboarding completion hook tests with clearer setup/teardown and assertions. > > - **iOS**: > - Enable deferred deep linking support by calling `RNBranch.branch.checkPasteboardOnInstall` in `ios/MetaMask/AppDelegate.m` before `initSessionWithLaunchOptions`. > - **Tests**: > - Refactor `useCompletedOnboardingEffect` tests: > - Add `beforeEach`/`afterEach` to manage Jest mocks; remove inline `jest.clearAllMocks` in `arrangeMocks`. > - Rename tests for clarity and keep assertions verifying when `setCompletedOnboarding(true)` is called or skipped. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 017e90e. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> --------- Co-authored-by: metamaskbot <metamaskbot@users.noreply.github.com>
…account (#23497) ## **Description** Currently when a perps withdrawal/deposit is initiated, it is visible across multiple MetaMask accounts. This is wrong, and we should only show the pending withdraw for the selectedEvmAccount of the MetaMask perps account that initiated the withdrawal. This PR introduces the accountId of the initiator to enable filtering of the currently selected account, to show the pending withdraw for the correct account. ## **Changelog** CHANGELOG entry: Fix to account specific pending perps withdraws ## **Related issues** Fixes: https://consensyssoftware.atlassian.net/browse/TAT-1889 ## **Manual testing steps** ```gherkin Feature: Per-Account Pending Withdrawal Tracking Scenario: user initiates withdrawal and sees pending progress Given user is on Perps home screen with Account A selected And Account A has a balance of 100 USDC When user initiates a withdrawal of 50 USDC Then user sees pending withdrawal progress indicator for Account A And progress indicator shows withdrawal amount of 49 USDC (after $1 fee) Scenario: user switches accounts and does not see previous account's pending withdrawal Given user has initiated a withdrawal from Account A And Account A shows pending withdrawal progress indicator When user switches to Account B in the account picker Then user does not see any pending withdrawal progress indicator And Account B shows its own balance state without Account A's withdrawal Scenario: user switches back to account with pending withdrawal and sees progress resume Given user has initiated a withdrawal from Account A And user has switched to Account B And Account B does not show any withdrawal progress ``` ## **Screenshots/Recordings** https://github.com/user-attachments/assets/0beb0f45-0b5d-4979-8d1c-346dc550e79b ## **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] > Scopes perps deposit/withdraw tracking to the currently selected EVM account and migrates persisted requests to include account attribution. > > - **Perps UI/Hooks**: > - Filter `withdrawalRequests` and `depositRequests` by selected EVM account via `selectSelectedInternalAccountByScope('eip155:1')` in `PerpsMarketBalanceActions`, `useWithdrawalRequests`, and `useDepositRequests`. > - Add detailed logging and guard for no selected address; only show relevant in-progress states and amounts. > - **Controller**: > - Extend `PerpsController` state: add `accountAddress` to `withdrawalRequests`/`depositRequests`; initialize arrays; default `withdrawalProgress` shape. > - Add migration to drop legacy requests missing `accountAddress`. > - `depositWithConfirmation`: include initiating `accountAddress` in new `depositRequests`. > - **Services**: > - `AccountService.withdraw`: capture selected `accountAddress`, include in new `withdrawalRequests`, and log context. > - **Tests/Fixtures**: > - Update tests to assert account-scoped filtering and behaviors; add account addresses to mocks; use `renderHookWithProvider`. > - Update snapshots and `initial-background-state.json` to new array shapes and `withdrawalProgress` defaults. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 49b5d79. 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** 1. What is the reason for the change? We want to deposit in Earn lending in 1 click 2. What is the improvement/solution? We can now deposit into Earn lending in 1 click using the redesigned confirmations <!-- 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: Adds 1-click approval/deposit transaction confirmation flow for Earn lending ## **Related issues** Fixes: https://consensyssoftware.atlassian.net/browse/MUSD-93 ## **Manual testing steps** ```gherkin Feature: stablecoin lending 1-click flow Scenario: user is on token home page Given user clicks on a lending cta When user goes to the lending deposit input Then clicks on the action for deposit, there will be a 1-click confirmation instead of 2 clicks ``` ## **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/80ba6e8a-811f-4a0d-9875-e7d3b74eaad5 ## **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] > Enables 1‑click Earn lending by batching ERC‑20 approval + deposit with redesigned confirmations, adds batch-aware gas/confirmation behavior, removes legacy flag gating, and updates tests/i18n. > > - **Earn (Input/Flow)**: > - Implement 1‑click stablecoin lending: create transaction batch with `tokenMethodApprove` + `lendingDeposit` and navigate to `REDESIGNED_CONFIRMATIONS` when `staking_confirmations` is enabled. > - Use `selectDefaultEndpointByChainId` to derive `networkClientId`; remove env-gated redesign util and legacy UI bits (e.g., estimated rewards card). > - Add guards/logging (missing `selectedAccount`, missing market data, undefined `attemptDepositTransaction`). > - **Confirmations/Approvals**: > - Treat `ApprovalType.TransactionBatch` as non-blocking (`waitForResult: false`) and navigate to `TransactionsView` after confirm. > - Add `TransactionType.lendingDeposit` to full-screen confirmations/contract interaction sets. > - **Gas UI (Batch-aware)**: > - `GasFeeTokenIcon`/`SelectedGasFeeToken`: resolve `chainId` from single transaction or batch metadata; fallback handling added. > - `GasFeeTokenToast`: default `chainId` when undefined; add close action. > - `GasFeesDetailsRow`: distinct loading for batch vs single; support fee display using batch estimates without simulation. > - **Env/Utils/i18n**: > - Remove `MM_STABLECOIN_LENDING_UI_ENABLED_REDESIGNED` and delete `EarnInputView/utils.ts`. > - Add `earn.rewards` strings for rewards tag/tooltips. > - **Tests/Snapshots**: > - Extensive updates and new cases for lending batch flow, confirmations behavior, gas components (batch metadata), and snapshots reflecting UI changes. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 7c133f9. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> --------- Co-authored-by: Matthew Walsh <matthew.walsh@consensys.net>
## **Description**
This PR hides trending tokens section if empty.
The UI needs to show again the tokens section if it gets data on refresh
To test this; i updated the useTrendingRequest hook:
```
const isFirstCall = currentRequestId === 1;
const resultsToStore = isFirstCall
? []
: await getTrendingTokens({
chainIds: stableChainIds,
sortBy,
minLiquidity,
minVolume24hUsd,
maxVolume24hUsd,
minMarketCap,
maxMarketCap,
});
```
Result:
https://github.com/user-attachments/assets/9247e4ba-fc3e-458d-a5a7-206bdd427de4
## **Changelog**
CHANGELOG entry: Hides trending section if empty
## **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] -->
https://github.com/user-attachments/assets/8010c17a-4079-4de3-a4d2-14ca887176bc
## **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]
> Hides empty Explore sections and shows an empty error state for
Trending Tokens, while defaulting trending fetch to loading with 24h
trending sort.
>
> - **Trending View (Explore)**:
> - Hide sections with empty data via `emptySections` state; keep
components mounted to detect new data.
> - Pass `toggleSectionEmptyState` to each section (`SectionCard`,
`SectionCarrousel`) and wire through `sections.config`.
> - Update `QuickActions` to only show visible sections.
> - **Trending Tokens Full View**:
> - Show skeletons only while `isLoading`; when no results, render
`EmptyErrorTrendingState` with retry.
> - Disable Price Change control when no results.
> - **Hook**:
> - `useTrendingRequest`: default `sortBy` to `h24_trending`; initial
`isLoading` set to `true`.
> - **New Component**:
> - `EmptyErrorTrendingState` with tests and localized strings.
> - **Tests & i18n**:
> - Update tests to use `useTrendingSearch` and validate new empty/error
state and controls.
> - Add `trending.empty_error_trending_state.*` strings.
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
e96b2f0. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
…23534) <!-- 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 an issue where when users selected the swap button for an asset presented in browser URL bar, that asset was not selected as source when navigating to swap 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? --> ## **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: fixes an issue where when users selected the swap button for an asset presented in browser URL bar, that asset was not selected as source when navigating to swap page. ## **Related issues** Fixes: https://consensyssoftware.atlassian.net/browse/SWAPS-3487 ## **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** https://github.com/user-attachments/assets/2b9a5836-77da-41b7-899d-86fe73469021 <!-- [screenshots/recordings] --> ### **After** https://github.com/user-attachments/assets/1c1ad351-da97-49c7-a64c-47f63fd0f345 <!-- [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] > Pass the selected token from URL Autocomplete to Swaps navigation and update the navigation hook to accept a token override with proper chain handling and fallbacks. > > - **Swaps/Bridge Navigation**: > - Update `useSwapBridgeNavigation` to accept an optional `tokenOverride` in `goToNativeBridge` and `goToSwaps`. > - Use the override (or provided `sourceToken`) to determine the effective chain ID, format chain IDs, and select the candidate source token. > - Add fallback to mainnet native token when the source chain isn’t bridge-enabled. > - Expand tests to cover token override, mainnet fallback, home-page filter network, Solana CAIP handling, and analytics events. > - **URL Autocomplete**: > - On swap button press, construct a `BridgeToken` from `TokenSearchResult` and invoke `goToSwaps` with it. > - Adjust tests to assert `goToSwaps` is called with the correct token, plus additional tests for loading indicator, result de-duplication, recents limiting, and reset on hide. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 37e7967. 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** Ticket: https://consensyssoftware.atlassian.net/browse/INFRA-3180 Create-release-pr workflow currently uses teams.json file which was deprecated instead of new topology.json to generate commits.csv. Causes issues with commits.csv. Fixed in this Pr Discussed here: https://consensys.slack.com/archives/C09B64PEHAQ/p1764576026224679 ## **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] > Update workflow to use MetaMask/github-tools create-release-pr action v1.1.2 instead of v1.1.0. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 4e4e031. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
…ion type (#23552) <!-- 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 conditional rendering of `bridge-time-row` based on transaction type. For mUSD conversion we want the time estimate hidden. <!-- 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: add conditional rendering of bridge-time-row by tx type ## **Related issues** Fixes: [MUSD-128: Hide "estimated time" from quote screen](https://consensyssoftware.atlassian.net/browse/MUSD-128) ## **Manual testing steps** ```gherkin Feature: Bridge Time Row Visibility Scenario: user views confirmation for mUSD conversion transaction Given the user is on the confirmation screen for a mUSD conversion transaction When the user views the transaction details Then the bridge estimated time row is not displayed Scenario: user views loading state for mUSD conversion transaction Given the user is on the confirmation screen for a mUSD conversion transaction And the bridge quotes are loading When the user views the transaction details Then the bridge time skeleton loader is not displayed ``` ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> Time estimate is displayed https://github.com/user-attachments/assets/f910fd34-4f1f-4ca0-b831-159d3c8fa04a ### **After** <!-- [screenshots/recordings] --> Time estimate is hidden https://github.com/user-attachments/assets/3a6d593e-98e2-467f-996c-91421e39996c ## **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] > Conditionally hides the bridge estimated time row and skeleton for `musdConversion` transactions. > > - **Confirmations UI**: > - Add conditional rendering in `bridge-time-row.tsx` to hide time estimate and skeleton when transaction type matches `TransactionType.musdConversion` via `hasTransactionType` and `HIDE_TYPES`. > - Preserve existing behavior (show skeleton when loading, show estimate when quotes exist) for other transaction types; keep same-chain display as `< 10 sec`. > - **Tests**: > - Update `bridge-time-row.test.tsx` to support injecting transaction `type` and add cases asserting no skeleton/estimate for `musdConversion`. > - Retain and verify existing duration formatting and same-chain logic. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit ca077f9. 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 : )