@enzymefinance/testutils 4.0.0-next.2 → 4.0.0-next.7

Sign up to get free protection for your applications and to get access to all the features.
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 +172 -68
  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 +4 -4
  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 -4
  10. package/dist/declarations/src/scaffolding/extensions/common.d.ts +4 -4
  11. package/dist/declarations/src/scaffolding/extensions/external-positions/actions.d.ts +8 -6
  12. package/dist/declarations/src/scaffolding/extensions/external-positions/compound.d.ts +5 -5
  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 +16 -12
  15. package/dist/declarations/src/scaffolding/extensions/external-positions/uniswap-v3-liquidity.d.ts +100 -0
  16. package/dist/declarations/src/scaffolding/extensions/fees.d.ts +4 -4
  17. package/dist/declarations/src/scaffolding/extensions/integrations/aave.d.ts +6 -5
  18. package/dist/declarations/src/scaffolding/extensions/integrations/compound.d.ts +33 -5
  19. package/dist/declarations/src/scaffolding/extensions/integrations/curve.d.ts +101 -84
  20. package/dist/declarations/src/scaffolding/extensions/integrations/idle.d.ts +6 -6
  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 +15 -12
  28. package/dist/declarations/src/scaffolding/extensions/integrations/trackedAssets.d.ts +3 -3
  29. package/dist/declarations/src/scaffolding/extensions/integrations/uniswapV2.d.ts +4 -4
  30. package/dist/declarations/src/scaffolding/extensions/integrations/uniswapV3.d.ts +4 -4
  31. package/dist/declarations/src/scaffolding/extensions/integrations/yearn.d.ts +5 -5
  32. package/dist/declarations/src/scaffolding/extensions/integrations/zeroExV2.d.ts +4 -4
  33. package/dist/declarations/src/scaffolding/extensions/policies.d.ts +9 -9
  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 +11 -2
  37. package/dist/declarations/src/whales.d.ts +24 -19
  38. package/dist/enzymefinance-testutils.browser.cjs.js +1541 -673
  39. package/dist/enzymefinance-testutils.browser.esm.js +1502 -655
  40. package/dist/enzymefinance-testutils.cjs.dev.js +1541 -673
  41. package/dist/enzymefinance-testutils.cjs.prod.js +1541 -673
  42. package/dist/enzymefinance-testutils.esm.js +1502 -655
  43. package/package.json +6 -6
  44. package/src/assertions.ts +5 -2
  45. package/src/deployment.ts +221 -120
  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 +4 -8
  52. package/src/scaffolding/extensions/common.ts +4 -4
  53. package/src/scaffolding/extensions/external-positions/actions.ts +14 -9
  54. package/src/scaffolding/extensions/external-positions/compound.ts +28 -29
  55. package/src/scaffolding/extensions/external-positions/index.ts +1 -0
  56. package/src/scaffolding/extensions/external-positions/mocks.ts +32 -36
  57. package/src/scaffolding/extensions/external-positions/uniswap-v3-liquidity.ts +284 -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 +171 -11
  61. package/src/scaffolding/extensions/integrations/curve.ts +303 -255
  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 -31
  70. package/src/scaffolding/extensions/integrations/trackedAssets.ts +3 -4
  71. package/src/scaffolding/extensions/integrations/uniswapV2.ts +22 -19
  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/types.d.ts +1 -0
  80. package/src/whales.ts +36 -18
