@paraswap/dex-lib 4.2.3-2 → 4.2.3-3

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.
@@ -0,0 +1,540 @@
1
+ [
2
+ {
3
+ "inputs": [
4
+ {
5
+ "components": [
6
+ { "internalType": "address", "name": "xyz", "type": "address" },
7
+ { "internalType": "address", "name": "weth", "type": "address" },
8
+ {
9
+ "internalType": "address",
10
+ "name": "bridgeStaking",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "uint256",
15
+ "name": "destChainId",
16
+ "type": "uint256"
17
+ }
18
+ ],
19
+ "internalType": "struct IMiroMigrator.BridgeConfig[]",
20
+ "name": "_bridgeConfigs",
21
+ "type": "tuple[]"
22
+ },
23
+ { "internalType": "address", "name": "sePSP1", "type": "address" },
24
+ { "internalType": "address", "name": "sePSP2", "type": "address" },
25
+ { "internalType": "address", "name": "seXYZ", "type": "address" },
26
+ {
27
+ "internalType": "contract IAcrossSpokePool",
28
+ "name": "spokePool",
29
+ "type": "address"
30
+ }
31
+ ],
32
+ "stateMutability": "nonpayable",
33
+ "type": "constructor"
34
+ },
35
+ { "inputs": [], "name": "EnforcedPause", "type": "error" },
36
+ { "inputs": [], "name": "ExpectedPause", "type": "error" },
37
+ { "inputs": [], "name": "InsufficientMsgValue", "type": "error" },
38
+ { "inputs": [], "name": "InvalidDestinationChainId", "type": "error" },
39
+ {
40
+ "inputs": [
41
+ { "internalType": "address", "name": "owner", "type": "address" }
42
+ ],
43
+ "name": "OwnableInvalidOwner",
44
+ "type": "error"
45
+ },
46
+ {
47
+ "inputs": [
48
+ { "internalType": "address", "name": "account", "type": "address" }
49
+ ],
50
+ "name": "OwnableUnauthorizedAccount",
51
+ "type": "error"
52
+ },
53
+ {
54
+ "anonymous": false,
55
+ "inputs": [
56
+ {
57
+ "indexed": true,
58
+ "internalType": "address",
59
+ "name": "user",
60
+ "type": "address"
61
+ },
62
+ {
63
+ "indexed": true,
64
+ "internalType": "uint256",
65
+ "name": "amount",
66
+ "type": "uint256"
67
+ }
68
+ ],
69
+ "name": "Migrated",
70
+ "type": "event"
71
+ },
72
+ {
73
+ "anonymous": false,
74
+ "inputs": [
75
+ {
76
+ "indexed": true,
77
+ "internalType": "address",
78
+ "name": "previousOwner",
79
+ "type": "address"
80
+ },
81
+ {
82
+ "indexed": true,
83
+ "internalType": "address",
84
+ "name": "newOwner",
85
+ "type": "address"
86
+ }
87
+ ],
88
+ "name": "OwnershipTransferred",
89
+ "type": "event"
90
+ },
91
+ {
92
+ "anonymous": false,
93
+ "inputs": [
94
+ {
95
+ "indexed": false,
96
+ "internalType": "address",
97
+ "name": "account",
98
+ "type": "address"
99
+ }
100
+ ],
101
+ "name": "Paused",
102
+ "type": "event"
103
+ },
104
+ {
105
+ "anonymous": false,
106
+ "inputs": [
107
+ {
108
+ "indexed": true,
109
+ "internalType": "address",
110
+ "name": "user",
111
+ "type": "address"
112
+ },
113
+ {
114
+ "indexed": true,
115
+ "internalType": "uint256",
116
+ "name": "xyzAmount",
117
+ "type": "uint256"
118
+ },
119
+ {
120
+ "indexed": true,
121
+ "internalType": "uint256",
122
+ "name": "wethAmount",
123
+ "type": "uint256"
124
+ },
125
+ {
126
+ "indexed": false,
127
+ "internalType": "uint256",
128
+ "name": "destChainId",
129
+ "type": "uint256"
130
+ },
131
+ {
132
+ "indexed": false,
133
+ "internalType": "bytes",
134
+ "name": "message",
135
+ "type": "bytes"
136
+ }
137
+ ],
138
+ "name": "StakeBridgingInitiated",
139
+ "type": "event"
140
+ },
141
+ {
142
+ "anonymous": false,
143
+ "inputs": [
144
+ {
145
+ "indexed": false,
146
+ "internalType": "address",
147
+ "name": "account",
148
+ "type": "address"
149
+ }
150
+ ],
151
+ "name": "Unpaused",
152
+ "type": "event"
153
+ },
154
+ {
155
+ "inputs": [],
156
+ "name": "BURN_ADDR",
157
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
158
+ "stateMutability": "view",
159
+ "type": "function"
160
+ },
161
+ {
162
+ "inputs": [],
163
+ "name": "PSP",
164
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
165
+ "stateMutability": "view",
166
+ "type": "function"
167
+ },
168
+ {
169
+ "inputs": [],
170
+ "name": "SE_PSP1",
171
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
172
+ "stateMutability": "view",
173
+ "type": "function"
174
+ },
175
+ {
176
+ "inputs": [],
177
+ "name": "SE_PSP2",
178
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
179
+ "stateMutability": "view",
180
+ "type": "function"
181
+ },
182
+ {
183
+ "inputs": [],
184
+ "name": "SE_XYZ",
185
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
186
+ "stateMutability": "view",
187
+ "type": "function"
188
+ },
189
+ {
190
+ "inputs": [],
191
+ "name": "SPOKE_POOL",
192
+ "outputs": [
193
+ {
194
+ "internalType": "contract IAcrossSpokePool",
195
+ "name": "",
196
+ "type": "address"
197
+ }
198
+ ],
199
+ "stateMutability": "view",
200
+ "type": "function"
201
+ },
202
+ {
203
+ "inputs": [],
204
+ "name": "WETH",
205
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
206
+ "stateMutability": "view",
207
+ "type": "function"
208
+ },
209
+ {
210
+ "inputs": [],
211
+ "name": "XYZ",
212
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
213
+ "stateMutability": "view",
214
+ "type": "function"
215
+ },
216
+ {
217
+ "inputs": [
218
+ { "internalType": "uint256", "name": "chainId", "type": "uint256" }
219
+ ],
220
+ "name": "bridgeConfigs",
221
+ "outputs": [
222
+ { "internalType": "address", "name": "xyz", "type": "address" },
223
+ { "internalType": "address", "name": "weth", "type": "address" },
224
+ { "internalType": "address", "name": "bridgeStaking", "type": "address" },
225
+ { "internalType": "uint256", "name": "destChainId", "type": "uint256" }
226
+ ],
227
+ "stateMutability": "view",
228
+ "type": "function"
229
+ },
230
+ {
231
+ "inputs": [
232
+ { "internalType": "uint256", "name": "xyzAmount", "type": "uint256" },
233
+ { "internalType": "uint256", "name": "wethAmount", "type": "uint256" },
234
+ { "internalType": "uint256", "name": "destChainId", "type": "uint256" },
235
+ {
236
+ "internalType": "uint256",
237
+ "name": "minDestBptAmount",
238
+ "type": "uint256"
239
+ },
240
+ { "internalType": "address", "name": "beneficiary", "type": "address" },
241
+ {
242
+ "components": [
243
+ {
244
+ "internalType": "uint256",
245
+ "name": "relayerFee",
246
+ "type": "uint256"
247
+ },
248
+ {
249
+ "internalType": "address",
250
+ "name": "exclusiveRelayer",
251
+ "type": "address"
252
+ },
253
+ {
254
+ "internalType": "uint32",
255
+ "name": "quoteTimestamp",
256
+ "type": "uint32"
257
+ },
258
+ {
259
+ "internalType": "uint32",
260
+ "name": "fillDeadline",
261
+ "type": "uint32"
262
+ },
263
+ {
264
+ "internalType": "uint32",
265
+ "name": "exclusivityDeadline",
266
+ "type": "uint32"
267
+ }
268
+ ],
269
+ "internalType": "struct IMiroMigrator.BridgeData",
270
+ "name": "xyzBridgeData",
271
+ "type": "tuple"
272
+ },
273
+ {
274
+ "components": [
275
+ {
276
+ "internalType": "uint256",
277
+ "name": "relayerFee",
278
+ "type": "uint256"
279
+ },
280
+ {
281
+ "internalType": "address",
282
+ "name": "exclusiveRelayer",
283
+ "type": "address"
284
+ },
285
+ {
286
+ "internalType": "uint32",
287
+ "name": "quoteTimestamp",
288
+ "type": "uint32"
289
+ },
290
+ {
291
+ "internalType": "uint32",
292
+ "name": "fillDeadline",
293
+ "type": "uint32"
294
+ },
295
+ {
296
+ "internalType": "uint32",
297
+ "name": "exclusivityDeadline",
298
+ "type": "uint32"
299
+ }
300
+ ],
301
+ "internalType": "struct IMiroMigrator.BridgeData",
302
+ "name": "wethBridgeData",
303
+ "type": "tuple"
304
+ },
305
+ { "internalType": "bytes", "name": "permitData", "type": "bytes" }
306
+ ],
307
+ "name": "bridgeXYZAndStake",
308
+ "outputs": [],
309
+ "stateMutability": "payable",
310
+ "type": "function"
311
+ },
312
+ {
313
+ "inputs": [
314
+ { "internalType": "uint256", "name": "pspAmount", "type": "uint256" },
315
+ { "internalType": "uint256", "name": "wethAmount", "type": "uint256" },
316
+ { "internalType": "uint256", "name": "minBptOut", "type": "uint256" },
317
+ { "internalType": "bytes", "name": "permitData", "type": "bytes" }
318
+ ],
319
+ "name": "migratePSPtoSeXYZ",
320
+ "outputs": [],
321
+ "stateMutability": "payable",
322
+ "type": "function"
323
+ },
324
+ {
325
+ "inputs": [
326
+ { "internalType": "uint256", "name": "pspAmount", "type": "uint256" },
327
+ { "internalType": "bytes", "name": "permitData", "type": "bytes" }
328
+ ],
329
+ "name": "migratePSPtoXYZ",
330
+ "outputs": [],
331
+ "stateMutability": "nonpayable",
332
+ "type": "function"
333
+ },
334
+ {
335
+ "inputs": [
336
+ { "internalType": "uint256", "name": "sePSP1Amount", "type": "uint256" },
337
+ { "internalType": "uint256", "name": "wethAmount", "type": "uint256" },
338
+ { "internalType": "uint256", "name": "minBptOut", "type": "uint256" },
339
+ { "internalType": "bytes", "name": "permitData", "type": "bytes" }
340
+ ],
341
+ "name": "migrateSePSP1toSeXYZ",
342
+ "outputs": [],
343
+ "stateMutability": "payable",
344
+ "type": "function"
345
+ },
346
+ {
347
+ "inputs": [
348
+ { "internalType": "uint256", "name": "sePSP1Amount", "type": "uint256" },
349
+ { "internalType": "bytes", "name": "permitData", "type": "bytes" }
350
+ ],
351
+ "name": "migrateSePSP1toXYZ",
352
+ "outputs": [],
353
+ "stateMutability": "nonpayable",
354
+ "type": "function"
355
+ },
356
+ {
357
+ "inputs": [
358
+ { "internalType": "uint256", "name": "sePSP2Amount", "type": "uint256" },
359
+ { "internalType": "uint256", "name": "minPspAmount", "type": "uint256" },
360
+ { "internalType": "uint256", "name": "minWethAmount", "type": "uint256" },
361
+ { "internalType": "uint256", "name": "minBptOut", "type": "uint256" },
362
+ { "internalType": "bytes", "name": "permitData", "type": "bytes" }
363
+ ],
364
+ "name": "migrateSePSP2toSeXYZ",
365
+ "outputs": [],
366
+ "stateMutability": "nonpayable",
367
+ "type": "function"
368
+ },
369
+ {
370
+ "inputs": [
371
+ { "internalType": "uint256", "name": "sePSP2Amount", "type": "uint256" },
372
+ { "internalType": "uint256", "name": "minPspAmount", "type": "uint256" },
373
+ { "internalType": "uint256", "name": "minWethAmount", "type": "uint256" },
374
+ { "internalType": "uint256", "name": "destChainId", "type": "uint256" },
375
+ {
376
+ "internalType": "uint256",
377
+ "name": "minDestBptAmount",
378
+ "type": "uint256"
379
+ },
380
+ { "internalType": "address", "name": "beneficiary", "type": "address" },
381
+ {
382
+ "components": [
383
+ {
384
+ "internalType": "uint256",
385
+ "name": "relayerFee",
386
+ "type": "uint256"
387
+ },
388
+ {
389
+ "internalType": "address",
390
+ "name": "exclusiveRelayer",
391
+ "type": "address"
392
+ },
393
+ {
394
+ "internalType": "uint32",
395
+ "name": "quoteTimestamp",
396
+ "type": "uint32"
397
+ },
398
+ {
399
+ "internalType": "uint32",
400
+ "name": "fillDeadline",
401
+ "type": "uint32"
402
+ },
403
+ {
404
+ "internalType": "uint32",
405
+ "name": "exclusivityDeadline",
406
+ "type": "uint32"
407
+ }
408
+ ],
409
+ "internalType": "struct IMiroMigrator.BridgeData",
410
+ "name": "xyzBridgeData",
411
+ "type": "tuple"
412
+ },
413
+ {
414
+ "components": [
415
+ {
416
+ "internalType": "uint256",
417
+ "name": "relayerFee",
418
+ "type": "uint256"
419
+ },
420
+ {
421
+ "internalType": "address",
422
+ "name": "exclusiveRelayer",
423
+ "type": "address"
424
+ },
425
+ {
426
+ "internalType": "uint32",
427
+ "name": "quoteTimestamp",
428
+ "type": "uint32"
429
+ },
430
+ {
431
+ "internalType": "uint32",
432
+ "name": "fillDeadline",
433
+ "type": "uint32"
434
+ },
435
+ {
436
+ "internalType": "uint32",
437
+ "name": "exclusivityDeadline",
438
+ "type": "uint32"
439
+ }
440
+ ],
441
+ "internalType": "struct IMiroMigrator.BridgeData",
442
+ "name": "wethBridgeData",
443
+ "type": "tuple"
444
+ },
445
+ { "internalType": "bytes", "name": "permitData", "type": "bytes" }
446
+ ],
447
+ "name": "migrateSePSP2toSeXYZAndBridge",
448
+ "outputs": [],
449
+ "stateMutability": "nonpayable",
450
+ "type": "function"
451
+ },
452
+ {
453
+ "inputs": [],
454
+ "name": "owner",
455
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
456
+ "stateMutability": "view",
457
+ "type": "function"
458
+ },
459
+ {
460
+ "inputs": [],
461
+ "name": "pause",
462
+ "outputs": [],
463
+ "stateMutability": "nonpayable",
464
+ "type": "function"
465
+ },
466
+ {
467
+ "inputs": [],
468
+ "name": "paused",
469
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
470
+ "stateMutability": "view",
471
+ "type": "function"
472
+ },
473
+ {
474
+ "inputs": [
475
+ { "internalType": "address", "name": "token", "type": "address" },
476
+ { "internalType": "address", "name": "to", "type": "address" }
477
+ ],
478
+ "name": "reClaimERC20",
479
+ "outputs": [],
480
+ "stateMutability": "nonpayable",
481
+ "type": "function"
482
+ },
483
+ {
484
+ "inputs": [{ "internalType": "address", "name": "to", "type": "address" }],
485
+ "name": "reClaimETH",
486
+ "outputs": [],
487
+ "stateMutability": "nonpayable",
488
+ "type": "function"
489
+ },
490
+ {
491
+ "inputs": [],
492
+ "name": "renounceOwnership",
493
+ "outputs": [],
494
+ "stateMutability": "nonpayable",
495
+ "type": "function"
496
+ },
497
+ {
498
+ "inputs": [
499
+ {
500
+ "components": [
501
+ { "internalType": "address", "name": "xyz", "type": "address" },
502
+ { "internalType": "address", "name": "weth", "type": "address" },
503
+ {
504
+ "internalType": "address",
505
+ "name": "bridgeStaking",
506
+ "type": "address"
507
+ },
508
+ {
509
+ "internalType": "uint256",
510
+ "name": "destChainId",
511
+ "type": "uint256"
512
+ }
513
+ ],
514
+ "internalType": "struct IMiroMigrator.BridgeConfig[]",
515
+ "name": "_bridgeConfigs",
516
+ "type": "tuple[]"
517
+ }
518
+ ],
519
+ "name": "setBridgeConfigs",
520
+ "outputs": [],
521
+ "stateMutability": "nonpayable",
522
+ "type": "function"
523
+ },
524
+ {
525
+ "inputs": [
526
+ { "internalType": "address", "name": "newOwner", "type": "address" }
527
+ ],
528
+ "name": "transferOwnership",
529
+ "outputs": [],
530
+ "stateMutability": "nonpayable",
531
+ "type": "function"
532
+ },
533
+ {
534
+ "inputs": [],
535
+ "name": "unpause",
536
+ "outputs": [],
537
+ "stateMutability": "nonpayable",
538
+ "type": "function"
539
+ }
540
+ ]
@@ -44,4 +44,5 @@ export declare class MaverickV1 extends SimpleExchange implements IDex<MaverickV
44
44
  getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: MaverickV1Data, side: SwapSide): Promise<SimpleExchangeParam>;
