@paraswap/dex-lib 2.35.7-worker-pool.3 → 2.36.1

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 (74) hide show
  1. package/build/abi/aerodrome/aerodrome-pool-factory.json +586 -0
  2. package/build/abi/api3-proxy.json +7 -0
  3. package/build/config.js +2 -2
  4. package/build/dex/algebra/algebra.js +5 -4
  5. package/build/dex/algebra/algebra.js.map +1 -1
  6. package/build/dex/balancer-v2/config.js +10 -2
  7. package/build/dex/balancer-v2/config.js.map +1 -1
  8. package/build/dex/index.js +2 -0
  9. package/build/dex/index.js.map +1 -1
  10. package/build/dex/maverick-v1/config.js +9 -0
  11. package/build/dex/maverick-v1/config.js.map +1 -1
  12. package/build/dex/maverick-v1/maverick-v1.js +11 -2
  13. package/build/dex/maverick-v1/maverick-v1.js.map +1 -1
  14. package/build/dex/pancakeswap-v3/config.js +17 -0
  15. package/build/dex/pancakeswap-v3/config.js.map +1 -1
  16. package/build/dex/pancakeswap-v3/pancakeswap-v3.js +7 -6
  17. package/build/dex/pancakeswap-v3/pancakeswap-v3.js.map +1 -1
  18. package/build/dex/quick-perps/pool.js +21 -6
  19. package/build/dex/quick-perps/pool.js.map +1 -1
  20. package/build/dex/quick-perps/quick-perps.js +34 -28
  21. package/build/dex/quick-perps/quick-perps.js.map +1 -1
  22. package/build/dex/solidly/config.js +22 -1
  23. package/build/dex/solidly/config.js.map +1 -1
  24. package/build/dex/solidly/forks-override/aerodrome.d.ts +14 -0
  25. package/build/dex/solidly/forks-override/aerodrome.js +48 -0
  26. package/build/dex/solidly/forks-override/aerodrome.js.map +1 -0
  27. package/build/dex/solidly/solidly.js +1 -0
  28. package/build/dex/solidly/solidly.js.map +1 -1
  29. package/build/dex/uniswap-v3/config.js +12 -0
  30. package/build/dex/uniswap-v3/config.js.map +1 -1
  31. package/build/dex/uniswap-v3/uniswap-v3.js +5 -4
  32. package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
  33. package/build/dex/woo-fi-v2/config.js +13 -0
  34. package/build/dex/woo-fi-v2/config.js.map +1 -1
  35. package/build/dex-helper/dummy-dex-helper.d.ts +0 -1
  36. package/build/dex-helper/dummy-dex-helper.js +0 -3
  37. package/build/dex-helper/dummy-dex-helper.js.map +1 -1
  38. package/build/dex-helper/idex-helper.d.ts +0 -1
  39. package/build/lib/api3-feed.d.ts +4 -0
  40. package/build/lib/api3-feed.js +18 -0
  41. package/build/lib/api3-feed.js.map +1 -1
  42. package/package.json +1 -1
  43. package/src/abi/aerodrome/aerodrome-pool-factory.json +586 -0
  44. package/src/abi/api3-proxy.json +7 -0
  45. package/src/config.ts +2 -2
  46. package/src/dex/algebra/algebra.ts +10 -10
  47. package/src/dex/balancer-v2/balancer-v2-e2e.test.ts +120 -1
  48. package/src/dex/balancer-v2/config.ts +11 -2
  49. package/src/dex/index.ts +2 -0
  50. package/src/dex/maverick-v1/config.ts +10 -0
  51. package/src/dex/maverick-v1/maverick-v1-e2e.test.ts +115 -1
  52. package/src/dex/maverick-v1/maverick-v1.ts +12 -2
  53. package/src/dex/pancakeswap-v3/config.ts +19 -0
  54. package/src/dex/pancakeswap-v3/pancakeswap-v3-e2e.test.ts +114 -0
  55. package/src/dex/pancakeswap-v3/pancakeswap-v3.ts +12 -12
  56. package/src/dex/quick-perps/pool.ts +42 -7
  57. package/src/dex/quick-perps/quick-perps-events.test.ts +0 -1
  58. package/src/dex/quick-perps/quick-perps.ts +45 -35
  59. package/src/dex/solidly/config.ts +24 -1
  60. package/src/dex/solidly/forks-override/aerodrome.ts +53 -0
  61. package/src/dex/solidly/solidly-e2e.test.ts +88 -0
  62. package/src/dex/solidly/solidly-integration.test.ts +66 -0
  63. package/src/dex/solidly/solidly.ts +1 -0
  64. package/src/dex/uniswap-v3/config.ts +12 -0
  65. package/src/dex/uniswap-v3/uniswap-v3-e2e.test.ts +24 -9
  66. package/src/dex/uniswap-v3/uniswap-v3-integration.test.ts +140 -0
  67. package/src/dex/uniswap-v3/uniswap-v3.ts +10 -10
  68. package/src/dex/woo-fi-v2/config.ts +13 -0
  69. package/src/dex/woo-fi-v2/woo-fi-v2-e2e.test.ts +64 -0
  70. package/src/dex-helper/dummy-dex-helper.ts +0 -15
  71. package/src/dex-helper/idex-helper.ts +0 -7
  72. package/src/lib/api3-feed.ts +35 -0
  73. package/tests/constants-e2e.ts +30 -0
  74. package/tests/utils-e2e.ts +1 -0
@@ -0,0 +1,586 @@
1
+ [
2
+ {
3
+ "inputs": [
4
+ {
5
+ "internalType": "address",
6
+ "name": "_implementation",
7
+ "type": "address"
8
+ }
9
+ ],
10
+ "stateMutability": "nonpayable",
11
+ "type": "constructor"
12
+ },
13
+ {
14
+ "inputs": [],
15
+ "name": "FeeInvalid",
16
+ "type": "error"
17
+ },
18
+ {
19
+ "inputs": [],
20
+ "name": "FeeTooHigh",
21
+ "type": "error"
22
+ },
23
+ {
24
+ "inputs": [],
25
+ "name": "InvalidPool",
26
+ "type": "error"
27
+ },
28
+ {
29
+ "inputs": [],
30
+ "name": "NotFeeManager",
31
+ "type": "error"
32
+ },
33
+ {
34
+ "inputs": [],
35
+ "name": "NotPauser",
36
+ "type": "error"
37
+ },
38
+ {
39
+ "inputs": [],
40
+ "name": "NotVoter",
41
+ "type": "error"
42
+ },
43
+ {
44
+ "inputs": [],
45
+ "name": "PoolAlreadyExists",
46
+ "type": "error"
47
+ },
48
+ {
49
+ "inputs": [],
50
+ "name": "SameAddress",
51
+ "type": "error"
52
+ },
53
+ {
54
+ "inputs": [],
55
+ "name": "ZeroAddress",
56
+ "type": "error"
57
+ },
58
+ {
59
+ "inputs": [],
60
+ "name": "ZeroFee",
61
+ "type": "error"
62
+ },
63
+ {
64
+ "anonymous": false,
65
+ "inputs": [
66
+ {
67
+ "indexed": true,
68
+ "internalType": "address",
69
+ "name": "token0",
70
+ "type": "address"
71
+ },
72
+ {
73
+ "indexed": true,
74
+ "internalType": "address",
75
+ "name": "token1",
76
+ "type": "address"
77
+ },
78
+ {
79
+ "indexed": true,
80
+ "internalType": "bool",
81
+ "name": "stable",
82
+ "type": "bool"
83
+ },
84
+ {
85
+ "indexed": false,
86
+ "internalType": "address",
87
+ "name": "pool",
88
+ "type": "address"
89
+ },
90
+ {
91
+ "indexed": false,
92
+ "internalType": "uint256",
93
+ "name": "",
94
+ "type": "uint256"
95
+ }
96
+ ],
97
+ "name": "PoolCreated",
98
+ "type": "event"
99
+ },
100
+ {
101
+ "anonymous": false,
102
+ "inputs": [
103
+ {
104
+ "indexed": true,
105
+ "internalType": "address",
106
+ "name": "pool",
107
+ "type": "address"
108
+ },
109
+ {
110
+ "indexed": false,
111
+ "internalType": "uint256",
112
+ "name": "fee",
113
+ "type": "uint256"
114
+ }
115
+ ],
116
+ "name": "SetCustomFee",
117
+ "type": "event"
118
+ },
119
+ {
120
+ "anonymous": false,
121
+ "inputs": [
122
+ {
123
+ "indexed": false,
124
+ "internalType": "address",
125
+ "name": "feeManager",
126
+ "type": "address"
127
+ }
128
+ ],
129
+ "name": "SetFeeManager",
130
+ "type": "event"
131
+ },
132
+ {
133
+ "anonymous": false,
134
+ "inputs": [
135
+ {
136
+ "indexed": false,
137
+ "internalType": "bool",
138
+ "name": "state",
139
+ "type": "bool"
140
+ }
141
+ ],
142
+ "name": "SetPauseState",
143
+ "type": "event"
144
+ },
145
+ {
146
+ "anonymous": false,
147
+ "inputs": [
148
+ {
149
+ "indexed": false,
150
+ "internalType": "address",
151
+ "name": "pauser",
152
+ "type": "address"
153
+ }
154
+ ],
155
+ "name": "SetPauser",
156
+ "type": "event"
157
+ },
158
+ {
159
+ "anonymous": false,
160
+ "inputs": [
161
+ {
162
+ "indexed": false,
163
+ "internalType": "address",
164
+ "name": "voter",
165
+ "type": "address"
166
+ }
167
+ ],
168
+ "name": "SetVoter",
169
+ "type": "event"
170
+ },
171
+ {
172
+ "inputs": [],
173
+ "name": "MAX_FEE",
174
+ "outputs": [
175
+ {
176
+ "internalType": "uint256",
177
+ "name": "",
178
+ "type": "uint256"
179
+ }
180
+ ],
181
+ "stateMutability": "view",
182
+ "type": "function"
183
+ },
184
+ {
185
+ "inputs": [],
186
+ "name": "ZERO_FEE_INDICATOR",
187
+ "outputs": [
188
+ {
189
+ "internalType": "uint256",
190
+ "name": "",
191
+ "type": "uint256"
192
+ }
193
+ ],
194
+ "stateMutability": "view",
195
+ "type": "function"
196
+ },
197
+ {
198
+ "inputs": [
199
+ {
200
+ "internalType": "uint256",
201
+ "name": "",
202
+ "type": "uint256"
203
+ }
204
+ ],
205
+ "name": "allPools",
206
+ "outputs": [
207
+ {
208
+ "internalType": "address",
209
+ "name": "",
210
+ "type": "address"
211
+ }
212
+ ],
213
+ "stateMutability": "view",
214
+ "type": "function"
215
+ },
216
+ {
217
+ "inputs": [],
218
+ "name": "allPoolsLength",
219
+ "outputs": [
220
+ {
221
+ "internalType": "uint256",
222
+ "name": "",
223
+ "type": "uint256"
224
+ }
225
+ ],
226
+ "stateMutability": "view",
227
+ "type": "function"
228
+ },
229
+ {
230
+ "inputs": [
231
+ {
232
+ "internalType": "address",
233
+ "name": "tokenA",
234
+ "type": "address"
235
+ },
236
+ {
237
+ "internalType": "address",
238
+ "name": "tokenB",
239
+ "type": "address"
240
+ },
241
+ {
242
+ "internalType": "bool",
243
+ "name": "stable",
244
+ "type": "bool"
245
+ }
246
+ ],
247
+ "name": "createPool",
248
+ "outputs": [
249
+ {
250
+ "internalType": "address",
251
+ "name": "pool",
252
+ "type": "address"
253
+ }
254
+ ],
255
+ "stateMutability": "nonpayable",
256
+ "type": "function"
257
+ },
258
+ {
259
+ "inputs": [
260
+ {
261
+ "internalType": "address",
262
+ "name": "tokenA",
263
+ "type": "address"
264
+ },
265
+ {
266
+ "internalType": "address",
267
+ "name": "tokenB",
268
+ "type": "address"
269
+ },
270
+ {
271
+ "internalType": "uint24",
272
+ "name": "fee",
273
+ "type": "uint24"
274
+ }
275
+ ],
276
+ "name": "createPool",
277
+ "outputs": [
278
+ {
279
+ "internalType": "address",
280
+ "name": "pool",
281
+ "type": "address"
282
+ }
283
+ ],
284
+ "stateMutability": "nonpayable",
285
+ "type": "function"
286
+ },
287
+ {
288
+ "inputs": [
289
+ {
290
+ "internalType": "address",
291
+ "name": "",
292
+ "type": "address"
293
+ }
294
+ ],
295
+ "name": "customFee",
296
+ "outputs": [
297
+ {
298
+ "internalType": "uint256",
299
+ "name": "",
300
+ "type": "uint256"
301
+ }
302
+ ],
303
+ "stateMutability": "view",
304
+ "type": "function"
305
+ },
306
+ {
307
+ "inputs": [],
308
+ "name": "feeManager",
309
+ "outputs": [
310
+ {
311
+ "internalType": "address",
312
+ "name": "",
313
+ "type": "address"
314
+ }
315
+ ],
316
+ "stateMutability": "view",
317
+ "type": "function"
318
+ },
319
+ {
320
+ "inputs": [
321
+ {
322
+ "internalType": "address",
323
+ "name": "pool",
324
+ "type": "address"
325
+ },
326
+ {
327
+ "internalType": "bool",
328
+ "name": "_stable",
329
+ "type": "bool"
330
+ }
331
+ ],
332
+ "name": "getFee",
333
+ "outputs": [
334
+ {
335
+ "internalType": "uint256",
336
+ "name": "",
337
+ "type": "uint256"
338
+ }
339
+ ],
340
+ "stateMutability": "view",
341
+ "type": "function"
342
+ },
343
+ {
344
+ "inputs": [
345
+ {
346
+ "internalType": "address",
347
+ "name": "tokenA",
348
+ "type": "address"
349
+ },
350
+ {
351
+ "internalType": "address",
352
+ "name": "tokenB",
353
+ "type": "address"
354
+ },
355
+ {
356
+ "internalType": "uint24",
357
+ "name": "fee",
358
+ "type": "uint24"
359
+ }
360
+ ],
361
+ "name": "getPool",
362
+ "outputs": [
363
+ {
364
+ "internalType": "address",
365
+ "name": "",
366
+ "type": "address"
367
+ }
368
+ ],
369
+ "stateMutability": "view",
370
+ "type": "function"
371
+ },
372
+ {
373
+ "inputs": [
374
+ {
375
+ "internalType": "address",
376
+ "name": "tokenA",
377
+ "type": "address"
378
+ },
379
+ {
380
+ "internalType": "address",
381
+ "name": "tokenB",
382
+ "type": "address"
383
+ },
384
+ {
385
+ "internalType": "bool",
386
+ "name": "stable",
387
+ "type": "bool"
388
+ }
389
+ ],
390
+ "name": "getPool",
391
+ "outputs": [
392
+ {
393
+ "internalType": "address",
394
+ "name": "",
395
+ "type": "address"
396
+ }
397
+ ],
398
+ "stateMutability": "view",
399
+ "type": "function"
400
+ },
401
+ {
402
+ "inputs": [],
403
+ "name": "implementation",
404
+ "outputs": [
405
+ {
406
+ "internalType": "address",
407
+ "name": "",
408
+ "type": "address"
409
+ }
410
+ ],
411
+ "stateMutability": "view",
412
+ "type": "function"
413
+ },
414
+ {
415
+ "inputs": [],
416
+ "name": "isPaused",
417
+ "outputs": [
418
+ {
419
+ "internalType": "bool",
420
+ "name": "",
421
+ "type": "bool"
422
+ }
423
+ ],
424
+ "stateMutability": "view",
425
+ "type": "function"
426
+ },
427
+ {
428
+ "inputs": [
429
+ {
430
+ "internalType": "address",
431
+ "name": "pool",
432
+ "type": "address"
433
+ }
434
+ ],
435
+ "name": "isPool",
436
+ "outputs": [
437
+ {
438
+ "internalType": "bool",
439
+ "name": "",
440
+ "type": "bool"
441
+ }
442
+ ],
443
+ "stateMutability": "view",
444
+ "type": "function"
445
+ },
446
+ {
447
+ "inputs": [],
448
+ "name": "pauser",
449
+ "outputs": [
450
+ {
451
+ "internalType": "address",
452
+ "name": "",
453
+ "type": "address"
454
+ }
455
+ ],
456
+ "stateMutability": "view",
457
+ "type": "function"
458
+ },
459
+ {
460
+ "inputs": [
461
+ {
462
+ "internalType": "address",
463
+ "name": "pool",
464
+ "type": "address"
465
+ },
466
+ {
467
+ "internalType": "uint256",
468
+ "name": "fee",
469
+ "type": "uint256"
470
+ }
471
+ ],
472
+ "name": "setCustomFee",
473
+ "outputs": [],
474
+ "stateMutability": "nonpayable",
475
+ "type": "function"
476
+ },
477
+ {
478
+ "inputs": [
479
+ {
480
+ "internalType": "bool",
481
+ "name": "_stable",
482
+ "type": "bool"
483
+ },
484
+ {
485
+ "internalType": "uint256",
486
+ "name": "_fee",
487
+ "type": "uint256"
488
+ }
489
+ ],
490
+ "name": "setFee",
491
+ "outputs": [],
492
+ "stateMutability": "nonpayable",
493
+ "type": "function"
494
+ },
495
+ {
496
+ "inputs": [
497
+ {
498
+ "internalType": "address",
499
+ "name": "_feeManager",
500
+ "type": "address"
501
+ }
502
+ ],
503
+ "name": "setFeeManager",
504
+ "outputs": [],
505
+ "stateMutability": "nonpayable",
506
+ "type": "function"
507
+ },
508
+ {
509
+ "inputs": [
510
+ {
511
+ "internalType": "bool",
512
+ "name": "_state",
513
+ "type": "bool"
514
+ }
515
+ ],
516
+ "name": "setPauseState",
517
+ "outputs": [],
518
+ "stateMutability": "nonpayable",
519
+ "type": "function"
520
+ },
521
+ {
522
+ "inputs": [
523
+ {
524
+ "internalType": "address",
525
+ "name": "_pauser",
526
+ "type": "address"
527
+ }
528
+ ],
529
+ "name": "setPauser",
530
+ "outputs": [],
531
+ "stateMutability": "nonpayable",
532
+ "type": "function"
533
+ },
534
+ {
535
+ "inputs": [
536
+ {
537
+ "internalType": "address",
538
+ "name": "_voter",
539
+ "type": "address"
540
+ }
541
+ ],
542
+ "name": "setVoter",
543
+ "outputs": [],
544
+ "stateMutability": "nonpayable",
545
+ "type": "function"
546
+ },
547
+ {
548
+ "inputs": [],
549
+ "name": "stableFee",
550
+ "outputs": [
551
+ {
552
+ "internalType": "uint256",
553
+ "name": "",
554
+ "type": "uint256"
555
+ }
556
+ ],
557
+ "stateMutability": "view",
558
+ "type": "function"
559
+ },
560
+ {
561
+ "inputs": [],
562
+ "name": "volatileFee",
563
+ "outputs": [
564
+ {
565
+ "internalType": "uint256",
566
+ "name": "",
567
+ "type": "uint256"
568
+ }
569
+ ],
570
+ "stateMutability": "view",
571
+ "type": "function"
572
+ },
573
+ {
574
+ "inputs": [],
575
+ "name": "voter",
576
+ "outputs": [
577
+ {
578
+ "internalType": "address",
579
+ "name": "",
580
+ "type": "address"
581
+ }
582
+ ],
583
+ "stateMutability": "view",
584
+ "type": "function"
585
+ }
586
+ ]
@@ -42,5 +42,12 @@
42
42
  ],
