@daimo/pay-common 1.6.4 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/token.js CHANGED
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.polygonWETH = exports.polygonWPOL = exports.polygonPOL = exports.optimismUSDCe = exports.optimismUSDT = exports.optimismDAI = exports.optimismAxlUSDC = exports.optimismUSDC = exports.optimismWETH = exports.optimismETH = exports.mantleAxlUSDC = exports.mantleUSDT = exports.mantleBridgedUSDC = exports.mantleWMNT = exports.mantleMNT = exports.lineaDAI = exports.lineaAxlUSDC = exports.lineaUSDC = exports.lineaWETH = exports.lineaETH = exports.ethereumEURC = exports.ethereumUSDT = exports.ethereumDAI = exports.ethereumUSDC = exports.ethereumWETH = exports.ethereumETH = exports.bscUSDT = exports.bscUSDC = exports.bscAxlUSDC = exports.bscWBNB = exports.bscBNB = exports.blastUSDB = exports.blastWETH = exports.blastETH = exports.baseAxlUSDC = exports.baseUSDT = exports.baseDAI = exports.baseUSDbC = exports.baseEURC = exports.baseUSDC = exports.baseWETH = exports.baseETH = exports.arbitrumUSDCe = exports.arbitrumUSDT = exports.arbitrumDAI = exports.arbitrumAxlUSDC = exports.arbitrumUSDC = exports.arbitrumWETH = exports.arbitrumETH = exports.TokenLogo = void 0;
4
- exports.supportedTokens = exports.worldchainWLD = exports.worldchainUSDCe = exports.worldchainWETH = exports.worldchainETH = exports.solanaUSDC = exports.solanaWSOL = exports.solanaSOL = exports.polygonUSDCe = exports.polygonUSDT = exports.polygonDAI = exports.polygonAxlUSDC = exports.polygonUSDC = void 0;
5
- exports.getTokensForChain = getTokensForChain;
4
+ exports.knownTokens = exports.worldchainWLD = exports.worldchainUSDCe = exports.worldchainWBTC = exports.worldchainWETH = exports.worldchainETH = exports.solanaUSDC = exports.solanaWSOL = exports.solanaSOL = exports.polygonUSDCe = exports.polygonUSDT = exports.polygonDAI = exports.polygonAxlUSDC = exports.polygonUSDC = void 0;
5
+ exports.getKnownToken = getKnownToken;
6
6
  exports.getChainNativeToken = getChainNativeToken;
7
7
  exports.getChainWrappedNativeToken = getChainWrappedNativeToken;
8
8
  exports.getChainNativeUSDC = getChainNativeUSDC;
@@ -10,6 +10,7 @@ exports.getChainAxlUSDC = getChainAxlUSDC;
10
10
  exports.getChainBestUSDC = getChainBestUSDC;
11
11
  exports.getChainDAI = getChainDAI;
12
12
  const viem_1 = require("viem");
13
+ const assert_1 = require("./assert");
13
14
  const chain_1 = require("./chain");
14
15
  var TokenLogo;
15
16
  (function (TokenLogo) {
@@ -46,6 +47,7 @@ exports.arbitrumUSDC = {
46
47
  token: (0, viem_1.getAddress)("0xaf88d065e77c8cC2239327C5EDb3A432268e5831"),
47
48
  name: "USD Coin",
48
49
  symbol: "USDC",
50
+ fiatISO: "USD",
49
51
  decimals: 6,
50
52
  logoURI: TokenLogo.USDC,
51
53
  };
@@ -53,6 +55,7 @@ exports.arbitrumAxlUSDC = {
53
55
  chainId: chain_1.arbitrum.chainId,
54
56
  token: (0, viem_1.getAddress)("0xEB466342C4d449BC9f53A865D5Cb90586f405215"),
55
57
  decimals: 6,
58
+ fiatISO: "USD",
56
59
  name: "Axelar Wrapped USDC",
57
60
  symbol: "axlUSDC",
58
61
  logoURI: TokenLogo.USDC,
@@ -61,6 +64,7 @@ exports.arbitrumDAI = {
61
64
  chainId: chain_1.arbitrum.chainId,
62
65
  token: (0, viem_1.getAddress)("0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1"),
63
66
  decimals: 18,
67
+ fiatISO: "USD",
64
68
  name: "Dai Stablecoin",
65
69
  symbol: "DAI",
66
70
  logoURI: TokenLogo.DAI,
@@ -69,6 +73,7 @@ exports.arbitrumUSDT = {
69
73
  chainId: chain_1.arbitrum.chainId,
70
74
  token: (0, viem_1.getAddress)("0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"),
71
75
  decimals: 6,
76
+ fiatISO: "USD",
72
77
  name: "Tether USD",
73
78
  symbol: "USDT",
74
79
  logoURI: TokenLogo.USDT,
@@ -77,6 +82,7 @@ exports.arbitrumUSDCe = {
77
82
  chainId: chain_1.arbitrum.chainId,
78
83
  token: (0, viem_1.getAddress)("0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8"),
79
84
  decimals: 6,
85
+ fiatISO: "USD",
80
86
  name: "Bridged USD Coin",
81
87
  symbol: "USDCe",
82
88
  logoURI: TokenLogo.USDC,
@@ -107,6 +113,7 @@ exports.baseUSDC = {
107
113
  token: (0, viem_1.getAddress)("0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"),
108
114
  name: "USD Coin",
109
115
  symbol: "USDC",
116
+ fiatISO: "USD",
110
117
  decimals: 6,
111
118
  logoURI: TokenLogo.USDC,
112
119
  };
@@ -114,6 +121,7 @@ exports.baseEURC = {
114
121
  chainId: chain_1.base.chainId,
115
122
  token: (0, viem_1.getAddress)("0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42"),
116
123
  decimals: 6,
124
+ fiatISO: "EUR",
117
125
  name: "EURC",
118
126
  symbol: "EURC",
119
127
  logoURI: TokenLogo.EURC,
@@ -123,6 +131,7 @@ exports.baseUSDbC = {
123
131
  token: (0, viem_1.getAddress)("0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA"),
124
132
  name: "Bridged USD Coin", // USDbC has a bad name & logo on CoinGecko
125
133
  symbol: "USDbC",
134
+ fiatISO: "USD",
126
135
  decimals: 6,
127
136
  logoURI: `https://daimo.com/assets/foreign-coin-logos/USDbC.png`,
128
137
  };
@@ -131,6 +140,7 @@ exports.baseDAI = {
131
140
  token: (0, viem_1.getAddress)("0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb"),
132
141
  name: "Dai Stablecoin",
133
142
  symbol: "DAI",
143
+ fiatISO: "USD",
134
144
  decimals: 18,
135
145
  logoURI: TokenLogo.DAI,
136
146
  };
@@ -139,6 +149,7 @@ exports.baseUSDT = {
139
149
  token: (0, viem_1.getAddress)("0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2"),
140
150
  name: "Tether USD",
141
151
  symbol: "USDT",
152
+ fiatISO: "USD",
142
153
  decimals: 6,
143
154
  logoURI: TokenLogo.USDT,
144
155
  };
@@ -146,6 +157,7 @@ exports.baseAxlUSDC = {
146
157
  chainId: chain_1.base.chainId,
147
158
  token: (0, viem_1.getAddress)("0xEB466342C4d449BC9f53A865D5Cb90586f405215"),
148
159
  decimals: 6,
160
+ fiatISO: "USD",
149
161
  name: "Axelar Wrapped USDC",
150
162
  symbol: "axlUSDC",
151
163
  logoURI: TokenLogo.USDC,
@@ -176,6 +188,7 @@ exports.blastUSDB = {
176
188
  chainId: chain_1.blast.chainId,
177
189
  token: (0, viem_1.getAddress)("0x4300000000000000000000000000000000000003"),
178
190
  decimals: 18,
191
+ fiatISO: "USD",
179
192
  name: "USDB",
180
193
  symbol: "USDB",
181
194
  logoURI: TokenLogo.USDB,
@@ -202,6 +215,7 @@ exports.bscAxlUSDC = {
202
215
  chainId: chain_1.bsc.chainId,
203
216
  token: (0, viem_1.getAddress)("0x4268B8F0B87b6Eae5d897996E6b845ddbD99Adf3"),
204
217
  decimals: 6,
218
+ fiatISO: "USD",
205
219
  name: "Axelar Wrapped USDC",
206
220
  symbol: "axlUSDC",
207
221
  logoURI: TokenLogo.USDC,
@@ -210,7 +224,8 @@ exports.bscUSDC = {
210
224
  chainId: chain_1.bsc.chainId,
211
225
  token: (0, viem_1.getAddress)("0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d"),
212
226
  decimals: 18,
213
- name: "Binance-Peg USD Coin",
227
+ fiatISO: "USD",
228
+ name: "USD Coin",
214
229
  symbol: "USDC",
215
230
  logoURI: TokenLogo.USDC,
216
231
  };
@@ -218,6 +233,7 @@ exports.bscUSDT = {
218
233
  chainId: chain_1.bsc.chainId,
219
234
  token: (0, viem_1.getAddress)("0x55d398326f99059fF775485246999027B3197955"),
220
235
  decimals: 18,
236
+ fiatISO: "USD",
221
237
  name: "Tether USD",
222
238
  symbol: "USDT",
223
239
  logoURI: TokenLogo.USDT,
@@ -239,6 +255,7 @@ exports.ethereumUSDC = {
239
255
  chainId: chain_1.ethereum.chainId,
240
256
  token: (0, viem_1.getAddress)("0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"),
241
257
  decimals: 6,
258
+ fiatISO: "USD",
242
259
  name: "USD Coin",
243
260
  symbol: "USDC",
244
261
  logoURI: TokenLogo.USDC,
@@ -247,6 +264,7 @@ exports.ethereumDAI = {
247
264
  chainId: chain_1.ethereum.chainId,
248
265
  token: (0, viem_1.getAddress)("0x6B175474E89094C44Da98b954EedeAC495271d0F"),
249
266
  decimals: 18,
267
+ fiatISO: "USD",
250
268
  name: "Dai Stablecoin",
251
269
  symbol: "DAI",
252
270
  logoURI: TokenLogo.DAI,
@@ -255,6 +273,7 @@ exports.ethereumUSDT = {
255
273
  chainId: chain_1.ethereum.chainId,
256
274
  token: (0, viem_1.getAddress)("0xdAC17F958D2ee523a2206206994597C13D831ec7"),
257
275
  decimals: 6,
276
+ fiatISO: "USD",
258
277
  name: "Tether USD",
259
278
  symbol: "USDT",
260
279
  logoURI: TokenLogo.USDT,
@@ -263,6 +282,7 @@ exports.ethereumEURC = {
263
282
  chainId: chain_1.ethereum.chainId,
264
283
  token: (0, viem_1.getAddress)("0x1aBaEA1f7C830bD89Acc67eC4af516284b1bC33c"),
265
284
  decimals: 6,
285
+ fiatISO: "EUR",
266
286
  name: "EURC",
267
287
  symbol: "EURC",
268
288
  logoURI: TokenLogo.EURC,
@@ -291,6 +311,7 @@ exports.lineaUSDC = {
291
311
  chainId: chain_1.linea.chainId,
292
312
  token: (0, viem_1.getAddress)("0x176211869cA2b568f2A7D4EE941E073a821EE1ff"),
293
313
  decimals: 6,
314
+ fiatISO: "USD",
294
315
  name: "USD Coin",
295
316
  symbol: "USDC",
296
317
  logoURI: TokenLogo.USDC,
@@ -299,6 +320,7 @@ exports.lineaAxlUSDC = {
299
320
  chainId: chain_1.linea.chainId,
300
321
  token: (0, viem_1.getAddress)("0xEB466342C4d449BC9f53A865D5Cb90586f405215"),
301
322
  decimals: 6,
323
+ fiatISO: "USD",
302
324
  name: "Axelar Wrapped USDC",
303
325
  symbol: "axlUSDC",
304
326
  logoURI: TokenLogo.USDC,
@@ -307,6 +329,7 @@ exports.lineaDAI = {
307
329
  chainId: chain_1.linea.chainId,
308
330
  token: (0, viem_1.getAddress)("0x4AF15ec2A0BD43Db75dd04E62FAA3B8EF36b00d5"),
309
331
  decimals: 18,
332
+ fiatISO: "USD",
310
333
  name: "Dai Stablecoin",
311
334
  symbol: "DAI",
312
335
  logoURI: TokenLogo.DAI,
@@ -339,6 +362,7 @@ exports.mantleBridgedUSDC = {
339
362
  chainId: chain_1.mantle.chainId,
340
363
  token: (0, viem_1.getAddress)("0x09Bc4E0D864854c6aFB6eB9A9cdF58aC190D0dF9"),
341
364
  decimals: 6,
365
+ fiatISO: "USD",
342
366
  name: "USD Coin",
343
367
  symbol: "USDC",
344
368
  logoURI: TokenLogo.USDC,
@@ -347,6 +371,7 @@ exports.mantleUSDT = {
347
371
  chainId: chain_1.mantle.chainId,
348
372
  token: (0, viem_1.getAddress)("0x201eba5cc46d216ce6dc03f6a759e8e766e956ae"),
349
373
  decimals: 6,
374
+ fiatISO: "USD",
350
375
  name: "Tether USD",
351
376
  symbol: "USDT",
352
377
  logoURI: TokenLogo.USDT,
@@ -355,6 +380,7 @@ exports.mantleAxlUSDC = {
355
380
  chainId: chain_1.mantle.chainId,
356
381
  token: (0, viem_1.getAddress)("0xEB466342C4d449BC9f53A865D5Cb90586f405215"),
357
382
  decimals: 6,
383
+ fiatISO: "USD",
358
384
  name: "Axelar Wrapped USDC",
359
385
  symbol: "axlUSDC",
360
386
  logoURI: TokenLogo.USDC,
@@ -382,6 +408,7 @@ exports.optimismUSDC = {
382
408
  chainId: chain_1.optimism.chainId,
383
409
  token: (0, viem_1.getAddress)("0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85"),
384
410
  decimals: 6,
411
+ fiatISO: "USD",
385
412
  name: "USD Coin",
386
413
  symbol: "USDC",
387
414
  logoURI: TokenLogo.USDC,
@@ -390,6 +417,7 @@ exports.optimismAxlUSDC = {
390
417
  chainId: chain_1.optimism.chainId,
391
418
  token: (0, viem_1.getAddress)("0xEB466342C4d449BC9f53A865D5Cb90586f405215"),
392
419
  decimals: 6,
420
+ fiatISO: "USD",
393
421
  name: "Axelar Wrapped USDC",
394
422
  symbol: "axlUSDC",
395
423
  logoURI: TokenLogo.USDC,
@@ -398,6 +426,7 @@ exports.optimismDAI = {
398
426
  chainId: chain_1.optimism.chainId,
399
427
  token: (0, viem_1.getAddress)("0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1"),
400
428
  decimals: 18,
429
+ fiatISO: "USD",
401
430
  name: "Dai Stablecoin",
402
431
  symbol: "DAI",
403
432
  logoURI: TokenLogo.DAI,
@@ -406,6 +435,7 @@ exports.optimismUSDT = {
406
435
  chainId: chain_1.optimism.chainId,
407
436
  token: (0, viem_1.getAddress)("0x94b008aA00579c1307B0EF2c499aD98a8ce58e58"),
408
437
  decimals: 6,
438
+ fiatISO: "USD",
409
439
  name: "Tether USD",
410
440
  symbol: "USDT",
411
441
  logoURI: TokenLogo.USDT,
@@ -414,6 +444,7 @@ exports.optimismUSDCe = {
414
444
  chainId: chain_1.optimism.chainId,
415
445
  token: (0, viem_1.getAddress)("0x7F5c764cBc14f9669B88837ca1490cCa17c31607"),
416
446
  decimals: 6,
447
+ fiatISO: "USD",
417
448
  name: "Bridged USD Coin",
418
449
  symbol: "USDCe",
419
450
  logoURI: TokenLogo.USDC,
@@ -456,6 +487,7 @@ exports.polygonUSDC = {
456
487
  chainId: chain_1.polygon.chainId,
457
488
  token: (0, viem_1.getAddress)("0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359"),
458
489
  decimals: 6,
490
+ fiatISO: "USD",
459
491
  name: "USD Coin",
460
492
  symbol: "USDC",
461
493
  logoURI: TokenLogo.USDC,
@@ -464,6 +496,7 @@ exports.polygonAxlUSDC = {
464
496
  chainId: chain_1.polygon.chainId,
465
497
  token: (0, viem_1.getAddress)("0x750e4C4984a9e0f12978eA6742Bc1c5D248f40ed"),
466
498
  decimals: 6,
499
+ fiatISO: "USD",
467
500
  name: "Axelar Wrapped USDC",
468
501
  symbol: "axlUSDC",
469
502
  logoURI: TokenLogo.USDC,
@@ -472,6 +505,7 @@ exports.polygonDAI = {
472
505
  chainId: chain_1.polygon.chainId,
473
506
  token: (0, viem_1.getAddress)("0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063"),
474
507
  decimals: 18,
508
+ fiatISO: "USD",
475
509
  name: "Dai Stablecoin",
476
510
  symbol: "DAI",
477
511
  logoURI: TokenLogo.DAI,
@@ -480,6 +514,7 @@ exports.polygonUSDT = {
480
514
  chainId: chain_1.polygon.chainId,
481
515
  token: (0, viem_1.getAddress)("0xc2132D05D31c914a87C6611C10748AEb04B58e8F"),
482
516
  decimals: 6,
517
+ fiatISO: "USD",
483
518
  name: "Tether USD",
484
519
  symbol: "USDT",
485
520
  logoURI: TokenLogo.USDT,
@@ -488,7 +523,8 @@ exports.polygonUSDCe = {
488
523
  chainId: chain_1.polygon.chainId,
489
524
  token: (0, viem_1.getAddress)("0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174"),
490
525
  decimals: 6,
491
- name: "Bridged USD Coin",
526
+ fiatISO: "USD",
527
+ name: "USD Coin (PoS)",
492
528
  symbol: "USDCe",
493
529
  logoURI: TokenLogo.USDC,
494
530
  };
@@ -525,6 +561,7 @@ exports.solanaUSDC = {
525
561
  chainId: chain_1.solana.chainId,
526
562
  token: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
527
563
  decimals: 6,
564
+ fiatISO: "USD",
528
565
  name: "USD Coin",
529
566
  symbol: "USDC",
530
567
  logoURI: TokenLogo.USDC,
@@ -542,10 +579,19 @@ exports.worldchainWETH = {
542
579
  symbol: "WETH",
543
580
  logoURI: TokenLogo.ETH,
544
581
  };
582
+ exports.worldchainWBTC = {
583
+ chainId: chain_1.worldchain.chainId,
584
+ token: (0, viem_1.getAddress)("0x03c7054bcb39f7b2e5b2c7acb37583e32d70cfa3"),
585
+ decimals: 8,
586
+ name: "Wrapped Bitcoin",
587
+ symbol: "WBTC",
588
+ logoURI: TokenLogo.WBTC,
589
+ };
545
590
  exports.worldchainUSDCe = {
546
591
  chainId: chain_1.worldchain.chainId,
547
592
  token: (0, viem_1.getAddress)("0x79A02482A880bCE3F13e09Da970dC34db4CD24d1"),
548
593
  decimals: 6,
594
+ fiatISO: "USD",
549
595
  name: "Bridged USD Coin",
550
596
  symbol: "USDCe",
551
597
  logoURI: TokenLogo.USDC,
@@ -561,36 +607,34 @@ exports.worldchainWLD = {
561
607
  const worldchainTokens = [
562
608
  exports.worldchainETH,
563
609
  exports.worldchainWETH,
610
+ exports.worldchainWBTC,
564
611
  exports.worldchainUSDCe,
565
612
  exports.worldchainWLD,
566
613
  ];
567
- exports.supportedTokens = [
568
- ...arbitrumTokens,
569
- ...baseTokens,
570
- ...blastTokens,
571
- ...bscTokens,
572
- ...ethereumTokens,
573
- ...lineaTokens,
574
- ...mantleTokens,
575
- ...optimismTokens,
576
- ...polygonTokens,
577
- ...solanaTokens,
578
- ...worldchainTokens,
579
- ];
580
- /* --------------------- Token Utils --------------------- */
581
- // Export tokens for each supported chain
582
- const tokensByChainId = new Map();
583
- for (const token of exports.supportedTokens) {
584
- const toks = tokensByChainId.get(token.chainId) || [];
585
- tokensByChainId.set(token.chainId, toks);
586
- toks.push(token);
587
- }
588
- /** All supported tokens on a given chain. */
589
- function getTokensForChain(chainId) {
590
- const ret = tokensByChainId.get(chainId);
591
- if (ret == null)
592
- throw new Error(`Unsupported chain ${chainId}`);
593
- return ret;
614
+ const knownTokensByChain = new Map([
615
+ [chain_1.arbitrum.chainId, arbitrumTokens],
616
+ [chain_1.base.chainId, baseTokens],
617
+ [chain_1.blast.chainId, blastTokens],
618
+ [chain_1.bsc.chainId, bscTokens],
619
+ [chain_1.ethereum.chainId, ethereumTokens],
620
+ [chain_1.linea.chainId, lineaTokens],
621
+ [chain_1.mantle.chainId, mantleTokens],
622
+ [chain_1.optimism.chainId, optimismTokens],
623
+ [chain_1.polygon.chainId, polygonTokens],
624
+ [chain_1.solana.chainId, solanaTokens],
625
+ [chain_1.worldchain.chainId, worldchainTokens],
626
+ ]);
627
+ /**
628
+ * Common tokens, included for convenience.
629
+ *
630
+ * Daimo Pay supports payment in many more tokens. In general, the goal for
631
+ * Pay is to accept all tokens with DEX liquidity on any major chain.
632
+ */
633
+ exports.knownTokens = Array.from(knownTokensByChain.values()).flat();
634
+ /* --------------------- Tokens By Address --------------------- */
635
+ const tokensByChainAddr = new Map(exports.knownTokens.map((t) => [`${t.chainId}-${t.token}`, t]));
636
+ function getKnownToken(chainId, tokenAddress) {
637
+ return tokensByChainAddr.get(`${chainId}-${tokenAddress}`);
594
638
  }
595
639
  /* --------------------- Tokens By Type --------------------- */
596
640
  var TokenType;
@@ -602,98 +646,131 @@ var TokenType;
602
646
  TokenType["AXL_USDC"] = "AXL_USDC";
603
647
  TokenType["DAI"] = "DAI";
604
648
  })(TokenType || (TokenType = {}));
605
- const tokensByChainAndType = {
606
- [chain_1.arbitrum.chainId]: {
607
- [TokenType.NATIVE]: exports.arbitrumETH,
608
- [TokenType.WRAPPED_NATIVE]: exports.arbitrumWETH,
609
- [TokenType.NATIVE_USDC]: exports.arbitrumUSDC,
610
- [TokenType.BRIDGED_USDC]: exports.arbitrumUSDCe,
611
- [TokenType.AXL_USDC]: exports.arbitrumAxlUSDC,
612
- [TokenType.DAI]: exports.arbitrumDAI,
613
- },
614
- [chain_1.base.chainId]: {
615
- [TokenType.NATIVE]: exports.baseETH,
616
- [TokenType.WRAPPED_NATIVE]: exports.baseWETH,
617
- [TokenType.NATIVE_USDC]: exports.baseUSDC,
618
- [TokenType.BRIDGED_USDC]: exports.baseUSDbC,
619
- [TokenType.AXL_USDC]: exports.baseAxlUSDC,
620
- [TokenType.DAI]: exports.baseDAI,
621
- },
622
- [chain_1.blast.chainId]: {
623
- [TokenType.NATIVE]: exports.blastETH,
624
- [TokenType.WRAPPED_NATIVE]: exports.blastWETH,
625
- },
626
- [chain_1.bsc.chainId]: {
627
- [TokenType.NATIVE]: exports.bscBNB,
628
- [TokenType.WRAPPED_NATIVE]: exports.bscWBNB,
629
- [TokenType.BRIDGED_USDC]: exports.bscUSDC,
630
- [TokenType.AXL_USDC]: exports.bscAxlUSDC,
631
- },
632
- [chain_1.ethereum.chainId]: {
633
- [TokenType.NATIVE]: exports.ethereumETH,
634
- [TokenType.WRAPPED_NATIVE]: exports.ethereumWETH,
635
- [TokenType.NATIVE_USDC]: exports.ethereumUSDC,
636
- [TokenType.DAI]: exports.ethereumDAI,
637
- },
638
- [chain_1.linea.chainId]: {
639
- [TokenType.NATIVE]: exports.lineaETH,
640
- [TokenType.WRAPPED_NATIVE]: exports.lineaWETH,
641
- [TokenType.NATIVE_USDC]: exports.lineaUSDC,
642
- [TokenType.AXL_USDC]: exports.lineaAxlUSDC,
643
- [TokenType.DAI]: exports.lineaDAI,
644
- },
645
- [chain_1.mantle.chainId]: {
646
- [TokenType.NATIVE]: exports.mantleMNT,
647
- [TokenType.WRAPPED_NATIVE]: exports.mantleWMNT,
648
- [TokenType.BRIDGED_USDC]: exports.mantleBridgedUSDC,
649
- [TokenType.AXL_USDC]: exports.mantleAxlUSDC,
650
- },
651
- [chain_1.optimism.chainId]: {
652
- [TokenType.NATIVE]: exports.optimismETH,
653
- [TokenType.WRAPPED_NATIVE]: exports.optimismWETH,
654
- [TokenType.NATIVE_USDC]: exports.optimismUSDC,
655
- [TokenType.BRIDGED_USDC]: exports.optimismUSDCe,
656
- [TokenType.AXL_USDC]: exports.optimismAxlUSDC,
657
- [TokenType.DAI]: exports.optimismDAI,
658
- },
659
- [chain_1.polygon.chainId]: {
660
- [TokenType.NATIVE]: exports.polygonPOL,
661
- [TokenType.WRAPPED_NATIVE]: exports.polygonWPOL,
662
- [TokenType.NATIVE_USDC]: exports.polygonUSDC,
663
- [TokenType.BRIDGED_USDC]: exports.polygonUSDCe,
664
- [TokenType.AXL_USDC]: exports.polygonAxlUSDC,
665
- [TokenType.DAI]: exports.polygonDAI,
666
- },
667
- [chain_1.solana.chainId]: {
668
- [TokenType.NATIVE]: exports.solanaSOL,
669
- [TokenType.WRAPPED_NATIVE]: exports.solanaWSOL,
670
- [TokenType.NATIVE_USDC]: exports.solanaUSDC,
671
- },
672
- [chain_1.worldchain.chainId]: {
673
- [TokenType.NATIVE]: exports.worldchainETH,
674
- [TokenType.WRAPPED_NATIVE]: exports.worldchainWETH,
675
- [TokenType.BRIDGED_USDC]: exports.worldchainUSDCe,
676
- },
677
- };
649
+ const tokensByChainAndType = new Map([
650
+ [
651
+ chain_1.arbitrum.chainId,
652
+ {
653
+ [TokenType.NATIVE]: exports.arbitrumETH,
654
+ [TokenType.WRAPPED_NATIVE]: exports.arbitrumWETH,
655
+ [TokenType.NATIVE_USDC]: exports.arbitrumUSDC,
656
+ [TokenType.BRIDGED_USDC]: exports.arbitrumUSDCe,
657
+ [TokenType.AXL_USDC]: exports.arbitrumAxlUSDC,
658
+ [TokenType.DAI]: exports.arbitrumDAI,
659
+ },
660
+ ],
661
+ [
662
+ chain_1.base.chainId,
663
+ {
664
+ [TokenType.NATIVE]: exports.baseETH,
665
+ [TokenType.WRAPPED_NATIVE]: exports.baseWETH,
666
+ [TokenType.NATIVE_USDC]: exports.baseUSDC,
667
+ [TokenType.BRIDGED_USDC]: exports.baseUSDbC,
668
+ [TokenType.AXL_USDC]: exports.baseAxlUSDC,
669
+ [TokenType.DAI]: exports.baseDAI,
670
+ },
671
+ ],
672
+ [
673
+ chain_1.blast.chainId,
674
+ {
675
+ [TokenType.NATIVE]: exports.blastETH,
676
+ [TokenType.WRAPPED_NATIVE]: exports.blastWETH,
677
+ },
678
+ ],
679
+ [
680
+ chain_1.bsc.chainId,
681
+ {
682
+ [TokenType.NATIVE]: exports.bscBNB,
683
+ [TokenType.WRAPPED_NATIVE]: exports.bscWBNB,
684
+ [TokenType.BRIDGED_USDC]: exports.bscUSDC,
685
+ [TokenType.AXL_USDC]: exports.bscAxlUSDC,
686
+ },
687
+ ],
688
+ [
689
+ chain_1.ethereum.chainId,
690
+ {
691
+ [TokenType.NATIVE]: exports.ethereumETH,
692
+ [TokenType.WRAPPED_NATIVE]: exports.ethereumWETH,
693
+ [TokenType.NATIVE_USDC]: exports.ethereumUSDC,
694
+ [TokenType.DAI]: exports.ethereumDAI,
695
+ },
696
+ ],
697
+ [
698
+ chain_1.linea.chainId,
699
+ {
700
+ [TokenType.NATIVE]: exports.lineaETH,
701
+ [TokenType.WRAPPED_NATIVE]: exports.lineaWETH,
702
+ [TokenType.NATIVE_USDC]: exports.lineaUSDC,
703
+ [TokenType.AXL_USDC]: exports.lineaAxlUSDC,
704
+ [TokenType.DAI]: exports.lineaDAI,
705
+ },
706
+ ],
707
+ [
708
+ chain_1.mantle.chainId,
709
+ {
710
+ [TokenType.NATIVE]: exports.mantleMNT,
711
+ [TokenType.WRAPPED_NATIVE]: exports.mantleWMNT,
712
+ [TokenType.BRIDGED_USDC]: exports.mantleBridgedUSDC,
713
+ [TokenType.AXL_USDC]: exports.mantleAxlUSDC,
714
+ },
715
+ ],
716
+ [
717
+ chain_1.optimism.chainId,
718
+ {
719
+ [TokenType.NATIVE]: exports.optimismETH,
720
+ [TokenType.WRAPPED_NATIVE]: exports.optimismWETH,
721
+ [TokenType.NATIVE_USDC]: exports.optimismUSDC,
722
+ [TokenType.BRIDGED_USDC]: exports.optimismUSDCe,
723
+ [TokenType.AXL_USDC]: exports.optimismAxlUSDC,
724
+ [TokenType.DAI]: exports.optimismDAI,
725
+ },
726
+ ],
727
+ [
728
+ chain_1.polygon.chainId,
729
+ {
730
+ [TokenType.NATIVE]: exports.polygonPOL,
731
+ [TokenType.WRAPPED_NATIVE]: exports.polygonWPOL,
732
+ [TokenType.NATIVE_USDC]: exports.polygonUSDC,
733
+ [TokenType.BRIDGED_USDC]: exports.polygonUSDCe,
734
+ [TokenType.AXL_USDC]: exports.polygonAxlUSDC,
735
+ [TokenType.DAI]: exports.polygonDAI,
736
+ },
737
+ ],
738
+ [
739
+ chain_1.solana.chainId,
740
+ {
741
+ [TokenType.NATIVE]: exports.solanaSOL,
742
+ [TokenType.WRAPPED_NATIVE]: exports.solanaWSOL,
743
+ [TokenType.NATIVE_USDC]: exports.solanaUSDC,
744
+ },
745
+ ],
746
+ [
747
+ chain_1.worldchain.chainId,
748
+ {
749
+ [TokenType.NATIVE]: exports.worldchainETH,
750
+ [TokenType.WRAPPED_NATIVE]: exports.worldchainWETH,
751
+ [TokenType.BRIDGED_USDC]: exports.worldchainUSDCe,
752
+ },
753
+ ],
754
+ ]);
678
755
  function getChainNativeToken(chainId) {
679
- return tokensByChainAndType[chainId][TokenType.NATIVE];
756
+ return (0, assert_1.assertNotNull)(tokensByChainAndType.get(chainId)?.[TokenType.NATIVE], () => `missing native token for chainId ${chainId}`);
680
757
  }
681
758
  function getChainWrappedNativeToken(chainId) {
682
- return tokensByChainAndType[chainId][TokenType.WRAPPED_NATIVE];
759
+ return (0, assert_1.assertNotNull)(tokensByChainAndType.get(chainId)?.[TokenType.WRAPPED_NATIVE], () => `missing wrapped native token for chainId ${chainId}`);
683
760
  }
684
761
  function getChainNativeUSDC(chainId) {
685
- return tokensByChainAndType[chainId][TokenType.NATIVE_USDC];
762
+ return tokensByChainAndType.get(chainId)?.[TokenType.NATIVE_USDC];
686
763
  }
687
764
  function getChainAxlUSDC(chainId) {
688
- return tokensByChainAndType[chainId][TokenType.AXL_USDC];
765
+ return tokensByChainAndType.get(chainId)?.[TokenType.AXL_USDC];
689
766
  }
690
767
  /** Returns native USDC when available, otherwise bridged USDC. */
691
768
  function getChainBestUSDC(chainId) {
692
- const t = tokensByChainAndType[chainId];
693
- return t[TokenType.NATIVE_USDC] ?? t[TokenType.BRIDGED_USDC];
769
+ const t = tokensByChainAndType.get(chainId);
770
+ return t?.[TokenType.NATIVE_USDC] ?? t?.[TokenType.BRIDGED_USDC];
694
771
  }
695
772
  function getChainDAI(chainId) {
696
- return tokensByChainAndType[chainId][TokenType.DAI];
773
+ return tokensByChainAndType.get(chainId)?.[TokenType.DAI];
697
774
  }
698
775
  /* --------------------- Native Token Utils --------------------- */
699
776
  function nativeETH(chainId) {