From 244ca5ad77f1e9879d7374ae7f0c0c1daf97904a Mon Sep 17 00:00:00 2001 From: rodrigopavezi Date: Tue, 10 Feb 2026 10:05:03 -0300 Subject: [PATCH 1/3] Add USDT and USDC for TRON --- tokens/token-list.json | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/tokens/token-list.json b/tokens/token-list.json index d44570a..3dca0bb 100644 --- a/tokens/token-list.json +++ b/tokens/token-list.json @@ -8168,6 +8168,28 @@ "type": "ERC20", "hash": "0x036CbD53842c5426634e7929541eC2318f3dCF7e", "chainId": 84532 + }, + { + "id": "USDT-tron", + "name": "Tether USD", + "symbol": "USDT", + "decimals": 6, + "address": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t", + "network": "tron", + "type": "TRC20", + "hash": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t", + "chainId": 728126428 + }, + { + "id": "USDC-tron", + "name": "USD Coin", + "symbol": "USDC", + "decimals": 6, + "address": "TEkxiTehnzSmSe2XqrBj4w32RUN966rdz8", + "network": "tron", + "type": "TRC20", + "hash": "TEkxiTehnzSmSe2XqrBj4w32RUN966rdz8", + "chainId": 728126428 } ] } From 74e4a18d7875d8efb83399392564dfb5e1c3779c Mon Sep 17 00:00:00 2001 From: rodrigopavezi Date: Tue, 10 Feb 2026 10:08:05 -0300 Subject: [PATCH 2/3] Bump version --- tokens/token-list.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tokens/token-list.json b/tokens/token-list.json index 3dca0bb..73c76b1 100644 --- a/tokens/token-list.json +++ b/tokens/token-list.json @@ -3,7 +3,7 @@ "timestamp": "Set automatically during deployment", "version": { "major": 1, - "minor": 4, + "minor": 5, "patch": 0 }, "tokens": [ From bae4f365a9ad4778d7c13a888a05a84456112698 Mon Sep 17 00:00:00 2001 From: rodrigopavezi Date: Wed, 11 Feb 2026 10:27:12 -0300 Subject: [PATCH 3/3] feat: Add TRC20 and TRON support to token validation and schema --- src/schemas/token-list-schema.json | 6 ++++-- src/types/index.ts | 3 +++ src/validation/validate.ts | 10 +++++++++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/schemas/token-list-schema.json b/src/schemas/token-list-schema.json index 751a1db..f436731 100644 --- a/src/schemas/token-list-schema.json +++ b/src/schemas/token-list-schema.json @@ -88,7 +88,8 @@ "zksynceratestnet", "base", "base-sepolia", - "fiat" + "fiat", + "tron" ] }, "type": { @@ -96,7 +97,8 @@ "enum": [ "ETH", "ERC20", - "ISO4217" + "ISO4217", + "TRC20" ] }, "hash": { diff --git a/src/types/index.ts b/src/types/index.ts index 9ad4063..d67a0d1 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -26,6 +26,7 @@ export enum TokenType { ISO4217 = "ISO4217", ERC20 = "ERC20", ETH = "ETH", + TRC20 = "TRC20", } export enum NetworkType { @@ -52,6 +53,7 @@ export enum NetworkType { BASE = "base", BASE_SEPOLIA = "base-sepolia", FIAT = "fiat", + TRON = "tron", } /** @@ -81,4 +83,5 @@ export const CHAIN_IDS: Record = { base: 8453, "base-sepolia": 84532, fiat: 0, // Special case for fiat currencies + tron: 728126428, }; diff --git a/src/validation/validate.ts b/src/validation/validate.ts index 741d556..14e0206 100644 --- a/src/validation/validate.ts +++ b/src/validation/validate.ts @@ -62,7 +62,15 @@ export async function validateTokenList( async function validateToken(token: RequestToken): Promise { // Validate address format - if (!ethers.isAddress(token.address)) { + if (token.network === NetworkType.TRON) { + // TRON addresses are Base58-encoded, starting with 'T', 34 characters long + if (!/^T[1-9A-HJ-NP-Za-km-z]{33}$/.test(token.address)) { + console.error( + `Invalid TRON address format for token ${token.id}: ${token.address}` + ); + return false; + } + } else if (!ethers.isAddress(token.address)) { console.error( `Invalid address format for token ${token.id}: ${token.address}` );