Skip to content

[pull] main from MetaMask:main#341

Merged
pull[bot] merged 7 commits into
Reality2byte:mainfrom
MetaMask:main
Nov 20, 2025
Merged

[pull] main from MetaMask:main#341
pull[bot] merged 7 commits into
Reality2byte:mainfrom
MetaMask:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Nov 20, 2025

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 : )

matthewwalsh0 and others added 7 commits November 20, 2025 08:33
## **Description**

Minor updates to Predict deposit layout.

- Large buy button.
- Removed `.` from pay with row.
- Updated margins in pay with row.
- Change colour of down arrow in pay with row.
- Position inputs in vertical center of available space.
- Increase font size of rows.

## **Changelog**

CHANGELOG entry: null

## **Related issues**

## **Manual testing steps**

## **Screenshots/Recordings**

### **Before**

### **After**

<img width="300" alt="Predict"
src="https://github.com/user-attachments/assets/a70d7394-ff1a-4a24-a7ba-8298060e9845"
/>

## **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]
> Centers amount inputs, enlarges text/buttons, and refines spacing for
Predict deposit flow and related rows.
> 
> - **Predict Deposit layout**:
> - Center inputs via new `inputContainer`; reduce `custom-amount` min
height to `70` and remove excess margins.
>   - Make Buy/Confirm buttons large (`size=Lg`).
> - **Typography**:
> - Use `BodyMD` for small `InfoRow` labels/values; update rows
(`BridgeFeeRow`, `BridgeTimeRow`, `TotalRow`) to `BodyMD`.
> - **Pay with row** (`rows/pay-with-row`):
> - Adjust padding and gap; remove middle dot; color down-arrow
`Alternative`.
> - **Pay token amount** (`pay-token-amount`):
> - Remove styles file; simplify layout; use `BodyMD`; simplify
skeleton.
> - **Info row** (`UI/info-row`):
> - Fix label `minHeight: 24`; update skeleton sizes and set `Small`
variant.
> - **Token icon**:
>   - Remove top margin (`marginTop: 0`).
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
cc6e025. 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?
-->

This PR refactors the ramp navigation system to provide a cleaner, more
intuitive API for navigating to different ramp flows, and unifies deep
linking capabilities across both aggregator and deposit experiences.

### Key Changes

#### Enhanced Navigation API
- Refactored `useRampNavigation` hook to export dedicated convenience
functions (`goToBuy`, `goToSell`, `goToDeposit`, `goToAggregator`)
- These functions automatically handle the unified routing override
logic, eliminating the need for consumers to pass `mode` and
`overrideUnifiedBuyFlag` parameters
- Renamed `goToRamps` to `goToBuy`
- Updated `goToBuy` to accept `RampIntent` directly (`{ assetId, amount,
currency }`) for a simpler, more consistent interface
- Defaulted `mode` parameter to `AGGREGATOR` for backward compatibility

#### Smart Routing Logic
- Enhanced `goToBuy` to implement smart routing when unified V1 is
enabled:
- Routes to `TokenSelection` page when no `assetId` is provided,
allowing users to select their desired cryptocurrency
- Routes to either aggregator or deposit experience based on the Redux
`rampRoutingDecision` when an `assetId` is present
- Convenience functions bypass smart routing to ensure direct navigation
to the intended destination

#### Unified Deep Linking
- Aligned deposit deep linking implementation with the existing
aggregator pattern
- Shared `parseRampIntent` utility and `RampIntent` interface across
both aggregator and deposit flows
- Removed duplicate `parseDepositParams` utility in favor of the shared
implementation
- Updated `DepositNavigationParams` to use `RampIntent` for consistency

#### Call Site Updates
- Updated all ramp entry points throughout the codebase to use the new
convenience functions:
- `FundActionMenu`, `AssetOverview`, `AddFundsBottomSheet`,
`BalanceEmptyState` now use `goToBuy()` or `goToDeposit()`
- Deposit modals (`UnsupportedRegionModal`, `UnsupportedStateModal`,
`ConfigurationModal`) use `goToBuy()` to redirect to aggregator
- `OrdersList` and `OrderDetails` use `goToBuy()`, `goToSell()`, or
`goToDeposit()` based on context
- `TokenSelection` uses `goToRamps()` with smart routing for seamless
flow integration