43
43
  "stateMutability": "view",
44
44
  "type": "function"
45
+ },
46
+ {
47
+ "inputs": [],
48
+ "name": "dapiNameHash",
49
+ "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
50
+ "stateMutability": "view",
51
+ "type": "function"
45
52
  }
46
53
  ]
package/build/config.js CHANGED
@@ -311,8 +311,8 @@ const baseConfigs = {
311
311
  hashFlowAuthToken: process.env.API_KEY_HASHFLOW_AUTH_TOKEN || '',
312
312
  hashFlowDisabledMMs: [],
313
313
  adapterAddresses: {
314
- BaseAdapter01: '0x9F77bb28e97F093Aa6CbE37cE095C18605d98Af2',
315
- BaseBuyAdapter: '0x8DE036910e34b0d8447Dd0D34C742636de1DDfEb',
314
+ BaseAdapter01: '0x30F6B9b6485ff0B67E881f5ac80D3F1c70A4B23d',
315
+ BaseBuyAdapter: '0xB11bCA7B01b425afD0743A4D77B4f593883f94C0',
316
316
  },
317
317
  uniswapV2ExchangeRouterAddress: '0x75d199EfB540e47D27D52c62Da3E7daC2B9e834F',
318
318
  uniswapV3EventLoggingSampleRate: 0,
@@ -41,6 +41,7 @@ const AlgebraQuoter_abi_json_1 = __importDefault(require("../../abi/algebra/Alge
41
41
  const UniswapMulti_abi_json_1 = __importDefault(require("../../abi/uniswap-v3/UniswapMulti.abi.json"));
42
42
  const AlgebraStateMulticall_abi_json_1 = __importDefault(require("../../abi/algebra/AlgebraStateMulticall.abi.json"));
43
43
  const types_1 = require("../uniswap-v3/types");
44
+ const AlgebraMath_1 = require("./lib/AlgebraMath");
44
45
  const algebra_pool_v1_1_1 = require("./algebra-pool-v1_1");
45
46
  const algebra_pool_v1_9_1 = require("./algebra-pool-v1_9");
46
47
  const ALGEBRA_CLEAN_NOT_EXISTING_POOL_TTL_MS = 3 * 60 * 60 * 1000; // 3 hours
@@ -316,8 +317,8 @@ class Algebra extends simple_exchange_1.SimpleExchange {
316
317
  return null;
317
318
  }
318
319
  const balanceDestToken = _destAddress === pool.token0 ? state.balance0 : state.balance1;
319
- const unitResult = await this._getOutputs(state, [unitAmount], zeroForOne, side, balanceDestToken);
320
- const pricesResult = await this._getOutputs(state, _amounts, zeroForOne, side, balanceDestToken);
320
+ const unitResult = this._getOutputs(state, [unitAmount], zeroForOne, side, balanceDestToken);
321
+ const pricesResult = this._getOutputs(state, _amounts, zeroForOne, side, balanceDestToken);
321
322
  if (!unitResult || !pricesResult) {
322
323
  this.logger.debug('Prices or unit is not calculated');
323
324
  return null;
@@ -512,9 +513,9 @@ class Algebra extends simple_exchange_1.SimpleExchange {
512
513
  };
513
514
  return newConfig;
514
515
  }
515
- async _getOutputs(state, amounts, zeroForOne, side, destTokenBalance) {
516
+ _getOutputs(state, amounts, zeroForOne, side, destTokenBalance) {
516
517
  try {
517
- const outputsResult = (await this.dexHelper.executeOnWorkerPool(this.network, this.dexKey, 'queryOutputs', [state, amounts, zeroForOne, side]));
518
+ const outputsResult = AlgebraMath_1.AlgebraMath.queryOutputs(state, amounts, zeroForOne, side);
518
519
  if (side === constants_1.SwapSide.SELL) {
519
520
  if (outputsResult.outputs[0] > destTokenBalance) {
520
521
  return null;