@enzymefinance/testutils 4.0.0-next.5 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/declarations/src/deployment.d.ts +34 -27
  3. package/dist/declarations/src/scaffolding/assets.d.ts +1 -1
  4. package/dist/declarations/src/scaffolding/core.d.ts +2 -3
  5. package/dist/declarations/src/scaffolding/extensions/external-positions/aave-debt.d.ts +51 -0
  6. package/dist/declarations/src/scaffolding/extensions/external-positions/actions.d.ts +2 -1
  7. package/dist/declarations/src/scaffolding/extensions/external-positions/index.d.ts +1 -0
  8. package/dist/declarations/src/scaffolding/extensions/external-positions/mocks.d.ts +4 -1
  9. package/dist/declarations/src/scaffolding/extensions/external-positions/uniswap-v3-liquidity.d.ts +12 -11
  10. package/dist/declarations/src/scaffolding/extensions/fees.d.ts +3 -3
  11. package/dist/declarations/src/scaffolding/extensions/integrations/aave.d.ts +2 -2
  12. package/dist/declarations/src/scaffolding/extensions/integrations/compound.d.ts +30 -2
  13. package/dist/declarations/src/scaffolding/extensions/integrations/curve.d.ts +63 -229
  14. package/dist/declarations/src/scaffolding/extensions/integrations/idle.d.ts +3 -3
  15. package/dist/declarations/src/scaffolding/extensions/integrations/index.d.ts +1 -1
  16. package/dist/declarations/src/scaffolding/extensions/integrations/olympusV2.d.ts +17 -0
  17. package/dist/declarations/src/scaffolding/extensions/integrations/synthetix.d.ts +5 -10
  18. package/dist/declarations/src/scaffolding/extensions/integrations/yearn.d.ts +2 -2
  19. package/dist/declarations/src/scaffolding/extensions/integrations/zeroExV2.d.ts +1 -1
  20. package/dist/declarations/src/scaffolding/extensions/policies.d.ts +8 -8
  21. package/dist/declarations/src/whales.d.ts +12 -5
  22. package/dist/enzymefinance-testutils.browser.cjs.js +826 -721
  23. package/dist/enzymefinance-testutils.browser.esm.js +809 -692
  24. package/dist/enzymefinance-testutils.cjs.dev.js +826 -721
  25. package/dist/enzymefinance-testutils.cjs.prod.js +826 -721
  26. package/dist/enzymefinance-testutils.esm.js +809 -692
  27. package/package.json +6 -6
  28. package/src/deployment.ts +39 -31
  29. package/src/scaffolding/assets.ts +1 -1
  30. package/src/scaffolding/core.ts +3 -9
  31. package/src/scaffolding/extensions/external-positions/aave-debt.ts +179 -0
  32. package/src/scaffolding/extensions/external-positions/actions.ts +6 -1
  33. package/src/scaffolding/extensions/external-positions/index.ts +1 -0
  34. package/src/scaffolding/extensions/external-positions/mocks.ts +7 -10
  35. package/src/scaffolding/extensions/external-positions/uniswap-v3-liquidity.ts +18 -24
  36. package/src/scaffolding/extensions/integrations/compound.ts +163 -2
  37. package/src/scaffolding/extensions/integrations/curve.ts +152 -783
  38. package/src/scaffolding/extensions/integrations/index.ts +1 -1
  39. package/src/scaffolding/extensions/integrations/olympusV2.ts +71 -0
  40. package/src/scaffolding/extensions/integrations/synthetix.ts +6 -25
  41. package/src/types.d.ts +1 -0
  42. package/src/whales.ts +14 -5
  43. package/dist/declarations/src/scaffolding/extensions/integrations/paraSwapV4.d.ts +0 -23
  44. package/src/scaffolding/extensions/integrations/paraSwapV4.ts +0 -70
package/CHANGELOG.md CHANGED
@@ -1,5 +1,45 @@
1
1
  # @enzymefinance/testutils
2
2
 
3
+ ## 4.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - 3a27d558: Entering pre-release phase for Sulu
8
+
9
+ ### Patch Changes
10
+
11
+ - 837da449: Upgrade dependencies and publish new version
12
+ - a18335ad: Upgrade dependencies and including new policies.
13
+ - 8b844ad4: Publish with call signatures.
14
+ - 90955319: Publishing new adapters
15
+ - a0b65d53: Publishing post-audit packages.
16
+ - 10b83667: Upgrade deps and publish new version
17
+ - Updated dependencies [837da449]
18
+ - Updated dependencies [a18335ad]
19
+ - Updated dependencies [8b844ad4]
20
+ - Updated dependencies [3a27d558]
21
+ - Updated dependencies [90955319]
22
+ - Updated dependencies [3d8a980b]
23
+ - Updated dependencies [a0b65d53]
24
+ - Updated dependencies [10b83667]
25
+ - @enzymefinance/protocol@4.0.0
26
+
27
+ ## 4.0.0-next.7
28
+
29
+ ### Patch Changes
30
+
31
+ - 837da449: Upgrade dependencies and publish new version
32
+ - Updated dependencies [837da449]
33
+ - @enzymefinance/protocol@4.0.0-next.7
34
+
35
+ ## 4.0.0-next.6
36
+
37
+ ### Patch Changes
38
+
39
+ - 10b83667: Upgrade deps and publish new version
40
+ - Updated dependencies [10b83667]
41
+ - @enzymefinance/protocol@4.0.0-next.6
42
+
3
43
  ## 4.0.0-next.5