#### Test Coverage
- Updated all affected test files to mock and assert the new convenience
functions
- Enhanced `useRampNavigation.test.ts` to comprehensively cover smart
routing logic, token selection fallback, and convenience function
behavior

### Benefits
- **Improved Developer Experience**: Simpler, more intuitive API that
clearly expresses intent
- **Reduced Complexity**: Call sites no longer need to understand
internal routing flags or modes
- **Better Consistency**: Unified deep linking interface across all ramp
flows
- **Type Safety**: Proper TypeScript types throughout the navigation
system
- **Maintainability**: Centralized routing logic makes future changes
easier to implement

## **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: Added support for pre-selecting tokens when navigating
to deposit flow via deep links or token selection

## **Related issues**

Fixes:

https://consensyssoftware.atlassian.net/browse/TRAM-2795
https://consensyssoftware.atlassian.net/browse/TRAM-2822
https://consensyssoftware.atlassian.net/browse/TRAM-2821
https://consensyssoftware.atlassian.net/browse/TRAM-2823
https://consensyssoftware.atlassian.net/browse/TRAM-2843

## **Manual testing steps**

```gherkin
Feature: Pre-select token in deposit flow via navigation

  Scenario: user navigates to deposit with specific token selected
    Given user is on the token selection screen
    
    When user taps on a token (e.g., USDC)
    Then user is navigated to the deposit flow
    And USDC is automatically selected as the crypto currency

  Scenario: user navigates to deposit via deep link with assetId
    Given user opens app via deep link with assetId parameter
    
    When deposit flow loads with assetId="0xa0b86..."
    Then the corresponding token is automatically selected
    And user can proceed with deposit for that token

  Scenario: user navigates to deposit without intent
    Given user navigates to deposit flow normally
    
    When deposit flow loads without intent parameters
    Then the first available token is selected by default
    And deposit flow behaves as before
```

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->



<div>
<a href="https://www.loom.com/share/5ad4ea109f524e3095c7eb0bd2ee0ef0">
      <p>Loom Cropping - 19 November 2025 - Watch Video</p>
    </a>
<a href="https://www.loom.com/share/5ad4ea109f524e3095c7eb0bd2ee0ef0">
<img style="max-width:300px;"
src="https://cdn.loom.com/sessions/thumbnails/5ad4ea109f524e3095c7eb0bd2ee0ef0-97ece2ca247ee6a2-full-play.gif#t=0.1">
    </a>
  </div>


https://github.com/user-attachments/assets/e588407e-1d9f-4a8c-8dfc-7685bec6fff7



## **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]
> Refactors ramp navigation to new goTo* API with smart routing and
unified deep links, adds deposit intent handling, and updates all call
sites and tests.
> 
> - **Ramps Navigation**:
> - Replace `goToRamps` with dedicated APIs: `goToBuy`,
`goToAggregator`, `goToSell`, `goToDeposit` in `useRampNavigation`.
>   - Implement smart routing (Unified V1):
>     - No `assetId` → navigate to `TokenSelection`.
> - With `assetId` → route to Aggregator or Deposit based on
`rampRoutingDecision`.
> - **Deep Linking & Intent**:
> - Unify deep link parsing via shared `parseRampIntent`; remove
`parseDepositParams`.
> - Update `handleDepositUrl`/`handleRampUrl` to use `RampIntent` and
nested navigation to `Routes.DEPOSIT.ROOT` when params present.
> - **Deposit Flow**:
> - Add `intent` state to `DepositSDK`; `Root` reads
`DepositNavigationParams` via `useParams` and sets intent.
> - `useCryptoCurrencies` preselects by `intent.assetId` (then clears
it) and filters by supported networks.
> - Deposit router passes parent params to `Root` and fixes animation
option handling.
> - **Call Site Updates** (examples):
> - `AssetOverview`, `BalanceEmptyState`, `ReceiveRequest`, `SendTo`,
`ApproveTransactionReview`, `Swaps/QuotesView` now use `goToBuy`.
> - `FundActionMenu` uses `goToBuy` (unified), `goToAggregator`,
`goToSell`, `goToDeposit` and adjusts analytics/tracing.
> - Deposit modals (`ConfigurationModal`, `UnsupportedRegion/State`)
navigate with new APIs.
>   - Orders: `OrdersList` and `OrderDetails` route via new APIs.
> - `TokenSelection` selects token then calls `goToBuy` and closes
parent.
> - **Routing Decision**:
> - `useRampsSmartRouting` treats last completed `DEPOSIT` or `TRANSAK`
order as Deposit preference.
> - **Misc/Testing**:
>   - Add `testID` to `TokenListItem` (`token-list-item-<assetId>`).
> - Update imports (`parseRampIntent` path), tests, and snapshots across
affected modules.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
b86e256. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
## **Description**