45
45
  private _querySubgraph;
46
46
  getTopPoolsForToken(tokenAddress: Address, limit: number): Promise<PoolLiquidity[]>;
47
+ private _getPoolBalances;
47
48
  }
@@ -50,6 +50,8 @@ const subgraph_queries_1 = require("./subgraph-queries");
50
50
  const constants_2 = require("../../constants");
51
51
  const router_json_1 = __importDefault(require("../../abi/maverick-v1/router.json"));
52
52
  const utils_2 = require("../../executor/utils");
53
+ const utils_3 = require("ethers/lib/utils");
54
+ const decoders_1 = require("../../lib/decoders");
53
55
  const MAX_POOL_CNT = 1000;
54
56
  const EFFICIENCY_FACTOR = 3;
55
57
  class MaverickV1 extends simple_exchange_1.SimpleExchange {
@@ -354,7 +356,7 @@ class MaverickV1 extends simple_exchange_1.SimpleExchange {
354
356
  decimals: parseInt(pool.tokenB.decimals),
355
357
  },
356
358
  ],
357
- liquidityUSD: parseFloat(pool.balanceUSD) * EFFICIENCY_FACTOR,
359
+ liquidityUSD: parseFloat(pool.balanceUSD),
358
360
  }));
359
361
  const pools1 = lodash_1.default.map(res.pools1, pool => ({
360
362
  exchange: this.dexKey,
@@ -365,10 +367,84 @@ class MaverickV1 extends simple_exchange_1.SimpleExchange {
365
367
  decimals: parseInt(pool.tokenA.decimals),
366
368
  },
367
369
  ],
368
- liquidityUSD: parseFloat(pool.balanceUSD) * EFFICIENCY_FACTOR,
370
+ liquidityUSD: parseFloat(pool.balanceUSD),
369
371
  }));