@@ -1,32 +1,37 @@
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
+ CurveLiquiditySethAdapter,
10
+ CurveLiquidityStethAdapter,
11
+ CurveRedeemType,
12
+ IntegrationManager,
13
+ StandardToken,
14
+ } from '@enzymefinance/protocol';
3
15
  import {
4
16
  callOnIntegrationArgs,
5
17
  claimRewardsSelector,
6
- ComptrollerLib,
7
18
  curveAaveLendAndStakeArgs,
8
19
  curveAaveLendArgs,
9
20
  curveAaveRedeemArgs,
10
21
  curveAaveStakeArgs,
11
22
  curveAaveUnstakeAndRedeemArgs,
12
23
  curveAaveUnstakeArgs,
13
- curveEursLendAndStakeArgs,
14
- curveEursLendArgs,
15
- curveEursRedeemArgs,
16
- curveEursStakeArgs,
17
- curveEursUnstakeAndRedeemArgs,
18
- curveEursUnstakeArgs,
19
- CurveExchangeAdapter,
20
- CurveLiquidityAaveAdapter,
21
- CurveLiquidityEursAdapter,
22
- CurveLiquiditySethAdapter,
23
- CurveLiquidityStethAdapter,
24
+ curveClaimRewardsArgs,
25
+ curveLendAndStakeArgs,
26
+ curveLendArgs,
27
+ curveRedeemArgs,
24
28
  curveSethLendAndStakeArgs,
25
29
  curveSethLendArgs,
26
30
  curveSethRedeemArgs,
27
31
  curveSethStakeArgs,
28
32
  curveSethUnstakeAndRedeemArgs,
29
33
  curveSethUnstakeArgs,
34
+ curveStakeArgs,
30
35
  curveStethLendAndStakeArgs,
31
36
  curveStethLendArgs,
32
37
  curveStethRedeemArgs,
@@ -34,18 +39,19 @@ import {
34
39
  curveStethUnstakeAndRedeemArgs,
35
40
  curveStethUnstakeArgs,
36
41
  curveTakeOrderArgs,
37
- IntegrationManager,
42
+ curveUnstakeAndRedeemArgs,
43
+ curveUnstakeArgs,
38
44
  IntegrationManagerActionId,
39
45
  lendAndStakeSelector,
40
46
  lendSelector,
41
47
  redeemSelector,
42
48
  stakeSelector,
43
- StandardToken,
44
49
  takeOrderSelector,
45
50
  unstakeAndRedeemSelector,
46
51
  unstakeSelector,
47
52
  } from '@enzymefinance/protocol';
48
- import { BigNumber, BigNumberish, constants, utils } from 'ethers';
53
+ import type { BigNumberish, BytesLike } from 'ethers';
54
+ import { BigNumber, constants, utils } from 'ethers';
49
55
 
50
56
  export interface CurveLiquidityGaugeV2 extends Contract<CurveLiquidityGaugeV2> {
51
57
  claim_rewards: Send<(_addr: AddressLike) => void>;
@@ -57,6 +63,16 @@ export const CurveLiquidityGaugeV2 = contract<CurveLiquidityGaugeV2>()`
57
63
  function integrate_fraction(address) view returns (uint256)
58
64
  `;
59
65
 
66
+ export interface CurveRegistry extends Contract<CurveRegistry> {
67
+ get_coins: Call<(_pool: AddressLike) => AddressLike[], Contract<any>>;
68
+ get_lp_token: Call<(_pool: AddressLike) => AddressLike, Contract<any>>;
69
+ }
70
+
71
+ export const CurveRegistry = contract<CurveRegistry>()`
72
+ function get_coins(address) view returns (address[8])
73
+ function get_lp_token(address) view returns (address)
74
+ `;
75
+
60
76
  // prettier-ignore
61
77
  export interface CurveSwaps extends Contract<CurveSwaps> {
62
78
  get_best_rate: Call<(_from: AddressLike, to: AddressLike, amount: BigNumberish) => { bestPool: AddressLike, amountReceived: BigNumber }, CurveSwaps>
@@ -98,17 +114,17 @@ export async function curveTakeOrder({
98
114
  minIncomingAssetAmount?: BigNumberish;
99
115
  }) {
100
116
  const takeOrderArgs = curveTakeOrderArgs({
117
+ incomingAsset,
118
+ minIncomingAssetAmount,
119
+ outgoingAsset,
120
+ outgoingAssetAmount,
101
121
  pool,
102
- outgoingAsset: outgoingAsset,
103
- outgoingAssetAmount: outgoingAssetAmount,
104
- incomingAsset: incomingAsset,
105
- minIncomingAssetAmount: minIncomingAssetAmount,
106
122
  });
107
123
 
108
124
  const callArgs = callOnIntegrationArgs({
109
125
  adapter: curveExchangeAdapter,
110
- selector: takeOrderSelector,
111
126
  encodedCallArgs: takeOrderArgs,
127
+ selector: takeOrderSelector,
112
128
  });
113
129
 
114
130
  return comptrollerProxy
@@ -116,23 +132,25 @@ export async function curveTakeOrder({
116
132
  .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
117
133
  }
118
134
 
119
- // aave pool
135
+ // combined liquidity
120
136
 
121
- export function curveAaveClaimRewards({
137
+ export function curveClaimRewards({
122
138
  comptrollerProxy,
123
139
  integrationManager,
124
140
  fundOwner,
125
- curveLiquidityAaveAdapter,
141
+ curveLiquidityAdapter,
142
+ stakingToken,
126
143
  }: {
127
144
  comptrollerProxy: ComptrollerLib;
128
145
  integrationManager: IntegrationManager;
129
146
  fundOwner: SignerWithAddress;
130
- curveLiquidityAaveAdapter: CurveLiquidityAaveAdapter;
147
+ curveLiquidityAdapter: CurveLiquidityAdapter;
148
+ stakingToken: AddressLike;
131
149
  }) {
132
150
  const callArgs = callOnIntegrationArgs({
133
- adapter: curveLiquidityAaveAdapter,
151
+ adapter: curveLiquidityAdapter,
152
+ encodedCallArgs: curveClaimRewardsArgs({ stakingToken }),
134
153
  selector: claimRewardsSelector,
135
- encodedCallArgs: constants.HashZero,
136
154
  });
137
155
 
138
156
  return comptrollerProxy
@@ -140,233 +158,239 @@ export function curveAaveClaimRewards({
140
158
  .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
141
159
  }
142
160
 
143
- export function curveAaveLend({
161
+ export async function curveLend({
144
162
  comptrollerProxy,
145
163
  integrationManager,
146
- fundOwner,
147
- curveLiquidityAaveAdapter,
148
- outgoingAaveDaiAmount = BigNumber.from(0),
149
- outgoingAaveUsdcAmount = BigNumber.from(0),
150
- outgoingAaveUsdtAmount = BigNumber.from(0),
151
- minIncomingLPTokenAmount = BigNumber.from(1),
152
- useUnderlyings = false,
164
+ signer,
165
+ curveLiquidityAdapter,
166
+ pool,
167
+ orderedOutgoingAssetAmounts,
168
+ minIncomingLpTokenAmount = BigNumber.from(1),
169
+ useUnderlyings,
153
170
  }: {
154
171
  comptrollerProxy: ComptrollerLib;
155
172
  integrationManager: IntegrationManager;
156
- fundOwner: SignerWithAddress;
157
- curveLiquidityAaveAdapter: CurveLiquidityAaveAdapter;
158
- outgoingAaveDaiAmount?: BigNumberish;
159
- outgoingAaveUsdcAmount?: BigNumberish;
160
- outgoingAaveUsdtAmount?: BigNumberish;
161
- minIncomingLPTokenAmount?: BigNumberish;
162
- useUnderlyings?: boolean;
173
+ signer: SignerWithAddress;
174
+ curveLiquidityAdapter: CurveLiquidityAdapter;
175
+ pool: AddressLike;
176
+ orderedOutgoingAssetAmounts: BigNumberish[];
177
+ minIncomingLpTokenAmount?: BigNumberish;
178
+ useUnderlyings: boolean;
163
179
  }) {
164
180
  const callArgs = callOnIntegrationArgs({
165
- adapter: curveLiquidityAaveAdapter,
166
- selector: lendSelector,
167
- encodedCallArgs: curveAaveLendArgs({
168
- outgoingAaveDaiAmount,
169
- outgoingAaveUsdcAmount,
170
- outgoingAaveUsdtAmount,
171
- minIncomingLPTokenAmount,
181
+ adapter: curveLiquidityAdapter,
182
+ encodedCallArgs: curveLendArgs({
183
+ minIncomingLpTokenAmount,
184
+ orderedOutgoingAssetAmounts,
185
+ pool,
172
186
  useUnderlyings,
173
187
  }),
188
+ selector: lendSelector,
174
189
  });
175
190
 
176
191
  return comptrollerProxy
177
- .connect(fundOwner)
192
+ .connect(signer)
178
193
  .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
179
194
  }
180
195
 
181
- export function curveAaveLendAndStake({
196
+ export async function curveLendAndStake({
182
197
  comptrollerProxy,
183
198
  integrationManager,
184
- fundOwner,
185
- curveLiquidityAaveAdapter,
186
- outgoingAaveDaiAmount = BigNumber.from(0),
187
- outgoingAaveUsdcAmount = BigNumber.from(0),
188
- outgoingAaveUsdtAmount = BigNumber.from(0),
189
- minIncomingLiquidityGaugeTokenAmount = BigNumber.from(1),
190
- useUnderlyings = false,
199
+ signer,
200
+ curveLiquidityAdapter,
201
+ pool,
202
+ orderedOutgoingAssetAmounts,
203
+ incomingStakingToken,
204
+ minIncomingStakingTokenAmount = BigNumber.from(1),
205
+ useUnderlyings,
191
206
  }: {
192
207
  comptrollerProxy: ComptrollerLib;
193
208
  integrationManager: IntegrationManager;
194
- fundOwner: SignerWithAddress;
195
- curveLiquidityAaveAdapter: CurveLiquidityAaveAdapter;
196
- outgoingAaveDaiAmount?: BigNumberish;
197
- outgoingAaveUsdcAmount?: BigNumberish;
198
- outgoingAaveUsdtAmount?: BigNumberish;
199
- minIncomingLiquidityGaugeTokenAmount?: BigNumberish;
200
- useUnderlyings?: boolean;
209
+ signer: SignerWithAddress;
210
+ curveLiquidityAdapter: CurveLiquidityAdapter;
211
+ pool: AddressLike;
212
+ orderedOutgoingAssetAmounts: BigNumberish[];
213
+ incomingStakingToken: AddressLike;
214
+ minIncomingStakingTokenAmount?: BigNumberish;
215
+ useUnderlyings: boolean;
201
216
  }) {
202
217
  const callArgs = callOnIntegrationArgs({
203
- adapter: curveLiquidityAaveAdapter,
204
- selector: lendAndStakeSelector,
205
- encodedCallArgs: curveAaveLendAndStakeArgs({
206
- outgoingAaveDaiAmount,
207
- outgoingAaveUsdcAmount,
208
- outgoingAaveUsdtAmount,
209
- minIncomingLiquidityGaugeTokenAmount,
218
+ adapter: curveLiquidityAdapter,
219
+ encodedCallArgs: curveLendAndStakeArgs({
220
+ incomingStakingToken,
221
+ minIncomingStakingTokenAmount,
222
+ orderedOutgoingAssetAmounts,
223
+ pool,
210
224
  useUnderlyings,
211
225
  }),
226
+ selector: lendAndStakeSelector,
212
227
  });
213
228
 
214
229
  return comptrollerProxy
215
- .connect(fundOwner)
230
+ .connect(signer)
216
231
  .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
217
232
  }
218
233
 
219
- export function curveAaveRedeem({
234
+ export async function curveRedeem({
220
235
  comptrollerProxy,
221
236
  integrationManager,
222
- fundOwner,
223
- curveLiquidityAaveAdapter,
224
- outgoingLPTokenAmount,
225
- minIncomingAaveDaiAmount = BigNumber.from(1),
226
- minIncomingAaveUsdcAmount = BigNumber.from(1),
227
- minIncomingAaveUsdtAmount = BigNumber.from(1),
228
- receiveSingleAsset = false,
229
- useUnderlyings = false,
237
+ signer,
238
+ curveLiquidityAdapter,
239
+ pool,
240
+ outgoingLpTokenAmount,
241
+ useUnderlyings,
242
+ redeemType,
243
+ incomingAssetData,
230
244
  }: {
231
245
  comptrollerProxy: ComptrollerLib;
232
246
  integrationManager: IntegrationManager;
233
- fundOwner: SignerWithAddress;
234
- curveLiquidityAaveAdapter: CurveLiquidityAaveAdapter;
235
- outgoingLPTokenAmount: BigNumberish;
236
- minIncomingAaveDaiAmount?: BigNumberish;
237
- minIncomingAaveUsdcAmount?: BigNumberish;
238
- minIncomingAaveUsdtAmount?: BigNumberish;
239
- receiveSingleAsset?: boolean;
240
- useUnderlyings?: boolean;
247
+ signer: SignerWithAddress;
248
+ curveLiquidityAdapter: CurveLiquidityAdapter;
249
+ pool: AddressLike;
250
+ outgoingLpTokenAmount: BigNumberish;
251
+ useUnderlyings: boolean;
252
+ redeemType: CurveRedeemType;
253
+ incomingAssetData: BytesLike;
241
254
  }) {
242
255
  const callArgs = callOnIntegrationArgs({
243
- adapter: curveLiquidityAaveAdapter,
244
- selector: redeemSelector,
245
- encodedCallArgs: curveAaveRedeemArgs({
246
- outgoingLPTokenAmount,
247
- minIncomingAaveDaiAmount,
248
- minIncomingAaveUsdcAmount,
249
- minIncomingAaveUsdtAmount,
250
- receiveSingleAsset,
256
+ adapter: curveLiquidityAdapter,
257
+ encodedCallArgs: curveRedeemArgs({
258
+ incomingAssetData,
259
+ outgoingLpTokenAmount,
260
+ pool,
261
+ redeemType,
251
262
  useUnderlyings,
252
263
  }),
264
+ selector: redeemSelector,
253
265
  });
254
266
 
255
267
  return comptrollerProxy
256
- .connect(fundOwner)
268
+ .connect(signer)
257
269
  .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
258
270
  }
259
271
 
260
- export function curveAaveStake({
272
+ export async function curveStake({
261
273
  comptrollerProxy,
262
274
  integrationManager,
263
- fundOwner,
264
- curveLiquidityAaveAdapter,
265
- outgoingLPTokenAmount,
275
+ signer,
276
+ curveLiquidityAdapter,
277
+ pool,
278
+ incomingStakingToken,
279
+ amount,
266
280
  }: {
267
281
  comptrollerProxy: ComptrollerLib;
268
282
  integrationManager: IntegrationManager;
269
- fundOwner: SignerWithAddress;
270
- curveLiquidityAaveAdapter: CurveLiquidityAaveAdapter;
271
- outgoingLPTokenAmount: BigNumberish;
283
+ signer: SignerWithAddress;
284
+ curveLiquidityAdapter: CurveLiquidityAdapter;
285
+ pool: AddressLike;
286
+ incomingStakingToken: AddressLike;
287
+ amount: BigNumberish;
272
288
  }) {
273
289
  const callArgs = callOnIntegrationArgs({
274
- adapter: curveLiquidityAaveAdapter,
275
- selector: stakeSelector,
276
- encodedCallArgs: curveAaveStakeArgs({
277
- outgoingLPTokenAmount,
290
+ adapter: curveLiquidityAdapter,
291
+ encodedCallArgs: curveStakeArgs({
292
+ amount,
293
+ incomingStakingToken,
294
+ pool,
278
295
  }),
296
+ selector: stakeSelector,
279
297
  });
280
298
 
281
299
  return comptrollerProxy
282
- .connect(fundOwner)
300
+ .connect(signer)
283
301
  .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
284
302
  }
285
303
 
286
- export function curveAaveUnstakeAndRedeem({
304
+ export async function curveUnstake({
287
305
  comptrollerProxy,
288
306
  integrationManager,
289
- fundOwner,
290
- curveLiquidityAaveAdapter,
291
- outgoingLiquidityGaugeTokenAmount,
292
- minIncomingAaveDaiAmount = BigNumber.from(1),
293
- minIncomingAaveUsdcAmount = BigNumber.from(1),
294
- minIncomingAaveUsdtAmount = BigNumber.from(1),
295
- receiveSingleAsset = false,
296
- useUnderlyings = false,
307
+ signer,
308
+ curveLiquidityAdapter,
309
+ pool,
310
+ outgoingStakingToken,
311
+ amount,
297
312
  }: {
298
313
  comptrollerProxy: ComptrollerLib;
299
314
  integrationManager: IntegrationManager;
300
- fundOwner: SignerWithAddress;
301
- curveLiquidityAaveAdapter: CurveLiquidityAaveAdapter;
302
- outgoingLiquidityGaugeTokenAmount: BigNumberish;
303
- minIncomingAaveDaiAmount?: BigNumberish;
304
- minIncomingAaveUsdcAmount?: BigNumberish;
305
- minIncomingAaveUsdtAmount?: BigNumberish;
306
- receiveSingleAsset?: boolean;
307
- useUnderlyings?: boolean;
315
+ signer: SignerWithAddress;
316
+ curveLiquidityAdapter: CurveLiquidityAdapter;
317
+ pool: AddressLike;
318
+ outgoingStakingToken: AddressLike;
319
+ amount: BigNumberish;
308
320
  }) {
309
321
  const callArgs = callOnIntegrationArgs({
310
- adapter: curveLiquidityAaveAdapter,
311
- selector: unstakeAndRedeemSelector,
312
- encodedCallArgs: curveAaveUnstakeAndRedeemArgs({
313
- outgoingLiquidityGaugeTokenAmount,
314
- minIncomingAaveDaiAmount,
315
- minIncomingAaveUsdcAmount,
316
- minIncomingAaveUsdtAmount,
317
- receiveSingleAsset,
318
- useUnderlyings,
322
+ adapter: curveLiquidityAdapter,
323
+ encodedCallArgs: curveUnstakeArgs({
324
+ amount,
325
+ outgoingStakingToken,
326
+ pool,
319
327
  }),
328
+ selector: unstakeSelector,
320
329
  });
321
330
 
322
331
  return comptrollerProxy
323
- .connect(fundOwner)
332
+ .connect(signer)
324
333
  .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
325
334
  }
326
335
 
327
- export function curveAaveUnstake({
336
+ export async function curveUnstakeAndRedeem({
328
337
  comptrollerProxy,
329
338
  integrationManager,
330
- fundOwner,
331
- curveLiquidityAaveAdapter,
332
- outgoingLiquidityGaugeTokenAmount,
339
+ signer,
340
+ curveLiquidityAdapter,
341
+ pool,
342
+ outgoingStakingToken,
343
+ outgoingStakingTokenAmount,
344
+ useUnderlyings,
345
+ redeemType,
346
+ incomingAssetData,
333
347
  }: {
334
348
  comptrollerProxy: ComptrollerLib;
335
349
  integrationManager: IntegrationManager;
336
- fundOwner: SignerWithAddress;
337
- curveLiquidityAaveAdapter: CurveLiquidityAaveAdapter;
338
- outgoingLiquidityGaugeTokenAmount: BigNumberish;
350
+ signer: SignerWithAddress;
351
+ curveLiquidityAdapter: CurveLiquidityAdapter;
352
+ pool: AddressLike;
353
+ outgoingStakingToken: StandardToken;
354
+ outgoingStakingTokenAmount: BigNumberish;
355
+ useUnderlyings: boolean;
356
+ redeemType: CurveRedeemType;
357
+ incomingAssetData: BytesLike;
339
358
  }) {
340
359
  const callArgs = callOnIntegrationArgs({
341
- adapter: curveLiquidityAaveAdapter,
342
- selector: unstakeSelector,
343
- encodedCallArgs: curveAaveUnstakeArgs({
344
- outgoingLiquidityGaugeTokenAmount,
360
+ adapter: curveLiquidityAdapter,
361
+ encodedCallArgs: curveUnstakeAndRedeemArgs({
362
+ incomingAssetData,
363
+ outgoingStakingToken,
364
+ outgoingStakingTokenAmount,
365
+ pool,
366
+ redeemType,
367
+ useUnderlyings,
345
368
  }),
369
+ selector: unstakeAndRedeemSelector,
346
370
  });
347
371
 
348
372
  return comptrollerProxy
349
- .connect(fundOwner)
373
+ .connect(signer)
350
374
  .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
351
375
  }
352
376
 
353
- // eurs pool
377
+ // aave pool
354
378
 
355
- export function curveEursClaimRewards({
379
+ export function curveAaveClaimRewards({
356
380
  comptrollerProxy,
357
381
  integrationManager,
358
382
  fundOwner,
359
- curveLiquidityEursAdapter,
383
+ curveLiquidityAaveAdapter,
360
384
  }: {
361
385
  comptrollerProxy: ComptrollerLib;
362
386
  integrationManager: IntegrationManager;
363
387
  fundOwner: SignerWithAddress;
364
- curveLiquidityEursAdapter: CurveLiquidityEursAdapter;
388
+ curveLiquidityAaveAdapter: CurveLiquidityAaveAdapter;
365
389
  }) {
366
390
  const callArgs = callOnIntegrationArgs({
367
- adapter: curveLiquidityEursAdapter,
368
- selector: claimRewardsSelector,
391
+ adapter: curveLiquidityAaveAdapter,
369
392
  encodedCallArgs: constants.HashZero,
393
+ selector: claimRewardsSelector,
370
394
  });
371
395
 
372
396
  return comptrollerProxy
@@ -374,31 +398,37 @@ export function curveEursClaimRewards({
374
398
  .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
375
399
  }
376
400
 
377
- export function curveEursLend({
401
+ export function curveAaveLend({
378
402
  comptrollerProxy,
379
403
  integrationManager,
380
404
  fundOwner,
381
- curveLiquidityEursAdapter,
382
- outgoingEursAmount,
383
- outgoingSeurAmount,
384
- minIncomingLPTokenAmount,
405
+ curveLiquidityAaveAdapter,
406
+ outgoingAaveDaiAmount = BigNumber.from(0),
407
+ outgoingAaveUsdcAmount = BigNumber.from(0),
408
+ outgoingAaveUsdtAmount = BigNumber.from(0),
409
+ minIncomingLPTokenAmount = BigNumber.from(1),
410
+ useUnderlyings = false,
385
411
  }: {
386
412
  comptrollerProxy: ComptrollerLib;
387
413
  integrationManager: IntegrationManager;
388
414
  fundOwner: SignerWithAddress;
389
- curveLiquidityEursAdapter: CurveLiquidityEursAdapter;
390
- outgoingEursAmount: BigNumberish;
391
- outgoingSeurAmount: BigNumberish;
392
- minIncomingLPTokenAmount: BigNumberish;
415
+ curveLiquidityAaveAdapter: CurveLiquidityAaveAdapter;
416
+ outgoingAaveDaiAmount?: BigNumberish;
417
+ outgoingAaveUsdcAmount?: BigNumberish;
418
+ outgoingAaveUsdtAmount?: BigNumberish;
419
+ minIncomingLPTokenAmount?: BigNumberish;
420
+ useUnderlyings?: boolean;
393
421
  }) {
394
422
  const callArgs = callOnIntegrationArgs({
395
- adapter: curveLiquidityEursAdapter,
396
- selector: lendSelector,
397
- encodedCallArgs: curveEursLendArgs({
398
- outgoingEursAmount,
399
- outgoingSeurAmount,
423
+ adapter: curveLiquidityAaveAdapter,
424
+ encodedCallArgs: curveAaveLendArgs({
400
425
  minIncomingLPTokenAmount,
426
+ outgoingAaveDaiAmount,
427
+ outgoingAaveUsdcAmount,
428
+ outgoingAaveUsdtAmount,
429
+ useUnderlyings,
401
430
  }),
431
+ selector: lendSelector,
402
432
  });
403
433
 
404
434
  return comptrollerProxy
@@ -406,31 +436,37 @@ export function curveEursLend({
406
436
  .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
407
437
  }
408
438
 
409
- export function curveEursLendAndStake({
439
+ export function curveAaveLendAndStake({
410
440
  comptrollerProxy,
411
441
  integrationManager,
412
442
  fundOwner,
413
- curveLiquidityEursAdapter,
414
- outgoingEursAmount,
415
- outgoingSeurAmount,
416
- minIncomingLiquidityGaugeTokenAmount,
443
+ curveLiquidityAaveAdapter,
444
+ outgoingAaveDaiAmount = BigNumber.from(0),
445
+ outgoingAaveUsdcAmount = BigNumber.from(0),
446
+ outgoingAaveUsdtAmount = BigNumber.from(0),
447
+ minIncomingLiquidityGaugeTokenAmount = BigNumber.from(1),
448
+ useUnderlyings = false,
417
449
  }: {
418
450
  comptrollerProxy: ComptrollerLib;
419
451
  integrationManager: IntegrationManager;
420
452
  fundOwner: SignerWithAddress;
421
- curveLiquidityEursAdapter: CurveLiquidityEursAdapter;
422
- outgoingEursAmount: BigNumberish;
423
- outgoingSeurAmount: BigNumberish;
424
- minIncomingLiquidityGaugeTokenAmount: BigNumberish;
453
+ curveLiquidityAaveAdapter: CurveLiquidityAaveAdapter;
454
+ outgoingAaveDaiAmount?: BigNumberish;
455
+ outgoingAaveUsdcAmount?: BigNumberish;
456
+ outgoingAaveUsdtAmount?: BigNumberish;
457
+ minIncomingLiquidityGaugeTokenAmount?: BigNumberish;
458
+ useUnderlyings?: boolean;
425
459
  }) {
426
460
  const callArgs = callOnIntegrationArgs({
427
- adapter: curveLiquidityEursAdapter,
428
- selector: lendAndStakeSelector,
429
- encodedCallArgs: curveEursLendAndStakeArgs({
430
- outgoingEursAmount,
431
- outgoingSeurAmount,
461
+ adapter: curveLiquidityAaveAdapter,
462
+ encodedCallArgs: curveAaveLendAndStakeArgs({
432
463
  minIncomingLiquidityGaugeTokenAmount,
464
+ outgoingAaveDaiAmount,
465
+ outgoingAaveUsdcAmount,
466
+ outgoingAaveUsdtAmount,
467
+ useUnderlyings,
433
468
  }),
469
+ selector: lendAndStakeSelector,
434
470
  });
435
471
 
436
472
  return comptrollerProxy
@@ -438,34 +474,40 @@ export function curveEursLendAndStake({
438
474
  .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
439
475
  }
440
476
 
441
- export function curveEursRedeem({
477
+ export function curveAaveRedeem({
442
478
  comptrollerProxy,
443
479
  integrationManager,
444
480
  fundOwner,
445
- curveLiquidityEursAdapter,
481
+ curveLiquidityAaveAdapter,
446
482
  outgoingLPTokenAmount,
447
- minIncomingEursAmount,
448
- minIncomingSeurAmount,
449
- receiveSingleAsset,
483
+ minIncomingAaveDaiAmount = BigNumber.from(1),
484
+ minIncomingAaveUsdcAmount = BigNumber.from(1),
485
+ minIncomingAaveUsdtAmount = BigNumber.from(1),
486
+ receiveSingleAsset = false,
487
+ useUnderlyings = false,
450
488
  }: {
451
489
  comptrollerProxy: ComptrollerLib;
452
490
  integrationManager: IntegrationManager;
453
491
  fundOwner: SignerWithAddress;
454
- curveLiquidityEursAdapter: CurveLiquidityEursAdapter;
492
+ curveLiquidityAaveAdapter: CurveLiquidityAaveAdapter;
455
493
  outgoingLPTokenAmount: BigNumberish;
456
- minIncomingEursAmount: BigNumberish;
457
- minIncomingSeurAmount: BigNumberish;
458
- receiveSingleAsset: boolean;
494
+ minIncomingAaveDaiAmount?: BigNumberish;
495
+ minIncomingAaveUsdcAmount?: BigNumberish;
496
+ minIncomingAaveUsdtAmount?: BigNumberish;
497
+ receiveSingleAsset?: boolean;
498
+ useUnderlyings?: boolean;
459
499
  }) {
460
500
  const callArgs = callOnIntegrationArgs({
461
- adapter: curveLiquidityEursAdapter,
462
- selector: redeemSelector,
463
- encodedCallArgs: curveEursRedeemArgs({
501
+ adapter: curveLiquidityAaveAdapter,
502
+ encodedCallArgs: curveAaveRedeemArgs({
503
+ minIncomingAaveDaiAmount,
504
+ minIncomingAaveUsdcAmount,
505
+ minIncomingAaveUsdtAmount,
464
506
  outgoingLPTokenAmount,
465
- minIncomingEursAmount,
466
- minIncomingSeurAmount,
467
507
  receiveSingleAsset,
508
+ useUnderlyings,
468
509
  }),
510
+ selector: redeemSelector,
469
511
  });
470
512
 
471
513
  return comptrollerProxy
@@ -473,25 +515,25 @@ export function curveEursRedeem({
473
515
  .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
474
516
  }
475
517
 
476
- export function curveEursStake({
518
+ export function curveAaveStake({
477
519
  comptrollerProxy,
478
520
  integrationManager,
479
521
  fundOwner,
480
- curveLiquidityEursAdapter,
522
+ curveLiquidityAaveAdapter,
481
523
  outgoingLPTokenAmount,
482
524
  }: {
483
525
  comptrollerProxy: ComptrollerLib;
484
526
  integrationManager: IntegrationManager;
485
527
  fundOwner: SignerWithAddress;
486
- curveLiquidityEursAdapter: CurveLiquidityEursAdapter;
528
+ curveLiquidityAaveAdapter: CurveLiquidityAaveAdapter;
487
529
  outgoingLPTokenAmount: BigNumberish;
488
530
  }) {
489
531
  const callArgs = callOnIntegrationArgs({
490
- adapter: curveLiquidityEursAdapter,
491
- selector: stakeSelector,
492
- encodedCallArgs: curveEursStakeArgs({
532
+ adapter: curveLiquidityAaveAdapter,
533
+ encodedCallArgs: curveAaveStakeArgs({
493
534
  outgoingLPTokenAmount,
494
535
  }),
536
+ selector: stakeSelector,
495
537
  });
496
538
 
497
539
  return comptrollerProxy
@@ -499,34 +541,40 @@ export function curveEursStake({
499
541
  .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
500
542
  }
501
543
 
502
- export function curveEursUnstakeAndRedeem({
544
+ export function curveAaveUnstakeAndRedeem({
503
545
  comptrollerProxy,
504
546
  integrationManager,
505
547
  fundOwner,
506
- curveLiquidityEursAdapter,
548
+ curveLiquidityAaveAdapter,
507
549
  outgoingLiquidityGaugeTokenAmount,
508
- minIncomingEursAmount,
509
- minIncomingSeurAmount,
510
- receiveSingleAsset,
550
+ minIncomingAaveDaiAmount = BigNumber.from(1),
551
+ minIncomingAaveUsdcAmount = BigNumber.from(1),
552
+ minIncomingAaveUsdtAmount = BigNumber.from(1),
553
+ receiveSingleAsset = false,
554
+ useUnderlyings = false,
511
555
  }: {
512
556
  comptrollerProxy: ComptrollerLib;
513
557
  integrationManager: IntegrationManager;
514
558
  fundOwner: SignerWithAddress;
515
- curveLiquidityEursAdapter: CurveLiquidityEursAdapter;
559
+ curveLiquidityAaveAdapter: CurveLiquidityAaveAdapter;
516
560
  outgoingLiquidityGaugeTokenAmount: BigNumberish;
517
- minIncomingEursAmount: BigNumberish;
518
- minIncomingSeurAmount: BigNumberish;
519
- receiveSingleAsset: boolean;
561
+ minIncomingAaveDaiAmount?: BigNumberish;
562
+ minIncomingAaveUsdcAmount?: BigNumberish;
563
+ minIncomingAaveUsdtAmount?: BigNumberish;
564
+ receiveSingleAsset?: boolean;
565
+ useUnderlyings?: boolean;
520
566
  }) {
521
567
  const callArgs = callOnIntegrationArgs({
522
- adapter: curveLiquidityEursAdapter,
523
- selector: unstakeAndRedeemSelector,
524
- encodedCallArgs: curveEursUnstakeAndRedeemArgs({
568
+ adapter: curveLiquidityAaveAdapter,
569
+ encodedCallArgs: curveAaveUnstakeAndRedeemArgs({
570
+ minIncomingAaveDaiAmount,
571
+ minIncomingAaveUsdcAmount,
572
+ minIncomingAaveUsdtAmount,
525
573
  outgoingLiquidityGaugeTokenAmount,
526
- minIncomingEursAmount,
527
- minIncomingSeurAmount,
528
574
  receiveSingleAsset,
575
+ useUnderlyings,
529
576
  }),
577
+ selector: unstakeAndRedeemSelector,
530
578
  });
531
579
 
532
580
  return comptrollerProxy
@@ -534,25 +582,25 @@ export function curveEursUnstakeAndRedeem({
534
582
  .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
535
583
  }
536
584
 
537
- export function curveEursUnstake({
585
+ export function curveAaveUnstake({
538
586
  comptrollerProxy,
539
587
  integrationManager,
540
588
  fundOwner,
541
- curveLiquidityEursAdapter,
589
+ curveLiquidityAaveAdapter,
542
590
  outgoingLiquidityGaugeTokenAmount,
543
591
  }: {
544
592
  comptrollerProxy: ComptrollerLib;
545
593
  integrationManager: IntegrationManager;
546
594
  fundOwner: SignerWithAddress;
547
- curveLiquidityEursAdapter: CurveLiquidityEursAdapter;
595
+ curveLiquidityAaveAdapter: CurveLiquidityAaveAdapter;
548
596
  outgoingLiquidityGaugeTokenAmount: BigNumberish;
549
597
  }) {
550
598
  const callArgs = callOnIntegrationArgs({
551
- adapter: curveLiquidityEursAdapter,
552
- selector: unstakeSelector,
553
- encodedCallArgs: curveEursUnstakeArgs({
599
+ adapter: curveLiquidityAaveAdapter,
600
+ encodedCallArgs: curveAaveUnstakeArgs({
554
601
  outgoingLiquidityGaugeTokenAmount,
555
602
  }),
603
+ selector: unstakeSelector,
556
604
  });
557
605
 
558
606
  return comptrollerProxy
@@ -575,8 +623,8 @@ export function curveSethClaimRewards({
575
623
  }) {
576
624
  const callArgs = callOnIntegrationArgs({
577
625
  adapter: curveLiquiditySethAdapter,
578
- selector: claimRewardsSelector,
579
626
  encodedCallArgs: constants.HashZero,
627
+ selector: claimRewardsSelector,
580
628
  });
581
629
 
582
630
  return comptrollerProxy
@@ -603,12 +651,12 @@ export function curveSethLend({
603
651
  }) {
604
652
  const callArgs = callOnIntegrationArgs({
605
653
  adapter: curveLiquiditySethAdapter,
606
- selector: lendSelector,
607
654
  encodedCallArgs: curveSethLendArgs({
608
- outgoingWethAmount,
609
- outgoingSethAmount,
610
655
  minIncomingLPTokenAmount,
656
+ outgoingSethAmount,
657
+ outgoingWethAmount,
611
658
  }),
659
+ selector: lendSelector,
612
660
  });
613
661
 
614
662
  return comptrollerProxy
@@ -635,12 +683,12 @@ export function curveSethLendAndStake({
635
683
  }) {
636
684
  const callArgs = callOnIntegrationArgs({
637
685
  adapter: curveLiquiditySethAdapter,
638
- selector: lendAndStakeSelector,
639
686
  encodedCallArgs: curveSethLendAndStakeArgs({
640
- outgoingWethAmount,
641
- outgoingSethAmount,
642
687
  minIncomingLiquidityGaugeTokenAmount,
688
+ outgoingSethAmount,
689
+ outgoingWethAmount,
643
690
  }),
691
+ selector: lendAndStakeSelector,
644
692
  });
645
693
 
646
694
  return comptrollerProxy
@@ -669,13 +717,13 @@ export function curveSethRedeem({
669
717
  }) {
670
718
  const callArgs = callOnIntegrationArgs({
671
719
  adapter: curveLiquiditySethAdapter,
672
- selector: redeemSelector,
673
720
  encodedCallArgs: curveSethRedeemArgs({
674
- outgoingLPTokenAmount,
675
- minIncomingWethAmount,
676
721
  minIncomingSethAmount,
722
+ minIncomingWethAmount,
723
+ outgoingLPTokenAmount,
677
724
  receiveSingleAsset,
678
725
  }),
726
+ selector: redeemSelector,
679
727
  });
680
728
 
681
729
  return comptrollerProxy
@@ -698,10 +746,10 @@ export function curveSethStake({
698
746
  }) {
699
747
  const callArgs = callOnIntegrationArgs({
700
748
  adapter: curveLiquiditySethAdapter,
701
- selector: stakeSelector,
702
749
  encodedCallArgs: curveSethStakeArgs({
703
750
  outgoingLPTokenAmount,
704
751
  }),
752
+ selector: stakeSelector,
705
753
  });
706
754
 
707
755
  return comptrollerProxy
@@ -730,13 +778,13 @@ export function curveSethUnstakeAndRedeem({
730
778
  }) {
731
779
  const callArgs = callOnIntegrationArgs({
732
780
  adapter: curveLiquiditySethAdapter,
733
- selector: unstakeAndRedeemSelector,
734
781
  encodedCallArgs: curveSethUnstakeAndRedeemArgs({
735
- outgoingLiquidityGaugeTokenAmount,
736
- minIncomingWethAmount,
737
782
  minIncomingSethAmount,
783
+ minIncomingWethAmount,
784
+ outgoingLiquidityGaugeTokenAmount,
738
785
  receiveSingleAsset,
739
786
  }),
787
+ selector: unstakeAndRedeemSelector,
740
788
  });
741
789
 
742
790
  return comptrollerProxy
@@ -759,10 +807,10 @@ export function curveSethUnstake({
759
807
  }) {
760
808
  const callArgs = callOnIntegrationArgs({
761
809
  adapter: curveLiquiditySethAdapter,
762
- selector: unstakeSelector,
763
810
  encodedCallArgs: curveSethUnstakeArgs({
764
811
  outgoingLiquidityGaugeTokenAmount,
765
812
  }),
813
+ selector: unstakeSelector,
766
814
  });
767
815
 
768
816
  return comptrollerProxy
@@ -785,8 +833,8 @@ export function curveStethClaimRewards({
785
833
  }) {
786
834
  const callArgs = callOnIntegrationArgs({
787
835
  adapter: curveLiquidityStethAdapter,
788
- selector: claimRewardsSelector,
789
836
  encodedCallArgs: constants.HashZero,
837
+ selector: claimRewardsSelector,
790
838
  });
791
839
 
792
840
  return comptrollerProxy
@@ -813,12 +861,12 @@ export function curveStethLend({
813
861
  }) {
814
862
  const callArgs = callOnIntegrationArgs({
815
863
  adapter: curveLiquidityStethAdapter,
816
- selector: lendSelector,
817
864
  encodedCallArgs: curveStethLendArgs({
818
- outgoingWethAmount,
819
- outgoingStethAmount,
820
865
  minIncomingLPTokenAmount,
866
+ outgoingStethAmount,
867
+ outgoingWethAmount,
821
868
  }),
869
+ selector: lendSelector,
822
870
  });
823
871
 
824
872
  return comptrollerProxy
@@ -845,12 +893,12 @@ export function curveStethLendAndStake({
845
893
  }) {
846
894
  const callArgs = callOnIntegrationArgs({
847
895
  adapter: curveLiquidityStethAdapter,
848
- selector: lendAndStakeSelector,
849
896
  encodedCallArgs: curveStethLendAndStakeArgs({
850
- outgoingWethAmount,
851
- outgoingStethAmount,
852
897
  minIncomingLiquidityGaugeTokenAmount,
898
+ outgoingStethAmount,
899
+ outgoingWethAmount,
853
900
  }),
901
+ selector: lendAndStakeSelector,
854
902
  });
855
903
 
856
904
  return comptrollerProxy
@@ -879,13 +927,13 @@ export function curveStethRedeem({
879
927
  }) {
880
928
  const callArgs = callOnIntegrationArgs({
881
929
  adapter: curveLiquidityStethAdapter,
882
- selector: redeemSelector,
883
930
  encodedCallArgs: curveStethRedeemArgs({
884
- outgoingLPTokenAmount,
885
- minIncomingWethAmount,
886
931
  minIncomingStethAmount,
932
+ minIncomingWethAmount,
933
+ outgoingLPTokenAmount,
887
934
  receiveSingleAsset,
888
935
  }),
936
+ selector: redeemSelector,
889
937
  });
890
938
 
891
939
  return comptrollerProxy
@@ -908,10 +956,10 @@ export function curveStethStake({
908
956
  }) {
909
957
  const callArgs = callOnIntegrationArgs({
910
958
  adapter: curveLiquidityStethAdapter,
911
- selector: stakeSelector,
912
959
  encodedCallArgs: curveStethStakeArgs({
913
960
  outgoingLPTokenAmount,
914
961
  }),
962
+ selector: stakeSelector,
915
963
  });
916
964
 
917
965
  return comptrollerProxy
@@ -940,13 +988,13 @@ export function curveStethUnstakeAndRedeem({
940
988
  }) {
941
989
  const callArgs = callOnIntegrationArgs({
942
990
  adapter: curveLiquidityStethAdapter,
943
- selector: unstakeAndRedeemSelector,
944
991
  encodedCallArgs: curveStethUnstakeAndRedeemArgs({
945
- outgoingLiquidityGaugeTokenAmount,
946
- minIncomingWethAmount,
947
992
  minIncomingStethAmount,
993
+ minIncomingWethAmount,
994
+ outgoingLiquidityGaugeTokenAmount,
948
995
  receiveSingleAsset,
949
996
  }),
997
+ selector: unstakeAndRedeemSelector,
950
998
  });
951
999
 
952
1000
  return comptrollerProxy
@@ -969,10 +1017,10 @@ export function curveStethUnstake({
969
1017
  }) {
970
1018
  const callArgs = callOnIntegrationArgs({
971
1019
  adapter: curveLiquidityStethAdapter,
972
- selector: unstakeSelector,
973
1020
  encodedCallArgs: curveStethUnstakeArgs({
974
1021
  outgoingLiquidityGaugeTokenAmount,
975
1022
  }),
1023
+ selector: unstakeSelector,
976
1024
  });
977
1025
 
978
1026
  return comptrollerProxy