Automatically add the Polygon USDCe token when opening the Predict
withdraw confirmation.

## **Changelog**

CHANGELOG entry: null

## **Related issues**

Fixes: #22720 

## **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.


<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Automatically adds Polygon USDCe on Predict withdraw and updates token
lookup to be chain-wide while resolving balances via the selected EVM
address, with tests adjusted.
> 
> - **Confirmations UI**:
> - `predict-withdraw-info.tsx`: Auto-adds `POLYGON_USDCE` via
`useAddToken` on `CHAIN_IDS.POLYGON` when opening Predict Withdraw.
> - **Hooks**:
> - `useTokenWithBalance`: Derives `selectedEvmAddress` from account
group (`eip155:eoa`) and uses it for token/native balances; replaces
`selectAccountBalanceByChainId` with `selectAccountsByChainId` lookup.
> - **Selectors**:
> - `selectSingleTokenByAddressAndChainId`: Now searches all addresses
for a chain instead of only the selected address.
> - **Tests**:
> - Update/expand `tokensController.test.ts` to cover chain-wide token
lookup and ensure `selectAllTokensFlat` includes tokens from multiple
addresses.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
89cff01. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
## **Description**

Reject any existing unapproved Perps and Predict deposit transactions
when navigating to the confirmation, and using the custom loader.

Also remove the back button in the Perps deposit confirmation while
loading.

## **Changelog**

CHANGELOG entry: null

## **Related issues**

Fixes: #22715 

## **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.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Reject unapproved transactions when navigating to confirmation with
CustomAmount loader and adjust Perps confirmation header (show header,
no back); add supporting tests/mocks.
> 
> - **Confirmations**:
> - Reject unapproved `transactions` via `ApprovalController.reject`
when navigating with `loader: CustomAmount`, then proceed to navigate
once cleared.
> - Read pending txs from Redux (`selectTransactions`); manage deferred
navigation with local state/effect; add logs.
> - Default `loader` to `CustomAmount` when `stack ===
Routes.PERPS.ROOT`; honor `headerShown === false` to use `NO_HEADER`
route.
> - **UI (Perps)**:
> - `routes/index.tsx`: For
`FULL_SCREEN_CONFIRMATIONS.REDESIGNED_CONFIRMATIONS`, set `headerShown:
true` and `headerLeft: () => null` (no back button).
> - **Tests**:
> - Add `useConfirmNavigation` tests covering stack/no-header and
rejection of pending txs.
>   - Update `PredictTabView.test.tsx` to mock `useConfirmNavigation`.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
1c0ef84. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
## **Description**

This PR makes the android flask E2E run alongside the other E2E tests we
have in the regular CI job.

