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

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 +168 -64
  4. package/dist/declarations/src/gasRelayer.d.ts +14 -12
  5. package/dist/declarations/src/helpers.d.ts +5 -4
  6. package/dist/declarations/src/scaffolding/assets.d.ts +3 -3
  7. package/dist/declarations/src/scaffolding/chainlink.d.ts +2 -2
  8. package/dist/declarations/src/scaffolding/common.d.ts +1 -1
  9. package/dist/declarations/src/scaffolding/core.d.ts +4 -3
  10. package/dist/declarations/src/scaffolding/extensions/common.d.ts +4 -4
  11. package/dist/declarations/src/scaffolding/extensions/external-positions/actions.d.ts +14 -5
  12. package/dist/declarations/src/scaffolding/extensions/external-positions/compound.d.ts +22 -22
  13. package/dist/declarations/src/scaffolding/extensions/external-positions/index.d.ts +1 -0
  14. package/dist/declarations/src/scaffolding/extensions/external-positions/mocks.d.ts +40 -7
  15. package/dist/declarations/src/scaffolding/extensions/external-positions/uniswap-v3-liquidity.d.ts +99 -0
  16. package/dist/declarations/src/scaffolding/extensions/fees.d.ts +1 -1
  17. package/dist/declarations/src/scaffolding/extensions/integrations/aave.d.ts +4 -3
  18. package/dist/declarations/src/scaffolding/extensions/integrations/compound.d.ts +5 -5
  19. package/dist/declarations/src/scaffolding/extensions/integrations/curve.d.ts +108 -33
  20. package/dist/declarations/src/scaffolding/extensions/integrations/idle.d.ts +3 -3
  21. package/dist/declarations/src/scaffolding/extensions/integrations/index.d.ts +3 -0
  22. package/dist/declarations/src/scaffolding/extensions/integrations/mock.d.ts +4 -4
  23. package/dist/declarations/src/scaffolding/extensions/integrations/olympusV2.d.ts +17 -0
  24. package/dist/declarations/src/scaffolding/extensions/integrations/paraSwapV4.d.ts +6 -5
  25. package/dist/declarations/src/scaffolding/extensions/integrations/paraSwapV5.d.ts +23 -0
  26. package/dist/declarations/src/scaffolding/extensions/integrations/poolTogetherV4.d.ts +29 -0
  27. package/dist/declarations/src/scaffolding/extensions/integrations/synthetix.d.ts +11 -3
  28. package/dist/declarations/src/scaffolding/extensions/integrations/trackedAssets.d.ts +3 -3
  29. package/dist/declarations/src/scaffolding/extensions/integrations/uniswapV2.d.ts +10 -10
  30. package/dist/declarations/src/scaffolding/extensions/integrations/uniswapV3.d.ts +4 -4
  31. package/dist/declarations/src/scaffolding/extensions/integrations/yearn.d.ts +3 -3
  32. package/dist/declarations/src/scaffolding/extensions/integrations/zeroExV2.d.ts +3 -3
  33. package/dist/declarations/src/scaffolding/extensions/policies.d.ts +1 -1
  34. package/dist/declarations/src/scaffolding/setup.d.ts +11 -9
  35. package/dist/declarations/src/scaffolding/shares.d.ts +4 -4
  36. package/dist/declarations/src/scaffolding/vaultCalls.d.ts +15 -6
  37. package/dist/declarations/src/whales.d.ts +20 -18
  38. package/dist/enzymefinance-testutils.browser.cjs.js +1783 -763
  39. package/dist/enzymefinance-testutils.browser.esm.js +1746 -757
  40. package/dist/enzymefinance-testutils.cjs.dev.js +1783 -763
  41. package/dist/enzymefinance-testutils.cjs.prod.js +1783 -763
  42. package/dist/enzymefinance-testutils.esm.js +1746 -757
  43. package/package.json +5 -5
  44. package/src/assertions.ts +5 -2
  45. package/src/deployment.ts +215 -111
  46. package/src/gasRelayer.ts +17 -18
  47. package/src/helpers.ts +6 -4
  48. package/src/scaffolding/assets.ts +7 -6
  49. package/src/scaffolding/chainlink.ts +2 -2
  50. package/src/scaffolding/common.ts +1 -1
  51. package/src/scaffolding/core.ts +30 -12
  52. package/src/scaffolding/extensions/common.ts +4 -4
  53. package/src/scaffolding/extensions/external-positions/actions.ts +33 -6
  54. package/src/scaffolding/extensions/external-positions/compound.ts +76 -96
  55. package/src/scaffolding/extensions/external-positions/index.ts +1 -0
  56. package/src/scaffolding/extensions/external-positions/mocks.ts +132 -10
  57. package/src/scaffolding/extensions/external-positions/uniswap-v3-liquidity.ts +290 -0
  58. package/src/scaffolding/extensions/fees.ts +1 -1
  59. package/src/scaffolding/extensions/integrations/aave.ts +6 -8
  60. package/src/scaffolding/extensions/integrations/compound.ts +10 -11
  61. package/src/scaffolding/extensions/integrations/curve.ts +333 -68
  62. package/src/scaffolding/extensions/integrations/idle.ts +9 -11
  63. package/src/scaffolding/extensions/integrations/index.ts +3 -0
  64. package/src/scaffolding/extensions/integrations/mock.ts +11 -13
  65. package/src/scaffolding/extensions/integrations/olympusV2.ts +71 -0
  66. package/src/scaffolding/extensions/integrations/paraSwapV4.ts +16 -11
  67. package/src/scaffolding/extensions/integrations/paraSwapV5.ts +73 -0
  68. package/src/scaffolding/extensions/integrations/poolTogetherV4.ts +117 -0
  69. package/src/scaffolding/extensions/integrations/synthetix.ts +45 -12
  70. package/src/scaffolding/extensions/integrations/trackedAssets.ts +3 -4
  71. package/src/scaffolding/extensions/integrations/uniswapV2.ts +31 -27
  72. package/src/scaffolding/extensions/integrations/uniswapV3.ts +9 -10
  73. package/src/scaffolding/extensions/integrations/yearn.ts +9 -11
  74. package/src/scaffolding/extensions/integrations/zeroExV2.ts +9 -7
  75. package/src/scaffolding/extensions/policies.ts +2 -1
  76. package/src/scaffolding/setup.ts +27 -13
  77. package/src/scaffolding/shares.ts +5 -4
  78. package/src/scaffolding/vaultCalls.ts +32 -2
  79. package/src/whales.ts +30 -17
  80. package/tsconfig.json +2 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,37 @@
1
1
  # @enzymefinance/testutils
2
2
 
3
+ ## 4.0.0-next.6
4
+
5
+ ### Patch Changes
6
+
7
+ - 10b83667: Upgrade deps and publish new version
8
+ - Updated dependencies [10b83667]
9
+ - @enzymefinance/protocol@4.0.0-next.6
10
+
11
+ ## 4.0.0-next.5
12
+
13
+ ### Patch Changes
14
+
15
+ - 8b844ad4: Publish with call signatures.
16
+ - Updated dependencies [8b844ad4]
17
+ - @enzymefinance/protocol@4.0.0-next.5
18
+
19
+ ## 4.0.0-next.3
20
+
21
+ ### Patch Changes
22
+
23
+ - 90955319: Publishing new adapters
24
+ - Updated dependencies [90955319]
25
+ - @enzymefinance/protocol@4.0.0-next.3
26
+
27
+ ## 4.0.0-next.2
28
+
29
+ ### Patch Changes
30
+
31
+ - a0b65d53: Publishing post-audit packages.
32
+ - Updated dependencies [a0b65d53]
33
+ - @enzymefinance/protocol@4.0.0-next.2
34
+
3
35
  ## 4.0.0-next.1
4
36
 
5
37
  ### Patch Changes
@@ -1,4 +1,4 @@
1
- import { ContractReceipt } from '@enzymefinance/ethers';
2
- import { utils } from 'ethers';
1
+ import type { ContractReceipt } from '@enzymefinance/ethers';
2
+ import type { utils } from 'ethers';
3
3
  export declare function assertEvent<TResult = any>(receipt: ContractReceipt<any>, event: string | utils.EventFragment, match?: TResult): NonNullable<TResult>;
4
4
  export declare function assertNoEvent(receipt: ContractReceipt<any>, event: string | utils.EventFragment): void;
