@enzymefinance/testutils 4.0.0-next.1 → 4.0.0-next.6

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 (80) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/declarations/src/assertions.d.ts +2 -2
  3. package/dist/declarations/src/deployment.d.ts +168 -64
  4. package/dist/declarations/src/gasRelayer.d.ts +14 -12
  5. package/dist/declarations/src/helpers.d.ts +5 -4
  6. package/dist/declarations/src/scaffolding/assets.d.ts +3 -3
  7. package/dist/declarations/src/scaffolding/chainlink.d.ts +2 -2
  8. package/dist/declarations/src/scaffolding/common.d.ts +1 -1
  9. package/dist/declarations/src/scaffolding/core.d.ts +4 -3
  10. package/dist/declarations/src/scaffolding/extensions/common.d.ts +4 -4
  11. package/dist/declarations/src/scaffolding/extensions/external-positions/actions.d.ts +14 -5
  12. package/dist/declarations/src/scaffolding/extensions/external-positions/compound.d.ts +22 -22
  13. package/dist/declarations/src/scaffolding/extensions/external-positions/index.d.ts +1 -0
  14. package/dist/declarations/src/scaffolding/extensions/external-positions/mocks.d.ts +40 -7
  15. package/dist/declarations/src/scaffolding/extensions/external-positions/uniswap-v3-liquidity.d.ts +99 -0
  16. package/dist/declarations/src/scaffolding/extensions/fees.d.ts +1 -1
  17. package/dist/declarations/src/scaffolding/extensions/integrations/aave.d.ts +4 -3
  18. package/dist/declarations/src/scaffolding/extensions/integrations/compound.d.ts +5 -5
  19. package/dist/declarations/src/scaffolding/extensions/integrations/curve.d.ts +108 -33
  20. package/dist/declarations/src/scaffolding/extensions/integrations/idle.d.ts +3 -3
  21. package/dist/declarations/src/scaffolding/extensions/integrations/index.d.ts +3 -0
  22. package/dist/declarations/src/scaffolding/extensions/integrations/mock.d.ts +4 -4
  23. package/dist/declarations/src/scaffolding/extensions/integrations/olympusV2.d.ts +17 -0
  24. package/dist/declarations/src/scaffolding/extensions/integrations/paraSwapV4.d.ts +6 -5
  25. package/dist/declarations/src/scaffolding/extensions/integrations/paraSwapV5.d.ts +23 -0
  26. package/dist/declarations/src/scaffolding/extensions/integrations/poolTogetherV4.d.ts +29 -0
  27. package/dist/declarations/src/scaffolding/extensions/integrations/synthetix.d.ts +11 -3
  28. package/dist/declarations/src/scaffolding/extensions/integrations/trackedAssets.d.ts +3 -3
  29. package/dist/declarations/src/scaffolding/extensions/integrations/uniswapV2.d.ts +10 -10
  30. package/dist/declarations/src/scaffolding/extensions/integrations/uniswapV3.d.ts +4 -4
  31. package/dist/declarations/src/scaffolding/extensions/integrations/yearn.d.ts +3 -3
  32. package/dist/declarations/src/scaffolding/extensions/integrations/zeroExV2.d.ts +3 -3
  33. package/dist/declarations/src/scaffolding/extensions/policies.d.ts +1 -1
  34. package/dist/declarations/src/scaffolding/setup.d.ts +11 -9
  35. package/dist/declarations/src/scaffolding/shares.d.ts +4 -4
  36. package/dist/declarations/src/scaffolding/vaultCalls.d.ts +15 -6
  37. package/dist/declarations/src/whales.d.ts +20 -18
  38. package/dist/enzymefinance-testutils.browser.cjs.js +1783 -763
  39. package/dist/enzymefinance-testutils.browser.esm.js +1746 -757
  40. package/dist/enzymefinance-testutils.cjs.dev.js +1783 -763
  41. package/dist/enzymefinance-testutils.cjs.prod.js +1783 -763
  42. package/dist/enzymefinance-testutils.esm.js +1746 -757
  43. package/package.json +5 -5
  44. package/src/assertions.ts +5 -2
  45. package/src/deployment.ts +215 -111
  46. package/src/gasRelayer.ts +17 -18
  47. package/src/helpers.ts +6 -4
  48. package/src/scaffolding/assets.ts +7 -6
  49. package/src/scaffolding/chainlink.ts +2 -2
  50. package/src/scaffolding/common.ts +1 -1
  51. package/src/scaffolding/core.ts +30 -12
  52. package/src/scaffolding/extensions/common.ts +4 -4
  53. package/src/scaffolding/extensions/external-positions/actions.ts +33 -6
  54. package/src/scaffolding/extensions/external-positions/compound.ts +76 -96
  55. package/src/scaffolding/extensions/external-positions/index.ts +1 -0
  56. package/src/scaffolding/extensions/external-positions/mocks.ts +132 -10
  57. package/src/scaffolding/extensions/external-positions/uniswap-v3-liquidity.ts +290 -0
  58. package/src/scaffolding/extensions/fees.ts +1 -1
  59. package/src/scaffolding/extensions/integrations/aave.ts +6 -8
  60. package/src/scaffolding/extensions/integrations/compound.ts +10 -11
  61. package/src/scaffolding/extensions/integrations/curve.ts +333 -68
  62. package/src/scaffolding/extensions/integrations/idle.ts +9 -11
  63. package/src/scaffolding/extensions/integrations/index.ts +3 -0
  64. package/src/scaffolding/extensions/integrations/mock.ts +11 -13
  65. package/src/scaffolding/extensions/integrations/olympusV2.ts +71 -0
  66. package/src/scaffolding/extensions/integrations/paraSwapV4.ts +16 -11
  67. package/src/scaffolding/extensions/integrations/paraSwapV5.ts +73 -0
  68. package/src/scaffolding/extensions/integrations/poolTogetherV4.ts +117 -0
  69. package/src/scaffolding/extensions/integrations/synthetix.ts +45 -12
  70. package/src/scaffolding/extensions/integrations/trackedAssets.ts +3 -4
  71. package/src/scaffolding/extensions/integrations/uniswapV2.ts +31 -27
  72. package/src/scaffolding/extensions/integrations/uniswapV3.ts +9 -10
  73. package/src/scaffolding/extensions/integrations/yearn.ts +9 -11
  74. package/src/scaffolding/extensions/integrations/zeroExV2.ts +9 -7
  75. package/src/scaffolding/extensions/policies.ts +2 -1
  76. package/src/scaffolding/setup.ts +27 -13
  77. package/src/scaffolding/shares.ts +5 -4
  78. package/src/scaffolding/vaultCalls.ts +32 -2
  79. package/src/whales.ts +30 -17
  80. package/tsconfig.json +2 -1
@@ -1,32 +1,44 @@
1
- import { AddressLike, Call, Contract, contract, Send } from '@enzymefinance/ethers';
2
- import { SignerWithAddress } from '@enzymefinance/hardhat';
1
+ import type { AddressLike, Call, Contract, Send } from '@enzymefinance/ethers';
2
+ import { contract } from '@enzymefinance/ethers';
3
+ import type { SignerWithAddress } from '@enzymefinance/hardhat';
4
+ import type {
5
+ ComptrollerLib,
6
+ CurveExchangeAdapter,
7
+ CurveLiquidityAaveAdapter,
8
+ CurveLiquidityAdapter,
9
+ CurveLiquidityEursAdapter,
10
+ CurveLiquiditySethAdapter,
11
+ CurveLiquidityStethAdapter,
12
+ CurveRedeemType,
13
+ IntegrationManager,
14
+ StandardToken,
15
+ } from '@enzymefinance/protocol';
3
16
  import {
4
17
  callOnIntegrationArgs,
5
18
  claimRewardsSelector,
6
- ComptrollerLib,
7
19
  curveAaveLendAndStakeArgs,
8
20
  curveAaveLendArgs,
9
21
  curveAaveRedeemArgs,
10
22
  curveAaveStakeArgs,
11
23
  curveAaveUnstakeAndRedeemArgs,
12
24
  curveAaveUnstakeArgs,
25
+ curveClaimRewardsArgs,
13
26
  curveEursLendAndStakeArgs,
14
27
  curveEursLendArgs,
15
28
  curveEursRedeemArgs,
16
29
  curveEursStakeArgs,
17
30
  curveEursUnstakeAndRedeemArgs,
18
31
  curveEursUnstakeArgs,
19
- CurveExchangeAdapter,
20
- CurveLiquidityAaveAdapter,
21
- CurveLiquidityEursAdapter,
22
- CurveLiquiditySethAdapter,
23
- CurveLiquidityStethAdapter,
32
+ curveLendAndStakeArgs,
33
+ curveLendArgs,
34
+ curveRedeemArgs,
24
35
  curveSethLendAndStakeArgs,
25
36
  curveSethLendArgs,
26
37
  curveSethRedeemArgs,
27
38
  curveSethStakeArgs,
28
39
  curveSethUnstakeAndRedeemArgs,
29
40
  curveSethUnstakeArgs,
41
+ curveStakeArgs,
30
42
  curveStethLendAndStakeArgs,
31
43
  curveStethLendArgs,
32
44
  curveStethRedeemArgs,
@@ -34,18 +46,19 @@ import {
34
46
  curveStethUnstakeAndRedeemArgs,
35
47
  curveStethUnstakeArgs,
36
48
  curveTakeOrderArgs,
37
- IntegrationManager,
49
+ curveUnstakeAndRedeemArgs,
50
+ curveUnstakeArgs,
38
51
  IntegrationManagerActionId,
39
52
  lendAndStakeSelector,
40
53
  lendSelector,
41
54
  redeemSelector,
42
55
  stakeSelector,
43
- StandardToken,
44
56
  takeOrderSelector,
45
57
  unstakeAndRedeemSelector,
46
58
  unstakeSelector,
47
59
  } from '@enzymefinance/protocol';
48
- import { BigNumber, BigNumberish, constants, utils } from 'ethers';
60
+ import type { BigNumberish, BytesLike } from 'ethers';
61
+ import { BigNumber, constants, utils } from 'ethers';
49
62
 
50
63
  export interface CurveLiquidityGaugeV2 extends Contract<CurveLiquidityGaugeV2> {
51
64
  claim_rewards: Send<(_addr: AddressLike) => void>;
@@ -57,6 +70,16 @@ export const CurveLiquidityGaugeV2 = contract<CurveLiquidityGaugeV2>()`
57
70
  function integrate_fraction(address) view returns (uint256)
58
71
  `;
59
72
 
73
+ export interface CurveRegistry extends Contract<CurveRegistry> {
74
+ get_coins: Call<(_pool: AddressLike) => AddressLike[], Contract<any>>;
75
+ get_lp_token: Call<(_pool: AddressLike) => AddressLike, Contract<any>>;
76
+ }
77
+
78
+ export const CurveRegistry = contract<CurveRegistry>()`
79
+ function get_coins(address) view returns (address[8])
80
+ function get_lp_token(address) view returns (address)
81
+ `;
82
+
60
83
  // prettier-ignore
61
84
  export interface CurveSwaps extends Contract<CurveSwaps> {
62
85
  get_best_rate: Call<(_from: AddressLike, to: AddressLike, amount: BigNumberish) => { bestPool: AddressLike, amountReceived: BigNumber }, CurveSwaps>
@@ -98,17 +121,17 @@ export async function curveTakeOrder({
98
121
  minIncomingAssetAmount?: BigNumberish;
99
122
  }) {
100
123
  const takeOrderArgs = curveTakeOrderArgs({
124
+ incomingAsset,
125
+ minIncomingAssetAmount,
126
+ outgoingAsset,
127
+ outgoingAssetAmount,
101
128
  pool,
102
- outgoingAsset: outgoingAsset,
103
- outgoingAssetAmount: outgoingAssetAmount,
104
- incomingAsset: incomingAsset,
105
- minIncomingAssetAmount: minIncomingAssetAmount,
106
129
  });
107
130
 
108
131
  const callArgs = callOnIntegrationArgs({
109
132
  adapter: curveExchangeAdapter,
110
- selector: takeOrderSelector,
111
133
  encodedCallArgs: takeOrderArgs,
134
+ selector: takeOrderSelector,
112
135
  });
113
136
 
114
137
  return comptrollerProxy
@@ -116,6 +139,248 @@ export async function curveTakeOrder({
116
139
  .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
117
140
  }
118
141
 
142
+ // combined liquidity
143
+
144
+ export function curveClaimRewards({
145
+ comptrollerProxy,
146
+ integrationManager,
147
+ fundOwner,
148
+ curveLiquidityAdapter,
149
+ gaugeToken,
150
+ }: {
151
+ comptrollerProxy: ComptrollerLib;
152
+ integrationManager: IntegrationManager;
153
+ fundOwner: SignerWithAddress;
154
+ curveLiquidityAdapter: CurveLiquidityAdapter;
155
+ gaugeToken: AddressLike;
156
+ }) {
157
+ const callArgs = callOnIntegrationArgs({
158
+ adapter: curveLiquidityAdapter,
159
+ encodedCallArgs: curveClaimRewardsArgs({ gaugeToken }),
160
+ selector: claimRewardsSelector,
161
+ });
162
+
163
+ return comptrollerProxy
164
+ .connect(fundOwner)
165
+ .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
166
+ }
167
+
168
+ export async function curveLend({
169
+ comptrollerProxy,
170
+ integrationManager,
171
+ signer,
172
+ curveLiquidityAdapter,
173
+ pool,
174
+ orderedOutgoingAssetAmounts,
175
+ minIncomingLpTokenAmount = BigNumber.from(1),
176
+ useUnderlyings,
177
+ }: {
178
+ comptrollerProxy: ComptrollerLib;
179
+ integrationManager: IntegrationManager;
180
+ signer: SignerWithAddress;
181
+ curveLiquidityAdapter: CurveLiquidityAdapter;
182
+ pool: AddressLike;
183
+ orderedOutgoingAssetAmounts: BigNumberish[];
184
+ minIncomingLpTokenAmount?: BigNumberish;
185
+ useUnderlyings: boolean;
186
+ }) {
187
+ const callArgs = callOnIntegrationArgs({
188
+ adapter: curveLiquidityAdapter,
189
+ encodedCallArgs: curveLendArgs({
190
+ minIncomingLpTokenAmount,
191
+ orderedOutgoingAssetAmounts,
192
+ pool,
193
+ useUnderlyings,
194
+ }),
195
+ selector: lendSelector,
196
+ });
197
+
198
+ return comptrollerProxy
199
+ .connect(signer)
200
+ .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
201
+ }
202
+
203
+ export async function curveLendAndStake({
204
+ comptrollerProxy,
205
+ integrationManager,
206
+ signer,
207
+ curveLiquidityAdapter,
208
+ pool,
209
+ orderedOutgoingAssetAmounts,
210
+ incomingGaugeToken,
211
+ minIncomingGaugeTokenAmount = BigNumber.from(1),
212
+ useUnderlyings,
213
+ }: {
214
+ comptrollerProxy: ComptrollerLib;
215
+ integrationManager: IntegrationManager;
216
+ signer: SignerWithAddress;
217
+ curveLiquidityAdapter: CurveLiquidityAdapter;
218
+ pool: AddressLike;
219
+ orderedOutgoingAssetAmounts: BigNumberish[];
220
+ incomingGaugeToken: AddressLike;
221
+ minIncomingGaugeTokenAmount?: BigNumberish;
222
+ useUnderlyings: boolean;
223
+ }) {
224
+ const callArgs = callOnIntegrationArgs({
225
+ adapter: curveLiquidityAdapter,
226
+ encodedCallArgs: curveLendAndStakeArgs({
227
+ incomingGaugeToken,
228
+ minIncomingGaugeTokenAmount,
229
+ orderedOutgoingAssetAmounts,
230
+ pool,
231
+ useUnderlyings,
232
+ }),
233
+ selector: lendAndStakeSelector,
234
+ });
235
+
236
+ return comptrollerProxy
237
+ .connect(signer)
238
+ .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
239
+ }
240
+
241
+ export async function curveRedeem({
242
+ comptrollerProxy,
243
+ integrationManager,
244
+ signer,
245
+ curveLiquidityAdapter,
246
+ pool,
247
+ outgoingLpTokenAmount,
248
+ useUnderlyings,
249
+ redeemType,
250
+ incomingAssetData,
251
+ }: {
252
+ comptrollerProxy: ComptrollerLib;
253
+ integrationManager: IntegrationManager;
254
+ signer: SignerWithAddress;
255
+ curveLiquidityAdapter: CurveLiquidityAdapter;
256
+ pool: AddressLike;
257
+ outgoingLpTokenAmount: BigNumberish;
258
+ useUnderlyings: boolean;
259
+ redeemType: CurveRedeemType;
260
+ incomingAssetData: BytesLike;
261
+ }) {
262
+ const callArgs = callOnIntegrationArgs({
263
+ adapter: curveLiquidityAdapter,
264
+ encodedCallArgs: curveRedeemArgs({
265
+ incomingAssetData,
266
+ outgoingLpTokenAmount,
267
+ pool,
268
+ redeemType,
269
+ useUnderlyings,
270
+ }),
271
+ selector: redeemSelector,
272
+ });
273
+
274
+ return comptrollerProxy
275
+ .connect(signer)
276
+ .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
277
+ }
278
+
279
+ export async function curveStake({
280
+ comptrollerProxy,
281
+ integrationManager,
282
+ signer,
283
+ curveLiquidityAdapter,
284
+ pool,
285
+ incomingGaugeToken,
286
+ amount,
287
+ }: {
288
+ comptrollerProxy: ComptrollerLib;
289
+ integrationManager: IntegrationManager;
290
+ signer: SignerWithAddress;
291
+ curveLiquidityAdapter: CurveLiquidityAdapter;
292
+ pool: AddressLike;
293
+ incomingGaugeToken: AddressLike;
294
+ amount: BigNumberish;
295
+ }) {
296
+ const callArgs = callOnIntegrationArgs({
297
+ adapter: curveLiquidityAdapter,
298
+ encodedCallArgs: curveStakeArgs({
299
+ amount,
300
+ incomingGaugeToken,
301
+ pool,
302
+ }),
303
+ selector: stakeSelector,
304
+ });
305
+
306
+ return comptrollerProxy
307
+ .connect(signer)
308
+ .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
309
+ }
310
+
311
+ export async function curveUnstake({
312
+ comptrollerProxy,
313
+ integrationManager,
314
+ signer,
315
+ curveLiquidityAdapter,
316
+ pool,
317
+ outgoingGaugeToken,
318
+ amount,
319
+ }: {
320
+ comptrollerProxy: ComptrollerLib;
321
+ integrationManager: IntegrationManager;
322
+ signer: SignerWithAddress;
323
+ curveLiquidityAdapter: CurveLiquidityAdapter;
324
+ pool: AddressLike;
325
+ outgoingGaugeToken: AddressLike;
326
+ amount: BigNumberish;
327
+ }) {
328
+ const callArgs = callOnIntegrationArgs({
329
+ adapter: curveLiquidityAdapter,
330
+ encodedCallArgs: curveUnstakeArgs({
331
+ amount,
332
+ outgoingGaugeToken,
333
+ pool,
334
+ }),
335
+ selector: unstakeSelector,
336
+ });
337
+
338
+ return comptrollerProxy
339
+ .connect(signer)
340
+ .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
341
+ }
342
+
343
+ export async function curveUnstakeAndRedeem({
344
+ comptrollerProxy,
345
+ integrationManager,
346
+ signer,
347
+ curveLiquidityAdapter,
348
+ pool,
349
+ outgoingGaugeToken,
350
+ outgoingGaugeTokenAmount,
351
+ useUnderlyings,
352
+ redeemType,
353
+ incomingAssetData,
354
+ }: {
355
+ comptrollerProxy: ComptrollerLib;
356
+ integrationManager: IntegrationManager;
357
+ signer: SignerWithAddress;
358
+ curveLiquidityAdapter: CurveLiquidityAdapter;
359
+ pool: AddressLike;
360
+ outgoingGaugeToken: StandardToken;
361
+ outgoingGaugeTokenAmount: BigNumberish;
362
+ useUnderlyings: boolean;
363
+ redeemType: CurveRedeemType;
364
+ incomingAssetData: BytesLike;
365
+ }) {
366
+ const callArgs = callOnIntegrationArgs({
367
+ adapter: curveLiquidityAdapter,
368
+ encodedCallArgs: curveUnstakeAndRedeemArgs({
369
+ incomingAssetData,
370
+ outgoingGaugeToken,
371
+ outgoingGaugeTokenAmount,
372
+ pool,
373
+ redeemType,
374
+ useUnderlyings,
375
+ }),
376
+ selector: unstakeAndRedeemSelector,
377
+ });
378
+
379
+ return comptrollerProxy
380
+ .connect(signer)
381
+ .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
382
+ }
383
+
119
384
  // aave pool
120
385
 
121
386
  export function curveAaveClaimRewards({
@@ -131,8 +396,8 @@ export function curveAaveClaimRewards({
131
396
  }) {
132
397
  const callArgs = callOnIntegrationArgs({
133
398
  adapter: curveLiquidityAaveAdapter,
134
- selector: claimRewardsSelector,
135
399
  encodedCallArgs: constants.HashZero,
400
+ selector: claimRewardsSelector,
136
401
  });
137
402
 
138
403
  return comptrollerProxy
@@ -163,14 +428,14 @@ export function curveAaveLend({
163
428
  }) {
164
429
  const callArgs = callOnIntegrationArgs({
165
430
  adapter: curveLiquidityAaveAdapter,
166
- selector: lendSelector,
167
431
  encodedCallArgs: curveAaveLendArgs({
432
+ minIncomingLPTokenAmount,
168
433
  outgoingAaveDaiAmount,
169
434
  outgoingAaveUsdcAmount,
170
435
  outgoingAaveUsdtAmount,
171
- minIncomingLPTokenAmount,
172
436
  useUnderlyings,
173
437
  }),
438
+ selector: lendSelector,
174
439
  });
175
440
 
176
441
  return comptrollerProxy
@@ -201,14 +466,14 @@ export function curveAaveLendAndStake({
201
466
  }) {
202
467
  const callArgs = callOnIntegrationArgs({
203
468
  adapter: curveLiquidityAaveAdapter,
204
- selector: lendAndStakeSelector,
205
469
  encodedCallArgs: curveAaveLendAndStakeArgs({
470
+ minIncomingLiquidityGaugeTokenAmount,
206
471
  outgoingAaveDaiAmount,
207
472
  outgoingAaveUsdcAmount,
208
473
  outgoingAaveUsdtAmount,
209
- minIncomingLiquidityGaugeTokenAmount,
210
474
  useUnderlyings,
211
475
  }),
476
+ selector: lendAndStakeSelector,
212
477
  });
213
478
 
214
479
  return comptrollerProxy
@@ -241,15 +506,15 @@ export function curveAaveRedeem({
241
506
  }) {
242
507
  const callArgs = callOnIntegrationArgs({
243
508
  adapter: curveLiquidityAaveAdapter,
244
- selector: redeemSelector,
245
509
  encodedCallArgs: curveAaveRedeemArgs({
246
- outgoingLPTokenAmount,
247
510
  minIncomingAaveDaiAmount,
248
511
  minIncomingAaveUsdcAmount,
249
512
  minIncomingAaveUsdtAmount,
513
+ outgoingLPTokenAmount,
250
514
  receiveSingleAsset,
251
515
  useUnderlyings,
252
516
  }),
517
+ selector: redeemSelector,
253
518
  });
254
519
 
255
520
  return comptrollerProxy
@@ -272,10 +537,10 @@ export function curveAaveStake({
272
537
  }) {
273
538
  const callArgs = callOnIntegrationArgs({
274
539
  adapter: curveLiquidityAaveAdapter,
275
- selector: stakeSelector,
276
540
  encodedCallArgs: curveAaveStakeArgs({
277
541
  outgoingLPTokenAmount,
278
542
  }),
543
+ selector: stakeSelector,
279
544
  });
280
545
 
281
546
  return comptrollerProxy
@@ -308,15 +573,15 @@ export function curveAaveUnstakeAndRedeem({
308
573
  }) {
309
574
  const callArgs = callOnIntegrationArgs({
310
575
  adapter: curveLiquidityAaveAdapter,
311
- selector: unstakeAndRedeemSelector,
312
576
  encodedCallArgs: curveAaveUnstakeAndRedeemArgs({
313
- outgoingLiquidityGaugeTokenAmount,
314
577
  minIncomingAaveDaiAmount,
315
578
  minIncomingAaveUsdcAmount,
316
579
  minIncomingAaveUsdtAmount,
580
+ outgoingLiquidityGaugeTokenAmount,
317
581
  receiveSingleAsset,
318
582
  useUnderlyings,
319
583
  }),
584
+ selector: unstakeAndRedeemSelector,
320
585
  });
321
586
 
322
587
  return comptrollerProxy
@@ -339,10 +604,10 @@ export function curveAaveUnstake({
339
604
  }) {
340
605
  const callArgs = callOnIntegrationArgs({
341
606
  adapter: curveLiquidityAaveAdapter,
342
- selector: unstakeSelector,
343
607
  encodedCallArgs: curveAaveUnstakeArgs({
344
608
  outgoingLiquidityGaugeTokenAmount,
345
609
  }),
610
+ selector: unstakeSelector,
346
611
  });
347
612
 
348
613
  return comptrollerProxy
@@ -365,8 +630,8 @@ export function curveEursClaimRewards({
365
630
  }) {
366
631
  const callArgs = callOnIntegrationArgs({
367
632
  adapter: curveLiquidityEursAdapter,
368
- selector: claimRewardsSelector,
369
633
  encodedCallArgs: constants.HashZero,
634
+ selector: claimRewardsSelector,
370
635
  });
371
636
 
372
637
  return comptrollerProxy
@@ -393,12 +658,12 @@ export function curveEursLend({
393
658
  }) {
394
659
  const callArgs = callOnIntegrationArgs({
395
660
  adapter: curveLiquidityEursAdapter,
396
- selector: lendSelector,
397
661
  encodedCallArgs: curveEursLendArgs({
662
+ minIncomingLPTokenAmount,
398
663
  outgoingEursAmount,
399
664
  outgoingSeurAmount,
400
- minIncomingLPTokenAmount,
401
665
  }),
666
+ selector: lendSelector,
402
667
  });
403
668
 
404
669
  return comptrollerProxy
@@ -425,12 +690,12 @@ export function curveEursLendAndStake({
425
690
  }) {
426
691
  const callArgs = callOnIntegrationArgs({
427
692
  adapter: curveLiquidityEursAdapter,
428
- selector: lendAndStakeSelector,
429
693
  encodedCallArgs: curveEursLendAndStakeArgs({
694
+ minIncomingLiquidityGaugeTokenAmount,
430
695
  outgoingEursAmount,
431
696
  outgoingSeurAmount,
432
- minIncomingLiquidityGaugeTokenAmount,
433
697
  }),
698
+ selector: lendAndStakeSelector,
434
699
  });
435
700
 
436
701
  return comptrollerProxy
@@ -459,13 +724,13 @@ export function curveEursRedeem({
459
724
  }) {
460
725
  const callArgs = callOnIntegrationArgs({
461
726
  adapter: curveLiquidityEursAdapter,
462
- selector: redeemSelector,
463
727
  encodedCallArgs: curveEursRedeemArgs({
464
- outgoingLPTokenAmount,
465
728
  minIncomingEursAmount,
466
729
  minIncomingSeurAmount,
730
+ outgoingLPTokenAmount,
467
731
  receiveSingleAsset,
468
732
  }),
733
+ selector: redeemSelector,
469
734
  });
470
735
 
471
736
  return comptrollerProxy
@@ -488,10 +753,10 @@ export function curveEursStake({
488
753
  }) {
489
754
  const callArgs = callOnIntegrationArgs({
490
755
  adapter: curveLiquidityEursAdapter,
491
- selector: stakeSelector,
492
756
  encodedCallArgs: curveEursStakeArgs({
493
757
  outgoingLPTokenAmount,
494
758
  }),
759
+ selector: stakeSelector,
495
760
  });
496
761
 
497
762
  return comptrollerProxy
@@ -520,13 +785,13 @@ export function curveEursUnstakeAndRedeem({
520
785
  }) {
521
786
  const callArgs = callOnIntegrationArgs({
522
787
  adapter: curveLiquidityEursAdapter,
523
- selector: unstakeAndRedeemSelector,
524
788
  encodedCallArgs: curveEursUnstakeAndRedeemArgs({
525
- outgoingLiquidityGaugeTokenAmount,
526
789
  minIncomingEursAmount,
527
790
  minIncomingSeurAmount,
791
+ outgoingLiquidityGaugeTokenAmount,
528
792
  receiveSingleAsset,
529
793
  }),
794
+ selector: unstakeAndRedeemSelector,
530
795
  });
531
796
 
532
797
  return comptrollerProxy
@@ -549,10 +814,10 @@ export function curveEursUnstake({
549
814
  }) {
550
815
  const callArgs = callOnIntegrationArgs({
551
816
  adapter: curveLiquidityEursAdapter,
552
- selector: unstakeSelector,
553
817
  encodedCallArgs: curveEursUnstakeArgs({
554
818
  outgoingLiquidityGaugeTokenAmount,
555
819
  }),
820
+ selector: unstakeSelector,
556
821
  });
557
822
 
558
823
  return comptrollerProxy
@@ -575,8 +840,8 @@ export function curveSethClaimRewards({
575
840
  }) {
576
841
  const callArgs = callOnIntegrationArgs({
577
842
  adapter: curveLiquiditySethAdapter,
578
- selector: claimRewardsSelector,
579
843
  encodedCallArgs: constants.HashZero,
844
+ selector: claimRewardsSelector,
580
845
  });
581
846
 
582
847
  return comptrollerProxy
@@ -603,12 +868,12 @@ export function curveSethLend({
603
868
  }) {
604
869
  const callArgs = callOnIntegrationArgs({
605
870
  adapter: curveLiquiditySethAdapter,
606
- selector: lendSelector,
607
871
  encodedCallArgs: curveSethLendArgs({
608
- outgoingWethAmount,
609
- outgoingSethAmount,
610
872
  minIncomingLPTokenAmount,
873
+ outgoingSethAmount,
874
+ outgoingWethAmount,
611
875
  }),
876
+ selector: lendSelector,
612
877
  });
613
878
 
614
879
  return comptrollerProxy
@@ -635,12 +900,12 @@ export function curveSethLendAndStake({
635
900
  }) {
636
901
  const callArgs = callOnIntegrationArgs({
637
902
  adapter: curveLiquiditySethAdapter,
638
- selector: lendAndStakeSelector,
639
903
  encodedCallArgs: curveSethLendAndStakeArgs({
640
- outgoingWethAmount,
641
- outgoingSethAmount,
642
904
  minIncomingLiquidityGaugeTokenAmount,
905
+ outgoingSethAmount,
906
+ outgoingWethAmount,
643
907
  }),
908
+ selector: lendAndStakeSelector,
644
909
  });
645
910
 
646
911
  return comptrollerProxy
@@ -669,13 +934,13 @@ export function curveSethRedeem({
669
934
  }) {
670
935
  const callArgs = callOnIntegrationArgs({
671
936
  adapter: curveLiquiditySethAdapter,
672
- selector: redeemSelector,
673
937
  encodedCallArgs: curveSethRedeemArgs({
674
- outgoingLPTokenAmount,
675
- minIncomingWethAmount,
676
938
  minIncomingSethAmount,
939
+ minIncomingWethAmount,
940
+ outgoingLPTokenAmount,
677
941
  receiveSingleAsset,
678
942
  }),
943
+ selector: redeemSelector,
679
944
  });
680
945
 
681
946
  return comptrollerProxy
@@ -698,10 +963,10 @@ export function curveSethStake({
698
963
  }) {
699
964
  const callArgs = callOnIntegrationArgs({
700
965
  adapter: curveLiquiditySethAdapter,
701
- selector: stakeSelector,
702
966
  encodedCallArgs: curveSethStakeArgs({
703
967
  outgoingLPTokenAmount,
704
968
  }),
969
+ selector: stakeSelector,
705
970
  });
706
971
 
707
972
  return comptrollerProxy
@@ -730,13 +995,13 @@ export function curveSethUnstakeAndRedeem({
730
995
  }) {
731
996
  const callArgs = callOnIntegrationArgs({
732
997
  adapter: curveLiquiditySethAdapter,
733
- selector: unstakeAndRedeemSelector,
734
998
  encodedCallArgs: curveSethUnstakeAndRedeemArgs({
735
- outgoingLiquidityGaugeTokenAmount,
736
- minIncomingWethAmount,
737
999
  minIncomingSethAmount,
1000
+ minIncomingWethAmount,
1001
+ outgoingLiquidityGaugeTokenAmount,
738
1002
  receiveSingleAsset,
739
1003
  }),
1004
+ selector: unstakeAndRedeemSelector,
740
1005
  });
741
1006
 
742
1007
  return comptrollerProxy
@@ -759,10 +1024,10 @@ export function curveSethUnstake({
759
1024
  }) {
760
1025
  const callArgs = callOnIntegrationArgs({
761
1026
  adapter: curveLiquiditySethAdapter,
762
- selector: unstakeSelector,
763
1027
  encodedCallArgs: curveSethUnstakeArgs({
764
1028
  outgoingLiquidityGaugeTokenAmount,
765
1029
  }),
1030
+ selector: unstakeSelector,
766
1031
  });
767
1032
 
768
1033
  return comptrollerProxy
@@ -785,8 +1050,8 @@ export function curveStethClaimRewards({
785
1050
  }) {
786
1051
  const callArgs = callOnIntegrationArgs({
787
1052
  adapter: curveLiquidityStethAdapter,
788
- selector: claimRewardsSelector,
789
1053
  encodedCallArgs: constants.HashZero,
1054
+ selector: claimRewardsSelector,
790
1055
  });
791
1056
 
792
1057
  return comptrollerProxy
@@ -813,12 +1078,12 @@ export function curveStethLend({
813
1078
  }) {
814
1079
  const callArgs = callOnIntegrationArgs({
815
1080
  adapter: curveLiquidityStethAdapter,
816
- selector: lendSelector,
817
1081
  encodedCallArgs: curveStethLendArgs({
818
- outgoingWethAmount,
819
- outgoingStethAmount,
820
1082
  minIncomingLPTokenAmount,
1083
+ outgoingStethAmount,
1084
+ outgoingWethAmount,
821
1085
  }),
1086
+ selector: lendSelector,
822
1087
  });
823
1088
 
824
1089
  return comptrollerProxy
@@ -845,12 +1110,12 @@ export function curveStethLendAndStake({
845
1110
  }) {
846
1111
  const callArgs = callOnIntegrationArgs({
847
1112
  adapter: curveLiquidityStethAdapter,
848
- selector: lendAndStakeSelector,
849
1113
  encodedCallArgs: curveStethLendAndStakeArgs({
850
- outgoingWethAmount,
851
- outgoingStethAmount,
852
1114
  minIncomingLiquidityGaugeTokenAmount,
1115
+ outgoingStethAmount,
1116
+ outgoingWethAmount,
853
1117
  }),
1118
+ selector: lendAndStakeSelector,
854
1119
  });
855
1120
 
856
1121
  return comptrollerProxy
@@ -879,13 +1144,13 @@ export function curveStethRedeem({
879
1144
  }) {
880
1145
  const callArgs = callOnIntegrationArgs({
881
1146
  adapter: curveLiquidityStethAdapter,
882
- selector: redeemSelector,
883
1147
  encodedCallArgs: curveStethRedeemArgs({
884
- outgoingLPTokenAmount,
885
- minIncomingWethAmount,
886
1148
  minIncomingStethAmount,
1149
+ minIncomingWethAmount,
1150
+ outgoingLPTokenAmount,
887
1151
  receiveSingleAsset,
888
1152
  }),
1153
+ selector: redeemSelector,
889
1154
  });
890
1155
 
891
1156
  return comptrollerProxy
@@ -908,10 +1173,10 @@ export function curveStethStake({
908
1173
  }) {
909
1174
  const callArgs = callOnIntegrationArgs({
910
1175
  adapter: curveLiquidityStethAdapter,
911
- selector: stakeSelector,
912
1176
  encodedCallArgs: curveStethStakeArgs({
913
1177
  outgoingLPTokenAmount,
914
1178
  }),
1179
+ selector: stakeSelector,
915
1180
  });
916
1181
 
917
1182
  return comptrollerProxy
@@ -940,13 +1205,13 @@ export function curveStethUnstakeAndRedeem({
940
1205
  }) {
941
1206
  const callArgs = callOnIntegrationArgs({
942
1207
  adapter: curveLiquidityStethAdapter,
943
- selector: unstakeAndRedeemSelector,
944
1208
  encodedCallArgs: curveStethUnstakeAndRedeemArgs({
945
- outgoingLiquidityGaugeTokenAmount,
946
- minIncomingWethAmount,
947
1209
  minIncomingStethAmount,
1210
+ minIncomingWethAmount,
1211
+ outgoingLiquidityGaugeTokenAmount,
948
1212
  receiveSingleAsset,
949
1213
  }),
1214
+ selector: unstakeAndRedeemSelector,
950
1215
  });
951
1216
 
952
1217
  return comptrollerProxy
@@ -969,10 +1234,10 @@ export function curveStethUnstake({
969
1234
  }) {
970
1235
  const callArgs = callOnIntegrationArgs({
971
1236
  adapter: curveLiquidityStethAdapter,
972
- selector: unstakeSelector,
973
1237
  encodedCallArgs: curveStethUnstakeArgs({
974
1238
  outgoingLiquidityGaugeTokenAmount,
975
1239
  }),
1240
+ selector: unstakeSelector,
976
1241
  });
977
1242
 
978
1243
  return comptrollerProxy