370
- const pools = lodash_1.default.slice(lodash_1.default.sortBy(lodash_1.default.concat(pools0, pools1), [pool => -1 * pool.liquidityUSD]), 0, limit);
371
- return pools;
372
+ const allPools = pools0.concat(pools1);
373
+ const tokenDecimals = allPools.reduce((a, c) => ({
374
+ ...a,
375
+ [c.connectorTokens[0].address]: c.connectorTokens[0].decimals,
376
+ }), {});
377
+ const tokenDecimal = res.pools0?.[0]?.tokenA?.decimals ?? res.pools1?.[0]?.tokenB?.decimals;
378
+ tokenDecimals[_tokenAddress] = parseInt(tokenDecimal);
379
+ // just to optimize in case same tokens are used in multiple pools
380
+ const normalizedUsdPrices = await Promise.all(Object.keys(tokenDecimals).map(t => this.dexHelper.getTokenUSDPrice({
381
+ address: t,
382
+ decimals: tokenDecimals[t],
383
+ }, BigInt(1 * 10 ** tokenDecimals[t]))));
384
+ const usdPrices = Object.fromEntries(Object.keys(tokenDecimals).map((t, i) => [t, normalizedUsdPrices[i]]));
385
+ const poolBalances = await this._getPoolBalances(allPools.map(p => [
386
+ p.address,
387
+ tokenAddress,
388
+ p.connectorTokens[0].address,
389
+ ]));
390
+ const pools = allPools.map((pool, i) => {
391
+ const _connectorTokenAddress = pool.connectorTokens[0].address;
392
+ const tokenBalance = poolBalances[i][0];
393
+ const connectorTokenBalance = poolBalances[i][1];
394
+ const tokenUsdPrice = usdPrices[_tokenAddress];
395
+ const connectorTokenUsdPrice = usdPrices[_connectorTokenAddress];
396
+ // by default use liquidityUSD from subgraph
397
+ let tokenUsdLiquidity = pool.liquidityUSD / 2;
398
+ if (tokenBalance && tokenUsdPrice && tokenDecimals[_tokenAddress]) {
399
+ const amount = (0, utils_3.formatUnits)(tokenBalance, tokenDecimals[_tokenAddress]);
400
+ tokenUsdLiquidity = Number(amount) * tokenUsdPrice * EFFICIENCY_FACTOR;
401
+ }
402
+ // by default use liquidityUSD from subgraph
403
+ let connectorTokenUsdLiquidity = pool.liquidityUSD / 2;
404
+ if (connectorTokenBalance &&
405
+ connectorTokenUsdPrice &&
406
+ tokenDecimals[_connectorTokenAddress]) {
407
+ const amount = (0, utils_3.formatUnits)(connectorTokenBalance, tokenDecimals[_connectorTokenAddress]);
408
+ connectorTokenUsdLiquidity =
409
+ Number(amount) * connectorTokenUsdPrice * EFFICIENCY_FACTOR;
410
+ }
411
+ return {
412
+ ...pool,
413
+ liquidityUSD: tokenUsdLiquidity + connectorTokenUsdLiquidity,
414
+ };
415
+ });
416
+ return pools.slice(0, limit);
417
+ }
418
+ async _getPoolBalances(pools) {
419
+ const callData = pools
420
+ .map(pool => [
421
+ {
422
+ target: pool[1],
423
+ callData: this.erc20Interface.encodeFunctionData('balanceOf', [
424
+ pool[0],
425
+ ]),
426
+ decodeFunction: decoders_1.uint256ToBigInt,
427
+ },
428
+ {
429
+ target: pool[2],
430
+ callData: this.erc20Interface.encodeFunctionData('balanceOf', [
431
+ pool[0],
432
+ ]),
433
+ decodeFunction: decoders_1.uint256ToBigInt,
434
+ },
435
+ ])
436
+ .flat();
437
+ const balanceOfCalls = await this.dexHelper.multiWrapper.tryAggregate(false, callData);
438
+ const balances = [];
439
+ for (let i = 0; i < balanceOfCalls.length; i += 2) {
440
+ const balanceToken0 = balanceOfCalls[i];
441
+ const balanceToken1 = balanceOfCalls[i + 1];
442
+ balances.push([
443
+ balanceToken0.success ? balanceToken0.returnData : null,
444
+ balanceToken1.success ? balanceToken1.returnData : null,
445
+ ]);
446
+ }
447
+ return balances;
372
448
  }
