@synthra-swap/smart-order-router 3.15.20 → 3.15.21

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.
Files changed (33) hide show
  1. package/build/main/providers/token-provider.d.ts +2 -0
  2. package/build/main/providers/token-provider.js +9 -3
  3. package/build/main/providers/v3/pool-provider.js +2 -2
  4. package/build/main/providers/v3/static-subgraph-provider.js +9 -1
  5. package/build/main/routers/alpha-router/functions/get-candidate-pools.d.ts +1 -1
  6. package/build/main/routers/alpha-router/functions/get-candidate-pools.js +9 -18
  7. package/build/main/routers/alpha-router/gas-models/gas-model.js +3 -1
  8. package/build/main/routers/alpha-router/gas-models/v3/gas-costs.js +7 -1
  9. package/build/main/routers/legacy-router/bases.d.ts +12 -0
  10. package/build/main/routers/legacy-router/bases.js +4 -1
  11. package/build/main/tsconfig.tsbuildinfo +1 -1
  12. package/build/main/util/addresses.d.ts +2 -0
  13. package/build/main/util/addresses.js +13 -5
  14. package/build/main/util/chains.d.ts +6 -2
  15. package/build/main/util/chains.js +515 -591
  16. package/build/module/providers/token-provider.d.ts +2 -0
  17. package/build/module/providers/token-provider.js +8 -2
  18. package/build/module/providers/v3/pool-provider.js +2 -2
  19. package/build/module/providers/v3/static-subgraph-provider.js +10 -2
  20. package/build/module/routers/alpha-router/functions/get-candidate-pools.d.ts +1 -1
  21. package/build/module/routers/alpha-router/functions/get-candidate-pools.js +10 -19
  22. package/build/module/routers/alpha-router/gas-models/gas-model.js +4 -2
  23. package/build/module/routers/alpha-router/gas-models/v3/gas-costs.js +7 -1
  24. package/build/module/routers/legacy-router/bases.d.ts +12 -0
  25. package/build/module/routers/legacy-router/bases.js +5 -2
  26. package/build/module/tsconfig.module.tsbuildinfo +1 -1
  27. package/build/module/util/addresses.d.ts +2 -0
  28. package/build/module/util/addresses.js +17 -3
  29. package/build/module/util/chains.d.ts +6 -2
  30. package/build/module/util/chains.js +508 -547
  31. package/package.json +4 -4
  32. package/build/main/util/gas-factory-helpers.d.ts +0 -25
  33. package/build/module/util/gas-factory-helpers.d.ts +0 -25
@@ -1,608 +1,569 @@
1
- import { ChainId, Ether, NativeCurrency, Token } from '@synthra-swap/sdk-core';
1
+ import { ChainId, Ether, NativeCurrency, Token, } from '@synthra-swap/sdk-core';
2
2
  export const SUPPORTED_CHAINS = [
3
- ChainId.MAINNET,
4
- ChainId.OPTIMISM,
5
- ChainId.OPTIMISM_GOERLI,
6
- ChainId.ARBITRUM_ONE,
7
- ChainId.ARBITRUM_GOERLI,
8
- ChainId.POLYGON,
9
- ChainId.POLYGON_MUMBAI,
10
- ChainId.GOERLI,
11
- ChainId.SEPOLIA,
12
- ChainId.CELO_ALFAJORES,
13
- ChainId.CELO,
14
- ChainId.BNB,
15
- ChainId.AVALANCHE,
16
- ChainId.BASE,
17
- ChainId.UOMI,
18
- // Gnosis and Moonbeam don't yet have contracts deployed yet
3
+ ChainId.MAINNET,
4
+ ChainId.OPTIMISM,
5
+ ChainId.OPTIMISM_GOERLI,
6
+ ChainId.ARBITRUM_ONE,
7
+ ChainId.ARBITRUM_GOERLI,
8
+ ChainId.POLYGON,
9
+ ChainId.POLYGON_MUMBAI,
10
+ ChainId.GOERLI,
11
+ ChainId.SEPOLIA,
12
+ ChainId.CELO_ALFAJORES,
13
+ ChainId.CELO,
14
+ ChainId.BNB,
15
+ ChainId.AVALANCHE,
16
+ ChainId.BASE,
17
+ ChainId.UOMI,
18
+ ChainId.IRYS,
19
+ ChainId.HELIOS,
20
+ // Gnosis and Moonbeam don't yet have contracts deployed yet
19
21
  ];
20
22
  export const V2_SUPPORTED = [ChainId.MAINNET, ChainId.GOERLI, ChainId.SEPOLIA];
21
23
  export const HAS_L1_FEE = [
22
- ChainId.OPTIMISM,
23
- ChainId.OPTIMISM_GOERLI,
24
- ChainId.ARBITRUM_ONE,
25
- ChainId.ARBITRUM_GOERLI,
26
- ChainId.BASE,
27
- ChainId.BASE_GOERLI,
24
+ ChainId.OPTIMISM,
25
+ ChainId.OPTIMISM_GOERLI,
26
+ ChainId.ARBITRUM_ONE,
27
+ ChainId.ARBITRUM_GOERLI,
28
+ ChainId.BASE,
29
+ ChainId.BASE_GOERLI,
28
30
  ];
29
31
  export const NETWORKS_WITH_SAME_UNISWAP_ADDRESSES = [
30
- ChainId.MAINNET,
31
- ChainId.GOERLI,
32
- ChainId.OPTIMISM,
33
- ChainId.ARBITRUM_ONE,
34
- ChainId.POLYGON,
35
- ChainId.POLYGON_MUMBAI,
32
+ ChainId.MAINNET,
33
+ ChainId.GOERLI,
34
+ ChainId.OPTIMISM,
35
+ ChainId.ARBITRUM_ONE,
36
+ ChainId.POLYGON,
37
+ ChainId.POLYGON_MUMBAI,
36
38
  ];
37
39
  export const ID_TO_CHAIN_ID = (id) => {
38
- switch (id) {
39
- case 1:
40
- return ChainId.MAINNET;
41
- case 5:
42
- return ChainId.GOERLI;
43
- case 11155111:
44
- return ChainId.SEPOLIA;
45
- case 56:
46
- return ChainId.BNB;
47
- case 10:
48
- return ChainId.OPTIMISM;
49
- case 420:
50
- return ChainId.OPTIMISM_GOERLI;
51
- case 42161:
52
- return ChainId.ARBITRUM_ONE;
53
- case 421613:
54
- return ChainId.ARBITRUM_GOERLI;
55
- case 137:
56
- return ChainId.POLYGON;
57
- case 80001:
58
- return ChainId.POLYGON_MUMBAI;
59
- case 42220:
60
- return ChainId.CELO;
61
- case 44787:
62
- return ChainId.CELO_ALFAJORES;
63
- case 100:
64
- return ChainId.GNOSIS;
65
- case 1284:
66
- return ChainId.MOONBEAM;
67
- case 43114:
68
- return ChainId.AVALANCHE;
69
- case 8453:
70
- return ChainId.BASE;
71
- case 84531:
72
- return ChainId.BASE_GOERLI;
73
- case 4386:
74
- return ChainId.UOMI;
75
- default:
76
- throw new Error(`Unknown chain id: ${id}`);
77
- }
40
+ switch (id) {
41
+ case 1:
42
+ return ChainId.MAINNET;
43
+ case 5:
44
+ return ChainId.GOERLI;
45
+ case 11155111:
46
+ return ChainId.SEPOLIA;
47
+ case 56:
48
+ return ChainId.BNB;
49
+ case 10:
50
+ return ChainId.OPTIMISM;
51
+ case 420:
52
+ return ChainId.OPTIMISM_GOERLI;
53
+ case 42161:
54
+ return ChainId.ARBITRUM_ONE;
55
+ case 421613:
56
+ return ChainId.ARBITRUM_GOERLI;
57
+ case 137:
58
+ return ChainId.POLYGON;
59
+ case 80001:
60
+ return ChainId.POLYGON_MUMBAI;
61
+ case 42220:
62
+ return ChainId.CELO;
63
+ case 44787:
64
+ return ChainId.CELO_ALFAJORES;
65
+ case 100:
66
+ return ChainId.GNOSIS;
67
+ case 1284:
68
+ return ChainId.MOONBEAM;
69
+ case 43114:
70
+ return ChainId.AVALANCHE;
71
+ case 8453:
72
+ return ChainId.BASE;
73
+ case 84531:
74
+ return ChainId.BASE_GOERLI;
75
+ case 4386:
76
+ return ChainId.UOMI;
77
+ case 1270:
78
+ return ChainId.IRYS;
79
+ case 42000:
80
+ return ChainId.HELIOS;
81
+ default:
82
+ throw new Error(`Unknown chain id: ${id}`);
83
+ }
78
84
  };
