Skip to content

Conversation

@jpuri
Copy link
Contributor

@jpuri jpuri commented Nov 21, 2025

Description

Fix conversion rate for POL native token.

Changelog

CHANGELOG entry:

Related issues

Fixes: https://github.com/MetaMask/MetaMask-planning/issues/6327

Manual testing steps

  1. Trigger swap including POL native token
  2. Check that metrics are recorded correctly and dapp-swap UI shows correct values

Screenshots/Recordings

TODO

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

Fixes USD conversion for Polygon native token by mapping POL’s special address and adds targeted unit tests.

  • Hook useDappSwapUSDValues (ui/pages/.../useDappSwapUSDValues.ts):
    • Map Polygon native token USD rate: when chainId === CHAIN_IDS.POLYGON, set the native asset’s address rate from 0x0000000000000000000000000000000000001010.
    • Switch isNativeAddress to helpers/utils/token-insights and import CHAIN_IDS.
    • Refactor exchange-rate fetch to async IIFE within useAsyncResult.
  • Tests (ui/pages/.../useDappSwapUSDValues.test.ts):
    • Enhance runHook to accept custom token addresses and confirmation.
    • Add Polygon-specific test asserting fiat rates include both native addresses with correct USD value.
    • Mock token details and rates accordingly.

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

@jpuri jpuri requested a review from a team as a code owner November 21, 2025 09:54
@jpuri jpuri added team-confirmations Push issues to confirmations team no-changelog no-changelog Indicates no external facing user changes, therefore no changelog documentation needed labels Nov 21, 2025
@github-actions
Copy link
Contributor

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
Copy link
Collaborator

metamaskbot commented Nov 21, 2025

✨ Files requiring CODEOWNER review ✨

@MetaMask/confirmations (2 files, +59 -10)
  • 📁 ui/
    • 📁 pages/
      • 📁 confirmations/
        • 📁 hooks/
          • 📁 transactions/
            • 📁 dapp-swap-comparison/
              • 📄 useDappSwapUSDValues.test.ts +41 -3
              • 📄 useDappSwapUSDValues.ts +18 -7

if (chainId === CHAIN_IDS.POLYGON) {
const nativeAddress = getNativeAssetForChainId(chainId).address;
exchangeRates[nativeAddress] = exchangeRates[POLYGON_NATIVE_ASSET];
}
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This fixes the issue for pol token only, I could not find a more generic fix.

} from '../../../utils/token';
import { useConfirmContext } from '../../../context/confirm';

const POLYGON_NATIVE_ASSET = '0x0000000000000000000000000000000000001010';
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can delegate to getNativeTokenAddress for this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the function is returning different address 0x0000000000000000000000000000000000000000

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should use getNativeTokenAddress.. it should return 0x0000000000000000000000000000000000001010 for Polygon network and 0x0000000000000000000000000000000000000000 for anything else.

chainId,
);

if (chainId === CHAIN_IDS.POLYGON) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be encapsulated inside fetchTokenExchangeRates for all usages?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure of other code will need this too.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideally the dedupe should be done in the controller side.. but I have just noticed that there was a massive breaking change added to the codefi-v2.ts in core https://github.com/MetaMask/core/pull/7119/files#diff-5801aea8052edaaf64cbe9cbe48734d6e35865a36f37d8a96c4e538536c7b1c2
As this filtering should be short lived I think we can keep it in the useDappSwapUSDValues.ts


if (chainId === CHAIN_IDS.POLYGON) {
const nativeAddress = getNativeAssetForChainId(chainId).address;
exchangeRates[nativeAddress] = exchangeRates[POLYGON_NATIVE_ASSET];
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the difference between nativeAddress and POLYGON_NATIVE_ASSET?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

0x0000000000000000000000000000000000001010 vs 0x0000000000000000000000000000000000000000

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Price service is using first one.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

0x0000000000000000000000000000000000001010 is the native address for Polygon.. are we not getting that address when swapping Pol on Polygon? 🤔

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok the reason for it is because our Bridge API and the dapp swap considers the zero address as the native address for Polygon

chainId,
);

if (chainId === CHAIN_IDS.POLYGON) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unit test?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yep adding those

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR is upadated

@jpuri jpuri changed the title fix: dapp swap fix conversion rate for pol native token fix: cp-13.11.0 dapp swap fix conversion rate for pol native token Nov 21, 2025
@metamaskbot
Copy link
Collaborator

Builds ready [95a3a69]
UI Startup Metrics (1230 ± 97 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1230106815419712921410
load104790713419111031201
domContentLoaded104190213269010961195
domInteractive2413164212071
firstPaint56492129342610461189
backgroundConnect21119434818213238
firstReactRender30185183747
getState321574103853
initialActions107112
loadScripts837703106986897995
setupStore1062031117
numNetworkReqs1257720572
BrowserifyPower User HomeuiStartup18001446284529419722520
load93782217101849221490
domContentLoaded92381616951829071461
domInteractive31141763424131
firstPaint6119816083738891312
backgroundConnect19618023410202215
firstReactRender80461501888113
getState18213434143195284
initialActions104113
loadScripts74263914981797271276
setupStore19856122251
numNetworkReqs1326430555166281
WebpackStandard HomeuiStartup75768394468786925
load57552580360590737
domContentLoaded57052179559585729
domInteractive211383141857
firstPaint25970800193243734
backgroundConnect1153561324
firstReactRender27194153035
getState271153103344
initialActions104112
loadScripts56851978658584720
setupStore1142541217
numNetworkReqs1257720570
WebpackPower User HomeuiStartup14561074241724315932000
load68259112471366841065
domContentLoaded67258412341356701054
domInteractive40181774234162
firstPaint285991081211285684
backgroundConnect1563761826
firstReactRender8148114128797
getState15712331133166231
initialActions104111
loadScripts66958212221336681046
setupStore25669153654
numNetworkReqs1456429254181279
FirefoxBrowserifyStandard HomeuiStartup12531066159011613011522
load105691213228511061206
domContentLoaded105490613218511051206
domInteractive60232323982148
firstPaint------
backgroundConnect4022155234292
firstReactRender22183842233
getState106556920
initialActions102112
loadScripts103189613017910791180
setupStore1155471029
numNetworkReqs1156916657
BrowserifyPower User HomeuiStartup25941998341127027833156
load1156933157818012321513
domContentLoaded1155932157718112321513
domInteractive13433592128159493
firstPaint------
backgroundConnect16124753163208615
firstReactRender85391562091124
getState21869837226183790
initialActions3135428
loadScripts1118913154717111751466
setupStore1306757186123641
numNetworkReqs89562084185192
WebpackStandard HomeuiStartup14561295193012814991751
load1232109514679312811427
domContentLoaded1232109514679312801427
domInteractive65271844181141
firstPaint------
backgroundConnect41171442542109
firstReactRender28207263036
getState146121151346
initialActions103122
loadScripts1206106214428812581388
setupStore155199231154
numNetworkReqs1256817763
WebpackPower User HomeuiStartup29372155370536531823605
load14461183202621316311896
domContentLoaded14451182202621316301896
domInteractive12729530120132455
firstPaint------
backgroundConnect18128819189210598
firstReactRender86391812095121
getState27385903267269832
initialActions50661038
loadScripts14091157200121216011848
setupStore1146809185114764
numNetworkReqs91552184582208
📊 Page Load Benchmark Results

Current Commit: 95a3a69 | Date: 11/21/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.05s (±38ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 733ms (±35ms) 🟢 | historical mean value: 728ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 78ms (±11ms) 🟢 | historical mean value: 78ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.05s 38ms 1.02s 1.33s 1.07s 1.33s
domContentLoaded 733ms 35ms 708ms 1.00s 751ms 1.00s
firstPaint 78ms 11ms 60ms 168ms 88ms 168ms
firstContentfulPaint 78ms 11ms 60ms 168ms 88ms 168ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 53 Bytes (0%)
  • ui: 328 Bytes (0%)
  • common: 20 Bytes (0%)

@jpuri jpuri requested a review from matthewwalsh0 November 21, 2025 10:56
@jpuri jpuri changed the title fix: cp-13.11.0 dapp swap fix conversion rate for pol native token fix: cp-13.10.1 dapp swap fix conversion rate for pol native token Nov 21, 2025
@metamaskbot
Copy link
Collaborator

Builds ready [e7a4726]
UI Startup Metrics (1241 ± 89 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1241109415078912891435
load105692112468111061204
domContentLoaded104891612328011001197
domInteractive221384161868
firstPaint58674125442410641164
backgroundConnect21319727011217239
firstReactRender27195183144
getState341682124158
initialActions105112
loadScripts843708102079905983
setupStore1153131117
numNetworkReqs1257820572
BrowserifyPower User HomeuiStartup18581544267526120442404
load99887616061649951463
domContentLoaded98386815971629721455
domInteractive36162114127151
firstPaint5208916113979211383
backgroundConnect22420126814232253
firstReactRender79421351486100
getState17712533045193295
initialActions104112
loadScripts77866413851637671248
setupStore20992122547
numNetworkReqs1296128855164246
WebpackStandard HomeuiStartup805710101965834942
load59955085260608758
domContentLoaded59554284359601752
domInteractive231488182079
firstPaint239103626158226598
backgroundConnect1253271729
firstReactRender29204363439
getState291295123845
initialActions104111
loadScripts59253983457599743
setupStore1152641416
numNetworkReqs1257820576
WebpackPower User HomeuiStartup14711059250224216251941
load68359213381336801034
domContentLoaded67258713241326651027
domInteractive38172084131155
firstPaint271821334223232864
backgroundConnect1483151826
firstReactRender8254125118997
getState15912526830167237
initialActions104112
loadScripts66958513091306631018
setupStore24766153553
numNetworkReqs1466430054174282
FirefoxBrowserifyStandard HomeuiStartup12081045157311012601433
load102488913708910831155
domContentLoaded102388913708910801155
domInteractive62302644578186
firstPaint------
backgroundConnect3920149224178
firstReactRender21175052133
getState1167811920
initialActions103112
loadScripts99985512928110481133
setupStore105748926
numNetworkReqs1157115754
BrowserifyPower User HomeuiStartup26221684357636428443353
load1158893161018212371537
domContentLoaded1157892161018212361537
domInteractive14031570122155458
firstPaint------
backgroundConnect19024932237180768
firstReactRender86391712194125
getState21084884211190814
initialActions217127
loadScripts1124878159117811821502
setupStore1705833249157780
numNetworkReqs90572144383197
WebpackStandard HomeuiStartup14291263179111914681713
load1220105314949412671414
domContentLoaded1220105314949412671413
domInteractive56272073578133
firstPaint------
backgroundConnect4119174244293
firstReactRender26196762834
getState11615115919
initialActions102112
loadScripts1194104014458912471374
setupStore1155791034
numNetworkReqs1257017663
WebpackPower User HomeuiStartup28222260372732330043523
load13731108188219615231727
domContentLoaded13721107188219615231727
domInteractive12529534120156431
firstPaint------
backgroundConnect13728694148171568
firstReactRender83381532196114
getState297841140290399887
initialActions3048637
loadScripts13401089178618814811696
setupStore118582119299705
numNetworkReqs87512134482203
📊 Page Load Benchmark Results

Current Commit: e7a4726 | Date: 11/21/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.03s (±39ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 719ms (±36ms) 🟢 | historical mean value: 727ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 78ms (±13ms) 🟢 | historical mean value: 79ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.03s 39ms 1.01s 1.32s 1.07s 1.32s
domContentLoaded 719ms 36ms 696ms 988ms 754ms 988ms
firstPaint 78ms 13ms 60ms 184ms 92ms 184ms
firstContentfulPaint 78ms 13ms 60ms 184ms 92ms 184ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 53 Bytes (0%)
  • ui: 328 Bytes (0%)
  • common: 20 Bytes (0%)

@jpuri jpuri added this pull request to the merge queue Nov 21, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Nov 21, 2025
@jpuri jpuri enabled auto-merge November 21, 2025 12:15
jest.spyOn(Utils, 'fetchTokenExchangeRates').mockResolvedValue({
'0x0000000000000000000000000000000000001010': 4052.27,
'0x833589fcd6edb6e08f4c7c32d4f71b54bda02913': 0.999804,
});
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Test mocks unrequested data masking logic bug

The test mocks fetchTokenExchangeRates to return a rate for the Polygon native asset (0x...1010), even though the hook implementation does not request this address. This mismatch between the mock and the actual implementation masks the bug where the rate is never fetched in production.

Fix in Cursor Fix in Web

@metamaskbot
Copy link
Collaborator

Builds ready [ccd13a6]
UI Startup Metrics (1208 ± 100 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12081054155410012611397
load102489013649210801190
domContentLoaded101788413559210761177
domInteractive231498171968
firstPaint52491131440710231171
backgroundConnect21619427815221252
firstReactRender27195792947
getState321660103756
initialActions109112
loadScripts810669112893866969
setupStore1063141116
numNetworkReqs1257820573
BrowserifyPower User HomeuiStartup18211492278927519492514
load94783315751749441426
domContentLoaded93380215491739191414
domInteractive32151743427131
firstPaint65013715793648961401
backgroundConnect20118324212206225
firstReactRender77461481584108
getState18813738453201338
initialActions104112
loadScripts74862913531697371212
setupStore1795282332
numNetworkReqs1426831353171289
WebpackStandard HomeuiStartup807719104673835977
load61055884264617786
domContentLoaded60655383664613780
domInteractive231499171973
firstPaint21498662129207579
backgroundConnect1253571527
firstReactRender28203853136
getState281452103745
initialActions104113
loadScripts60355182762611771
setupStore1263251427
numNetworkReqs1257720573
WebpackPower User HomeuiStartup14581159250923315851965
load67758214501376821042
domContentLoaded66657614401366651033
domInteractive37162544230146
firstPaint271911481228256682
backgroundConnect1575381927
firstReactRender82471141288110
getState15412424328160226
initialActions103112
loadScripts66357414301346631025
setupStore201062122748
numNetworkReqs1426431055180253
FirefoxBrowserifyStandard HomeuiStartup12351091165711013041461
load104593012518411111214
domContentLoaded104392512518411071209
domInteractive67293325283189
firstPaint------
backgroundConnect3822161233685
firstReactRender21184542226
getState10612514915
initialActions102112
loadScripts102391412238110831191
setupStore105759930
numNetworkReqs1156615662
BrowserifyPower User HomeuiStartup27611843401141130823523
load1191924162419213061596
domContentLoaded1190924161919213051596
domInteractive14530586128181475
firstPaint------
backgroundConnect244281117271359866
firstReactRender903915620100127
getState23085889230198843
initialActions3146628
loadScripts1150910159918412041512
setupStore1235831203105779
numNetworkReqs89552114483207
WebpackStandard HomeuiStartup13991235193111814501656
load1193104114489212401406
domContentLoaded1193104114479212401406
domInteractive61272384180130
firstPaint------
backgroundConnect3415110163778
firstReactRender26197892836
getState126123161041
initialActions103122
loadScripts1172102814208812231360
setupStore125128151037
numNetworkReqs1156416662
WebpackPower User HomeuiStartup27202020364329028743278
load13781108184317714821729
domContentLoaded13771107184217614821729
domInteractive13230547128149511
firstPaint------
backgroundConnect14625660144213533
firstReactRender82391652192120
getState25473856258249787
initialActions4143738
loadScripts13381093177316914381689
setupStore1146764178108660
numNetworkReqs90552134391204
📊 Page Load Benchmark Results

Current Commit: ccd13a6 | Date: 11/21/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±37ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 724ms (±35ms) 🟢 | historical mean value: 727ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 77ms (±12ms) 🟢 | historical mean value: 79ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 37ms 1.01s 1.30s 1.07s 1.30s
domContentLoaded 724ms 35ms 702ms 972ms 746ms 972ms
firstPaint 77ms 12ms 64ms 184ms 88ms 184ms
firstContentfulPaint 77ms 12ms 64ms 184ms 88ms 184ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 53 Bytes (0%)
  • ui: 328 Bytes (0%)
  • common: 20 Bytes (0%)

@jpuri jpuri added this pull request to the merge queue Nov 21, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Nov 21, 2025
@jpuri jpuri added this pull request to the merge queue Nov 21, 2025
github-merge-queue bot pushed a commit that referenced this pull request Nov 21, 2025
…38102)

<!--
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 conversion rate for POL native token.

## **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: MetaMask/MetaMask-planning#6327

## **Manual testing steps**

1. Trigger swap including POL native token
2. Check that metrics are recorded correctly and dapp-swap UI shows
correct values

## **Screenshots/Recordings**
TODO

## **Pre-merge author checklist**

- [X] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
Extension Coding
Standards](https://github.com/MetaMask/metamask-extension/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-extension/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 USD conversion for Polygon native token by mapping POL’s special
address and adds targeted unit tests.
> 
> - **Hook `useDappSwapUSDValues`
(`ui/pages/.../useDappSwapUSDValues.ts`)**:
> - Map Polygon native token USD rate: when `chainId ===
CHAIN_IDS.POLYGON`, set the native asset’s address rate from
`0x0000000000000000000000000000000000001010`.
> - Switch `isNativeAddress` to `helpers/utils/token-insights` and
import `CHAIN_IDS`.
> - Refactor exchange-rate fetch to async IIFE within `useAsyncResult`.
> - **Tests (`ui/pages/.../useDappSwapUSDValues.test.ts`)**:
> - Enhance `runHook` to accept custom token addresses and confirmation.
> - Add Polygon-specific test asserting fiat rates include both native
addresses with correct USD value.
>   - Mock token details and rates accordingly.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
ccd13a6. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
Merged via the queue into main with commit 0aa98dc Nov 21, 2025
804 of 812 checks passed
@jpuri jpuri deleted the polygon_fix branch November 21, 2025 15:32
@github-actions github-actions bot locked and limited conversation to collaborators Nov 21, 2025
@metamaskbot metamaskbot added the release-13.12.0 Issue or pull request that will be included in release 13.12.0 label Nov 21, 2025
@gauthierpetetin gauthierpetetin changed the title fix: cp-13.10.1 dapp swap fix conversion rate for pol native token fix: cp-13.10.1 cp-13.11.0 dapp swap fix conversion rate for pol native token Nov 21, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

no-changelog no-changelog Indicates no external facing user changes, therefore no changelog documentation needed release-13.12.0 Issue or pull request that will be included in release 13.12.0 size-S team-confirmations Push issues to confirmations team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants