@yodlpay/tokenlists 0.1.48 → 0.3.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.
@@ -14,9 +14,7 @@
14
14
  "testnet": false,
15
15
  "chainId": 1,
16
16
  "logoUri": "https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/1/logo.svg",
17
- "rpcUrls": [
18
- "https://rpc.ankr.com/eth"
19
- ],
17
+ "rpcUrls": ["https://rpc.ankr.com/eth"],
20
18
  "wrappedNativeToken": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
21
19
  "explorerUrl": "https://etherscan.io",
22
20
  "timestamp": "2022-12-29T18:52:20+00:00",
@@ -26,7 +24,6 @@
26
24
  "CAD": "0xa34317db73e77d453b1b8d04550c44d10e981c8e",
27
25
  "CHF": "0x449d117117838ffa61263b61da6301aa2a88b13a",
28
26
  "EUR": "0xb49f677943bc038e9857d61e7d053caa2c1734c1",
29
- "ETH": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419",
30
27
  "GBP": "0x5c0ab2d9b5a7ed9f470386e82bb36a3613cdd4b5",
31
28
  "JPY": "0xbce206cae7f0ec07b545edde332a47c2f75bbeb3",
32
29
  "CNY": "0xef8a4af35cd47424672e3c590abd37fbb7a7759a",
@@ -35,6 +32,9 @@
35
32
  "SGD": "0xe25277ff4bbf9081c75ab0eb13b4a13a721f3e13",
36
33
  "TRY": "0xb09fc5fd3f11cf9eb5e1c5dba43114e3c9f477b5"
37
34
  },
35
+ "tokenFeeds": {
36
+ "ETH": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419"
37
+ },
38
38
  "curveRouterAddress": "0x99a58482BD75cbab83b27EC03CA68fF489b5788f"
39
39
  },
40
40
  {
@@ -43,9 +43,7 @@
43
43
  "testnet": true,
44
44
  "chainId": 5,
45
45
  "logoUri": "https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/5/logo.svg",
46
- "rpcUrls": [
47
- "https://rpc.ankr.com/eth_goerli"
48
- ],
46
+ "rpcUrls": ["https://rpc.ankr.com/eth_goerli"],
49
47
  "wrappedNativeToken": "0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6",
50
48
  "explorerUrl": "https://goerli.etherscan.io",
51
49
  "timestamp": "2022-12-28T14:10:09+00:00",
@@ -61,9 +59,7 @@
61
59
  "testnet": false,
62
60
  "chainId": 42161,
63
61
  "logoUri": "https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/42161/logo.svg",
64
- "rpcUrls": [
65
- "https://rpc.ankr.com/arbitrum"
66
- ],
62
+ "rpcUrls": ["https://rpc.ankr.com/arbitrum"],
67
63
  "wrappedNativeToken": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",
68
64
  "explorerUrl": "https://arbiscan.io",
69
65
  "timestamp": "2023-01-13T14:52:05+00:00",
@@ -72,7 +68,6 @@
72
68
  "AUD": "0x9854e9a850e7c354c1de177ea953a6b1fba8fc22",
73
69
  "CNY": "0xcc3370bde6afe51e1205a5038947b9836371eccb",
74
70
  "EUR": "0xa14d53bc1f1c0f31b4aa3bd109344e5009051a84",
75
- "ETH": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612",
76
71
  "CAD": "0xf6da27749484843c4f02f5ad1378cee723dd61d4",
77
72
  "CHF": "0xe32AccC8c4eC03F6E75bd3621BfC9Fbb234E1FC3",
78
73
  "GBP": "0x9c4424fd84c6661f97d8d6b3fc3c1aac2bedd137",
@@ -81,6 +76,9 @@
81
76
  "SEK": "0xde89a55d04ded40a410877ab87d4f567ee66a1f0",
82
77
  "SGD": "0xf0d38324d1f86a176ac727a4b0c43c9f9d9c5eb1"
83
78
  },
79
+ "tokenFeeds": {
80
+ "ETH": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612"
81
+ },
84
82
  "curveRouterAddress": "0x4c2af2df2a7e567b5155879720619ea06c5bb15d"
85
83
  },
86
84
  {
@@ -89,9 +87,7 @@
89
87
  "testnet": false,
90
88
  "chainId": 10,
91
89
  "logoUri": "https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/10/logo.svg",
92
- "rpcUrls": [
93
- "https://mainnet.optimism.io"
94
- ],
90
+ "rpcUrls": ["https://mainnet.optimism.io"],
95
91
  "wrappedNativeToken": "0x4200000000000000000000000000000000000006",
96
92
  "explorerUrl": "https://optimistic.etherscan.io",
97
93
  "timestamp": "2023-02-27T14:52:05+00:00",
@@ -99,11 +95,13 @@
99
95
  "priceFeeds": {
100
96
  "AUD": "0x39be70e93d2d285c9e71be7f70fc5a45a7777b14",
101
97
  "EUR": "0x3626369857a10ccc6cc3a6e4f5c2f5984a519f20",
102
- "ETH": "0x13e3Ee699D1909E989722E753853AE30b17e08c5",
103
98
  "GBP": "0x540d48c01f946e729174517e013ad0bdae5f08c0",
104
99
  "JPY": "0x536944c3a71feb7c1e5c66ee37d1a148d8d8f619",
105
100
  "INR": "0x5535e67d8f99c8ebe961e1fc1f6ddae96fec82c9"
106
101
  },
102
+ "tokenFeeds": {
103
+ "ETH": "0x13e3Ee699D1909E989722E753853AE30b17e08c5"
104
+ },
107
105
  "curveRouterAddress": "0x89287c32c2cac1c76227f6d300b2dbbab6b75c08"
108
106
  },
109
107
  {
@@ -112,20 +110,20 @@
112
110
  "testnet": false,
113
111
  "chainId": 43114,
114
112
  "logoUri": "https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/43113/logo.svg",
115
- "rpcUrls": [
116
- "https://api.avax.network/ext/bc/C/rpc"
117
- ],
113
+ "rpcUrls": ["https://api.avax.network/ext/bc/C/rpc"],
118
114
  "wrappedNativeToken": "0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB",
119
115
  "explorerUrl": "https://snowtrace.io",
120
116
  "timestamp": "2023-01-13T14:52:05+00:00",
121
117
  "feeTreasury": "0x25e22F3ceE59F34622f7DC9a2078B85f17BfBe95",
122
118
  "priceFeeds": {
123
- "AVAX": "0x0A77230d17318075983913bC2145DB16C7366156",
124
119
  "BRL": "0x609dddb75518aa4af84ac228b62261ae68e52989",
125
120
  "CHF": "0x3b37950485b450edf90cbb85d0cd27308af4ab9a",
126
121
  "EUR": "0x192f2dba961bb0277520c082d6bfa87d5961333e",
127
122
  "JPY": "0xf8b283ad4d969ecfd70005714dd5910160565b94",
128
123
  "TRY": "0xa61bf273688ea095b5e4c11f1af5e763f7aeee91"
124
+ },
125
+ "tokenFeeds": {
126
+ "AVAX": "0x0A77230d17318075983913bC2145DB16C7366156"
129
127
  }
130
128
  },
131
129
  {
@@ -134,20 +132,20 @@
134
132
  "testnet": false,
135
133
  "chainId": 100,
136
134
  "logoUri": "https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/100/logo.svg",
137
- "rpcUrls": [
138
- "https://rpc.gnosis.gateway.fm"
139
- ],
135
+ "rpcUrls": ["https://rpc.gnosis.gateway.fm"],
140
136
  "wrappedNativeToken": "0xe91d153e0b41518a2ce8dd3d7944fa863463a97d",
141
137
  "explorerUrl": "https://gnosisscan.io",
142
138
  "timestamp": "2023-07-27T14:52:05+00:00",
143
139
  "feeTreasury": "0x775aaf73a50C25eEBd308BBb9C34C73D081B423b",
144
140
  "priceFeeds": {
145
141
  "CHF": "0xFb00261Af80ADb1629D3869E377ae1EEC7bE659F",
146
- "DAI": "0x678df3415fc31947dA4324eC63212874be5a82f8",
147
142
  "EUR": "0xab70BCB260073d036d1660201e9d5405F5829b7a",
148
- "GNO": "0x22441d81416430A54336aB28765abd31a792Ad37",
149
143
  "JPY": "0x2AfB993C670C01e9dA1550c58e8039C1D8b8A317"
150
144
  },
145
+ "tokenFeeds": {
146
+ "GNO": "0x22441d81416430A54336aB28765abd31a792Ad37",
147
+ "DAI": "0x678df3415fc31947dA4324eC63212874be5a82f8"
148
+ },
151
149
  "curveRouterAddress": "0xe6358f6a45b502477e83cc1cda759f540e4459ee"
152
150
  },
153
151
  {
@@ -156,9 +154,7 @@
156
154
  "testnet": false,
157
155
  "chainId": 137,
158
156
  "logoUri": "https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/137/logo.svg",
159
- "rpcUrls": [
160
- "https://polygon-rpc.com"
161
- ],
157
+ "rpcUrls": ["https://polygon-rpc.com"],
162
158
  "wrappedNativeToken": "0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270",
163
159
  "explorerUrl": "https://polygonscan.com",
164
160
  "timestamp": "2023-09-07T00:00:00+00:00",
@@ -170,12 +166,10 @@
170
166
  "CNY": "0x04bB437Aa63E098236FA47365f0268547f6EAB32",
171
167
  "EUR": "0x73366Fe0AA0Ded304479862808e02506FE556a98",
172
168
  "GBP": "0x099a2540848573e94fb1Ca0Fa420b00acbBc845a",
173
- "HKD": "0x82d43B72573f902F960126a19581BcBbA5b014F5",
174
169
  "ILS": "0x8d5eB34C509261533235b91350d359EdcB969D33",
175
170
  "INR": "0xDA0F8Df6F5dB15b346f4B8D1156722027E194E60",
176
171
  "JPY": "0xD647a6fC9BC6402301583C91decC5989d8Bc382D",
177
172
  "KRW": "0x24B820870F726dA9B0D83B0B28a93885061dbF50",
178
- "MATIC": "0xAB594600376Ec9fD91F8e885dADF0CE036862dE0",
179
173
  "MXN": "0x171b16562EA3476F5C61d1b8dad031DbA0768545",
180
174
  "NZD": "0xa302a0B8a499fD0f00449df0a490DedE21105955",
181
175
  "PHP": "0x218231089Bebb2A31970c3b77E96eCfb3BA006D1",
@@ -185,7 +179,10 @@
185
179
  "THB": "0x5164Ad28fb12a5e55946090Ec3eE1B748AFb3785",
186
180
  "TRY": "0xd78325DcA0F90F0FFe53cCeA1B02Bb12E1bf8FdB"
187
181
  },
182
+ "tokenFeeds": {
183
+ "MATIC": "0xAB594600376Ec9fD91F8e885dADF0CE036862dE0"
184
+ },
188
185
  "curveRouterAddress": "0x2a426b3Bb4fa87488387545f15D01d81352732F9"
189
186
  }
190
187
  ]
191
- }
188
+ }
@@ -36,13 +36,6 @@
36
36
  "version": "0.1",
37
37
  "fee": "0.002"
38
38
  },
39
- {
40
- "chainId": 10,
41
- "address": "0x408EB3F5A578b3eEcFe2c0cD58988fAb306885b4",
42
- "timestamp": "2023-09-01T00:00:00+00:00",
43
- "version": "0.2",
44
- "fee": "0.002"
45
- },
46
39
  {
47
40
  "chainId": 42161,
48
41
  "address": "0x334264f4fbb56a84f80df722ba765d210f0cf555",
@@ -79,4 +72,4 @@
79
72
  "fee": "0.002"
80
73
  }
81
74
  ]
82
- }
75
+ }
@@ -618,7 +618,6 @@ var chains = [
618
618
  CAD: "0xa34317db73e77d453b1b8d04550c44d10e981c8e",
619
619
  CHF: "0x449d117117838ffa61263b61da6301aa2a88b13a",
620
620
  EUR: "0xb49f677943bc038e9857d61e7d053caa2c1734c1",
621
- ETH: "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419",
622
621
  GBP: "0x5c0ab2d9b5a7ed9f470386e82bb36a3613cdd4b5",
623
622
  JPY: "0xbce206cae7f0ec07b545edde332a47c2f75bbeb3",
624
623
  CNY: "0xef8a4af35cd47424672e3c590abd37fbb7a7759a",
@@ -627,6 +626,9 @@ var chains = [
627
626
  SGD: "0xe25277ff4bbf9081c75ab0eb13b4a13a721f3e13",
628
627
  TRY: "0xb09fc5fd3f11cf9eb5e1c5dba43114e3c9f477b5"
629
628
  },
629
+ tokenFeeds: {
630
+ ETH: "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419"
631
+ },
630
632
  curveRouterAddress: "0x99a58482BD75cbab83b27EC03CA68fF489b5788f"
631
633
  },
