@enzymefinance/testutils 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/declarations/src/assertions.d.ts +4 -0
  3. package/dist/declarations/src/deployment.d.ts +81 -0
  4. package/dist/declarations/src/helpers.d.ts +2 -0
  5. package/dist/declarations/src/index.d.ts +5 -0
  6. package/dist/declarations/src/scaffolding/assets.d.ts +12 -0
  7. package/dist/declarations/src/scaffolding/chainlink.d.ts +3 -0
  8. package/dist/declarations/src/scaffolding/common.d.ts +6 -0
  9. package/dist/declarations/src/scaffolding/core.d.ts +19 -0
  10. package/dist/declarations/src/scaffolding/extensions/common.d.ts +11 -0
  11. package/dist/declarations/src/scaffolding/extensions/fees.d.ts +14 -0
  12. package/dist/declarations/src/scaffolding/extensions/index.d.ts +4 -0
  13. package/dist/declarations/src/scaffolding/extensions/integrations/aave.d.ts +19 -0
  14. package/dist/declarations/src/scaffolding/extensions/integrations/alpha.d.ts +36 -0
  15. package/dist/declarations/src/scaffolding/extensions/integrations/compound.d.ts +27 -0
  16. package/dist/declarations/src/scaffolding/extensions/integrations/curve.d.ts +331 -0
  17. package/dist/declarations/src/scaffolding/extensions/integrations/idle.d.ts +57 -0
  18. package/dist/declarations/src/scaffolding/extensions/integrations/index.d.ts +14 -0
  19. package/dist/declarations/src/scaffolding/extensions/integrations/kyber.d.ts +23 -0
  20. package/dist/declarations/src/scaffolding/extensions/integrations/mock.d.ts +32 -0
  21. package/dist/declarations/src/scaffolding/extensions/integrations/paraSwapV4.d.ts +22 -0
  22. package/dist/declarations/src/scaffolding/extensions/integrations/synthetix.d.ts +25 -0
  23. package/dist/declarations/src/scaffolding/extensions/integrations/trackedAssets.d.ts +17 -0
  24. package/dist/declarations/src/scaffolding/extensions/integrations/uniswapV2.d.ts +46 -0
  25. package/dist/declarations/src/scaffolding/extensions/integrations/uniswapV3.d.ts +15 -0
  26. package/dist/declarations/src/scaffolding/extensions/integrations/yearn.d.ts +22 -0
  27. package/dist/declarations/src/scaffolding/extensions/integrations/zeroExV2.d.ts +12 -0
  28. package/dist/declarations/src/scaffolding/extensions/policies.d.ts +15 -0
  29. package/dist/declarations/src/scaffolding/index.d.ts +9 -0
  30. package/dist/declarations/src/scaffolding/peripheral/index.d.ts +1 -0
  31. package/dist/declarations/src/scaffolding/peripheral/sharesRequestors.d.ts +19 -0
  32. package/dist/declarations/src/scaffolding/setup.d.ts +46 -0
  33. package/dist/declarations/src/scaffolding/shares.d.ts +30 -0
  34. package/dist/declarations/src/scaffolding/vaultCalls.d.ts +17 -0
  35. package/dist/declarations/src/whales.d.ts +43 -0
  36. package/dist/enzymefinance-testutils.browser.cjs.js +3160 -0
  37. package/dist/enzymefinance-testutils.browser.esm.js +3045 -0
  38. package/dist/enzymefinance-testutils.cjs.d.ts +1 -0
  39. package/dist/enzymefinance-testutils.cjs.dev.js +3160 -0
  40. package/dist/enzymefinance-testutils.cjs.js +7 -0
  41. package/dist/enzymefinance-testutils.cjs.prod.js +3160 -0
  42. package/dist/enzymefinance-testutils.esm.js +3045 -0
  43. package/package.json +18 -0
  44. package/src/assertions.ts +20 -0
  45. package/src/deployment.ts +169 -0
  46. package/src/helpers.ts +6 -0
  47. package/src/index.ts +5 -0
  48. package/src/scaffolding/assets.ts +39 -0
  49. package/src/scaffolding/chainlink.ts +8 -0
  50. package/src/scaffolding/common.ts +6 -0
  51. package/src/scaffolding/core.ts +77 -0
  52. package/src/scaffolding/extensions/common.ts +30 -0
  53. package/src/scaffolding/extensions/fees.ts +87 -0
  54. package/src/scaffolding/extensions/index.ts +4 -0
  55. package/src/scaffolding/extensions/integrations/aave.ts +80 -0
  56. package/src/scaffolding/extensions/integrations/alpha.ts +119 -0
  57. package/src/scaffolding/extensions/integrations/compound.ts +97 -0
  58. package/src/scaffolding/extensions/integrations/curve.ts +1207 -0
  59. package/src/scaffolding/extensions/integrations/idle.ts +215 -0
  60. package/src/scaffolding/extensions/integrations/index.ts +14 -0
  61. package/src/scaffolding/extensions/integrations/kyber.ts +69 -0
  62. package/src/scaffolding/extensions/integrations/mock.ts +118 -0
  63. package/src/scaffolding/extensions/integrations/paraSwapV4.ts +65 -0
  64. package/src/scaffolding/extensions/integrations/synthetix.ts +97 -0
  65. package/src/scaffolding/extensions/integrations/trackedAssets.ts +66 -0
  66. package/src/scaffolding/extensions/integrations/uniswapV2.ts +171 -0
  67. package/src/scaffolding/extensions/integrations/uniswapV3.ts +56 -0
  68. package/src/scaffolding/extensions/integrations/yearn.ts +81 -0
  69. package/src/scaffolding/extensions/integrations/zeroExV2.ts +45 -0
  70. package/src/scaffolding/extensions/policies.ts +85 -0
  71. package/src/scaffolding/index.ts +9 -0
  72. package/src/scaffolding/peripheral/index.ts +1 -0
  73. package/src/scaffolding/peripheral/sharesRequestors.ts +53 -0
  74. package/src/scaffolding/setup.ts +135 -0
  75. package/src/scaffolding/shares.ts +63 -0
  76. package/src/scaffolding/vaultCalls.ts +58 -0
  77. package/src/types.d.ts +1 -0
  78. package/src/whales.ts +63 -0
  79. package/tsconfig.json +4 -0