@@ -1,88 +1,192 @@
1
- import { Contract } from '@enzymefinance/ethers';
2
- import { SignerWithAddress } from '@enzymefinance/hardhat';
3
- import { Dispatcher, VaultLib, FundDeployer, PolicyManager, AavePriceFeed, CompoundPriceFeed, CompoundDebtPositionLib, CompoundDebtPositionParser, CurvePriceFeed, IdlePriceFeed, LidoStethPriceFeed, RevertingPriceFeed, StakehoundEthPriceFeed, SynthetixPriceFeed, WdgldPriceFeed, YearnVaultV2PriceFeed, ValueInterpreter, UniswapV2PoolPriceFeed, IntegrationManager, AaveAdapter, CurveLiquidityAaveAdapter, CurveLiquidityEursAdapter, CurveLiquiditySethAdapter, CurveLiquidityStethAdapter, IdleAdapter, ParaSwapV4Adapter, SynthetixAdapter, YearnVaultV2Adapter, ZeroExV2Adapter, CompoundAdapter, ExternalPositionManager, UniswapV2Adapter, UniswapV3Adapter, CurveExchangeAdapter, FeeManager, ComptrollerLib, EntranceRateBurnFee, EntranceRateDirectFee, ExitRateBurnFee, ExitRateDirectFee, ManagementFee, PerformanceFee, DepositWrapper, UnpermissionedActionsWrapper, AllowedAdapterIncomingAssetsPolicy, MinMaxInvestmentPolicy, AllowedDepositRecipientsPolicy, GuaranteedRedemptionPolicy, GlobalConfigLib, AssetFinalityResolver, ProtocolFeeReserveLib, ProtocolFeeTracker, GasRelayPaymasterFactory, ExternalPositionFactory, AddressListRegistry, AllowedAdaptersPolicy, AllowedAssetsForRedemptionPolicy, AllowedExternalPositionTypesPolicy, AllowedSharesTransferRecipientsPolicy, OnlyUntrackDustOrPricelessAssetsPolicy } from '@enzymefinance/protocol';
4
- import { DeploymentConfig } from '../../../deploy/utils/config';
5
- export declare function getNamedSigner(name: string): Promise<SignerWithAddress>;
6
- export declare function getUnnamedSigners(): Promise<SignerWithAddress[]>;
1
+ import { AaveAdapter, AavePriceFeed, AddressListRegistry, AllowedAdapterIncomingAssetsPolicy, AllowedAdaptersPolicy, AllowedAssetsForRedemptionPolicy, AllowedDepositRecipientsPolicy, AllowedExternalPositionTypesPolicy, AllowedSharesTransferRecipientsPolicy, AssetFinalityResolver, CompoundAdapter, CompoundDebtPositionLib, CompoundDebtPositionParser, CompoundPriceFeed, ComptrollerLib, CumulativeSlippageTolerancePolicy, CurveExchangeAdapter, CurveLiquidityAaveAdapter, CurveLiquidityAdapter, 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, OlympusV2Adapter, 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[]>;
7
4
  export declare function deployProtocolFixture(): Promise<{
8
- readonly deployer: SignerWithAddress;
5
+ readonly accounts: import("@enzymefinance/hardhat").SignerWithAddress[];
6
+ readonly config: DeploymentConfig;
7
+ readonly deployer: import("@enzymefinance/hardhat").SignerWithAddress;
9
8
  readonly deployment: {
10
- readonly dispatcher: Dispatcher;
11
- readonly vaultLib: VaultLib;
12
- readonly fundDeployer: FundDeployer;
13
- readonly policyManager: PolicyManager;
9
+ readonly aaveAdapter: AaveAdapter;
14
10
  readonly aavePriceFeed: AavePriceFeed;
11
+ readonly addressListRegistry: AddressListRegistry;
12
+ readonly allowedAdapterIncomingAssetsPolicy: AllowedAdapterIncomingAssetsPolicy;
13
+ readonly allowedAdaptersPolicy: AllowedAdaptersPolicy;
14
+ readonly allowedAssetsForRedemptionPolicy: AllowedAssetsForRedemptionPolicy;
15
+ readonly allowedDepositRecipientsPolicy: AllowedDepositRecipientsPolicy;
16
+ readonly allowedExternalPositionTypesPolicy: AllowedExternalPositionTypesPolicy;
17
+ readonly allowedSharesTransferRecipientsPolicy: AllowedSharesTransferRecipientsPolicy;
18
+ readonly assetFinalityResolver: AssetFinalityResolver;
19
+ readonly compoundAdapter: CompoundAdapter;
15
20
  readonly compoundDebtPositionLib: CompoundDebtPositionLib;
16
21
  readonly compoundDebtPositionParser: CompoundDebtPositionParser;
17
22
  readonly compoundPriceFeed: CompoundPriceFeed;
18
- readonly curvePriceFeed: CurvePriceFeed;
19
- readonly idlePriceFeed: IdlePriceFeed;
20
- readonly lidoStethPriceFeed: LidoStethPriceFeed;
21
- readonly revertingPriceFeed: RevertingPriceFeed;
22
- readonly synthetixPriceFeed: SynthetixPriceFeed;
23
- readonly stakehoundEthPriceFeed: StakehoundEthPriceFeed;
24
- readonly wdgldPriceFeed: WdgldPriceFeed;
25
- readonly yearnVaultV2PriceFeed: YearnVaultV2PriceFeed;
26
- readonly valueInterpreter: ValueInterpreter;
27
- readonly uniswapV2PoolPriceFeed: UniswapV2PoolPriceFeed;
28
- readonly integrationManager: IntegrationManager;
29
- readonly externalPositionManager: ExternalPositionManager;
30
- readonly externalPositionFactory: ExternalPositionFactory;
23
+ readonly comptrollerLib: ComptrollerLib;
24
+ readonly cumulativeSlippageTolerancePolicy: CumulativeSlippageTolerancePolicy;
25
+ readonly curveExchangeAdapter: CurveExchangeAdapter;
31
26
  readonly curveLiquidityAaveAdapter: CurveLiquidityAaveAdapter;
27
+ readonly curveLiquidityAdapter: CurveLiquidityAdapter;
32
28
  readonly curveLiquidityEursAdapter: CurveLiquidityEursAdapter;
33
29
  readonly curveLiquiditySethAdapter: CurveLiquiditySethAdapter;
34
30
  readonly curveLiquidityStethAdapter: CurveLiquidityStethAdapter;
35
- readonly aaveAdapter: AaveAdapter;
36
- readonly idleAdapter: IdleAdapter;
37
- readonly paraSwapV4Adapter: ParaSwapV4Adapter;
38
- readonly synthetixAdapter: SynthetixAdapter;
39
- readonly yearnVaultV2Adapter: YearnVaultV2Adapter;
40
- readonly zeroExV2Adapter: ZeroExV2Adapter;
41
- readonly compoundAdapter: CompoundAdapter;
42
- readonly uniswapV2Adapter: UniswapV2Adapter;
43
- readonly uniswapV3Adapter: UniswapV3Adapter;
44
- readonly curveExchangeAdapter: CurveExchangeAdapter;
45
- readonly feeManager: FeeManager;
46
- readonly comptrollerLib: ComptrollerLib;
31
+ readonly curvePriceFeed: CurvePriceFeed;
32
+ readonly depositWrapper: DepositWrapper;
33
+ readonly dispatcher: Dispatcher;
47
34
  readonly entranceRateBurnFee: EntranceRateBurnFee;
48
35
  readonly entranceRateDirectFee: EntranceRateDirectFee;
49
36
  readonly exitRateBurnFee: ExitRateBurnFee;
50
37
  readonly exitRateDirectFee: ExitRateDirectFee;
38
+ readonly externalPositionFactory: ExternalPositionFactory;
39
+ readonly externalPositionManager: ExternalPositionManager;
40
+ readonly feeManager: FeeManager;
41
+ readonly fundDeployer: FundDeployer;
42
+ readonly fundValueCalculator: FundValueCalculator;
43
+ readonly fundValueCalculatorRouter: FundValueCalculatorRouter;
44
+ readonly fundValueCalculatorUsdWrapper: FundValueCalculatorUsdWrapper;
45
+ readonly gasRelayPaymasterFactory: GasRelayPaymasterFactory;
46
+ readonly guaranteedRedemptionPolicy: GuaranteedRedemptionPolicy;
47
+ readonly idleAdapter: IdleAdapter;
48
+ readonly idlePriceFeed: IdlePriceFeed;
49
+ readonly integrationManager: IntegrationManager;
50
+ readonly lidoStethPriceFeed: LidoStethPriceFeed;
51
51
  readonly managementFee: ManagementFee;
52
- readonly performanceFee: PerformanceFee;
53
- readonly depositWrapper: DepositWrapper;
54
- readonly unpermissionedActionsWrapper: UnpermissionedActionsWrapper;
55
- readonly allowedAdapterIncomingAssetsPolicy: AllowedAdapterIncomingAssetsPolicy;
52
+ readonly minAssetBalancesPostRedemptionPolicy: MinAssetBalancesPostRedemptionPolicy;
56
53
  readonly minMaxInvestmentPolicy: MinMaxInvestmentPolicy;
57
- readonly allowedDepositRecipientsPolicy: AllowedDepositRecipientsPolicy;
58
- readonly guaranteedRedemptionPolicy: GuaranteedRedemptionPolicy;
59
- readonly globalConfigLib: GlobalConfigLib;
60
- readonly globalConfigProxy: GlobalConfigLib;
61
- readonly assetFinalityResolver: AssetFinalityResolver;
54
+ readonly olympusV2Adapter: OlympusV2Adapter;
55
+ readonly onlyRemoveDustExternalPositionPolicy: OnlyRemoveDustExternalPositionPolicy;
56
+ readonly onlyUntrackDustOrPricelessAssetsPolicy: OnlyUntrackDustOrPricelessAssetsPolicy;
57
+ readonly paraSwapV4Adapter: ParaSwapV4Adapter;
58
+ readonly paraSwapV5Adapter: ParaSwapV5Adapter;
59
+ readonly performanceFee: PerformanceFee;
60
+ readonly policyManager: PolicyManager;
61
+ readonly poolTogetherV4Adapter: PoolTogetherV4Adapter;
62
+ readonly poolTogetherV4PriceFeed: PoolTogetherV4PriceFeed;
62
63
  readonly protocolFeeReserveLib: ProtocolFeeReserveLib;
63
64
  readonly protocolFeeReserveProxy: ProtocolFeeReserveLib;
64
65
  readonly protocolFeeTracker: ProtocolFeeTracker;
65
- readonly gasRelayPaymasterFactory: GasRelayPaymasterFactory;
66
- readonly addressListRegistry: AddressListRegistry;
67
- readonly allowedAdaptersPolicy: AllowedAdaptersPolicy;
68
- readonly allowedAssetsForRedemptionPolicy: AllowedAssetsForRedemptionPolicy;
69
- readonly allowedExternalPositionTypesPolicy: AllowedExternalPositionTypesPolicy;
70
- readonly allowedSharesTransferRecipientsPolicy: AllowedSharesTransferRecipientsPolicy;
71
- readonly onlyUntrackDustOrPricelessAssetsPolicy: OnlyUntrackDustOrPricelessAssetsPolicy;
66
+ readonly revertingPriceFeed: RevertingPriceFeed;
67
+ readonly stakehoundEthPriceFeed: StakehoundEthPriceFeed;
68
+ readonly synthetixAdapter: SynthetixAdapter;
69
+ readonly synthetixPriceFeed: SynthetixPriceFeed;
70
+ readonly uniswapV2ExchangeAdapter: UniswapV2ExchangeAdapter;
71
+ readonly uniswapV2LiquidityAdapter: UniswapV2LiquidityAdapter;
72
+ readonly uniswapV2PoolPriceFeed: UniswapV2PoolPriceFeed;
73
+ readonly uniswapV3Adapter: UniswapV3Adapter;
74
+ readonly unpermissionedActionsWrapper: UnpermissionedActionsWrapper;
75
+ readonly valueInterpreter: ValueInterpreter;
76
+ readonly vaultLib: VaultLib;
77
+ readonly yearnVaultV2Adapter: YearnVaultV2Adapter;
78
+ readonly yearnVaultV2PriceFeed: YearnVaultV2PriceFeed;
79
+ readonly zeroExV2Adapter: ZeroExV2Adapter;
72
80
  };
73
- readonly accounts: SignerWithAddress[];
74
- readonly config: DeploymentConfig;
75
81
  }>;
76
82
  declare type Resolve<T extends () => any> = ReturnType<T> extends Promise<infer U> ? U : ReturnType<T>;
77
- declare type ContractMap = Record<string, Contract>;
78
- export interface DeploymentFixtureWithoutConfig<T extends ContractMap> {
79
- deployer: SignerWithAddress;
80
- deployment: T;
81
- accounts: SignerWithAddress[];
82
- }
83
- export interface DeploymentFixtureWithConfig<T extends ContractMap> extends DeploymentFixtureWithoutConfig<T> {
84
- config: DeploymentConfig;
85
- }
86
83
  export declare type ProtocolDeployment = Resolve<typeof deployProtocolFixture>;
87
- export declare function defaultTestDeployment(_: any): Promise<any>;
84
+ import type { ChainlinkRateAsset } from '@enzymefinance/protocol';
85
+ export interface DeploymentConfig {
86
+ feeToken: string;
87
+ feeTokenBurn: {
88
+ burnFromVault: boolean;
89
+ sendToProtocolFeeReserve: boolean;
90
+ externalBurnerAddress: string;
91
+ };
92
+ weth: string;
93
+ wrappedNativeAsset: string;
94
+ primitives: Record<string, string>;
95
+ gsn: {
96
+ relayHub: string;
97
+ relayWorker: string;
98
+ trustedForwarder: string;
99
+ };
100
+ chainlink: {
101
+ ethusd: string;
102
+ aggregators: Record<string, readonly [string, ChainlinkRateAsset]>;
103
+ };
104
+ synthetix: {
105
+ snx: string;
106
+ susd: string;
107
+ synths: Record<string, string>;
108
+ addressResolver: string;
109
+ delegateApprovals: string;
110
+ originator: string;
111
+ redeemer: string;
112
+ trackingCode: string;
113
+ };
114
+ curve: {
115
+ addressProvider: string;
116
+ minter: string;
117
+ pools: Record<string, {
118
+ pool: string;
119
+ lpToken: string;
120
+ liquidityGaugeToken: string;
121
+ invariantProxyAsset: string;
122
+ }>;
123
+ };
124
+ aave: {
125
+ lendingPoolAddressProvider: string;
126
+ protocolDataProvider: string;
127
+ atokens: Record<string, [string, string]>;
128
+ };
129
+ compound: {
130
+ ceth: string;
131
+ comptroller: string;
132
+ ctokens: Record<string, string>;
133
+ };
134
+ idle: {
135
+ bestYieldIdleDai: string;
136
+ bestYieldIdleUsdc: string;
137
+ bestYieldIdleUsdt: string;
138
+ bestYieldIdleSusd: string;
139
+ bestYieldIdleTusd: string;
140
+ bestYieldIdleWbtc: string;
141
+ riskAdjustedIdleDai: string;
142
+ riskAdjustedIdleUsdc: string;
143
+ riskAdjustedIdleUsdt: string;
144
+ };
145
+ lido: {
146
+ steth: string;
147
+ };
148
+ olympusV2: {
149
+ stakingContract: string;
150
+ };
151
+ paraSwapV4: {
152
+ augustusSwapper: string;
153
+ tokenTransferProxy: string;
154
+ };
155
+ paraSwapV5: {
156
+ augustusSwapper: string;
157
+ tokenTransferProxy: string;
158
+ };
159
+ poolTogetherV4: {
160
+ ptTokens: Record<string, [string, string]>;
161
+ };
162
+ positionsLimit: number;
163
+ stakehound: {
164
+ steth: string;
165
+ };
166
+ unsupportedAssets: Record<string, string>;
167
+ uniswap: {
168
+ factory: string;
169
+ router: string;
170
+ pools: Record<string, string>;
171
+ };
172
+ uniswapV3: {
173
+ router: string;
174
+ nonFungiblePositionManager: string;
175
+ };
176
+ yearn: {
177
+ vaultV2: {
178
+ registry: string;
179
+ yVaults: Record<string, string>;
180
+ };
181
+ };
182
+ zeroex: {
183
+ exchange: string;
184
+ allowedMakers: string[];
185
+ };
186
+ policies: {
187
+ guaranteedRedemption: {
188
+ redemptionWindowBuffer: number;
189
+ };
190
+ };
191
+ }
88
192
  export {};
@@ -1,6 +1,8 @@
1
- import { BigNumberish, utils } from 'ethers';
2
- import { ContractReceipt } from '@enzymefinance/ethers';
3
- import { IGsnRelayHub, CreateSignedRelayRequestOptions } from '@enzymefinance/protocol';
1
+ import type { ContractReceipt } from '@enzymefinance/ethers';
2
+ import type { CreateSignedRelayRequestOptions } from '@enzymefinance/protocol';
3
+ import { IGsnRelayHub } from '@enzymefinance/protocol';
4
+ import type { BigNumberish } from 'ethers';
5
+ import { utils } from 'ethers';
4
6
  export interface RelayTransactionOptions extends CreateSignedRelayRequestOptions {
5
7
  relayHub: string;
6
8
  }
@@ -29,26 +31,26 @@ export declare function relayTransaction(options: RelayTransactionOptions): Prom
29
31
  returnValue: string;
30
32
  }, IGsnRelayHub>>>;