## **Changelog**

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]
> Integrates Android Flask E2E build and smoke tests into the main CI
and gates them in pass checks, refactoring the Flask E2E workflow into a
reusable workflow_call and removing the obsolete label guidance.
> 
> - **CI**:
> - Add `build-android-flask-apks` and `e2e-smoke-tests-android-flask`
jobs to `ci.yml`, passing `changed_files`, and include the Flask E2E job
in `check-all-jobs-pass` gating.
> - **Workflows**:
> - Convert `run-e2e-smoke-tests-android-flask.yml` to a reusable
`workflow_call` with `changed_files` input and explicit permissions;
remove PR/schedule triggers, concurrency, and in-file build steps;
forward `changed_files` to `run-e2e-workflow.yml`; simplify report job
condition.
> - **Docs**:
> - Remove the "Run Flask Android E2E tests" label section from
`/.github/guidelines/LABELING_GUIDELINES.md`.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
9bcd5d7. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
## **Description**

Ensure all blocking alerts are visible in MetaMask Pay if keyboard is
not visible.

## **Changelog**

CHANGELOG entry: null

## **Related issues**

Fixes: #22756 

## **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.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Refactors alert filtering to surface blocking and pending alerts
appropriately (respecting keyboard visibility and input-change rules)
and updates tests accordingly.
> 
> - **Hooks** (`useTransactionCustomAmountAlerts`):
> - Filter confirmation alerts to only blocking, then exclude alerts
based on:
>     - No input change for `ON_CHANGE_ALERTS`.
>     - Keyboard visible for non-`KEYBOARD_ALERTS`.
>     - Keyboard visible for `PENDING_AMOUNT_ALERTS`.
> - Combine `pendingTokenAlerts` with filtered confirmation alerts and
select the first alert for display.
> - **Tests** (`useTransactionCustomAmountAlerts.test.ts`):
>   - Add test ensuring pending alert is returned when applicable.
> - Add test ensuring pending alerts are suppressed when keyboard is
visible.
>   - Adjust test names to clarify keyboard and on-change behaviors.
>   - Verify non-blocking alerts are ignored.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
5bb7b96. 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?
-->

Omni Network (OMNI) has been rebranded to Nomina (NOM). This PR changes
the network name, native currency and icons for the network.

## **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: change Omni Network name and logo to Nomina with native
currency NOM.

## **Related issues**

Fixes: NA

## **Manual testing steps**

Go to the MetaMask Mobile app
1/ Navigate to "chainList.org" search for "Nomina" and click add new
network.

RPC URL : https://mainnet.nomina.io
Chain Name : Nomina
Currency Symbol: NOM
Chain ID: 166 (0xa6)

2/ Check that the logo of the network is displayed correctly in the
dropdown and on bottom-right of tokens.
3/ Check that the native token is NOM with Nomina logo.

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<img
src="https://github.com/user-attachments/assets/d85393f1-dcc4-4abe-b084-ab91c92ee22d"
width="200">

### **After**

<img
src="https://github.com/user-attachments/assets/197e6c4c-a116-49be-9ec7-b9fa5ac8a27a"
width="200">
<img
src="https://github.com/user-attachments/assets/8b1326b9-364a-41f1-9562-e833e014dc9c"
width="200">


## **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]
> Replaces Omni with Nomina across network constants, currency symbol,
and icon mappings (chain ID 166/NOM).
> 
> - **Networks/Constants**
>   - Add `NETWORKS_CHAIN_ID.NOMINA` (`0xa6` / `166`).
> - Map `CURRENCY_SYMBOL_BY_CHAIN_ID[NOMINA]` to `NOM` and add `NOMINA:
'NOM'` in `CHAINLIST_CURRENCY_SYMBOLS_MAP` (`app/constants/network.js`).
> - **Images/Icons**
> - Replace Omni token/icon with Nomina: import `nomina.png` and expose
`NOM: NOMINA` in `app/images/image-icons.js`.
> - **Custom Networks**
>   - Rename `OMNI` to `NOMINA` in `NETWORK_CHAIN_ID` (`0xa6`).
> - Update image mapping to use `../../images/nomina.png` for
`NETWORK_CHAIN_ID.NOMINA` (`app/util/networks/customNetworks.tsx`).
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
f04f7dc. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
@pull pull Bot locked and limited conversation to collaborators Nov 20, 2025
@pull pull Bot added the ⤵️ pull label Nov 20, 2025
@pull pull Bot merged commit 34a01a9 into Reality2byte:main Nov 20, 2025
2 of 10 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants