@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.
- package/dist/chainlist-v1.json +27 -30
- package/dist/routerlist-v1.json +1 -8
- package/dist/tokenlists.cjs.development.js +19 -15
- package/dist/tokenlists.cjs.development.js.map +1 -1
- package/dist/tokenlists.cjs.production.min.js +1 -1
- package/dist/tokenlists.cjs.production.min.js.map +1 -1
- package/dist/tokenlists.esm.js +19 -15
- package/dist/tokenlists.esm.js.map +1 -1
- package/dist/types.d.ts +3 -0
- package/package.json +2 -4
package/dist/chainlist-v1.json
CHANGED
|
@@ -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
|
+
}
|
package/dist/routerlist-v1.json
CHANGED
|
@@ -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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"}
|
package/dist/tokenlists.esm.js
CHANGED
|
@@ -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.
|
|
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": {
|