79
85
  export var ChainName;
80
86
  (function (ChainName) {
81
- ChainName['MAINNET'] = 'mainnet';
82
- ChainName['GOERLI'] = 'goerli';
83
- ChainName['SEPOLIA'] = 'sepolia';
84
- ChainName['OPTIMISM'] = 'optimism-mainnet';
85
- ChainName['OPTIMISM_GOERLI'] = 'optimism-goerli';
86
- ChainName['ARBITRUM_ONE'] = 'arbitrum-mainnet';
87
- ChainName['ARBITRUM_GOERLI'] = 'arbitrum-goerli';
88
- ChainName['POLYGON'] = 'polygon-mainnet';
89
- ChainName['POLYGON_MUMBAI'] = 'polygon-mumbai';
90
- ChainName['CELO'] = 'celo-mainnet';
91
- ChainName['CELO_ALFAJORES'] = 'celo-alfajores';
92
- ChainName['GNOSIS'] = 'gnosis-mainnet';
93
- ChainName['MOONBEAM'] = 'moonbeam-mainnet';
94
- ChainName['BNB'] = 'bnb-mainnet';
95
- ChainName['AVALANCHE'] = 'avalanche-mainnet';
96
- ChainName['BASE'] = 'base-mainnet';
97
- ChainName['BASE_GOERLI'] = 'base-goerli';
98
- ChainName['UOMI'] = 'uomi';
87
+ ChainName["MAINNET"] = "mainnet";
88
+ ChainName["GOERLI"] = "goerli";
89
+ ChainName["SEPOLIA"] = "sepolia";
90
+ ChainName["OPTIMISM"] = "optimism-mainnet";
91
+ ChainName["OPTIMISM_GOERLI"] = "optimism-goerli";
92
+ ChainName["ARBITRUM_ONE"] = "arbitrum-mainnet";
93
+ ChainName["ARBITRUM_GOERLI"] = "arbitrum-goerli";
94
+ ChainName["POLYGON"] = "polygon-mainnet";
95
+ ChainName["POLYGON_MUMBAI"] = "polygon-mumbai";
96
+ ChainName["CELO"] = "celo-mainnet";
97
+ ChainName["CELO_ALFAJORES"] = "celo-alfajores";
98
+ ChainName["GNOSIS"] = "gnosis-mainnet";
99
+ ChainName["MOONBEAM"] = "moonbeam-mainnet";
100
+ ChainName["BNB"] = "bnb-mainnet";
101
+ ChainName["AVALANCHE"] = "avalanche-mainnet";
102
+ ChainName["BASE"] = "base-mainnet";
103
+ ChainName["BASE_GOERLI"] = "base-goerli";
104
+ ChainName["UOMI"] = "uomi";
105
+ ChainName["IRYS"] = "irys";
106
+ ChainName["HELIOS"] = "helios";
99
107
  })(ChainName || (ChainName = {}));
100
108
  export var NativeCurrencyName;
101
109
  (function (NativeCurrencyName) {
102
- // Strings match input for CLI
103
- NativeCurrencyName['ETHER'] = 'ETH';
104
- NativeCurrencyName['MATIC'] = 'MATIC';
105
- NativeCurrencyName['CELO'] = 'CELO';
106
- NativeCurrencyName['GNOSIS'] = 'XDAI';
107
- NativeCurrencyName['MOONBEAM'] = 'GLMR';
108
- NativeCurrencyName['BNB'] = 'BNB';
109
- NativeCurrencyName['AVALANCHE'] = 'AVAX';
110
- NativeCurrencyName['UOMI'] = 'UOMI';
110
+ // Strings match input for CLI
111
+ NativeCurrencyName["ETHER"] = "ETH";
112
+ NativeCurrencyName["MATIC"] = "MATIC";
113
+ NativeCurrencyName["CELO"] = "CELO";
114
+ NativeCurrencyName["GNOSIS"] = "XDAI";
115
+ NativeCurrencyName["MOONBEAM"] = "GLMR";
116
+ NativeCurrencyName["BNB"] = "BNB";
117
+ NativeCurrencyName["AVALANCHE"] = "AVAX";
118
+ NativeCurrencyName["UOMI"] = "UOMI";
119
+ NativeCurrencyName["IRYS"] = "IRYS";
120
+ NativeCurrencyName["HELIOS"] = "HELIOS";
111
121
  })(NativeCurrencyName || (NativeCurrencyName = {}));
112
122
  export const NATIVE_NAMES_BY_ID = {
113
- [ChainId.MAINNET]: [
114
- 'ETH',
115
- 'ETHER',
116
- '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
117
- ],
118
- [ChainId.GOERLI]: [
119
- 'ETH',
120
- 'ETHER',
121
- '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
122
- ],
123
- [ChainId.SEPOLIA]: [
124
- 'ETH',
125
- 'ETHER',
126
- '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
127
- ],
128
- [ChainId.OPTIMISM]: [
129
- 'ETH',
130
- 'ETHER',
131
- '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
132
- ],
133
- [ChainId.OPTIMISM_GOERLI]: [
134
- 'ETH',
135
- 'ETHER',
136
- '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
137
- ],
138
- [ChainId.ARBITRUM_ONE]: [
139
- 'ETH',
140
- 'ETHER',
141
- '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
142
- ],
143
- [ChainId.ARBITRUM_GOERLI]: [
144
- 'ETH',
145
- 'ETHER',
146
- '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
147
- ],
148
- [ChainId.POLYGON]: ['MATIC', '0x0000000000000000000000000000000000001010'],
149
- [ChainId.POLYGON_MUMBAI]: [
150
- 'MATIC',
151
- '0x0000000000000000000000000000000000001010',
152
- ],
153
- [ChainId.CELO]: ['CELO'],
154
- [ChainId.CELO_ALFAJORES]: ['CELO'],
155
- [ChainId.GNOSIS]: ['XDAI'],
156
- [ChainId.MOONBEAM]: ['GLMR'],
157
- [ChainId.BNB]: ['BNB', 'BNB', '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'],
158
- [ChainId.AVALANCHE]: [
159
- 'AVAX',
160
- 'AVALANCHE',
161
- '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
162
- ],
163
- [ChainId.BASE]: [
164
- 'ETH',
165
- 'ETHER',
166
- '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
167
- ],
168
- [ChainId.UOMI]: [
169
- 'UOMI',
170
- 'UOMI',
171
- '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
172
- ],
123
+ [ChainId.MAINNET]: [
124
+ 'ETH',
125
+ 'ETHER',
126
+ '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
127
+ ],
128
+ [ChainId.GOERLI]: [
129
+ 'ETH',
130
+ 'ETHER',
131
+ '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
132
+ ],
133
+ [ChainId.SEPOLIA]: [
134
+ 'ETH',
135
+ 'ETHER',
136
+ '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
137
+ ],
138
+ [ChainId.OPTIMISM]: [
139
+ 'ETH',
140
+ 'ETHER',
141
+ '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
142
+ ],
143
+ [ChainId.OPTIMISM_GOERLI]: [
144
+ 'ETH',
145
+ 'ETHER',
146
+ '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
147
+ ],
148
+ [ChainId.ARBITRUM_ONE]: [
149
+ 'ETH',
150
+ 'ETHER',
151
+ '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
152
+ ],
153
+ [ChainId.ARBITRUM_GOERLI]: [
154
+ 'ETH',
155
+ 'ETHER',
156
+ '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
157
+ ],
158
+ [ChainId.POLYGON]: ['MATIC', '0x0000000000000000000000000000000000001010'],
159
+ [ChainId.POLYGON_MUMBAI]: [
160
+ 'MATIC',
161
+ '0x0000000000000000000000000000000000001010',
162
+ ],
163
+ [ChainId.CELO]: ['CELO'],
164
+ [ChainId.CELO_ALFAJORES]: ['CELO'],
165
+ [ChainId.GNOSIS]: ['XDAI'],
166
+ [ChainId.MOONBEAM]: ['GLMR'],
167
+ [ChainId.BNB]: ['BNB', 'BNB', '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'],
168
+ [ChainId.AVALANCHE]: [
169
+ 'AVAX',
170
+ 'AVALANCHE',
171
+ '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
172
+ ],
173
+ [ChainId.BASE]: [
174
+ 'ETH',
175
+ 'ETHER',
176
+ '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
177
+ ],
178
+ [ChainId.UOMI]: [
179
+ 'UOMI',
180
+ 'UOMI',
181
+ '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
182
+ ],
183
+ [ChainId.IRYS]: ['IRYS', '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'],
184
+ [ChainId.HELIOS]: ['HELIOS', '0xD4949664cD82660AaE99bEdc034a0deA8A0bd517'],
173
185
  };
174
186
  export const NATIVE_CURRENCY = {
175
- [ChainId.MAINNET]: NativeCurrencyName.ETHER,
176
- [ChainId.GOERLI]: NativeCurrencyName.ETHER,
177
- [ChainId.SEPOLIA]: NativeCurrencyName.ETHER,
178
- [ChainId.OPTIMISM]: NativeCurrencyName.ETHER,
179
- [ChainId.OPTIMISM_GOERLI]: NativeCurrencyName.ETHER,
180
- [ChainId.ARBITRUM_ONE]: NativeCurrencyName.ETHER,
181
- [ChainId.ARBITRUM_GOERLI]: NativeCurrencyName.ETHER,
182
- [ChainId.POLYGON]: NativeCurrencyName.MATIC,
183
- [ChainId.POLYGON_MUMBAI]: NativeCurrencyName.MATIC,
184
- [ChainId.CELO]: NativeCurrencyName.CELO,
185
- [ChainId.CELO_ALFAJORES]: NativeCurrencyName.CELO,
186
- [ChainId.GNOSIS]: NativeCurrencyName.GNOSIS,
187
- [ChainId.MOONBEAM]: NativeCurrencyName.MOONBEAM,
188
- [ChainId.BNB]: NativeCurrencyName.BNB,
189
- [ChainId.AVALANCHE]: NativeCurrencyName.AVALANCHE,
190
- [ChainId.BASE]: NativeCurrencyName.ETHER,
191
- [ChainId.UOMI]: NativeCurrencyName.UOMI,
187
+ [ChainId.MAINNET]: NativeCurrencyName.ETHER,
188
+ [ChainId.GOERLI]: NativeCurrencyName.ETHER,
189
+ [ChainId.SEPOLIA]: NativeCurrencyName.ETHER,
190
+ [ChainId.OPTIMISM]: NativeCurrencyName.ETHER,
191
+ [ChainId.OPTIMISM_GOERLI]: NativeCurrencyName.ETHER,
192
+ [ChainId.ARBITRUM_ONE]: NativeCurrencyName.ETHER,
193
+ [ChainId.ARBITRUM_GOERLI]: NativeCurrencyName.ETHER,
194
+ [ChainId.POLYGON]: NativeCurrencyName.MATIC,
195
+ [ChainId.POLYGON_MUMBAI]: NativeCurrencyName.MATIC,
196
+ [ChainId.CELO]: NativeCurrencyName.CELO,
197
+ [ChainId.CELO_ALFAJORES]: NativeCurrencyName.CELO,
198
+ [ChainId.GNOSIS]: NativeCurrencyName.GNOSIS,
199
+ [ChainId.MOONBEAM]: NativeCurrencyName.MOONBEAM,
200
+ [ChainId.BNB]: NativeCurrencyName.BNB,
201
+ [ChainId.AVALANCHE]: NativeCurrencyName.AVALANCHE,
202
+ [ChainId.BASE]: NativeCurrencyName.ETHER,
203
+ [ChainId.UOMI]: NativeCurrencyName.UOMI,
204
+ [ChainId.IRYS]: NativeCurrencyName.IRYS,
205
+ [ChainId.HELIOS]: NativeCurrencyName.HELIOS,
192
206
  };