31
33
  export declare function assertDidRelay(receipt: ContractReceipt<any>): {
32
- relayManager: any;
33
- relayWorker: any;
34
+ charge: any;
34
35
  from: any;
35
- to: any;
36
36
  paymaster: any;
37
+ relayManager: any;
38
+ relayWorker: any;
37
39
  selector: any;
38
40
  status: any;
39
- charge: any;
41
+ to: any;
40
42
  };
41
43
  export declare function assertDidRelaySuccessfully(receipt: ContractReceipt<any>): void;
42
44
  export declare function assertDidRelayWithError(receipt: ContractReceipt<any>): void;
43
45
  export declare function assertDidRelayWithCharge(receipt: ContractReceipt<any>, amount: BigNumberish, tolerance?: BigNumberish): void;
44
46
  export declare function assertPaymasterDidReject(receipt: ContractReceipt<any>): {
45
- relayManager: any;
46
- paymaster: any;
47
47
  from: any;
48
- to: any;
49
- relayWorker: any;
50
- selector: any;
51
48
  innerGasUsed: any;
49
+ paymaster: any;
52
50
  reason: any;
51
+ relayManager: any;
52
+ relayWorker: any;
53
+ selector: any;
54
+ to: any;
53
55
  };
54
56
  export declare function assertPaymasterDidRejectForReason(receipt: ContractReceipt<any>, reason: string): void;
@@ -1,6 +1,7 @@
1
- import { AddressLike, ContractReceipt } from '@enzymefinance/ethers';
2
- import { BigNumber, BigNumberish } from 'ethers';
3
- import { ValueInterpreter } from '@enzymefinance/protocol';
1
+ import type { AddressLike, ContractReceipt } from '@enzymefinance/ethers';
2
+ import type { ValueInterpreter } from '@enzymefinance/protocol';
3
+ import type { BigNumberish } from 'ethers';
4
+ import { BigNumber } from 'ethers';
4
5
  export declare function transactionTimestamp(receipt: ContractReceipt<any>): Promise<number>;
5
6
  export declare function calcMlnValueAndBurnAmountForSharesBuyback({ valueInterpreter, mln, denominationAsset, sharesSupply, gav, buybackSharesAmount, }: {
6
7
  valueInterpreter: ValueInterpreter;
@@ -10,6 +11,6 @@ export declare function calcMlnValueAndBurnAmountForSharesBuyback({ valueInterpr
10
11
  gav: BigNumberish;
11
12
  buybackSharesAmount: BigNumberish;
12
13
  }): Promise<{
13
- mlnValue: BigNumber;
14
14
  mlnAmountToBurn: BigNumber;
15
+ mlnValue: BigNumber;
15
16
  }>;
@@ -1,6 +1,6 @@
1
- import { SignerWithAddress } from '@enzymefinance/hardhat';
2
- import { ComptrollerLib, IntegrationManager, StandardToken } from '@enzymefinance/protocol';
3
- import { BigNumberish } from 'ethers';
1
+ import type { SignerWithAddress } from '@enzymefinance/hardhat';
2
+ import type { ComptrollerLib, IntegrationManager, StandardToken } from '@enzymefinance/protocol';
3
+ import type { BigNumberish } from 'ethers';
4
4
  export declare function addNewAssetsToFund({ signer, comptrollerProxy, integrationManager, assets, amounts, }: {
5
5
  signer: SignerWithAddress;
6
6
  comptrollerProxy: ComptrollerLib;
@@ -1,3 +1,3 @@
1
- import { BigNumberish } from 'ethers';
2
- import { MockChainlinkPriceSource } from '@enzymefinance/protocol';
1
+ import type { MockChainlinkPriceSource } from '@enzymefinance/protocol';
2
+ import type { BigNumberish } from 'ethers';
3
3
  export declare function updateChainlinkAggregator(aggregator: MockChainlinkPriceSource, price?: BigNumberish): Promise<void>;
@@ -1,4 +1,4 @@
1
- import { AddressLike } from '@enzymefinance/ethers';
1
+ import type { AddressLike } from '@enzymefinance/ethers';
2
2
  import { StandardToken } from '@enzymefinance/protocol';
3
3
  export declare function getAssetBalances({ account, assets }: {
4
4
  account: AddressLike;
@@ -1,6 +1,7 @@
1
- import { AssetFinalityResolver, ExternalPositionManager, Dispatcher, FeeManager, FundDeployer, GasRelayPaymasterFactory, IntegrationManager, PolicyManager, ValueInterpreter, VaultLib } from '@enzymefinance/protocol';
2
- import { Signer } from 'ethers';
3
- export declare function createFundDeployer({ deployer, assetFinalityResolver, externalPositionManager, dispatcher, feeManager, gasRelayPaymasterFactory, integrationManager, policyManager, valueInterpreter, vaultLib, setOnDispatcher, setReleaseLive, }: {
1
+ import type { AssetFinalityResolver, Dispatcher, GasRelayPaymasterFactory, ValueInterpreter } from '@enzymefinance/protocol';
2
+ import { ExternalPositionManager, FeeManager, FundDeployer, IntegrationManager, PolicyManager, VaultLib } from '@enzymefinance/protocol';
3
+ import type { Signer } from 'ethers';
4
+ export declare function createFundDeployer({ deployer, assetFinalityResolver, externalPositionManager, dispatcher, gasRelayPaymasterFactory, valueInterpreter, vaultLib, setOnDispatcher, setReleaseLive, }: {
4
5
  deployer: Signer;
5
6
  assetFinalityResolver: AssetFinalityResolver;
6
7
  externalPositionManager: ExternalPositionManager;
@@ -1,7 +1,7 @@
1
- import { AddressLike } from '@enzymefinance/ethers';
2
- import { SignerWithAddress } from '@enzymefinance/hardhat';
3
- import { ComptrollerLib } from '@enzymefinance/protocol';
4
- import { BigNumberish, BytesLike } from 'ethers';
1
+ import type { AddressLike } from '@enzymefinance/ethers';
2
+ import type { SignerWithAddress } from '@enzymefinance/hardhat';
3
+ import type { ComptrollerLib } from '@enzymefinance/protocol';
4
+ import type { BigNumberish, BytesLike } from 'ethers';
5
5
  export declare function callOnExtension({ comptrollerProxy, extension, actionId, callArgs, signer, }: {
6
6
  comptrollerProxy: ComptrollerLib;
7
7
  extension: AddressLike;
@@ -1,7 +1,16 @@
1
- import { AddressLike } from '@enzymefinance/ethers';
2
- import { SignerWithAddress } from '@enzymefinance/hardhat';
3
- import { ComptrollerLib, ExternalPositionManager, IExternalPositionProxy } from '@enzymefinance/protocol';
4
- import { BigNumberish, BytesLike } from 'ethers';
1
+ import type { AddressLike } from '@enzymefinance/ethers';
2
+ import type { SignerWithAddress } from '@enzymefinance/hardhat';
3
+ import type { ComptrollerLib, ExternalPositionManager } from '@enzymefinance/protocol';
4
+ import { IExternalPositionProxy } from '@enzymefinance/protocol';
5
+ import type { BigNumberish, BytesLike } from 'ethers';
6
+ export declare function callOnExternalPosition({ signer, comptrollerProxy, externalPositionManager, externalPositionProxy, actionId, actionArgs, }: {
7
+ signer: SignerWithAddress;
8
+ comptrollerProxy: ComptrollerLib;
9
+ externalPositionManager: ExternalPositionManager;
10
+ externalPositionProxy: AddressLike;
11
+ actionId: BigNumberish;
12
+ actionArgs: BytesLike;
13
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: BytesLike], void, ComptrollerLib>>>;
5
14
  export declare function createExternalPosition({ signer, comptrollerProxy, externalPositionManager, externalPositionTypeId, initializationData, }: {
6
15
  signer: SignerWithAddress;
7
16
  comptrollerProxy: ComptrollerLib;
@@ -9,8 +18,8 @@ export declare function createExternalPosition({ signer, comptrollerProxy, exter
9
18
  externalPositionTypeId: BigNumberish;
10
19
  initializationData?: BytesLike;
11
20
  }): Promise<{
12
- receipt: import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: BytesLike], void, ComptrollerLib>>;
13
21
  externalPositionProxy: IExternalPositionProxy;
22
+ receipt: import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: BytesLike], void, ComptrollerLib>>;
14
23
  }>;
15
24
  export declare function reactivateExternalPosition({ signer, comptrollerProxy, externalPositionManager, externalPositionProxy, }: {
16
25
  signer: SignerWithAddress;
@@ -1,16 +1,8 @@
1
- import { AddressLike } from '@enzymefinance/ethers';
2
- import { SignerWithAddress } from '@enzymefinance/hardhat';
3
- import { ComptrollerLib, ExternalPositionManager, VaultLib } from '@enzymefinance/protocol';
4
- import { BigNumberish } from 'ethers';
5
- export declare function createCompoundDebtPosition({ signer, comptrollerProxy, externalPositionManager, }: {
6
- signer: SignerWithAddress;
7
- comptrollerProxy: ComptrollerLib;
8
- externalPositionManager: ExternalPositionManager;
9
- }): Promise<{
10
- receipt: import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>;
11
- externalPositionProxy: import("@enzymefinance/protocol").IExternalPositionProxy;
12
- }>;
13
- export declare function addCollateral({ comptrollerProxy, externalPositionManager, fundOwner, assets, amounts, externalPositionProxy, cTokens, }: {
1
+ import type { AddressLike } from '@enzymefinance/ethers';
2
+ import type { SignerWithAddress } from '@enzymefinance/hardhat';
3
+ import type { ComptrollerLib, ExternalPositionManager, VaultLib } from '@enzymefinance/protocol';
4
+ import type { BigNumberish } from 'ethers';
5
+ export declare function compoundDebtPositionAddCollateral({ comptrollerProxy, externalPositionManager, fundOwner, assets, amounts, externalPositionProxy, cTokens, }: {
14
6
  comptrollerProxy: ComptrollerLib;
15
7
  externalPositionManager: ExternalPositionManager;
16
8
  fundOwner: SignerWithAddress;
@@ -19,33 +11,33 @@ export declare function addCollateral({ comptrollerProxy, externalPositionManage
19
11
  amounts: BigNumberish[];
20
12
  externalPositionProxy: AddressLike;
21
13
  }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
22
- export declare function removeCollateral({ comptrollerProxy, externalPositionManager, fundOwner, assets, amounts, externalPositionProxy, cTokens, }: {
14
+ export declare function compoundDebtPositionBorrow({ comptrollerProxy, externalPositionManager, fundOwner, externalPositionProxy, assets, amounts, cTokens, }: {
23
15
  comptrollerProxy: ComptrollerLib;
16
+ vaultProxy: VaultLib;
24
17
  externalPositionManager: ExternalPositionManager;
25
18
  fundOwner: SignerWithAddress;
19
+ externalPositionProxy: AddressLike;
26
20
  assets: AddressLike[];
27
21
  amounts: BigNumberish[];
28
- externalPositionProxy: AddressLike;
29
22
  cTokens: AddressLike[];
30
23
  }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
31
- export declare function borrow({ comptrollerProxy, externalPositionManager, fundOwner, externalPositionProxy, assets, amounts, cTokens, }: {
24
+ export declare function compoundDebtPositionClaimComp({ comptrollerProxy, externalPositionManager, fundOwner, externalPositionProxy, }: {
32
25
  comptrollerProxy: ComptrollerLib;
33
26
  vaultProxy: VaultLib;
34
27
  externalPositionManager: ExternalPositionManager;
35
28
  fundOwner: SignerWithAddress;
36
29
  externalPositionProxy: AddressLike;
37
- assets: AddressLike[];
38
- amounts: BigNumberish[];
39
- cTokens: AddressLike[];
40
30
  }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
41
- export declare function claimComp({ comptrollerProxy, externalPositionManager, fundOwner, externalPositionProxy, }: {
31
+ export declare function compoundDebtPositionRemoveCollateral({ comptrollerProxy, externalPositionManager, fundOwner, assets, amounts, externalPositionProxy, cTokens, }: {
42
32
  comptrollerProxy: ComptrollerLib;
43
- vaultProxy: VaultLib;
44
33
  externalPositionManager: ExternalPositionManager;
45
34
  fundOwner: SignerWithAddress;
35
+ assets: AddressLike[];
36
+ amounts: BigNumberish[];
46
37
  externalPositionProxy: AddressLike;
38
+ cTokens: AddressLike[];
47
39
  }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
48
- export declare function repayBorrow({ comptrollerProxy, externalPositionManager, fundOwner, assets, amounts, externalPositionProxy, cTokens, }: {
40
+ export declare function compoundDebtPositionRepayBorrow({ comptrollerProxy, externalPositionManager, fundOwner, assets, amounts, externalPositionProxy, cTokens, }: {
49
41
  comptrollerProxy: ComptrollerLib;
50
42
  externalPositionManager: ExternalPositionManager;
51
43
  fundOwner: SignerWithAddress;
@@ -54,3 +46,11 @@ export declare function repayBorrow({ comptrollerProxy, externalPositionManager,
54
46
  externalPositionProxy: AddressLike;
55
47
  cTokens: AddressLike[];
56
48
  }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
49
+ export declare function createCompoundDebtPosition({ signer, comptrollerProxy, externalPositionManager, }: {
50
+ signer: SignerWithAddress;
51
+ comptrollerProxy: ComptrollerLib;
52
+ externalPositionManager: ExternalPositionManager;
53
+ }): Promise<{
54
+ externalPositionProxy: import("@enzymefinance/protocol").IExternalPositionProxy;
55
+ receipt: import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>;
56
+ }>;
@@ -1,3 +1,4 @@
1
1
  export * from './actions';
2
2
  export * from './compound';
3
3
  export * from './mocks';
4
+ export * from './uniswap-v3-liquidity';
@@ -1,7 +1,8 @@
1
- import { ComptrollerLib, ExternalPositionFactory, ExternalPositionManager, MockGenericExternalPositionLib, MockGenericExternalPositionParser } from '@enzymefinance/protocol/src';
2
- import { SignerWithAddress } from '@enzymefinance/hardhat';
3
- import { AddressLike } from '@enzymefinance/ethers';
4
- import { BigNumberish } from 'ethers';
1
+ import type { AddressLike } from '@enzymefinance/ethers';
2
+ import type { SignerWithAddress } from '@enzymefinance/hardhat';
3
+ import type { ComptrollerLib, ExternalPositionFactory, ExternalPositionManager } from '@enzymefinance/protocol';
4
+ import { MockGenericExternalPositionLib, MockGenericExternalPositionParser } from '@enzymefinance/protocol';
5
+ import type { BigNumberish } from 'ethers';
5
6
  export declare function createMockExternalPosition({ comptrollerProxy, externalPositionManager, externalPositionFactory, defaultActionAssetsToTransfer, defaultActionAmountsToTransfer, defaultActionAssetsToReceive, fundOwner, deployer, }: {
6
7
  comptrollerProxy: ComptrollerLib;
7
8
  externalPositionManager: ExternalPositionManager;
@@ -12,9 +13,41 @@ export declare function createMockExternalPosition({ comptrollerProxy, externalP
12
13
  fundOwner: SignerWithAddress;
13
14
  deployer: SignerWithAddress;
14
15
  }): Promise<{
15
- typeId: import("ethers").BigNumber;
16
- mockGenericExternalPositionLib: MockGenericExternalPositionLib;
17
- mockExternalPositionParser: MockGenericExternalPositionParser;
18
16
  externalPositionProxy: string;
17
+ mockExternalPositionParser: MockGenericExternalPositionParser;
18
+ mockGenericExternalPositionLib: MockGenericExternalPositionLib;
19
19
  receipt: import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>;
20
+ typeId: import("ethers").BigNumber;
20
21
  }>;
22
+ export declare function mockExternalPositionAddDebtAssets({ signer, comptrollerProxy, externalPositionManager, externalPositionProxy, assets, amounts, }: {
23
+ signer: SignerWithAddress;
24
+ comptrollerProxy: ComptrollerLib;
25
+ externalPositionManager: ExternalPositionManager;
26
+ externalPositionProxy: AddressLike;
27
+ assets: AddressLike[];
28
+ amounts: BigNumberish[];
29
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
30
+ export declare function mockExternalPositionAddManagedAssets({ signer, comptrollerProxy, externalPositionManager, externalPositionProxy, assets, amounts, }: {
31
+ signer: SignerWithAddress;
32
+ comptrollerProxy: ComptrollerLib;
33
+ externalPositionManager: ExternalPositionManager;
34
+ externalPositionProxy: AddressLike;
35
+ assets: AddressLike[];
36
+ amounts: BigNumberish[];
37
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
38
+ export declare function mockExternalPositionRemoveDebtAssets({ signer, comptrollerProxy, externalPositionManager, externalPositionProxy, assets, amounts, }: {
39
+ signer: SignerWithAddress;
40
+ comptrollerProxy: ComptrollerLib;
41
+ externalPositionManager: ExternalPositionManager;
42
+ externalPositionProxy: AddressLike;
43
+ assets: AddressLike[];
44
+ amounts: BigNumberish[];
45
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
46
+ export declare function mockExternalPositionRemoveManagedAssets({ signer, comptrollerProxy, externalPositionManager, externalPositionProxy, assets, amounts, }: {
47
+ signer: SignerWithAddress;
48
+ comptrollerProxy: ComptrollerLib;
49
+ externalPositionManager: ExternalPositionManager;
50
+ externalPositionProxy: AddressLike;
51
+ assets: AddressLike[];
52
+ amounts: BigNumberish[];
53
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;