632
634
  {
@@ -664,7 +666,6 @@ var chains = [
664
666
  AUD: "0x9854e9a850e7c354c1de177ea953a6b1fba8fc22",
665
667
  CNY: "0xcc3370bde6afe51e1205a5038947b9836371eccb",
666
668
  EUR: "0xa14d53bc1f1c0f31b4aa3bd109344e5009051a84",
667
- ETH: "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612",
668
669
  CAD: "0xf6da27749484843c4f02f5ad1378cee723dd61d4",
669
670
  CHF: "0xe32AccC8c4eC03F6E75bd3621BfC9Fbb234E1FC3",
670
671
  GBP: "0x9c4424fd84c6661f97d8d6b3fc3c1aac2bedd137",
@@ -673,6 +674,9 @@ var chains = [
673
674
  SEK: "0xde89a55d04ded40a410877ab87d4f567ee66a1f0",
674
675
  SGD: "0xf0d38324d1f86a176ac727a4b0c43c9f9d9c5eb1"
675
676
  },
677
+ tokenFeeds: {
678
+ ETH: "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612"
679
+ },
676
680
  curveRouterAddress: "0x4c2af2df2a7e567b5155879720619ea06c5bb15d"
677
681
  },
678
682
  {
@@ -691,11 +695,13 @@ var chains = [
691
695
  priceFeeds: {
692
696
  AUD: "0x39be70e93d2d285c9e71be7f70fc5a45a7777b14",
693
697
  EUR: "0x3626369857a10ccc6cc3a6e4f5c2f5984a519f20",
694
- ETH: "0x13e3Ee699D1909E989722E753853AE30b17e08c5",
695
698
  GBP: "0x540d48c01f946e729174517e013ad0bdae5f08c0",
696
699
  JPY: "0x536944c3a71feb7c1e5c66ee37d1a148d8d8f619",
697
700
  INR: "0x5535e67d8f99c8ebe961e1fc1f6ddae96fec82c9"
698
701
  },
702
+ tokenFeeds: {
703
+ ETH: "0x13e3Ee699D1909E989722E753853AE30b17e08c5"
704
+ },
699
705
  curveRouterAddress: "0x89287c32c2cac1c76227f6d300b2dbbab6b75c08"
700
706
  },
701
707
  {
@@ -712,12 +718,14 @@ var chains = [
712
718
  timestamp: "2023-01-13T14:52:05+00:00",
713
719
  feeTreasury: "0x25e22F3ceE59F34622f7DC9a2078B85f17BfBe95",
714
720
  priceFeeds: {
715
- AVAX: "0x0A77230d17318075983913bC2145DB16C7366156",
716
721
  BRL: "0x609dddb75518aa4af84ac228b62261ae68e52989",
717
722
  CHF: "0x3b37950485b450edf90cbb85d0cd27308af4ab9a",
718
723
  EUR: "0x192f2dba961bb0277520c082d6bfa87d5961333e",
719
724
  JPY: "0xf8b283ad4d969ecfd70005714dd5910160565b94",
720
725
  TRY: "0xa61bf273688ea095b5e4c11f1af5e763f7aeee91"
726
+ },
727
+ tokenFeeds: {
728
+ AVAX: "0x0A77230d17318075983913bC2145DB16C7366156"
721
729
  }
722
730
  },
723
731
  {
@@ -735,11 +743,13 @@ var chains = [
735
743
  feeTreasury: "0x775aaf73a50C25eEBd308BBb9C34C73D081B423b",
736
744
  priceFeeds: {
737
745
  CHF: "0xFb00261Af80ADb1629D3869E377ae1EEC7bE659F",
738
- DAI: "0x678df3415fc31947dA4324eC63212874be5a82f8",
739
746
  EUR: "0xab70BCB260073d036d1660201e9d5405F5829b7a",
740
- GNO: "0x22441d81416430A54336aB28765abd31a792Ad37",
741
747
  JPY: "0x2AfB993C670C01e9dA1550c58e8039C1D8b8A317"
742
748
  },
749
+ tokenFeeds: {
750
+ GNO: "0x22441d81416430A54336aB28765abd31a792Ad37",
751
+ DAI: "0x678df3415fc31947dA4324eC63212874be5a82f8"
752
+ },
743
753
  curveRouterAddress: "0xe6358f6a45b502477e83cc1cda759f540e4459ee"
744
754
  },
745
755
  {
@@ -762,12 +772,10 @@ var chains = [
762
772
  CNY: "0x04bB437Aa63E098236FA47365f0268547f6EAB32",
763
773
  EUR: "0x73366Fe0AA0Ded304479862808e02506FE556a98",
764
774
  GBP: "0x099a2540848573e94fb1Ca0Fa420b00acbBc845a",
765
- HKD: "0x82d43B72573f902F960126a19581BcBbA5b014F5",
766
775
  ILS: "0x8d5eB34C509261533235b91350d359EdcB969D33",
767
776
  INR: "0xDA0F8Df6F5dB15b346f4B8D1156722027E194E60",
768
777
  JPY: "0xD647a6fC9BC6402301583C91decC5989d8Bc382D",
769
778
  KRW: "0x24B820870F726dA9B0D83B0B28a93885061dbF50",
770
- MATIC: "0xAB594600376Ec9fD91F8e885dADF0CE036862dE0",
771
779
  MXN: "0x171b16562EA3476F5C61d1b8dad031DbA0768545",
772
780
  NZD: "0xa302a0B8a499fD0f00449df0a490DedE21105955",
773
781
  PHP: "0x218231089Bebb2A31970c3b77E96eCfb3BA006D1",
@@ -777,6 +785,9 @@ var chains = [
777
785
  THB: "0x5164Ad28fb12a5e55946090Ec3eE1B748AFb3785",
778
786
  TRY: "0xd78325DcA0F90F0FFe53cCeA1B02Bb12E1bf8FdB"
779
787
  },
788
+ tokenFeeds: {
789
+ MATIC: "0xAB594600376Ec9fD91F8e885dADF0CE036862dE0"
790
+ },
780
791
  curveRouterAddress: "0x2a426b3Bb4fa87488387545f15D01d81352732F9"
781
792
  }
782
793
  ];
@@ -826,13 +837,6 @@ var routers = [
826
837
  version: "0.1",
827
838
  fee: "0.002"
828
839
  },
829
- {
830
- chainId: 10,
831
- address: "0x408EB3F5A578b3eEcFe2c0cD58988fAb306885b4",
832
- timestamp: "2023-09-01T00:00:00+00:00",
833
- version: "0.2",
834
- fee: "0.002"
835
- },
836
840
  {
837
841
  chainId: 42161,
838
842
  address: "0x334264f4fbb56a84f80df722ba765d210f0cf555",
@@ -1 +1 @@
1
- {"version":3,"file":"tokenlists.cjs.development.js","sources":["../src/abis.ts","../src/types.ts","../src/versionComparator.ts","../src/isVersionUpdate.ts","../src/getVersionUpgrade.ts","../src/diffTokenLists.ts","../src/minVersionBump.ts","../src/nextVersion.ts","../src/index.ts"],"sourcesContent":["import CurveRouterV13Abi from \"./abis/curverouterv13.abi.json\";\nimport HiroRouterV01 from \"./abis/HiroRouterV0.1.abi.json\";\nimport HiroRouterV02 from \"./abis/HiroRouterV0.2.abi.json\";\n\nexport const HIRO_ROUTER_ABIS: { [key: string]: any} = {\n \"0.1\": HiroRouterV01,\n \"0.2\": HiroRouterV02,\n \"test\": HiroRouterV02\n}\nexport const CURVE_ROUTER_ABI = CurveRouterV13Abi;\n","type ExtensionValue = string | number | boolean | null | undefined;\n\nexport enum TokenListTagNames {\n // Networks\n MAINNET = 'Mainnet',\n OPTIMISM = 'Optimism',\n ARBITRUM = 'Arbitrum',\n AVALANCHE = 'Avalanche',\n TESTNET = 'TESTNET',\n\n // Coin/currency\n STABLECOIN = 'Stablecoin',\n USD = 'USD',\n EUR = 'EUR',\n\n // Misc\n TOP_10 = 'Top10',\n NATIVE_TOKEN = 'Native Token'\n}\n\nexport interface RouterInfo {\n readonly chainId: number;\n readonly address: string;\n readonly timestamp: string;\n readonly version: string;\n readonly fee: string;\n}\n\nexport interface TestnetFaucetInfo {\n readonly chainId: number;\n readonly address: string;\n readonly token: string;\n}\n\nexport interface ChainInfo {\n readonly chainId: number;\n readonly chainName: string;\n // shortName is the EIP3770 short name\n // chain details can be found here: https://github.com/ethereum-lists/chains/tree/master/_data/chains\n readonly shortName: string;\n readonly logoUri: string;\n readonly explorerUrl: string;\n readonly rpcUrls: string[];\n readonly wrappedNativeToken: string;\n readonly feeTreasury?: string;\n readonly testnet: boolean;\n readonly priceFeeds?: {\n readonly [key: string]: string | undefined;\n };\n readonly curveRouterAddress?: string;\n}\n\nexport interface TokenInfo {\n readonly chainId: number;\n readonly address: string;\n readonly name: string;\n readonly decimals: number;\n readonly symbol: string;\n readonly coinGeckoId?: string;\n readonly currency?: string;\n readonly logoUri?: string;\n readonly tags?: TokenListTagNames[];\n readonly extensions?: {\n readonly [key: string]:\n | {\n [key: string]:\n | {\n [key: string]: ExtensionValue;\n }\n | ExtensionValue;\n }\n | ExtensionValue;\n };\n}\n\nexport interface Version {\n readonly major: number;\n readonly minor: number;\n readonly patch: number;\n}\n\nexport interface TokenList {\n readonly name: string;\n readonly timestamp: string;\n readonly version: Version;\n readonly tokens: TokenInfo[];\n readonly keywords?: string[];\n readonly tags?: any;\n readonly logoUri?: string;\n}\n","import { Version } from \"./types\";\n\n/**\n * Comparator function that allows sorting version from lowest to highest\n * @param versionA version A to compare\n * @param versionB version B to compare\n * @returns -1 if versionA comes before versionB, 0 if versionA is equal to version B, and 1 if version A comes after version B\n */\nexport function versionComparator(\n versionA: Version,\n versionB: Version\n): -1 | 0 | 1 {\n if (versionA.major < versionB.major) {\n return -1;\n } else if (versionA.major > versionB.major) {\n return 1;\n } else if (versionA.minor < versionB.minor) {\n return -1;\n } else if (versionA.minor > versionB.minor) {\n return 1;\n } else if (versionA.patch < versionB.patch) {\n return -1;\n } else if (versionA.patch > versionB.patch) {\n return 1;\n } else {\n return 0;\n }\n}\n","import { versionComparator } from './versionComparator';\nimport { Version } from './types';\n\n/**\n * Returns true if versionB is an update over versionA\n */\nexport function isVersionUpdate(base: Version, update: Version): boolean {\n return versionComparator(base, update) < 0;\n}","import { Version } from \"./types\";\n\n/**\n * Enum describing types of version differences\n */\nexport enum VersionUpgrade {\n NONE,\n PATCH,\n MINOR,\n MAJOR,\n}\n\n/**\n * Return the upgrade type from the base version to the update version.\n * Note that downgrades and equivalent versions are both treated as `NONE`.\n * @param base base list\n * @param update update to the list\n */\nexport function getVersionUpgrade(\n base: Version,\n update: Version\n): VersionUpgrade {\n if (update.major > base.major) {\n return VersionUpgrade.MAJOR;\n }\n if (update.major < base.major) {\n return VersionUpgrade.NONE;\n }\n if (update.minor > base.minor) {\n return VersionUpgrade.MINOR;\n }\n if (update.minor < base.minor) {\n return VersionUpgrade.NONE;\n }\n return update.patch > base.patch ? VersionUpgrade.PATCH : VersionUpgrade.NONE;\n}\n","import { TokenInfo } from \"./types\";\n\nexport type TokenInfoChangeKey = Exclude<\n keyof TokenInfo,\n \"address\" | \"chainId\"\n>;\nexport type TokenInfoChanges = Array<TokenInfoChangeKey>;\n\n/**\n * compares two token info key values\n * this subset of full deep equal functionality does not work on objects or object arrays\n * @param a comparison item a\n * @param b comparison item b\n */\nfunction compareTokenInfoProperty(a: unknown, b: unknown): boolean {\n if (a === b) return true;\n if (typeof a !== typeof b) return false;\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.every((el, i) => b[i] === el);\n }\n return false;\n}\n\n/**\n * Differences between a base list and an updated list.\n */\nexport interface TokenListDiff {\n /**\n * Tokens from updated with chainId/address not present in base list\n */\n readonly added: TokenInfo[];\n /**\n * Tokens from base with chainId/address not present in the updated list\n */\n readonly removed: TokenInfo[];\n /**\n * The token info that changed\n */\n readonly changed: {\n [chainId: number]: {\n [address: string]: TokenInfoChanges;\n };\n };\n}\n\n/**\n * Computes the diff of a token list where the first argument is the base and the second argument is the updated list.\n * @param base base list\n * @param update updated list\n */\nexport function diffTokenLists(\n base: TokenInfo[],\n update: TokenInfo[]\n): TokenListDiff {\n const indexedBase = base.reduce<{\n [chainId: number]: { [address: string]: TokenInfo };\n }>((memo, tokenInfo) => {\n if (!memo[tokenInfo.chainId]) memo[tokenInfo.chainId] = {};\n memo[tokenInfo.chainId][tokenInfo.address] = tokenInfo;\n return memo;\n }, {});\n\n const newListUpdates = update.reduce<{\n added: TokenInfo[];\n changed: {\n [chainId: number]: {\n [address: string]: TokenInfoChanges;\n };\n };\n index: {\n [chainId: number]: {\n [address: string]: true;\n };\n };\n }>(\n (memo, tokenInfo) => {\n const baseToken = indexedBase[tokenInfo.chainId]?.[tokenInfo.address];\n if (!baseToken) {\n memo.added.push(tokenInfo);\n } else {\n const changes: TokenInfoChanges = Object.keys(tokenInfo)\n .filter(\n (s): s is TokenInfoChangeKey => s !== \"address\" && s !== \"chainId\"\n )\n .filter((s) => {\n return !compareTokenInfoProperty(tokenInfo[s], baseToken[s]);\n });\n if (changes.length > 0) {\n if (!memo.changed[tokenInfo.chainId]) {\n memo.changed[tokenInfo.chainId] = {};\n }\n memo.changed[tokenInfo.chainId][tokenInfo.address] = changes;\n }\n }\n\n if (!memo.index[tokenInfo.chainId]) {\n memo.index[tokenInfo.chainId] = {\n [tokenInfo.address]: true,\n };\n } else {\n memo.index[tokenInfo.chainId][tokenInfo.address] = true;\n }\n\n return memo;\n },\n { added: [], changed: {}, index: {} }\n );\n\n const removed = base.reduce<TokenInfo[]>((list, curr) => {\n if (\n !newListUpdates.index[curr.chainId] ||\n !newListUpdates.index[curr.chainId][curr.address]\n ) {\n list.push(curr);\n }\n return list;\n }, []);\n\n return {\n added: newListUpdates.added,\n changed: newListUpdates.changed,\n removed,\n };\n}\n","import { diffTokenLists } from \"./diffTokenLists\";\nimport { VersionUpgrade } from \"./getVersionUpgrade\";\nimport { TokenInfo } from \"./types\";\n\n/**\n * Returns the minimum version bump for the given list\n * @param baseList the base list of tokens\n * @param updatedList the updated list of tokens\n */\nexport function minVersionBump(\n baseList: TokenInfo[],\n updatedList: TokenInfo[]\n): VersionUpgrade {\n const diff = diffTokenLists(baseList, updatedList);\n if (diff.removed.length > 0) return VersionUpgrade.MAJOR;\n if (diff.added.length > 0) return VersionUpgrade.MINOR;\n if (Object.keys(diff.changed).length > 0) return VersionUpgrade.PATCH;\n return VersionUpgrade.NONE;\n}\n","import { VersionUpgrade } from \"./getVersionUpgrade\";\nimport { Version } from \"./types\";\n\n/**\n * Returns the next version of the list given a base version and the upgrade type\n * @param base current version\n * @param bump the upgrade type\n */\nexport function nextVersion(base: Version, bump: VersionUpgrade): Version {\n switch (bump) {\n case VersionUpgrade.NONE:\n return base;\n\n case VersionUpgrade.MAJOR:\n return { major: base.major + 1, minor: 0, patch: 0 };\n\n case VersionUpgrade.MINOR:\n return {\n major: base.major,\n minor: base.minor + 1,\n patch: 0,\n };\n\n case VersionUpgrade.PATCH:\n return {\n major: base.major,\n minor: base.minor,\n patch: base.patch + 1,\n };\n }\n}\n","import tokenlist from './tokenlist-v1.json';\nimport chainlist from './chainlist-v1.json';\nimport routerlist from './routerlist-v1.json';\nimport tokenschema from './tokenlist-v1.json';\nimport testnetfaucets from './testnet-faucets-v1.json';\nimport { ChainInfo, RouterInfo, TokenInfo, TestnetFaucetInfo } from './types';\n\nexport * from './abis';\nexport * from './types';\nexport * from './isVersionUpdate';\nexport * from './getVersionUpgrade';\nexport * from './diffTokenLists';\nexport * from './minVersionBump';\nexport * from './nextVersion';\nexport * from './versionComparator';\n\nexport { tokenschema, tokenlist, chainlist, routerlist };\n\nexport function getChain(chainId: number): ChainInfo {\n return chainlist.chains.find((needle: any) => {\n return needle.chainId === chainId;\n }) as ChainInfo;\n}\n\nexport function getTokenByAddress(\n tokenAddress: string,\n chainId?: number\n): TokenInfo | null {\n return (\n (tokenlist.tokens.find((token: any) => {\n return (\n token.address === tokenAddress &&\n (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo) ?? null\n );\n}\n\nexport function getTokenBySymbol(\n tokenSymbol: string,\n chainId?: number\n): TokenInfo | null {\n return (\n (tokenlist.tokens.find((token: any) => {\n return (\n token.symbol === tokenSymbol && (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo) ?? null\n );\n}\n\nexport function getTokens(chainId: number): TokenInfo[] {\n return tokenlist.tokens.filter((needle: any) => {\n return needle.chainId === chainId;\n }) as TokenInfo[];\n}\n\nexport function getFaucetAddress(tokenInfo: TokenInfo): TestnetFaucetInfo {\n return testnetfaucets.faucets.find((needle: any) => {\n return (\n needle.token === tokenInfo.address && needle.chainId === tokenInfo.chainId\n );\n }) as TestnetFaucetInfo;\n}\n\nexport function getRouters(chainId: number): RouterInfo[] {\n return routerlist.routers.filter((needle: any) => {\n return needle.chainId === chainId;\n }) as RouterInfo[];\n}\n\nexport function getRouter(chainId: number, version: string): RouterInfo {\n return routerlist.routers.find((needle: any) => {\n return needle.chainId === chainId && needle.version === version;\n }) as RouterInfo;\n}\n\nexport function getLatestRouter(chainId: number): RouterInfo {\n const sorted = getRouters(chainId).sort((a, b) => {\n return Date.parse(a.timestamp) - Date.parse(b.timestamp);\n });\n return sorted[sorted.length - 1];\n}\n\nexport function getShortNames(): string[] {\n return chainlist.chains.map(chain => chain.shortName);\n}"],"names":["HIRO_ROUTER_ABIS","HiroRouterV01","HiroRouterV02","CURVE_ROUTER_ABI","CurveRouterV13Abi","TokenListTagNames","versionComparator","versionA","versionB","major","minor","patch","isVersionUpdate","base","update","VersionUpgrade","getVersionUpgrade","MAJOR","NONE","MINOR","PATCH","compareTokenInfoProperty","a","b","Array","isArray","every","el","i","diffTokenLists","indexedBase","reduce","memo","tokenInfo","chainId","address","newListUpdates","baseToken","added","push","changes","Object","keys","filter","s","length","changed","index","removed","list","curr","minVersionBump","baseList","updatedList","diff","nextVersion","bump","getChain","chainlist","chains","find","needle","getTokenByAddress","tokenAddress","tokenlist","tokens","token","getTokenBySymbol","tokenSymbol","symbol","getTokens","getFaucetAddress","testnetfaucets","faucets","getRouters","routerlist","routers","getRouter","version","getLatestRouter","sorted","sort","Date","parse","timestamp","getShortNames","map","chain","shortName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIaA,gBAAgB,GAA0B;EACrD,OAAOC,aAD8C;EAErD,OAAOC,aAF8C;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"}
1
+ {"version":3,"file":"tokenlists.cjs.development.js","sources":["../src/abis.ts","../src/types.ts","../src/versionComparator.ts","../src/isVersionUpdate.ts","../src/getVersionUpgrade.ts","../src/diffTokenLists.ts","../src/minVersionBump.ts","../src/nextVersion.ts","../src/index.ts"],"sourcesContent":["import CurveRouterV13Abi from \"./abis/curverouterv13.abi.json\";\nimport HiroRouterV01 from \"./abis/HiroRouterV0.1.abi.json\";\nimport HiroRouterV02 from \"./abis/HiroRouterV0.2.abi.json\";\n\nexport const HIRO_ROUTER_ABIS: { [key: string]: any} = {\n \"0.1\": HiroRouterV01,\n \"0.2\": HiroRouterV02,\n \"test\": HiroRouterV02\n}\nexport const CURVE_ROUTER_ABI = CurveRouterV13Abi;\n","type ExtensionValue = string | number | boolean | null | undefined;\n\nexport enum TokenListTagNames {\n // Networks\n MAINNET = 'Mainnet',\n OPTIMISM = 'Optimism',\n ARBITRUM = 'Arbitrum',\n AVALANCHE = 'Avalanche',\n TESTNET = 'TESTNET',\n\n // Coin/currency\n STABLECOIN = 'Stablecoin',\n USD = 'USD',\n EUR = 'EUR',\n\n // Misc\n TOP_10 = 'Top10',\n NATIVE_TOKEN = 'Native Token',\n}\n\nexport interface RouterInfo {\n readonly chainId: number;\n readonly address: string;\n readonly timestamp: string;\n readonly version: string;\n readonly fee: string;\n}\n\nexport interface TestnetFaucetInfo {\n readonly chainId: number;\n readonly address: string;\n readonly token: string;\n}\n\nexport interface ChainInfo {\n readonly chainId: number;\n readonly chainName: string;\n // shortName is the EIP3770 short name\n // chain details can be found here: https://github.com/ethereum-lists/chains/tree/master/_data/chains\n readonly shortName: string;\n readonly logoUri: string;\n readonly explorerUrl: string;\n readonly rpcUrls: string[];\n readonly wrappedNativeToken: string;\n readonly feeTreasury?: string;\n readonly testnet: boolean;\n readonly priceFeeds?: {\n readonly [key: string]: string | undefined;\n };\n readonly tokenFeeds?: {\n readonly [key: string]: string | undefined;\n };\n readonly curveRouterAddress?: string;\n}\n\nexport interface TokenInfo {\n readonly chainId: number;\n readonly address: string;\n readonly name: string;\n readonly decimals: number;\n readonly symbol: string;\n readonly coinGeckoId?: string;\n readonly currency?: string;\n readonly logoUri?: string;\n readonly tags?: TokenListTagNames[];\n readonly extensions?: {\n readonly [key: string]:\n | {\n [key: string]:\n | {\n [key: string]: ExtensionValue;\n }\n | ExtensionValue;\n }\n | ExtensionValue;\n };\n}\n\nexport interface Version {\n readonly major: number;\n readonly minor: number;\n readonly patch: number;\n}\n\nexport interface TokenList {\n readonly name: string;\n readonly timestamp: string;\n readonly version: Version;\n readonly tokens: TokenInfo[];\n readonly keywords?: string[];\n readonly tags?: any;\n readonly logoUri?: string;\n}\n","import { Version } from \"./types\";\n\n/**\n * Comparator function that allows sorting version from lowest to highest\n * @param versionA version A to compare\n * @param versionB version B to compare\n * @returns -1 if versionA comes before versionB, 0 if versionA is equal to version B, and 1 if version A comes after version B\n */\nexport function versionComparator(\n versionA: Version,\n versionB: Version\n): -1 | 0 | 1 {\n if (versionA.major < versionB.major) {\n return -1;\n } else if (versionA.major > versionB.major) {\n return 1;\n } else if (versionA.minor < versionB.minor) {\n return -1;\n } else if (versionA.minor > versionB.minor) {\n return 1;\n } else if (versionA.patch < versionB.patch) {\n return -1;\n } else if (versionA.patch > versionB.patch) {\n return 1;\n } else {\n return 0;\n }\n}\n","import { versionComparator } from './versionComparator';\nimport { Version } from './types';\n\n/**\n * Returns true if versionB is an update over versionA\n */\nexport function isVersionUpdate(base: Version, update: Version): boolean {\n return versionComparator(base, update) < 0;\n}","import { Version } from \"./types\";\n\n/**\n * Enum describing types of version differences\n */\nexport enum VersionUpgrade {\n NONE,\n PATCH,\n MINOR,\n MAJOR,\n}\n\n/**\n * Return the upgrade type from the base version to the update version.\n * Note that downgrades and equivalent versions are both treated as `NONE`.\n * @param base base list\n * @param update update to the list\n */\nexport function getVersionUpgrade(\n base: Version,\n update: Version\n): VersionUpgrade {\n if (update.major > base.major) {\n return VersionUpgrade.MAJOR;\n }\n if (update.major < base.major) {\n return VersionUpgrade.NONE;\n }\n if (update.minor > base.minor) {\n return VersionUpgrade.MINOR;\n }\n if (update.minor < base.minor) {\n return VersionUpgrade.NONE;\n }\n return update.patch > base.patch ? VersionUpgrade.PATCH : VersionUpgrade.NONE;\n}\n","import { TokenInfo } from \"./types\";\n\nexport type TokenInfoChangeKey = Exclude<\n keyof TokenInfo,\n \"address\" | \"chainId\"\n>;\nexport type TokenInfoChanges = Array<TokenInfoChangeKey>;\n\n/**\n * compares two token info key values\n * this subset of full deep equal functionality does not work on objects or object arrays\n * @param a comparison item a\n * @param b comparison item b\n */\nfunction compareTokenInfoProperty(a: unknown, b: unknown): boolean {\n if (a === b) return true;\n if (typeof a !== typeof b) return false;\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.every((el, i) => b[i] === el);\n }\n return false;\n}\n\n/**\n * Differences between a base list and an updated list.\n */\nexport interface TokenListDiff {\n /**\n * Tokens from updated with chainId/address not present in base list\n */\n readonly added: TokenInfo[];\n /**\n * Tokens from base with chainId/address not present in the updated list\n */\n readonly removed: TokenInfo[];\n /**\n * The token info that changed\n */\n readonly changed: {\n [chainId: number]: {\n [address: string]: TokenInfoChanges;\n };\n };\n}\n\n/**\n * Computes the diff of a token list where the first argument is the base and the second argument is the updated list.\n * @param base base list\n * @param update updated list\n */\nexport function diffTokenLists(\n base: TokenInfo[],\n update: TokenInfo[]\n): TokenListDiff {\n const indexedBase = base.reduce<{\n [chainId: number]: { [address: string]: TokenInfo };\n }>((memo, tokenInfo) => {\n if (!memo[tokenInfo.chainId]) memo[tokenInfo.chainId] = {};\n memo[tokenInfo.chainId][tokenInfo.address] = tokenInfo;\n return memo;\n }, {});\n\n const newListUpdates = update.reduce<{\n added: TokenInfo[];\n changed: {\n [chainId: number]: {\n [address: string]: TokenInfoChanges;\n };\n };\n index: {\n [chainId: number]: {\n [address: string]: true;\n };\n };\n }>(\n (memo, tokenInfo) => {\n const baseToken = indexedBase[tokenInfo.chainId]?.[tokenInfo.address];\n if (!baseToken) {\n memo.added.push(tokenInfo);\n } else {\n const changes: TokenInfoChanges = Object.keys(tokenInfo)\n .filter(\n (s): s is TokenInfoChangeKey => s !== \"address\" && s !== \"chainId\"\n )\n .filter((s) => {\n return !compareTokenInfoProperty(tokenInfo[s], baseToken[s]);\n });\n if (changes.length > 0) {\n if (!memo.changed[tokenInfo.chainId]) {\n memo.changed[tokenInfo.chainId] = {};\n }\n memo.changed[tokenInfo.chainId][tokenInfo.address] = changes;\n }\n }\n\n if (!memo.index[tokenInfo.chainId]) {\n memo.index[tokenInfo.chainId] = {\n [tokenInfo.address]: true,\n };\n } else {\n memo.index[tokenInfo.chainId][tokenInfo.address] = true;\n }\n\n return memo;\n },\n { added: [], changed: {}, index: {} }\n );\n\n const removed = base.reduce<TokenInfo[]>((list, curr) => {\n if (\n !newListUpdates.index[curr.chainId] ||\n !newListUpdates.index[curr.chainId][curr.address]\n ) {\n list.push(curr);\n }\n return list;\n }, []);\n\n return {\n added: newListUpdates.added,\n changed: newListUpdates.changed,\n removed,\n };\n}\n","import { diffTokenLists } from \"./diffTokenLists\";\nimport { VersionUpgrade } from \"./getVersionUpgrade\";\nimport { TokenInfo } from \"./types\";\n\n/**\n * Returns the minimum version bump for the given list\n * @param baseList the base list of tokens\n * @param updatedList the updated list of tokens\n */\nexport function minVersionBump(\n baseList: TokenInfo[],\n updatedList: TokenInfo[]\n): VersionUpgrade {\n const diff = diffTokenLists(baseList, updatedList);\n if (diff.removed.length > 0) return VersionUpgrade.MAJOR;\n if (diff.added.length > 0) return VersionUpgrade.MINOR;\n if (Object.keys(diff.changed).length > 0) return VersionUpgrade.PATCH;\n return VersionUpgrade.NONE;\n}\n","import { VersionUpgrade } from \"./getVersionUpgrade\";\nimport { Version } from \"./types\";\n\n/**\n * Returns the next version of the list given a base version and the upgrade type\n * @param base current version\n * @param bump the upgrade type\n */\nexport function nextVersion(base: Version, bump: VersionUpgrade): Version {\n switch (bump) {\n case VersionUpgrade.NONE:\n return base;\n\n case VersionUpgrade.MAJOR:\n return { major: base.major + 1, minor: 0, patch: 0 };\n\n case VersionUpgrade.MINOR:\n return {\n major: base.major,\n minor: base.minor + 1,\n patch: 0,\n };\n\n case VersionUpgrade.PATCH:\n return {\n major: base.major,\n minor: base.minor,\n patch: base.patch + 1,\n };\n }\n}\n","import tokenlist from './tokenlist-v1.json';\nimport chainlist from './chainlist-v1.json';\nimport routerlist from './routerlist-v1.json';\nimport tokenschema from './tokenlist-v1.json';\nimport testnetfaucets from './testnet-faucets-v1.json';\nimport { ChainInfo, RouterInfo, TokenInfo, TestnetFaucetInfo } from './types';\n\nexport * from './abis';\nexport * from './types';\nexport * from './isVersionUpdate';\nexport * from './getVersionUpgrade';\nexport * from './diffTokenLists';\nexport * from './minVersionBump';\nexport * from './nextVersion';\nexport * from './versionComparator';\n\nexport { tokenschema, tokenlist, chainlist, routerlist };\n\nexport function getChain(chainId: number): ChainInfo {\n return chainlist.chains.find((needle: any) => {\n return needle.chainId === chainId;\n }) as ChainInfo;\n}\n\nexport function getTokenByAddress(\n tokenAddress: string,\n chainId?: number\n): TokenInfo | null {\n return (\n (tokenlist.tokens.find((token: any) => {\n return (\n token.address === tokenAddress &&\n (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo) ?? null\n );\n}\n\nexport function getTokenBySymbol(\n tokenSymbol: string,\n chainId?: number\n): TokenInfo | null {\n return (\n (tokenlist.tokens.find((token: any) => {\n return (\n token.symbol === tokenSymbol && (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo) ?? null\n );\n}\n\nexport function getTokens(chainId: number): TokenInfo[] {\n return tokenlist.tokens.filter((needle: any) => {\n return needle.chainId === chainId;\n }) as TokenInfo[];\n}\n\nexport function getFaucetAddress(tokenInfo: TokenInfo): TestnetFaucetInfo {\n return testnetfaucets.faucets.find((needle: any) => {\n return (\n needle.token === tokenInfo.address && needle.chainId === tokenInfo.chainId\n );\n }) as TestnetFaucetInfo;\n}\n\nexport function getRouters(chainId: number): RouterInfo[] {\n return routerlist.routers.filter((needle: any) => {\n return needle.chainId === chainId;\n }) as RouterInfo[];\n}\n\nexport function getRouter(chainId: number, version: string): RouterInfo {\n return routerlist.routers.find((needle: any) => {\n return needle.chainId === chainId && needle.version === version;\n }) as RouterInfo;\n}\n\nexport function getLatestRouter(chainId: number): RouterInfo {\n const sorted = getRouters(chainId).sort((a, b) => {\n return Date.parse(a.timestamp) - Date.parse(b.timestamp);\n });\n return sorted[sorted.length - 1];\n}\n\nexport function getShortNames(): string[] {\n return chainlist.chains.map(chain => chain.shortName);\n}"],"names":["HIRO_ROUTER_ABIS","HiroRouterV01","HiroRouterV02","CURVE_ROUTER_ABI","CurveRouterV13Abi","TokenListTagNames","versionComparator","versionA","versionB","major","minor","patch","isVersionUpdate","base","update","VersionUpgrade","getVersionUpgrade","MAJOR","NONE","MINOR","PATCH","compareTokenInfoProperty","a","b","Array","isArray","every","el","i","diffTokenLists","indexedBase","reduce","memo","tokenInfo","chainId","address","newListUpdates","baseToken","added","push","changes","Object","keys","filter","s","length","changed","index","removed","list","curr","minVersionBump","baseList","updatedList","diff","nextVersion","bump","getChain","chainlist","chains","find","needle","getTokenByAddress","tokenAddress","tokenlist","tokens","token","getTokenBySymbol","tokenSymbol","symbol","getTokens","getFaucetAddress","testnetfaucets","faucets","getRouters","routerlist","routers","getRouter","version","getLatestRouter","sorted","sort","Date","parse","timestamp","getShortNames","map","chain","shortName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIaA,gBAAgB,GAA0B;EACrD,OAAOC,aAD8C;EAErD,OAAOC,aA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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t,a={name:"Default",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7/logo.png",keywords:[],version:{major:0,minor:0,patch:1},tokens:[{chainId:1,coinGeckoId:"ethereum",name:"Ether",symbol:"ETH",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/ETH.svg",decimals:18,tags:["Mainnet","Native Token","Top10"],address:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"},{chainId:10,coinGeckoId:"ethereum",name:"Ether",symbol:"ETH",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/ETH.svg",decimals:18,tags:["Optimism","Native Token","Top10"],address:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"},{chainId:42161,coinGeckoId:"ethereum",name:"Ether",symbol:"ETH",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/ETH.svg",decimals:18,tags:["Arbitrum","Native Token","Top10"],address:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"},{chainId:1,coinGeckoId:"weth",name:"Wrapped Ether",symbol:"WETH",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/WETH.svg",decimals:18,tags:["Mainnet","Native Token"],address:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{chainId:10,coinGeckoId:"weth",name:"Wrapped Ether",symbol:"WETH",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/WETH.svg",decimals:18,tags:["Optimism","Native Token"],address:"0x4200000000000000000000000000000000000006"},{chainId:42161,coinGeckoId:"weth",name:"Wrapped Ether",symbol:"WETH",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/WETH.svg",decimals:18,tags:["Arbitrum","Native Token"],address:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"},{chainId:1,coinGeckoId:"tether",name:"Tether",symbol:"USDT",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg",decimals:6,tags:["Mainnet","Stablecoin","Top10","USD"],address:"0xdac17f958d2ee523a2206206994597c13d831ec7"},{chainId:10,coinGeckoId:"tether",name:"Tether",symbol:"USDT",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg",decimals:6,tags:["Optimism","Stablecoin","Top10","USD"],address:"0x94b008aa00579c1307b0ef2c499ad98a8ce58e58"},{chainId:42161,coinGeckoId:"tether",name:"Tether",symbol:"USDT",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg",decimals:6,tags:["Arbitrum","Stablecoin","Top10","USD"],address:"0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9"},{chainId:1,coinGeckoId:"usd-coin",name:"USD Coin",symbol:"USDC",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:6,tags:["Mainnet","Stablecoin","Top10","USD"],address:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"},{chainId:10,coinGeckoId:"usd-coin",name:"USD Coin - Bridged",symbol:"USDC.e",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:6,tags:["Optimism","Stablecoin","Top10","USD"],address:"0x7f5c764cbc14f9669b88837ca1490cca17c31607"},{chainId:10,coinGeckoId:"usd-coin",name:"USD Coin",symbol:"USDC",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:6,tags:["Optimism","Stablecoin","Top10","USD"],address:"0x0b2c639c533813f4aa9d7837caf62653d097ff85"},{chainId:42161,coinGeckoId:"usd-coin",name:"USD Coin",symbol:"USDC",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:6,tags:["Arbitrum","Stablecoin","Top10","USD"],address:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831"},{chainId:42161,coinGeckoId:"usd-coin",name:"USD Coin - Bridged",symbol:"USDC.e",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:6,tags:["Arbitrum","Stablecoin","Top10","USD"],address:"0xff970a61a04b1ca14834a43f5de4533ebddb5cc8"},{chainId:1,coinGeckoId:"dai",name:"DAI",symbol:"DAI",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/DAI.svg",decimals:18,tags:["Mainnet","Stablecoin","Top10","USD"],address:"0x6b175474e89094c44da98b954eedeac495271d0f"},{chainId:10,coinGeckoId:"dai",name:"DAI",symbol:"DAI",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/DAI.svg",decimals:18,tags:["Optimism","Stablecoin","Top10","USD"],address:"0xda10009cbd5d07dd0cecc66161fc93d7c9000da1"},{chainId:42161,coinGeckoId:"dai",name:"DAI",symbol:"DAI",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/DAI.svg",decimals:18,tags:["Arbitrum","Stablecoin","Top10","USD"],address:"0xda10009cbd5d07dd0cecc66161fc93d7c9000da1"},{chainId:1,coinGeckoId:"crvusd",name:"crvUSD",symbol:"crvUSD",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/crvUSD.svg",decimals:18,tags:["Mainnet","Stablecoin","USD"],address:"0xf939e0a03fb07f59a73314e73794be0e57ac1b4e"},{chainId:1,coinGeckoId:"monerium-eur-money",name:"EURe",symbol:"EURe",currency:"EUR",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/EURe.svg",decimals:18,tags:["Mainnet","Stablecoin","EUR"],address:"0x3231Cb76718CDeF2155FC47b5286d82e6eDA273f"},{chainId:5,name:"XUSD",symbol:"XUSD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:18,tags:["TESTNET"],address:"0x33ca3889bb0032e9c3794b608a242d27e7293353"},{chainId:5,name:"USDC.test",symbol:"USDC",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:18,tags:["TESTNET"],address:"0xe5768E2dDEc1E50Ac2672a2d75D63d36A8Ec88d9"},{chainId:5,name:"USDT.test",symbol:"USDT",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg",decimals:18,tags:["TESTNET"],address:"0xeB87E5d9c773d3E802989295147564985B5B358C"},{chainId:43114,coinGeckoId:"dai",address:"0xd586E7F844cEa2F87f50152665BCbc2C279D8d70",decimals:18,name:"Dai Stablecoin",symbol:"DAI.e",currency:"USD",tags:["Avalanche","Stablecoins"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/DAI.svg"},{chainId:43114,coinGeckoId:"tether",address:"0xc7198437980c041c805A1EDcbA50c1Ce5db95118",decimals:6,name:"Tether - Bridged",symbol:"USDT.e",currency:"USD",tags:["Avalanche","Stablecoins"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg"},{chainId:43114,coinGeckoId:"usd-coin",address:"0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664",decimals:6,name:"USD Coin - Bridged",symbol:"USDC.e",currency:"USD",tags:["Avalanche","Stablecoins"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg"},{chainId:43114,coinGeckoId:"magic-internet-money",address:"0x130966628846BFd36ff31a822705796e8cb8C18D",decimals:18,name:"Magic Internet Money",symbol:"MIM",tags:["Avalanche","Stablecoins"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/MIM.svg"},{chainId:43114,coinGeckoId:"usd-coin",address:"0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E",decimals:6,name:"USD Coin",symbol:"USDC",currency:"USD",tags:["Avalanche","Stablecoin","Top10"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg"},{chainId:43114,coinGeckoId:"tether",address:"0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7",decimals:6,name:"Tether",symbol:"USDT",currency:"USD",tags:["Avalanche","Stablecoin","Top10"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg"},{chainId:100,coinGeckoId:"tether",address:"0x4ECaBa5870353805a9F068101A40E0f32ed605C6",decimals:6,name:"Tether",symbol:"USDT",currency:"USD",tags:["Gnosis","Stablecoin","Top10"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg"},{chainId:100,coinGeckoId:"usd-coin",address:"0xddafbb505ad214d7b80b1f830fccc89b60fb7a83",decimals:6,name:"USD Coin",symbol:"USDC",currency:"USD",tags:["Gnosis","Stablecoin","Top10"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg"},{chainId:100,coinGeckoId:"xdai",address:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",decimals:18,name:"xDAI",symbol:"xDAI",currency:"USD",tags:["Gnosis","Stablecoin","Native Token"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/xDAI.svg"},{chainId:100,coinGeckoId:"wrapped-xdai",address:"0xe91d153e0b41518a2ce8dd3d7944fa863463a97d",decimals:18,name:"wxDAI",symbol:"wxDAI",currency:"USD",tags:["Gnosis","Stablecoin","Native Token"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/wxDAI.svg"},{chainId:100,coinGeckoId:"monerium-eur-money",address:"0xcB444e90D8198415266c6a2724b7900fb12FC56E",decimals:18,name:"EURe",symbol:"EURe",currency:"EUR",tags:["Gnosis","Stablecoin"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/EURe.svg"},{chainId:137,coinGeckoId:"matic-network",name:"MATIC",symbol:"MATIC",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/137/logo.svg",decimals:18,tags:["Polygon","Native Token"],address:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"},{chainId:137,coinGeckoId:"matic-network",name:"Wrapped MATIC",symbol:"WMATIC",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/137/logo.svg",decimals:18,tags:["Polygon","Native Token"],address:"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270"},{chainId:137,coinGeckoId:"tether",name:"Tether",symbol:"USDT",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg",decimals:6,tags:["Polygon","Stablecoin","Top10","USD"],address:"0xc2132D05D31c914a87C6611C10748AEb04B58e8F"},{chainId:137,coinGeckoId:"usd-coin",name:"USD Coin",symbol:"USDC",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:6,tags:["Polygon","Stablecoin","Top10","USD"],address:"0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174"},{chainId:137,coinGeckoId:"dai",name:"DAI",symbol:"DAI",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/DAI.svg",decimals:18,tags:["Polygon","Stablecoin","Top10","USD"],address:"0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063"},{chainId:137,coinGeckoId:"monerium-eur-money",address:"0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6",decimals:18,name:"EURe",symbol:"EURe",currency:"EUR",tags:["Polygon","Stablecoin"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/EURe.svg"}],timestamp:"2021-09-07T00:00:00+00:00"},n={name:"Default",logoUri:"",keywords:[],version:{major:0,minor:0,patch:1},chains:[{chainName:"Ethereum",shortName:"eth",testnet:!1,chainId:1,logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/1/logo.svg",rpcUrls:["https://rpc.ankr.com/eth"],wrappedNativeToken:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",explorerUrl:"https://etherscan.io",timestamp:"2022-12-29T18:52:20+00:00",feeTreasury:"0x9C48d180e4eEE0dA2A899EE1E4c533cA5e92db77",priceFeeds:{AUD:"0x77f9710e7d0a19669a13c055f62cd80d313df022",CAD:"0xa34317db73e77d453b1b8d04550c44d10e981c8e",CHF:"0x449d117117838ffa61263b61da6301aa2a88b13a",EUR:"0xb49f677943bc038e9857d61e7d053caa2c1734c1",ETH:"0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419",GBP:"0x5c0ab2d9b5a7ed9f470386e82bb36a3613cdd4b5",JPY:"0xbce206cae7f0ec07b545edde332a47c2f75bbeb3",CNY:"0xef8a4af35cd47424672e3c590abd37fbb7a7759a",KRW:"0x01435677fb11763550905594a16b645847c1d0f3",NZD:"0x3977cfc9e4f29c184d4675f4eb8e0013236e5f3e",SGD:"0xe25277ff4bbf9081c75ab0eb13b4a13a721f3e13",TRY:"0xb09fc5fd3f11cf9eb5e1c5dba43114e3c9f477b5"},curveRouterAddress:"0x99a58482BD75cbab83b27EC03CA68fF489b5788f"},{chainName:"Ethereum Goerli",shortName:"gor",testnet:!0,chainId:5,logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/5/logo.svg",rpcUrls:["https://rpc.ankr.com/eth_goerli"],wrappedNativeToken:"0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6",explorerUrl:"https://goerli.etherscan.io",timestamp:"2022-12-28T14:10:09+00:00",feeTreasury:"0x3E8A61F0532BA2b58660606d61110cC9E90c4D29",priceFeeds:{CZK:"0xAE45DCb3eB59E27f05C170752B218C6174394Df8",JPY:"0x295b398c95cEB896aFA18F25d0c6431Fd17b1431"}},{chainName:"Arbitrum One",shortName:"arb1",testnet:!1,chainId:42161,logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/42161/logo.svg",rpcUrls:["https://rpc.ankr.com/arbitrum"],wrappedNativeToken:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",explorerUrl:"https://arbiscan.io",timestamp:"2023-01-13T14:52:05+00:00",feeTreasury:"0x5f0947253a8218894af13438ac2e2e0ced30d234",priceFeeds:{AUD:"0x9854e9a850e7c354c1de177ea953a6b1fba8fc22",CNY:"0xcc3370bde6afe51e1205a5038947b9836371eccb",EUR:"0xa14d53bc1f1c0f31b4aa3bd109344e5009051a84",ETH:"0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612",CAD:"0xf6da27749484843c4f02f5ad1378cee723dd61d4",CHF:"0xe32AccC8c4eC03F6E75bd3621BfC9Fbb234E1FC3",GBP:"0x9c4424fd84c6661f97d8d6b3fc3c1aac2bedd137",JPY:"0x3dd6e51cb9cae717d5a8778cf79a04029f9cfdf8",KRW:"0x85bb02e0ae286600d1c68bb6ce22cc998d411916",SEK:"0xde89a55d04ded40a410877ab87d4f567ee66a1f0",SGD:"0xf0d38324d1f86a176ac727a4b0c43c9f9d9c5eb1"},curveRouterAddress:"0x4c2af2df2a7e567b5155879720619ea06c5bb15d"},{chainName:"Optimism",shortName:"oeth",testnet:!1,chainId:10,logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/10/logo.svg",rpcUrls:["https://mainnet.optimism.io"],wrappedNativeToken:"0x4200000000000000000000000000000000000006",explorerUrl:"https://optimistic.etherscan.io",timestamp:"2023-02-27T14:52:05+00:00",feeTreasury:"0x5f0947253a8218894af13438ac2e2e0ced30d234",priceFeeds:{AUD:"0x39be70e93d2d285c9e71be7f70fc5a45a7777b14",EUR:"0x3626369857a10ccc6cc3a6e4f5c2f5984a519f20",ETH:"0x13e3Ee699D1909E989722E753853AE30b17e08c5",GBP:"0x540d48c01f946e729174517e013ad0bdae5f08c0",JPY:"0x536944c3a71feb7c1e5c66ee37d1a148d8d8f619",INR:"0x5535e67d8f99c8ebe961e1fc1f6ddae96fec82c9"},curveRouterAddress:"0x89287c32c2cac1c76227f6d300b2dbbab6b75c08"},{chainName:"Avalanche",shortName:"avax",testnet:!1,chainId:43114,logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/43113/logo.svg",rpcUrls:["https://api.avax.network/ext/bc/C/rpc"],wrappedNativeToken:"0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB",explorerUrl:"https://snowtrace.io",timestamp:"2023-01-13T14:52:05+00:00",feeTreasury:"0x25e22F3ceE59F34622f7DC9a2078B85f17BfBe95",priceFeeds:{AVAX:"0x0A77230d17318075983913bC2145DB16C7366156",BRL:"0x609dddb75518aa4af84ac228b62261ae68e52989",CHF:"0x3b37950485b450edf90cbb85d0cd27308af4ab9a",EUR:"0x192f2dba961bb0277520c082d6bfa87d5961333e",JPY:"0xf8b283ad4d969ecfd70005714dd5910160565b94",TRY:"0xa61bf273688ea095b5e4c11f1af5e763f7aeee91"}},{chainName:"Gnosis",shortName:"gno",testnet:!1,chainId:100,logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/100/logo.svg",rpcUrls:["https://rpc.gnosis.gateway.fm"],wrappedNativeToken:"0xe91d153e0b41518a2ce8dd3d7944fa863463a97d",explorerUrl:"https://gnosisscan.io",timestamp:"2023-07-27T14:52:05+00:00",feeTreasury:"0x775aaf73a50C25eEBd308BBb9C34C73D081B423b",priceFeeds:{CHF:"0xFb00261Af80ADb1629D3869E377ae1EEC7bE659F",DAI:"0x678df3415fc31947dA4324eC63212874be5a82f8",EUR:"0xab70BCB260073d036d1660201e9d5405F5829b7a",GNO:"0x22441d81416430A54336aB28765abd31a792Ad37",JPY:"0x2AfB993C670C01e9dA1550c58e8039C1D8b8A317"},curveRouterAddress:"0xe6358f6a45b502477e83cc1cda759f540e4459ee"},{chainName:"Polygon",shortName:"matic",testnet:!1,chainId:137,logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/137/logo.svg",rpcUrls:["https://polygon-rpc.com"],wrappedNativeToken:"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270",explorerUrl:"https://polygonscan.com",timestamp:"2023-09-07T00:00:00+00:00",feeTreasury:"0x5f0947253a8218894af13438ac2e2E0CeD30d234",priceFeeds:{AUD:"0x062Df9C4efd2030e243ffCc398b652e8b8F95C6f",CAD:"0xACA44ABb8B04D07D883202F99FA5E3c53ed57Fb5",CHF:"0xc76f762CedF0F78a439727861628E0fdfE1e70c2",CNY:"0x04bB437Aa63E098236FA47365f0268547f6EAB32",EUR:"0x73366Fe0AA0Ded304479862808e02506FE556a98",GBP:"0x099a2540848573e94fb1Ca0Fa420b00acbBc845a",HKD:"0x82d43B72573f902F960126a19581BcBbA5b014F5",ILS:"0x8d5eB34C509261533235b91350d359EdcB969D33",INR:"0xDA0F8Df6F5dB15b346f4B8D1156722027E194E60",JPY:"0xD647a6fC9BC6402301583C91decC5989d8Bc382D",KRW:"0x24B820870F726dA9B0D83B0B28a93885061dbF50",MATIC:"0xAB594600376Ec9fD91F8e885dADF0CE036862dE0",MXN:"0x171b16562EA3476F5C61d1b8dad031DbA0768545",NZD:"0xa302a0B8a499fD0f00449df0a490DedE21105955",PHP:"0x218231089Bebb2A31970c3b77E96eCfb3BA006D1",PLN:"0xB34BCE11040702f71c11529D00179B2959BcE6C0",SEK:"0xbd92B4919ae82be8473859295dEF0e778A626302",SGD:"0x8CE3cAc0E6635ce04783709ca3CC4F5fc5304299",THB:"0x5164Ad28fb12a5e55946090Ec3eE1B748AFb3785",TRY:"0xd78325DcA0F90F0FFe53cCeA1B02Bb12E1bf8FdB"},curveRouterAddress:"0x2a426b3Bb4fa87488387545f15D01d81352732F9"}]},s={name:"Default",logoUri:"",keywords:[],version:{major:0,minor:0,patch:1},routers:[{chainId:1,address:"0x4cafd841df0df6da5739f729491887d64ad2794c",timestamp:"2022-12-30T00:00:00+00:00",version:"0.1",fee:"0.002"},{chainId:1,address:"0x061888246A29fEB9bb3f168CD8589B3Cf4115668",timestamp:"2023-09-01T00:00:00+00:00",version:"0.2",fee:"0.002"},{chainId:5,address:"0x8412D3c11aa605EbaF14D0b6BC7705ab45143Ee8",timestamp:"2022-12-23T00:00:00+00:00",version:"0.1",fee:"0.002"},{chainId:10,address:"0xfbA75752D73d3Fb3aA13e7BC7cfD142E73E78a8A",timestamp:"2023-02-27T00:00:00+00:00",version:"0.1",fee:"0.002"},{chainId:10,address:"0x408EB3F5A578b3eEcFe2c0cD58988fAb306885b4",timestamp:"2023-09-01T00:00:00+00:00",version:"0.2",fee:"0.002"},{chainId:42161,address:"0x334264f4fbb56a84f80df722ba765d210f0cf555",timestamp:"2023-02-23T00:00:00+00:00",version:"0.1",fee:"0.002"},{chainId:42161,address:"0x408EB3F5A578b3eEcFe2c0cD58988fAb306885b4",timestamp:"2023-09-01T00:00:00+00:00",version:"0.2",fee:"0.002"},{chainId:100,address:"0x448fabd2d16bc48ecdbe68890414de7a1b6348fd",timestamp:"2023-07-27T00:00:00+00:00",version:"0.1",fee:"0.002"},{chainId:100,address:"0x5faD44Dc5B63f1717523c340de357ef399FeA0F2",timestamp:"2023-09-01T00:00:00+00:00",version:"0.2",fee:"0.002"},{chainId:137,address:"0x8866DAFa2762346c85098C5b2201fA7CB2dA6100",timestamp:"2023-09-07T00:00:00+00:00",version:"0.2",fee:"0.002"}]},o={name:"Default",logoUri:"",keywords:[],version:{major:0,minor:0,patch:1},faucets:[{chainId:5,token:"0x33ca3889bb0032e9c3794b608a242d27e7293353",address:"0xd2bc1d97793763b7262987a67f1945169c763389"},{chainId:5,token:"0xe5768E2dDEc1E50Ac2672a2d75D63d36A8Ec88d9",address:"0x5A3380C7d6A05AF3Ce68C939142658C35Efc066d"},{chainId:5,token:"0xeB87E5d9c773d3E802989295147564985B5B358C",address:"0xF47661BCe78194b44675547873ef58Ca8Db9b145"}]},i=[{inputs:[{internalType:"address",name:"_feeTreasury",type:"address"},{internalType:"uint256",name:"_baseFeeBps",type:"uint256"},{internalType:"string",name:"_version",type:"string"},{internalType:"address",name:"_uniswapRouter",type:"address"},{internalType:"address",name:"_curveRouter",type:"address"},{internalType:"address",name:"_wrappedNativeToken",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"priceFeed",type:"address"},{indexed:!1,internalType:"int256",name:"exchangeRate",type:"int256"}],name:"Convert",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"fees",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"memo",type:"bytes32"}],name:"Payment",type:"event"},{inputs:[],name:"MAX_FEE_BPS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"NATIVE_TOKEN",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseFeeBps",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"feeBps",type:"uint256"}],name:"calculateFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[],name:"curveRouter",outputs:[{internalType:"contract ICurveRouter",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address[2]",name:"priceFeeds",type:"address[2]"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"exchangeRate",outputs:[{internalType:"uint256",name:"converted",type:"uint256"},{internalType:"address[2]",name:"priceFeedsUsed",type:"address[2]"},{internalType:"int256[2]",name:"prices",type:"int256[2]"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeTreasury",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"bytes32",name:"memo",type:"bytes32"},{internalType:"address[9]",name:"route",type:"address[9]"},{internalType:"uint256[3][4]",name:"swapParams",type:"uint256[3][4]"},{internalType:"address[4]",name:"factoryAddresses",type:"address[4]"},{internalType:"address[2]",name:"priceFeeds",type:"address[2]"},{internalType:"address",name:"extraFeeReceiver",type:"address"},{internalType:"uint256",name:"extraFeeBps",type:"uint256"},{internalType:"bool",name:"returnRemainder",type:"bool"}],internalType:"struct HiroRouterV1.HiroCurveParams",name:"params",type:"tuple"}],name:"payWithCurve",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"memo",type:"bytes32"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address[2]",name:"priceFeeds",type:"address[2]"},{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"address",name:"extraFeeReceiver",type:"address"},{internalType:"uint256",name:"extraFeeBps",type:"uint256"}],name:"payWithToken",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"bytes32",name:"memo",type:"bytes32"},{internalType:"bytes",name:"path",type:"bytes"},{internalType:"address[2]",name:"priceFeeds",type:"address[2]"},{internalType:"address",name:"extraFeeReceiver",type:"address"},{internalType:"uint256",name:"extraFeeBps",type:"uint256"},{internalType:"bool",name:"returnRemainder",type:"bool"},{internalType:"enum HiroRouterV1.SwapType",name:"swapType",type:"uint8"}],internalType:"struct HiroRouterV1.HiroUniswapParams",name:"params",type:"tuple"}],name:"payWithUniswap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"sweep",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"uniswapRouter",outputs:[{internalType:"contract ISwapRouter",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"version",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"wrappedNativeToken",outputs:[{internalType:"contract IWETH9",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],r={.1:[{inputs:[{internalType:"address",name:"_feeTreasury",type:"address"},{internalType:"uint256",name:"_baseFeeDivisor",type:"uint256"},{internalType:"string",name:"_version",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"priceFeed",type:"address"},{indexed:!1,internalType:"int256",name:"exchangeRate",type:"int256"}],name:"Convert",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"fees",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"memo",type:"bytes32"}],name:"Payment",type:"event"},{inputs:[{internalType:"address[]",name:"_priceFeeds",type:"address[]"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"exchangeRate",outputs:[{internalType:"uint256",name:"converted",type:"uint256"},{internalType:"address",name:"priceFeed",type:"address"},{internalType:"int256",name:"price",type:"int256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"_memo",type:"bytes32"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"address[]",name:"_priceFeeds",type:"address[]"},{internalType:"address",name:"_token",type:"address"},{internalType:"address",name:"_receiver",type:"address"},{internalType:"address",name:"_extraFeeReceiver",type:"address"},{internalType:"uint256",name:"_extraFeeDivisor",type:"uint256"}],name:"payWithToken",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}],.2:i,test:i};function d(e,t){return e.major<t.major?-1:e.major>t.major?1:e.minor<t.minor?-1:e.minor>t.minor?1:e.patch<t.patch?-1:e.patch>t.patch?1:0}function c(e,t){var a=e.reduce((function(e,t){return e[t.chainId]||(e[t.chainId]={}),e[t.chainId][t.address]=t,e}),{}),n=t.reduce((function(e,t){var n,s,o=null==(n=a[t.chainId])?void 0:n[t.address];if(o){var i=Object.keys(t).filter((function(e){return"address"!==e&&"chainId"!==e})).filter((function(e){return!((a=t[e])===(n=o[e])||typeof a==typeof n&&Array.isArray(a)&&Array.isArray(n)&&a.every((function(e,t){return n[t]===e})));var a,n}));i.length>0&&(e.changed[t.chainId]||(e.changed[t.chainId]={}),e.changed[t.chainId][t.address]=i)}else e.added.push(t);return e.index[t.chainId]?e.index[t.chainId][t.address]=!0:e.index[t.chainId]=((s={})[t.address]=!0,s),e}),{added:[],changed:{},index:{}}),s=e.reduce((function(e,t){return n.index[t.chainId]&&n.index[t.chainId][t.address]||e.push(t),e}),[]);return{added:n.added,changed:n.changed,removed:s}}function p(e){return s.routers.filter((function(t){return t.chainId===e}))}(e=exports.TokenListTagNames||(exports.TokenListTagNames={})).MAINNET="Mainnet",e.OPTIMISM="Optimism",e.ARBITRUM="Arbitrum",e.AVALANCHE="Avalanche",e.TESTNET="TESTNET",e.STABLECOIN="Stablecoin",e.USD="USD",e.EUR="EUR",e.TOP_10="Top10",e.NATIVE_TOKEN="Native Token",(t=exports.VersionUpgrade||(exports.VersionUpgrade={}))[t.NONE=0]="NONE",t[t.PATCH=1]="PATCH",t[t.MINOR=2]="MINOR",t[t.MAJOR=3]="MAJOR",exports.CURVE_ROUTER_ABI=[{name:"TokenExchange",inputs:[{name:"buyer",type:"address",indexed:!0},{name:"receiver",type:"address",indexed:!0},{name:"pool",type:"address",indexed:!0},{name:"token_sold",type:"address",indexed:!1},{name:"token_bought",type:"address",indexed:!1},{name:"amount_sold",type:"uint256",indexed:!1},{name:"amount_bought",type:"uint256",indexed:!1}],anonymous:!1,type:"event"},{name:"ExchangeMultiple",inputs:[{name:"buyer",type:"address",indexed:!0},{name:"receiver",type:"address",indexed:!0},{name:"route",type:"address[9]",indexed:!1},{name:"swap_params",type:"uint256[3][4]",indexed:!1},{name:"pools",type:"address[4]",indexed:!1},{name:"amount_sold",type:"uint256",indexed:!1},{name:"amount_bought",type:"uint256",indexed:!1}],anonymous:!1,type:"event"},{stateMutability:"nonpayable",type:"constructor",inputs:[{name:"_address_provider",type:"address"},{name:"_calculator",type:"address"},{name:"_weth",type:"address"}],outputs:[]},{stateMutability:"payable",type:"fallback"},{stateMutability:"payable",type:"function",name:"exchange_with_best_rate",inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"},{name:"_expected",type:"uint256"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"payable",type:"function",name:"exchange_with_best_rate",inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"},{name:"_expected",type:"uint256"},{name:"_receiver",type:"address"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"payable",type:"function",name:"exchange",inputs:[{name:"_pool",type:"address"},{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"},{name:"_expected",type:"uint256"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"payable",type:"function",name:"exchange",inputs:[{name:"_pool",type:"address"},{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"},{name:"_expected",type:"uint256"},{name:"_receiver",type:"address"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"payable",type:"function",name:"exchange_multiple",inputs:[{name:"_route",type:"address[9]"},{name:"_swap_params",type:"uint256[3][4]"},{name:"_amount",type:"uint256"},{name:"_expected",type:"uint256"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"payable",type:"function",name:"exchange_multiple",inputs:[{name:"_route",type:"address[9]"},{name:"_swap_params",type:"uint256[3][4]"},{name:"_amount",type:"uint256"},{name:"_expected",type:"uint256"},{name:"_pools",type:"address[4]"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"payable",type:"function",name:"exchange_multiple",inputs:[{name:"_route",type:"address[9]"},{name:"_swap_params",type:"uint256[3][4]"},{name:"_amount",type:"uint256"},{name:"_expected",type:"uint256"},{name:"_pools",type:"address[4]"},{name:"_receiver",type:"address"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"view",type:"function",name:"get_best_rate",inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"}],outputs:[{name:"",type:"address"},{name:"",type:"uint256"}]},{stateMutability:"view",type:"function",name:"get_best_rate",inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"},{name:"_exclude_pools",type:"address[8]"}],outputs:[{name:"",type:"address"},{name:"",type:"uint256"}]},{stateMutability:"view",type:"function",name:"get_exchange_amount",inputs:[{name:"_pool",type:"address"},{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"view",type:"function",name:"get_input_amount",inputs:[{name:"_pool",type:"address"},{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"view",type:"function",name:"get_exchange_amounts",inputs:[{name:"_pool",type:"address"},{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amounts",type:"uint256[100]"}],outputs:[{name:"",type:"uint256[100]"}]},{stateMutability:"view",type:"function",name:"get_exchange_multiple_amount",inputs:[{name:"_route",type:"address[9]"},{name:"_swap_params",type:"uint256[3][4]"},{name:"_amount",type:"uint256"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"view",type:"function",name:"get_exchange_multiple_amount",inputs:[{name:"_route",type:"address[9]"},{name:"_swap_params",type:"uint256[3][4]"},{name:"_amount",type:"uint256"},{name:"_pools",type:"address[4]"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"view",type:"function",name:"get_calculator",inputs:[{name:"_pool",type:"address"}],outputs:[{name:"",type:"address"}]},{stateMutability:"nonpayable",type:"function",name:"update_registry_address",inputs:[],outputs:[{name:"",type:"bool"}]},{stateMutability:"nonpayable",type:"function",name:"set_calculator",inputs:[{name:"_pool",type:"address"},{name:"_calculator",type:"address"}],outputs:[{name:"",type:"bool"}]},{stateMutability:"nonpayable",type:"function",name:"set_default_calculator",inputs:[{name:"_calculator",type:"address"}],outputs:[{name:"",type:"bool"}]},{stateMutability:"nonpayable",type:"function",name:"claim_balance",inputs:[{name:"_token",type:"address"}],outputs:[{name:"",type:"bool"}]},{stateMutability:"nonpayable",type:"function",name:"set_killed",inputs:[{name:"_is_killed",type:"bool"}],outputs:[{name:"",type:"bool"}]},{stateMutability:"view",type:"function",name:"registry",inputs:[],outputs:[{name:"",type:"address"}]},{stateMutability:"view",type:"function",name:"factory_registry",inputs:[],outputs:[{name:"",type:"address"}]},{stateMutability:"view",type:"function",name:"crypto_registry",inputs:[],outputs:[{name:"",type:"address"}]},{stateMutability:"view",type:"function",name:"default_calculator",inputs:[],outputs:[{name:"",type:"address"}]},{stateMutability:"view",type:"function",name:"is_killed",inputs:[],outputs:[{name:"",type:"bool"}]}],exports.HIRO_ROUTER_ABIS=r,exports.chainlist=n,exports.diffTokenLists=c,exports.getChain=function(e){return n.chains.find((function(t){return t.chainId===e}))},exports.getFaucetAddress=function(e){return o.faucets.find((function(t){return t.token===e.address&&t.chainId===e.chainId}))},exports.getLatestRouter=function(e){var t=p(e).sort((function(e,t){return Date.parse(e.timestamp)-Date.parse(t.timestamp)}));return t[t.length-1]},exports.getRouter=function(e,t){return s.routers.find((function(a){return a.chainId===e&&a.version===t}))},exports.getRouters=p,exports.getShortNames=function(){return n.chains.map((function(e){return e.shortName}))},exports.getTokenByAddress=function(e,t){var n;return null!=(n=a.tokens.find((function(a){return a.address===e&&(!t||a.chainId===t)})))?n:null},exports.getTokenBySymbol=function(e,t){var n;return null!=(n=a.tokens.find((function(a){return a.symbol===e&&(!t||a.chainId===t)})))?n:null},exports.getTokens=function(e){return a.tokens.filter((function(t){return t.chainId===e}))},exports.getVersionUpgrade=function(e,t){return t.major>e.major?exports.VersionUpgrade.MAJOR:t.major<e.major?exports.VersionUpgrade.NONE:t.minor>e.minor?exports.VersionUpgrade.MINOR:t.minor<e.minor?exports.VersionUpgrade.NONE:t.patch>e.patch?exports.VersionUpgrade.PATCH:exports.VersionUpgrade.NONE},exports.isVersionUpdate=function(e,t){return d(e,t)<0},exports.minVersionBump=function(e,t){var a=c(e,t);return a.removed.length>0?exports.VersionUpgrade.MAJOR:a.added.length>0?exports.VersionUpgrade.MINOR:Object.keys(a.changed).length>0?exports.VersionUpgrade.PATCH:exports.VersionUpgrade.NONE},exports.nextVersion=function(e,t){switch(t){case exports.VersionUpgrade.NONE:return e;case exports.VersionUpgrade.MAJOR:return{major:e.major+1,minor:0,patch:0};case exports.VersionUpgrade.MINOR:return{major:e.major,minor:e.minor+1,patch:0};case exports.VersionUpgrade.PATCH:return{major:e.major,minor:e.minor,patch:e.patch+1}}},exports.routerlist=s,exports.tokenlist=a,exports.tokenschema=a,exports.versionComparator=d;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t,a={name:"Default",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7/logo.png",keywords:[],version:{major:0,minor:0,patch:1},tokens:[{chainId:1,coinGeckoId:"ethereum",name:"Ether",symbol:"ETH",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/ETH.svg",decimals:18,tags:["Mainnet","Native Token","Top10"],address:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"},{chainId:10,coinGeckoId:"ethereum",name:"Ether",symbol:"ETH",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/ETH.svg",decimals:18,tags:["Optimism","Native Token","Top10"],address:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"},{chainId:42161,coinGeckoId:"ethereum",name:"Ether",symbol:"ETH",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/ETH.svg",decimals:18,tags:["Arbitrum","Native Token","Top10"],address:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"},{chainId:1,coinGeckoId:"weth",name:"Wrapped Ether",symbol:"WETH",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/WETH.svg",decimals:18,tags:["Mainnet","Native Token"],address:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{chainId:10,coinGeckoId:"weth",name:"Wrapped Ether",symbol:"WETH",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/WETH.svg",decimals:18,tags:["Optimism","Native Token"],address:"0x4200000000000000000000000000000000000006"},{chainId:42161,coinGeckoId:"weth",name:"Wrapped Ether",symbol:"WETH",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/WETH.svg",decimals:18,tags:["Arbitrum","Native Token"],address:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"},{chainId:1,coinGeckoId:"tether",name:"Tether",symbol:"USDT",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg",decimals:6,tags:["Mainnet","Stablecoin","Top10","USD"],address:"0xdac17f958d2ee523a2206206994597c13d831ec7"},{chainId:10,coinGeckoId:"tether",name:"Tether",symbol:"USDT",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg",decimals:6,tags:["Optimism","Stablecoin","Top10","USD"],address:"0x94b008aa00579c1307b0ef2c499ad98a8ce58e58"},{chainId:42161,coinGeckoId:"tether",name:"Tether",symbol:"USDT",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg",decimals:6,tags:["Arbitrum","Stablecoin","Top10","USD"],address:"0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9"},{chainId:1,coinGeckoId:"usd-coin",name:"USD Coin",symbol:"USDC",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:6,tags:["Mainnet","Stablecoin","Top10","USD"],address:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"},{chainId:10,coinGeckoId:"usd-coin",name:"USD Coin - Bridged",symbol:"USDC.e",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:6,tags:["Optimism","Stablecoin","Top10","USD"],address:"0x7f5c764cbc14f9669b88837ca1490cca17c31607"},{chainId:10,coinGeckoId:"usd-coin",name:"USD Coin",symbol:"USDC",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:6,tags:["Optimism","Stablecoin","Top10","USD"],address:"0x0b2c639c533813f4aa9d7837caf62653d097ff85"},{chainId:42161,coinGeckoId:"usd-coin",name:"USD Coin",symbol:"USDC",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:6,tags:["Arbitrum","Stablecoin","Top10","USD"],address:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831"},{chainId:42161,coinGeckoId:"usd-coin",name:"USD Coin - Bridged",symbol:"USDC.e",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:6,tags:["Arbitrum","Stablecoin","Top10","USD"],address:"0xff970a61a04b1ca14834a43f5de4533ebddb5cc8"},{chainId:1,coinGeckoId:"dai",name:"DAI",symbol:"DAI",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/DAI.svg",decimals:18,tags:["Mainnet","Stablecoin","Top10","USD"],address:"0x6b175474e89094c44da98b954eedeac495271d0f"},{chainId:10,coinGeckoId:"dai",name:"DAI",symbol:"DAI",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/DAI.svg",decimals:18,tags:["Optimism","Stablecoin","Top10","USD"],address:"0xda10009cbd5d07dd0cecc66161fc93d7c9000da1"},{chainId:42161,coinGeckoId:"dai",name:"DAI",symbol:"DAI",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/DAI.svg",decimals:18,tags:["Arbitrum","Stablecoin","Top10","USD"],address:"0xda10009cbd5d07dd0cecc66161fc93d7c9000da1"},{chainId:1,coinGeckoId:"crvusd",name:"crvUSD",symbol:"crvUSD",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/crvUSD.svg",decimals:18,tags:["Mainnet","Stablecoin","USD"],address:"0xf939e0a03fb07f59a73314e73794be0e57ac1b4e"},{chainId:1,coinGeckoId:"monerium-eur-money",name:"EURe",symbol:"EURe",currency:"EUR",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/EURe.svg",decimals:18,tags:["Mainnet","Stablecoin","EUR"],address:"0x3231Cb76718CDeF2155FC47b5286d82e6eDA273f"},{chainId:5,name:"XUSD",symbol:"XUSD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:18,tags:["TESTNET"],address:"0x33ca3889bb0032e9c3794b608a242d27e7293353"},{chainId:5,name:"USDC.test",symbol:"USDC",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:18,tags:["TESTNET"],address:"0xe5768E2dDEc1E50Ac2672a2d75D63d36A8Ec88d9"},{chainId:5,name:"USDT.test",symbol:"USDT",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg",decimals:18,tags:["TESTNET"],address:"0xeB87E5d9c773d3E802989295147564985B5B358C"},{chainId:43114,coinGeckoId:"dai",address:"0xd586E7F844cEa2F87f50152665BCbc2C279D8d70",decimals:18,name:"Dai Stablecoin",symbol:"DAI.e",currency:"USD",tags:["Avalanche","Stablecoins"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/DAI.svg"},{chainId:43114,coinGeckoId:"tether",address:"0xc7198437980c041c805A1EDcbA50c1Ce5db95118",decimals:6,name:"Tether - Bridged",symbol:"USDT.e",currency:"USD",tags:["Avalanche","Stablecoins"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg"},{chainId:43114,coinGeckoId:"usd-coin",address:"0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664",decimals:6,name:"USD Coin - Bridged",symbol:"USDC.e",currency:"USD",tags:["Avalanche","Stablecoins"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg"},{chainId:43114,coinGeckoId:"magic-internet-money",address:"0x130966628846BFd36ff31a822705796e8cb8C18D",decimals:18,name:"Magic Internet Money",symbol:"MIM",tags:["Avalanche","Stablecoins"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/MIM.svg"},{chainId:43114,coinGeckoId:"usd-coin",address:"0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E",decimals:6,name:"USD Coin",symbol:"USDC",currency:"USD",tags:["Avalanche","Stablecoin","Top10"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg"},{chainId:43114,coinGeckoId:"tether",address:"0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7",decimals:6,name:"Tether",symbol:"USDT",currency:"USD",tags:["Avalanche","Stablecoin","Top10"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg"},{chainId:100,coinGeckoId:"tether",address:"0x4ECaBa5870353805a9F068101A40E0f32ed605C6",decimals:6,name:"Tether",symbol:"USDT",currency:"USD",tags:["Gnosis","Stablecoin","Top10"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg"},{chainId:100,coinGeckoId:"usd-coin",address:"0xddafbb505ad214d7b80b1f830fccc89b60fb7a83",decimals:6,name:"USD Coin",symbol:"USDC",currency:"USD",tags:["Gnosis","Stablecoin","Top10"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg"},{chainId:100,coinGeckoId:"xdai",address:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",decimals:18,name:"xDAI",symbol:"xDAI",currency:"USD",tags:["Gnosis","Stablecoin","Native Token"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/xDAI.svg"},{chainId:100,coinGeckoId:"wrapped-xdai",address:"0xe91d153e0b41518a2ce8dd3d7944fa863463a97d",decimals:18,name:"wxDAI",symbol:"wxDAI",currency:"USD",tags:["Gnosis","Stablecoin","Native Token"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/wxDAI.svg"},{chainId:100,coinGeckoId:"monerium-eur-money",address:"0xcB444e90D8198415266c6a2724b7900fb12FC56E",decimals:18,name:"EURe",symbol:"EURe",currency:"EUR",tags:["Gnosis","Stablecoin"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/EURe.svg"},{chainId:137,coinGeckoId:"matic-network",name:"MATIC",symbol:"MATIC",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/137/logo.svg",decimals:18,tags:["Polygon","Native Token"],address:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"},{chainId:137,coinGeckoId:"matic-network",name:"Wrapped MATIC",symbol:"WMATIC",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/137/logo.svg",decimals:18,tags:["Polygon","Native Token"],address:"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270"},{chainId:137,coinGeckoId:"tether",name:"Tether",symbol:"USDT",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDT.svg",decimals:6,tags:["Polygon","Stablecoin","Top10","USD"],address:"0xc2132D05D31c914a87C6611C10748AEb04B58e8F"},{chainId:137,coinGeckoId:"usd-coin",name:"USD Coin",symbol:"USDC",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/USDC.svg",decimals:6,tags:["Polygon","Stablecoin","Top10","USD"],address:"0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174"},{chainId:137,coinGeckoId:"dai",name:"DAI",symbol:"DAI",currency:"USD",logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/DAI.svg",decimals:18,tags:["Polygon","Stablecoin","Top10","USD"],address:"0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063"},{chainId:137,coinGeckoId:"monerium-eur-money",address:"0x18ec0A6E18E5bc3784fDd3a3634b31245ab704F6",decimals:18,name:"EURe",symbol:"EURe",currency:"EUR",tags:["Polygon","Stablecoin"],logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/tokens/EURe.svg"}],timestamp:"2021-09-07T00:00:00+00:00"},n={name:"Default",logoUri:"",keywords:[],version:{major:0,minor:0,patch:1},chains:[{chainName:"Ethereum",shortName:"eth",testnet:!1,chainId:1,logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/1/logo.svg",rpcUrls:["https://rpc.ankr.com/eth"],wrappedNativeToken:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",explorerUrl:"https://etherscan.io",timestamp:"2022-12-29T18:52:20+00:00",feeTreasury:"0x9C48d180e4eEE0dA2A899EE1E4c533cA5e92db77",priceFeeds:{AUD:"0x77f9710e7d0a19669a13c055f62cd80d313df022",CAD:"0xa34317db73e77d453b1b8d04550c44d10e981c8e",CHF:"0x449d117117838ffa61263b61da6301aa2a88b13a",EUR:"0xb49f677943bc038e9857d61e7d053caa2c1734c1",GBP:"0x5c0ab2d9b5a7ed9f470386e82bb36a3613cdd4b5",JPY:"0xbce206cae7f0ec07b545edde332a47c2f75bbeb3",CNY:"0xef8a4af35cd47424672e3c590abd37fbb7a7759a",KRW:"0x01435677fb11763550905594a16b645847c1d0f3",NZD:"0x3977cfc9e4f29c184d4675f4eb8e0013236e5f3e",SGD:"0xe25277ff4bbf9081c75ab0eb13b4a13a721f3e13",TRY:"0xb09fc5fd3f11cf9eb5e1c5dba43114e3c9f477b5"},tokenFeeds:{ETH:"0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419"},curveRouterAddress:"0x99a58482BD75cbab83b27EC03CA68fF489b5788f"},{chainName:"Ethereum Goerli",shortName:"gor",testnet:!0,chainId:5,logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/5/logo.svg",rpcUrls:["https://rpc.ankr.com/eth_goerli"],wrappedNativeToken:"0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6",explorerUrl:"https://goerli.etherscan.io",timestamp:"2022-12-28T14:10:09+00:00",feeTreasury:"0x3E8A61F0532BA2b58660606d61110cC9E90c4D29",priceFeeds:{CZK:"0xAE45DCb3eB59E27f05C170752B218C6174394Df8",JPY:"0x295b398c95cEB896aFA18F25d0c6431Fd17b1431"}},{chainName:"Arbitrum One",shortName:"arb1",testnet:!1,chainId:42161,logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/42161/logo.svg",rpcUrls:["https://rpc.ankr.com/arbitrum"],wrappedNativeToken:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",explorerUrl:"https://arbiscan.io",timestamp:"2023-01-13T14:52:05+00:00",feeTreasury:"0x5f0947253a8218894af13438ac2e2e0ced30d234",priceFeeds:{AUD:"0x9854e9a850e7c354c1de177ea953a6b1fba8fc22",CNY:"0xcc3370bde6afe51e1205a5038947b9836371eccb",EUR:"0xa14d53bc1f1c0f31b4aa3bd109344e5009051a84",CAD:"0xf6da27749484843c4f02f5ad1378cee723dd61d4",CHF:"0xe32AccC8c4eC03F6E75bd3621BfC9Fbb234E1FC3",GBP:"0x9c4424fd84c6661f97d8d6b3fc3c1aac2bedd137",JPY:"0x3dd6e51cb9cae717d5a8778cf79a04029f9cfdf8",KRW:"0x85bb02e0ae286600d1c68bb6ce22cc998d411916",SEK:"0xde89a55d04ded40a410877ab87d4f567ee66a1f0",SGD:"0xf0d38324d1f86a176ac727a4b0c43c9f9d9c5eb1"},tokenFeeds:{ETH:"0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612"},curveRouterAddress:"0x4c2af2df2a7e567b5155879720619ea06c5bb15d"},{chainName:"Optimism",shortName:"oeth",testnet:!1,chainId:10,logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/10/logo.svg",rpcUrls:["https://mainnet.optimism.io"],wrappedNativeToken:"0x4200000000000000000000000000000000000006",explorerUrl:"https://optimistic.etherscan.io",timestamp:"2023-02-27T14:52:05+00:00",feeTreasury:"0x5f0947253a8218894af13438ac2e2e0ced30d234",priceFeeds:{AUD:"0x39be70e93d2d285c9e71be7f70fc5a45a7777b14",EUR:"0x3626369857a10ccc6cc3a6e4f5c2f5984a519f20",GBP:"0x540d48c01f946e729174517e013ad0bdae5f08c0",JPY:"0x536944c3a71feb7c1e5c66ee37d1a148d8d8f619",INR:"0x5535e67d8f99c8ebe961e1fc1f6ddae96fec82c9"},tokenFeeds:{ETH:"0x13e3Ee699D1909E989722E753853AE30b17e08c5"},curveRouterAddress:"0x89287c32c2cac1c76227f6d300b2dbbab6b75c08"},{chainName:"Avalanche",shortName:"avax",testnet:!1,chainId:43114,logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/43113/logo.svg",rpcUrls:["https://api.avax.network/ext/bc/C/rpc"],wrappedNativeToken:"0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB",explorerUrl:"https://snowtrace.io",timestamp:"2023-01-13T14:52:05+00:00",feeTreasury:"0x25e22F3ceE59F34622f7DC9a2078B85f17BfBe95",priceFeeds:{BRL:"0x609dddb75518aa4af84ac228b62261ae68e52989",CHF:"0x3b37950485b450edf90cbb85d0cd27308af4ab9a",EUR:"0x192f2dba961bb0277520c082d6bfa87d5961333e",JPY:"0xf8b283ad4d969ecfd70005714dd5910160565b94",TRY:"0xa61bf273688ea095b5e4c11f1af5e763f7aeee91"},tokenFeeds:{AVAX:"0x0A77230d17318075983913bC2145DB16C7366156"}},{chainName:"Gnosis",shortName:"gno",testnet:!1,chainId:100,logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/100/logo.svg",rpcUrls:["https://rpc.gnosis.gateway.fm"],wrappedNativeToken:"0xe91d153e0b41518a2ce8dd3d7944fa863463a97d",explorerUrl:"https://gnosisscan.io",timestamp:"2023-07-27T14:52:05+00:00",feeTreasury:"0x775aaf73a50C25eEBd308BBb9C34C73D081B423b",priceFeeds:{CHF:"0xFb00261Af80ADb1629D3869E377ae1EEC7bE659F",EUR:"0xab70BCB260073d036d1660201e9d5405F5829b7a",JPY:"0x2AfB993C670C01e9dA1550c58e8039C1D8b8A317"},tokenFeeds:{GNO:"0x22441d81416430A54336aB28765abd31a792Ad37",DAI:"0x678df3415fc31947dA4324eC63212874be5a82f8"},curveRouterAddress:"0xe6358f6a45b502477e83cc1cda759f540e4459ee"},{chainName:"Polygon",shortName:"matic",testnet:!1,chainId:137,logoUri:"https://raw.githubusercontent.com/yodlpay/tokenlists/main/logos/chains/137/logo.svg",rpcUrls:["https://polygon-rpc.com"],wrappedNativeToken:"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270",explorerUrl:"https://polygonscan.com",timestamp:"2023-09-07T00:00:00+00:00",feeTreasury:"0x5f0947253a8218894af13438ac2e2E0CeD30d234",priceFeeds:{AUD:"0x062Df9C4efd2030e243ffCc398b652e8b8F95C6f",CAD:"0xACA44ABb8B04D07D883202F99FA5E3c53ed57Fb5",CHF:"0xc76f762CedF0F78a439727861628E0fdfE1e70c2",CNY:"0x04bB437Aa63E098236FA47365f0268547f6EAB32",EUR:"0x73366Fe0AA0Ded304479862808e02506FE556a98",GBP:"0x099a2540848573e94fb1Ca0Fa420b00acbBc845a",ILS:"0x8d5eB34C509261533235b91350d359EdcB969D33",INR:"0xDA0F8Df6F5dB15b346f4B8D1156722027E194E60",JPY:"0xD647a6fC9BC6402301583C91decC5989d8Bc382D",KRW:"0x24B820870F726dA9B0D83B0B28a93885061dbF50",MXN:"0x171b16562EA3476F5C61d1b8dad031DbA0768545",NZD:"0xa302a0B8a499fD0f00449df0a490DedE21105955",PHP:"0x218231089Bebb2A31970c3b77E96eCfb3BA006D1",PLN:"0xB34BCE11040702f71c11529D00179B2959BcE6C0",SEK:"0xbd92B4919ae82be8473859295dEF0e778A626302",SGD:"0x8CE3cAc0E6635ce04783709ca3CC4F5fc5304299",THB:"0x5164Ad28fb12a5e55946090Ec3eE1B748AFb3785",TRY:"0xd78325DcA0F90F0FFe53cCeA1B02Bb12E1bf8FdB"},tokenFeeds:{MATIC:"0xAB594600376Ec9fD91F8e885dADF0CE036862dE0"},curveRouterAddress:"0x2a426b3Bb4fa87488387545f15D01d81352732F9"}]},s={name:"Default",logoUri:"",keywords:[],version:{major:0,minor:0,patch:1},routers:[{chainId:1,address:"0x4cafd841df0df6da5739f729491887d64ad2794c",timestamp:"2022-12-30T00:00:00+00:00",version:"0.1",fee:"0.002"},{chainId:1,address:"0x061888246A29fEB9bb3f168CD8589B3Cf4115668",timestamp:"2023-09-01T00:00:00+00:00",version:"0.2",fee:"0.002"},{chainId:5,address:"0x8412D3c11aa605EbaF14D0b6BC7705ab45143Ee8",timestamp:"2022-12-23T00:00:00+00:00",version:"0.1",fee:"0.002"},{chainId:10,address:"0xfbA75752D73d3Fb3aA13e7BC7cfD142E73E78a8A",timestamp:"2023-02-27T00:00:00+00:00",version:"0.1",fee:"0.002"},{chainId:42161,address:"0x334264f4fbb56a84f80df722ba765d210f0cf555",timestamp:"2023-02-23T00:00:00+00:00",version:"0.1",fee:"0.002"},{chainId:42161,address:"0x408EB3F5A578b3eEcFe2c0cD58988fAb306885b4",timestamp:"2023-09-01T00:00:00+00:00",version:"0.2",fee:"0.002"},{chainId:100,address:"0x448fabd2d16bc48ecdbe68890414de7a1b6348fd",timestamp:"2023-07-27T00:00:00+00:00",version:"0.1",fee:"0.002"},{chainId:100,address:"0x5faD44Dc5B63f1717523c340de357ef399FeA0F2",timestamp:"2023-09-01T00:00:00+00:00",version:"0.2",fee:"0.002"},{chainId:137,address:"0x8866DAFa2762346c85098C5b2201fA7CB2dA6100",timestamp:"2023-09-07T00:00:00+00:00",version:"0.2",fee:"0.002"}]},o={name:"Default",logoUri:"",keywords:[],version:{major:0,minor:0,patch:1},faucets:[{chainId:5,token:"0x33ca3889bb0032e9c3794b608a242d27e7293353",address:"0xd2bc1d97793763b7262987a67f1945169c763389"},{chainId:5,token:"0xe5768E2dDEc1E50Ac2672a2d75D63d36A8Ec88d9",address:"0x5A3380C7d6A05AF3Ce68C939142658C35Efc066d"},{chainId:5,token:"0xeB87E5d9c773d3E802989295147564985B5B358C",address:"0xF47661BCe78194b44675547873ef58Ca8Db9b145"}]},i=[{inputs:[{internalType:"address",name:"_feeTreasury",type:"address"},{internalType:"uint256",name:"_baseFeeBps",type:"uint256"},{internalType:"string",name:"_version",type:"string"},{internalType:"address",name:"_uniswapRouter",type:"address"},{internalType:"address",name:"_curveRouter",type:"address"},{internalType:"address",name:"_wrappedNativeToken",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"priceFeed",type:"address"},{indexed:!1,internalType:"int256",name:"exchangeRate",type:"int256"}],name:"Convert",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"fees",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"memo",type:"bytes32"}],name:"Payment",type:"event"},{inputs:[],name:"MAX_FEE_BPS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"NATIVE_TOKEN",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseFeeBps",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"feeBps",type:"uint256"}],name:"calculateFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[],name:"curveRouter",outputs:[{internalType:"contract ICurveRouter",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address[2]",name:"priceFeeds",type:"address[2]"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"exchangeRate",outputs:[{internalType:"uint256",name:"converted",type:"uint256"},{internalType:"address[2]",name:"priceFeedsUsed",type:"address[2]"},{internalType:"int256[2]",name:"prices",type:"int256[2]"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeTreasury",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"bytes32",name:"memo",type:"bytes32"},{internalType:"address[9]",name:"route",type:"address[9]"},{internalType:"uint256[3][4]",name:"swapParams",type:"uint256[3][4]"},{internalType:"address[4]",name:"factoryAddresses",type:"address[4]"},{internalType:"address[2]",name:"priceFeeds",type:"address[2]"},{internalType:"address",name:"extraFeeReceiver",type:"address"},{internalType:"uint256",name:"extraFeeBps",type:"uint256"},{internalType:"bool",name:"returnRemainder",type:"bool"}],internalType:"struct HiroRouterV1.HiroCurveParams",name:"params",type:"tuple"}],name:"payWithCurve",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"memo",type:"bytes32"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address[2]",name:"priceFeeds",type:"address[2]"},{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"address",name:"extraFeeReceiver",type:"address"},{internalType:"uint256",name:"extraFeeBps",type:"uint256"}],name:"payWithToken",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"bytes32",name:"memo",type:"bytes32"},{internalType:"bytes",name:"path",type:"bytes"},{internalType:"address[2]",name:"priceFeeds",type:"address[2]"},{internalType:"address",name:"extraFeeReceiver",type:"address"},{internalType:"uint256",name:"extraFeeBps",type:"uint256"},{internalType:"bool",name:"returnRemainder",type:"bool"},{internalType:"enum HiroRouterV1.SwapType",name:"swapType",type:"uint8"}],internalType:"struct HiroRouterV1.HiroUniswapParams",name:"params",type:"tuple"}],name:"payWithUniswap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"sweep",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"uniswapRouter",outputs:[{internalType:"contract ISwapRouter",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"version",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"wrappedNativeToken",outputs:[{internalType:"contract IWETH9",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],r={.1:[{inputs:[{internalType:"address",name:"_feeTreasury",type:"address"},{internalType:"uint256",name:"_baseFeeDivisor",type:"uint256"},{internalType:"string",name:"_version",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"priceFeed",type:"address"},{indexed:!1,internalType:"int256",name:"exchangeRate",type:"int256"}],name:"Convert",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"fees",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"memo",type:"bytes32"}],name:"Payment",type:"event"},{inputs:[{internalType:"address[]",name:"_priceFeeds",type:"address[]"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"exchangeRate",outputs:[{internalType:"uint256",name:"converted",type:"uint256"},{internalType:"address",name:"priceFeed",type:"address"},{internalType:"int256",name:"price",type:"int256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"_memo",type:"bytes32"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"address[]",name:"_priceFeeds",type:"address[]"},{internalType:"address",name:"_token",type:"address"},{internalType:"address",name:"_receiver",type:"address"},{internalType:"address",name:"_extraFeeReceiver",type:"address"},{internalType:"uint256",name:"_extraFeeDivisor",type:"uint256"}],name:"payWithToken",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}],.2:i,test:i};function d(e,t){return e.major<t.major?-1:e.major>t.major?1:e.minor<t.minor?-1:e.minor>t.minor?1:e.patch<t.patch?-1:e.patch>t.patch?1:0}function c(e,t){var a=e.reduce((function(e,t){return e[t.chainId]||(e[t.chainId]={}),e[t.chainId][t.address]=t,e}),{}),n=t.reduce((function(e,t){var n,s,o=null==(n=a[t.chainId])?void 0:n[t.address];if(o){var i=Object.keys(t).filter((function(e){return"address"!==e&&"chainId"!==e})).filter((function(e){return!((a=t[e])===(n=o[e])||typeof a==typeof n&&Array.isArray(a)&&Array.isArray(n)&&a.every((function(e,t){return n[t]===e})));var a,n}));i.length>0&&(e.changed[t.chainId]||(e.changed[t.chainId]={}),e.changed[t.chainId][t.address]=i)}else e.added.push(t);return e.index[t.chainId]?e.index[t.chainId][t.address]=!0:e.index[t.chainId]=((s={})[t.address]=!0,s),e}),{added:[],changed:{},index:{}}),s=e.reduce((function(e,t){return n.index[t.chainId]&&n.index[t.chainId][t.address]||e.push(t),e}),[]);return{added:n.added,changed:n.changed,removed:s}}function p(e){return s.routers.filter((function(t){return t.chainId===e}))}(e=exports.TokenListTagNames||(exports.TokenListTagNames={})).MAINNET="Mainnet",e.OPTIMISM="Optimism",e.ARBITRUM="Arbitrum",e.AVALANCHE="Avalanche",e.TESTNET="TESTNET",e.STABLECOIN="Stablecoin",e.USD="USD",e.EUR="EUR",e.TOP_10="Top10",e.NATIVE_TOKEN="Native Token",(t=exports.VersionUpgrade||(exports.VersionUpgrade={}))[t.NONE=0]="NONE",t[t.PATCH=1]="PATCH",t[t.MINOR=2]="MINOR",t[t.MAJOR=3]="MAJOR",exports.CURVE_ROUTER_ABI=[{name:"TokenExchange",inputs:[{name:"buyer",type:"address",indexed:!0},{name:"receiver",type:"address",indexed:!0},{name:"pool",type:"address",indexed:!0},{name:"token_sold",type:"address",indexed:!1},{name:"token_bought",type:"address",indexed:!1},{name:"amount_sold",type:"uint256",indexed:!1},{name:"amount_bought",type:"uint256",indexed:!1}],anonymous:!1,type:"event"},{name:"ExchangeMultiple",inputs:[{name:"buyer",type:"address",indexed:!0},{name:"receiver",type:"address",indexed:!0},{name:"route",type:"address[9]",indexed:!1},{name:"swap_params",type:"uint256[3][4]",indexed:!1},{name:"pools",type:"address[4]",indexed:!1},{name:"amount_sold",type:"uint256",indexed:!1},{name:"amount_bought",type:"uint256",indexed:!1}],anonymous:!1,type:"event"},{stateMutability:"nonpayable",type:"constructor",inputs:[{name:"_address_provider",type:"address"},{name:"_calculator",type:"address"},{name:"_weth",type:"address"}],outputs:[]},{stateMutability:"payable",type:"fallback"},{stateMutability:"payable",type:"function",name:"exchange_with_best_rate",inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"},{name:"_expected",type:"uint256"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"payable",type:"function",name:"exchange_with_best_rate",inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"},{name:"_expected",type:"uint256"},{name:"_receiver",type:"address"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"payable",type:"function",name:"exchange",inputs:[{name:"_pool",type:"address"},{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"},{name:"_expected",type:"uint256"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"payable",type:"function",name:"exchange",inputs:[{name:"_pool",type:"address"},{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"},{name:"_expected",type:"uint256"},{name:"_receiver",type:"address"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"payable",type:"function",name:"exchange_multiple",inputs:[{name:"_route",type:"address[9]"},{name:"_swap_params",type:"uint256[3][4]"},{name:"_amount",type:"uint256"},{name:"_expected",type:"uint256"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"payable",type:"function",name:"exchange_multiple",inputs:[{name:"_route",type:"address[9]"},{name:"_swap_params",type:"uint256[3][4]"},{name:"_amount",type:"uint256"},{name:"_expected",type:"uint256"},{name:"_pools",type:"address[4]"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"payable",type:"function",name:"exchange_multiple",inputs:[{name:"_route",type:"address[9]"},{name:"_swap_params",type:"uint256[3][4]"},{name:"_amount",type:"uint256"},{name:"_expected",type:"uint256"},{name:"_pools",type:"address[4]"},{name:"_receiver",type:"address"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"view",type:"function",name:"get_best_rate",inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"}],outputs:[{name:"",type:"address"},{name:"",type:"uint256"}]},{stateMutability:"view",type:"function",name:"get_best_rate",inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"},{name:"_exclude_pools",type:"address[8]"}],outputs:[{name:"",type:"address"},{name:"",type:"uint256"}]},{stateMutability:"view",type:"function",name:"get_exchange_amount",inputs:[{name:"_pool",type:"address"},{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"view",type:"function",name:"get_input_amount",inputs:[{name:"_pool",type:"address"},{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amount",type:"uint256"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"view",type:"function",name:"get_exchange_amounts",inputs:[{name:"_pool",type:"address"},{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_amounts",type:"uint256[100]"}],outputs:[{name:"",type:"uint256[100]"}]},{stateMutability:"view",type:"function",name:"get_exchange_multiple_amount",inputs:[{name:"_route",type:"address[9]"},{name:"_swap_params",type:"uint256[3][4]"},{name:"_amount",type:"uint256"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"view",type:"function",name:"get_exchange_multiple_amount",inputs:[{name:"_route",type:"address[9]"},{name:"_swap_params",type:"uint256[3][4]"},{name:"_amount",type:"uint256"},{name:"_pools",type:"address[4]"}],outputs:[{name:"",type:"uint256"}]},{stateMutability:"view",type:"function",name:"get_calculator",inputs:[{name:"_pool",type:"address"}],outputs:[{name:"",type:"address"}]},{stateMutability:"nonpayable",type:"function",name:"update_registry_address",inputs:[],outputs:[{name:"",type:"bool"}]},{stateMutability:"nonpayable",type:"function",name:"set_calculator",inputs:[{name:"_pool",type:"address"},{name:"_calculator",type:"address"}],outputs:[{name:"",type:"bool"}]},{stateMutability:"nonpayable",type:"function",name:"set_default_calculator",inputs:[{name:"_calculator",type:"address"}],outputs:[{name:"",type:"bool"}]},{stateMutability:"nonpayable",type:"function",name:"claim_balance",inputs:[{name:"_token",type:"address"}],outputs:[{name:"",type:"bool"}]},{stateMutability:"nonpayable",type:"function",name:"set_killed",inputs:[{name:"_is_killed",type:"bool"}],outputs:[{name:"",type:"bool"}]},{stateMutability:"view",type:"function",name:"registry",inputs:[],outputs:[{name:"",type:"address"}]},{stateMutability:"view",type:"function",name:"factory_registry",inputs:[],outputs:[{name:"",type:"address"}]},{stateMutability:"view",type:"function",name:"crypto_registry",inputs:[],outputs:[{name:"",type:"address"}]},{stateMutability:"view",type:"function",name:"default_calculator",inputs:[],outputs:[{name:"",type:"address"}]},{stateMutability:"view",type:"function",name:"is_killed",inputs:[],outputs:[{name:"",type:"bool"}]}],exports.HIRO_ROUTER_ABIS=r,exports.chainlist=n,exports.diffTokenLists=c,exports.getChain=function(e){return n.chains.find((function(t){return t.chainId===e}))},exports.getFaucetAddress=function(e){return o.faucets.find((function(t){return t.token===e.address&&t.chainId===e.chainId}))},exports.getLatestRouter=function(e){var t=p(e).sort((function(e,t){return Date.parse(e.timestamp)-Date.parse(t.timestamp)}));return t[t.length-1]},exports.getRouter=function(e,t){return s.routers.find((function(a){return a.chainId===e&&a.version===t}))},exports.getRouters=p,exports.getShortNames=function(){return n.chains.map((function(e){return e.shortName}))},exports.getTokenByAddress=function(e,t){var n;return null!=(n=a.tokens.find((function(a){return a.address===e&&(!t||a.chainId===t)})))?n:null},exports.getTokenBySymbol=function(e,t){var n;return null!=(n=a.tokens.find((function(a){return a.symbol===e&&(!t||a.chainId===t)})))?n:null},exports.getTokens=function(e){return a.tokens.filter((function(t){return t.chainId===e}))},exports.getVersionUpgrade=function(e,t){return t.major>e.major?exports.VersionUpgrade.MAJOR:t.major<e.major?exports.VersionUpgrade.NONE:t.minor>e.minor?exports.VersionUpgrade.MINOR:t.minor<e.minor?exports.VersionUpgrade.NONE:t.patch>e.patch?exports.VersionUpgrade.PATCH:exports.VersionUpgrade.NONE},exports.isVersionUpdate=function(e,t){return d(e,t)<0},exports.minVersionBump=function(e,t){var a=c(e,t);return a.removed.length>0?exports.VersionUpgrade.MAJOR:a.added.length>0?exports.VersionUpgrade.MINOR:Object.keys(a.changed).length>0?exports.VersionUpgrade.PATCH:exports.VersionUpgrade.NONE},exports.nextVersion=function(e,t){switch(t){case exports.VersionUpgrade.NONE:return e;case exports.VersionUpgrade.MAJOR:return{major:e.major+1,minor:0,patch:0};case exports.VersionUpgrade.MINOR:return{major:e.major,minor:e.minor+1,patch:0};case exports.VersionUpgrade.PATCH:return{major:e.major,minor:e.minor,patch:e.patch+1}}},exports.routerlist=s,exports.tokenlist=a,exports.tokenschema=a,exports.versionComparator=d;
2
2
  //# sourceMappingURL=tokenlists.cjs.production.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokenlists.cjs.production.min.js","sources":["../src/types.ts","../src/getVersionUpgrade.ts","../src/abis.ts","../src/versionComparator.ts","../src/diffTokenLists.ts","../src/index.ts","../src/isVersionUpdate.ts","../src/minVersionBump.ts","../src/nextVersion.ts"],"sourcesContent":["type ExtensionValue = string | number | boolean | null | undefined;\n\nexport enum TokenListTagNames {\n // Networks\n MAINNET = 'Mainnet',\n OPTIMISM = 'Optimism',\n ARBITRUM = 'Arbitrum',\n AVALANCHE = 'Avalanche',\n TESTNET = 'TESTNET',\n\n // Coin/currency\n STABLECOIN = 'Stablecoin',\n USD = 'USD',\n EUR = 'EUR',\n\n // Misc\n TOP_10 = 'Top10',\n NATIVE_TOKEN = 'Native Token'\n}\n\nexport interface RouterInfo {\n readonly chainId: number;\n readonly address: string;\n readonly timestamp: string;\n readonly version: string;\n readonly fee: string;\n}\n\nexport interface TestnetFaucetInfo {\n readonly chainId: number;\n readonly address: string;\n readonly token: string;\n}\n\nexport interface ChainInfo {\n readonly chainId: number;\n readonly chainName: string;\n // shortName is the EIP3770 short name\n // chain details can be found here: https://github.com/ethereum-lists/chains/tree/master/_data/chains\n readonly shortName: string;\n readonly logoUri: string;\n readonly explorerUrl: string;\n readonly rpcUrls: string[];\n readonly wrappedNativeToken: string;\n readonly feeTreasury?: string;\n readonly testnet: boolean;\n readonly priceFeeds?: {\n readonly [key: string]: string | undefined;\n };\n readonly curveRouterAddress?: string;\n}\n\nexport interface TokenInfo {\n readonly chainId: number;\n readonly address: string;\n readonly name: string;\n readonly decimals: number;\n readonly symbol: string;\n readonly coinGeckoId?: string;\n readonly currency?: string;\n readonly logoUri?: string;\n readonly tags?: TokenListTagNames[];\n readonly extensions?: {\n readonly [key: string]:\n | {\n [key: string]:\n | {\n [key: string]: ExtensionValue;\n }\n | ExtensionValue;\n }\n | ExtensionValue;\n };\n}\n\nexport interface Version {\n readonly major: number;\n readonly minor: number;\n readonly patch: number;\n}\n\nexport interface TokenList {\n readonly name: string;\n readonly timestamp: string;\n readonly version: Version;\n readonly tokens: TokenInfo[];\n readonly keywords?: string[];\n readonly tags?: any;\n readonly logoUri?: string;\n}\n","import { Version } from \"./types\";\n\n/**\n * Enum describing types of version differences\n */\nexport enum VersionUpgrade {\n NONE,\n PATCH,\n MINOR,\n MAJOR,\n}\n\n/**\n * Return the upgrade type from the base version to the update version.\n * Note that downgrades and equivalent versions are both treated as `NONE`.\n * @param base base list\n * @param update update to the list\n */\nexport function getVersionUpgrade(\n base: Version,\n update: Version\n): VersionUpgrade {\n if (update.major > base.major) {\n return VersionUpgrade.MAJOR;\n }\n if (update.major < base.major) {\n return VersionUpgrade.NONE;\n }\n if (update.minor > base.minor) {\n return VersionUpgrade.MINOR;\n }\n if (update.minor < base.minor) {\n return VersionUpgrade.NONE;\n }\n return update.patch > base.patch ? VersionUpgrade.PATCH : VersionUpgrade.NONE;\n}\n","import CurveRouterV13Abi from \"./abis/curverouterv13.abi.json\";\nimport HiroRouterV01 from \"./abis/HiroRouterV0.1.abi.json\";\nimport HiroRouterV02 from \"./abis/HiroRouterV0.2.abi.json\";\n\nexport const HIRO_ROUTER_ABIS: { [key: string]: any} = {\n \"0.1\": HiroRouterV01,\n \"0.2\": HiroRouterV02,\n \"test\": HiroRouterV02\n}\nexport const CURVE_ROUTER_ABI = CurveRouterV13Abi;\n","import { Version } from \"./types\";\n\n/**\n * Comparator function that allows sorting version from lowest to highest\n * @param versionA version A to compare\n * @param versionB version B to compare\n * @returns -1 if versionA comes before versionB, 0 if versionA is equal to version B, and 1 if version A comes after version B\n */\nexport function versionComparator(\n versionA: Version,\n versionB: Version\n): -1 | 0 | 1 {\n if (versionA.major < versionB.major) {\n return -1;\n } else if (versionA.major > versionB.major) {\n return 1;\n } else if (versionA.minor < versionB.minor) {\n return -1;\n } else if (versionA.minor > versionB.minor) {\n return 1;\n } else if (versionA.patch < versionB.patch) {\n return -1;\n } else if (versionA.patch > versionB.patch) {\n return 1;\n } else {\n return 0;\n }\n}\n","import { TokenInfo } from \"./types\";\n\nexport type TokenInfoChangeKey = Exclude<\n keyof TokenInfo,\n \"address\" | \"chainId\"\n>;\nexport type TokenInfoChanges = Array<TokenInfoChangeKey>;\n\n/**\n * compares two token info key values\n * this subset of full deep equal functionality does not work on objects or object arrays\n * @param a comparison item a\n * @param b comparison item b\n */\nfunction compareTokenInfoProperty(a: unknown, b: unknown): boolean {\n if (a === b) return true;\n if (typeof a !== typeof b) return false;\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.every((el, i) => b[i] === el);\n }\n return false;\n}\n\n/**\n * Differences between a base list and an updated list.\n */\nexport interface TokenListDiff {\n /**\n * Tokens from updated with chainId/address not present in base list\n */\n readonly added: TokenInfo[];\n /**\n * Tokens from base with chainId/address not present in the updated list\n */\n readonly removed: TokenInfo[];\n /**\n * The token info that changed\n */\n readonly changed: {\n [chainId: number]: {\n [address: string]: TokenInfoChanges;\n };\n };\n}\n\n/**\n * Computes the diff of a token list where the first argument is the base and the second argument is the updated list.\n * @param base base list\n * @param update updated list\n */\nexport function diffTokenLists(\n base: TokenInfo[],\n update: TokenInfo[]\n): TokenListDiff {\n const indexedBase = base.reduce<{\n [chainId: number]: { [address: string]: TokenInfo };\n }>((memo, tokenInfo) => {\n if (!memo[tokenInfo.chainId]) memo[tokenInfo.chainId] = {};\n memo[tokenInfo.chainId][tokenInfo.address] = tokenInfo;\n return memo;\n }, {});\n\n const newListUpdates = update.reduce<{\n added: TokenInfo[];\n changed: {\n [chainId: number]: {\n [address: string]: TokenInfoChanges;\n };\n };\n index: {\n [chainId: number]: {\n [address: string]: true;\n };\n };\n }>(\n (memo, tokenInfo) => {\n const baseToken = indexedBase[tokenInfo.chainId]?.[tokenInfo.address];\n if (!baseToken) {\n memo.added.push(tokenInfo);\n } else {\n const changes: TokenInfoChanges = Object.keys(tokenInfo)\n .filter(\n (s): s is TokenInfoChangeKey => s !== \"address\" && s !== \"chainId\"\n )\n .filter((s) => {\n return !compareTokenInfoProperty(tokenInfo[s], baseToken[s]);\n });\n if (changes.length > 0) {\n if (!memo.changed[tokenInfo.chainId]) {\n memo.changed[tokenInfo.chainId] = {};\n }\n memo.changed[tokenInfo.chainId][tokenInfo.address] = changes;\n }\n }\n\n if (!memo.index[tokenInfo.chainId]) {\n memo.index[tokenInfo.chainId] = {\n [tokenInfo.address]: true,\n };\n } else {\n memo.index[tokenInfo.chainId][tokenInfo.address] = true;\n }\n\n return memo;\n },\n { added: [], changed: {}, index: {} }\n );\n\n const removed = base.reduce<TokenInfo[]>((list, curr) => {\n if (\n !newListUpdates.index[curr.chainId] ||\n !newListUpdates.index[curr.chainId][curr.address]\n ) {\n list.push(curr);\n }\n return list;\n }, []);\n\n return {\n added: newListUpdates.added,\n changed: newListUpdates.changed,\n removed,\n };\n}\n","import tokenlist from './tokenlist-v1.json';\nimport chainlist from './chainlist-v1.json';\nimport routerlist from './routerlist-v1.json';\nimport tokenschema from './tokenlist-v1.json';\nimport testnetfaucets from './testnet-faucets-v1.json';\nimport { ChainInfo, RouterInfo, TokenInfo, TestnetFaucetInfo } from './types';\n\nexport * from './abis';\nexport * from './types';\nexport * from './isVersionUpdate';\nexport * from './getVersionUpgrade';\nexport * from './diffTokenLists';\nexport * from './minVersionBump';\nexport * from './nextVersion';\nexport * from './versionComparator';\n\nexport { tokenschema, tokenlist, chainlist, routerlist };\n\nexport function getChain(chainId: number): ChainInfo {\n return chainlist.chains.find((needle: any) => {\n return needle.chainId === chainId;\n }) as ChainInfo;\n}\n\nexport function getTokenByAddress(\n tokenAddress: string,\n chainId?: number\n): TokenInfo | null {\n return (\n (tokenlist.tokens.find((token: any) => {\n return (\n token.address === tokenAddress &&\n (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo) ?? null\n );\n}\n\nexport function getTokenBySymbol(\n tokenSymbol: string,\n chainId?: number\n): TokenInfo | null {\n return (\n (tokenlist.tokens.find((token: any) => {\n return (\n token.symbol === tokenSymbol && (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo) ?? null\n );\n}\n\nexport function getTokens(chainId: number): TokenInfo[] {\n return tokenlist.tokens.filter((needle: any) => {\n return needle.chainId === chainId;\n }) as TokenInfo[];\n}\n\nexport function getFaucetAddress(tokenInfo: TokenInfo): TestnetFaucetInfo {\n return testnetfaucets.faucets.find((needle: any) => {\n return (\n needle.token === tokenInfo.address && needle.chainId === tokenInfo.chainId\n );\n }) as TestnetFaucetInfo;\n}\n\nexport function getRouters(chainId: number): RouterInfo[] {\n return routerlist.routers.filter((needle: any) => {\n return needle.chainId === chainId;\n }) as RouterInfo[];\n}\n\nexport function getRouter(chainId: number, version: string): RouterInfo {\n return routerlist.routers.find((needle: any) => {\n return needle.chainId === chainId && needle.version === version;\n }) as RouterInfo;\n}\n\nexport function getLatestRouter(chainId: number): RouterInfo {\n const sorted = getRouters(chainId).sort((a, b) => {\n return Date.parse(a.timestamp) - Date.parse(b.timestamp);\n });\n return sorted[sorted.length - 1];\n}\n\nexport function getShortNames(): string[] {\n return chainlist.chains.map(chain => chain.shortName);\n}","import { versionComparator } from './versionComparator';\nimport { Version } from './types';\n\n/**\n * Returns true if versionB is an update over versionA\n */\nexport function isVersionUpdate(base: Version, update: Version): boolean {\n return versionComparator(base, update) < 0;\n}","import { diffTokenLists } from \"./diffTokenLists\";\nimport { VersionUpgrade } from \"./getVersionUpgrade\";\nimport { TokenInfo } from \"./types\";\n\n/**\n * Returns the minimum version bump for the given list\n * @param baseList the base list of tokens\n * @param updatedList the updated list of tokens\n */\nexport function minVersionBump(\n baseList: TokenInfo[],\n updatedList: TokenInfo[]\n): VersionUpgrade {\n const diff = diffTokenLists(baseList, updatedList);\n if (diff.removed.length > 0) return VersionUpgrade.MAJOR;\n if (diff.added.length > 0) return VersionUpgrade.MINOR;\n if (Object.keys(diff.changed).length > 0) return VersionUpgrade.PATCH;\n return VersionUpgrade.NONE;\n}\n","import { VersionUpgrade } from \"./getVersionUpgrade\";\nimport { Version } from \"./types\";\n\n/**\n * Returns the next version of the list given a base version and the upgrade type\n * @param base current version\n * @param bump the upgrade type\n */\nexport function nextVersion(base: Version, bump: VersionUpgrade): Version {\n switch (bump) {\n case VersionUpgrade.NONE:\n return base;\n\n case VersionUpgrade.MAJOR:\n return { major: base.major + 1, minor: 0, patch: 0 };\n\n case VersionUpgrade.MINOR:\n return {\n major: base.major,\n minor: base.minor + 1,\n patch: 0,\n };\n\n case VersionUpgrade.PATCH:\n return {\n major: base.major,\n minor: base.minor,\n patch: base.patch + 1,\n };\n }\n}\n"],"names":["TokenListTagNames","VersionUpgrade","HIRO_ROUTER_ABIS","0.1","0.2","HiroRouterV02","test","versionComparator","versionA","versionB","major","minor","patch","diffTokenLists","base","update","indexedBase","reduce","memo","tokenInfo","chainId","address","newListUpdates","baseToken","_indexedBase$tokenInf","changes","Object","keys","filter","s","a","b","Array","isArray","every","el","i","length","changed","added","push","index","removed","list","curr","getRouters","routerlist","routers","needle","chainlist","chains","find","testnetfaucets","faucets","token","sorted","sort","Date","parse","timestamp","version","map","chain","shortName","tokenAddress","tokenlist","tokens","tokenSymbol","symbol","MAJOR","NONE","MINOR","PATCH","baseList","updatedList","diff","bump"],"mappings":"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"}
1
+ {"version":3,"file":"tokenlists.cjs.production.min.js","sources":["../src/types.ts","../src/getVersionUpgrade.ts","../src/abis.ts","../src/versionComparator.ts","../src/diffTokenLists.ts","../src/index.ts","../src/isVersionUpdate.ts","../src/minVersionBump.ts","../src/nextVersion.ts"],"sourcesContent":["type ExtensionValue = string | number | boolean | null | undefined;\n\nexport enum TokenListTagNames {\n // Networks\n MAINNET = 'Mainnet',\n OPTIMISM = 'Optimism',\n ARBITRUM = 'Arbitrum',\n AVALANCHE = 'Avalanche',\n TESTNET = 'TESTNET',\n\n // Coin/currency\n STABLECOIN = 'Stablecoin',\n USD = 'USD',\n EUR = 'EUR',\n\n // Misc\n TOP_10 = 'Top10',\n NATIVE_TOKEN = 'Native Token',\n}\n\nexport interface RouterInfo {\n readonly chainId: number;\n readonly address: string;\n readonly timestamp: string;\n readonly version: string;\n readonly fee: string;\n}\n\nexport interface TestnetFaucetInfo {\n readonly chainId: number;\n readonly address: string;\n readonly token: string;\n}\n\nexport interface ChainInfo {\n readonly chainId: number;\n readonly chainName: string;\n // shortName is the EIP3770 short name\n // chain details can be found here: https://github.com/ethereum-lists/chains/tree/master/_data/chains\n readonly shortName: string;\n readonly logoUri: string;\n readonly explorerUrl: string;\n readonly rpcUrls: string[];\n readonly wrappedNativeToken: string;\n readonly feeTreasury?: string;\n readonly testnet: boolean;\n readonly priceFeeds?: {\n readonly [key: string]: string | undefined;\n };\n readonly tokenFeeds?: {\n readonly [key: string]: string | undefined;\n };\n readonly curveRouterAddress?: string;\n}\n\nexport interface TokenInfo {\n readonly chainId: number;\n readonly address: string;\n readonly name: string;\n readonly decimals: number;\n readonly symbol: string;\n readonly coinGeckoId?: string;\n readonly currency?: string;\n readonly logoUri?: string;\n readonly tags?: TokenListTagNames[];\n readonly extensions?: {\n readonly [key: string]:\n | {\n [key: string]:\n | {\n [key: string]: ExtensionValue;\n }\n | ExtensionValue;\n }\n | ExtensionValue;\n };\n}\n\nexport interface Version {\n readonly major: number;\n readonly minor: number;\n readonly patch: number;\n}\n\nexport interface TokenList {\n readonly name: string;\n readonly timestamp: string;\n readonly version: Version;\n readonly tokens: TokenInfo[];\n readonly keywords?: string[];\n readonly tags?: any;\n readonly logoUri?: string;\n}\n","import { Version } from \"./types\";\n\n/**\n * Enum describing types of version differences\n */\nexport enum VersionUpgrade {\n NONE,\n PATCH,\n MINOR,\n MAJOR,\n}\n\n/**\n * Return the upgrade type from the base version to the update version.\n * Note that downgrades and equivalent versions are both treated as `NONE`.\n * @param base base list\n * @param update update to the list\n */\nexport function getVersionUpgrade(\n base: Version,\n update: Version\n): VersionUpgrade {\n if (update.major > base.major) {\n return VersionUpgrade.MAJOR;\n }\n if (update.major < base.major) {\n return VersionUpgrade.NONE;\n }\n if (update.minor > base.minor) {\n return VersionUpgrade.MINOR;\n }\n if (update.minor < base.minor) {\n return VersionUpgrade.NONE;\n }\n return update.patch > base.patch ? VersionUpgrade.PATCH : VersionUpgrade.NONE;\n}\n","import CurveRouterV13Abi from \"./abis/curverouterv13.abi.json\";\nimport HiroRouterV01 from \"./abis/HiroRouterV0.1.abi.json\";\nimport HiroRouterV02 from \"./abis/HiroRouterV0.2.abi.json\";\n\nexport const HIRO_ROUTER_ABIS: { [key: string]: any} = {\n \"0.1\": HiroRouterV01,\n \"0.2\": HiroRouterV02,\n \"test\": HiroRouterV02\n}\nexport const CURVE_ROUTER_ABI = CurveRouterV13Abi;\n","import { Version } from \"./types\";\n\n/**\n * Comparator function that allows sorting version from lowest to highest\n * @param versionA version A to compare\n * @param versionB version B to compare\n * @returns -1 if versionA comes before versionB, 0 if versionA is equal to version B, and 1 if version A comes after version B\n */\nexport function versionComparator(\n versionA: Version,\n versionB: Version\n): -1 | 0 | 1 {\n if (versionA.major < versionB.major) {\n return -1;\n } else if (versionA.major > versionB.major) {\n return 1;\n } else if (versionA.minor < versionB.minor) {\n return -1;\n } else if (versionA.minor > versionB.minor) {\n return 1;\n } else if (versionA.patch < versionB.patch) {\n return -1;\n } else if (versionA.patch > versionB.patch) {\n return 1;\n } else {\n return 0;\n }\n}\n","import { TokenInfo } from \"./types\";\n\nexport type TokenInfoChangeKey = Exclude<\n keyof TokenInfo,\n \"address\" | \"chainId\"\n>;\nexport type TokenInfoChanges = Array<TokenInfoChangeKey>;\n\n/**\n * compares two token info key values\n * this subset of full deep equal functionality does not work on objects or object arrays\n * @param a comparison item a\n * @param b comparison item b\n */\nfunction compareTokenInfoProperty(a: unknown, b: unknown): boolean {\n if (a === b) return true;\n if (typeof a !== typeof b) return false;\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.every((el, i) => b[i] === el);\n }\n return false;\n}\n\n/**\n * Differences between a base list and an updated list.\n */\nexport interface TokenListDiff {\n /**\n * Tokens from updated with chainId/address not present in base list\n */\n readonly added: TokenInfo[];\n /**\n * Tokens from base with chainId/address not present in the updated list\n */\n readonly removed: TokenInfo[];\n /**\n * The token info that changed\n */\n readonly changed: {\n [chainId: number]: {\n [address: string]: TokenInfoChanges;\n };\n };\n}\n\n/**\n * Computes the diff of a token list where the first argument is the base and the second argument is the updated list.\n * @param base base list\n * @param update updated list\n */\nexport function diffTokenLists(\n base: TokenInfo[],\n update: TokenInfo[]\n): TokenListDiff {\n const indexedBase = base.reduce<{\n [chainId: number]: { [address: string]: TokenInfo };\n }>((memo, tokenInfo) => {\n if (!memo[tokenInfo.chainId]) memo[tokenInfo.chainId] = {};\n memo[tokenInfo.chainId][tokenInfo.address] = tokenInfo;\n return memo;\n }, {});\n\n const newListUpdates = update.reduce<{\n added: TokenInfo[];\n changed: {\n [chainId: number]: {\n [address: string]: TokenInfoChanges;\n };\n };\n index: {\n [chainId: number]: {\n [address: string]: true;\n };\n };\n }>(\n (memo, tokenInfo) => {\n const baseToken = indexedBase[tokenInfo.chainId]?.[tokenInfo.address];\n if (!baseToken) {\n memo.added.push(tokenInfo);\n } else {\n const changes: TokenInfoChanges = Object.keys(tokenInfo)\n .filter(\n (s): s is TokenInfoChangeKey => s !== \"address\" && s !== \"chainId\"\n )\n .filter((s) => {\n return !compareTokenInfoProperty(tokenInfo[s], baseToken[s]);\n });\n if (changes.length > 0) {\n if (!memo.changed[tokenInfo.chainId]) {\n memo.changed[tokenInfo.chainId] = {};\n }\n memo.changed[tokenInfo.chainId][tokenInfo.address] = changes;\n }\n }\n\n if (!memo.index[tokenInfo.chainId]) {\n memo.index[tokenInfo.chainId] = {\n [tokenInfo.address]: true,\n };\n } else {\n memo.index[tokenInfo.chainId][tokenInfo.address] = true;\n }\n\n return memo;\n },\n { added: [], changed: {}, index: {} }\n );\n\n const removed = base.reduce<TokenInfo[]>((list, curr) => {\n if (\n !newListUpdates.index[curr.chainId] ||\n !newListUpdates.index[curr.chainId][curr.address]\n ) {\n list.push(curr);\n }\n return list;\n }, []);\n\n return {\n added: newListUpdates.added,\n changed: newListUpdates.changed,\n removed,\n };\n}\n","import tokenlist from './tokenlist-v1.json';\nimport chainlist from './chainlist-v1.json';\nimport routerlist from './routerlist-v1.json';\nimport tokenschema from './tokenlist-v1.json';\nimport testnetfaucets from './testnet-faucets-v1.json';\nimport { ChainInfo, RouterInfo, TokenInfo, TestnetFaucetInfo } from './types';\n\nexport * from './abis';\nexport * from './types';\nexport * from './isVersionUpdate';\nexport * from './getVersionUpgrade';\nexport * from './diffTokenLists';\nexport * from './minVersionBump';\nexport * from './nextVersion';\nexport * from './versionComparator';\n\nexport { tokenschema, tokenlist, chainlist, routerlist };\n\nexport function getChain(chainId: number): ChainInfo {\n return chainlist.chains.find((needle: any) => {\n return needle.chainId === chainId;\n }) as ChainInfo;\n}\n\nexport function getTokenByAddress(\n tokenAddress: string,\n chainId?: number\n): TokenInfo | null {\n return (\n (tokenlist.tokens.find((token: any) => {\n return (\n token.address === tokenAddress &&\n (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo) ?? null\n );\n}\n\nexport function getTokenBySymbol(\n tokenSymbol: string,\n chainId?: number\n): TokenInfo | null {\n return (\n (tokenlist.tokens.find((token: any) => {\n return (\n token.symbol === tokenSymbol && (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo) ?? null\n );\n}\n\nexport function getTokens(chainId: number): TokenInfo[] {\n return tokenlist.tokens.filter((needle: any) => {\n return needle.chainId === chainId;\n }) as TokenInfo[];\n}\n\nexport function getFaucetAddress(tokenInfo: TokenInfo): TestnetFaucetInfo {\n return testnetfaucets.faucets.find((needle: any) => {\n return (\n needle.token === tokenInfo.address && needle.chainId === tokenInfo.chainId\n );\n }) as TestnetFaucetInfo;\n}\n\nexport function getRouters(chainId: number): RouterInfo[] {\n return routerlist.routers.filter((needle: any) => {\n return needle.chainId === chainId;\n }) as RouterInfo[];\n}\n\nexport function getRouter(chainId: number, version: string): RouterInfo {\n return routerlist.routers.find((needle: any) => {\n return needle.chainId === chainId && needle.version === version;\n }) as RouterInfo;\n}\n\nexport function getLatestRouter(chainId: number): RouterInfo {\n const sorted = getRouters(chainId).sort((a, b) => {\n return Date.parse(a.timestamp) - Date.parse(b.timestamp);\n });\n return sorted[sorted.length - 1];\n}\n\nexport function getShortNames(): string[] {\n return chainlist.chains.map(chain => chain.shortName);\n}","import { versionComparator } from './versionComparator';\nimport { Version } from './types';\n\n/**\n * Returns true if versionB is an update over versionA\n */\nexport function isVersionUpdate(base: Version, update: Version): boolean {\n return versionComparator(base, update) < 0;\n}","import { diffTokenLists } from \"./diffTokenLists\";\nimport { VersionUpgrade } from \"./getVersionUpgrade\";\nimport { TokenInfo } from \"./types\";\n\n/**\n * Returns the minimum version bump for the given list\n * @param baseList the base list of tokens\n * @param updatedList the updated list of tokens\n */\nexport function minVersionBump(\n baseList: TokenInfo[],\n updatedList: TokenInfo[]\n): VersionUpgrade {\n const diff = diffTokenLists(baseList, updatedList);\n if (diff.removed.length > 0) return VersionUpgrade.MAJOR;\n if (diff.added.length > 0) return VersionUpgrade.MINOR;\n if (Object.keys(diff.changed).length > 0) return VersionUpgrade.PATCH;\n return VersionUpgrade.NONE;\n}\n","import { VersionUpgrade } from \"./getVersionUpgrade\";\nimport { Version } from \"./types\";\n\n/**\n * Returns the next version of the list given a base version and the upgrade type\n * @param base current version\n * @param bump the upgrade type\n */\nexport function nextVersion(base: Version, bump: VersionUpgrade): Version {\n switch (bump) {\n case VersionUpgrade.NONE:\n return base;\n\n case VersionUpgrade.MAJOR:\n return { major: base.major + 1, minor: 0, patch: 0 };\n\n case VersionUpgrade.MINOR:\n return {\n major: base.major,\n minor: base.minor + 1,\n patch: 0,\n };\n\n case VersionUpgrade.PATCH:\n return {\n major: base.major,\n minor: base.minor,\n patch: base.patch + 1,\n };\n }\n}\n"],"names":["TokenListTagNames","VersionUpgrade","HIRO_ROUTER_ABIS","0.1","0.2","HiroRouterV02","test","versionComparator","versionA","versionB","major","minor","patch","diffTokenLists","base","update","indexedBase","reduce","memo","tokenInfo","chainId","address","newListUpdates","baseToken","_indexedBase$tokenInf","changes","Object","keys","filter","s","a","b","Array","isArray","every","el","i","length","changed","added","push","index","removed","list","curr","getRouters","routerlist","routers","needle","chainlist","chains","find","testnetfaucets","faucets","token","sorted","sort","Date","parse","timestamp","version","map","chain","shortName","tokenAddress","tokenlist","tokens","tokenSymbol","symbol","MAJOR","NONE","MINOR","PATCH","baseList","updatedList","diff","bump"],"mappings":"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"}
@@ -614,7 +614,6 @@ var chains = [
614
614
  CAD: "0xa34317db73e77d453b1b8d04550c44d10e981c8e",
615
615
  CHF: "0x449d117117838ffa61263b61da6301aa2a88b13a",
616
616
  EUR: "0xb49f677943bc038e9857d61e7d053caa2c1734c1",
617
- ETH: "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419",
618
617
  GBP: "0x5c0ab2d9b5a7ed9f470386e82bb36a3613cdd4b5",
619
618
  JPY: "0xbce206cae7f0ec07b545edde332a47c2f75bbeb3",
620
619
  CNY: "0xef8a4af35cd47424672e3c590abd37fbb7a7759a",
@@ -623,6 +622,9 @@ var chains = [
623
622
  SGD: "0xe25277ff4bbf9081c75ab0eb13b4a13a721f3e13",
624
623
  TRY: "0xb09fc5fd3f11cf9eb5e1c5dba43114e3c9f477b5"
625
624
  },
625
+ tokenFeeds: {
626
+ ETH: "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419"
627
+ },
626
628
  curveRouterAddress: "0x99a58482BD75cbab83b27EC03CA68fF489b5788f"
627
629
  },
628
630
  {
@@ -660,7 +662,6 @@ var chains = [
660
662
  AUD: "0x9854e9a850e7c354c1de177ea953a6b1fba8fc22",
661
663
  CNY: "0xcc3370bde6afe51e1205a5038947b9836371eccb",
662
664
  EUR: "0xa14d53bc1f1c0f31b4aa3bd109344e5009051a84",
663
- ETH: "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612",
664
665
  CAD: "0xf6da27749484843c4f02f5ad1378cee723dd61d4",
665
666
  CHF: "0xe32AccC8c4eC03F6E75bd3621BfC9Fbb234E1FC3",
666
667
  GBP: "0x9c4424fd84c6661f97d8d6b3fc3c1aac2bedd137",
@@ -669,6 +670,9 @@ var chains = [
669
670
  SEK: "0xde89a55d04ded40a410877ab87d4f567ee66a1f0",
670
671
  SGD: "0xf0d38324d1f86a176ac727a4b0c43c9f9d9c5eb1"
671
672
  },
673
+ tokenFeeds: {
674
+ ETH: "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612"
675
+ },
672
676
  curveRouterAddress: "0x4c2af2df2a7e567b5155879720619ea06c5bb15d"
673
677
  },
674
678
  {
@@ -687,11 +691,13 @@ var chains = [
687
691
  priceFeeds: {
688
692
  AUD: "0x39be70e93d2d285c9e71be7f70fc5a45a7777b14",
689
693
  EUR: "0x3626369857a10ccc6cc3a6e4f5c2f5984a519f20",
690
- ETH: "0x13e3Ee699D1909E989722E753853AE30b17e08c5",
691
694
  GBP: "0x540d48c01f946e729174517e013ad0bdae5f08c0",
692
695
  JPY: "0x536944c3a71feb7c1e5c66ee37d1a148d8d8f619",
693
696
  INR: "0x5535e67d8f99c8ebe961e1fc1f6ddae96fec82c9"
694
697
  },
698
+ tokenFeeds: {
699
+ ETH: "0x13e3Ee699D1909E989722E753853AE30b17e08c5"
700
+ },
695
701
  curveRouterAddress: "0x89287c32c2cac1c76227f6d300b2dbbab6b75c08"
696
702
  },
697
703
  {
@@ -708,12 +714,14 @@ var chains = [
708
714
  timestamp: "2023-01-13T14:52:05+00:00",
709
715
  feeTreasury: "0x25e22F3ceE59F34622f7DC9a2078B85f17BfBe95",
710
716
  priceFeeds: {
711
- AVAX: "0x0A77230d17318075983913bC2145DB16C7366156",
712
717
  BRL: "0x609dddb75518aa4af84ac228b62261ae68e52989",
713
718
  CHF: "0x3b37950485b450edf90cbb85d0cd27308af4ab9a",
714
719
  EUR: "0x192f2dba961bb0277520c082d6bfa87d5961333e",
715
720
  JPY: "0xf8b283ad4d969ecfd70005714dd5910160565b94",
716
721
  TRY: "0xa61bf273688ea095b5e4c11f1af5e763f7aeee91"
722
+ },
723
+ tokenFeeds: {
724
+ AVAX: "0x0A77230d17318075983913bC2145DB16C7366156"
717
725
  }
718
726
  },
719
727
  {
@@ -731,11 +739,13 @@ var chains = [
731
739
  feeTreasury: "0x775aaf73a50C25eEBd308BBb9C34C73D081B423b",
732
740
  priceFeeds: {
733
741
  CHF: "0xFb00261Af80ADb1629D3869E377ae1EEC7bE659F",
734
- DAI: "0x678df3415fc31947dA4324eC63212874be5a82f8",
735
742
  EUR: "0xab70BCB260073d036d1660201e9d5405F5829b7a",
736
- GNO: "0x22441d81416430A54336aB28765abd31a792Ad37",
737
743
  JPY: "0x2AfB993C670C01e9dA1550c58e8039C1D8b8A317"
738
744
  },
745
+ tokenFeeds: {
746
+ GNO: "0x22441d81416430A54336aB28765abd31a792Ad37",
747
+ DAI: "0x678df3415fc31947dA4324eC63212874be5a82f8"
748
+ },
739
749
  curveRouterAddress: "0xe6358f6a45b502477e83cc1cda759f540e4459ee"
740
750
  },
741
751
  {
@@ -758,12 +768,10 @@ var chains = [
758
768
  CNY: "0x04bB437Aa63E098236FA47365f0268547f6EAB32",
759
769
  EUR: "0x73366Fe0AA0Ded304479862808e02506FE556a98",
760
770
  GBP: "0x099a2540848573e94fb1Ca0Fa420b00acbBc845a",
761
- HKD: "0x82d43B72573f902F960126a19581BcBbA5b014F5",
762
771
  ILS: "0x8d5eB34C509261533235b91350d359EdcB969D33",
763
772
  INR: "0xDA0F8Df6F5dB15b346f4B8D1156722027E194E60",
764
773
  JPY: "0xD647a6fC9BC6402301583C91decC5989d8Bc382D",
765
774
  KRW: "0x24B820870F726dA9B0D83B0B28a93885061dbF50",
766
- MATIC: "0xAB594600376Ec9fD91F8e885dADF0CE036862dE0",
767
775
  MXN: "0x171b16562EA3476F5C61d1b8dad031DbA0768545",
768
776
  NZD: "0xa302a0B8a499fD0f00449df0a490DedE21105955",
769
777
  PHP: "0x218231089Bebb2A31970c3b77E96eCfb3BA006D1",
@@ -773,6 +781,9 @@ var chains = [
773
781
  THB: "0x5164Ad28fb12a5e55946090Ec3eE1B748AFb3785",
774
782
  TRY: "0xd78325DcA0F90F0FFe53cCeA1B02Bb12E1bf8FdB"
775
783
  },
784
+ tokenFeeds: {
785
+ MATIC: "0xAB594600376Ec9fD91F8e885dADF0CE036862dE0"
786
+ },
776
787
  curveRouterAddress: "0x2a426b3Bb4fa87488387545f15D01d81352732F9"
777
788
  }
778
789
  ];
@@ -822,13 +833,6 @@ var routers = [
822
833
  version: "0.1",
823
834
  fee: "0.002"
824
835
  },
825
- {
826
- chainId: 10,
827
- address: "0x408EB3F5A578b3eEcFe2c0cD58988fAb306885b4",
828
- timestamp: "2023-09-01T00:00:00+00:00",
829
- version: "0.2",
830
- fee: "0.002"
831
- },
832
836
  {
833
837
  chainId: 42161,
834
838
  address: "0x334264f4fbb56a84f80df722ba765d210f0cf555",
@@ -1 +1 @@
1
- {"version":3,"file":"tokenlists.esm.js","sources":["../src/abis.ts","../src/types.ts","../src/versionComparator.ts","../src/isVersionUpdate.ts","../src/getVersionUpgrade.ts","../src/diffTokenLists.ts","../src/minVersionBump.ts","../src/nextVersion.ts","../src/index.ts"],"sourcesContent":["import CurveRouterV13Abi from \"./abis/curverouterv13.abi.json\";\nimport HiroRouterV01 from \"./abis/HiroRouterV0.1.abi.json\";\nimport HiroRouterV02 from \"./abis/HiroRouterV0.2.abi.json\";\n\nexport const HIRO_ROUTER_ABIS: { [key: string]: any} = {\n \"0.1\": HiroRouterV01,\n \"0.2\": HiroRouterV02,\n \"test\": HiroRouterV02\n}\nexport const CURVE_ROUTER_ABI = CurveRouterV13Abi;\n","type ExtensionValue = string | number | boolean | null | undefined;\n\nexport enum TokenListTagNames {\n // Networks\n MAINNET = 'Mainnet',\n OPTIMISM = 'Optimism',\n ARBITRUM = 'Arbitrum',\n AVALANCHE = 'Avalanche',\n TESTNET = 'TESTNET',\n\n // Coin/currency\n STABLECOIN = 'Stablecoin',\n USD = 'USD',\n EUR = 'EUR',\n\n // Misc\n TOP_10 = 'Top10',\n NATIVE_TOKEN = 'Native Token'\n}\n\nexport interface RouterInfo {\n readonly chainId: number;\n readonly address: string;\n readonly timestamp: string;\n readonly version: string;\n readonly fee: string;\n}\n\nexport interface TestnetFaucetInfo {\n readonly chainId: number;\n readonly address: string;\n readonly token: string;\n}\n\nexport interface ChainInfo {\n readonly chainId: number;\n readonly chainName: string;\n // shortName is the EIP3770 short name\n // chain details can be found here: https://github.com/ethereum-lists/chains/tree/master/_data/chains\n readonly shortName: string;\n readonly logoUri: string;\n readonly explorerUrl: string;\n readonly rpcUrls: string[];\n readonly wrappedNativeToken: string;\n readonly feeTreasury?: string;\n readonly testnet: boolean;\n readonly priceFeeds?: {\n readonly [key: string]: string | undefined;\n };\n readonly curveRouterAddress?: string;\n}\n\nexport interface TokenInfo {\n readonly chainId: number;\n readonly address: string;\n readonly name: string;\n readonly decimals: number;\n readonly symbol: string;\n readonly coinGeckoId?: string;\n readonly currency?: string;\n readonly logoUri?: string;\n readonly tags?: TokenListTagNames[];\n readonly extensions?: {\n readonly [key: string]:\n | {\n [key: string]:\n | {\n [key: string]: ExtensionValue;\n }\n | ExtensionValue;\n }\n | ExtensionValue;\n };\n}\n\nexport interface Version {\n readonly major: number;\n readonly minor: number;\n readonly patch: number;\n}\n\nexport interface TokenList {\n readonly name: string;\n readonly timestamp: string;\n readonly version: Version;\n readonly tokens: TokenInfo[];\n readonly keywords?: string[];\n readonly tags?: any;\n readonly logoUri?: string;\n}\n","import { Version } from \"./types\";\n\n/**\n * Comparator function that allows sorting version from lowest to highest\n * @param versionA version A to compare\n * @param versionB version B to compare\n * @returns -1 if versionA comes before versionB, 0 if versionA is equal to version B, and 1 if version A comes after version B\n */\nexport function versionComparator(\n versionA: Version,\n versionB: Version\n): -1 | 0 | 1 {\n if (versionA.major < versionB.major) {\n return -1;\n } else if (versionA.major > versionB.major) {\n return 1;\n } else if (versionA.minor < versionB.minor) {\n return -1;\n } else if (versionA.minor > versionB.minor) {\n return 1;\n } else if (versionA.patch < versionB.patch) {\n return -1;\n } else if (versionA.patch > versionB.patch) {\n return 1;\n } else {\n return 0;\n }\n}\n","import { versionComparator } from './versionComparator';\nimport { Version } from './types';\n\n/**\n * Returns true if versionB is an update over versionA\n */\nexport function isVersionUpdate(base: Version, update: Version): boolean {\n return versionComparator(base, update) < 0;\n}","import { Version } from \"./types\";\n\n/**\n * Enum describing types of version differences\n */\nexport enum VersionUpgrade {\n NONE,\n PATCH,\n MINOR,\n MAJOR,\n}\n\n/**\n * Return the upgrade type from the base version to the update version.\n * Note that downgrades and equivalent versions are both treated as `NONE`.\n * @param base base list\n * @param update update to the list\n */\nexport function getVersionUpgrade(\n base: Version,\n update: Version\n): VersionUpgrade {\n if (update.major > base.major) {\n return VersionUpgrade.MAJOR;\n }\n if (update.major < base.major) {\n return VersionUpgrade.NONE;\n }\n if (update.minor > base.minor) {\n return VersionUpgrade.MINOR;\n }\n if (update.minor < base.minor) {\n return VersionUpgrade.NONE;\n }\n return update.patch > base.patch ? VersionUpgrade.PATCH : VersionUpgrade.NONE;\n}\n","import { TokenInfo } from \"./types\";\n\nexport type TokenInfoChangeKey = Exclude<\n keyof TokenInfo,\n \"address\" | \"chainId\"\n>;\nexport type TokenInfoChanges = Array<TokenInfoChangeKey>;\n\n/**\n * compares two token info key values\n * this subset of full deep equal functionality does not work on objects or object arrays\n * @param a comparison item a\n * @param b comparison item b\n */\nfunction compareTokenInfoProperty(a: unknown, b: unknown): boolean {\n if (a === b) return true;\n if (typeof a !== typeof b) return false;\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.every((el, i) => b[i] === el);\n }\n return false;\n}\n\n/**\n * Differences between a base list and an updated list.\n */\nexport interface TokenListDiff {\n /**\n * Tokens from updated with chainId/address not present in base list\n */\n readonly added: TokenInfo[];\n /**\n * Tokens from base with chainId/address not present in the updated list\n */\n readonly removed: TokenInfo[];\n /**\n * The token info that changed\n */\n readonly changed: {\n [chainId: number]: {\n [address: string]: TokenInfoChanges;\n };\n };\n}\n\n/**\n * Computes the diff of a token list where the first argument is the base and the second argument is the updated list.\n * @param base base list\n * @param update updated list\n */\nexport function diffTokenLists(\n base: TokenInfo[],\n update: TokenInfo[]\n): TokenListDiff {\n const indexedBase = base.reduce<{\n [chainId: number]: { [address: string]: TokenInfo };\n }>((memo, tokenInfo) => {\n if (!memo[tokenInfo.chainId]) memo[tokenInfo.chainId] = {};\n memo[tokenInfo.chainId][tokenInfo.address] = tokenInfo;\n return memo;\n }, {});\n\n const newListUpdates = update.reduce<{\n added: TokenInfo[];\n changed: {\n [chainId: number]: {\n [address: string]: TokenInfoChanges;\n };\n };\n index: {\n [chainId: number]: {\n [address: string]: true;\n };\n };\n }>(\n (memo, tokenInfo) => {\n const baseToken = indexedBase[tokenInfo.chainId]?.[tokenInfo.address];\n if (!baseToken) {\n memo.added.push(tokenInfo);\n } else {\n const changes: TokenInfoChanges = Object.keys(tokenInfo)\n .filter(\n (s): s is TokenInfoChangeKey => s !== \"address\" && s !== \"chainId\"\n )\n .filter((s) => {\n return !compareTokenInfoProperty(tokenInfo[s], baseToken[s]);\n });\n if (changes.length > 0) {\n if (!memo.changed[tokenInfo.chainId]) {\n memo.changed[tokenInfo.chainId] = {};\n }\n memo.changed[tokenInfo.chainId][tokenInfo.address] = changes;\n }\n }\n\n if (!memo.index[tokenInfo.chainId]) {\n memo.index[tokenInfo.chainId] = {\n [tokenInfo.address]: true,\n };\n } else {\n memo.index[tokenInfo.chainId][tokenInfo.address] = true;\n }\n\n return memo;\n },\n { added: [], changed: {}, index: {} }\n );\n\n const removed = base.reduce<TokenInfo[]>((list, curr) => {\n if (\n !newListUpdates.index[curr.chainId] ||\n !newListUpdates.index[curr.chainId][curr.address]\n ) {\n list.push(curr);\n }\n return list;\n }, []);\n\n return {\n added: newListUpdates.added,\n changed: newListUpdates.changed,\n removed,\n };\n}\n","import { diffTokenLists } from \"./diffTokenLists\";\nimport { VersionUpgrade } from \"./getVersionUpgrade\";\nimport { TokenInfo } from \"./types\";\n\n/**\n * Returns the minimum version bump for the given list\n * @param baseList the base list of tokens\n * @param updatedList the updated list of tokens\n */\nexport function minVersionBump(\n baseList: TokenInfo[],\n updatedList: TokenInfo[]\n): VersionUpgrade {\n const diff = diffTokenLists(baseList, updatedList);\n if (diff.removed.length > 0) return VersionUpgrade.MAJOR;\n if (diff.added.length > 0) return VersionUpgrade.MINOR;\n if (Object.keys(diff.changed).length > 0) return VersionUpgrade.PATCH;\n return VersionUpgrade.NONE;\n}\n","import { VersionUpgrade } from \"./getVersionUpgrade\";\nimport { Version } from \"./types\";\n\n/**\n * Returns the next version of the list given a base version and the upgrade type\n * @param base current version\n * @param bump the upgrade type\n */\nexport function nextVersion(base: Version, bump: VersionUpgrade): Version {\n switch (bump) {\n case VersionUpgrade.NONE:\n return base;\n\n case VersionUpgrade.MAJOR:\n return { major: base.major + 1, minor: 0, patch: 0 };\n\n case VersionUpgrade.MINOR:\n return {\n major: base.major,\n minor: base.minor + 1,\n patch: 0,\n };\n\n case VersionUpgrade.PATCH:\n return {\n major: base.major,\n minor: base.minor,\n patch: base.patch + 1,\n };\n }\n}\n","import tokenlist from './tokenlist-v1.json';\nimport chainlist from './chainlist-v1.json';\nimport routerlist from './routerlist-v1.json';\nimport tokenschema from './tokenlist-v1.json';\nimport testnetfaucets from './testnet-faucets-v1.json';\nimport { ChainInfo, RouterInfo, TokenInfo, TestnetFaucetInfo } from './types';\n\nexport * from './abis';\nexport * from './types';\nexport * from './isVersionUpdate';\nexport * from './getVersionUpgrade';\nexport * from './diffTokenLists';\nexport * from './minVersionBump';\nexport * from './nextVersion';\nexport * from './versionComparator';\n\nexport { tokenschema, tokenlist, chainlist, routerlist };\n\nexport function getChain(chainId: number): ChainInfo {\n return chainlist.chains.find((needle: any) => {\n return needle.chainId === chainId;\n }) as ChainInfo;\n}\n\nexport function getTokenByAddress(\n tokenAddress: string,\n chainId?: number\n): TokenInfo | null {\n return (\n (tokenlist.tokens.find((token: any) => {\n return (\n token.address === tokenAddress &&\n (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo) ?? null\n );\n}\n\nexport function getTokenBySymbol(\n tokenSymbol: string,\n chainId?: number\n): TokenInfo | null {\n return (\n (tokenlist.tokens.find((token: any) => {\n return (\n token.symbol === tokenSymbol && (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo) ?? null\n );\n}\n\nexport function getTokens(chainId: number): TokenInfo[] {\n return tokenlist.tokens.filter((needle: any) => {\n return needle.chainId === chainId;\n }) as TokenInfo[];\n}\n\nexport function getFaucetAddress(tokenInfo: TokenInfo): TestnetFaucetInfo {\n return testnetfaucets.faucets.find((needle: any) => {\n return (\n needle.token === tokenInfo.address && needle.chainId === tokenInfo.chainId\n );\n }) as TestnetFaucetInfo;\n}\n\nexport function getRouters(chainId: number): RouterInfo[] {\n return routerlist.routers.filter((needle: any) => {\n return needle.chainId === chainId;\n }) as RouterInfo[];\n}\n\nexport function getRouter(chainId: number, version: string): RouterInfo {\n return routerlist.routers.find((needle: any) => {\n return needle.chainId === chainId && needle.version === version;\n }) as RouterInfo;\n}\n\nexport function getLatestRouter(chainId: number): RouterInfo {\n const sorted = getRouters(chainId).sort((a, b) => {\n return Date.parse(a.timestamp) - Date.parse(b.timestamp);\n });\n return sorted[sorted.length - 1];\n}\n\nexport function getShortNames(): string[] {\n return chainlist.chains.map(chain => chain.shortName);\n}"],"names":["HIRO_ROUTER_ABIS","HiroRouterV01","HiroRouterV02","CURVE_ROUTER_ABI","CurveRouterV13Abi","TokenListTagNames","versionComparator","versionA","versionB","major","minor","patch","isVersionUpdate","base","update","VersionUpgrade","getVersionUpgrade","MAJOR","NONE","MINOR","PATCH","compareTokenInfoProperty","a","b","Array","isArray","every","el","i","diffTokenLists","indexedBase","reduce","memo","tokenInfo","chainId","address","newListUpdates","baseToken","added","push","changes","Object","keys","filter","s","length","changed","index","removed","list","curr","minVersionBump","baseList","updatedList","diff","nextVersion","bump","getChain","chainlist","chains","find","needle","getTokenByAddress","tokenAddress","tokenlist","tokens","token","getTokenBySymbol","tokenSymbol","symbol","getTokens","getFaucetAddress","testnetfaucets","faucets","getRouters","routerlist","routers","getRouter","version","getLatestRouter","sorted","sort","Date","parse","timestamp","getShortNames","map","chain","shortName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIaA,gBAAgB,GAA0B;EACrD,OAAOC,aAD8C;EAErD,OAAOC,aAF8C;EAGr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"}
1
+ {"version":3,"file":"tokenlists.esm.js","sources":["../src/abis.ts","../src/types.ts","../src/versionComparator.ts","../src/isVersionUpdate.ts","../src/getVersionUpgrade.ts","../src/diffTokenLists.ts","../src/minVersionBump.ts","../src/nextVersion.ts","../src/index.ts"],"sourcesContent":["import CurveRouterV13Abi from \"./abis/curverouterv13.abi.json\";\nimport HiroRouterV01 from \"./abis/HiroRouterV0.1.abi.json\";\nimport HiroRouterV02 from \"./abis/HiroRouterV0.2.abi.json\";\n\nexport const HIRO_ROUTER_ABIS: { [key: string]: any} = {\n \"0.1\": HiroRouterV01,\n \"0.2\": HiroRouterV02,\n \"test\": HiroRouterV02\n}\nexport const CURVE_ROUTER_ABI = CurveRouterV13Abi;\n","type ExtensionValue = string | number | boolean | null | undefined;\n\nexport enum TokenListTagNames {\n // Networks\n MAINNET = 'Mainnet',\n OPTIMISM = 'Optimism',\n ARBITRUM = 'Arbitrum',\n AVALANCHE = 'Avalanche',\n TESTNET = 'TESTNET',\n\n // Coin/currency\n STABLECOIN = 'Stablecoin',\n USD = 'USD',\n EUR = 'EUR',\n\n // Misc\n TOP_10 = 'Top10',\n NATIVE_TOKEN = 'Native Token',\n}\n\nexport interface RouterInfo {\n readonly chainId: number;\n readonly address: string;\n readonly timestamp: string;\n readonly version: string;\n readonly fee: string;\n}\n\nexport interface TestnetFaucetInfo {\n readonly chainId: number;\n readonly address: string;\n readonly token: string;\n}\n\nexport interface ChainInfo {\n readonly chainId: number;\n readonly chainName: string;\n // shortName is the EIP3770 short name\n // chain details can be found here: https://github.com/ethereum-lists/chains/tree/master/_data/chains\n readonly shortName: string;\n readonly logoUri: string;\n readonly explorerUrl: string;\n readonly rpcUrls: string[];\n readonly wrappedNativeToken: string;\n readonly feeTreasury?: string;\n readonly testnet: boolean;\n readonly priceFeeds?: {\n readonly [key: string]: string | undefined;\n };\n readonly tokenFeeds?: {\n readonly [key: string]: string | undefined;\n };\n readonly curveRouterAddress?: string;\n}\n\nexport interface TokenInfo {\n readonly chainId: number;\n readonly address: string;\n readonly name: string;\n readonly decimals: number;\n readonly symbol: string;\n readonly coinGeckoId?: string;\n readonly currency?: string;\n readonly logoUri?: string;\n readonly tags?: TokenListTagNames[];\n readonly extensions?: {\n readonly [key: string]:\n | {\n [key: string]:\n | {\n [key: string]: ExtensionValue;\n }\n | ExtensionValue;\n }\n | ExtensionValue;\n };\n}\n\nexport interface Version {\n readonly major: number;\n readonly minor: number;\n readonly patch: number;\n}\n\nexport interface TokenList {\n readonly name: string;\n readonly timestamp: string;\n readonly version: Version;\n readonly tokens: TokenInfo[];\n readonly keywords?: string[];\n readonly tags?: any;\n readonly logoUri?: string;\n}\n","import { Version } from \"./types\";\n\n/**\n * Comparator function that allows sorting version from lowest to highest\n * @param versionA version A to compare\n * @param versionB version B to compare\n * @returns -1 if versionA comes before versionB, 0 if versionA is equal to version B, and 1 if version A comes after version B\n */\nexport function versionComparator(\n versionA: Version,\n versionB: Version\n): -1 | 0 | 1 {\n if (versionA.major < versionB.major) {\n return -1;\n } else if (versionA.major > versionB.major) {\n return 1;\n } else if (versionA.minor < versionB.minor) {\n return -1;\n } else if (versionA.minor > versionB.minor) {\n return 1;\n } else if (versionA.patch < versionB.patch) {\n return -1;\n } else if (versionA.patch > versionB.patch) {\n return 1;\n } else {\n return 0;\n }\n}\n","import { versionComparator } from './versionComparator';\nimport { Version } from './types';\n\n/**\n * Returns true if versionB is an update over versionA\n */\nexport function isVersionUpdate(base: Version, update: Version): boolean {\n return versionComparator(base, update) < 0;\n}","import { Version } from \"./types\";\n\n/**\n * Enum describing types of version differences\n */\nexport enum VersionUpgrade {\n NONE,\n PATCH,\n MINOR,\n MAJOR,\n}\n\n/**\n * Return the upgrade type from the base version to the update version.\n * Note that downgrades and equivalent versions are both treated as `NONE`.\n * @param base base list\n * @param update update to the list\n */\nexport function getVersionUpgrade(\n base: Version,\n update: Version\n): VersionUpgrade {\n if (update.major > base.major) {\n return VersionUpgrade.MAJOR;\n }\n if (update.major < base.major) {\n return VersionUpgrade.NONE;\n }\n if (update.minor > base.minor) {\n return VersionUpgrade.MINOR;\n }\n if (update.minor < base.minor) {\n return VersionUpgrade.NONE;\n }\n return update.patch > base.patch ? VersionUpgrade.PATCH : VersionUpgrade.NONE;\n}\n","import { TokenInfo } from \"./types\";\n\nexport type TokenInfoChangeKey = Exclude<\n keyof TokenInfo,\n \"address\" | \"chainId\"\n>;\nexport type TokenInfoChanges = Array<TokenInfoChangeKey>;\n\n/**\n * compares two token info key values\n * this subset of full deep equal functionality does not work on objects or object arrays\n * @param a comparison item a\n * @param b comparison item b\n */\nfunction compareTokenInfoProperty(a: unknown, b: unknown): boolean {\n if (a === b) return true;\n if (typeof a !== typeof b) return false;\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.every((el, i) => b[i] === el);\n }\n return false;\n}\n\n/**\n * Differences between a base list and an updated list.\n */\nexport interface TokenListDiff {\n /**\n * Tokens from updated with chainId/address not present in base list\n */\n readonly added: TokenInfo[];\n /**\n * Tokens from base with chainId/address not present in the updated list\n */\n readonly removed: TokenInfo[];\n /**\n * The token info that changed\n */\n readonly changed: {\n [chainId: number]: {\n [address: string]: TokenInfoChanges;\n };\n };\n}\n\n/**\n * Computes the diff of a token list where the first argument is the base and the second argument is the updated list.\n * @param base base list\n * @param update updated list\n */\nexport function diffTokenLists(\n base: TokenInfo[],\n update: TokenInfo[]\n): TokenListDiff {\n const indexedBase = base.reduce<{\n [chainId: number]: { [address: string]: TokenInfo };\n }>((memo, tokenInfo) => {\n if (!memo[tokenInfo.chainId]) memo[tokenInfo.chainId] = {};\n memo[tokenInfo.chainId][tokenInfo.address] = tokenInfo;\n return memo;\n }, {});\n\n const newListUpdates = update.reduce<{\n added: TokenInfo[];\n changed: {\n [chainId: number]: {\n [address: string]: TokenInfoChanges;\n };\n };\n index: {\n [chainId: number]: {\n [address: string]: true;\n };\n };\n }>(\n (memo, tokenInfo) => {\n const baseToken = indexedBase[tokenInfo.chainId]?.[tokenInfo.address];\n if (!baseToken) {\n memo.added.push(tokenInfo);\n } else {\n const changes: TokenInfoChanges = Object.keys(tokenInfo)\n .filter(\n (s): s is TokenInfoChangeKey => s !== \"address\" && s !== \"chainId\"\n )\n .filter((s) => {\n return !compareTokenInfoProperty(tokenInfo[s], baseToken[s]);\n });\n if (changes.length > 0) {\n if (!memo.changed[tokenInfo.chainId]) {\n memo.changed[tokenInfo.chainId] = {};\n }\n memo.changed[tokenInfo.chainId][tokenInfo.address] = changes;\n }\n }\n\n if (!memo.index[tokenInfo.chainId]) {\n memo.index[tokenInfo.chainId] = {\n [tokenInfo.address]: true,\n };\n } else {\n memo.index[tokenInfo.chainId][tokenInfo.address] = true;\n }\n\n return memo;\n },\n { added: [], changed: {}, index: {} }\n );\n\n const removed = base.reduce<TokenInfo[]>((list, curr) => {\n if (\n !newListUpdates.index[curr.chainId] ||\n !newListUpdates.index[curr.chainId][curr.address]\n ) {\n list.push(curr);\n }\n return list;\n }, []);\n\n return {\n added: newListUpdates.added,\n changed: newListUpdates.changed,\n removed,\n };\n}\n","import { diffTokenLists } from \"./diffTokenLists\";\nimport { VersionUpgrade } from \"./getVersionUpgrade\";\nimport { TokenInfo } from \"./types\";\n\n/**\n * Returns the minimum version bump for the given list\n * @param baseList the base list of tokens\n * @param updatedList the updated list of tokens\n */\nexport function minVersionBump(\n baseList: TokenInfo[],\n updatedList: TokenInfo[]\n): VersionUpgrade {\n const diff = diffTokenLists(baseList, updatedList);\n if (diff.removed.length > 0) return VersionUpgrade.MAJOR;\n if (diff.added.length > 0) return VersionUpgrade.MINOR;\n if (Object.keys(diff.changed).length > 0) return VersionUpgrade.PATCH;\n return VersionUpgrade.NONE;\n}\n","import { VersionUpgrade } from \"./getVersionUpgrade\";\nimport { Version } from \"./types\";\n\n/**\n * Returns the next version of the list given a base version and the upgrade type\n * @param base current version\n * @param bump the upgrade type\n */\nexport function nextVersion(base: Version, bump: VersionUpgrade): Version {\n switch (bump) {\n case VersionUpgrade.NONE:\n return base;\n\n case VersionUpgrade.MAJOR:\n return { major: base.major + 1, minor: 0, patch: 0 };\n\n case VersionUpgrade.MINOR:\n return {\n major: base.major,\n minor: base.minor + 1,\n patch: 0,\n };\n\n case VersionUpgrade.PATCH:\n return {\n major: base.major,\n minor: base.minor,\n patch: base.patch + 1,\n };\n }\n}\n","import tokenlist from './tokenlist-v1.json';\nimport chainlist from './chainlist-v1.json';\nimport routerlist from './routerlist-v1.json';\nimport tokenschema from './tokenlist-v1.json';\nimport testnetfaucets from './testnet-faucets-v1.json';\nimport { ChainInfo, RouterInfo, TokenInfo, TestnetFaucetInfo } from './types';\n\nexport * from './abis';\nexport * from './types';\nexport * from './isVersionUpdate';\nexport * from './getVersionUpgrade';\nexport * from './diffTokenLists';\nexport * from './minVersionBump';\nexport * from './nextVersion';\nexport * from './versionComparator';\n\nexport { tokenschema, tokenlist, chainlist, routerlist };\n\nexport function getChain(chainId: number): ChainInfo {\n return chainlist.chains.find((needle: any) => {\n return needle.chainId === chainId;\n }) as ChainInfo;\n}\n\nexport function getTokenByAddress(\n tokenAddress: string,\n chainId?: number\n): TokenInfo | null {\n return (\n (tokenlist.tokens.find((token: any) => {\n return (\n token.address === tokenAddress &&\n (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo) ?? null\n );\n}\n\nexport function getTokenBySymbol(\n tokenSymbol: string,\n chainId?: number\n): TokenInfo | null {\n return (\n (tokenlist.tokens.find((token: any) => {\n return (\n token.symbol === tokenSymbol && (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo) ?? null\n );\n}\n\nexport function getTokens(chainId: number): TokenInfo[] {\n return tokenlist.tokens.filter((needle: any) => {\n return needle.chainId === chainId;\n }) as TokenInfo[];\n}\n\nexport function getFaucetAddress(tokenInfo: TokenInfo): TestnetFaucetInfo {\n return testnetfaucets.faucets.find((needle: any) => {\n return (\n needle.token === tokenInfo.address && needle.chainId === tokenInfo.chainId\n );\n }) as TestnetFaucetInfo;\n}\n\nexport function getRouters(chainId: number): RouterInfo[] {\n return routerlist.routers.filter((needle: any) => {\n return needle.chainId === chainId;\n }) as RouterInfo[];\n}\n\nexport function getRouter(chainId: number, version: string): RouterInfo {\n return routerlist.routers.find((needle: any) => {\n return needle.chainId === chainId && needle.version === version;\n }) as RouterInfo;\n}\n\nexport function getLatestRouter(chainId: number): RouterInfo {\n const sorted = getRouters(chainId).sort((a, b) => {\n return Date.parse(a.timestamp) - Date.parse(b.timestamp);\n });\n return sorted[sorted.length - 1];\n}\n\nexport function getShortNames(): string[] {\n return chainlist.chains.map(chain => chain.shortName);\n}"],"names":["HIRO_ROUTER_ABIS","HiroRouterV01","HiroRouterV02","CURVE_ROUTER_ABI","CurveRouterV13Abi","TokenListTagNames","versionComparator","versionA","versionB","major","minor","patch","isVersionUpdate","base","update","VersionUpgrade","getVersionUpgrade","MAJOR","NONE","MINOR","PATCH","compareTokenInfoProperty","a","b","Array","isArray","every","el","i","diffTokenLists","indexedBase","reduce","memo","tokenInfo","chainId","address","newListUpdates","baseToken","added","push","changes","Object","keys","filter","s","length","changed","index","removed","list","curr","minVersionBump","baseList","updatedList","diff","nextVersion","bump","getChain","chainlist","chains","find","needle","getTokenByAddress","tokenAddress","tokenlist","tokens","token","getTokenBySymbol","tokenSymbol","symbol","getTokens","getFaucetAddress","testnetfaucets","faucets","getRouters","routerlist","routers","getRouter","version","getLatestRouter","sorted","sort","Date","parse","timestamp","getShortNames","map","chain","shortName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIaA,gBAAgB,GAA0B;EACrD,OAAOC,aAD8C;EAErD,OAAOC,aAF8C;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"}
package/dist/types.d.ts CHANGED
@@ -36,6 +36,9 @@ export interface ChainInfo {
36
36
  readonly priceFeeds?: {
37
37
  readonly [key: string]: string | undefined;
38
38
  };
39
+ readonly tokenFeeds?: {
40
+ readonly [key: string]: string | undefined;
41
+ };
39
42
  readonly curveRouterAddress?: string;
40
43
  }
41
44
  export interface TokenInfo {
package/package.json CHANGED
@@ -1,12 +1,10 @@
1
1
  {
2
2
  "name": "@yodlpay/tokenlists",
3
- "version": "0.1.48",
3
+ "version": "0.3.0",
4
4
  "description": "Tokenlist typings, schema and lists.",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
7
- "files": [
8
- "dist"
9
- ],
7
+ "files": ["dist"],
10
8
  "repository": "https://github.com/yodlpay/tokenlists.git",
11
9
  "author": "YodlPay",
12
10
  "scripts": {