193
207
  export const ID_TO_NETWORK_NAME = (id) => {
194
- switch (id) {
195
- case 1:
196
- return ChainName.MAINNET;
197
- case 5:
198
- return ChainName.GOERLI;
199
- case 11155111:
200
- return ChainName.SEPOLIA;
201
- case 56:
202
- return ChainName.BNB;
203
- case 10:
204
- return ChainName.OPTIMISM;
205
- case 420:
206
- return ChainName.OPTIMISM_GOERLI;
207
- case 42161:
208
- return ChainName.ARBITRUM_ONE;
209
- case 421613:
210
- return ChainName.ARBITRUM_GOERLI;
211
- case 137:
212
- return ChainName.POLYGON;
213
- case 80001:
214
- return ChainName.POLYGON_MUMBAI;
215
- case 42220:
216
- return ChainName.CELO;
217
- case 44787:
218
- return ChainName.CELO_ALFAJORES;
219
- case 100:
220
- return ChainName.GNOSIS;
221
- case 1284:
222
- return ChainName.MOONBEAM;
223
- case 43114:
224
- return ChainName.AVALANCHE;
225
- case 8453:
226
- return ChainName.BASE;
227
- case 84531:
228
- return ChainName.BASE_GOERLI;
229
- case 4386:
230
- return ChainName.UOMI;
231
- default:
232
- throw new Error(`Unknown chain id: ${id}`);
233
- }
208
+ switch (id) {
209
+ case 1:
210
+ return ChainName.MAINNET;
211
+ case 5:
212
+ return ChainName.GOERLI;
213
+ case 11155111:
214
+ return ChainName.SEPOLIA;
215
+ case 56:
216
+ return ChainName.BNB;
217
+ case 10:
218
+ return ChainName.OPTIMISM;
219
+ case 420:
220
+ return ChainName.OPTIMISM_GOERLI;
221
+ case 42161:
222
+ return ChainName.ARBITRUM_ONE;
223
+ case 421613:
224
+ return ChainName.ARBITRUM_GOERLI;
225
+ case 137:
226
+ return ChainName.POLYGON;
227
+ case 80001:
228
+ return ChainName.POLYGON_MUMBAI;
229
+ case 42220:
230
+ return ChainName.CELO;
231
+ case 44787:
232
+ return ChainName.CELO_ALFAJORES;
233
+ case 100:
234
+ return ChainName.GNOSIS;
235
+ case 1284:
236
+ return ChainName.MOONBEAM;
237
+ case 43114:
238
+ return ChainName.AVALANCHE;
239
+ case 8453:
240
+ return ChainName.BASE;
241
+ case 84531:
242
+ return ChainName.BASE_GOERLI;
243
+ case 4386:
244
+ return ChainName.UOMI;
245
+ case 1270:
246
+ return ChainName.IRYS;
247
+ case 42000:
248
+ return ChainName.HELIOS;
249
+ default:
250
+ throw new Error(`Unknown chain id: ${id}`);
251
+ }
234
252
  };
235
253
  export const CHAIN_IDS_LIST = Object.values(ChainId).map((c) => c.toString());
236
254
  export const ID_TO_PROVIDER = (id) => {
237
- switch (id) {
238
- case ChainId.MAINNET:
239
- return process.env.JSON_RPC_PROVIDER;
240
- case ChainId.GOERLI:
241
- return process.env.JSON_RPC_PROVIDER_GORLI;
242
- case ChainId.SEPOLIA:
243
- return process.env.JSON_RPC_PROVIDER_SEPOLIA;
244
- case ChainId.OPTIMISM:
245
- return process.env.JSON_RPC_PROVIDER_OPTIMISM;
246
- case ChainId.OPTIMISM_GOERLI:
247
- return process.env.JSON_RPC_PROVIDER_OPTIMISM_GOERLI;
248
- case ChainId.ARBITRUM_ONE:
249
- return process.env.JSON_RPC_PROVIDER_ARBITRUM_ONE;
250
- case ChainId.ARBITRUM_GOERLI:
251
- return process.env.JSON_RPC_PROVIDER_ARBITRUM_GOERLI;
252
- case ChainId.POLYGON:
253
- return process.env.JSON_RPC_PROVIDER_POLYGON;
254
- case ChainId.POLYGON_MUMBAI:
255
- return process.env.JSON_RPC_PROVIDER_POLYGON_MUMBAI;
256
- case ChainId.CELO:
257
- return process.env.JSON_RPC_PROVIDER_CELO;
258
- case ChainId.CELO_ALFAJORES:
259
- return process.env.JSON_RPC_PROVIDER_CELO_ALFAJORES;
260
- case ChainId.BNB:
261
- return process.env.JSON_RPC_PROVIDER_BNB;
262
- case ChainId.AVALANCHE:
263
- return process.env.JSON_RPC_PROVIDER_AVALANCHE;
264
- case ChainId.BASE:
265
- return process.env.JSON_RPC_PROVIDER_BASE;
266
- case ChainId.UOMI:
267
- return 'https://turing.uomi.ai';
268
- default:
269
- throw new Error(`Chain id: ${id} not supported`);
270
- }
255
+ switch (id) {
256
+ case ChainId.MAINNET:
257
+ return process.env.JSON_RPC_PROVIDER;
258
+ case ChainId.GOERLI:
259
+ return process.env.JSON_RPC_PROVIDER_GORLI;
260
+ case ChainId.SEPOLIA:
261
+ return process.env.JSON_RPC_PROVIDER_SEPOLIA;
262
+ case ChainId.OPTIMISM:
263
+ return process.env.JSON_RPC_PROVIDER_OPTIMISM;
264
+ case ChainId.OPTIMISM_GOERLI:
265
+ return process.env.JSON_RPC_PROVIDER_OPTIMISM_GOERLI;
266
+ case ChainId.ARBITRUM_ONE:
267
+ return process.env.JSON_RPC_PROVIDER_ARBITRUM_ONE;
268
+ case ChainId.ARBITRUM_GOERLI:
269
+ return process.env.JSON_RPC_PROVIDER_ARBITRUM_GOERLI;
270
+ case ChainId.POLYGON:
271
+ return process.env.JSON_RPC_PROVIDER_POLYGON;
272
+ case ChainId.POLYGON_MUMBAI:
273
+ return process.env.JSON_RPC_PROVIDER_POLYGON_MUMBAI;
274
+ case ChainId.CELO:
275
+ return process.env.JSON_RPC_PROVIDER_CELO;
276
+ case ChainId.CELO_ALFAJORES:
277
+ return process.env.JSON_RPC_PROVIDER_CELO_ALFAJORES;
278
+ case ChainId.BNB:
279
+ return process.env.JSON_RPC_PROVIDER_BNB;
280
+ case ChainId.AVALANCHE:
281
+ return process.env.JSON_RPC_PROVIDER_AVALANCHE;
282
+ case ChainId.BASE:
283
+ return process.env.JSON_RPC_PROVIDER_BASE;
284
+ case ChainId.UOMI:
285
+ return 'https://turing.uomi.io';
286
+ case ChainId.IRYS:
287
+ return 'https://testnet-rpc.irys.xyz/v1/execution-rpc';
288
+ case ChainId.HELIOS:
289
+ return 'https://testnet1.helioschainlabs.org';
290
+ default:
291
+ throw new Error(`Chain id: ${id} not supported`);
292
+ }
271
293
  };
