@instadapp/avocado-base 0.0.0-dev.422bdd3 → 0.0.0-dev.424dd71

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/utils/network.ts CHANGED
@@ -1,30 +1,20 @@
1
1
  import { ethers } from "ethers";
2
+ import {
3
+ AVO_PROD_CHAIN_NAME,
4
+ AVO_PROD_CHAIN_ID,
5
+ AVO_PROD_RPC_URL,
6
+ AVO_PROD_EXPLORER_URL,
7
+ AVO_STAGING_CHAIN_NAME,
8
+ AVO_STAGING_CHAIN_ID,
9
+ AVO_STAGING_RPC_URL,
10
+ AVO_STAGING_EXPLORER_URL,
11
+ } from "./avocado";
2
12
 
3
- export const bridgeDisabledNetworks = [1101];
13
+ export const bridgeDisabledNetworks = [];
14
+
15
+ export const networksSimulationNotSupported = [1313161554, 1101];
4
16
 
5
17
  export const networks: Network[] = [
6
- {
7
- name: "Ethereum",
8
- debankName: "eth",
9
- ankrName: "eth",
10
- zerionName: "ethereum",
11
- chainId: 1,
12
- explorerUrl: "https://etherscan.io",
13
- color: "#5D5FEF",
14
- get serverRpcUrl() {
15
- return process.env?.MAINNET_RPC_URL || this.params.rpcUrls[0];
16
- },
17
- balanceResolverAddress: "0x5b7D61b389D12e1f5873d0cCEe7E675915AB5F43",
18
- usdcAddress: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
19
- params: {
20
- rpcUrls: ["https://rpc.ankr.com/eth"],
21
- nativeCurrency: {
22
- name: "Ethereum",
23
- symbol: "ETH",
24
- decimals: 18,
25
- },
26
- },
27
- },
28
18
  {
29
19
  name: "Polygon",
30
20
  debankName: "matic",
@@ -35,6 +25,9 @@ export const networks: Network[] = [
35
25
  balanceResolverAddress: "0x58632D23120b20650262b8A629a14e4F4043E0D9",
36
26
  usdcAddress: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
37
27
  explorerUrl: "https://polygonscan.com",
28
+ apiURL: "https://api.polygonscan.com",
29
+ fakeTransactionHash:
30
+ "0x906c551abd5873a428505b6530ac14d91367820706c7ee525f6d7313265d1c92",
38
31
  get serverRpcUrl() {
39
32
  return process.env?.POLYGON_RPC_URL || this.params.rpcUrls[0];
40
33
  },
@@ -57,7 +50,10 @@ export const networks: Network[] = [
57
50
  chainId: 42161,
58
51
  usdcAddress: "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8",
59
52
  balanceResolverAddress: "0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2",
53
+ fakeTransactionHash:
54
+ "0x9fa291c3b09d31f19b1fa5dd05f30169d1364036d5f7c14b026410bc07bd8843",
60
55
  explorerUrl: "https://arbiscan.io",
56
+ apiURL: "https://api.arbiscan.io",
61
57
  get serverRpcUrl() {
62
58
  return process.env?.ARBITRUM_RPC_URL || this.params.rpcUrls[0];
63
59
  },
@@ -71,6 +67,55 @@ export const networks: Network[] = [
71
67
  rpcUrls: ["https://arb1.arbitrum.io/rpc"],
72
68
  },
73
69
  },
70
+ {
71
+ name: "Ethereum",
72
+ debankName: "eth",
73
+ ankrName: "eth",
74
+ zerionName: "ethereum",
75
+ chainId: 1,
76
+ explorerUrl: "https://etherscan.io",
77
+ fakeTransactionHash:
78
+ "0x13232dd32cef2f641ead890a507710c96560c8c9c3d5fab6facb5ec563c49433",
79
+ apiURL: "https://api.etherscan.io",
80
+ color: "#5D5FEF",
81
+ get serverRpcUrl() {
82
+ return process.env?.MAINNET_RPC_URL || this.params.rpcUrls[0];
83
+ },
84
+ balanceResolverAddress: "0x5b7D61b389D12e1f5873d0cCEe7E675915AB5F43",
85
+ usdcAddress: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
86
+ params: {
87
+ rpcUrls: ["https://rpc.ankr.com/eth"],
88
+ nativeCurrency: {
89
+ name: "Ethereum",
90
+ symbol: "ETH",
91
+ decimals: 18,
92
+ },
93
+ },
94
+ },
95
+ {
96
+ name: "Base",
97
+ chainId: 8453,
98
+ color: "#1E2024",
99
+ ankrName: "base",
100
+ explorerUrl: "https://basescan.org",
101
+ fakeTransactionHash:
102
+ "0xf7833d80da33730c4fc5d4c64151f0eaa64c0c0535be022af0228a44cc4e9c8e",
103
+ apiURL: "https://api.basescan.org",
104
+ get serverRpcUrl() {
105
+ return process.env?.BASE_RPC_URL || this.params.rpcUrls[0];
106
+ },
107
+ usdcAddress: "0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA",
108
+ balanceResolverAddress: "0x23c8EAb8a4373dD16b0947Ebe8bf76Ff7A49d13C",
109
+ params: {
110
+ rpcUrls: ["https://rpc.ankr.com/base"],
111
+ chainName: "Base",
112
+ nativeCurrency: {
113
+ name: "Ethereum",
114
+ symbol: "ETH",
115
+ decimals: 18,
116
+ },
117
+ },
118
+ },
74
119
  {
75
120
  name: "Optimism",
76
121
  debankName: "op",
@@ -78,8 +123,11 @@ export const networks: Network[] = [
78
123
  zerionName: "optimism",
79
124
  color: "#FF0420",
80
125
  chainId: 10,
126
+ apiURL: "https://api-optimistic.etherscan.io",
81
127
  usdcAddress: "0x7f5c764cbc14f9669b88837ca1490cca17c31607",
82
128
  balanceResolverAddress: "0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2",
129
+ fakeTransactionHash:
130
+ "0xee7311d68059732b05088f2144dfec6c7a4f5fd0433eb85306afcd6bdf17cebc",
83
131
  explorerUrl: "https://optimistic.etherscan.io",
84
132
  get serverRpcUrl() {
85
133
  return process.env?.OPTIMISM_RPC_URL || this.params.rpcUrls[0];
@@ -95,26 +143,27 @@ export const networks: Network[] = [
95
143
  },
96
144
  },
97
145
  {
98
- name: "Avalanche",
99
- debankName: "avax",
100
- ankrName: "avalanche",
101
- zerionName: "avalanche",
102
- color: "#EB5757",
103
- chainId: 43114,
104
- usdcAddress: "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e",
105
- balanceResolverAddress: "0x63009f31D054E0ac9F321Cf0D642375236A4Bf1E",
106
- explorerUrl: "https://snowtrace.io",
146
+ name: "Polygon zkEVM",
147
+ chainId: 1101,
148
+ color: "#8544f6",
149
+ ankrName: "polygon_zkevm",
150
+ explorerUrl: "https://zkevm.polygonscan.com",
151
+ apiURL: "https://api-zkevm.polygonscan.com",
152
+ balanceResolverAddress: "0x48D1Fa5Ee6691a1E0B45d2B515650997BEA27a01",
153
+ fakeTransactionHash:
154
+ "0x1077130463ade91ad4e9c43c3195298e26a99970975238128912490eea12bf41",
155
+ usdcAddress: "0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035",
107
156
  get serverRpcUrl() {
108
- return process.env?.AVALANCHE_RPC_URL || this.params.rpcUrls[0];
157
+ return process.env?.POLYGON_ZKEVM_RPC_URL || this.params.rpcUrls[0];
109
158
  },
110
159
  params: {
111
- chainName: "Avalanche Network",
160
+ chainName: "polygon zkEVM",
161
+ rpcUrls: ["https://zkevm-rpc.com"],
112
162
  nativeCurrency: {
113
- name: "Avalanche",
114
- symbol: "AVAX",
163
+ name: "Ethereum",
164
+ symbol: "ETH",
115
165
  decimals: 18,
116
166
  },
117
- rpcUrls: ["https://rpc.ankr.com/avalanche"],
118
167
  },
119
168
  },
120
169
  {
@@ -125,6 +174,9 @@ export const networks: Network[] = [
125
174
  color: "#F3BA2F",
126
175
  chainId: 56,
127
176
  explorerUrl: "https://bscscan.com",
177
+ fakeTransactionHash:
178
+ "0x897d54bf8e492f840bd4d8f1e743bfcab8226ab4d5a899e47ee433dcd6d6abf7",
179
+ apiURL: "https://api.bscscan.com",
128
180
  usdcAddress: "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",
129
181
  balanceResolverAddress: "0xb808cff38706e267067b0af427726aa099f69f89",
130
182
  get serverRpcUrl() {
@@ -140,14 +192,68 @@ export const networks: Network[] = [
140
192
  },
141
193
  },
142
194
  },
195
+ {
196
+ name: "Avalanche",
197
+ debankName: "avax",
198
+ ankrName: "avalanche",
199
+ zerionName: "avalanche",
200
+ color: "#EB5757",
201
+ chainId: 43114,
202
+ usdcAddress: "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e",
203
+ balanceResolverAddress: "0x63009f31D054E0ac9F321Cf0D642375236A4Bf1E",
204
+ explorerUrl: "https://snowtrace.io",
205
+ fakeTransactionHash:
206
+ "0x233aac7402558dd4e23f938a50f983e67f5c9604233981c7ac74e63737b8294e",
207
+ apiURL: "https://api.snowtrace.io",
208
+ get serverRpcUrl() {
209
+ return process.env?.AVALANCHE_RPC_URL || this.params.rpcUrls[0];
210
+ },
211
+ params: {
212
+ chainName: "Avalanche Network",
213
+ nativeCurrency: {
214
+ name: "Avalanche",
215
+ symbol: "AVAX",
216
+ decimals: 18,
217
+ },
218
+ rpcUrls: ["https://rpc.ankr.com/avalanche"],
219
+ },
220
+ },
221
+ {
222
+ name: "Fantom",
223
+ chainId: 250,
224
+ zerionName: "fantom",
225
+ explorerUrl: "https://ftmscan.com",
226
+ ankrName: "fantom",
227
+ color: "#1969ff",
228
+ get serverRpcUrl() {
229
+ return process.env?.FANTOM_RPC_URL || this.params.rpcUrls[0];
230
+ },
231
+ usdcAddress: "0x04068da6c83afcfa0e13ba15a6696662335d5b75",
232
+ balanceResolverAddress: "0x929376c77a2fb8152375a089a4fccf84ff481479",
233
+ fakeTransactionHash:
234
+ "0x1e9a8405d660172314124e06896212c0786d7fb1550b89410d4bc87e9e8054e4",
235
+ params: {
236
+ rpcUrls: ["https://rpc.ankr.com/fantom"],
237
+ chainName: "Fantom",
238
+ nativeCurrency: {
239
+ name: "Fantom",
240
+ symbol: "FTM",
241
+ decimals: 18,
242
+ },
243
+ },
244
+ },
143
245
  {
144
246
  name: "Gnosis",
145
247
  debankName: "xdai",
146
248
  zerionName: "xdai",
147
249
  color: "#04795C",
250
+ ankrName: "gnosis",
148
251
  chainId: 100,
149
252
  balanceResolverAddress: "0xfaa244e276b1597f663975ed007ee4ff70d27849",
150
253
  explorerUrl: "https://gnosisscan.io",
254
+ fakeTransactionHash:
255
+ "0x1513033806310a2c3b29f2276f8aa7388461b0ef9f8499c297e68c12187c179b",
256
+ apiURL: "https://api.gnosisscan.io",
151
257
  usdcAddress: "0xddafbb505ad214d7b80b1f830fccc89b60fb7a83",
152
258
  get serverRpcUrl() {
153
259
  return process.env?.GNOSIS_RPC_URL || this.params.rpcUrls[0];
@@ -162,32 +268,14 @@ export const networks: Network[] = [
162
268
  },
163
269
  },
164
270
  },
165
- {
166
- name: "Polygon zkEVM",
167
- chainId: 1101,
168
- color: "#8544f6",
169
- explorerUrl: "https://zkevm.polygonscan.com",
170
- balanceResolverAddress: "0x48D1Fa5Ee6691a1E0B45d2B515650997BEA27a01",
171
- usdcAddress: "0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035",
172
- get serverRpcUrl() {
173
- return process.env?.POLYGON_ZKEVM_RPC_URL || this.params.rpcUrls[0];
174
- },
175
- params: {
176
- chainName: "polygon zkEVM",
177
- rpcUrls: ["https://zkevm-rpc.com"],
178
- nativeCurrency: {
179
- name: "Ethereum",
180
- symbol: "ETH",
181
- decimals: 18,
182
- },
183
- },
184
- },
185
271
  {
186
272
  name: "Aurora",
187
273
  chainId: 1313161554,
188
274
  zerionName: "aurora",
189
275
  color: "#78d64b",
190
276
  explorerUrl: "https://explorer.mainnet.aurora.dev",
277
+ fakeTransactionHash:
278
+ "0x0923401c5a80c39a5cd57c098a6c4729edbefd0db6894def7d349493f4ff3ec6",
191
279
  get serverRpcUrl() {
192
280
  return process.env?.AURORA_RPC_URL || this.params.rpcUrls[0];
193
281
  },
@@ -204,52 +292,74 @@ export const networks: Network[] = [
204
292
  },
205
293
  },
206
294
  {
207
- name: "Fantom",
208
- chainId: 250,
209
- zerionName: "fantom",
210
- explorerUrl: "https://ftmscan.com",
211
- ankrName: "fantom",
212
- color: "#1969ff",
295
+ name: "Fuse",
296
+ chainId: 122,
297
+ zerionName: "fuse",
298
+ color: "#78d64b",
299
+ explorerUrl: "https://explorer.fuse.io",
300
+ fakeTransactionHash:
301
+ "0xf22a8031de9b978a57c728e18c6b54633356c39db4d0466e53b9b7c3ee7f8def",
213
302
  get serverRpcUrl() {
214
- return process.env?.FANTOM_RPC_URL || this.params.rpcUrls[0];
303
+ return process.env?.FUSE_RPC_URL || this.params.rpcUrls[0];
215
304
  },
216
- usdcAddress: "0x04068da6c83afcfa0e13ba15a6696662335d5b75",
217
- balanceResolverAddress: "0x929376c77a2fb8152375a089a4fccf84ff481479",
305
+ usdcAddress: "",
306
+ balanceResolverAddress: "0xdF19Da523DA64bBE82eE0E4DFf00d676A8386474",
218
307
  params: {
219
- rpcUrls: ["https://rpc.ankr.com/fantom"],
220
- chainName: "Fantom",
308
+ rpcUrls: ["https://fuse-mainnet.chainstacklabs.com"],
309
+ chainName: "Fuse",
221
310
  nativeCurrency: {
222
- name: "Fantom",
223
- symbol: "FTM",
224
311
  decimals: 18,
312
+ name: "Fuse",
313
+ symbol: "fuse",
225
314
  },
226
315
  },
227
316
  },
228
- {
229
- name: 'Base',
230
- chainId: 8453,
231
- color: '#1E2024',
232
- explorerUrl: 'https://basescan.org',
317
+ {
318
+ name: "Scroll",
319
+ chainId: 534352,
320
+ color: "#78d64b",
321
+ explorerUrl: "https://scrollscan.com",
322
+ fakeTransactionHash:
323
+ "0x6bf297c414264fc8cddd47224632b4426a02138df2f50fe891eca87f6aefea01",
233
324
  get serverRpcUrl() {
234
- return process.env?.BASE_RPC_URL || this.params.rpcUrls[0];
235
- },
236
- usdcAddress: '0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA',
237
- balanceResolverAddress: '0x23c8EAb8a4373dD16b0947Ebe8bf76Ff7A49d13C',
238
- params: {
239
- rpcUrls: ['https://rpc.ankr.com/base'],
240
- chainName: "Base",
325
+ return process.env?.SCROLL_RPC_URL || this.params.rpcUrls[0];
326
+ },
327
+ params: {
328
+ rpcUrls: ["https://rpc.scroll.io"],
329
+ chainName: "Scroll",
241
330
  nativeCurrency: {
242
331
  name: "Ethereum",
243
332
  symbol: "ETH",
244
333
  decimals: 18,
245
334
  },
246
- }
335
+ },
336
+ },
337
+ {
338
+ name: "opBNB",
339
+ chainId: 204,
340
+ color: "#78d64b",
341
+ explorerUrl: "https://opbnbscan.com",
342
+ fakeTransactionHash:
343
+ "0xb9438a3eae61442bc7d419d79930370ce09ac0f46e0695025751e3bfe1a931e7",
344
+ get serverRpcUrl() {
345
+ return process.env?.OPBNB_RPC_URL || this.params.rpcUrls[0];
346
+ },
347
+ params: {
348
+ rpcUrls: ["https://opbnb-mainnet-rpc.bnbchain.org"],
349
+ chainName: "opBNB",
350
+ nativeCurrency: {
351
+ name: "BNB",
352
+ symbol: "BNB",
353
+ decimals: 18,
354
+ },
355
+ },
247
356
  },
248
357
  {
249
358
  name: AVO_PROD_CHAIN_NAME,
250
359
  chainId: AVO_PROD_CHAIN_ID,
251
360
  isAvocado: true,
252
361
  balanceResolverAddress: "",
362
+ fakeTransactionHash: "",
253
363
  color: "#16A34A",
254
364
  usdcAddress: "",
255
365
  serverRpcUrl: AVO_PROD_RPC_URL,
@@ -271,6 +381,7 @@ export const networks: Network[] = [
271
381
  serverRpcUrl: AVO_STAGING_RPC_URL,
272
382
  color: "#16A34A",
273
383
  explorerUrl: AVO_STAGING_EXPLORER_URL,
384
+ fakeTransactionHash: "",
274
385
  isAvocado: true,
275
386
  balanceResolverAddress: "",
276
387
  usdcAddress: "",
@@ -288,19 +399,23 @@ export const networks: Network[] = [
288
399
  ];
289
400
 
290
401
  export const chainUsdcAddresses = [
291
- { chainId: 1, address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48' },
292
- { chainId: 10, address: '0x7f5c764cbc14f9669b88837ca1490cca17c31607' },
293
- { chainId: 56, address: '0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d' },
294
- { chainId: 100, address: '0xddafbb505ad214d7b80b1f830fccc89b60fb7a83' },
295
- { chainId: 137, address: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174' },
296
- { chainId: 250, address: '0x04068da6c83afcfa0e13ba15a6696662335d5b75' },
297
- { chainId: 42161, address: '0xff970a61a04b1ca14834a43f5de4533ebddb5cc8' },
298
- { chainId: 42161, address: '0xaf88d065e77c8cc2239327c5edb3a432268e5831' },
299
- { chainId: 43114, address: '0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e' },
300
- { chainId: 43114, address: '0xa7d7079b0fead91f3e65f86e8915cb59c1a4c664' },
301
- { chainId: 1101, address: '0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035' },
302
- { chainId: 1313161554, address: '0xB12BFcA5A55806AaF64E99521918A4bf0fC40802' },
303
- { chainId: 8453, address: '0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA'}
402
+ { chainId: 1, address: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" },
403
+ { chainId: 10, address: "0x7f5c764cbc14f9669b88837ca1490cca17c31607" },
404
+ { chainId: 56, address: "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d" },
405
+ { chainId: 100, address: "0xddafbb505ad214d7b80b1f830fccc89b60fb7a83" },
406
+ { chainId: 137, address: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174" },
407
+ { chainId: 137, address: "0x3c499c542cef5e3811e1192ce70d8cc03d5c3359" },
408
+ { chainId: 250, address: "0x04068da6c83afcfa0e13ba15a6696662335d5b75" },
409
+ { chainId: 42161, address: "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8" },
410
+ { chainId: 42161, address: "0xaf88d065e77c8cc2239327c5edb3a432268e5831" },
411
+ { chainId: 43114, address: "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e" },
412
+ { chainId: 43114, address: "0xa7d7079b0fead91f3e65f86e8915cb59c1a4c664" },
413
+ { chainId: 1101, address: "0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035" },
414
+ {
415
+ chainId: 1313161554,
416
+ address: "0xB12BFcA5A55806AaF64E99521918A4bf0fC40802",
417
+ },
418
+ { chainId: 8453, address: "0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA" },
304
419
  ];
305
420
 
306
421
  export const getNetworkByChainId = (
@@ -315,12 +430,16 @@ export const availableNetworks = networks.filter(
315
430
 
316
431
  export const chainIdToName = (chainId: ChainId | number | string) => {
317
432
  const network = getNetworkByChainId(chainId);
318
- return network.name;
433
+ return network?.name;
319
434
  };
320
435
 
321
436
  export const getRpcURLByChainId = (chainId: ChainId | number | string) => {
322
- const network = getNetworkByChainId(chainId);
323
- return network.params.rpcUrls[0];
437
+ try {
438
+ const network = getNetworkByChainId(chainId);
439
+ return network.params.rpcUrls[0];
440
+ } catch (e) {
441
+ return "";
442
+ }
324
443
  };
325
444
 
326
445
  export const RPCMap = networks.reduce((acc, network) => {
@@ -362,5 +481,6 @@ export const getExplorerUrl = (
362
481
  suffix: `/${string}` = "/"
363
482
  ) => {
364
483
  const network = getNetworkByChainId(chainId);
484
+ if (!network) return "";
365
485
  return `${network.explorerUrl}${suffix}`;
366
486
  };
package/utils/utils.d.ts CHANGED
@@ -12,8 +12,11 @@ declare global {
12
12
  | 634
13
13
  | 1313161554
14
14
  | 8453
15
+ | 122
16
+ | 534352
17
+ | 204
15
18
  | 63400;
16
-
19
+
17
20
  type ISlackMessageType = "danger" | "error" | "success" | "banner";
18
21
 
19
22
  type MetadataTypes = keyof typeof MetadataEnums;
@@ -32,8 +35,10 @@ declare global {
32
35
  isAvocado?: boolean;
33
36
  serverRpcUrl: string | undefined;
34
37
  balanceResolverAddress?: string;
35
- usdcAddress: string;
38
+ usdcAddress?: string;
36
39
  explorerUrl: string;
40
+ fakeTransactionHash: string;
41
+ apiURL?: string;
37
42
  params: {
38
43
  chainName?: string;
39
44
  iconUrls?: string[];
@@ -109,7 +114,7 @@ declare global {
109
114
  };
110
115
 
111
116
  type MetadataProps = {
112
- type: MetadataTypes,
117
+ type: MetadataTypes;
113
118
  encodedData: string;
114
119
  version?: string;
115
120
  };
@@ -125,8 +130,6 @@ declare global {
125
130
  coingecko_id: string;
126
131
  sparkline_price_7d: number[];
127
132
  }
128
-
129
133
  }
130
134
 
131
- export { }
132
-
135
+ export {};