@enzymefinance/testutils 4.0.0-next.6 → 4.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. package/dist/index.d.ts +1548 -0
  2. package/dist/index.js +3352 -0
  3. package/dist/index.mjs +3352 -0
  4. package/package.json +74 -11
  5. package/CHANGELOG.md +0 -52
  6. package/dist/declarations/src/assertions.d.ts +0 -4
  7. package/dist/declarations/src/deployment.d.ts +0 -192
  8. package/dist/declarations/src/gasRelayer.d.ts +0 -56
  9. package/dist/declarations/src/helpers.d.ts +0 -16
  10. package/dist/declarations/src/index.d.ts +0 -6
  11. package/dist/declarations/src/scaffolding/assets.d.ts +0 -10
  12. package/dist/declarations/src/scaffolding/chainlink.d.ts +0 -3
  13. package/dist/declarations/src/scaffolding/common.d.ts +0 -7
  14. package/dist/declarations/src/scaffolding/core.d.ts +0 -17
  15. package/dist/declarations/src/scaffolding/extensions/common.d.ts +0 -11
  16. package/dist/declarations/src/scaffolding/extensions/external-positions/actions.d.ts +0 -35
  17. package/dist/declarations/src/scaffolding/extensions/external-positions/compound.d.ts +0 -56
  18. package/dist/declarations/src/scaffolding/extensions/external-positions/index.d.ts +0 -4
  19. package/dist/declarations/src/scaffolding/extensions/external-positions/mocks.d.ts +0 -53
  20. package/dist/declarations/src/scaffolding/extensions/external-positions/uniswap-v3-liquidity.d.ts +0 -99
  21. package/dist/declarations/src/scaffolding/extensions/fees.d.ts +0 -12
  22. package/dist/declarations/src/scaffolding/extensions/index.d.ts +0 -5
  23. package/dist/declarations/src/scaffolding/extensions/integrations/aave.d.ts +0 -20
  24. package/dist/declarations/src/scaffolding/extensions/integrations/compound.d.ts +0 -28
  25. package/dist/declarations/src/scaffolding/extensions/integrations/curve.d.ts +0 -346
  26. package/dist/declarations/src/scaffolding/extensions/integrations/idle.d.ts +0 -28
  27. package/dist/declarations/src/scaffolding/extensions/integrations/index.d.ts +0 -15
  28. package/dist/declarations/src/scaffolding/extensions/integrations/mock.d.ts +0 -32
  29. package/dist/declarations/src/scaffolding/extensions/integrations/olympusV2.d.ts +0 -17
  30. package/dist/declarations/src/scaffolding/extensions/integrations/paraSwapV4.d.ts +0 -23
  31. package/dist/declarations/src/scaffolding/extensions/integrations/paraSwapV5.d.ts +0 -23
  32. package/dist/declarations/src/scaffolding/extensions/integrations/poolTogetherV4.d.ts +0 -29
  33. package/dist/declarations/src/scaffolding/extensions/integrations/synthetix.d.ts +0 -33
  34. package/dist/declarations/src/scaffolding/extensions/integrations/trackedAssets.d.ts +0 -15
  35. package/dist/declarations/src/scaffolding/extensions/integrations/uniswapV2.d.ts +0 -46
  36. package/dist/declarations/src/scaffolding/extensions/integrations/uniswapV3.d.ts +0 -15
  37. package/dist/declarations/src/scaffolding/extensions/integrations/yearn.d.ts +0 -22
  38. package/dist/declarations/src/scaffolding/extensions/integrations/zeroExV2.d.ts +0 -12
  39. package/dist/declarations/src/scaffolding/extensions/policies.d.ts +0 -17
  40. package/dist/declarations/src/scaffolding/index.d.ts +0 -8
  41. package/dist/declarations/src/scaffolding/setup.d.ts +0 -77
  42. package/dist/declarations/src/scaffolding/shares.d.ts +0 -35
  43. package/dist/declarations/src/scaffolding/vaultCalls.d.ts +0 -32
  44. package/dist/declarations/src/whales.d.ts +0 -46
  45. package/dist/enzymefinance-testutils.browser.cjs.js +0 -4369
  46. package/dist/enzymefinance-testutils.browser.esm.js +0 -4217
  47. package/dist/enzymefinance-testutils.cjs.d.ts +0 -1
  48. package/dist/enzymefinance-testutils.cjs.dev.js +0 -4369
  49. package/dist/enzymefinance-testutils.cjs.js +0 -7
  50. package/dist/enzymefinance-testutils.cjs.prod.js +0 -4369
  51. package/dist/enzymefinance-testutils.esm.js +0 -4217
  52. package/src/assertions.ts +0 -23
  53. package/src/deployment.ts +0 -285
  54. package/src/gasRelayer.ts +0 -95
  55. package/src/helpers.ts +0 -39
  56. package/src/index.ts +0 -6
  57. package/src/scaffolding/assets.ts +0 -37
  58. package/src/scaffolding/chainlink.ts +0 -8
  59. package/src/scaffolding/common.ts +0 -11
  60. package/src/scaffolding/core.ts +0 -111
  61. package/src/scaffolding/extensions/common.ts +0 -30
  62. package/src/scaffolding/extensions/external-positions/actions.ts +0 -103
  63. package/src/scaffolding/extensions/external-positions/compound.ts +0 -190
  64. package/src/scaffolding/extensions/external-positions/index.ts +0 -4
  65. package/src/scaffolding/extensions/external-positions/mocks.ts +0 -194
  66. package/src/scaffolding/extensions/external-positions/uniswap-v3-liquidity.ts +0 -290
  67. package/src/scaffolding/extensions/fees.ts +0 -70
  68. package/src/scaffolding/extensions/index.ts +0 -5
  69. package/src/scaffolding/extensions/integrations/aave.ts +0 -78
  70. package/src/scaffolding/extensions/integrations/compound.ts +0 -94
  71. package/src/scaffolding/extensions/integrations/curve.ts +0 -1246
  72. package/src/scaffolding/extensions/integrations/idle.ts +0 -104
  73. package/src/scaffolding/extensions/integrations/index.ts +0 -15
  74. package/src/scaffolding/extensions/integrations/mock.ts +0 -116
  75. package/src/scaffolding/extensions/integrations/olympusV2.ts +0 -71
  76. package/src/scaffolding/extensions/integrations/paraSwapV4.ts +0 -70
  77. package/src/scaffolding/extensions/integrations/paraSwapV5.ts +0 -73
  78. package/src/scaffolding/extensions/integrations/poolTogetherV4.ts +0 -117
  79. package/src/scaffolding/extensions/integrations/synthetix.ts +0 -130
  80. package/src/scaffolding/extensions/integrations/trackedAssets.ts +0 -48
  81. package/src/scaffolding/extensions/integrations/uniswapV2.ts +0 -175
  82. package/src/scaffolding/extensions/integrations/uniswapV3.ts +0 -55
  83. package/src/scaffolding/extensions/integrations/yearn.ts +0 -79
  84. package/src/scaffolding/extensions/integrations/zeroExV2.ts +0 -47
  85. package/src/scaffolding/extensions/policies.ts +0 -112
  86. package/src/scaffolding/index.ts +0 -8
  87. package/src/scaffolding/setup.ts +0 -243
  88. package/src/scaffolding/shares.ts +0 -80
  89. package/src/scaffolding/vaultCalls.ts +0 -105
  90. package/src/types.d.ts +0 -1
  91. package/src/whales.ts +0 -77
  92. package/tsconfig.json +0 -5