272
294
  export const WRAPPED_NATIVE_CURRENCY = {
273
- [ChainId.MAINNET]: new Token(
274
- 1,
275
- '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
276
- 18,
277
- 'WETH',
278
- 'Wrapped Ether'
279
- ),
280
- [ChainId.GOERLI]: new Token(
281
- 5,
282
- '0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6',
283
- 18,
284
- 'WETH',
285
- 'Wrapped Ether'
286
- ),
287
- [ChainId.SEPOLIA]: new Token(
288
- 11155111,
289
- '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14',
290
- 18,
291
- 'WETH',
292
- 'Wrapped Ether'
293
- ),
294
- [ChainId.BNB]: new Token(
295
- 56,
296
- '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c',
297
- 18,
298
- 'WBNB',
299
- 'Wrapped BNB'
300
- ),
301
- [ChainId.OPTIMISM]: new Token(
302
- ChainId.OPTIMISM,
303
- '0x4200000000000000000000000000000000000006',
304
- 18,
305
- 'WETH',
306
- 'Wrapped Ether'
307
- ),
308
- [ChainId.OPTIMISM_GOERLI]: new Token(
309
- ChainId.OPTIMISM_GOERLI,
310
- '0x4200000000000000000000000000000000000006',
311
- 18,
312
- 'WETH',
313
- 'Wrapped Ether'
314
- ),
315
- [ChainId.ARBITRUM_ONE]: new Token(
316
- ChainId.ARBITRUM_ONE,
317
- '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',
318
- 18,
319
- 'WETH',
320
- 'Wrapped Ether'
321
- ),
322
- [ChainId.ARBITRUM_GOERLI]: new Token(
323
- ChainId.ARBITRUM_GOERLI,
324
- '0xe39Ab88f8A4777030A534146A9Ca3B52bd5D43A3',
325
- 18,
326
- 'WETH',
327
- 'Wrapped Ether'
328
- ),
329
- [ChainId.POLYGON]: new Token(
330
- ChainId.POLYGON,
331
- '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270',
332
- 18,
333
- 'WMATIC',
334
- 'Wrapped MATIC'
335
- ),
336
- [ChainId.POLYGON_MUMBAI]: new Token(
337
- ChainId.POLYGON_MUMBAI,
338
- '0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889',
339
- 18,
340
- 'WMATIC',
341
- 'Wrapped MATIC'
342
- ),
343
- // The Celo native currency 'CELO' implements the erc-20 token standard
344
- [ChainId.CELO]: new Token(
345
- ChainId.CELO,
346
- '0x471EcE3750Da237f93B8E339c536989b8978a438',
347
- 18,
348
- 'CELO',
349
- 'Celo native asset'
350
- ),
351
- [ChainId.CELO_ALFAJORES]: new Token(
352
- ChainId.CELO_ALFAJORES,
353
- '0xF194afDf50B03e69Bd7D057c1Aa9e10c9954E4C9',
354
- 18,
355
- 'CELO',
356
- 'Celo native asset'
357
- ),
358
- [ChainId.GNOSIS]: new Token(
359
- ChainId.GNOSIS,
360
- '0xe91d153e0b41518a2ce8dd3d7944fa863463a97d',
361
- 18,
362
- 'WXDAI',
363
- 'Wrapped XDAI on Gnosis'
364
- ),
365
- [ChainId.MOONBEAM]: new Token(
366
- ChainId.MOONBEAM,
367
- '0xAcc15dC74880C9944775448304B263D191c6077F',
368
- 18,
369
- 'WGLMR',
370
- 'Wrapped GLMR'
371
- ),
372
- [ChainId.AVALANCHE]: new Token(
373
- ChainId.AVALANCHE,
374
- '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7',
375
- 18,
376
- 'WAVAX',
377
- 'Wrapped AVAX'
378
- ),
379
- [ChainId.BASE]: new Token(
380
- ChainId.BASE,
381
- '0x4200000000000000000000000000000000000006',
382
- 18,
383
- 'WETH',
384
- 'Wrapped Ether'
385
- ),
386
- [ChainId.BASE_GOERLI]: new Token(
387
- ChainId.BASE_GOERLI,
388
- '0x4200000000000000000000000000000000000006',
389
- 18,
390
- 'WETH',
391
- 'Wrapped Ether'
392
- ),
393
- [ChainId.UOMI]: new Token(
394
- ChainId.UOMI,
395
- '0x1b8FA17f94DB8481E17152AaB8D242d438180BCf',
396
- 18,
397
- 'WUOMI',
398
- 'Wrapped UOMI'
399
- ),
400
- [11155420]: new Token(
401
- 11155420,
402
- '0x0000000000000000000000000000000000000000',
403
- 18,
404
- 'WTEST',
405
- 'Wrapped Test Token'
406
- ),
407
- [421614]: new Token(
408
- 421614,
409
- '0x0000000000000000000000000000000000000000',
410
- 18,
411
- 'WTEST',
412
- 'Wrapped Test Token'
413
- ),
414
- [7777777]: new Token(
415
- 7777777,
416
- '0x0000000000000000000000000000000000000000',
417
- 18,
418
- 'WTEST',
419
- 'Wrapped Test Token'
420
- ),
421
- [999999999]: new Token(
422
- 999999999,
423
- '0x0000000000000000000000000000000000000000',
424
- 18,
425
- 'WTEST',
426
- 'Wrapped Test Token'
427
- ),
295
+ [ChainId.MAINNET]: new Token(1, '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 18, 'WETH', 'Wrapped Ether'),
296
+ [ChainId.GOERLI]: new Token(5, '0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6', 18, 'WETH', 'Wrapped Ether'),
297
+ [ChainId.SEPOLIA]: new Token(11155111, '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14', 18, 'WETH', 'Wrapped Ether'),
298
+ [ChainId.BNB]: new Token(56, '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c', 18, 'WBNB', 'Wrapped BNB'),
299
+ [ChainId.OPTIMISM]: new Token(ChainId.OPTIMISM, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
300
+ [ChainId.OPTIMISM_GOERLI]: new Token(ChainId.OPTIMISM_GOERLI, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
301
+ [ChainId.ARBITRUM_ONE]: new Token(ChainId.ARBITRUM_ONE, '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', 18, 'WETH', 'Wrapped Ether'),
302
+ [ChainId.ARBITRUM_GOERLI]: new Token(ChainId.ARBITRUM_GOERLI, '0xe39Ab88f8A4777030A534146A9Ca3B52bd5D43A3', 18, 'WETH', 'Wrapped Ether'),
303
+ [ChainId.POLYGON]: new Token(ChainId.POLYGON, '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270', 18, 'WMATIC', 'Wrapped MATIC'),
304
+ [ChainId.POLYGON_MUMBAI]: new Token(ChainId.POLYGON_MUMBAI, '0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889', 18, 'WMATIC', 'Wrapped MATIC'),
305
+ // The Celo native currency 'CELO' implements the erc-20 token standard
306
+ [ChainId.CELO]: new Token(ChainId.CELO, '0x471EcE3750Da237f93B8E339c536989b8978a438', 18, 'CELO', 'Celo native asset'),
307
+ [ChainId.CELO_ALFAJORES]: new Token(ChainId.CELO_ALFAJORES, '0xF194afDf50B03e69Bd7D057c1Aa9e10c9954E4C9', 18, 'CELO', 'Celo native asset'),
308
+ [ChainId.GNOSIS]: new Token(ChainId.GNOSIS, '0xe91d153e0b41518a2ce8dd3d7944fa863463a97d', 18, 'WXDAI', 'Wrapped XDAI on Gnosis'),
309
+ [ChainId.MOONBEAM]: new Token(ChainId.MOONBEAM, '0xAcc15dC74880C9944775448304B263D191c6077F', 18, 'WGLMR', 'Wrapped GLMR'),
310
+ [ChainId.AVALANCHE]: new Token(ChainId.AVALANCHE, '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7', 18, 'WAVAX', 'Wrapped AVAX'),
311
+ [ChainId.BASE]: new Token(ChainId.BASE, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
312
+ [ChainId.BASE_GOERLI]: new Token(ChainId.BASE_GOERLI, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
313
+ [ChainId.UOMI]: new Token(ChainId.UOMI, '0x31257229820F0Eebf9C2a98b34245eB35eB062AF', 18, 'WUOMI', 'Wrapped UOMI'),
314
+ [ChainId.IRYS]: new Token(ChainId.IRYS, '0x33e4191705c386532ba27cbf171db86919200b94', 18, 'WIRYS', 'Wrapped IRYS'),
315
+ [ChainId.HELIOS]: new Token(ChainId.HELIOS, '0xD4949664cD82660AaE99bEdc034a0deA8A0bd517', 18, 'WHELIOS', 'Wrapped HELIOS'),
316
+ [11155420]: new Token(11155420, '0x0000000000000000000000000000000000000000', 18, 'WTEST', 'Wrapped Test Token'),
317
+ [421614]: new Token(421614, '0x0000000000000000000000000000000000000000', 18, 'WTEST', 'Wrapped Test Token'),
318
+ [7777777]: new Token(7777777, '0x0000000000000000000000000000000000000000', 18, 'WTEST', 'Wrapped Test Token'),
319
+ [999999999]: new Token(999999999, '0x0000000000000000000000000000000000000000', 18, 'WTEST', 'Wrapped Test Token'),
428
320
  };
429
321
  function isMatic(chainId) {
430
- return chainId === ChainId.POLYGON_MUMBAI || chainId === ChainId.POLYGON;
322
+ return chainId === ChainId.POLYGON_MUMBAI || chainId === ChainId.POLYGON;
431
323
  }
432
324
  class MaticNativeCurrency extends NativeCurrency {
433
- equals(other) {
434
- return other.isNative && other.chainId === this.chainId;
435
- }
436
- get wrapped() {
437
- if (!isMatic(this.chainId)) throw new Error('Not matic');
438
- const nativeCurrency = WRAPPED_NATIVE_CURRENCY[this.chainId];
439
- if (nativeCurrency) {
440
- return nativeCurrency;
441
- }
442
- throw new Error(`Does not support this chain ${this.chainId}`);
443
- }
444
- constructor(chainId) {
445
- if (!isMatic(chainId)) throw new Error('Not matic');
446
- super(chainId, 18, 'MATIC', 'Polygon Matic');
447
- }
325
+ equals(other) {
326
+ return other.isNative && other.chainId === this.chainId;
327
+ }
328
+ get wrapped() {
329
+ if (!isMatic(this.chainId))
330
+ throw new Error('Not matic');
331
+ const nativeCurrency = WRAPPED_NATIVE_CURRENCY[this.chainId];
332
+ if (nativeCurrency) {
333
+ return nativeCurrency;
334
+ }
335
+ throw new Error(`Does not support this chain ${this.chainId}`);
336
+ }
337
+ constructor(chainId) {
338
+ if (!isMatic(chainId))
339
+ throw new Error('Not matic');
340
+ super(chainId, 18, 'MATIC', 'Polygon Matic');
341
+ }
448
342
  }
449
343
  function isCelo(chainId) {
450
- return chainId === ChainId.CELO_ALFAJORES || chainId === ChainId.CELO;
344
+ return chainId === ChainId.CELO_ALFAJORES || chainId === ChainId.CELO;
451
345
  }
452
346
  class CeloNativeCurrency extends NativeCurrency {
453
- equals(other) {
454
- return other.isNative && other.chainId === this.chainId;
455
- }
456
- get wrapped() {
457
- if (!isCelo(this.chainId)) throw new Error('Not celo');
458
- const nativeCurrency = WRAPPED_NATIVE_CURRENCY[this.chainId];
459
- if (nativeCurrency) {
460
- return nativeCurrency;
461
- }
462
- throw new Error(`Does not support this chain ${this.chainId}`);
463
- }
464
- constructor(chainId) {
465
- if (!isCelo(chainId)) throw new Error('Not celo');
466
- super(chainId, 18, 'CELO', 'Celo');
467
- }
347
+ equals(other) {
348
+ return other.isNative && other.chainId === this.chainId;
349
+ }
350
+ get wrapped() {
351
+ if (!isCelo(this.chainId))
352
+ throw new Error('Not celo');
353
+ const nativeCurrency = WRAPPED_NATIVE_CURRENCY[this.chainId];
354
+ if (nativeCurrency) {
355
+ return nativeCurrency;
356
+ }
357
+ throw new Error(`Does not support this chain ${this.chainId}`);
358
+ }
359
+ constructor(chainId) {
360
+ if (!isCelo(chainId))
361
+ throw new Error('Not celo');
362
+ super(chainId, 18, 'CELO', 'Celo');
363
+ }
468
364
  }
469
365
  function isGnosis(chainId) {
470
- return chainId === ChainId.GNOSIS;
366
+ return chainId === ChainId.GNOSIS;
471
367
  }
472
368
  class GnosisNativeCurrency extends NativeCurrency {
473
- equals(other) {
474
- return other.isNative && other.chainId === this.chainId;
475
- }
476
- get wrapped() {
477
- if (!isGnosis(this.chainId)) throw new Error('Not gnosis');
478
- const nativeCurrency = WRAPPED_NATIVE_CURRENCY[this.chainId];
479
- if (nativeCurrency) {
480
- return nativeCurrency;
481
- }
482
- throw new Error(`Does not support this chain ${this.chainId}`);
483
- }
484
- constructor(chainId) {
485
- if (!isGnosis(chainId)) throw new Error('Not gnosis');
486
- super(chainId, 18, 'XDAI', 'xDai');
487
- }
369
+ equals(other) {
370
+ return other.isNative && other.chainId === this.chainId;
371
+ }
372
+ get wrapped() {
373
+ if (!isGnosis(this.chainId))
374
+ throw new Error('Not gnosis');
375
+ const nativeCurrency = WRAPPED_NATIVE_CURRENCY[this.chainId];
376
+ if (nativeCurrency) {
377
+ return nativeCurrency;
378
+ }
379
+ throw new Error(`Does not support this chain ${this.chainId}`);
380
+ }
381
+ constructor(chainId) {
382
+ if (!isGnosis(chainId))
383
+ throw new Error('Not gnosis');
384
+ super(chainId, 18, 'XDAI', 'xDai');
385
+ }
488
386
  }
489
387
  function isBnb(chainId) {
490
- return chainId === ChainId.BNB;
388
+ return chainId === ChainId.BNB;
491
389
  }
492
390
  class BnbNativeCurrency extends NativeCurrency {
493
- equals(other) {
494
- return other.isNative && other.chainId === this.chainId;
495
- }
496
- get wrapped() {
497
- if (!isBnb(this.chainId)) throw new Error('Not bnb');
498
- const nativeCurrency = WRAPPED_NATIVE_CURRENCY[this.chainId];
499
- if (nativeCurrency) {
500
- return nativeCurrency;
501
- }
502
- throw new Error(`Does not support this chain ${this.chainId}`);
503
- }
504
- constructor(chainId) {
505
- if (!isBnb(chainId)) throw new Error('Not bnb');
506
- super(chainId, 18, 'BNB', 'BNB');
507
- }
391
+ equals(other) {
392
+ return other.isNative && other.chainId === this.chainId;
393
+ }
394
+ get wrapped() {
395
+ if (!isBnb(this.chainId))
396
+ throw new Error('Not bnb');
397
+ const nativeCurrency = WRAPPED_NATIVE_CURRENCY[this.chainId];
398
+ if (nativeCurrency) {
399
+ return nativeCurrency;
400
+ }
401
+ throw new Error(`Does not support this chain ${this.chainId}`);
402
+ }
403
+ constructor(chainId) {
404
+ if (!isBnb(chainId))
405
+ throw new Error('Not bnb');
406
+ super(chainId, 18, 'BNB', 'BNB');
407
+ }
508
408
  }
509
409
  function isMoonbeam(chainId) {
510
- return chainId === ChainId.MOONBEAM;
410
+ return chainId === ChainId.MOONBEAM;
511
411
  }
512
412
  class MoonbeamNativeCurrency extends NativeCurrency {
513
- equals(other) {
514
- return other.isNative && other.chainId === this.chainId;
515
- }
516
- get wrapped() {
517
- if (!isMoonbeam(this.chainId)) throw new Error('Not moonbeam');
518
- const nativeCurrency = WRAPPED_NATIVE_CURRENCY[this.chainId];
519
- if (nativeCurrency) {
520
- return nativeCurrency;
521
- }
522
- throw new Error(`Does not support this chain ${this.chainId}`);
523
- }
524
- constructor(chainId) {
525
- if (!isMoonbeam(chainId)) throw new Error('Not moonbeam');
526
- super(chainId, 18, 'GLMR', 'Glimmer');
527
- }
413
+ equals(other) {
414
+ return other.isNative && other.chainId === this.chainId;
415
+ }
416
+ get wrapped() {
417
+ if (!isMoonbeam(this.chainId))
418
+ throw new Error('Not moonbeam');
419
+ const nativeCurrency = WRAPPED_NATIVE_CURRENCY[this.chainId];
420
+ if (nativeCurrency) {
421
+ return nativeCurrency;
422
+ }
423
+ throw new Error(`Does not support this chain ${this.chainId}`);
424
+ }
425
+ constructor(chainId) {
426
+ if (!isMoonbeam(chainId))
427
+ throw new Error('Not moonbeam');
428
+ super(chainId, 18, 'GLMR', 'Glimmer');
429
+ }
528
430
  }
529
431
  function isAvax(chainId) {
530
- return chainId === ChainId.AVALANCHE;
432
+ return chainId === ChainId.AVALANCHE;
531
433
  }
532
434
  class AvalancheNativeCurrency extends NativeCurrency {
533
- equals(other) {
534
- return other.isNative && other.chainId === this.chainId;
535
- }
536
- get wrapped() {
537
- if (!isAvax(this.chainId)) throw new Error('Not avalanche');
538
- const nativeCurrency = WRAPPED_NATIVE_CURRENCY[this.chainId];
539
- if (nativeCurrency) {
540
- return nativeCurrency;
541
- }
542
- throw new Error(`Does not support this chain ${this.chainId}`);
543
- }
544
- constructor(chainId) {
545
- if (!isAvax(chainId)) throw new Error('Not avalanche');
546
- super(chainId, 18, 'AVAX', 'Avalanche');
547
- }
435
+ equals(other) {
436
+ return other.isNative && other.chainId === this.chainId;
437
+ }
438
+ get wrapped() {
439
+ if (!isAvax(this.chainId))
440
+ throw new Error('Not avalanche');
441
+ const nativeCurrency = WRAPPED_NATIVE_CURRENCY[this.chainId];
442
+ if (nativeCurrency) {
443
+ return nativeCurrency;
444
+ }
445
+ throw new Error(`Does not support this chain ${this.chainId}`);
446
+ }
447
+ constructor(chainId) {
448
+ if (!isAvax(chainId))
449
+ throw new Error('Not avalanche');
450
+ super(chainId, 18, 'AVAX', 'Avalanche');
451
+ }
548
452
  }
549
453
  function isUomi(chainId) {
550
- return chainId === ChainId.UOMI;
454
+ return chainId === ChainId.UOMI;
551
455
  }
552
456
  class UomiNativeCurrency extends NativeCurrency {
553
- equals(other) {
554
- return other.isNative && other.chainId === this.chainId;
555
- }
556
- get wrapped() {
557
- if (!isUomi(this.chainId)) throw new Error('Not uomi');
558
- const nativeCurrency = WRAPPED_NATIVE_CURRENCY[this.chainId];
559
- if (nativeCurrency) {
560
- return nativeCurrency;
561
- }
562
- throw new Error(`Does not support this chain ${this.chainId}`);
563
- }
564
- constructor(chainId) {
565
- if (!isUomi(chainId)) throw new Error('Not uomi');
566
- super(chainId, 18, 'UOMI', 'Uomi');
567
- }
457
+ equals(other) {
458
+ return other.isNative && other.chainId === this.chainId;
459
+ }
460
+ get wrapped() {
461
+ if (!isUomi(this.chainId))
462
+ throw new Error('Not uomi');
463
+ const nativeCurrency = WRAPPED_NATIVE_CURRENCY[this.chainId];
464
+ if (nativeCurrency) {
465
+ return nativeCurrency;
466
+ }
467
+ throw new Error(`Does not support this chain ${this.chainId}`);
468
+ }
469
+ constructor(chainId) {
470
+ if (!isUomi(chainId))
471
+ throw new Error('Not uomi');
472
+ super(chainId, 18, 'UOMI', 'Uomi');
473
+ }
474
+ }
475
+ function isIrys(chainId) {
476
+ return chainId === ChainId.IRYS;
477
+ }
478
+ class IrysNativeCurrency extends NativeCurrency {
479
+ equals(other) {
480
+ return other.isNative && other.chainId === this.chainId;
481
+ }
482
+ get wrapped() {
483
+ if (!isIrys(this.chainId))
484
+ throw new Error('Not irys');
485
+ const nativeCurrency = WRAPPED_NATIVE_CURRENCY[this.chainId];
486
+ if (nativeCurrency) {
487
+ return nativeCurrency;
488
+ }
489
+ throw new Error(`Does not support this chain ${this.chainId}`);
490
+ }
491
+ constructor(chainId) {
492
+ if (!isIrys(chainId))
493
+ throw new Error('Not irys');
494
+ super(chainId, 18, 'IRYS', 'Irys');
495
+ }
496
+ }
497
+ function isHelios(chainId) {
498
+ return chainId === ChainId.HELIOS;
499
+ }
500
+ class HeliosNativeCurrency extends NativeCurrency {
501
+ equals(other) {
502
+ return other.isNative && other.chainId === this.chainId;
503
+ }
504
+ get wrapped() {
505
+ if (!isHelios(this.chainId))
506
+ throw new Error('Not helios');
507
+ const nativeCurrency = WRAPPED_NATIVE_CURRENCY[this.chainId];
508
+ if (nativeCurrency) {
509
+ return nativeCurrency;
510
+ }
511
+ throw new Error(`Does not support this chain ${this.chainId}`);
512
+ }
513
+ constructor(chainId) {
514
+ if (!isHelios(chainId))
515
+ throw new Error('Not helios');
516
+ super(chainId, 18, 'HELIOS', 'Helios');
517
+ }
568
518
  }
569
519
  export class ExtendedEther extends Ether {
570
- get wrapped() {
571
- if (this.chainId in WRAPPED_NATIVE_CURRENCY) {
572
- return WRAPPED_NATIVE_CURRENCY[this.chainId];
573
- }
574
- throw new Error('Unsupported chain ID');
575
- }
576
- static onChain(chainId) {
577
- var _a;
578
- return (_a = this._cachedExtendedEther[chainId]) !== null && _a !== void 0
579
- ? _a
580
- : (this._cachedExtendedEther[chainId] = new ExtendedEther(chainId));
581
- }
520
+ get wrapped() {
521
+ if (this.chainId in WRAPPED_NATIVE_CURRENCY) {
522
+ return WRAPPED_NATIVE_CURRENCY[this.chainId];
523
+ }
524
+ throw new Error('Unsupported chain ID');
525
+ }
526
+ static onChain(chainId) {
527
+ var _a;
528
+ return ((_a = this._cachedExtendedEther[chainId]) !== null && _a !== void 0 ? _a : (this._cachedExtendedEther[chainId] = new ExtendedEther(chainId)));
529
+ }
582
530
  }
583
531
  ExtendedEther._cachedExtendedEther = {};
584
532
  const cachedNativeCurrency = {};
585
533
  export function nativeOnChain(chainId) {
586
- if (cachedNativeCurrency[chainId] != undefined) {
534
+ if (cachedNativeCurrency[chainId] != undefined) {
535
+ return cachedNativeCurrency[chainId];
536
+ }
537
+ if (isMatic(chainId)) {
538
+ cachedNativeCurrency[chainId] = new MaticNativeCurrency(chainId);
539
+ }
540
+ else if (isCelo(chainId)) {
541
+ cachedNativeCurrency[chainId] = new CeloNativeCurrency(chainId);
542
+ }
543
+ else if (isGnosis(chainId)) {
544
+ cachedNativeCurrency[chainId] = new GnosisNativeCurrency(chainId);
545
+ }
546
+ else if (isMoonbeam(chainId)) {
547
+ cachedNativeCurrency[chainId] = new MoonbeamNativeCurrency(chainId);
548
+ }
549
+ else if (isBnb(chainId)) {
550
+ cachedNativeCurrency[chainId] = new BnbNativeCurrency(chainId);
551
+ }
552
+ else if (isAvax(chainId)) {
553
+ cachedNativeCurrency[chainId] = new AvalancheNativeCurrency(chainId);
554
+ }
555
+ else if (isUomi(chainId)) {
556
+ cachedNativeCurrency[chainId] = new UomiNativeCurrency(chainId);
557
+ }
558
+ else if (isIrys(chainId)) {
559
+ cachedNativeCurrency[chainId] = new IrysNativeCurrency(chainId);
560
+ }
561
+ else if (isHelios(chainId)) {
562
+ cachedNativeCurrency[chainId] = new HeliosNativeCurrency(chainId);
563
+ }
564
+ else {
565
+ cachedNativeCurrency[chainId] = ExtendedEther.onChain(chainId);
566
+ }
587
567
  return cachedNativeCurrency[chainId];
588
- }
589
- if (isMatic(chainId)) {
590
- cachedNativeCurrency[chainId] = new MaticNativeCurrency(chainId);
591
- } else if (isCelo(chainId)) {
592
- cachedNativeCurrency[chainId] = new CeloNativeCurrency(chainId);
593
- } else if (isGnosis(chainId)) {
594
- cachedNativeCurrency[chainId] = new GnosisNativeCurrency(chainId);
595
- } else if (isMoonbeam(chainId)) {
596
- cachedNativeCurrency[chainId] = new MoonbeamNativeCurrency(chainId);
597
- } else if (isBnb(chainId)) {
598
- cachedNativeCurrency[chainId] = new BnbNativeCurrency(chainId);
599
- } else if (isAvax(chainId)) {
600
- cachedNativeCurrency[chainId] = new AvalancheNativeCurrency(chainId);
601
- } else if (isUomi(chainId)) {
602
- cachedNativeCurrency[chainId] = new UomiNativeCurrency(chainId);
603
- } else {
604
- cachedNativeCurrency[chainId] = ExtendedEther.onChain(chainId);
605
- }
606
- return cachedNativeCurrency[chainId];
607
568
  }
608
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWwvY2hhaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxPQUFPLEVBRVAsS0FBSyxFQUNMLGNBQWMsRUFDZCxLQUFLLEdBQ04sTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBYztJQUN6QyxPQUFPLENBQUMsT0FBTztJQUNmLE9BQU8sQ0FBQyxRQUFRO0lBQ2hCLE9BQU8sQ0FBQyxlQUFlO0lBQ3ZCLE9BQU8sQ0FBQyxZQUFZO0lBQ3BCLE9BQU8sQ0FBQyxlQUFlO0lBQ3ZCLE9BQU8sQ0FBQyxPQUFPO0lBQ2YsT0FBTyxDQUFDLGNBQWM7SUFDdEIsT0FBTyxDQUFDLE1BQU07SUFDZCxPQUFPLENBQUMsT0FBTztJQUNmLE9BQU8sQ0FBQyxjQUFjO0lBQ3RCLE9BQU8sQ0FBQyxJQUFJO0lBQ1osT0FBTyxDQUFDLEdBQUc7SUFDWCxPQUFPLENBQUMsU0FBUztJQUNqQixPQUFPLENBQUMsSUFBSTtJQUNaLE9BQU8sQ0FBQyxJQUFJO0lBQ1osNERBQTREO0NBQzdELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRS9FLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixPQUFPLENBQUMsUUFBUTtJQUNoQixPQUFPLENBQUMsZUFBZTtJQUN2QixPQUFPLENBQUMsWUFBWTtJQUNwQixPQUFPLENBQUMsZUFBZTtJQUN2QixPQUFPLENBQUMsSUFBSTtJQUNaLE9BQU8sQ0FBQyxXQUFXO0NBQ3BCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQ0FBb0MsR0FBRztJQUNsRCxPQUFPLENBQUMsT0FBTztJQUNmLE9BQU8sQ0FBQyxNQUFNO0lBQ2QsT0FBTyxD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
569
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWwvY2hhaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxPQUFPLEVBRVAsS0FBSyxFQUNMLGNBQWMsRUFDZCxLQUFLLEdBQ04sTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBYztJQUN6QyxPQUFPLENBQUMsT0FBTztJQUNmLE9BQU8sQ0FBQyxRQUFRO0lBQ2hCLE9BQU8sQ0FBQyxlQUFlO0lBQ3ZCLE9BQU8sQ0FBQyxZQUFZO0lBQ3BCLE9BQU8sQ0FBQyxlQUFlO0lBQ3ZCLE9BQU8sQ0FBQyxPQUFPO0lBQ2YsT0FBTyxDQUFDLGNBQWM7SUFDdEIsT0FBTyxDQUFDLE1BQU07SUFDZCxPQUFPLENBQUMsT0FBTztJQUNmLE9BQU8sQ0FBQyxjQUFjO0lBQ3RCLE9BQU8sQ0FBQyxJQUFJO0lBQ1osT0FBTyxDQUFDLEdBQUc7SUFDWCxPQUFPLENBQUMsU0FBUztJQUNqQixPQUFPLENBQUMsSUFBSTtJQUNaLE9BQU8sQ0FBQyxJQUFJO0lBQ1osT0FBTyxDQUFDLElBQUk7SUFDWixPQUFPLENBQUMsTUFBTTtJQUNkLDREQUE0RDtDQUM3RCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUUvRSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIsT0FBTyxDQUFDLFFBQVE7SUFDaEIsT0FBTyxDQUFDLGVBQWU7SUFDdkIsT0FBTyxDQUFDLFlBQVk7SUFDcEIsT0FBTyxDQUFDLGVBQWU7SUFDdkIsT0FBTyxDQUFDLElBQUk7SUFDWixPQUFPLENBQUMsV0FBVztDQUNwQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQUc7SUFDbEQsT0FBTyxD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