@paraswap/dex-lib 2.18.4 → 2.18.6-swaap-v2

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 (69) hide show
  1. package/.idea/aws.xml +17 -0
  2. package/.idea/codeStyles/Project.xml +19 -0
  3. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  4. package/.idea/misc.xml +6 -0
  5. package/.idea/modules.xml +8 -0
  6. package/.idea/paraswap-dex-lib.iml +9 -0
  7. package/.idea/vcs.xml +6 -0
  8. package/build/abi/swaap-v2/vault.json +918 -0
  9. package/build/config.js +4 -2
  10. package/build/config.js.map +1 -1
  11. package/build/dex/hashflow/hashflow.js +8 -19
  12. package/build/dex/hashflow/hashflow.js.map +1 -1
  13. package/build/dex/index.js +2 -0
  14. package/build/dex/index.js.map +1 -1
  15. package/build/dex/pancakeswap-v3/types.d.ts +14 -0
  16. package/build/dex/{test-dex → pancakeswap-v3}/types.js.map +1 -1
  17. package/build/dex/{test-dex → swaap-v2}/config.d.ts +1 -1
  18. package/build/dex/swaap-v2/config.js +25 -0
  19. package/build/dex/swaap-v2/config.js.map +1 -0
  20. package/build/dex/swaap-v2/constants.d.ts +9 -0
  21. package/build/dex/swaap-v2/constants.js +13 -0
  22. package/build/dex/swaap-v2/constants.js.map +1 -0
  23. package/build/dex/swaap-v2/rate-fetcher.d.ts +16 -0
  24. package/build/dex/swaap-v2/rate-fetcher.js +100 -0
  25. package/build/dex/swaap-v2/rate-fetcher.js.map +1 -0
  26. package/build/dex/swaap-v2/swaap-v2.d.ts +55 -0
  27. package/build/dex/swaap-v2/swaap-v2.js +465 -0
  28. package/build/dex/swaap-v2/swaap-v2.js.map +1 -0
  29. package/build/dex/swaap-v2/types.d.ts +64 -0
  30. package/build/dex/swaap-v2/types.js +7 -0
  31. package/build/dex/swaap-v2/types.js.map +1 -0
  32. package/build/dex/swaap-v2/utils.d.ts +7 -0
  33. package/build/dex/swaap-v2/utils.js +34 -0
  34. package/build/dex/swaap-v2/utils.js.map +1 -0
  35. package/build/dex/swaap-v2/validators.d.ts +5 -0
  36. package/build/dex/swaap-v2/validators.js +120 -0
  37. package/build/dex/swaap-v2/validators.js.map +1 -0
  38. package/build/types.d.ts +1 -0
  39. package/package.json +1 -1
  40. package/src/abi/swaap-v2/vault.json +918 -0
  41. package/src/config.ts +5 -2
  42. package/src/dex/hashflow/hashflow.ts +8 -24
  43. package/src/dex/index.ts +2 -0
  44. package/src/dex/swaap-v2/config.ts +25 -0
  45. package/src/dex/swaap-v2/constants.ts +14 -0
  46. package/src/dex/swaap-v2/rate-fetcher.ts +164 -0
  47. package/src/dex/swaap-v2/swaap-v2-e2e.test.ts +199 -0
  48. package/src/dex/swaap-v2/swaap-v2-integration.test.ts +142 -0
  49. package/src/dex/swaap-v2/swaap-v2.ts +714 -0
  50. package/src/dex/swaap-v2/types.ts +74 -0
  51. package/src/dex/swaap-v2/utils.ts +44 -0
  52. package/src/dex/swaap-v2/validators.ts +123 -0
  53. package/src/types.ts +1 -0
  54. package/tests/constants-e2e.ts +1 -1
  55. package/tests/utils-e2e.ts +5 -0
  56. package/build/abi/DirectSwap.json +0 -1018
  57. package/build/dex/test-dex/config.js +0 -15
  58. package/build/dex/test-dex/config.js.map +0 -1
  59. package/build/dex/test-dex/test-dex-pool.d.ts +0 -39
  60. package/build/dex/test-dex/test-dex-pool.js +0 -63
  61. package/build/dex/test-dex/test-dex-pool.js.map +0 -1
  62. package/build/dex/test-dex/test-dex.d.ts +0 -37
  63. package/build/dex/test-dex/test-dex.js +0 -126
  64. package/build/dex/test-dex/test-dex.js.map +0 -1
  65. package/build/dex/test-dex/types.d.ts +0 -6
  66. package/build/dex/woo-fi-v2/woo-fi-math.d.ts +0 -16
  67. package/build/dex/woo-fi-v2/woo-fi-math.js +0 -137
  68. package/build/dex/woo-fi-v2/woo-fi-math.js.map +0 -1
  69. /package/build/dex/{test-dex → pancakeswap-v3}/types.js +0 -0
@@ -0,0 +1,918 @@
1
+ [
2
+ {
3
+ "inputs": [
4
+ {
5
+ "internalType": "contract IAuthorizer",
6
+ "name": "authorizer",
7
+ "type": "address"
8
+ },
9
+ { "internalType": "contract IWETH", "name": "weth", "type": "address" },
10
+ {
11
+ "internalType": "uint256",
12
+ "name": "pauseWindowDuration",
13
+ "type": "uint256"
14
+ },
15
+ {
16
+ "internalType": "uint256",
17
+ "name": "bufferPeriodDuration",
18
+ "type": "uint256"
19
+ }
20
+ ],
21
+ "stateMutability": "nonpayable",
22
+ "type": "constructor"
23
+ },
24
+ {
25
+ "anonymous": false,
26
+ "inputs": [
27
+ {
28
+ "indexed": true,
29
+ "internalType": "contract IAuthorizer",
30
+ "name": "newAuthorizer",
31
+ "type": "address"
32
+ }
33
+ ],
34
+ "name": "AuthorizerChanged",
35
+ "type": "event"
36
+ },
37
+ {
38
+ "anonymous": false,
39
+ "inputs": [
40
+ {
41
+ "indexed": true,
42
+ "internalType": "contract IERC20",
43
+ "name": "token",
44
+ "type": "address"
45
+ },
46
+ {
47
+ "indexed": true,
48
+ "internalType": "address",
49
+ "name": "sender",
50
+ "type": "address"
51
+ },
52
+ {
53
+ "indexed": false,
54
+ "internalType": "address",
55
+ "name": "recipient",
56
+ "type": "address"
57
+ },
58
+ {
59
+ "indexed": false,
60
+ "internalType": "uint256",
61
+ "name": "amount",
62
+ "type": "uint256"
63
+ }
64
+ ],
65
+ "name": "ExternalBalanceTransfer",
66
+ "type": "event"
67
+ },
68
+ {
69
+ "anonymous": false,
70
+ "inputs": [
71
+ {
72
+ "indexed": true,
73
+ "internalType": "contract IFlashLoanRecipient",
74
+ "name": "recipient",
75
+ "type": "address"
76
+ },
77
+ {
78
+ "indexed": true,
79
+ "internalType": "contract IERC20",
80
+ "name": "token",
81
+ "type": "address"
82
+ },
83
+ {
84
+ "indexed": false,
85
+ "internalType": "uint256",
86
+ "name": "amount",
87
+ "type": "uint256"
88
+ },
89
+ {
90
+ "indexed": false,
91
+ "internalType": "uint256",
92
+ "name": "feeAmount",
93
+ "type": "uint256"
94
+ }
95
+ ],
96
+ "name": "FlashLoan",
97
+ "type": "event"
98
+ },
99
+ {
100
+ "anonymous": false,
101
+ "inputs": [
102
+ {
103
+ "indexed": true,
104
+ "internalType": "address",
105
+ "name": "user",
106
+ "type": "address"
107
+ },
108
+ {
109
+ "indexed": true,
110
+ "internalType": "contract IERC20",
111
+ "name": "token",
112
+ "type": "address"
113
+ },
114
+ {
115
+ "indexed": false,
116
+ "internalType": "int256",
117
+ "name": "delta",
118
+ "type": "int256"
119
+ }
120
+ ],
121
+ "name": "InternalBalanceChanged",
122
+ "type": "event"
123
+ },
124
+ {
125
+ "anonymous": false,
126
+ "inputs": [
127
+ {
128
+ "indexed": false,
129
+ "internalType": "bool",
130
+ "name": "paused",
131
+ "type": "bool"
132
+ }
133
+ ],
134
+ "name": "PausedStateChanged",
135
+ "type": "event"
136
+ },
137
+ {
138
+ "anonymous": false,
139
+ "inputs": [
140
+ {
141
+ "indexed": true,
142
+ "internalType": "bytes32",
143
+ "name": "poolId",
144
+ "type": "bytes32"
145
+ },
146
+ {
147
+ "indexed": true,
148
+ "internalType": "address",
149
+ "name": "liquidityProvider",
150
+ "type": "address"
151
+ },
152
+ {
153
+ "indexed": false,
154
+ "internalType": "contract IERC20[]",
155
+ "name": "tokens",
156
+ "type": "address[]"
157
+ },
158
+ {
159
+ "indexed": false,
160
+ "internalType": "int256[]",
161
+ "name": "deltas",
162
+ "type": "int256[]"
163
+ },
164
+ {
165
+ "indexed": false,
166
+ "internalType": "uint256[]",
167
+ "name": "protocolFeeAmounts",
168
+ "type": "uint256[]"
169
+ }
170
+ ],
171
+ "name": "PoolBalanceChanged",
172
+ "type": "event"
173
+ },
174
+ {
175
+ "anonymous": false,
176
+ "inputs": [
177
+ {
178
+ "indexed": true,
179
+ "internalType": "bytes32",
180
+ "name": "poolId",
181
+ "type": "bytes32"
182
+ },
183
+ {
184
+ "indexed": true,
185
+ "internalType": "address",
186
+ "name": "assetManager",
187
+ "type": "address"
188
+ },
189
+ {
190
+ "indexed": true,
191
+ "internalType": "contract IERC20",
192
+ "name": "token",
193
+ "type": "address"
194
+ },
195
+ {
196
+ "indexed": false,
197
+ "internalType": "int256",
198
+ "name": "cashDelta",
199
+ "type": "int256"
200
+ },
201
+ {
202
+ "indexed": false,
203
+ "internalType": "int256",
204
+ "name": "managedDelta",
205
+ "type": "int256"
206
+ }
207
+ ],
208
+ "name": "PoolBalanceManaged",
209
+ "type": "event"
210
+ },
211
+ {
212
+ "anonymous": false,
213
+ "inputs": [
214
+ {
215
+ "indexed": true,
216
+ "internalType": "bytes32",
217
+ "name": "poolId",
218
+ "type": "bytes32"
219
+ },
220
+ {
221
+ "indexed": true,
222
+ "internalType": "address",
223
+ "name": "poolAddress",
224
+ "type": "address"
225
+ },
226
+ {
227
+ "indexed": false,
228
+ "internalType": "enum IVault.PoolSpecialization",
229
+ "name": "specialization",
230
+ "type": "uint8"
231
+ }
232
+ ],
233
+ "name": "PoolRegistered",
234
+ "type": "event"
235
+ },
236
+ {
237
+ "anonymous": false,
238
+ "inputs": [
239
+ {
240
+ "indexed": true,
241
+ "internalType": "address",
242
+ "name": "relayer",
243
+ "type": "address"
244
+ },
245
+ {
246
+ "indexed": true,
247
+ "internalType": "address",
248
+ "name": "sender",
249
+ "type": "address"
250
+ },
251
+ {
252
+ "indexed": false,
253
+ "internalType": "bool",
254
+ "name": "approved",
255
+ "type": "bool"
256
+ }
257
+ ],
258
+ "name": "RelayerApprovalChanged",
259
+ "type": "event"
260
+ },
261
+ {
262
+ "anonymous": false,
263
+ "inputs": [
264
+ {
265
+ "indexed": true,
266
+ "internalType": "bytes32",
267
+ "name": "poolId",
268
+ "type": "bytes32"
269
+ },
270
+ {
271
+ "indexed": true,
272
+ "internalType": "contract IERC20",
273
+ "name": "tokenIn",
274
+ "type": "address"
275
+ },
276
+ {
277
+ "indexed": true,
278
+ "internalType": "contract IERC20",
279
+ "name": "tokenOut",
280
+ "type": "address"
281
+ },
282
+ {
283
+ "indexed": false,
284
+ "internalType": "uint256",
285
+ "name": "amountIn",
286
+ "type": "uint256"
287
+ },
288
+ {
289
+ "indexed": false,
290
+ "internalType": "uint256",
291
+ "name": "amountOut",
292
+ "type": "uint256"
293
+ }
294
+ ],
295
+ "name": "Swap",
296
+ "type": "event"
297
+ },
298
+ {
299
+ "anonymous": false,
300
+ "inputs": [
301
+ {
302
+ "indexed": true,
303
+ "internalType": "bytes32",
304
+ "name": "poolId",
305
+ "type": "bytes32"
306
+ },
307
+ {
308
+ "indexed": false,
309
+ "internalType": "contract IERC20[]",
310
+ "name": "tokens",
311
+ "type": "address[]"
312
+ }
313
+ ],
314
+ "name": "TokensDeregistered",
315
+ "type": "event"
316
+ },
317
+ {
318
+ "anonymous": false,
319
+ "inputs": [
320
+ {
321
+ "indexed": true,
322
+ "internalType": "bytes32",
323
+ "name": "poolId",
324
+ "type": "bytes32"
325
+ },
326
+ {
327
+ "indexed": false,
328
+ "internalType": "contract IERC20[]",
329
+ "name": "tokens",
330
+ "type": "address[]"
331
+ },
332
+ {
333
+ "indexed": false,
334
+ "internalType": "address[]",
335
+ "name": "assetManagers",
336
+ "type": "address[]"
337
+ }
338
+ ],
339
+ "name": "TokensRegistered",
340
+ "type": "event"
341
+ },
342
+ {
343
+ "inputs": [],
344
+ "name": "WETH",
345
+ "outputs": [
346
+ { "internalType": "contract IWETH", "name": "", "type": "address" }
347
+ ],
348
+ "stateMutability": "view",
349
+ "type": "function"
350
+ },
351
+ {
352
+ "inputs": [
353
+ {
354
+ "internalType": "enum IVault.SwapKind",
355
+ "name": "kind",
356
+ "type": "uint8"
357
+ },
358
+ {
359
+ "components": [
360
+ { "internalType": "bytes32", "name": "poolId", "type": "bytes32" },
361
+ {
362
+ "internalType": "uint256",
363
+ "name": "assetInIndex",
364
+ "type": "uint256"
365
+ },
366
+ {
367
+ "internalType": "uint256",
368
+ "name": "assetOutIndex",
369
+ "type": "uint256"
370
+ },
371
+ { "internalType": "uint256", "name": "amount", "type": "uint256" },
372
+ { "internalType": "bytes", "name": "userData", "type": "bytes" }
373
+ ],
374
+ "internalType": "struct IVault.BatchSwapStep[]",
375
+ "name": "swaps",
376
+ "type": "tuple[]"
377
+ },
378
+ {
379
+ "internalType": "contract IAsset[]",
380
+ "name": "assets",
381
+ "type": "address[]"
382
+ },
383
+ {
384
+ "components": [
385
+ { "internalType": "address", "name": "sender", "type": "address" },
386
+ {
387
+ "internalType": "bool",
388
+ "name": "fromInternalBalance",
389
+ "type": "bool"
390
+ },
391
+ {
392
+ "internalType": "address payable",
393
+ "name": "recipient",
394
+ "type": "address"
395
+ },
396
+ {
397
+ "internalType": "bool",
398
+ "name": "toInternalBalance",
399
+ "type": "bool"
400
+ }
401
+ ],
402
+ "internalType": "struct IVault.FundManagement",
403
+ "name": "funds",
404
+ "type": "tuple"
405
+ },
406
+ { "internalType": "int256[]", "name": "limits", "type": "int256[]" },
407
+ { "internalType": "uint256", "name": "deadline", "type": "uint256" }
408
+ ],
409
+ "name": "batchSwap",
410
+ "outputs": [
411
+ { "internalType": "int256[]", "name": "assetDeltas", "type": "int256[]" }
412
+ ],
413
+ "stateMutability": "payable",
414
+ "type": "function"
415
+ },
416
+ {
417
+ "inputs": [
418
+ { "internalType": "bytes32", "name": "poolId", "type": "bytes32" },
419
+ {
420
+ "internalType": "contract IERC20[]",
421
+ "name": "tokens",
422
+ "type": "address[]"
423
+ }
424
+ ],
425
+ "name": "deregisterTokens",
426
+ "outputs": [],
427
+ "stateMutability": "nonpayable",
428
+ "type": "function"
429
+ },
430
+ {
431
+ "inputs": [
432
+ { "internalType": "bytes32", "name": "poolId", "type": "bytes32" },
433
+ { "internalType": "address", "name": "sender", "type": "address" },
434
+ {
435
+ "internalType": "address payable",
436
+ "name": "recipient",
437
+ "type": "address"
438
+ },
439
+ {
440
+ "components": [
441
+ {
442
+ "internalType": "contract IAsset[]",
443
+ "name": "assets",
444
+ "type": "address[]"
445
+ },
446
+ {
447
+ "internalType": "uint256[]",
448
+ "name": "minAmountsOut",
449
+ "type": "uint256[]"
450
+ },
451
+ { "internalType": "bytes", "name": "userData", "type": "bytes" },
452
+ {
453
+ "internalType": "bool",
454
+ "name": "toInternalBalance",
455
+ "type": "bool"
456
+ }
457
+ ],
458
+ "internalType": "struct IVault.ExitPoolRequest",
459
+ "name": "request",
460
+ "type": "tuple"
461
+ }
462
+ ],
463
+ "name": "exitPool",
464
+ "outputs": [],
465
+ "stateMutability": "nonpayable",
466
+ "type": "function"
467
+ },
468
+ {
469
+ "inputs": [
470
+ {
471
+ "internalType": "contract IFlashLoanRecipient",
472
+ "name": "recipient",
473
+ "type": "address"
474
+ },
475
+ {
476
+ "internalType": "contract IERC20[]",
477
+ "name": "tokens",
478
+ "type": "address[]"
479
+ },
480
+ { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" },
481
+ { "internalType": "bytes", "name": "userData", "type": "bytes" }
482
+ ],
483
+ "name": "flashLoan",
484
+ "outputs": [],
485
+ "stateMutability": "nonpayable",
486
+ "type": "function"
487
+ },
488
+ {
489
+ "inputs": [
490
+ { "internalType": "bytes4", "name": "selector", "type": "bytes4" }
491
+ ],
492
+ "name": "getActionId",
493
+ "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
494
+ "stateMutability": "view",
495
+ "type": "function"
496
+ },
497
+ {
498
+ "inputs": [],
499
+ "name": "getAuthorizer",
500
+ "outputs": [
501
+ { "internalType": "contract IAuthorizer", "name": "", "type": "address" }
502
+ ],
503
+ "stateMutability": "view",
504
+ "type": "function"
505
+ },
506
+ {
507
+ "inputs": [],
508
+ "name": "getDomainSeparator",
509
+ "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
510
+ "stateMutability": "view",
511
+ "type": "function"
512
+ },
513
+ {
514
+ "inputs": [
515
+ { "internalType": "address", "name": "user", "type": "address" },
516
+ {
517
+ "internalType": "contract IERC20[]",
518
+ "name": "tokens",
519
+ "type": "address[]"
520
+ }
521
+ ],
522
+ "name": "getInternalBalance",
523
+ "outputs": [
524
+ { "internalType": "uint256[]", "name": "balances", "type": "uint256[]" }
525
+ ],
526
+ "stateMutability": "view",
527
+ "type": "function"
528
+ },
529
+ {
530
+ "inputs": [
531
+ { "internalType": "address", "name": "user", "type": "address" }
532
+ ],
533
+ "name": "getNextNonce",
534
+ "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
535
+ "stateMutability": "view",
536
+ "type": "function"
537
+ },
538
+ {
539
+ "inputs": [],
540
+ "name": "getPausedState",
541
+ "outputs": [
542
+ { "internalType": "bool", "name": "paused", "type": "bool" },
543
+ {
544
+ "internalType": "uint256",
545
+ "name": "pauseWindowEndTime",
546
+ "type": "uint256"
547
+ },
548
+ {
549
+ "internalType": "uint256",
550
+ "name": "bufferPeriodEndTime",
551
+ "type": "uint256"
552
+ }
553
+ ],
554
+ "stateMutability": "view",
555
+ "type": "function"
556
+ },
557
+ {
558
+ "inputs": [
559
+ { "internalType": "bytes32", "name": "poolId", "type": "bytes32" }
560
+ ],
561
+ "name": "getPool",
562
+ "outputs": [
563
+ { "internalType": "address", "name": "", "type": "address" },
564
+ {
565
+ "internalType": "enum IVault.PoolSpecialization",
566
+ "name": "",
567
+ "type": "uint8"
568
+ }
569
+ ],
570
+ "stateMutability": "view",
571
+ "type": "function"
572
+ },
573
+ {
574
+ "inputs": [
575
+ { "internalType": "bytes32", "name": "poolId", "type": "bytes32" },
576
+ { "internalType": "contract IERC20", "name": "token", "type": "address" }
577
+ ],
578
+ "name": "getPoolTokenInfo",
579
+ "outputs": [
580
+ { "internalType": "uint256", "name": "cash", "type": "uint256" },
581
+ { "internalType": "uint256", "name": "managed", "type": "uint256" },
582
+ {
583
+ "internalType": "uint256",
584
+ "name": "lastChangeBlock",
585
+ "type": "uint256"
586
+ },
587
+ { "internalType": "address", "name": "assetManager", "type": "address" }
588
+ ],
589
+ "stateMutability": "view",
590
+ "type": "function"
591
+ },
592
+ {
593
+ "inputs": [
594
+ { "internalType": "bytes32", "name": "poolId", "type": "bytes32" }
595
+ ],
596
+ "name": "getPoolTokens",
597
+ "outputs": [
598
+ {
599
+ "internalType": "contract IERC20[]",
600
+ "name": "tokens",
601
+ "type": "address[]"
602
+ },
603
+ { "internalType": "uint256[]", "name": "balances", "type": "uint256[]" },
604
+ {
605
+ "internalType": "uint256",
606
+ "name": "lastChangeBlock",
607
+ "type": "uint256"
608
+ }
609
+ ],
610
+ "stateMutability": "view",
611
+ "type": "function"
612
+ },
613
+ {
614
+ "inputs": [],
615
+ "name": "getProtocolFeesCollector",
616
+ "outputs": [
617
+ {
618
+ "internalType": "contract ProtocolFeesCollector",
619
+ "name": "",
620
+ "type": "address"
621
+ }
622
+ ],
623
+ "stateMutability": "view",
624
+ "type": "function"
625
+ },
626
+ {
627
+ "inputs": [
628
+ { "internalType": "address", "name": "user", "type": "address" },
629
+ { "internalType": "address", "name": "relayer", "type": "address" }
630
+ ],
631
+ "name": "hasApprovedRelayer",
632
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
633
+ "stateMutability": "view",
634
+ "type": "function"
635
+ },
636
+ {
637
+ "inputs": [
638
+ { "internalType": "bytes32", "name": "poolId", "type": "bytes32" },
639
+ { "internalType": "address", "name": "sender", "type": "address" },
640
+ { "internalType": "address", "name": "recipient", "type": "address" },
641
+ {
642
+ "components": [
643
+ {
644
+ "internalType": "contract IAsset[]",
645
+ "name": "assets",
646
+ "type": "address[]"
647
+ },
648
+ {
649
+ "internalType": "uint256[]",
650
+ "name": "maxAmountsIn",
651
+ "type": "uint256[]"
652
+ },
653
+ { "internalType": "bytes", "name": "userData", "type": "bytes" },
654
+ {
655
+ "internalType": "bool",
656
+ "name": "fromInternalBalance",
657
+ "type": "bool"
658
+ }
659
+ ],
660
+ "internalType": "struct IVault.JoinPoolRequest",
661
+ "name": "request",
662
+ "type": "tuple"
663
+ }
664
+ ],
665
+ "name": "joinPool",
666
+ "outputs": [],
667
+ "stateMutability": "payable",
668
+ "type": "function"
669
+ },
670
+ {
671
+ "inputs": [
672
+ {
673
+ "components": [
674
+ {
675
+ "internalType": "enum IVault.PoolBalanceOpKind",
676
+ "name": "kind",
677
+ "type": "uint8"
678
+ },
679
+ { "internalType": "bytes32", "name": "poolId", "type": "bytes32" },
680
+ {
681
+ "internalType": "contract IERC20",
682
+ "name": "token",
683
+ "type": "address"
684
+ },
685
+ { "internalType": "uint256", "name": "amount", "type": "uint256" }
686
+ ],
687
+ "internalType": "struct IVault.PoolBalanceOp[]",
688
+ "name": "ops",
689
+ "type": "tuple[]"
690
+ }
691
+ ],
692
+ "name": "managePoolBalance",
693
+ "outputs": [],
694
+ "stateMutability": "nonpayable",
695
+ "type": "function"
696
+ },
697
+ {
698
+ "inputs": [
699
+ {
700
+ "components": [
701
+ {
702
+ "internalType": "enum IVault.UserBalanceOpKind",
703
+ "name": "kind",
704
+ "type": "uint8"
705
+ },
706
+ {
707
+ "internalType": "contract IAsset",
708
+ "name": "asset",
709
+ "type": "address"
710
+ },
711
+ { "internalType": "uint256", "name": "amount", "type": "uint256" },
712
+ { "internalType": "address", "name": "sender", "type": "address" },
713
+ {
714
+ "internalType": "address payable",
715
+ "name": "recipient",
716
+ "type": "address"
717
+ }
718
+ ],
719
+ "internalType": "struct IVault.UserBalanceOp[]",
720
+ "name": "ops",
721
+ "type": "tuple[]"
722
+ }
723
+ ],
724
+ "name": "manageUserBalance",
725
+ "outputs": [],
726
+ "stateMutability": "payable",
727
+ "type": "function"
728
+ },
729
+ {
730
+ "inputs": [
731
+ {
732
+ "internalType": "enum IVault.SwapKind",
733
+ "name": "kind",
734
+ "type": "uint8"
735
+ },
736
+ {
737
+ "components": [
738
+ { "internalType": "bytes32", "name": "poolId", "type": "bytes32" },
739
+ {
740
+ "internalType": "uint256",
741
+ "name": "assetInIndex",
742
+ "type": "uint256"
743
+ },
744
+ {
745
+ "internalType": "uint256",
746
+ "name": "assetOutIndex",
747
+ "type": "uint256"
748
+ },
749
+ { "internalType": "uint256", "name": "amount", "type": "uint256" },
750
+ { "internalType": "bytes", "name": "userData", "type": "bytes" }
751
+ ],
752
+ "internalType": "struct IVault.BatchSwapStep[]",
753
+ "name": "swaps",
754
+ "type": "tuple[]"
755
+ },
756
+ {
757
+ "internalType": "contract IAsset[]",
758
+ "name": "assets",
759
+ "type": "address[]"
760
+ },
761
+ {
762
+ "components": [
763
+ { "internalType": "address", "name": "sender", "type": "address" },
764
+ {
765
+ "internalType": "bool",
766
+ "name": "fromInternalBalance",
767
+ "type": "bool"
768
+ },
769
+ {
770
+ "internalType": "address payable",
771
+ "name": "recipient",
772
+ "type": "address"
773
+ },
774
+ {
775
+ "internalType": "bool",
776
+ "name": "toInternalBalance",
777
+ "type": "bool"
778
+ }
779
+ ],
780
+ "internalType": "struct IVault.FundManagement",
781
+ "name": "funds",
782
+ "type": "tuple"
783
+ }
784
+ ],
785
+ "name": "queryBatchSwap",
786
+ "outputs": [{ "internalType": "int256[]", "name": "", "type": "int256[]" }],
787
+ "stateMutability": "nonpayable",
788
+ "type": "function"
789
+ },
790
+ {
791
+ "inputs": [
792
+ {
793
+ "internalType": "enum IVault.PoolSpecialization",
794
+ "name": "specialization",
795
+ "type": "uint8"
796
+ }
797
+ ],
798
+ "name": "registerPool",
799
+ "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
800
+ "stateMutability": "nonpayable",
801
+ "type": "function"
802
+ },
803
+ {
804
+ "inputs": [
805
+ { "internalType": "bytes32", "name": "poolId", "type": "bytes32" },
806
+ {
807
+ "internalType": "contract IERC20[]",
808
+ "name": "tokens",
809
+ "type": "address[]"
810
+ },
811
+ {
812
+ "internalType": "address[]",
813
+ "name": "assetManagers",
814
+ "type": "address[]"
815
+ }
816
+ ],
817
+ "name": "registerTokens",
818
+ "outputs": [],
819
+ "stateMutability": "nonpayable",
820
+ "type": "function"
821
+ },
822
+ {
823
+ "inputs": [
824
+ {
825
+ "internalType": "contract IAuthorizer",
826
+ "name": "newAuthorizer",
827
+ "type": "address"
828
+ }
829
+ ],
830
+ "name": "setAuthorizer",
831
+ "outputs": [],
832
+ "stateMutability": "nonpayable",
833
+ "type": "function"
834
+ },
835
+ {
836
+ "inputs": [{ "internalType": "bool", "name": "paused", "type": "bool" }],
837
+ "name": "setPaused",
838
+ "outputs": [],
839
+ "stateMutability": "nonpayable",
840
+ "type": "function"
841
+ },
842
+ {
843
+ "inputs": [
844
+ { "internalType": "address", "name": "sender", "type": "address" },
845
+ { "internalType": "address", "name": "relayer", "type": "address" },
846
+ { "internalType": "bool", "name": "approved", "type": "bool" }
847
+ ],
848
+ "name": "setRelayerApproval",
849
+ "outputs": [],
850
+ "stateMutability": "nonpayable",
851
+ "type": "function"
852
+ },
853
+ {
854
+ "inputs": [
855
+ {
856
+ "components": [
857
+ { "internalType": "bytes32", "name": "poolId", "type": "bytes32" },
858
+ {
859
+ "internalType": "enum IVault.SwapKind",
860
+ "name": "kind",
861
+ "type": "uint8"
862
+ },
863
+ {
864
+ "internalType": "contract IAsset",
865
+ "name": "assetIn",
866
+ "type": "address"
867
+ },
868
+ {
869
+ "internalType": "contract IAsset",
870
+ "name": "assetOut",
871
+ "type": "address"
872
+ },
873
+ { "internalType": "uint256", "name": "amount", "type": "uint256" },
874
+ { "internalType": "bytes", "name": "userData", "type": "bytes" }
875
+ ],
876
+ "internalType": "struct IVault.SingleSwap",
877
+ "name": "singleSwap",
878
+ "type": "tuple"
879
+ },
880
+ {
881
+ "components": [
882
+ { "internalType": "address", "name": "sender", "type": "address" },
883
+ {
884
+ "internalType": "bool",
885
+ "name": "fromInternalBalance",
886
+ "type": "bool"
887
+ },
888
+ {
889
+ "internalType": "address payable",
890
+ "name": "recipient",
891
+ "type": "address"
892
+ },
893
+ {
894
+ "internalType": "bool",
895
+ "name": "toInternalBalance",
896
+ "type": "bool"
897
+ }
898
+ ],
899
+ "internalType": "struct IVault.FundManagement",
900
+ "name": "funds",
901
+ "type": "tuple"
902
+ },
903
+ { "internalType": "uint256", "name": "limit", "type": "uint256" },
904
+ { "internalType": "uint256", "name": "deadline", "type": "uint256" }
905
+ ],
906
+ "name": "swap",
907
+ "outputs": [
908
+ {
909
+ "internalType": "uint256",
910
+ "name": "amountCalculated",
911
+ "type": "uint256"
912
+ }
913
+ ],
914
+ "stateMutability": "payable",
915
+ "type": "function"
916
+ },
917
+ { "stateMutability": "payable", "type": "receive" }
918
+ ]