@@ -1,1246 +0,0 @@
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';
16
- import {
17
- callOnIntegrationArgs,
18
- claimRewardsSelector,
19
- curveAaveLendAndStakeArgs,
20
- curveAaveLendArgs,
21
- curveAaveRedeemArgs,
22
- curveAaveStakeArgs,
23
- curveAaveUnstakeAndRedeemArgs,
24
- curveAaveUnstakeArgs,
25
- curveClaimRewardsArgs,
26
- curveEursLendAndStakeArgs,
27
- curveEursLendArgs,
28
- curveEursRedeemArgs,
29
- curveEursStakeArgs,
30
- curveEursUnstakeAndRedeemArgs,
31
- curveEursUnstakeArgs,
32
- curveLendAndStakeArgs,
33
- curveLendArgs,
34
- curveRedeemArgs,
35
- curveSethLendAndStakeArgs,
36
- curveSethLendArgs,
37
- curveSethRedeemArgs,
38
- curveSethStakeArgs,
39
- curveSethUnstakeAndRedeemArgs,
40
- curveSethUnstakeArgs,
41
- curveStakeArgs,
42
- curveStethLendAndStakeArgs,
43
- curveStethLendArgs,
44
- curveStethRedeemArgs,
45
- curveStethStakeArgs,
46
- curveStethUnstakeAndRedeemArgs,
47
- curveStethUnstakeArgs,
48
- curveTakeOrderArgs,
49
- curveUnstakeAndRedeemArgs,
50
- curveUnstakeArgs,
51
- IntegrationManagerActionId,
52
- lendAndStakeSelector,
53
- lendSelector,
54
- redeemSelector,
55
- stakeSelector,
56
- takeOrderSelector,
57
- unstakeAndRedeemSelector,
58
- unstakeSelector,
59
- } from '@enzymefinance/protocol';
60
- import type { BigNumberish, BytesLike } from 'ethers';
61
- import { BigNumber, constants, utils } from 'ethers';
62
-
63
- export interface CurveLiquidityGaugeV2 extends Contract<CurveLiquidityGaugeV2> {
64
- claim_rewards: Send<(_addr: AddressLike) => void>;
65
- integrate_fraction: Call<(_for: AddressLike) => BigNumber, Contract<any>>;
66
- }
67
-
68
- export const CurveLiquidityGaugeV2 = contract<CurveLiquidityGaugeV2>()`
69
- function claim_rewards(address)
70
- function integrate_fraction(address) view returns (uint256)
71
- `;
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
-
83
- // prettier-ignore
84
- export interface CurveSwaps extends Contract<CurveSwaps> {
85
- get_best_rate: Call<(_from: AddressLike, to: AddressLike, amount: BigNumberish) => { bestPool: AddressLike, amountReceived: BigNumber }, CurveSwaps>
86
- }
87
-
88
- export const CurveSwaps = contract<CurveSwaps>()`
89
- function get_best_rate(address _from, address to, uint256 amount) view returns (address bestPool, uint256 amountReceived)
90
- `;
91
-
92
- export interface CurveMinter extends Contract<CurveMinter> {
93
- mint_for: Send<(_gauge_address: AddressLike, _for: AddressLike) => void>;
94
- }
95
-
96
- export const CurveMinter = contract<CurveMinter>()`
97
- function mint_for(address,address)
98
- `;
99
-
100
- // exchanges
101
-
102
- export async function curveTakeOrder({
103
- comptrollerProxy,
104
- integrationManager,
105
- fundOwner,
106
- curveExchangeAdapter,
107
- pool,
108
- outgoingAsset,
109
- outgoingAssetAmount = utils.parseEther('1'),
110
- incomingAsset,
111
- minIncomingAssetAmount = utils.parseEther('1'),
112
- }: {
113
- comptrollerProxy: ComptrollerLib;
114
- integrationManager: IntegrationManager;
115
- fundOwner: SignerWithAddress;
116
- curveExchangeAdapter: CurveExchangeAdapter;
117
- pool: AddressLike;
118
- outgoingAsset: StandardToken;
119
- outgoingAssetAmount?: BigNumberish;
120
- incomingAsset: StandardToken;
121
- minIncomingAssetAmount?: BigNumberish;
122
- }) {
123
- const takeOrderArgs = curveTakeOrderArgs({
124
- incomingAsset,
125
- minIncomingAssetAmount,
126
- outgoingAsset,
127
- outgoingAssetAmount,
128
- pool,
129
- });
130
-
131
- const callArgs = callOnIntegrationArgs({
132
- adapter: curveExchangeAdapter,
133
- encodedCallArgs: takeOrderArgs,
134
- selector: takeOrderSelector,
135
- });
136
-
137
- return comptrollerProxy
138
- .connect(fundOwner)
139
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
140
- }
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
-
384
- // aave pool
385
-
386
- export function curveAaveClaimRewards({
387
- comptrollerProxy,
388
- integrationManager,
389
- fundOwner,
390
- curveLiquidityAaveAdapter,
391
- }: {
392
- comptrollerProxy: ComptrollerLib;
393
- integrationManager: IntegrationManager;
394
- fundOwner: SignerWithAddress;
395
- curveLiquidityAaveAdapter: CurveLiquidityAaveAdapter;
396
- }) {
397
- const callArgs = callOnIntegrationArgs({
398
- adapter: curveLiquidityAaveAdapter,
399
- encodedCallArgs: constants.HashZero,
400
- selector: claimRewardsSelector,
401
- });
402
-
403
- return comptrollerProxy
404
- .connect(fundOwner)
405
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
406
- }
407
-
408
- export function curveAaveLend({
409
- comptrollerProxy,
410
- integrationManager,
411
- fundOwner,
412
- curveLiquidityAaveAdapter,
413
- outgoingAaveDaiAmount = BigNumber.from(0),
414
- outgoingAaveUsdcAmount = BigNumber.from(0),
415
- outgoingAaveUsdtAmount = BigNumber.from(0),
416
- minIncomingLPTokenAmount = BigNumber.from(1),
417
- useUnderlyings = false,
418
- }: {
419
- comptrollerProxy: ComptrollerLib;
420
- integrationManager: IntegrationManager;
421
- fundOwner: SignerWithAddress;
422
- curveLiquidityAaveAdapter: CurveLiquidityAaveAdapter;
423
- outgoingAaveDaiAmount?: BigNumberish;
424
- outgoingAaveUsdcAmount?: BigNumberish;
425
- outgoingAaveUsdtAmount?: BigNumberish;
426
- minIncomingLPTokenAmount?: BigNumberish;
427
- useUnderlyings?: boolean;
428
- }) {
429
- const callArgs = callOnIntegrationArgs({
430
- adapter: curveLiquidityAaveAdapter,
431
- encodedCallArgs: curveAaveLendArgs({
432
- minIncomingLPTokenAmount,
433
- outgoingAaveDaiAmount,
434
- outgoingAaveUsdcAmount,
435
- outgoingAaveUsdtAmount,
436
- useUnderlyings,
437
- }),
438
- selector: lendSelector,
439
- });
440
-
441
- return comptrollerProxy
442
- .connect(fundOwner)
443
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
444
- }
445
-
446
- export function curveAaveLendAndStake({
447
- comptrollerProxy,
448
- integrationManager,
449
- fundOwner,
450
- curveLiquidityAaveAdapter,
451
- outgoingAaveDaiAmount = BigNumber.from(0),
452
- outgoingAaveUsdcAmount = BigNumber.from(0),
453
- outgoingAaveUsdtAmount = BigNumber.from(0),
454
- minIncomingLiquidityGaugeTokenAmount = BigNumber.from(1),
455
- useUnderlyings = false,
456
- }: {
457
- comptrollerProxy: ComptrollerLib;
458
- integrationManager: IntegrationManager;
459
- fundOwner: SignerWithAddress;
460
- curveLiquidityAaveAdapter: CurveLiquidityAaveAdapter;
461
- outgoingAaveDaiAmount?: BigNumberish;
462
- outgoingAaveUsdcAmount?: BigNumberish;
463
- outgoingAaveUsdtAmount?: BigNumberish;
464
- minIncomingLiquidityGaugeTokenAmount?: BigNumberish;
465
- useUnderlyings?: boolean;
466
- }) {
467
- const callArgs = callOnIntegrationArgs({
468
- adapter: curveLiquidityAaveAdapter,
469
- encodedCallArgs: curveAaveLendAndStakeArgs({
470
- minIncomingLiquidityGaugeTokenAmount,
471
- outgoingAaveDaiAmount,
472
- outgoingAaveUsdcAmount,
473
- outgoingAaveUsdtAmount,
474
- useUnderlyings,
475
- }),
476
- selector: lendAndStakeSelector,
477
- });
478
-
479
- return comptrollerProxy
480
- .connect(fundOwner)
481
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
482
- }
483
-
484
- export function curveAaveRedeem({
485
- comptrollerProxy,
486
- integrationManager,
487
- fundOwner,
488
- curveLiquidityAaveAdapter,
489
- outgoingLPTokenAmount,
490
- minIncomingAaveDaiAmount = BigNumber.from(1),
491
- minIncomingAaveUsdcAmount = BigNumber.from(1),
492
- minIncomingAaveUsdtAmount = BigNumber.from(1),
493
- receiveSingleAsset = false,
494
- useUnderlyings = false,
495
- }: {
496
- comptrollerProxy: ComptrollerLib;
497
- integrationManager: IntegrationManager;
498
- fundOwner: SignerWithAddress;
499
- curveLiquidityAaveAdapter: CurveLiquidityAaveAdapter;
500
- outgoingLPTokenAmount: BigNumberish;
501
- minIncomingAaveDaiAmount?: BigNumberish;
502
- minIncomingAaveUsdcAmount?: BigNumberish;
503
- minIncomingAaveUsdtAmount?: BigNumberish;
504
- receiveSingleAsset?: boolean;
505
- useUnderlyings?: boolean;
506
- }) {
507
- const callArgs = callOnIntegrationArgs({
508
- adapter: curveLiquidityAaveAdapter,
509
- encodedCallArgs: curveAaveRedeemArgs({
510
- minIncomingAaveDaiAmount,
511
- minIncomingAaveUsdcAmount,
512
- minIncomingAaveUsdtAmount,
513
- outgoingLPTokenAmount,
514
- receiveSingleAsset,
515
- useUnderlyings,
516
- }),
517
- selector: redeemSelector,
518
- });
519
-
520
- return comptrollerProxy
521
- .connect(fundOwner)
522
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
523
- }
524
-
525
- export function curveAaveStake({
526
- comptrollerProxy,
527
- integrationManager,
528
- fundOwner,
529
- curveLiquidityAaveAdapter,
530
- outgoingLPTokenAmount,
531
- }: {
532
- comptrollerProxy: ComptrollerLib;
533
- integrationManager: IntegrationManager;
534
- fundOwner: SignerWithAddress;
535
- curveLiquidityAaveAdapter: CurveLiquidityAaveAdapter;
536
- outgoingLPTokenAmount: BigNumberish;
537
- }) {
538
- const callArgs = callOnIntegrationArgs({
539
- adapter: curveLiquidityAaveAdapter,
540
- encodedCallArgs: curveAaveStakeArgs({
541
- outgoingLPTokenAmount,
542
- }),
543
- selector: stakeSelector,
544
- });
545
-
546
- return comptrollerProxy
547
- .connect(fundOwner)
548
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
549
- }
550
-
551
- export function curveAaveUnstakeAndRedeem({
552
- comptrollerProxy,
553
- integrationManager,
554
- fundOwner,
555
- curveLiquidityAaveAdapter,
556
- outgoingLiquidityGaugeTokenAmount,
557
- minIncomingAaveDaiAmount = BigNumber.from(1),
558
- minIncomingAaveUsdcAmount = BigNumber.from(1),
559
- minIncomingAaveUsdtAmount = BigNumber.from(1),
560
- receiveSingleAsset = false,
561
- useUnderlyings = false,
562
- }: {
563
- comptrollerProxy: ComptrollerLib;
564
- integrationManager: IntegrationManager;
565
- fundOwner: SignerWithAddress;
566
- curveLiquidityAaveAdapter: CurveLiquidityAaveAdapter;
567
- outgoingLiquidityGaugeTokenAmount: BigNumberish;
568
- minIncomingAaveDaiAmount?: BigNumberish;
569
- minIncomingAaveUsdcAmount?: BigNumberish;
570
- minIncomingAaveUsdtAmount?: BigNumberish;
571
- receiveSingleAsset?: boolean;
572
- useUnderlyings?: boolean;
573
- }) {
574
- const callArgs = callOnIntegrationArgs({
575
- adapter: curveLiquidityAaveAdapter,
576
- encodedCallArgs: curveAaveUnstakeAndRedeemArgs({
577
- minIncomingAaveDaiAmount,
578
- minIncomingAaveUsdcAmount,
579
- minIncomingAaveUsdtAmount,
580
- outgoingLiquidityGaugeTokenAmount,
581
- receiveSingleAsset,
582
- useUnderlyings,
583
- }),
584
- selector: unstakeAndRedeemSelector,
585
- });
586
-
587
- return comptrollerProxy
588
- .connect(fundOwner)
589
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
590
- }
591
-
592
- export function curveAaveUnstake({
593
- comptrollerProxy,
594
- integrationManager,
595
- fundOwner,
596
- curveLiquidityAaveAdapter,
597
- outgoingLiquidityGaugeTokenAmount,
598
- }: {
599
- comptrollerProxy: ComptrollerLib;
600
- integrationManager: IntegrationManager;
601
- fundOwner: SignerWithAddress;
602
- curveLiquidityAaveAdapter: CurveLiquidityAaveAdapter;
603
- outgoingLiquidityGaugeTokenAmount: BigNumberish;
604
- }) {
605
- const callArgs = callOnIntegrationArgs({
606
- adapter: curveLiquidityAaveAdapter,
607
- encodedCallArgs: curveAaveUnstakeArgs({
608
- outgoingLiquidityGaugeTokenAmount,
609
- }),
610
- selector: unstakeSelector,
611
- });
612
-
613
- return comptrollerProxy
614
- .connect(fundOwner)
615
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
616
- }
617
-
618
- // eurs pool
619
-
620
- export function curveEursClaimRewards({
621
- comptrollerProxy,
622
- integrationManager,
623
- fundOwner,
624
- curveLiquidityEursAdapter,
625
- }: {
626
- comptrollerProxy: ComptrollerLib;
627
- integrationManager: IntegrationManager;
628
- fundOwner: SignerWithAddress;
629
- curveLiquidityEursAdapter: CurveLiquidityEursAdapter;
630
- }) {
631
- const callArgs = callOnIntegrationArgs({
632
- adapter: curveLiquidityEursAdapter,
633
- encodedCallArgs: constants.HashZero,
634
- selector: claimRewardsSelector,
635
- });
636
-
637
- return comptrollerProxy
638
- .connect(fundOwner)
639
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
640
- }
641
-
642
- export function curveEursLend({
643
- comptrollerProxy,
644
- integrationManager,
645
- fundOwner,
646
- curveLiquidityEursAdapter,
647
- outgoingEursAmount,
648
- outgoingSeurAmount,
649
- minIncomingLPTokenAmount,
650
- }: {
651
- comptrollerProxy: ComptrollerLib;
652
- integrationManager: IntegrationManager;
653
- fundOwner: SignerWithAddress;
654
- curveLiquidityEursAdapter: CurveLiquidityEursAdapter;
655
- outgoingEursAmount: BigNumberish;
656
- outgoingSeurAmount: BigNumberish;
657
- minIncomingLPTokenAmount: BigNumberish;
658
- }) {
659
- const callArgs = callOnIntegrationArgs({
660
- adapter: curveLiquidityEursAdapter,
661
- encodedCallArgs: curveEursLendArgs({
662
- minIncomingLPTokenAmount,
663
- outgoingEursAmount,
664
- outgoingSeurAmount,
665
- }),
666
- selector: lendSelector,
667
- });
668
-
669
- return comptrollerProxy
670
- .connect(fundOwner)
671
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
672
- }
673
-
674
- export function curveEursLendAndStake({
675
- comptrollerProxy,
676
- integrationManager,
677
- fundOwner,
678
- curveLiquidityEursAdapter,
679
- outgoingEursAmount,
680
- outgoingSeurAmount,
681
- minIncomingLiquidityGaugeTokenAmount,
682
- }: {
683
- comptrollerProxy: ComptrollerLib;
684
- integrationManager: IntegrationManager;
685
- fundOwner: SignerWithAddress;
686
- curveLiquidityEursAdapter: CurveLiquidityEursAdapter;
687
- outgoingEursAmount: BigNumberish;
688
- outgoingSeurAmount: BigNumberish;
689
- minIncomingLiquidityGaugeTokenAmount: BigNumberish;
690
- }) {
691
- const callArgs = callOnIntegrationArgs({
692
- adapter: curveLiquidityEursAdapter,
693
- encodedCallArgs: curveEursLendAndStakeArgs({
694
- minIncomingLiquidityGaugeTokenAmount,
695
- outgoingEursAmount,
696
- outgoingSeurAmount,
697
- }),
698
- selector: lendAndStakeSelector,
699
- });
700
-
701
- return comptrollerProxy
702
- .connect(fundOwner)
703
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
704
- }
705
-
706
- export function curveEursRedeem({
707
- comptrollerProxy,
708
- integrationManager,
709
- fundOwner,
710
- curveLiquidityEursAdapter,
711
- outgoingLPTokenAmount,
712
- minIncomingEursAmount,
713
- minIncomingSeurAmount,
714
- receiveSingleAsset,
715
- }: {
716
- comptrollerProxy: ComptrollerLib;
717
- integrationManager: IntegrationManager;
718
- fundOwner: SignerWithAddress;
719
- curveLiquidityEursAdapter: CurveLiquidityEursAdapter;
720
- outgoingLPTokenAmount: BigNumberish;
721
- minIncomingEursAmount: BigNumberish;
722
- minIncomingSeurAmount: BigNumberish;
723
- receiveSingleAsset: boolean;
724
- }) {
725
- const callArgs = callOnIntegrationArgs({
726
- adapter: curveLiquidityEursAdapter,
727
- encodedCallArgs: curveEursRedeemArgs({
728
- minIncomingEursAmount,
729
- minIncomingSeurAmount,
730
- outgoingLPTokenAmount,
731
- receiveSingleAsset,
732
- }),
733
- selector: redeemSelector,
734
- });
735
-
736
- return comptrollerProxy
737
- .connect(fundOwner)
738
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
739
- }
740
-
741
- export function curveEursStake({
742
- comptrollerProxy,
743
- integrationManager,
744
- fundOwner,
745
- curveLiquidityEursAdapter,
746
- outgoingLPTokenAmount,
747
- }: {
748
- comptrollerProxy: ComptrollerLib;
749
- integrationManager: IntegrationManager;
750
- fundOwner: SignerWithAddress;
751
- curveLiquidityEursAdapter: CurveLiquidityEursAdapter;
752
- outgoingLPTokenAmount: BigNumberish;
753
- }) {
754
- const callArgs = callOnIntegrationArgs({
755
- adapter: curveLiquidityEursAdapter,
756
- encodedCallArgs: curveEursStakeArgs({
757
- outgoingLPTokenAmount,
758
- }),
759
- selector: stakeSelector,
760
- });
761
-
762
- return comptrollerProxy
763
- .connect(fundOwner)
764
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
765
- }
766
-
767
- export function curveEursUnstakeAndRedeem({
768
- comptrollerProxy,
769
- integrationManager,
770
- fundOwner,
771
- curveLiquidityEursAdapter,
772
- outgoingLiquidityGaugeTokenAmount,
773
- minIncomingEursAmount,
774
- minIncomingSeurAmount,
775
- receiveSingleAsset,
776
- }: {
777
- comptrollerProxy: ComptrollerLib;
778
- integrationManager: IntegrationManager;
779
- fundOwner: SignerWithAddress;
780
- curveLiquidityEursAdapter: CurveLiquidityEursAdapter;
781
- outgoingLiquidityGaugeTokenAmount: BigNumberish;
782
- minIncomingEursAmount: BigNumberish;
783
- minIncomingSeurAmount: BigNumberish;
784
- receiveSingleAsset: boolean;
785
- }) {
786
- const callArgs = callOnIntegrationArgs({
787
- adapter: curveLiquidityEursAdapter,
788
- encodedCallArgs: curveEursUnstakeAndRedeemArgs({
789
- minIncomingEursAmount,
790
- minIncomingSeurAmount,
791
- outgoingLiquidityGaugeTokenAmount,
792
- receiveSingleAsset,
793
- }),
794
- selector: unstakeAndRedeemSelector,
795
- });
796
-
797
- return comptrollerProxy
798
- .connect(fundOwner)
799
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
800
- }
801
-
802
- export function curveEursUnstake({
803
- comptrollerProxy,
804
- integrationManager,
805
- fundOwner,
806
- curveLiquidityEursAdapter,
807
- outgoingLiquidityGaugeTokenAmount,
808
- }: {
809
- comptrollerProxy: ComptrollerLib;
810
- integrationManager: IntegrationManager;
811
- fundOwner: SignerWithAddress;
812
- curveLiquidityEursAdapter: CurveLiquidityEursAdapter;
813
- outgoingLiquidityGaugeTokenAmount: BigNumberish;
814
- }) {
815
- const callArgs = callOnIntegrationArgs({
816
- adapter: curveLiquidityEursAdapter,
817
- encodedCallArgs: curveEursUnstakeArgs({
818
- outgoingLiquidityGaugeTokenAmount,
819
- }),
820
- selector: unstakeSelector,
821
- });
822
-
823
- return comptrollerProxy
824
- .connect(fundOwner)
825
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
826
- }
827
-
828
- // sETH pool
829
-
830
- export function curveSethClaimRewards({
831
- comptrollerProxy,
832
- integrationManager,
833
- fundOwner,
834
- curveLiquiditySethAdapter,
835
- }: {
836
- comptrollerProxy: ComptrollerLib;
837
- integrationManager: IntegrationManager;
838
- fundOwner: SignerWithAddress;
839
- curveLiquiditySethAdapter: CurveLiquiditySethAdapter;
840
- }) {
841
- const callArgs = callOnIntegrationArgs({
842
- adapter: curveLiquiditySethAdapter,
843
- encodedCallArgs: constants.HashZero,
844
- selector: claimRewardsSelector,
845
- });
846
-
847
- return comptrollerProxy
848
- .connect(fundOwner)
849
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
850
- }
851
-
852
- export function curveSethLend({
853
- comptrollerProxy,
854
- integrationManager,
855
- fundOwner,
856
- curveLiquiditySethAdapter,
857
- outgoingWethAmount,
858
- outgoingSethAmount,
859
- minIncomingLPTokenAmount,
860
- }: {
861
- comptrollerProxy: ComptrollerLib;
862
- integrationManager: IntegrationManager;
863
- fundOwner: SignerWithAddress;
864
- curveLiquiditySethAdapter: CurveLiquiditySethAdapter;
865
- outgoingWethAmount: BigNumberish;
866
- outgoingSethAmount: BigNumberish;
867
- minIncomingLPTokenAmount: BigNumberish;
868
- }) {
869
- const callArgs = callOnIntegrationArgs({
870
- adapter: curveLiquiditySethAdapter,
871
- encodedCallArgs: curveSethLendArgs({
872
- minIncomingLPTokenAmount,
873
- outgoingSethAmount,
874
- outgoingWethAmount,
875
- }),
876
- selector: lendSelector,
877
- });
878
-
879
- return comptrollerProxy
880
- .connect(fundOwner)
881
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
882
- }
883
-
884
- export function curveSethLendAndStake({
885
- comptrollerProxy,
886
- integrationManager,
887
- fundOwner,
888
- curveLiquiditySethAdapter,
889
- outgoingWethAmount,
890
- outgoingSethAmount,
891
- minIncomingLiquidityGaugeTokenAmount,
892
- }: {
893
- comptrollerProxy: ComptrollerLib;
894
- integrationManager: IntegrationManager;
895
- fundOwner: SignerWithAddress;
896
- curveLiquiditySethAdapter: CurveLiquiditySethAdapter;
897
- outgoingWethAmount: BigNumberish;
898
- outgoingSethAmount: BigNumberish;
899
- minIncomingLiquidityGaugeTokenAmount: BigNumberish;
900
- }) {
901
- const callArgs = callOnIntegrationArgs({
902
- adapter: curveLiquiditySethAdapter,
903
- encodedCallArgs: curveSethLendAndStakeArgs({
904
- minIncomingLiquidityGaugeTokenAmount,
905
- outgoingSethAmount,
906
- outgoingWethAmount,
907
- }),
908
- selector: lendAndStakeSelector,
909
- });
910
-
911
- return comptrollerProxy
912
- .connect(fundOwner)
913
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
914
- }
915
-
916
- export function curveSethRedeem({
917
- comptrollerProxy,
918
- integrationManager,
919
- fundOwner,
920
- curveLiquiditySethAdapter,
921
- outgoingLPTokenAmount,
922
- minIncomingWethAmount,
923
- minIncomingSethAmount,
924
- receiveSingleAsset,
925
- }: {
926
- comptrollerProxy: ComptrollerLib;
927
- integrationManager: IntegrationManager;
928
- fundOwner: SignerWithAddress;
929
- curveLiquiditySethAdapter: CurveLiquiditySethAdapter;
930
- outgoingLPTokenAmount: BigNumberish;
931
- minIncomingWethAmount: BigNumberish;
932
- minIncomingSethAmount: BigNumberish;
933
- receiveSingleAsset: boolean;
934
- }) {
935
- const callArgs = callOnIntegrationArgs({
936
- adapter: curveLiquiditySethAdapter,
937
- encodedCallArgs: curveSethRedeemArgs({
938
- minIncomingSethAmount,
939
- minIncomingWethAmount,
940
- outgoingLPTokenAmount,
941
- receiveSingleAsset,
942
- }),
943
- selector: redeemSelector,
944
- });
945
-
946
- return comptrollerProxy
947
- .connect(fundOwner)
948
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
949
- }
950
-
951
- export function curveSethStake({
952
- comptrollerProxy,
953
- integrationManager,
954
- fundOwner,
955
- curveLiquiditySethAdapter,
956
- outgoingLPTokenAmount,
957
- }: {
958
- comptrollerProxy: ComptrollerLib;
959
- integrationManager: IntegrationManager;
960
- fundOwner: SignerWithAddress;
961
- curveLiquiditySethAdapter: CurveLiquiditySethAdapter;
962
- outgoingLPTokenAmount: BigNumberish;
963
- }) {
964
- const callArgs = callOnIntegrationArgs({
965
- adapter: curveLiquiditySethAdapter,
966
- encodedCallArgs: curveSethStakeArgs({
967
- outgoingLPTokenAmount,
968
- }),
969
- selector: stakeSelector,
970
- });
971
-
972
- return comptrollerProxy
973
- .connect(fundOwner)
974
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
975
- }
976
-
977
- export function curveSethUnstakeAndRedeem({
978
- comptrollerProxy,
979
- integrationManager,
980
- fundOwner,
981
- curveLiquiditySethAdapter,
982
- outgoingLiquidityGaugeTokenAmount,
983
- minIncomingWethAmount,
984
- minIncomingSethAmount,
985
- receiveSingleAsset,
986
- }: {
987
- comptrollerProxy: ComptrollerLib;
988
- integrationManager: IntegrationManager;
989
- fundOwner: SignerWithAddress;
990
- curveLiquiditySethAdapter: CurveLiquiditySethAdapter;
991
- outgoingLiquidityGaugeTokenAmount: BigNumberish;
992
- minIncomingWethAmount: BigNumberish;
993
- minIncomingSethAmount: BigNumberish;
994
- receiveSingleAsset: boolean;
995
- }) {
996
- const callArgs = callOnIntegrationArgs({
997
- adapter: curveLiquiditySethAdapter,
998
- encodedCallArgs: curveSethUnstakeAndRedeemArgs({
999
- minIncomingSethAmount,
1000
- minIncomingWethAmount,
1001
- outgoingLiquidityGaugeTokenAmount,
1002
- receiveSingleAsset,
1003
- }),
1004
- selector: unstakeAndRedeemSelector,
1005
- });
1006
-
1007
- return comptrollerProxy
1008
- .connect(fundOwner)
1009
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1010
- }
1011
-
1012
- export function curveSethUnstake({
1013
- comptrollerProxy,
1014
- integrationManager,
1015
- fundOwner,
1016
- curveLiquiditySethAdapter,
1017
- outgoingLiquidityGaugeTokenAmount,
1018
- }: {
1019
- comptrollerProxy: ComptrollerLib;
1020
- integrationManager: IntegrationManager;
1021
- fundOwner: SignerWithAddress;
1022
- curveLiquiditySethAdapter: CurveLiquiditySethAdapter;
1023
- outgoingLiquidityGaugeTokenAmount: BigNumberish;
1024
- }) {
1025
- const callArgs = callOnIntegrationArgs({
1026
- adapter: curveLiquiditySethAdapter,
1027
- encodedCallArgs: curveSethUnstakeArgs({
1028
- outgoingLiquidityGaugeTokenAmount,
1029
- }),
1030
- selector: unstakeSelector,
1031
- });
1032
-
1033
- return comptrollerProxy
1034
- .connect(fundOwner)
1035
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1036
- }
1037
-
1038
- // stETH pool
1039
-
1040
- export function curveStethClaimRewards({
1041
- comptrollerProxy,
1042
- integrationManager,
1043
- fundOwner,
1044
- curveLiquidityStethAdapter,
1045
- }: {
1046
- comptrollerProxy: ComptrollerLib;
1047
- integrationManager: IntegrationManager;
1048
- fundOwner: SignerWithAddress;
1049
- curveLiquidityStethAdapter: CurveLiquidityStethAdapter;
1050
- }) {
1051
- const callArgs = callOnIntegrationArgs({
1052
- adapter: curveLiquidityStethAdapter,
1053
- encodedCallArgs: constants.HashZero,
1054
- selector: claimRewardsSelector,
1055
- });
1056
-
1057
- return comptrollerProxy
1058
- .connect(fundOwner)
1059
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1060
- }
1061
-
1062
- export function curveStethLend({
1063
- comptrollerProxy,
1064
- integrationManager,
1065
- fundOwner,
1066
- curveLiquidityStethAdapter,
1067
- outgoingWethAmount,
1068
- outgoingStethAmount,
1069
- minIncomingLPTokenAmount,
1070
- }: {
1071
- comptrollerProxy: ComptrollerLib;
1072
- integrationManager: IntegrationManager;
1073
- fundOwner: SignerWithAddress;
1074
- curveLiquidityStethAdapter: CurveLiquidityStethAdapter;
1075
- outgoingWethAmount: BigNumberish;
1076
- outgoingStethAmount: BigNumberish;
1077
- minIncomingLPTokenAmount: BigNumberish;
1078
- }) {
1079
- const callArgs = callOnIntegrationArgs({
1080
- adapter: curveLiquidityStethAdapter,
1081
- encodedCallArgs: curveStethLendArgs({
1082
- minIncomingLPTokenAmount,
1083
- outgoingStethAmount,
1084
- outgoingWethAmount,
1085
- }),
1086
- selector: lendSelector,
1087
- });
1088
-
1089
- return comptrollerProxy
1090
- .connect(fundOwner)
1091
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1092
- }
1093
-
1094
- export function curveStethLendAndStake({
1095
- comptrollerProxy,
1096
- integrationManager,
1097
- fundOwner,
1098
- curveLiquidityStethAdapter,
1099
- outgoingWethAmount,
1100
- outgoingStethAmount,
1101
- minIncomingLiquidityGaugeTokenAmount,
1102
- }: {
1103
- comptrollerProxy: ComptrollerLib;
1104
- integrationManager: IntegrationManager;
1105
- fundOwner: SignerWithAddress;
1106
- curveLiquidityStethAdapter: CurveLiquidityStethAdapter;
1107
- outgoingWethAmount: BigNumberish;
1108
- outgoingStethAmount: BigNumberish;
1109
- minIncomingLiquidityGaugeTokenAmount: BigNumberish;
1110
- }) {
1111
- const callArgs = callOnIntegrationArgs({
1112
- adapter: curveLiquidityStethAdapter,
1113
- encodedCallArgs: curveStethLendAndStakeArgs({
1114
- minIncomingLiquidityGaugeTokenAmount,
1115
- outgoingStethAmount,
1116
- outgoingWethAmount,
1117
- }),
1118
- selector: lendAndStakeSelector,
1119
- });
1120
-
1121
- return comptrollerProxy
1122
- .connect(fundOwner)
1123
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1124
- }
1125
-
1126
- export function curveStethRedeem({
1127
- comptrollerProxy,
1128
- integrationManager,
1129
- fundOwner,
1130
- curveLiquidityStethAdapter,
1131
- outgoingLPTokenAmount,
1132
- minIncomingWethAmount,
1133
- minIncomingStethAmount,
1134
- receiveSingleAsset,
1135
- }: {
1136
- comptrollerProxy: ComptrollerLib;
1137
- integrationManager: IntegrationManager;
1138
- fundOwner: SignerWithAddress;
1139
- curveLiquidityStethAdapter: CurveLiquidityStethAdapter;
1140
- outgoingLPTokenAmount: BigNumberish;
1141
- minIncomingWethAmount: BigNumberish;
1142
- minIncomingStethAmount: BigNumberish;
1143
- receiveSingleAsset: boolean;
1144
- }) {
1145
- const callArgs = callOnIntegrationArgs({
1146
- adapter: curveLiquidityStethAdapter,
1147
- encodedCallArgs: curveStethRedeemArgs({
1148
- minIncomingStethAmount,
1149
- minIncomingWethAmount,
1150
- outgoingLPTokenAmount,
1151
- receiveSingleAsset,
1152
- }),
1153
- selector: redeemSelector,
1154
- });
1155
-
1156
- return comptrollerProxy
1157
- .connect(fundOwner)
1158
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1159
- }
1160
-
1161
- export function curveStethStake({
1162
- comptrollerProxy,
1163
- integrationManager,
1164
- fundOwner,
1165
- curveLiquidityStethAdapter,
1166
- outgoingLPTokenAmount,
1167
- }: {
1168
- comptrollerProxy: ComptrollerLib;
1169
- integrationManager: IntegrationManager;
1170
- fundOwner: SignerWithAddress;
1171
- curveLiquidityStethAdapter: CurveLiquidityStethAdapter;
1172
- outgoingLPTokenAmount: BigNumberish;
1173
- }) {
1174
- const callArgs = callOnIntegrationArgs({
1175
- adapter: curveLiquidityStethAdapter,
1176
- encodedCallArgs: curveStethStakeArgs({
1177
- outgoingLPTokenAmount,
1178
- }),
1179
- selector: stakeSelector,
1180
- });
1181
-
1182
- return comptrollerProxy
1183
- .connect(fundOwner)
1184
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1185
- }
1186
-
1187
- export function curveStethUnstakeAndRedeem({
1188
- comptrollerProxy,
1189
- integrationManager,
1190
- fundOwner,
1191
- curveLiquidityStethAdapter,
1192
- outgoingLiquidityGaugeTokenAmount,
1193
- minIncomingWethAmount,
1194
- minIncomingStethAmount,
1195
- receiveSingleAsset,
1196
- }: {
1197
- comptrollerProxy: ComptrollerLib;
1198
- integrationManager: IntegrationManager;
1199
- fundOwner: SignerWithAddress;
1200
- curveLiquidityStethAdapter: CurveLiquidityStethAdapter;
1201
- outgoingLiquidityGaugeTokenAmount: BigNumberish;
1202
- minIncomingWethAmount: BigNumberish;
1203
- minIncomingStethAmount: BigNumberish;
1204
- receiveSingleAsset: boolean;
1205
- }) {
1206
- const callArgs = callOnIntegrationArgs({
1207
- adapter: curveLiquidityStethAdapter,
1208
- encodedCallArgs: curveStethUnstakeAndRedeemArgs({
1209
- minIncomingStethAmount,
1210
- minIncomingWethAmount,
1211
- outgoingLiquidityGaugeTokenAmount,
1212
- receiveSingleAsset,
1213
- }),
1214
- selector: unstakeAndRedeemSelector,
1215
- });
1216
-
1217
- return comptrollerProxy
1218
- .connect(fundOwner)
1219
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1220
- }
1221
-
1222
- export function curveStethUnstake({
1223
- comptrollerProxy,
1224
- integrationManager,
1225
- fundOwner,
1226
- curveLiquidityStethAdapter,
1227
- outgoingLiquidityGaugeTokenAmount,
1228
- }: {
1229
- comptrollerProxy: ComptrollerLib;
1230
- integrationManager: IntegrationManager;
1231
- fundOwner: SignerWithAddress;
1232
- curveLiquidityStethAdapter: CurveLiquidityStethAdapter;
1233
- outgoingLiquidityGaugeTokenAmount: BigNumberish;
1234
- }) {
1235
- const callArgs = callOnIntegrationArgs({
1236
- adapter: curveLiquidityStethAdapter,
1237
- encodedCallArgs: curveStethUnstakeArgs({
1238
- outgoingLiquidityGaugeTokenAmount,
1239
- }),
1240
- selector: unstakeSelector,
1241
- });
1242
-
1243
- return comptrollerProxy
1244
- .connect(fundOwner)
1245
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
1246
- }