4
44
 
5
45
  ### Patch Changes
@@ -1,12 +1,14 @@
1
- import { AaveAdapter, AavePriceFeed, AddressListRegistry, AllowedAdapterIncomingAssetsPolicy, AllowedAdaptersPolicy, AllowedAssetsForRedemptionPolicy, AllowedDepositRecipientsPolicy, AllowedExternalPositionTypesPolicy, AllowedSharesTransferRecipientsPolicy, AssetFinalityResolver, CompoundAdapter, CompoundDebtPositionLib, CompoundDebtPositionParser, CompoundPriceFeed, ComptrollerLib, CumulativeSlippageTolerancePolicy, CurveExchangeAdapter, CurveLiquidityAaveAdapter, CurveLiquidityEursAdapter, CurveLiquiditySethAdapter, CurveLiquidityStethAdapter, CurvePriceFeed, DepositWrapper, Dispatcher, EntranceRateBurnFee, EntranceRateDirectFee, ExitRateBurnFee, ExitRateDirectFee, ExternalPositionFactory, ExternalPositionManager, FeeManager, FundDeployer, FundValueCalculator, FundValueCalculatorRouter, FundValueCalculatorUsdWrapper, GasRelayPaymasterFactory, GuaranteedRedemptionPolicy, IdleAdapter, IdlePriceFeed, IntegrationManager, LidoStethPriceFeed, ManagementFee, MinAssetBalancesPostRedemptionPolicy, MinMaxInvestmentPolicy, OnlyRemoveDustExternalPositionPolicy, OnlyUntrackDustOrPricelessAssetsPolicy, ParaSwapV4Adapter, ParaSwapV5Adapter, PerformanceFee, PolicyManager, PoolTogetherV4Adapter, PoolTogetherV4PriceFeed, ProtocolFeeReserveLib, ProtocolFeeTracker, RevertingPriceFeed, StakehoundEthPriceFeed, SynthetixAdapter, SynthetixPriceFeed, UniswapV2ExchangeAdapter, UniswapV2LiquidityAdapter, UniswapV2PoolPriceFeed, UniswapV3Adapter, UnpermissionedActionsWrapper, ValueInterpreter, VaultLib, YearnVaultV2Adapter, YearnVaultV2PriceFeed, ZeroExV2Adapter } from '@enzymefinance/protocol';
2
- export declare function getNamedSigner(name: string): Promise<import("@enzymefinance/hardhat").SignerWithAddress>;
3
- export declare function getUnnamedSigners(): Promise<import("@enzymefinance/hardhat").SignerWithAddress[]>;
1
+ import { AaveAdapter, AaveDebtPositionLib, AaveDebtPositionParser, AavePriceFeed, AddressListRegistry, AllowedAdapterIncomingAssetsPolicy, AllowedAdaptersPolicy, AllowedAssetsForRedemptionPolicy, AllowedDepositRecipientsPolicy, AllowedExternalPositionTypesPolicy, AllowedSharesTransferRecipientsPolicy, CompoundAdapter, CompoundDebtPositionLib, CompoundDebtPositionParser, CompoundPriceFeed, ComptrollerLib, ConvexCurveLpStakingAdapter, ConvexCurveLpStakingWrapperFactory, ConvexCurveLpStakingWrapperPriceFeed, CumulativeSlippageTolerancePolicy, CurveExchangeAdapter, CurveLiquidityAdapter, CurvePriceFeed, DepositWrapper, Dispatcher, EntranceRateBurnFee, EntranceRateDirectFee, ExitRateBurnFee, ExitRateDirectFee, ExternalPositionFactory, ExternalPositionManager, FeeManager, FundDeployer, FundValueCalculator, FundValueCalculatorRouter, FundValueCalculatorUsdWrapper, FuseAdapter, FusePriceFeed, GasRelayPaymasterFactory, IdleAdapter, IdlePriceFeed, IntegrationManager, LidoStethPriceFeed, ManagementFee, MinAssetBalancesPostRedemptionPolicy, MinMaxInvestmentPolicy, OlympusV2Adapter, OnlyRemoveDustExternalPositionPolicy, OnlyUntrackDustOrPricelessAssetsPolicy, ParaSwapV5Adapter, PerformanceFee, PolicyManager, PoolTogetherV4Adapter, PoolTogetherV4PriceFeed, ProtocolFeeReserveLib, ProtocolFeeTracker, RevertingPriceFeed, SynthetixAdapter, UniswapV2ExchangeAdapter, UniswapV2LiquidityAdapter, UniswapV2PoolPriceFeed, UniswapV3Adapter, UnpermissionedActionsWrapper, UsdEthSimulatedAggregator, ValueInterpreter, VaultLib, YearnVaultV2Adapter, YearnVaultV2PriceFeed, ZeroExV2Adapter } from '@enzymefinance/protocol';
2
+ export declare function getNamedSigner(name: string): Promise<import("@nomiclabs/hardhat-ethers/signers").SignerWithAddress>;
3
+ export declare function getUnnamedSigners(): Promise<import("@nomiclabs/hardhat-ethers/signers").SignerWithAddress[]>;
4
4
  export declare function deployProtocolFixture(): Promise<{
5
- readonly accounts: import("@enzymefinance/hardhat").SignerWithAddress[];
5
+ readonly accounts: import("@nomiclabs/hardhat-ethers/signers").SignerWithAddress[];
6
6
  readonly config: DeploymentConfig;
7
- readonly deployer: import("@enzymefinance/hardhat").SignerWithAddress;
7
+ readonly deployer: import("@nomiclabs/hardhat-ethers/signers").SignerWithAddress;
8
8
  readonly deployment: {
9
9
  readonly aaveAdapter: AaveAdapter;
10
+ readonly aaveDebtPositionLib: AaveDebtPositionLib;
11
+ readonly aaveDebtPositionParser: AaveDebtPositionParser;
10
12
  readonly aavePriceFeed: AavePriceFeed;
11
13
  readonly addressListRegistry: AddressListRegistry;
12
14
  readonly allowedAdapterIncomingAssetsPolicy: AllowedAdapterIncomingAssetsPolicy;
@@ -15,18 +17,17 @@ export declare function deployProtocolFixture(): Promise<{
15
17
  readonly allowedDepositRecipientsPolicy: AllowedDepositRecipientsPolicy;
16
18
  readonly allowedExternalPositionTypesPolicy: AllowedExternalPositionTypesPolicy;
17
19
  readonly allowedSharesTransferRecipientsPolicy: AllowedSharesTransferRecipientsPolicy;
18
- readonly assetFinalityResolver: AssetFinalityResolver;
19
20
  readonly compoundAdapter: CompoundAdapter;
20
21
  readonly compoundDebtPositionLib: CompoundDebtPositionLib;
21
22
  readonly compoundDebtPositionParser: CompoundDebtPositionParser;
22
23
  readonly compoundPriceFeed: CompoundPriceFeed;
23
24
  readonly comptrollerLib: ComptrollerLib;
25
+ readonly convexCurveLpStakingAdapter: ConvexCurveLpStakingAdapter;
26
+ readonly convexCurveLpStakingWrapperFactory: ConvexCurveLpStakingWrapperFactory;
27
+ readonly convexCurveLpStakingWrapperPriceFeed: ConvexCurveLpStakingWrapperPriceFeed;
24
28
  readonly cumulativeSlippageTolerancePolicy: CumulativeSlippageTolerancePolicy;
25
29
  readonly curveExchangeAdapter: CurveExchangeAdapter;
26
- readonly curveLiquidityAaveAdapter: CurveLiquidityAaveAdapter;
27
- readonly curveLiquidityEursAdapter: CurveLiquidityEursAdapter;
28
- readonly curveLiquiditySethAdapter: CurveLiquiditySethAdapter;
29
- readonly curveLiquidityStethAdapter: CurveLiquidityStethAdapter;
30
+ readonly curveLiquidityAdapter: CurveLiquidityAdapter;
30
31
  readonly curvePriceFeed: CurvePriceFeed;
31
32
  readonly depositWrapper: DepositWrapper;
32
33
  readonly dispatcher: Dispatcher;
@@ -41,8 +42,9 @@ export declare function deployProtocolFixture(): Promise<{
41
42
  readonly fundValueCalculator: FundValueCalculator;
42
43
  readonly fundValueCalculatorRouter: FundValueCalculatorRouter;
43
44
  readonly fundValueCalculatorUsdWrapper: FundValueCalculatorUsdWrapper;
45
+ readonly fuseAdapter: FuseAdapter;
46
+ readonly fusePriceFeed: FusePriceFeed;
44
47
  readonly gasRelayPaymasterFactory: GasRelayPaymasterFactory;
45
- readonly guaranteedRedemptionPolicy: GuaranteedRedemptionPolicy;
46
48
  readonly idleAdapter: IdleAdapter;
47
49
  readonly idlePriceFeed: IdlePriceFeed;
48
50
  readonly integrationManager: IntegrationManager;
@@ -50,9 +52,9 @@ export declare function deployProtocolFixture(): Promise<{
50
52
  readonly managementFee: ManagementFee;
51
53
  readonly minAssetBalancesPostRedemptionPolicy: MinAssetBalancesPostRedemptionPolicy;
52
54
  readonly minMaxInvestmentPolicy: MinMaxInvestmentPolicy;
55
+ readonly olympusV2Adapter: OlympusV2Adapter;
53
56
  readonly onlyRemoveDustExternalPositionPolicy: OnlyRemoveDustExternalPositionPolicy;
54
57
  readonly onlyUntrackDustOrPricelessAssetsPolicy: OnlyUntrackDustOrPricelessAssetsPolicy;
55
- readonly paraSwapV4Adapter: ParaSwapV4Adapter;
56
58
  readonly paraSwapV5Adapter: ParaSwapV5Adapter;
57
59
  readonly performanceFee: PerformanceFee;
58
60
  readonly policyManager: PolicyManager;
@@ -62,14 +64,13 @@ export declare function deployProtocolFixture(): Promise<{
62
64
  readonly protocolFeeReserveProxy: ProtocolFeeReserveLib;
63
65
  readonly protocolFeeTracker: ProtocolFeeTracker;
64
66
  readonly revertingPriceFeed: RevertingPriceFeed;
65
- readonly stakehoundEthPriceFeed: StakehoundEthPriceFeed;
66
67
  readonly synthetixAdapter: SynthetixAdapter;
67
- readonly synthetixPriceFeed: SynthetixPriceFeed;
68
68
  readonly uniswapV2ExchangeAdapter: UniswapV2ExchangeAdapter;
69
69
  readonly uniswapV2LiquidityAdapter: UniswapV2LiquidityAdapter;
70
70
  readonly uniswapV2PoolPriceFeed: UniswapV2PoolPriceFeed;
71
71
  readonly uniswapV3Adapter: UniswapV3Adapter;
72
72
  readonly unpermissionedActionsWrapper: UnpermissionedActionsWrapper;
73
+ readonly usdEthSimulatedAggregator: UsdEthSimulatedAggregator;
73
74
  readonly valueInterpreter: ValueInterpreter;
74
75
  readonly vaultLib: VaultLib;
75
76
  readonly yearnVaultV2Adapter: YearnVaultV2Adapter;
@@ -81,7 +82,13 @@ declare type Resolve<T extends () => any> = ReturnType<T> extends Promise<infer
81
82
  export declare type ProtocolDeployment = Resolve<typeof deployProtocolFixture>;
82
83
  import type { ChainlinkRateAsset } from '@enzymefinance/protocol';
83
84
  export interface DeploymentConfig {
85
+ feeBps: number;
84
86
  feeToken: string;
87
+ feeTokenBurn: {
88
+ burnFromVault: boolean;
89
+ sendToProtocolFeeReserve: boolean;
90
+ externalBurnerAddress: string;
91
+ };
85
92
  weth: string;
86
93
  wrappedNativeAsset: string;
87
94
  primitives: Record<string, string>;
@@ -97,13 +104,16 @@ export interface DeploymentConfig {
97
104
  synthetix: {
98
105
  snx: string;
99
106
  susd: string;
100
- synths: Record<string, string>;
101
- addressResolver: string;
102
107
  delegateApprovals: string;
103
108
  originator: string;
104
109
  redeemer: string;
105
110
  trackingCode: string;
106
111
  };
112
+ convex: {
113
+ booster: string;
114
+ crvToken: string;
115
+ cvxToken: string;
116
+ };
107
117
  curve: {
108
118
  addressProvider: string;
109
119
  minter: string;
@@ -115,6 +125,7 @@ export interface DeploymentConfig {
115
125
  }>;
116
126
  };
117
127
  aave: {
128
+ incentivesController: string;
118
129
  lendingPoolAddressProvider: string;
119
130
  protocolDataProvider: string;
120
131
  atokens: Record<string, [string, string]>;
@@ -124,6 +135,10 @@ export interface DeploymentConfig {
124
135
  comptroller: string;
125
136
  ctokens: Record<string, string>;
126
137
  };
138
+ fuse: {
139
+ fetherTokens: Record<string, string>;
140
+ ftokens: Record<string, string>;
141
+ };
127
142
  idle: {
128
143
  bestYieldIdleDai: string;
129
144
  bestYieldIdleUsdc: string;
@@ -138,9 +153,8 @@ export interface DeploymentConfig {
138
153
  lido: {
139
154
  steth: string;
140
155
  };
141
- paraSwapV4: {
142
- augustusSwapper: string;
143
- tokenTransferProxy: string;
156
+ olympusV2: {
157
+ stakingContract: string;
144
158
  };
145
159
  paraSwapV5: {
146
160
  augustusSwapper: string;
@@ -149,9 +163,7 @@ export interface DeploymentConfig {
149
163
  poolTogetherV4: {
150
164
  ptTokens: Record<string, [string, string]>;
151
165
  };
152
- stakehound: {
153
- steth: string;
154
- };
166
+ positionsLimit: number;
155
167
  unsupportedAssets: Record<string, string>;
156
168
  uniswap: {
157
169
  factory: string;
@@ -172,10 +184,5 @@ export interface DeploymentConfig {
172
184
  exchange: string;
173
185
  allowedMakers: string[];
174
186
  };
175
- policies: {
176
- guaranteedRedemption: {
177
- redemptionWindowBuffer: number;
178
- };
179
- };
180
187
  }
181
188
  export {};
@@ -7,4 +7,4 @@ export declare function addNewAssetsToFund({ signer, comptrollerProxy, integrati
7
7
  integrationManager: IntegrationManager;
8
8
  assets: StandardToken[];
9
9
  amounts?: BigNumberish[];
10
- }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: import("@enzymefinance/ethers").AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
10
+ }): Promise<import("@enzymefinance/ethers/*").ContractReceipt<import("@enzymefinance/ethers/*").SendFunction<[_extension: import("@enzymefinance/ethers/*").AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
@@ -1,9 +1,8 @@
1
- import type { AssetFinalityResolver, Dispatcher, GasRelayPaymasterFactory, ValueInterpreter } from '@enzymefinance/protocol';
1
+ import type { Dispatcher, GasRelayPaymasterFactory, ValueInterpreter } from '@enzymefinance/protocol';
2
2
  import { ExternalPositionManager, FeeManager, FundDeployer, IntegrationManager, PolicyManager, VaultLib } from '@enzymefinance/protocol';
3
3
  import type { Signer } from 'ethers';
4
- export declare function createFundDeployer({ deployer, assetFinalityResolver, externalPositionManager, dispatcher, gasRelayPaymasterFactory, valueInterpreter, vaultLib, setOnDispatcher, setReleaseLive, }: {
4
+ export declare function createFundDeployer({ deployer, externalPositionManager, dispatcher, gasRelayPaymasterFactory, valueInterpreter, vaultLib, setOnDispatcher, setReleaseLive, }: {
5
5
  deployer: Signer;
6
- assetFinalityResolver: AssetFinalityResolver;
7
6
  externalPositionManager: ExternalPositionManager;
8
7
  dispatcher: Dispatcher;
9
8
  feeManager: FeeManager;
@@ -0,0 +1,51 @@
1
+ import type { AddressLike } from '@enzymefinance/ethers';
2
+ import type { SignerWithAddress } from '@enzymefinance/hardhat';
3
+ import type { ComptrollerLib, ExternalPositionManager } from '@enzymefinance/protocol';
4
+ import type { BigNumberish } from 'ethers';
5
+ export declare function aaveDebtPositionAddCollateral({ comptrollerProxy, externalPositionManager, signer, aTokens, amounts, externalPositionProxy, }: {
6
+ comptrollerProxy: ComptrollerLib;
7
+ externalPositionManager: ExternalPositionManager;
8
+ signer: SignerWithAddress;
9
+ aTokens: AddressLike[];
10
+ amounts: BigNumberish[];
11
+ externalPositionProxy: AddressLike;
12
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
13
+ export declare function aaveDebtPositionBorrow({ comptrollerProxy, externalPositionManager, signer, tokens, amounts, externalPositionProxy, }: {
14
+ comptrollerProxy: ComptrollerLib;
15
+ externalPositionManager: ExternalPositionManager;
16
+ signer: SignerWithAddress;
17
+ tokens: AddressLike[];
18
+ amounts: BigNumberish[];
19
+ externalPositionProxy: AddressLike;
20
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
21
+ export declare function aaveDebtPositionClaimRewards({ comptrollerProxy, externalPositionManager, signer, assets, externalPositionProxy, }: {
22
+ comptrollerProxy: ComptrollerLib;
23
+ externalPositionManager: ExternalPositionManager;
24
+ signer: SignerWithAddress;
25
+ assets: AddressLike[];
26
+ externalPositionProxy: AddressLike;
27
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
28
+ export declare function aaveDebtPositionRemoveCollateral({ comptrollerProxy, externalPositionManager, signer, aTokens, amounts, externalPositionProxy, }: {
29
+ comptrollerProxy: ComptrollerLib;
30
+ externalPositionManager: ExternalPositionManager;
31
+ signer: SignerWithAddress;
32
+ aTokens: AddressLike[];
33
+ amounts: BigNumberish[];
34
+ externalPositionProxy: AddressLike;
35
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
36
+ export declare function aaveDebtPositionRepayBorrow({ comptrollerProxy, externalPositionManager, signer, tokens, amounts, externalPositionProxy, }: {
37
+ comptrollerProxy: ComptrollerLib;
38
+ externalPositionManager: ExternalPositionManager;
39
+ signer: SignerWithAddress;
40
+ tokens: AddressLike[];
41
+ amounts: BigNumberish[];
42
+ externalPositionProxy: AddressLike;
43
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
44
+ export declare function createAaveDebtPosition({ signer, comptrollerProxy, externalPositionManager, }: {
45
+ signer: SignerWithAddress;
46
+ comptrollerProxy: ComptrollerLib;
47
+ externalPositionManager: ExternalPositionManager;
48
+ }): Promise<{
49
+ externalPositionProxy: import("@enzymefinance/protocol").IExternalPositionProxy;
50
+ receipt: import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>;
51
+ }>;
@@ -11,12 +11,13 @@ export declare function callOnExternalPosition({ signer, comptrollerProxy, exter
11
11
  actionId: BigNumberish;
12
12
  actionArgs: BytesLike;
13
13
  }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: BytesLike], void, ComptrollerLib>>>;
14
- export declare function createExternalPosition({ signer, comptrollerProxy, externalPositionManager, externalPositionTypeId, initializationData, }: {
14
+ export declare function createExternalPosition({ signer, comptrollerProxy, externalPositionManager, externalPositionTypeId, initializationData, callOnExternalPositionData, }: {
15
15
  signer: SignerWithAddress;
16
16
  comptrollerProxy: ComptrollerLib;
17
17
  externalPositionManager: ExternalPositionManager;
18
18
  externalPositionTypeId: BigNumberish;
19
19
  initializationData?: BytesLike;
20
+ callOnExternalPositionData?: BytesLike;
20
21
  }): Promise<{
21
22
  externalPositionProxy: IExternalPositionProxy;
22
23
  receipt: import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: BytesLike], void, ComptrollerLib>>;
@@ -1,4 +1,5 @@
1
1
  export * from './actions';
2
2
  export * from './compound';
3
3
  export * from './mocks';
4
+ export * from './aave-debt';
4
5
  export * from './uniswap-v3-liquidity';
@@ -16,7 +16,10 @@ export declare function createMockExternalPosition({ comptrollerProxy, externalP
16
16
  externalPositionProxy: string;
17
17
  mockExternalPositionParser: MockGenericExternalPositionParser;
18
18
  mockGenericExternalPositionLib: MockGenericExternalPositionLib;
19
- receipt: import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>;
19
+ receipt: {
20
+ externalPositionProxy: import("@enzymefinance/protocol").IExternalPositionProxy;
21
+ receipt: import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>;
22
+ };
20
23
  typeId: import("ethers").BigNumber;
21
24
  }>;
22
25
  export declare function mockExternalPositionAddDebtAssets({ signer, comptrollerProxy, externalPositionManager, externalPositionProxy, assets, amounts, }: {
@@ -1,7 +1,7 @@
1
1
  import type { AddressLike, Call, Contract } from '@enzymefinance/ethers';
2
2
  import type { SignerWithAddress } from '@enzymefinance/hardhat';
3
3
  import type { ComptrollerLib, ExternalPositionManager } from '@enzymefinance/protocol';
4
- import type { BigNumber, BigNumberish } from 'ethers';
4
+ import type { BigNumber, BigNumberish, BytesLike } from 'ethers';
5
5
  export declare enum UniswapV3FeeAmount {
6
6
  LOW = 500,
7
7
  MEDIUM = 3000,
@@ -26,15 +26,14 @@ export interface IUniswapV3NonFungibleTokenManager extends Contract<IUniswapV3No
26
26
  }, Contract<any>>;
27
27
  }
28
28
  export declare const IUniswapV3NonFungibleTokenManager: import("@enzymefinance/ethers").ContractFactory<IUniswapV3NonFungibleTokenManager, never>;
29
- export declare function createUniswapV3LiquidityPosition({ signer, comptrollerProxy, externalPositionManager, token0, token1, }: {
29
+ export declare function createUniswapV3LiquidityPosition({ signer, comptrollerProxy, externalPositionManager, callOnExternalPositionData, }: {
30
30
  signer: SignerWithAddress;
31
31
  comptrollerProxy: ComptrollerLib;
32
32
  externalPositionManager: ExternalPositionManager;
33
- token0: AddressLike;
34
- token1: AddressLike;
33
+ callOnExternalPositionData?: BytesLike;
35
34
  }): Promise<{
36
35
  externalPositionProxyAddress: string;
37
- receipt: import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>;
36
+ receipt: import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: BytesLike], void, ComptrollerLib>>;
38
37
  }>;
39
38
  export declare function uniswapV3LiquidityPositionAddLiquidity({ signer, comptrollerProxy, externalPositionManager, externalPositionProxy, nftId, amount0Desired, amount1Desired, amount0Min, amount1Min, }: {
40
39
  signer: SignerWithAddress;
@@ -46,19 +45,21 @@ export declare function uniswapV3LiquidityPositionAddLiquidity({ signer, comptro
46
45
  amount1Desired: BigNumberish;
47
46
  amount0Min?: BigNumberish;
48
47
  amount1Min?: BigNumberish;
49
- }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
48
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: BytesLike], void, ComptrollerLib>>>;
50
49
  export declare function uniswapV3LiquidityPositionCollect({ signer, comptrollerProxy, externalPositionManager, externalPositionProxy, nftId, }: {
51
50
  signer: SignerWithAddress;
52
51
  comptrollerProxy: ComptrollerLib;
53
52
  externalPositionManager: ExternalPositionManager;
54
53
  externalPositionProxy: AddressLike;
55
54
  nftId: BigNumberish;
56
- }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
57
- export declare function uniswapV3LiquidityPositionMint({ signer, comptrollerProxy, externalPositionManager, externalPositionProxy, fee, tickLower, tickUpper, amount0Desired, amount1Desired, amount0Min, amount1Min, }: {
55
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: BytesLike], void, ComptrollerLib>>>;
56
+ export declare function uniswapV3LiquidityPositionMint({ signer, comptrollerProxy, externalPositionManager, externalPositionProxy, token0, token1, fee, tickLower, tickUpper, amount0Desired, amount1Desired, amount0Min, amount1Min, }: {
58
57
  signer: SignerWithAddress;
59
58
  comptrollerProxy: ComptrollerLib;
60
59
  externalPositionManager: ExternalPositionManager;
61
60
  externalPositionProxy: AddressLike;
61
+ token0: AddressLike;
62
+ token1: AddressLike;
62
63
  fee: BigNumberish;
63
64
  tickLower: BigNumberish;
64
65
  tickUpper: BigNumberish;
@@ -68,7 +69,7 @@ export declare function uniswapV3LiquidityPositionMint({ signer, comptrollerProx
68
69
  amount1Min?: BigNumberish;
69
70
  }): Promise<{
70
71
  nftId: any;
71
- receipt: import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>;
72
+ receipt: import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: BytesLike], void, ComptrollerLib>>;
72
73
  }>;
73
74
  export declare function uniswapV3LiquidityPositionPurge({ signer, comptrollerProxy, externalPositionManager, externalPositionProxy, nftId, liquidity, amount0Min, amount1Min, }: {
74
75
  signer: SignerWithAddress;
@@ -79,7 +80,7 @@ export declare function uniswapV3LiquidityPositionPurge({ signer, comptrollerPro
79
80
  liquidity: BigNumberish;
80
81
  amount0Min?: BigNumberish;
81
82
  amount1Min?: BigNumberish;
82
- }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
83
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: BytesLike], void, ComptrollerLib>>>;
83
84
  export declare function uniswapV3LiquidityPositionRemoveLiquidity({ signer, comptrollerProxy, externalPositionManager, externalPositionProxy, nftId, liquidity, amount0Min, amount1Min, }: {
84
85
  signer: SignerWithAddress;
85
86
  comptrollerProxy: ComptrollerLib;
@@ -89,7 +90,7 @@ export declare function uniswapV3LiquidityPositionRemoveLiquidity({ signer, comp
89
90
  liquidity: BigNumberish;
90
91
  amount0Min?: BigNumberish;
91
92
  amount1Min?: BigNumberish;
92
- }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
93
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: BytesLike], void, ComptrollerLib>>>;
93
94
  export declare function uniswapV3OrderTokenPair({ tokenA, tokenB }: {
94
95
  tokenA: AddressLike;
95
96
  tokenB: AddressLike;
@@ -6,7 +6,7 @@ export declare function generateFeeManagerConfigWithMockFees({ deployer }: {
6
6
  export declare function generateMockFees({ deployer }: {
7
7
  deployer: SignerWithAddress;
8
8
  }): Promise<{
9
- mockContinuousFeeSettleOnly: import("@enzymefinance/ethers").MockContract<IFee>;
10
- mockContinuousFeeWithGavAndUpdates: import("@enzymefinance/ethers").MockContract<IFee>;
11
- mockPostBuySharesFee: import("@enzymefinance/ethers").MockContract<IFee>;
9
+ mockContinuousFeeSettleOnly: import("@enzymefinance/ethers/*").MockContract<IFee>;
10
+ mockContinuousFeeWithGavAndUpdates: import("@enzymefinance/ethers/*").MockContract<IFee>;
11
+ mockPostBuySharesFee: import("@enzymefinance/ethers/*").MockContract<IFee>;
12
12
  }>;
@@ -9,7 +9,7 @@ export declare function aaveLend({ comptrollerProxy, integrationManager, fundOwn
9
9
  aaveAdapter: AaveAdapter;
10
10
  aToken: StandardToken;
11
11
  amount?: BigNumberish;
12
- }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: import("@enzymefinance/ethers").AddressLike, _actionId: BigNumberish, _callArgs: utils.BytesLike], void, ComptrollerLib>>>;
12
+ }): Promise<import("@enzymefinance/ethers/*").ContractReceipt<import("@enzymefinance/ethers/*").SendFunction<[_extension: import("@enzymefinance/ethers/*").AddressLike, _actionId: BigNumberish, _callArgs: utils.BytesLike], void, ComptrollerLib>>>;
13
13
  export declare function aaveRedeem({ comptrollerProxy, integrationManager, fundOwner, aaveAdapter, aToken, amount, }: {
14
14
  comptrollerProxy: ComptrollerLib;
15
15
  integrationManager: IntegrationManager;
@@ -17,4 +17,4 @@ export declare function aaveRedeem({ comptrollerProxy, integrationManager, fundO
17
17
  aaveAdapter: AaveAdapter;
18
18
  aToken: StandardToken;
19
19
  amount?: BigNumberish;
20
- }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: import("@enzymefinance/ethers").AddressLike, _actionId: BigNumberish, _callArgs: utils.BytesLike], void, ComptrollerLib>>>;
20
+ }): Promise<import("@enzymefinance/ethers/*").ContractReceipt<import("@enzymefinance/ethers/*").SendFunction<[_extension: import("@enzymefinance/ethers/*").AddressLike, _actionId: BigNumberish, _callArgs: utils.BytesLike], void, ComptrollerLib>>>;
@@ -1,12 +1,40 @@
1
1
  import type { AddressLike, Contract, Send } from '@enzymefinance/ethers';
2
2
  import type { SignerWithAddress } from '@enzymefinance/hardhat';
3
- import type { CompoundAdapter, ComptrollerLib, IntegrationManager, VaultLib } from '@enzymefinance/protocol';
3
+ import type { CompoundAdapter, CompoundPriceFeed, ComptrollerLib, ICERC20, IntegrationManager, VaultLib } from '@enzymefinance/protocol';
4
4
  import type { BigNumberish } from 'ethers';
5
- import { utils } from 'ethers';
5
+ import { BigNumber, utils } from 'ethers';
6
6
  export interface ICompoundComptroller extends Contract<ICompoundComptroller> {
7
7
  claimComp: Send<(_account: AddressLike) => void>;
8
8
  }
9
9
  export declare const ICompoundComptroller: import("@enzymefinance/ethers").ContractFactory<ICompoundComptroller, never>;
10
+ export declare function assertCompoundLend({ tokenWhale, comptrollerProxy, vaultProxy, integrationManager, fundOwner, compoundAdapter, tokenAmount, cToken, compoundPriceFeed, }: {
11
+ tokenWhale: SignerWithAddress;
12
+ comptrollerProxy: ComptrollerLib;
13
+ vaultProxy: VaultLib;
14
+ integrationManager: IntegrationManager;
15
+ fundOwner: SignerWithAddress;
16
+ compoundAdapter: CompoundAdapter;
17
+ tokenAmount?: BigNumber;
18
+ cToken: ICERC20;
19
+ compoundPriceFeed: CompoundPriceFeed;
20
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: utils.BytesLike], void, ComptrollerLib>>>;
21
+ export declare function assertCompoundRedeem({ comptrollerProxy, vaultProxy, integrationManager, fundOwner, compoundAdapter, cToken, compoundPriceFeed, }: {
22
+ comptrollerProxy: ComptrollerLib;
23
+ vaultProxy: VaultLib;
24
+ integrationManager: IntegrationManager;
25
+ fundOwner: SignerWithAddress;
26
+ compoundAdapter: CompoundAdapter;
27
+ cToken: ICERC20;
28
+ compoundPriceFeed: CompoundPriceFeed;
29
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: utils.BytesLike], void, ComptrollerLib>>>;
30
+ export declare function compoundClaim({ comptrollerProxy, integrationManager, fundOwner, compoundAdapter, compoundComptroller, cTokens, }: {
31
+ comptrollerProxy: ComptrollerLib;
32
+ integrationManager: IntegrationManager;
33
+ fundOwner: SignerWithAddress;
34
+ compoundAdapter: CompoundAdapter;
35
+ compoundComptroller: AddressLike;
36
+ cTokens: AddressLike[];
37
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: utils.BytesLike], void, ComptrollerLib>>>;
10
38
  export declare function compoundLend({ comptrollerProxy, integrationManager, fundOwner, compoundAdapter, cToken, tokenAmount, cTokenAmount, }: {
11
39
  comptrollerProxy: ComptrollerLib;
12
40
  integrationManager: IntegrationManager;