@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.
- package/CHANGELOG.md +32 -0
- package/dist/declarations/src/assertions.d.ts +2 -2
- package/dist/declarations/src/deployment.d.ts +168 -64
- package/dist/declarations/src/gasRelayer.d.ts +14 -12
- package/dist/declarations/src/helpers.d.ts +5 -4
- package/dist/declarations/src/scaffolding/assets.d.ts +3 -3
- package/dist/declarations/src/scaffolding/chainlink.d.ts +2 -2
- package/dist/declarations/src/scaffolding/common.d.ts +1 -1
- package/dist/declarations/src/scaffolding/core.d.ts +4 -3
- package/dist/declarations/src/scaffolding/extensions/common.d.ts +4 -4
- package/dist/declarations/src/scaffolding/extensions/external-positions/actions.d.ts +14 -5
- package/dist/declarations/src/scaffolding/extensions/external-positions/compound.d.ts +22 -22
- package/dist/declarations/src/scaffolding/extensions/external-positions/index.d.ts +1 -0
- package/dist/declarations/src/scaffolding/extensions/external-positions/mocks.d.ts +40 -7
- package/dist/declarations/src/scaffolding/extensions/external-positions/uniswap-v3-liquidity.d.ts +99 -0
- package/dist/declarations/src/scaffolding/extensions/fees.d.ts +1 -1
- package/dist/declarations/src/scaffolding/extensions/integrations/aave.d.ts +4 -3
- package/dist/declarations/src/scaffolding/extensions/integrations/compound.d.ts +5 -5
- package/dist/declarations/src/scaffolding/extensions/integrations/curve.d.ts +108 -33
- package/dist/declarations/src/scaffolding/extensions/integrations/idle.d.ts +3 -3
- package/dist/declarations/src/scaffolding/extensions/integrations/index.d.ts +3 -0
- package/dist/declarations/src/scaffolding/extensions/integrations/mock.d.ts +4 -4
- package/dist/declarations/src/scaffolding/extensions/integrations/olympusV2.d.ts +17 -0
- package/dist/declarations/src/scaffolding/extensions/integrations/paraSwapV4.d.ts +6 -5
- package/dist/declarations/src/scaffolding/extensions/integrations/paraSwapV5.d.ts +23 -0
- package/dist/declarations/src/scaffolding/extensions/integrations/poolTogetherV4.d.ts +29 -0
- package/dist/declarations/src/scaffolding/extensions/integrations/synthetix.d.ts +11 -3
- package/dist/declarations/src/scaffolding/extensions/integrations/trackedAssets.d.ts +3 -3
- package/dist/declarations/src/scaffolding/extensions/integrations/uniswapV2.d.ts +10 -10
- package/dist/declarations/src/scaffolding/extensions/integrations/uniswapV3.d.ts +4 -4
- package/dist/declarations/src/scaffolding/extensions/integrations/yearn.d.ts +3 -3
- package/dist/declarations/src/scaffolding/extensions/integrations/zeroExV2.d.ts +3 -3
- package/dist/declarations/src/scaffolding/extensions/policies.d.ts +1 -1
- package/dist/declarations/src/scaffolding/setup.d.ts +11 -9
- package/dist/declarations/src/scaffolding/shares.d.ts +4 -4
- package/dist/declarations/src/scaffolding/vaultCalls.d.ts +15 -6
- package/dist/declarations/src/whales.d.ts +20 -18
- package/dist/enzymefinance-testutils.browser.cjs.js +1783 -763
- package/dist/enzymefinance-testutils.browser.esm.js +1746 -757
- package/dist/enzymefinance-testutils.cjs.dev.js +1783 -763
- package/dist/enzymefinance-testutils.cjs.prod.js +1783 -763
- package/dist/enzymefinance-testutils.esm.js +1746 -757
- package/package.json +5 -5
- package/src/assertions.ts +5 -2
- package/src/deployment.ts +215 -111
- package/src/gasRelayer.ts +17 -18
- package/src/helpers.ts +6 -4
- package/src/scaffolding/assets.ts +7 -6
- package/src/scaffolding/chainlink.ts +2 -2
- package/src/scaffolding/common.ts +1 -1
- package/src/scaffolding/core.ts +30 -12
- package/src/scaffolding/extensions/common.ts +4 -4
- package/src/scaffolding/extensions/external-positions/actions.ts +33 -6
- package/src/scaffolding/extensions/external-positions/compound.ts +76 -96
- package/src/scaffolding/extensions/external-positions/index.ts +1 -0
- package/src/scaffolding/extensions/external-positions/mocks.ts +132 -10
- package/src/scaffolding/extensions/external-positions/uniswap-v3-liquidity.ts +290 -0
- package/src/scaffolding/extensions/fees.ts +1 -1
- package/src/scaffolding/extensions/integrations/aave.ts +6 -8
- package/src/scaffolding/extensions/integrations/compound.ts +10 -11
- package/src/scaffolding/extensions/integrations/curve.ts +333 -68
- package/src/scaffolding/extensions/integrations/idle.ts +9 -11
- package/src/scaffolding/extensions/integrations/index.ts +3 -0
- package/src/scaffolding/extensions/integrations/mock.ts +11 -13
- package/src/scaffolding/extensions/integrations/olympusV2.ts +71 -0
- package/src/scaffolding/extensions/integrations/paraSwapV4.ts +16 -11
- package/src/scaffolding/extensions/integrations/paraSwapV5.ts +73 -0
- package/src/scaffolding/extensions/integrations/poolTogetherV4.ts +117 -0
- package/src/scaffolding/extensions/integrations/synthetix.ts +45 -12
- package/src/scaffolding/extensions/integrations/trackedAssets.ts +3 -4
- package/src/scaffolding/extensions/integrations/uniswapV2.ts +31 -27
- package/src/scaffolding/extensions/integrations/uniswapV3.ts +9 -10
- package/src/scaffolding/extensions/integrations/yearn.ts +9 -11
- package/src/scaffolding/extensions/integrations/zeroExV2.ts +9 -7
- package/src/scaffolding/extensions/policies.ts +2 -1
- package/src/scaffolding/setup.ts +27 -13
- package/src/scaffolding/shares.ts +5 -4
- package/src/scaffolding/vaultCalls.ts +32 -2
- package/src/whales.ts +30 -17
- package/tsconfig.json +2 -1
|
@@ -1,32 +1,44 @@
|
|
|
1
|
-
import { AddressLike, Call, Contract,
|
|
2
|
-
import {
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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
|
-
|
|
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 {
|
|
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
|