Skip to content

Conversation

@runway-github
Copy link
Contributor

@runway-github runway-github bot commented Dec 6, 2025

Description

Fixes the network ordering to include Tron between Solana and Base

Changelog

CHANGELOG entry: Updated swaps network picker ordering

Related issues

Fixes: #23687

Manual testing steps

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

Pre-merge author checklist

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.

Note

Adds Tron (TRX) as a supported bridge network/tokens and updates popularity ordering to place Tron after Solana, with corresponding state, hooks, and tests updated.

  • Bridge UI:
    • Add Tron to destination network bar ordering via ChainPopularity in BridgeDestNetworksBar.tsx (after Solana).
    • Show Tron in destination/source network and token selectors (updated snapshots).
  • State/Mocks:
    • Extend _mocks_/initialState.ts with Tron account, balances, assets metadata, conversion rates, and inclusion in RemoteFeatureFlagController and MultichainNetworkController.
  • Logic/Hooks:
    • Update useSortedSourceNetworks to compute and sort by Tron fiat totals alongside Solana/Bitcoin/EVM.
  • Tests:
    • Adjust BridgeSourceNetworkSelector.test.tsx to include TrxScope.Mainnet in applied selections and update ordering assertions.
    • Refresh snapshots across selectors to reflect Tron entries and amounts.

Written by Cursor Bugbot for commit 16d5ae4. This will update automatically on new commits. Configure here.

47aef8d

…1.0 (#23686)

<!--
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**
Fixes the network ordering to include Tron between Solana and Base

<!--
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: Updated swaps network picker ordering

## **Related issues**

Fixes: #23687

## **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 Tron to bridge networks, positions it after Solana in popularity
ordering, and includes TRX in source network balance sorting and tests.
> 
> - **Bridge UI**:
> - Update `BridgeDestNetworksBar.tsx` `ChainPopularity` to include
`TrxScope.Mainnet` after `SolScope.Mainnet` and shift subsequent
rankings.
> - **Sorting/Logic**:
> - Extend `useSortedSourceNetworks` to compute/sort by Tron
(`TrxScope.Mainnet`) fiat totals alongside Solana and Bitcoin.
> - **Mocks/State**:
> - Add Tron account, native asset (`tron:728126428/slip44:195`),
balances, metadata, rates, and controller entries in
`_mocks_/initialState.ts`.
> - **Tests/Snapshots**:
> - Update selectors and snapshots to display/select Tron across
source/dest network and token selectors; adjust expectations to include
`TrxScope.Mainnet`.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
ed48008. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
@runway-github runway-github bot requested a review from a team as a code owner December 6, 2025 01:00
@github-actions
Copy link
Contributor

github-actions bot commented Dec 6, 2025

CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.

@metamaskbot metamaskbot added the team-bots Bot team (for MetaMask Bot, Runway Bot, etc.) label Dec 6, 2025
@github-actions github-actions bot added the size-S label Dec 6, 2025
@github-actions
Copy link
Contributor

github-actions bot commented Dec 6, 2025

🔍 Smart E2E Test Selection

  • Selected E2E tags: SmokeTrade, SmokeNetworkExpansion
  • Risk Level: medium
  • AI Confidence: 85%
click to see 🤖 AI reasoning details

Analysis Summary

The changes in this PR add support for Tron (TRX) network to the Bridge functionality:

Changed Files Analysis:

  1. BridgeDestNetworksBar.tsx: Adds TrxScope import and adds Tron mainnet to the ChainPopularity ranking (position 5), shifting other chains down
  2. useSortedSourceNetworks.ts: Adds logic to calculate total fiat value for Tron tokens and includes it in network sorting
  3. initialState.ts (mocks): Adds extensive Tron account, balance, and token metadata for testing
  4. Test snapshots: Updated snapshots reflect the new Tron integration

Impact Assessment:

Direct Impact:

  • Bridge UI components now include Tron as a supported network
  • Network selector logic updated to handle Tron balances and sorting
  • This affects the Bridge user flow for selecting source/destination networks

Why SmokeTrade:

  • SmokeTrade tag explicitly covers "Token swaps, bridge, DEX trading"
  • The E2E test bridge-action-smoke.spec.ts uses the SmokeTrade tag
  • All changes are within the Bridge components, which is part of the Trade functionality
  • This ensures the bridge feature works correctly with the new Tron network

Why SmokeNetworkExpansion:

  • SmokeNetworkExpansion covers "New networks, network config (Solana, Bitcoin, etc)"
  • This PR adds Tron as a new non-EVM network alongside Solana and Bitcoin
  • The changes follow the same pattern used for Bitcoin and Solana integration
  • The ChainPopularity ranking shows Tron alongside BtcScope and SolScope

Risk Level: Medium because:

  • Changes affect user-facing Bridge UI functionality
  • Network selection and sorting logic modified
  • New network integration requires validation
  • Not critical core infrastructure, but important user flow
  • Mock data and test updates suggest thorough unit testing coverage

Not selecting other tags because:

  • SmokeSwaps: Specifically for token swaps, not bridge
  • SmokeMultiChainAPI/SmokeMultiChainPermissions: No API or permission changes detected
  • SmokeWalletPlatform/SmokeCore: No core wallet or engine changes
  • Other tags: Not relevant to bridge/network functionality

The changes are well-contained within Bridge components with good test coverage, justifying medium risk and high confidence.

View GitHub Actions results

@sonarqubecloud
Copy link

sonarqubecloud bot commented Dec 6, 2025

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size-S team-bots Bot team (for MetaMask Bot, Runway Bot, etc.)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants