From 90b07d46263dda2312d951b791581f4523a0f174 Mon Sep 17 00:00:00 2001 From: alexandre-abrioux-rf <237318315+alexandre-abrioux-rf@users.noreply.github.com> Date: Thu, 24 Sep 2026 15:14:50 +0200 Subject: [PATCH 1/2] add failing test --- .gitignore | 2 ++ packages/currency/test/currencyManager.test.ts | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/.gitignore b/.gitignore index e767737c1b..5efc5d2a9e 100644 --- a/.gitignore +++ b/.gitignore @@ -26,6 +26,8 @@ tsconfig.tsbuildinfo tsconfig.build.tsbuildinfo # tests +/coverage/ +/reports/ /packages/*/coverage/ /packages/*/reports/ diff --git a/packages/currency/test/currencyManager.test.ts b/packages/currency/test/currencyManager.test.ts index 574fb3689a..f4c3a1fab9 100644 --- a/packages/currency/test/currencyManager.test.ts +++ b/packages/currency/test/currencyManager.test.ts @@ -764,6 +764,15 @@ describe('CurrencyManager', () => { address: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359', }); }); + it('Detects native USDC matic (aka USDCn-matic) by USDC symbol and matic network', () => { + expect(currencyManager.from('USDC', 'matic')).toMatchObject({ + type: RequestLogicTypes.CURRENCY.ERC20, + network: 'matic', + symbol: 'USDC', + id: 'USDCn-matic', + address: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359', + }); + }); }); describe('validateAleoAddress', () => { From 9c3c247ba65ed5d311d61e3132b2a2751490ec88 Mon Sep 17 00:00:00 2001 From: alexandre-abrioux-rf <237318315+alexandre-abrioux-rf@users.noreply.github.com> Date: Thu, 24 Sep 2026 15:22:17 +0200 Subject: [PATCH 2/2] fix the test --- packages/currency/src/currencyManager.ts | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/packages/currency/src/currencyManager.ts b/packages/currency/src/currencyManager.ts index 994d406809..dde780b680 100644 --- a/packages/currency/src/currencyManager.ts +++ b/packages/currency/src/currencyManager.ts @@ -73,7 +73,10 @@ export class CurrencyManager implements CurrencyTypes.ICurrency } if (network && currencyIdentifier.indexOf(network) === -1) { - currencyIdentifier = CurrencyManager.currencyId({ symbol: currencyIdentifier, network }); + currencyIdentifier = CurrencyManager.currencyId( + { symbol: currencyIdentifier, network }, + this.knownCurrencies, + ); } const currencyFromId = this.fromId(currencyIdentifier); @@ -232,8 +235,16 @@ export class CurrencyManager implements CurrencyTypes.ICurrency /** * Utility function to compute the unique identifier */ - static currencyId(currency: { symbol: string; network?: string }): string { - return 'network' in currency ? `${currency.symbol}-${currency.network}` : currency.symbol; + static currencyId( + currency: { symbol: string; network?: string }, + knownCurrencies?: CurrencyTypes.CurrencyDefinition[], + ): string { + return 'network' in currency + ? knownCurrencies?.find( + (ccy) => + 'network' in ccy && ccy.network === currency.network && ccy.symbol === currency.symbol, + )?.id ?? `${currency.symbol}-${currency.network}` + : currency.symbol; } /**