373
449
  }
374
450
  exports.MaverickV1 = MaverickV1;
@@ -1 +1 @@
1
- {"version":3,"file":"maverick-v1.js","sourceRoot":"","sources":["../../../src/dex/maverick-v1/maverick-v1.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA+C;AAC/C,oDAAuB;AAYvB,+CAAoD;AACpD,uCAA4E;AAG5E,2EAA6D;AAC7D,mCAKiB;AACjB,wDAG4B;AAC5B,qCAMkB;AAClB,yDAAyD;AACzD,yDAG4B;AAC5B,+CAAmD;AACnD,oFAA0D;AAE1D,gDAAmE;AAEnE,MAAM,YAAY,GAAG,IAAI,CAAC;AAE1B,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAa,UACX,SAAQ,gCAAc;IAiBV;IAEA;IACA;IACD;IACC;IACA;IApBZ,KAAK,GAA2C,EAAE,CAAC;IAE1C,wBAAwB,GAAY,KAAK,CAAC;IAC1C,4BAA4B,GAAG,KAAK,CAAC;IACrC,cAAc,GAAG,IAAI,CAAC;IAExB,MAAM,CAAC,kBAAkB,GAC9B,IAAA,6BAAqB,EAAC,yBAAgB,CAAC,CAAC;IAE1C,MAAM,CAAS;IAEf,aAAa,CAAS;IAEtB,YACY,OAAgB,EAC1B,MAAc,EACJ,SAAqB,EACrB,WAAW,iBAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,uEAAuE;IAC5G,cAAc,IAAI,eAAS,CAAC,qBAAS,CAAC,EACrC,SAAS,yBAAgB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAC1C,cAAsB,yBAAgB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;SAC9D,WAAW;QAEd,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QATf,YAAO,GAAP,OAAO,CAAS;QAEhB,cAAS,GAAT,SAAS,CAAY;QACrB,aAAQ,GAAR,QAAQ,CAA0B;QACnC,gBAAW,GAAX,WAAW,CAA2B;QACrC,WAAM,GAAN,MAAM,CAAoC;QAC1C,gBAAW,GAAX,WAAW,CACP;QAGd,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,aAAa;YAChB,yBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,WAAmB;QACvC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAEjD,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAS,EAAE,EAAE;YAC5B,MAAM,SAAS,GAAG,IAAI,sCAAmB,CACvC,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,SAAS,EACd;gBACE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;gBAC1B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;aAC/B,EACD;gBACE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;gBAC1B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;aAC/B,EACD,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,EAAE,EACP,yBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,oBAAoB,EAChE,IAAI,CAAC,MAAM,CACZ,CAAC;YACF,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAChE,IAAI,WAAW,EAAE,CAAC;gBAChB,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;gBAC9C,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,eAAe,CACzC,SAAS,EACT,SAAS,CAAC,mBAAmB,EAC7B,WAAW,CACZ,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;QAC5C,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,oDAAoD;IACpD,2DAA2D;IAC3D,oDAAoD;IACpD,0BAA0B;IAC1B,KAAK,CAAC,iBAAiB,CAAC,WAAmB;QACzC,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;IAED,yDAAyD;IACzD,wDAAwD;IACxD,WAAW,CAAC,IAAc;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,YAAY,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,sBAAsB,CAC9D,CAAC;QACF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,aAAa,CAC7D,IAAI,CAAC,WAAW,EAChB,EAAE,KAAK,EAAE,gCAAa,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAC5D,EAAE,OAAO,EAAE,4BAAgB,EAAE,CAC9B,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,oDAAoD;IACpD,mDAAmD;IACnD,yCAAyC;IACzC,+CAA+C;IAC/C,KAAK,CAAC,kBAAkB,CACtB,QAAe,EACf,SAAgB,EAChB,IAAc,EACd,WAAmB;QAEnB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrD,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEpD,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;YAC5D,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC5C,OAAO,KAAK,CAAC,GAAG,CACd,CAAC,IAAS,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAC9D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAe,EAAE,SAAgB;QAC9C,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAyB,EAAE,EAAE;YACpE,OAAO,CACL,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE;gBAClE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE;oBAC/B,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBACpC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE;oBAClE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CACxE,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mEAAmE;IACnE,kBAAkB,CAChB,UAAsC;QAEtC,MAAM,OAAO,GAAG,iBAAiB,CAAC,cAAc,CAAC;QAEjD,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAChD,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;YACrC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;gBACZ,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;YACvB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;IAED,mCAAmC;IACnC,oDAAoD;IACpD,kDAAkD;IAClD,yBAAyB;IACzB,KAAK,CAAC,eAAe,CACnB,QAAe,EACf,SAAgB,EAChB,OAAiB,EACjB,IAAc,EACd,WAAmB,EACnB,UAAqB;QAErB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACrD,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAEpD,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC5D,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAE/C,MAAM,YAAY,GAAG,UAAU;gBAC7B,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CACrB,UAAU,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CACpE;gBACH,CAAC,CAAC,QAAQ,CAAC;YACb,IAAI,CAAC,YAAY,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAEtC,MAAM,UAAU,GAAG,IAAA,oBAAY,EAC7B,IAAI,IAAI,oBAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CACnD,CAAC;YAEF,OAAO,CACL,MAAM,OAAO,CAAC,GAAG,CACf,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,IAAyB,EAAE,EAAE;gBACnD,IAAI,CAAC;oBACH,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;oBACvC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;wBACnB,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;wBAC9C,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;oBACpC,CAAC;oBACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;wBACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,gCAAgC,IAAI,CAAC,OAAO,EAAE,CAC/C,CAAC;wBACF,OAAO,IAAI,CAAC;oBACd,CAAC;oBAED,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CACtB,UAAU,EACV,IAAI,EACJ,EAAE,EACF,IAAI,IAAI,oBAAQ,CAAC,GAAG,CACrB,CAAC;oBACF,mDAAmD;oBACnD,IAAI,UAAU,GAAG,EAAE,CAAC;oBACpB,IAAI,QAAQ,GAAuB,MAAM,OAAO,CAAC,GAAG,CAClD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;wBACnB,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;4BAClB,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;wBACjB,CAAC;wBACD,8EAA8E;wBAC9E,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;4BACtB,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;wBACjB,CAAC;wBACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CACtB,MAAM,EACN,IAAI,EACJ,EAAE,EACF,IAAI,IAAI,oBAAQ,CAAC,GAAG,CACrB,CAAC;wBACF,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACvB,OAAO,MAAM,CAAC;oBAChB,CAAC,CAAC,CACH,CAAC;oBAEF,IAAI,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrC,IAAI,QAAQ,GAAa,QAAQ,CAAC,GAAG,CACnC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAmB,EAAE,EAAE;wBAC3B,IAAI,CAAC,IAAI,EAAE;4BAAE,OAAO,CAAC,CAAC;wBACtB,4FAA4F;wBAC5F,OAAO,CACL,6BAAoB;4BACpB,CAAC,6BAAoB,GAAG,6BAAoB,CAAC,GAAG,CAAC,CAClD,CAAC;oBACJ,CAAC,CACF,CAAC;oBACF,OAAO;wBACL,MAAM,EAAE,MAAM;wBACd,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;wBAClB,IAAI,EAAE;4BACJ,GAAG,EAAE,IAAI,CAAC,GAAG;4BACb,QAAQ,EAAE,IAAI,CAAC,aAAa;4BAC5B,IAAI,EAAE,IAAI,CAAC,OAAO;4BAClB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;4BAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;4BAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;4BAC7B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;4BACvC,QAAQ,EAAE,IAAI,CAAC,QAAQ;yBACxB;wBACD,QAAQ,EAAE,IAAI,CAAC,MAAM;wBACrB,cAAc,EAAE,IAAI,CAAC,IAAI;wBACzB,OAAO,EAAE,QAAQ;wBACjB,aAAa,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;qBAC9B,CAAC;gBACJ,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,iCAAiC,IAAI,CAAC,OAAO,UAAU,IAAI,CAAC,OAAO,QAAQ,EAAE,CAAC,OAAO,EAAE,EACvF,CAAC,CACF,CAAC;oBACF,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC,CAAC,CACH,CACF,CAAC,MAAM,CAAC,gBAAQ,CAAC,CAAC;QACrB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,yBAAyB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,OAAO,KAC1D,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,OAChC,KAAK,IAAI,GAAG,EACZ,CAAC,CACF,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,qCAAqC;IACrC,mDAAmD;IACnD,eAAe,CACb,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAoB,EACpB,IAAc;QAEd,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAC3C;YACE,YAAY,EAAE;gBACZ,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,SAAS;aACpB;SACF,EACD;YACE,IAAI;YACJ,QAAQ,EAAE,IAAA,uDAAqC,GAAE,EAAE,+DAA+D;SACnH,CACF,CAAC;QAEF,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,aAAa;YAClC,OAAO;YACP,UAAU,EAAE,GAAG;SAChB,CAAC;IACJ,CAAC;IAED,WAAW,CACT,QAAiB,EACjB,SAAkB,EAClB,SAAyB,EACzB,UAA0B,EAC1B,SAAkB,EAClB,IAAoB,EACpB,IAAc;QAEd,MAAM,YAAY,GAChB,IAAI,KAAK,oBAAQ,CAAC,IAAI;YACpB,CAAC,CAAC,2BAAmB,CAAC,gBAAgB;YACtC,CAAC,CAAC,2BAAmB,CAAC,iBAAiB,CAAC;QAE5C,MAAM,kBAAkB,GACtB,IAAI,KAAK,oBAAQ,CAAC,IAAI;YACpB,CAAC,CAAC;gBACE,SAAS;gBACT,QAAQ,EAAE,IAAA,uDAAqC,GAAE;gBACjD,QAAQ,EAAE,SAAS;gBACnB,gBAAgB,EAAE,UAAU;gBAC5B,OAAO,EAAE,QAAQ;gBACjB,QAAQ,EAAE,SAAS;gBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,iBAAiB,EAAE,GAAG;aACvB;YACH,CAAC,CAAC;gBACE,SAAS;gBACT,QAAQ,EAAE,IAAA,uDAAqC,GAAE;gBACjD,SAAS,EAAE,UAAU;gBACrB,eAAe,EAAE,SAAS;gBAC1B,OAAO,EAAE,QAAQ;gBACjB,QAAQ,EAAE,SAAS;gBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,iBAAiB,EAAE,GAAG;aACvB,CAAC;QAER,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,YAAY,EAAE;YACrE,kBAAkB;SACnB,CAAC,CAAC;QAEH,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,mBAAmB,EAAE,IAAI;YACzB,YAAY;YACZ,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;YACzC,eAAe,EACb,IAAI,KAAK,oBAAQ,CAAC,IAAI;gBACpB,CAAC,CAAC,IAAA,mCAA2B,EACzB,IAAI,CAAC,WAAW,EAChB,2BAAmB,CAAC,gBAAgB,EACpC,WAAW,CACZ;gBACH,CAAC,CAAC,SAAS;SAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAoB,EACpB,IAAc;QAEd,MAAM,YAAY,GAChB,IAAI,KAAK,oBAAQ,CAAC,IAAI;YACpB,CAAC,CAAC,2BAAmB,CAAC,gBAAgB;YACtC,CAAC,CAAC,2BAAmB,CAAC,iBAAiB,CAAC;QAE5C,MAAM,kBAAkB,GACtB,IAAI,KAAK,oBAAQ,CAAC,IAAI;YACpB,CAAC,CAAC;gBACE,SAAS,EAAE,IAAI,CAAC,eAAe;gBAC/B,QAAQ,EAAE,IAAA,uDAAqC,GAAE;gBACjD,QAAQ,EAAE,SAAS;gBACnB,gBAAgB,EAAE,UAAU;gBAC5B,OAAO,EAAE,QAAQ;gBACjB,QAAQ,EAAE,SAAS;gBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,iBAAiB,EAAE,GAAG;aACvB;YACH,CAAC,CAAC;gBACE,SAAS,EAAE,IAAI,CAAC,eAAe;gBAC/B,QAAQ,EAAE,IAAA,uDAAqC,GAAE;gBACjD,SAAS,EAAE,UAAU;gBACrB,eAAe,EAAE,SAAS;gBAC1B,OAAO,EAAE,QAAQ;gBACjB,QAAQ,EAAE,SAAS;gBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,iBAAiB,EAAE,GAAG;aACvB,CAAC;QAER,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,YAAY,EAAE;YACjE,kBAAkB;SACnB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,qCAAqC,CAC/C,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,IAAI,CAAC,MAAM,CAAC,aAAa,CAC1B,CAAC;IACJ,CAAC;IAED,oBAAoB;IACZ,KAAK,CAAC,cAAc,CAC1B,KAAa,EACb,SAAiB,EACjB,OAAO,GAAG,KAAK;QAEf,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,aAAa,CACxD,IAAI,CAAC,WAAW,EAChB,EAAE,KAAK,EAAE,SAAS,EAAE,EACpB,EAAE,OAAO,EAAE,CACZ,CAAC;YACF,OAAO,GAAG,CAAC,IAAI,CAAC;QAClB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,4BAA4B,EAAE,CAAC,CAAC,CAAC;YACjE,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,KAAK,CAAC,mBAAmB,CACvB,YAAqB,EACrB,KAAa;QAEb,MAAM,aAAa,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QAEjD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,+CAA4B,EAAE;YAClE,KAAK,EAAE,aAAa;YACpB,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,SAAS,IAAI,CAAC,MAAM,uDAAuD,CAC5E,CAAC;YACF,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,MAAM,GAAG,gBAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YACxC,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE;YAC9B,eAAe,EAAE;gBACf;oBACE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE;oBACrC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;iBACzC;aACF;YACD,YAAY,EAAE,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,iBAAiB;SAC9D,CAAC,CAAC,CAAC;QAEJ,MAAM,MAAM,GAAG,gBAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YACxC,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE;YAC9B,eAAe,EAAE;gBACf;oBACE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE;oBACrC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;iBACzC;aACF;YACD,YAAY,EAAE,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,iBAAiB;SAC9D,CAAC,CAAC,CAAC;QAEJ,MAAM,KAAK,GAAG,gBAAC,CAAC,KAAK,CACnB,gBAAC,CAAC,MAAM,CAAC,gBAAC,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,EACpE,CAAC,EACD,KAAK,CACN,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;;AAteH,gCAueC"}
1
+ {"version":3,"file":"maverick-v1.js","sourceRoot":"","sources":["../../../src/dex/maverick-v1/maverick-v1.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { DexParams } from './types';
2
+ import { DexConfigMap } from '../../types';
3
+ export declare const MiroMigratorConfig: DexConfigMap<DexParams>;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MiroMigratorConfig = void 0;
4
+ const constants_1 = require("../../constants");
5
+ exports.MiroMigratorConfig = {
6
+ MiroMigrator: {
7
+ [constants_1.Network.OPTIMISM]: {
8
+ migratorAddress: '0x5032433fb65d7db8e8b90cb239d50fdfd941fb6b',
9
+ pspTokenAddress: '0x326aec8d7d99d1d6022c57c5f6194d2a7867227d',
10
+ xyzTokenAddress: '0xa2781111f824ca1cd98454b2c9722baefc898e99',
11
+ },
12
+ },
13
+ };
14
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/miro-migrator/config.ts"],"names":[],"mappings":";;;AAEA,+CAA0C;AAE7B,QAAA,kBAAkB,GAA4B;IACzD,YAAY,EAAE;QACZ,CAAC,mBAAO,CAAC,QAAQ,CAAC,EAAE;YAClB,eAAe,EAAE,4CAA4C;YAC7D,eAAe,EAAE,4CAA4C;YAC7D,eAAe,EAAE,4CAA4C;SAC9D;KACF;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const MIRO_MIGRATION_GAS_COST = 95000;
2
+ export declare const TRANSFER_TOPIC = "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef";
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TRANSFER_TOPIC = exports.MIRO_MIGRATION_GAS_COST = void 0;
4
+ exports.MIRO_MIGRATION_GAS_COST = 95_000;
5
+ exports.TRANSFER_TOPIC = '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef';
6
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/dex/miro-migrator/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,uBAAuB,GAAG,MAAM,CAAC;AAEjC,QAAA,cAAc,GACzB,oEAAoE,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { Interface } from '@ethersproject/abi';
2
+ import { DeepReadonly } from 'ts-essentials';
3
+ import { Log, Logger } from '../../types';
4
+ import { StatefulEventSubscriber } from '../../stateful-event-subscriber';
5
+ import { IDexHelper } from '../../dex-helper/idex-helper';
6
+ import { PoolState } from './types';
7
+ export declare class MiroMigratorEventPool extends StatefulEventSubscriber<PoolState> {
8
+ readonly parentName: string;
9
+ protected network: number;
10
+ protected dexHelper: IDexHelper;
11
+ protected migratorAddress: string;
12
+ protected xyzAddress: string;
13
+ protected transferTopic: string;
14
+ protected migratorInterface: Interface;
15
+ protected xyzInterface: Interface;
16
+ handlers: {
17
+ [event: string]: (event: any, state: DeepReadonly<PoolState>, log: Readonly<Log>) => DeepReadonly<PoolState> | null;
18
+ };
19
+ logDecoder: (log: Log) => any;
20
+ addressesSubscribed: string[];
21
+ constructor(parentName: string, network: number, dexHelper: IDexHelper, logger: Logger, migratorAddress: string, xyzAddress: string, transferTopic: string, migratorInterface?: Interface, xyzInterface?: Interface);
22
+ protected processLog(state: DeepReadonly<PoolState>, log: Readonly<Log>): Promise<DeepReadonly<PoolState> | null>;
23
+ generateState(blockNumber?: number | 'latest'): Promise<DeepReadonly<PoolState>>;
24
+ getOrGenerateState(blockNumber: number): Promise<PoolState>;
25
+ handleTransferTo(event: any, state: DeepReadonly<PoolState>, log: Readonly<Log>): Promise<DeepReadonly<PoolState>>;
26
+ handleTransferFrom(event: any, state: DeepReadonly<PoolState>, log: Readonly<Log>): Promise<DeepReadonly<PoolState>>;
27
+ }
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MiroMigratorEventPool = void 0;
7
+ const abi_1 = require("@ethersproject/abi");
8
+ const utils_1 = require("../../utils");
9
+ const stateful_event_subscriber_1 = require("../../stateful-event-subscriber");
10
+ const decoders_1 = require("../../lib/decoders");
11
+ const MiroMigrator_abi_json_1 = __importDefault(require("../../abi/miro-migrator/MiroMigrator.abi.json"));
12
+ const erc20_json_1 = __importDefault(require("../../abi/erc20.json"));
13
+ class MiroMigratorEventPool extends stateful_event_subscriber_1.StatefulEventSubscriber {
14
+ parentName;
15
+ network;
16
+ dexHelper;
17
+ migratorAddress;
18
+ xyzAddress;
19
+ transferTopic;
20
+ migratorInterface;
21
+ xyzInterface;
22
+ handlers = {};
23
+ logDecoder;
24
+ addressesSubscribed;
25
+ constructor(parentName, network, dexHelper, logger, migratorAddress, xyzAddress, transferTopic, migratorInterface = new abi_1.Interface(MiroMigrator_abi_json_1.default), xyzInterface = new abi_1.Interface(erc20_json_1.default)) {
26
+ super(parentName, 'state', dexHelper, logger);
27
+ this.parentName = parentName;
28
+ this.network = network;
29
+ this.dexHelper = dexHelper;
30
+ this.migratorAddress = migratorAddress;
31
+ this.xyzAddress = xyzAddress;
32
+ this.transferTopic = transferTopic;
33
+ this.migratorInterface = migratorInterface;
34
+ this.xyzInterface = xyzInterface;
35
+ this.logDecoder = (log) => this.xyzInterface.parseLog(log);
36
+ this.addressesSubscribed = [xyzAddress];
37
+ }
38
+ async processLog(state, log) {
39
+ try {
40
+ const event = this.logDecoder(log);
41
+ if (log.topics[0] === this.transferTopic &&
42
+ event.args.dst.toLowerCase() === this.migratorAddress.toLowerCase()) {
43
+ return this.handleTransferTo(event, state, log);
44
+ }
45
+ if (log.topics[0] === this.transferTopic &&
46
+ event.args.src.toLowerCase() === this.migratorAddress.toLowerCase()) {
47
+ return this.handleTransferFrom(event, state, log);
48
+ }
49
+ return null;
50
+ }
51
+ catch (e) {
52
+ (0, utils_1.catchParseLogError)(e, this.logger);
53
+ return null;
54
+ }
55
+ }
56
+ async generateState(blockNumber = 'latest') {
57
+ const calls = [
58
+ {
59
+ target: this.xyzAddress,
60
+ callData: this.xyzInterface.encodeFunctionData('balanceOf', [
61
+ this.migratorAddress,
62
+ ]),
63
+ decodeFunction: decoders_1.uint256ToBigInt,
64
+ },
65
+ ];
66
+ const [balance] = await this.dexHelper.multiWrapper.tryAggregate(true, calls, blockNumber);
67
+ return { balance: balance.returnData };
68
+ }
69
+ async getOrGenerateState(blockNumber) {
70
+ let state = this.getState(blockNumber);
71
+ if (!state) {
72
+ state = await this.generateState(blockNumber);
73
+ this.setState(state, blockNumber);
74
+ }
75
+ return state;
76
+ }
77
+ async handleTransferTo(event, state, log) {
78
+ return {
79
+ balance: state.balance + BigInt(event.args.wad),
80
+ };
81
+ }
82
+ async handleTransferFrom(event, state, log) {
83
+ return {
84
+ balance: state.balance - BigInt(event.args.wad),
85
+ };
86
+ }
87
+ }
88
+ exports.MiroMigratorEventPool = MiroMigratorEventPool;
89
+ //# sourceMappingURL=miro-migrator-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"miro-migrator-pool.js","sourceRoot":"","sources":["../../../src/dex/miro-migrator/miro-migrator-pool.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA+C;AAG/C,uCAAiD;AACjD,+EAA0E;AAG1E,iDAAqD;AACrD,0GAA4E;AAC5E,sEAA4C;AAE5C,MAAa,qBAAsB,SAAQ,mDAAkC;IAchE;IACC;IACA;IAEA;IACA;IACA;IACA;IACA;IArBZ,QAAQ,GAMJ,EAAE,CAAC;IAEP,UAAU,CAAoB;IAE9B,mBAAmB,CAAW;IAE9B,YACW,UAAkB,EACjB,OAAe,EACf,SAAqB,EAC/B,MAAc,EACJ,eAAuB,EACvB,UAAkB,EAClB,aAAqB,EACrB,oBAA+B,IAAI,eAAS,CAAC,+BAAe,CAAC,EAC7D,eAA0B,IAAI,eAAS,CAAC,oBAAQ,CAAC;QAE3D,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAVrC,eAAU,GAAV,UAAU,CAAQ;QACjB,YAAO,GAAP,OAAO,CAAQ;QACf,cAAS,GAAT,SAAS,CAAY;QAErB,oBAAe,GAAf,eAAe,CAAQ;QACvB,eAAU,GAAV,UAAU,CAAQ;QAClB,kBAAa,GAAb,aAAa,CAAQ;QACrB,sBAAiB,GAAjB,iBAAiB,CAA4C;QAC7D,iBAAY,GAAZ,YAAY,CAAqC;QAG3D,IAAI,CAAC,UAAU,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAChE,IAAI,CAAC,mBAAmB,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAES,KAAK,CAAC,UAAU,CACxB,KAA8B,EAC9B,GAAkB;QAElB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAEnC,IACE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,aAAa;gBACpC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,EACnE,CAAC;gBACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YAClD,CAAC;YAED,IACE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,aAAa;gBACpC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,EACnE,CAAC;gBACD,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YACpD,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAA,0BAAkB,EAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,cAAiC,QAAQ;QAEzC,MAAM,KAAK,GAAG;YACZ;gBACE,MAAM,EAAE,IAAI,CAAC,UAAU;gBACvB,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,WAAW,EAAE;oBAC1D,IAAI,CAAC,eAAe;iBACrB,CAAC;gBACF,cAAc,EAAE,0BAAe;aAChC;SACF,CAAC;QAEF,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,CAC9D,IAAI,EACJ,KAAK,EACL,WAAW,CACZ,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,WAAmB;QAC1C,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAC9C,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,KAAU,EACV,KAA8B,EAC9B,GAAkB;QAElB,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;SAChD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,KAAU,EACV,KAA8B,EAC9B,GAAkB;QAElB,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;SAChD,CAAC;IACJ,CAAC;CACF;AA3GD,sDA2GC"}
@@ -0,0 +1,42 @@
1
+ import { Token, Address, ExchangePrices, PoolPrices, AdapterExchangeParam, SimpleExchangeParam, PoolLiquidity, Logger, NumberAsString, DexExchangeParam } from '../../types';
2
+ import { SwapSide, Network } from '../../constants';
3
+ import { IDex } from '../../dex/idex';
4
+ import { IDexHelper } from '../../dex-helper/idex-helper';
5
+ import { MiroMigratorData } from './types';
6
+ import { SimpleExchange } from '../simple-exchange';
7
+ import { Interface } from '@ethersproject/abi';
8
+ import { MiroMigratorEventPool } from './miro-migrator-pool';
9
+ export declare class MiroMigrator extends SimpleExchange implements IDex<MiroMigratorData> {
10
+ readonly network: Network;
11
+ readonly dexKey: string;
12
+ readonly dexHelper: IDexHelper;
13
+ readonly migratorAddress: string;
14
+ readonly pspTokenAddress: string;
15
+ readonly xyzTokenAddress: string;
16
+ protected unitPrice: bigint;
17
+ protected migratorInterface: Interface;
18
+ readonly hasConstantPriceLargeAmounts = true;
19
+ readonly isFeeOnTransferSupported = false;
20
+ static dexKeysWithNetwork: {
21
+ key: string;
22
+ networks: Network[];
23
+ }[];
24
+ readonly eventPool: MiroMigratorEventPool;
25
+ logger: Logger;
26
+ constructor(network: Network, dexKey: string, dexHelper: IDexHelper, migratorAddress?: string, pspTokenAddress?: string, xyzTokenAddress?: string, unitPrice?: bigint, migratorInterface?: Interface);
27
+ isPSP(tokenAddress: Address): boolean;
28
+ isXYZ(tokenAddress: Address): boolean;
29
+ isAppropriatePair(srcToken: Token, destToken: Token): boolean;
30
+ getAdapters(side: SwapSide): {
31
+ name: string;
32
+ index: number;
33
+ }[] | null;
34
+ initializePricing(blockNumber: number): Promise<void>;
35
+ getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise<string[]>;
36
+ getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise<null | ExchangePrices<MiroMigratorData>>;
37
+ getCalldataGasCost(poolPrices: PoolPrices<MiroMigratorData>): number | number[];
38
+ getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: MiroMigratorData, side: SwapSide): AdapterExchangeParam;
39
+ getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: MiroMigratorData, side: SwapSide): Promise<SimpleExchangeParam>;
40
+ getDexParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: MiroMigratorData, side: SwapSide): DexExchangeParam;
41
+ getTopPoolsForToken(tokenAddress: Address, limit: number): Promise<PoolLiquidity[]>;
42
+ }
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.MiroMigrator = void 0;
40
+ const CALLDATA_GAS_COST = __importStar(require("../../calldata-gas-cost"));
41
+ const utils_1 = require("../../utils");
42
+ const types_1 = require("./types");
43
+ const simple_exchange_1 = require("../simple-exchange");
44
+ const config_1 = require("./config");
45
+ const bigint_constants_1 = require("../../bigint-constants");
46
+ const abi_1 = require("@ethersproject/abi");
47
+ const MiroMigrator_abi_json_1 = __importDefault(require("../../abi/miro-migrator/MiroMigrator.abi.json"));
48
+ const constants_1 = require("./constants");
49
+ const miro_migrator_pool_1 = require("./miro-migrator-pool");
50
+ class MiroMigrator extends simple_exchange_1.SimpleExchange {
51
+ network;
52
+ dexKey;
53
+ dexHelper;
54
+ migratorAddress;
55
+ pspTokenAddress;
56
+ xyzTokenAddress;
57
+ unitPrice;
58
+ migratorInterface;
59
+ hasConstantPriceLargeAmounts = true;
60
+ isFeeOnTransferSupported = false;
61
+ static dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(config_1.MiroMigratorConfig);
62
+ eventPool;
63
+ logger;
64
+ constructor(network, dexKey, dexHelper, migratorAddress = config_1.MiroMigratorConfig[dexKey][network]
65
+ .migratorAddress, pspTokenAddress = config_1.MiroMigratorConfig[dexKey][network]
66
+ .pspTokenAddress, xyzTokenAddress = config_1.MiroMigratorConfig[dexKey][network]
67
+ .xyzTokenAddress, unitPrice = bigint_constants_1.BI_POWS[18], migratorInterface = new abi_1.Interface(MiroMigrator_abi_json_1.default)) {
68
+ super(dexHelper, dexKey);
69
+ this.network = network;
70
+ this.dexKey = dexKey;
71
+ this.dexHelper = dexHelper;
72
+ this.migratorAddress = migratorAddress;
73
+ this.pspTokenAddress = pspTokenAddress;
74
+ this.xyzTokenAddress = xyzTokenAddress;
75
+ this.unitPrice = unitPrice;
76
+ this.migratorInterface = migratorInterface;
77
+ this.logger = dexHelper.getLogger(dexKey);
78
+ this.eventPool = new miro_migrator_pool_1.MiroMigratorEventPool(this.dexKey, this.network, this.dexHelper, this.logger, this.migratorAddress, this.xyzTokenAddress, constants_1.TRANSFER_TOPIC);
79
+ }
80
+ isPSP(tokenAddress) {
81
+ return this.pspTokenAddress.toLowerCase() === tokenAddress.toLowerCase();
82
+ }
83
+ isXYZ(tokenAddress) {
84
+ return this.xyzTokenAddress.toLowerCase() === tokenAddress.toLowerCase();
85
+ }
86
+ isAppropriatePair(srcToken, destToken) {
87
+ return this.isPSP(srcToken.address) && this.isXYZ(destToken.address);
88
+ }
89
+ getAdapters(side) {
90
+ return null;
91
+ }
92
+ async initializePricing(blockNumber) {
93
+ this.eventPool.initialize(blockNumber);
94
+ }
95
+ async getPoolIdentifiers(srcToken, destToken, side, blockNumber) {
96
+ if (this.isAppropriatePair(srcToken, destToken)) {
97
+ return [`${this.dexKey}_${srcToken.address}_${destToken.address}`];
98
+ }
99
+ return [];
100
+ }
101
+ async getPricesVolume(srcToken, destToken, amounts, side, blockNumber, limitPools) {
102
+ if (!this.isAppropriatePair(srcToken, destToken)) {
103
+ return null;
104
+ }
105
+ const state = await this.eventPool.getOrGenerateState(blockNumber);
106
+ if (!state)
107
+ return null;
108
+ const prices = [];
109
+ for (const amount of amounts) {
110
+ if (amount > state.balance) {
111
+ prices.push(0n);
112
+ }
113
+ else {
114
+ prices.push(amount);
115
+ }
116
+ }
117
+ return [
118
+ {
119
+ prices,
120
+ unit: this.unitPrice,
121
+ gasCost: constants_1.MIRO_MIGRATION_GAS_COST,
122
+ exchange: this.dexKey,
123
+ poolAddresses: [this.migratorAddress],
124
+ data: null,
125
+ },
126
+ ];
127
+ }
128
+ getCalldataGasCost(poolPrices) {
129
+ return CALLDATA_GAS_COST.DEX_NO_PAYLOAD;
130
+ }
131
+ getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
132
+ return {
133
+ targetExchange: this.migratorAddress,
134
+ payload: '0x',
135
+ networkFee: '0',
136
+ };
137
+ }
138
+ async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
139
+ const swapData = this.migratorInterface.encodeFunctionData(types_1.MiroMigratorFunctions.migratePSPtoXYZ, [srcAmount, '0x']);
140
+ return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, this.migratorAddress);
141
+ }
142
+ getDexParam(srcToken, destToken, srcAmount, destAmount, recipient, data, side) {
143
+ const swapData = this.migratorInterface.encodeFunctionData(types_1.MiroMigratorFunctions.migratePSPtoXYZ, [srcAmount, '0x']);
144
+ return {
145
+ needWrapNative: this.needWrapNative,
146
+ dexFuncHasRecipient: false,
147
+ exchangeData: swapData,
148
+ targetExchange: this.migratorAddress,
149
+ returnAmountPos: undefined,
150
+ };
151
+ }
152
+ async getTopPoolsForToken(tokenAddress, limit) {
153
+ if (!this.isPSP(tokenAddress) && !this.isXYZ(tokenAddress)) {
154
+ return [];
155
+ }
156
+ return [
157
+ {
158
+ exchange: this.dexKey,
159
+ address: this.migratorAddress,
160
+ connectorTokens: [
161
+ {
162
+ address: this.isPSP(tokenAddress)
163
+ ? this.xyzTokenAddress
164
+ : this.pspTokenAddress,
165
+ decimals: 18,
166
+ },
167
+ ],
168
+ liquidityUSD: 1000000000, // Just returning a big number so this DEX will be preferred
169
+ },
170
+ ];
171
+ }
172
+ }
173
+ exports.MiroMigrator = MiroMigrator;
174
+ //# sourceMappingURL=miro-migrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"miro-migrator.js","sourceRoot":"","sources":["../../../src/dex/miro-migrator/miro-migrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { Address } from '../../types';
2
+ export type PoolState = {
3
+ balance: bigint;
4
+ };
5
+ export type MiroMigratorData = null;
6
+ export type DexParams = {
7
+ migratorAddress: Address;
8
+ pspTokenAddress: Address;
9
+ xyzTokenAddress: Address;
10
+ };
11
+ export declare enum MiroMigratorFunctions {
12
+ migratePSPtoXYZ = "migratePSPtoXYZ"
13
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MiroMigratorFunctions = void 0;
4
+ var MiroMigratorFunctions;
5
+ (function (MiroMigratorFunctions) {
6
+ MiroMigratorFunctions["migratePSPtoXYZ"] = "migratePSPtoXYZ";
7
+ })(MiroMigratorFunctions || (exports.MiroMigratorFunctions = MiroMigratorFunctions = {}));
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/miro-migrator/types.ts"],"names":[],"mappings":";;;AAcA,IAAY,qBAEX;AAFD,WAAY,qBAAqB;IAC/B,4DAAmC,CAAA;AACrC,CAAC,EAFW,qBAAqB,qCAArB,qBAAqB,QAEhC"}
@@ -0,0 +1,2 @@
1
+ import { UnoptimizedRate } from '../../types';
2
+ export declare function uniswapV4Merge(or: UnoptimizedRate): UnoptimizedRate;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.uniswapV4Merge = uniswapV4Merge;
7
+ const lodash_1 = __importDefault(require("lodash"));
8
+ const config_1 = require("./config");
9
+ const UniswapV4AndForks = Object.keys(config_1.UniswapV4Config).map(dexKey => dexKey.toLowerCase());
10
+ function uniswapV4Merge(or) {
11
+ const fixRoute = (rawRate) => {
12
+ let lastExchange = false;
13
+ let optimizedRate = new Array();
14
+ rawRate.forEach((s) => {
15
+ if (s.swapExchanges.length !== 1 ||
16
+ !UniswapV4AndForks.includes(s.swapExchanges[0].exchange.toLowerCase())) {
17
+ lastExchange = false;
18
+ optimizedRate.push(s);
19
+ }
20
+ else if (lastExchange &&
21
+ lastExchange.swapExchanges[0].exchange.toLowerCase() ===
22
+ s.swapExchanges[0].exchange.toLowerCase() &&
23
+ lodash_1.default.last(lastExchange.swapExchanges[0].data.path).tokenOut.toLowerCase() ===
24
+ s.swapExchanges[0].data.path[0].tokenIn.toLowerCase()) {
25
+ lastExchange.swapExchanges[0].data.path.push(s.swapExchanges[0].data.path[0]);
26
+ lastExchange.swapExchanges[0].poolAddresses.push(s.swapExchanges[0].poolAddresses[0]);
27
+ lastExchange.swapExchanges[0].data.gasUSD = (parseFloat(lastExchange.swapExchanges[0].data.gasUSD) +
28
+ parseFloat(s.swapExchanges[0].data.gasUSD)).toFixed(6);
29
+ lastExchange.destToken = s.destToken;
30
+ lastExchange.destDecimals = s.destDecimals;
31
+ lastExchange.swapExchanges[0].destAmount =
32
+ s.swapExchanges[0].destAmount;
33
+ }
34
+ else {
35
+ lastExchange = lodash_1.default.cloneDeep(s);
36
+ optimizedRate.push(lastExchange);
37
+ }
38
+ });
39
+ return optimizedRate;
40
+ };
41
+ or.bestRoute = or.bestRoute.map(r => ({
42
+ ...r,
43
+ swaps: fixRoute(r.swaps),
44
+ }));
45
+ return or;
46
+ }
47
+ //# sourceMappingURL=optimizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optimizer.js","sourceRoot":"","sources":["../../../src/dex/uniswap-v4/optimizer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paraswap/dex-lib",
3
- "version": "4.2.3-2",
3
+ "version": "4.2.3-3",
4
4
  "main": "build/index.js",
5
5
  "types": "build/index.d.ts",
6
6
  "repository": "https://github.com/paraswap/paraswap-dex-lib",