@@ -0,0 +1,57 @@
1
+ import { AddressLike } from '@enzymefinance/ethers';
2
+ import { SignerWithAddress } from '@enzymefinance/hardhat';
3
+ import { ComptrollerLib, IdleAdapter, IntegrationManager, StandardToken } from '@enzymefinance/protocol';
4
+ import { BigNumberish } from 'ethers';
5
+ export declare function idleApproveAssets({ comptrollerProxy, integrationManager, fundOwner, idleAdapter, idleToken, assets, amounts, }: {
6
+ comptrollerProxy: ComptrollerLib;
7
+ integrationManager: IntegrationManager;
8
+ fundOwner: SignerWithAddress;
9
+ idleAdapter: IdleAdapter;
10
+ idleToken: StandardToken;
11
+ assets: AddressLike[];
12
+ amounts: BigNumberish[];
13
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
14
+ export declare function idleClaimRewards({ comptrollerProxy, integrationManager, fundOwner, idleAdapter, idleToken, }: {
15
+ comptrollerProxy: ComptrollerLib;
16
+ integrationManager: IntegrationManager;
17
+ fundOwner: SignerWithAddress;
18
+ idleAdapter: IdleAdapter;
19
+ idleToken: StandardToken;
20
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
21
+ export declare function idleClaimRewardsAndReinvest({ comptrollerProxy, integrationManager, fundOwner, idleAdapter, idleToken, minIncomingIdleTokenAmount, useFullBalances, }: {
22
+ comptrollerProxy: ComptrollerLib;
23
+ integrationManager: IntegrationManager;
24
+ fundOwner: SignerWithAddress;
25
+ idleAdapter: IdleAdapter;
26
+ idleToken: StandardToken;
27
+ minIncomingIdleTokenAmount?: BigNumberish;
28
+ useFullBalances: boolean;
29
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
30
+ export declare function idleClaimRewardsAndSwap({ comptrollerProxy, integrationManager, fundOwner, idleAdapter, idleToken, incomingAsset, minIncomingAssetAmount, useFullBalances, }: {
31
+ comptrollerProxy: ComptrollerLib;
32
+ integrationManager: IntegrationManager;
33
+ fundOwner: SignerWithAddress;
34
+ idleAdapter: IdleAdapter;
35
+ idleToken: StandardToken;
36
+ incomingAsset: AddressLike;
37
+ minIncomingAssetAmount?: BigNumberish;
38
+ useFullBalances: boolean;
39
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
40
+ export declare function idleLend({ comptrollerProxy, integrationManager, fundOwner, idleAdapter, idleToken, outgoingUnderlyingAmount, minIncomingIdleTokenAmount, }: {
41
+ comptrollerProxy: ComptrollerLib;
42
+ integrationManager: IntegrationManager;
43
+ fundOwner: SignerWithAddress;
44
+ idleAdapter: IdleAdapter;
45
+ idleToken: StandardToken;
46
+ outgoingUnderlyingAmount: BigNumberish;
47
+ minIncomingIdleTokenAmount?: BigNumberish;
48
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
49
+ export declare function idleRedeem({ comptrollerProxy, integrationManager, fundOwner, idleAdapter, idleToken, outgoingIdleTokenAmount, minIncomingUnderlyingAmount, }: {
50
+ comptrollerProxy: ComptrollerLib;
51
+ integrationManager: IntegrationManager;
52
+ fundOwner: SignerWithAddress;
53
+ idleAdapter: IdleAdapter;
54
+ idleToken: StandardToken;
55
+ outgoingIdleTokenAmount: BigNumberish;
56
+ minIncomingUnderlyingAmount?: BigNumberish;
57
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
@@ -0,0 +1,14 @@
1
+ export * from './aave';
2
+ export * from './alpha';
3
+ export * from './compound';
4
+ export * from './curve';
5
+ export * from './idle';
6
+ export * from './kyber';
7
+ export * from './mock';
8
+ export * from './paraSwapV4';
9
+ export * from './synthetix';
10
+ export * from './trackedAssets';
11
+ export * from './uniswapV2';
12
+ export * from './uniswapV3';
13
+ export * from './yearn';
14
+ export * from './zeroExV2';
@@ -0,0 +1,23 @@
1
+ import { AddressLike, Call, Contract } from '@enzymefinance/ethers';
2
+ import { SignerWithAddress } from '@enzymefinance/hardhat';
3
+ import { StandardToken, ComptrollerLib, IntegrationManager, KyberAdapter, VaultLib } from '@enzymefinance/protocol';
4
+ import { BigNumber, BigNumberish, utils } from 'ethers';
5
+ export interface KyberNetworkProxy extends Contract<KyberNetworkProxy> {
6
+ getExpectedRate: Call<(src: AddressLike, dest: AddressLike, srcQty: BigNumberish) => {
7
+ expectedRate: BigNumber;
8
+ worstRate: BigNumber;
9
+ }, KyberNetworkProxy>;
10
+ }
11
+ export declare const KyberNetworkProxy: import("@enzymefinance/ethers").ContractFactory<KyberNetworkProxy, never>;
12
+ export declare function kyberTakeOrder({ comptrollerProxy, vaultProxy, integrationManager, fundOwner, kyberAdapter, outgoingAsset, outgoingAssetAmount, incomingAsset, minIncomingAssetAmount, seedFund, }: {
13
+ comptrollerProxy: ComptrollerLib;
14
+ vaultProxy: VaultLib;
15
+ integrationManager: IntegrationManager;
16
+ fundOwner: SignerWithAddress;
17
+ kyberAdapter: KyberAdapter;
18
+ outgoingAsset: StandardToken;
19
+ outgoingAssetAmount?: BigNumberish;
20
+ incomingAsset: StandardToken;
21
+ minIncomingAssetAmount?: BigNumberish;
22
+ seedFund?: boolean;
23
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: utils.BytesLike], void, ComptrollerLib>>>;
@@ -0,0 +1,32 @@
1
+ import { AddressLike } from '@enzymefinance/ethers';
2
+ import { SignerWithAddress } from '@enzymefinance/hardhat';
3
+ import { ComptrollerLib, IntegrationManager, VaultLib, MockGenericAdapter, StandardToken } from '@enzymefinance/protocol';
4
+ import { BigNumberish, BytesLike } from 'ethers';
5
+ export declare const mockGenericRemoveOnlySelector: string;
6
+ export declare const mockGenericSwapASelector: string;
7
+ export declare const mockGenericSwapBSelector: string;
8
+ export declare const mockGenericSwapDirectFromVaultSelector: string;
9
+ export declare const mockGenericSwapViaApprovalSelector: string;
10
+ export declare function mockGenericSwapArgs({ spendAssets, actualSpendAssetAmounts, maxSpendAssetAmounts, incomingAssets, actualIncomingAssetAmounts, minIncomingAssetAmounts, }: {
11
+ spendAssets?: AddressLike[];
12
+ maxSpendAssetAmounts?: BigNumberish[];
13
+ actualSpendAssetAmounts?: BigNumberish[];
14
+ incomingAssets?: AddressLike[];
15
+ minIncomingAssetAmounts?: BigNumberish[];
16
+ actualIncomingAssetAmounts?: BigNumberish[];
17
+ }): string;
18
+ export declare function mockGenericSwap({ comptrollerProxy, vaultProxy, integrationManager, fundOwner, mockGenericAdapter, selector, spendAssets, actualSpendAssetAmounts, maxSpendAssetAmounts, incomingAssets, actualIncomingAssetAmounts, minIncomingAssetAmounts, seedFund, }: {
19
+ comptrollerProxy: ComptrollerLib;
20
+ vaultProxy: VaultLib;
21
+ integrationManager: IntegrationManager;
22
+ fundOwner: SignerWithAddress;
23
+ mockGenericAdapter: MockGenericAdapter;
24
+ selector?: BytesLike;
25
+ spendAssets?: StandardToken[];
26
+ maxSpendAssetAmounts?: BigNumberish[];
27
+ actualSpendAssetAmounts?: BigNumberish[];
28
+ incomingAssets?: StandardToken[];
29
+ minIncomingAssetAmounts?: BigNumberish[];
30
+ actualIncomingAssetAmounts?: BigNumberish[];
31
+ seedFund?: boolean;
32
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: BytesLike], void, ComptrollerLib>>>;
@@ -0,0 +1,22 @@
1
+ import { AddressLike } from '@enzymefinance/ethers';
2
+ import { SignerWithAddress } from '@enzymefinance/hardhat';
3
+ import { ComptrollerLib, IntegrationManager, ParaSwapV4Adapter, ParaSwapV4Path, StandardToken } from '@enzymefinance/protocol';
4
+ import { BigNumberish, utils } from 'ethers';
5
+ export declare function paraSwapV4GenerateDummyPaths({ toTokens }: {
6
+ toTokens: AddressLike[];
7
+ }): {
8
+ to: AddressLike;
9
+ totalNetworkFee: number;
10
+ routes: never[];
11
+ }[];
12
+ export declare function paraSwapV4TakeOrder({ comptrollerProxy, integrationManager, fundOwner, paraSwapV4Adapter, outgoingAsset, outgoingAssetAmount, minIncomingAssetAmount, expectedIncomingAssetAmount, paths, }: {
13
+ comptrollerProxy: ComptrollerLib;
14
+ integrationManager: IntegrationManager;
15
+ fundOwner: SignerWithAddress;
16
+ paraSwapV4Adapter: ParaSwapV4Adapter;
17
+ outgoingAsset: StandardToken;
18
+ outgoingAssetAmount?: BigNumberish;
19
+ minIncomingAssetAmount?: BigNumberish;
20
+ expectedIncomingAssetAmount?: BigNumberish;
21
+ paths: ParaSwapV4Path[];
22
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: utils.BytesLike], void, ComptrollerLib>>>;
@@ -0,0 +1,25 @@
1
+ import { AddressLike } from '@enzymefinance/ethers';
2
+ import { ComptrollerLib, IntegrationManager, ISynthetixAddressResolver, StandardToken, SynthetixAdapter, VaultLib } from '@enzymefinance/protocol';
3
+ import { BigNumberish, Signer, utils } from 'ethers';
4
+ export declare function synthetixAssignExchangeDelegate({ comptrollerProxy, addressResolver, fundOwner, delegate, }: {
5
+ comptrollerProxy: ComptrollerLib;
6
+ addressResolver: ISynthetixAddressResolver;
7
+ fundOwner: Signer;
8
+ delegate: AddressLike;
9
+ }): Promise<void>;
10
+ export declare function synthetixResolveAddress({ addressResolver, name, }: {
11
+ addressResolver: ISynthetixAddressResolver;
12
+ name: string;
13
+ }): Promise<string>;
14
+ export declare function synthetixTakeOrder({ comptrollerProxy, vaultProxy, integrationManager, fundOwner, synthetixAdapter, outgoingAsset, outgoingAssetAmount, incomingAsset, minIncomingAssetAmount, seedFund, }: {
15
+ comptrollerProxy: ComptrollerLib;
16
+ vaultProxy: VaultLib;
17
+ integrationManager: IntegrationManager;
18
+ fundOwner: Signer;
19
+ synthetixAdapter: SynthetixAdapter;
20
+ outgoingAsset: StandardToken;
21
+ outgoingAssetAmount?: BigNumberish;
22
+ incomingAsset: StandardToken;
23
+ minIncomingAssetAmount?: BigNumberish;
24
+ seedFund?: boolean;
25
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: utils.BytesLike], void, ComptrollerLib>>>;
@@ -0,0 +1,17 @@
1
+ import { AddressLike } from '@enzymefinance/ethers';
2
+ import { SignerWithAddress } from '@enzymefinance/hardhat';
3
+ import { ComptrollerLib, IntegrationManager, TrackedAssetsAdapter } from '@enzymefinance/protocol';
4
+ export declare function addTrackedAssets({ comptrollerProxy, integrationManager, fundOwner, trackedAssetsAdapter, incomingAssets, }: {
5
+ comptrollerProxy: ComptrollerLib;
6
+ integrationManager: IntegrationManager;
7
+ fundOwner: SignerWithAddress;
8
+ trackedAssetsAdapter: TrackedAssetsAdapter;
9
+ incomingAssets: AddressLike[];
10
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: import("ethers").BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
11
+ export declare function removeTrackedAssets({ comptrollerProxy, integrationManager, fundOwner, trackedAssetsAdapter, spendAssets, }: {
12
+ comptrollerProxy: ComptrollerLib;
13
+ integrationManager: IntegrationManager;
14
+ fundOwner: SignerWithAddress;
15
+ trackedAssetsAdapter: TrackedAssetsAdapter;
16
+ spendAssets: AddressLike[];
17
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: import("ethers").BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
@@ -0,0 +1,46 @@
1
+ import { AddressLike, Call, Contract, Send } from '@enzymefinance/ethers';
2
+ import { SignerWithAddress } from '@enzymefinance/hardhat';
3
+ import { ComptrollerLib, IntegrationManager, StandardToken, UniswapV2Adapter, VaultLib } from '@enzymefinance/protocol';
4
+ import { BigNumberish } from 'ethers';
5
+ export interface UniswapV2Factory extends Contract<UniswapV2Factory> {
6
+ createPair: Send<(_token0: AddressLike, _token1: AddressLike) => AddressLike>;
7
+ getPair: Call<(_token0: AddressLike, _token1: AddressLike) => AddressLike>;
8
+ }
9
+ export declare const UniswapV2Factory: import("@enzymefinance/ethers").ContractFactory<UniswapV2Factory, never>;
10
+ export declare function uniswapV2Lend({ comptrollerProxy, vaultProxy, integrationManager, fundOwner, uniswapV2Adapter, tokenA, tokenB, amountADesired, amountBDesired, amountAMin, amountBMin, minPoolTokenAmount, seedFund, }: {
11
+ comptrollerProxy: ComptrollerLib;
12
+ vaultProxy: VaultLib;
13
+ integrationManager: IntegrationManager;
14
+ fundOwner: SignerWithAddress;
15
+ uniswapV2Adapter: UniswapV2Adapter;
16
+ tokenA: StandardToken;
17
+ tokenB: StandardToken;
18
+ amountADesired: BigNumberish;
19
+ amountBDesired: BigNumberish;
20
+ amountAMin: BigNumberish;
21
+ amountBMin: BigNumberish;
22
+ minPoolTokenAmount: BigNumberish;
23
+ seedFund?: boolean;
24
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
25
+ export declare function uniswapV2Redeem({ comptrollerProxy, integrationManager, fundOwner, uniswapV2Adapter, poolTokenAmount, tokenA, tokenB, amountAMin, amountBMin, }: {
26
+ comptrollerProxy: ComptrollerLib;
27
+ integrationManager: IntegrationManager;
28
+ fundOwner: SignerWithAddress;
29
+ uniswapV2Adapter: UniswapV2Adapter;
30
+ poolTokenAmount: BigNumberish;
31
+ tokenA: AddressLike;
32
+ tokenB: AddressLike;
33
+ amountAMin: BigNumberish;
34
+ amountBMin: BigNumberish;
35
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
36
+ export declare function uniswapV2TakeOrder({ comptrollerProxy, vaultProxy, integrationManager, fundOwner, uniswapV2Adapter, path, outgoingAssetAmount, minIncomingAssetAmount, seedFund, }: {
37
+ comptrollerProxy: ComptrollerLib;
38
+ vaultProxy: VaultLib;
39
+ integrationManager: IntegrationManager;
40
+ fundOwner: SignerWithAddress;
41
+ uniswapV2Adapter: UniswapV2Adapter;
42
+ path: StandardToken[];
43
+ outgoingAssetAmount: BigNumberish;
44
+ minIncomingAssetAmount: BigNumberish;
45
+ seedFund?: boolean;
46
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
@@ -0,0 +1,15 @@
1
+ import { AddressLike } from '@enzymefinance/ethers';
2
+ import { SignerWithAddress } from '@enzymefinance/hardhat';
3
+ import { ComptrollerLib, IntegrationManager, StandardToken } from '@enzymefinance/protocol';
4
+ import { BigNumber, BigNumberish } from 'ethers';
5
+ export declare function uniswapV3TakeOrder({ comptrollerProxy, integrationManager, fundOwner, uniswapV3Adapter, pathAddresses, pathFees, outgoingAssetAmount, minIncomingAssetAmount, seedFund, }: {
6
+ comptrollerProxy: ComptrollerLib;
7
+ integrationManager: IntegrationManager;
8
+ fundOwner: SignerWithAddress;
9
+ uniswapV3Adapter: AddressLike;
10
+ pathAddresses: StandardToken[];
11
+ pathFees: BigNumber[];
12
+ outgoingAssetAmount: BigNumberish;
13
+ minIncomingAssetAmount?: BigNumberish;
14
+ seedFund?: boolean;
15
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
@@ -0,0 +1,22 @@
1
+ import { SignerWithAddress } from '@enzymefinance/hardhat';
2
+ import { ComptrollerLib, IntegrationManager, StandardToken, YearnVaultV2Adapter } from '@enzymefinance/protocol';
3
+ import { BigNumberish } from 'ethers';
4
+ export declare function yearnVaultV2Lend({ signer, comptrollerProxy, integrationManager, yearnVaultV2Adapter, yVault, outgoingUnderlyingAmount, minIncomingYVaultSharesAmount, }: {
5
+ signer: SignerWithAddress;
6
+ comptrollerProxy: ComptrollerLib;
7
+ integrationManager: IntegrationManager;
8
+ yearnVaultV2Adapter: YearnVaultV2Adapter;
9
+ yVault: StandardToken;
10
+ outgoingUnderlyingAmount: BigNumberish;
11
+ minIncomingYVaultSharesAmount?: BigNumberish;
12
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: import("@enzymefinance/ethers").AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
13
+ export declare function yearnVaultV2Redeem({ signer, comptrollerProxy, integrationManager, yearnVaultV2Adapter, yVault, maxOutgoingYVaultSharesAmount, minIncomingUnderlyingAmount, slippageToleranceBps, }: {
14
+ signer: SignerWithAddress;
15
+ comptrollerProxy: ComptrollerLib;
16
+ integrationManager: IntegrationManager;
17
+ yearnVaultV2Adapter: YearnVaultV2Adapter;
18
+ yVault: StandardToken;
19
+ maxOutgoingYVaultSharesAmount: BigNumberish;
20
+ minIncomingUnderlyingAmount?: BigNumberish;
21
+ slippageToleranceBps?: BigNumberish;
22
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: import("@enzymefinance/ethers").AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
@@ -0,0 +1,12 @@
1
+ import { SignerWithAddress } from '@enzymefinance/hardhat';
2
+ import { ComptrollerLib, IntegrationManager, ZeroExV2Adapter, VaultLib, SignedZeroExV2Order } from '@enzymefinance/protocol';
3
+ import { BigNumberish } from 'ethers';
4
+ export declare function zeroExV2TakeOrder({ comptrollerProxy, integrationManager, fundOwner, zeroExV2Adapter, signedOrder, takerAssetFillAmount, }: {
5
+ comptrollerProxy: ComptrollerLib;
6
+ vaultProxy: VaultLib;
7
+ integrationManager: IntegrationManager;
8
+ fundOwner: SignerWithAddress;
9
+ zeroExV2Adapter: ZeroExV2Adapter;
10
+ signedOrder: SignedZeroExV2Order;
11
+ takerAssetFillAmount: BigNumberish;
12
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_extension: import("@enzymefinance/ethers").AddressLike, _actionId: BigNumberish, _callArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
@@ -0,0 +1,15 @@
1
+ import { IPolicy, PolicyManager } from '@enzymefinance/protocol';
2
+ import { Signer } from 'ethers';
3
+ export declare function generatePolicyManagerConfigWithMockPolicies({ deployer, policyManager, }: {
4
+ deployer: Signer;
5
+ policyManager: PolicyManager;
6
+ }): Promise<string>;
7
+ export declare function generateRegisteredMockPolicies({ deployer, policyManager, }: {
8
+ deployer: Signer;
9
+ policyManager: PolicyManager;
10
+ }): Promise<{
11
+ mockPreBuySharesPolicy: import("@enzymefinance/ethers").MockContract<IPolicy>;
12
+ mockPostBuySharesPolicy: import("@enzymefinance/ethers").MockContract<IPolicy>;
13
+ mockPreCoIPolicy: import("@enzymefinance/ethers").MockContract<IPolicy>;
14
+ mockPostCoIPolicy: import("@enzymefinance/ethers").MockContract<IPolicy>;
15
+ }>;
@@ -0,0 +1,9 @@
1
+ export * from './assets';
2
+ export * from './chainlink';
3
+ export * from './common';
4
+ export * from './core';
5
+ export * from './extensions';
6
+ export * from './peripheral';
7
+ export * from './setup';
8
+ export * from './shares';
9
+ export * from './vaultCalls';
@@ -0,0 +1 @@
1
+ export * from './sharesRequestors';
@@ -0,0 +1,19 @@
1
+ import { AddressLike } from '@enzymefinance/ethers';
2
+ import { SignerWithAddress } from '@enzymefinance/hardhat';
3
+ import { AuthUserExecutedSharesRequestorFactory, AuthUserExecutedSharesRequestorLib, StandardToken } from '@enzymefinance/protocol';
4
+ import { BigNumberish } from 'ethers';
5
+ export declare function createAuthUserExecutedSharesRequestorProxy({ signer, authUserExecutedSharesRequestorFactory, comptrollerProxy, }: {
6
+ signer: SignerWithAddress;
7
+ authUserExecutedSharesRequestorFactory: AuthUserExecutedSharesRequestorFactory;
8
+ comptrollerProxy: AddressLike;
9
+ }): Promise<{
10
+ authUserExecutedSharesRequestorProxy: AuthUserExecutedSharesRequestorLib;
11
+ receipt: import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_comptrollerProxy: AddressLike], string, AuthUserExecutedSharesRequestorFactory>>;
12
+ }>;
13
+ export declare function createAuthUserExecutedSharesRequest({ buyer, authUserExecutedSharesRequestorProxy, denominationAsset, investmentAmount, minSharesQuantity, }: {
14
+ buyer: SignerWithAddress;
15
+ authUserExecutedSharesRequestorProxy: AuthUserExecutedSharesRequestorLib;
16
+ denominationAsset: StandardToken;
17
+ investmentAmount?: BigNumberish;
18
+ minSharesQuantity?: BigNumberish;
19
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_investmentAmount: BigNumberish, _minSharesQuantity: BigNumberish], void, AuthUserExecutedSharesRequestorLib>>>;
@@ -0,0 +1,46 @@
1
+ import { AddressLike } from '@enzymefinance/ethers';
2
+ import { SignerWithAddress } from '@enzymefinance/hardhat';
3
+ import { ComptrollerLib, ComptrollerProxy, FundDeployer, VaultLib } from '@enzymefinance/protocol';
4
+ import { BigNumberish, BytesLike } from 'ethers';
5
+ import { BuySharesParams, DenominationAssetInterface } from './shares';
6
+ export declare type InitialInvestmentParams = Omit<BuySharesParams, 'comptrollerProxy' | 'denominationAsset'>;
7
+ export interface CreateMigratedFundConfigParams {
8
+ signer: SignerWithAddress;
9
+ fundDeployer: FundDeployer;
10
+ denominationAsset: DenominationAssetInterface;
11
+ sharesActionTimelock?: BigNumberish;
12
+ feeManagerConfigData?: BytesLike;
13
+ policyManagerConfigData?: BytesLike;
14
+ }
15
+ export interface CreateNewFundParams {
16
+ signer: SignerWithAddress;
17
+ fundDeployer: FundDeployer;
18
+ denominationAsset: DenominationAssetInterface;
19
+ sharesActionTimelock?: BigNumberish;
20
+ fundOwner?: AddressLike;
21
+ fundName?: string;
22
+ feeManagerConfig?: BytesLike;
23
+ policyManagerConfig?: BytesLike;
24
+ investment?: InitialInvestmentParams;
25
+ }
26
+ export declare function createComptrollerProxy({ signer, comptrollerLib, denominationAsset, sharesActionTimelock, }: {
27
+ signer: SignerWithAddress;
28
+ comptrollerLib: ComptrollerLib;
29
+ denominationAsset: AddressLike;
30
+ sharesActionTimelock?: BigNumberish;
31
+ }): Promise<{
32
+ comptrollerProxy: ComptrollerLib;
33
+ receipt: import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").ConstructorFunction<any, ComptrollerProxy>>;
34
+ }>;
35
+ export declare function createMigratedFundConfig({ signer, fundDeployer, denominationAsset, sharesActionTimelock, feeManagerConfigData, policyManagerConfigData, }: CreateMigratedFundConfigParams): Promise<{
36
+ receipt: import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_denominationAsset: AddressLike, _sharesActionTimelock: BigNumberish, _feeManagerConfigData: BytesLike, _policyManagerConfigData: BytesLike], string, FundDeployer>>;
37
+ comptrollerProxy: ComptrollerLib;
38
+ }>;
39
+ export declare function createNewFund({ signer, fundDeployer, denominationAsset, sharesActionTimelock, fundOwner, fundName, feeManagerConfig, policyManagerConfig, investment, }: CreateNewFundParams): Promise<{
40
+ comptrollerProxy: ComptrollerLib;
41
+ receipt: import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_fundOwner: AddressLike, _fundName: string, _denominationAsset: AddressLike, _sharesActionTimelock: BigNumberish, _feeManagerConfigData: BytesLike, _policyManagerConfigData: BytesLike], {
42
+ comptrollerProxy_: string;
43
+ vaultProxy_: string;
44
+ }, FundDeployer>>;
45
+ vaultProxy: VaultLib;
46
+ }>;
@@ -0,0 +1,30 @@
1
+ import { AddressLike, Contract, Send } from '@enzymefinance/ethers';
2
+ import { SignerWithAddress } from '@enzymefinance/hardhat';
3
+ import { ComptrollerLib } from '@enzymefinance/protocol';
4
+ import { BigNumber, BigNumberish } from 'ethers';
5
+ export interface DenominationAssetInterface extends Contract<any> {
6
+ approve: Send<(spender: AddressLike, amount: BigNumberish) => boolean, any>;
7
+ }
8
+ export interface BuySharesParams {
9
+ comptrollerProxy: ComptrollerLib;
10
+ signer: SignerWithAddress;
11
+ buyers: AddressLike[];
12
+ denominationAsset: DenominationAssetInterface;
13
+ investmentAmounts?: BigNumberish[];
14
+ minSharesAmounts?: BigNumberish[];
15
+ }
16
+ export interface RedeemSharesParams {
17
+ comptrollerProxy: ComptrollerLib;
18
+ signer: SignerWithAddress;
19
+ quantity?: BigNumberish;
20
+ additionalAssets?: AddressLike[];
21
+ assetsToSkip?: AddressLike[];
22
+ }
23
+ export declare function buyShares({ comptrollerProxy, signer, buyers, denominationAsset, investmentAmounts, minSharesAmounts, }: BuySharesParams): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_buyers: AddressLike[], _investmentAmounts: BigNumberish[], _minSharesQuantities: BigNumberish[]], BigNumber[], ComptrollerLib>>>;
24
+ export declare function redeemShares({ comptrollerProxy, signer, quantity, additionalAssets, assetsToSkip, }: RedeemSharesParams): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[], {
25
+ payoutAssets_: string[];
26
+ payoutAmounts_: BigNumber[];
27
+ }, ComptrollerLib>> | import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_sharesQuantity: BigNumberish, _additionalAssets: AddressLike[], _assetsToSkip: AddressLike[]], {
28
+ payoutAssets_: string[];
29
+ payoutAmounts_: BigNumber[];
30
+ }, ComptrollerLib>>>;
@@ -0,0 +1,17 @@
1
+ import { AddressLike } from '@enzymefinance/ethers';
2
+ import { ComptrollerLib } from '@enzymefinance/protocol';
3
+ export declare function vaultCallCurveMinterMint({ comptrollerProxy, minter, gauge, }: {
4
+ comptrollerProxy: ComptrollerLib;
5
+ minter: AddressLike;
6
+ gauge: AddressLike;
7
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_contract: AddressLike, _selector: import("ethers").BytesLike, _encodedArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
8
+ export declare function vaultCallCurveMinterMintMany({ comptrollerProxy, minter, gauges, }: {
9
+ comptrollerProxy: ComptrollerLib;
10
+ minter: AddressLike;
11
+ gauges: AddressLike[];
12
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_contract: AddressLike, _selector: import("ethers").BytesLike, _encodedArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;
13
+ export declare function vaultCallCurveMinterToggleApproveMint({ comptrollerProxy, minter, account, }: {
14
+ comptrollerProxy: ComptrollerLib;
15
+ minter: AddressLike;
16
+ account: AddressLike;
17
+ }): Promise<import("@enzymefinance/ethers").ContractReceipt<import("@enzymefinance/ethers").SendFunction<[_contract: AddressLike, _selector: import("ethers").BytesLike, _encodedArgs: import("ethers").BytesLike], void, ComptrollerLib>>>;