@enzymefinance/testutils 4.0.0 → 4.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. package/dist/index.d.ts +1548 -0
  2. package/dist/index.js +3352 -0
  3. package/dist/index.mjs +3352 -0
  4. package/package.json +74 -11
  5. package/CHANGELOG.md +0 -84
  6. package/dist/declarations/src/assertions.d.ts +0 -4
  7. package/dist/declarations/src/deployment.d.ts +0 -188
  8. package/dist/declarations/src/gasRelayer.d.ts +0 -56
  9. package/dist/declarations/src/helpers.d.ts +0 -16
  10. package/dist/declarations/src/index.d.ts +0 -6
  11. package/dist/declarations/src/scaffolding/assets.d.ts +0 -10
  12. package/dist/declarations/src/scaffolding/chainlink.d.ts +0 -3
  13. package/dist/declarations/src/scaffolding/common.d.ts +0 -7
  14. package/dist/declarations/src/scaffolding/core.d.ts +0 -16
  15. package/dist/declarations/src/scaffolding/extensions/common.d.ts +0 -11
  16. package/dist/declarations/src/scaffolding/extensions/external-positions/aave-debt.d.ts +0 -51
  17. package/dist/declarations/src/scaffolding/extensions/external-positions/actions.d.ts +0 -36
  18. package/dist/declarations/src/scaffolding/extensions/external-positions/compound.d.ts +0 -56
  19. package/dist/declarations/src/scaffolding/extensions/external-positions/index.d.ts +0 -5
  20. package/dist/declarations/src/scaffolding/extensions/external-positions/mocks.d.ts +0 -56
  21. package/dist/declarations/src/scaffolding/extensions/external-positions/uniswap-v3-liquidity.d.ts +0 -100
  22. package/dist/declarations/src/scaffolding/extensions/fees.d.ts +0 -12
  23. package/dist/declarations/src/scaffolding/extensions/index.d.ts +0 -5
  24. package/dist/declarations/src/scaffolding/extensions/integrations/aave.d.ts +0 -20
  25. package/dist/declarations/src/scaffolding/extensions/integrations/compound.d.ts +0 -56
  26. package/dist/declarations/src/scaffolding/extensions/integrations/curve.d.ts +0 -106
  27. package/dist/declarations/src/scaffolding/extensions/integrations/idle.d.ts +0 -28
  28. package/dist/declarations/src/scaffolding/extensions/integrations/index.d.ts +0 -14
  29. package/dist/declarations/src/scaffolding/extensions/integrations/mock.d.ts +0 -32
  30. package/dist/declarations/src/scaffolding/extensions/integrations/olympusV2.d.ts +0 -17
  31. package/dist/declarations/src/scaffolding/extensions/integrations/paraSwapV5.d.ts +0 -23
  32. package/dist/declarations/src/scaffolding/extensions/integrations/poolTogetherV4.d.ts +0 -29
  33. package/dist/declarations/src/scaffolding/extensions/integrations/synthetix.d.ts +0 -28
  34. package/dist/declarations/src/scaffolding/extensions/integrations/trackedAssets.d.ts +0 -15
  35. package/dist/declarations/src/scaffolding/extensions/integrations/uniswapV2.d.ts +0 -46
  36. package/dist/declarations/src/scaffolding/extensions/integrations/uniswapV3.d.ts +0 -15
  37. package/dist/declarations/src/scaffolding/extensions/integrations/yearn.d.ts +0 -22
  38. package/dist/declarations/src/scaffolding/extensions/integrations/zeroExV2.d.ts +0 -12
  39. package/dist/declarations/src/scaffolding/extensions/policies.d.ts +0 -17
  40. package/dist/declarations/src/scaffolding/index.d.ts +0 -8
  41. package/dist/declarations/src/scaffolding/setup.d.ts +0 -77
  42. package/dist/declarations/src/scaffolding/shares.d.ts +0 -35
  43. package/dist/declarations/src/scaffolding/vaultCalls.d.ts +0 -32
  44. package/dist/declarations/src/whales.d.ts +0 -49
  45. package/dist/enzymefinance-testutils.browser.cjs.js +0 -4158
  46. package/dist/enzymefinance-testutils.browser.esm.js +0 -4028
  47. package/dist/enzymefinance-testutils.cjs.d.ts +0 -1
  48. package/dist/enzymefinance-testutils.cjs.dev.js +0 -4158
  49. package/dist/enzymefinance-testutils.cjs.js +0 -7
  50. package/dist/enzymefinance-testutils.cjs.prod.js +0 -4158
  51. package/dist/enzymefinance-testutils.esm.js +0 -4028
  52. package/src/assertions.ts +0 -23
  53. package/src/deployment.ts +0 -280
  54. package/src/gasRelayer.ts +0 -95
  55. package/src/helpers.ts +0 -39
  56. package/src/index.ts +0 -6
  57. package/src/scaffolding/assets.ts +0 -37
  58. package/src/scaffolding/chainlink.ts +0 -8
  59. package/src/scaffolding/common.ts +0 -11
  60. package/src/scaffolding/core.ts +0 -103
  61. package/src/scaffolding/extensions/common.ts +0 -30
  62. package/src/scaffolding/extensions/external-positions/aave-debt.ts +0 -179
  63. package/src/scaffolding/extensions/external-positions/actions.ts +0 -108
  64. package/src/scaffolding/extensions/external-positions/compound.ts +0 -190
  65. package/src/scaffolding/extensions/external-positions/index.ts +0 -5
  66. package/src/scaffolding/extensions/external-positions/mocks.ts +0 -191
  67. package/src/scaffolding/extensions/external-positions/uniswap-v3-liquidity.ts +0 -284
  68. package/src/scaffolding/extensions/fees.ts +0 -70
  69. package/src/scaffolding/extensions/index.ts +0 -5
  70. package/src/scaffolding/extensions/integrations/aave.ts +0 -78
  71. package/src/scaffolding/extensions/integrations/compound.ts +0 -255
  72. package/src/scaffolding/extensions/integrations/curve.ts +0 -354
  73. package/src/scaffolding/extensions/integrations/idle.ts +0 -104
  74. package/src/scaffolding/extensions/integrations/index.ts +0 -14
  75. package/src/scaffolding/extensions/integrations/mock.ts +0 -116
  76. package/src/scaffolding/extensions/integrations/olympusV2.ts +0 -71
  77. package/src/scaffolding/extensions/integrations/paraSwapV5.ts +0 -73
  78. package/src/scaffolding/extensions/integrations/poolTogetherV4.ts +0 -117
  79. package/src/scaffolding/extensions/integrations/synthetix.ts +0 -111
  80. package/src/scaffolding/extensions/integrations/trackedAssets.ts +0 -48
  81. package/src/scaffolding/extensions/integrations/uniswapV2.ts +0 -175
  82. package/src/scaffolding/extensions/integrations/uniswapV3.ts +0 -55
  83. package/src/scaffolding/extensions/integrations/yearn.ts +0 -79
  84. package/src/scaffolding/extensions/integrations/zeroExV2.ts +0 -47
  85. package/src/scaffolding/extensions/policies.ts +0 -112
  86. package/src/scaffolding/index.ts +0 -8
  87. package/src/scaffolding/setup.ts +0 -243
  88. package/src/scaffolding/shares.ts +0 -80
  89. package/src/scaffolding/vaultCalls.ts +0 -105
  90. package/src/types.d.ts +0 -2
  91. package/src/whales.ts +0 -82
  92. package/tsconfig.json +0 -5
@@ -1,73 +0,0 @@
1
- import type { AddressLike } from '@enzymefinance/ethers';
2
- import type { SignerWithAddress } from '@enzymefinance/hardhat';
3
- import type {
4
- ComptrollerLib,
5
- IntegrationManager,
6
- ParaSwapV5Adapter,
7
- ParaSwapV5Path,
8
- StandardToken,
9
- } from '@enzymefinance/protocol';
10
- import {
11
- callOnIntegrationArgs,
12
- IntegrationManagerActionId,
13
- paraSwapV5TakeOrderArgs,
14
- takeOrderSelector,
15
- } from '@enzymefinance/protocol';
16
- import type { BigNumberish, BytesLike } from 'ethers';
17
- import { utils } from 'ethers';
18
-
19
- // ParaSwapV5Path
20
- export function paraSwapV5GenerateDummyPaths({ toTokens }: { toTokens: AddressLike[] }) {
21
- return toTokens.map((toToken) => {
22
- return {
23
- // Not supported in our protocol
24
- adapters: [],
25
-
26
- to: toToken,
27
- totalNetworkFee: 0, // Can ignore this param in the dummy
28
- };
29
- });
30
- }
31
-
32
- export async function paraSwapV5TakeOrder({
33
- comptrollerProxy,
34
- integrationManager,
35
- fundOwner,
36
- paraSwapV5Adapter,
37
- outgoingAsset,
38
- outgoingAssetAmount,
39
- minIncomingAssetAmount = 1,
40
- expectedIncomingAssetAmount = minIncomingAssetAmount,
41
- uuid = utils.randomBytes(16),
42
- paths,
43
- }: {
44
- comptrollerProxy: ComptrollerLib;
45
- integrationManager: IntegrationManager;
46
- fundOwner: SignerWithAddress;
47
- paraSwapV5Adapter: ParaSwapV5Adapter;
48
- outgoingAsset: StandardToken;
49
- outgoingAssetAmount: BigNumberish;
50
- minIncomingAssetAmount?: BigNumberish;
51
- expectedIncomingAssetAmount?: BigNumberish;
52
- uuid?: BytesLike;
53
- paths: ParaSwapV5Path[];
54
- }) {
55
- const takeOrderArgs = paraSwapV5TakeOrderArgs({
56
- expectedIncomingAssetAmount,
57
- minIncomingAssetAmount,
58
- outgoingAsset,
59
- outgoingAssetAmount,
60
- paths,
61
- uuid,
62
- });
63
-
64
- const callArgs = callOnIntegrationArgs({
65
- adapter: paraSwapV5Adapter,
66
- encodedCallArgs: takeOrderArgs,
67
- selector: takeOrderSelector,
68
- });
69
-
70
- return comptrollerProxy
71
- .connect(fundOwner)
72
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
73
- }
@@ -1,117 +0,0 @@
1
- import type { AddressLike } from '@enzymefinance/ethers';
2
- import type { SignerWithAddress } from '@enzymefinance/hardhat';
3
- import type { ComptrollerLib, IntegrationManager, PoolTogetherV4Adapter, StandardToken } from '@enzymefinance/protocol';
4
- import {
5
- callOnIntegrationArgs,
6
- claimRewardsSelector,
7
- IntegrationManagerActionId,
8
- lendSelector,
9
- poolTogetherV4ClaimRewardsArgs,
10
- poolTogetherV4LendArgs,
11
- poolTogetherV4RedeemArgs,
12
- redeemSelector,
13
- } from '@enzymefinance/protocol';
14
- import type { BigNumberish, BytesLike } from 'ethers';
15
- import { utils } from 'ethers';
16
-
17
- export async function poolTogetherV4Lend({
18
- comptrollerProxy,
19
- integrationManager,
20
- fundOwner,
21
- poolTogetherV4Adapter,
22
- ptToken,
23
- amount = utils.parseEther('1'),
24
- }: {
25
- comptrollerProxy: ComptrollerLib;
26
- integrationManager: IntegrationManager;
27
- fundOwner: SignerWithAddress;
28
- poolTogetherV4Adapter: PoolTogetherV4Adapter;
29
- ptToken: StandardToken;
30
- amount?: BigNumberish;
31
- }) {
32
- const lendArgs = poolTogetherV4LendArgs({
33
- amount,
34
- ptToken,
35
- });
36
-
37
- const callArgs = callOnIntegrationArgs({
38
- adapter: poolTogetherV4Adapter,
39
- encodedCallArgs: lendArgs,
40
- selector: lendSelector,
41
- });
42
-
43
- const lendTx = comptrollerProxy
44
- .connect(fundOwner)
45
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
46
-
47
- return lendTx;
48
- }
49
-
50
- export async function poolTogetherV4Redeem({
51
- comptrollerProxy,
52
- integrationManager,
53
- fundOwner,
54
- poolTogetherV4Adapter,
55
- ptToken,
56
- amount = utils.parseEther('1'),
57
- }: {
58
- comptrollerProxy: ComptrollerLib;
59
- integrationManager: IntegrationManager;
60
- fundOwner: SignerWithAddress;
61
- poolTogetherV4Adapter: PoolTogetherV4Adapter;
62
- ptToken: StandardToken;
63
- amount?: BigNumberish;
64
- }) {
65
- const redeemArgs = poolTogetherV4RedeemArgs({
66
- amount,
67
- ptToken,
68
- });
69
-
70
- const callArgs = callOnIntegrationArgs({
71
- adapter: poolTogetherV4Adapter,
72
- encodedCallArgs: redeemArgs,
73
- selector: redeemSelector,
74
- });
75
-
76
- const redeemTx = comptrollerProxy
77
- .connect(fundOwner)
78
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
79
-
80
- return redeemTx;
81
- }
82
-
83
- export async function poolTogetherV4ClaimRewards({
84
- comptrollerProxy,
85
- integrationManager,
86
- fundOwner,
87
- poolTogetherV4Adapter,
88
- prizeDistributor,
89
- drawIds,
90
- winningPicks,
91
- }: {
92
- comptrollerProxy: ComptrollerLib;
93
- integrationManager: IntegrationManager;
94
- fundOwner: SignerWithAddress;
95
- poolTogetherV4Adapter: PoolTogetherV4Adapter;
96
- prizeDistributor: AddressLike;
97
- drawIds: BigNumberish[];
98
- winningPicks: BytesLike;
99
- }) {
100
- const claimRewardsArgs = poolTogetherV4ClaimRewardsArgs({
101
- drawIds,
102
- prizeDistributor,
103
- winningPicks,
104
- });
105
-
106
- const callArgs = callOnIntegrationArgs({
107
- adapter: poolTogetherV4Adapter,
108
- encodedCallArgs: claimRewardsArgs,
109
- selector: claimRewardsSelector,
110
- });
111
-
112
- const claimTx = comptrollerProxy
113
- .connect(fundOwner)
114
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
115
-
116
- return claimTx;
117
- }
@@ -1,111 +0,0 @@
1
- import type { AddressLike } from '@enzymefinance/ethers';
2
- import type {
3
- ComptrollerLib,
4
- IntegrationManager,
5
- StandardToken,
6
- SynthetixAdapter,
7
- VaultLib,
8
- } from '@enzymefinance/protocol';
9
- import {
10
- callOnIntegrationArgs,
11
- encodeArgs,
12
- IntegrationManagerActionId,
13
- redeemSelector,
14
- synthetixAssignExchangeDelegateSelector,
15
- synthetixRedeemArgs,
16
- synthetixTakeOrderArgs,
17
- takeOrderSelector,
18
- } from '@enzymefinance/protocol';
19
- import type { BigNumberish, Signer } from 'ethers';
20
- import { utils } from 'ethers';
21
-
22
- export async function synthetixAssignExchangeDelegate({
23
- comptrollerProxy,
24
- synthetixDelegateApprovals,
25
- fundOwner,
26
- delegate,
27
- }: {
28
- comptrollerProxy: ComptrollerLib;
29
- synthetixDelegateApprovals: AddressLike;
30
- fundOwner: Signer;
31
- delegate: AddressLike;
32
- }) {
33
- await comptrollerProxy
34
- .connect(fundOwner)
35
- .vaultCallOnContract(
36
- synthetixDelegateApprovals,
37
- synthetixAssignExchangeDelegateSelector,
38
- encodeArgs(['address'], [delegate]),
39
- );
40
- }
41
-
42
- export async function synthetixRedeem({
43
- comptrollerProxy,
44
- integrationManager,
45
- signer,
46
- synthetixAdapter,
47
- synths,
48
- }: {
49
- comptrollerProxy: ComptrollerLib;
50
- integrationManager: IntegrationManager;
51
- signer: Signer;
52
- synthetixAdapter: SynthetixAdapter;
53
- synths: AddressLike[];
54
- }) {
55
- const redeemArgs = synthetixRedeemArgs({
56
- synths,
57
- });
58
-
59
- const callArgs = callOnIntegrationArgs({
60
- adapter: synthetixAdapter,
61
- encodedCallArgs: redeemArgs,
62
- selector: redeemSelector,
63
- });
64
-
65
- return comptrollerProxy
66
- .connect(signer)
67
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
68
- }
69
-
70
- export async function synthetixTakeOrder({
71
- comptrollerProxy,
72
- vaultProxy,
73
- integrationManager,
74
- fundOwner,
75
- synthetixAdapter,
76
- outgoingAsset,
77
- outgoingAssetAmount = utils.parseEther('1'),
78
- minIncomingSusdAmount = utils.parseEther('1'),
79
- seedFund = false,
80
- }: {
81
- comptrollerProxy: ComptrollerLib;
82
- vaultProxy: VaultLib;
83
- integrationManager: IntegrationManager;
84
- fundOwner: Signer;
85
- synthetixAdapter: SynthetixAdapter;
86
- outgoingAsset: StandardToken;
87
- outgoingAssetAmount?: BigNumberish;
88
- minIncomingSusdAmount?: BigNumberish;
89
- seedFund?: boolean;
90
- }) {
91
- if (seedFund) {
92
- // Seed the VaultProxy with enough outgoingAsset for the tx
93
- await outgoingAsset.transfer(vaultProxy, outgoingAssetAmount);
94
- }
95
-
96
- const takeOrderArgs = synthetixTakeOrderArgs({
97
- minIncomingSusdAmount,
98
- outgoingAsset,
99
- outgoingAssetAmount,
100
- });
101
-
102
- const callArgs = await callOnIntegrationArgs({
103
- adapter: synthetixAdapter,
104
- encodedCallArgs: takeOrderArgs,
105
- selector: takeOrderSelector,
106
- });
107
-
108
- return comptrollerProxy
109
- .connect(fundOwner)
110
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
111
- }
@@ -1,48 +0,0 @@
1
- import type { AddressLike } from '@enzymefinance/ethers';
2
- import type { SignerWithAddress } from '@enzymefinance/hardhat';
3
- import type { ComptrollerLib, IntegrationManager } from '@enzymefinance/protocol';
4
- import {
5
- addTrackedAssetsToVaultArgs,
6
- IntegrationManagerActionId,
7
- removeTrackedAssetsFromVaultArgs,
8
- } from '@enzymefinance/protocol';
9
-
10
- export function addTrackedAssetsToVault({
11
- signer,
12
- comptrollerProxy,
13
- integrationManager,
14
- assets,
15
- }: {
16
- signer: SignerWithAddress;
17
- comptrollerProxy: ComptrollerLib;
18
- integrationManager: IntegrationManager;
19
- assets: AddressLike[];
20
- }) {
21
- return comptrollerProxy
22
- .connect(signer)
23
- .callOnExtension(
24
- integrationManager,
25
- IntegrationManagerActionId.AddTrackedAssetsToVault,
26
- addTrackedAssetsToVaultArgs({ assets }),
27
- );
28
- }
29
-
30
- export function removeTrackedAssetsFromVault({
31
- signer,
32
- comptrollerProxy,
33
- integrationManager,
34
- assets,
35
- }: {
36
- signer: SignerWithAddress;
37
- comptrollerProxy: ComptrollerLib;
38
- integrationManager: IntegrationManager;
39
- assets: AddressLike[];
40
- }) {
41
- return comptrollerProxy
42
- .connect(signer)
43
- .callOnExtension(
44
- integrationManager,
45
- IntegrationManagerActionId.RemoveTrackedAssetsFromVault,
46
- removeTrackedAssetsFromVaultArgs({ assets }),
47
- );
48
- }
@@ -1,175 +0,0 @@
1
- import type { AddressLike, Call, Contract, Send } from '@enzymefinance/ethers';
2
- import { contract } from '@enzymefinance/ethers';
3
- import type { SignerWithAddress } from '@enzymefinance/hardhat';
4
- import type {
5
- ComptrollerLib,
6
- IntegrationManager,
7
- StandardToken,
8
- UniswapV2ExchangeAdapter,
9
- UniswapV2LiquidityAdapter,
10
- VaultLib,
11
- } from '@enzymefinance/protocol';
12
- import {
13
- callOnIntegrationArgs,
14
- IntegrationManagerActionId,
15
- lendSelector,
16
- redeemSelector,
17
- takeOrderSelector,
18
- uniswapV2LendArgs,
19
- uniswapV2RedeemArgs,
20
- uniswapV2TakeOrderArgs,
21
- } from '@enzymefinance/protocol';
22
- import type { BigNumberish } from 'ethers';
23
-
24
- export interface UniswapV2Factory extends Contract<UniswapV2Factory> {
25
- createPair: Send<(_token0: AddressLike, _token1: AddressLike) => AddressLike>;
26
- getPair: Call<(_token0: AddressLike, _token1: AddressLike) => AddressLike>;
27
- }
28
-
29
- export const UniswapV2Factory = contract<UniswapV2Factory>()`
30
- function createPair(address,address) returns (address)
31
- function getPair(address,address) view returns (address)
32
- `;
33
-
34
- export async function uniswapV2Lend({
35
- comptrollerProxy,
36
- vaultProxy,
37
- integrationManager,
38
- fundOwner,
39
- uniswapV2LiquidityAdapter,
40
- tokenA,
41
- tokenB,
42
- amountADesired,
43
- amountBDesired,
44
- amountAMin,
45
- amountBMin,
46
- minPoolTokenAmount,
47
- seedFund = false,
48
- }: {
49
- comptrollerProxy: ComptrollerLib;
50
- vaultProxy: VaultLib;
51
- integrationManager: IntegrationManager;
52
- fundOwner: SignerWithAddress;
53
- uniswapV2LiquidityAdapter: UniswapV2LiquidityAdapter;
54
- tokenA: StandardToken;
55
- tokenB: StandardToken;
56
- amountADesired: BigNumberish;
57
- amountBDesired: BigNumberish;
58
- amountAMin: BigNumberish;
59
- amountBMin: BigNumberish;
60
- minPoolTokenAmount: BigNumberish;
61
- seedFund?: boolean;
62
- }) {
63
- if (seedFund) {
64
- // Seed the VaultProxy with enough tokenA and tokenB for the tx
65
- await tokenA.transfer(vaultProxy, amountADesired);
66
- await tokenB.transfer(vaultProxy, amountBDesired);
67
- }
68
-
69
- const lendArgs = uniswapV2LendArgs({
70
- amountADesired,
71
- amountAMin,
72
- amountBDesired,
73
- amountBMin,
74
- minPoolTokenAmount,
75
- tokenA,
76
- tokenB,
77
- });
78
-
79
- const callArgs = callOnIntegrationArgs({
80
- adapter: uniswapV2LiquidityAdapter,
81
- encodedCallArgs: lendArgs,
82
- selector: lendSelector,
83
- });
84
-
85
- const lendTx = comptrollerProxy
86
- .connect(fundOwner)
87
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
88
- await expect(lendTx).resolves.toBeReceipt();
89
-
90
- return lendTx;
91
- }
92
-
93
- export async function uniswapV2Redeem({
94
- comptrollerProxy,
95
- integrationManager,
96
- fundOwner,
97
- uniswapV2LiquidityAdapter,
98
- poolTokenAmount,
99
- tokenA,
100
- tokenB,
101
- amountAMin,
102
- amountBMin,
103
- }: {
104
- comptrollerProxy: ComptrollerLib;
105
- integrationManager: IntegrationManager;
106
- fundOwner: SignerWithAddress;
107
- uniswapV2LiquidityAdapter: UniswapV2LiquidityAdapter;
108
- poolTokenAmount: BigNumberish;
109
- tokenA: AddressLike;
110
- tokenB: AddressLike;
111
- amountAMin: BigNumberish;
112
- amountBMin: BigNumberish;
113
- }) {
114
- const redeemArgs = uniswapV2RedeemArgs({
115
- amountAMin,
116
- amountBMin,
117
- poolTokenAmount,
118
- tokenA,
119
- tokenB,
120
- });
121
- const callArgs = callOnIntegrationArgs({
122
- adapter: uniswapV2LiquidityAdapter,
123
- encodedCallArgs: redeemArgs,
124
- selector: redeemSelector,
125
- });
126
-
127
- const redeemTx = comptrollerProxy
128
- .connect(fundOwner)
129
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
130
- await expect(redeemTx).resolves.toBeReceipt();
131
-
132
- return redeemTx;
133
- }
134
-
135
- export async function uniswapV2TakeOrder({
136
- comptrollerProxy,
137
- vaultProxy,
138
- integrationManager,
139
- fundOwner,
140
- uniswapV2ExchangeAdapter,
141
- path,
142
- outgoingAssetAmount,
143
- minIncomingAssetAmount,
144
- seedFund = false,
145
- }: {
146
- comptrollerProxy: ComptrollerLib;
147
- vaultProxy: VaultLib;
148
- integrationManager: IntegrationManager;
149
- fundOwner: SignerWithAddress;
150
- uniswapV2ExchangeAdapter: UniswapV2ExchangeAdapter;
151
- path: StandardToken[];
152
- outgoingAssetAmount: BigNumberish;
153
- minIncomingAssetAmount: BigNumberish;
154
- seedFund?: boolean;
155
- }) {
156
- if (seedFund) {
157
- // Seed the VaultProxy with enough outgoingAsset for the tx
158
- await path[0].transfer(vaultProxy, outgoingAssetAmount);
159
- }
160
-
161
- const takeOrderArgs = uniswapV2TakeOrderArgs({
162
- minIncomingAssetAmount,
163
- outgoingAssetAmount,
164
- path,
165
- });
166
- const callArgs = callOnIntegrationArgs({
167
- adapter: uniswapV2ExchangeAdapter,
168
- encodedCallArgs: takeOrderArgs,
169
- selector: takeOrderSelector,
170
- });
171
-
172
- return comptrollerProxy
173
- .connect(fundOwner)
174
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
175
- }
@@ -1,55 +0,0 @@
1
- import type { AddressLike } from '@enzymefinance/ethers';
2
- import type { SignerWithAddress } from '@enzymefinance/hardhat';
3
- import type { ComptrollerLib, IntegrationManager, StandardToken } from '@enzymefinance/protocol';
4
- import {
5
- callOnIntegrationArgs,
6
- IntegrationManagerActionId,
7
- takeOrderSelector,
8
- uniswapV3TakeOrderArgs,
9
- } from '@enzymefinance/protocol';
10
- import type { BigNumber, BigNumberish } from 'ethers';
11
-
12
- export async function uniswapV3TakeOrder({
13
- comptrollerProxy,
14
- integrationManager,
15
- fundOwner,
16
- uniswapV3Adapter,
17
- pathAddresses,
18
- pathFees,
19
- outgoingAssetAmount,
20
- minIncomingAssetAmount = 1,
21
- seedFund = false,
22
- }: {
23
- comptrollerProxy: ComptrollerLib;
24
- integrationManager: IntegrationManager;
25
- fundOwner: SignerWithAddress;
26
- uniswapV3Adapter: AddressLike;
27
- pathAddresses: StandardToken[];
28
- pathFees: BigNumber[];
29
- outgoingAssetAmount: BigNumberish;
30
- minIncomingAssetAmount?: BigNumberish;
31
- seedFund?: boolean;
32
- }) {
33
- if (seedFund) {
34
- // Seed the VaultProxy with enough outgoingAsset for the tx
35
- const vaultProxy = await comptrollerProxy.getVaultProxy();
36
- await pathAddresses[0].transfer(vaultProxy, outgoingAssetAmount);
37
- }
38
-
39
- const takeOrderArgs = uniswapV3TakeOrderArgs({
40
- minIncomingAssetAmount,
41
- outgoingAssetAmount,
42
- pathAddresses,
43
- pathFees,
44
- });
45
-
46
- const callArgs = callOnIntegrationArgs({
47
- adapter: uniswapV3Adapter,
48
- encodedCallArgs: takeOrderArgs,
49
- selector: takeOrderSelector,
50
- });
51
-
52
- return comptrollerProxy
53
- .connect(fundOwner)
54
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
55
- }
@@ -1,79 +0,0 @@
1
- import type { SignerWithAddress } from '@enzymefinance/hardhat';
2
- import type { ComptrollerLib, IntegrationManager, StandardToken, YearnVaultV2Adapter } from '@enzymefinance/protocol';
3
- import {
4
- callOnIntegrationArgs,
5
- IntegrationManagerActionId,
6
- lendSelector,
7
- redeemSelector,
8
- yearnVaultV2LendArgs,
9
- yearnVaultV2RedeemArgs,
10
- } from '@enzymefinance/protocol';
11
- import type { BigNumberish } from 'ethers';
12
- import { BigNumber } from 'ethers';
13
-
14
- export async function yearnVaultV2Lend({
15
- signer,
16
- comptrollerProxy,
17
- integrationManager,
18
- yearnVaultV2Adapter,
19
- yVault,
20
- outgoingUnderlyingAmount,
21
- minIncomingYVaultSharesAmount = BigNumber.from(1),
22
- }: {
23
- signer: SignerWithAddress;
24
- comptrollerProxy: ComptrollerLib;
25
- integrationManager: IntegrationManager;
26
- yearnVaultV2Adapter: YearnVaultV2Adapter;
27
- yVault: StandardToken;
28
- outgoingUnderlyingAmount: BigNumberish;
29
- minIncomingYVaultSharesAmount?: BigNumberish;
30
- }) {
31
- const callArgs = callOnIntegrationArgs({
32
- adapter: yearnVaultV2Adapter,
33
- encodedCallArgs: yearnVaultV2LendArgs({
34
- minIncomingYVaultSharesAmount,
35
- outgoingUnderlyingAmount,
36
- yVault,
37
- }),
38
- selector: lendSelector,
39
- });
40
-
41
- return comptrollerProxy
42
- .connect(signer)
43
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
44
- }
45
-
46
- export async function yearnVaultV2Redeem({
47
- signer,
48
- comptrollerProxy,
49
- integrationManager,
50
- yearnVaultV2Adapter,
51
- yVault,
52
- maxOutgoingYVaultSharesAmount,
53
- minIncomingUnderlyingAmount = BigNumber.from(1),
54
- slippageToleranceBps = 1,
55
- }: {
56
- signer: SignerWithAddress;
57
- comptrollerProxy: ComptrollerLib;
58
- integrationManager: IntegrationManager;
59
- yearnVaultV2Adapter: YearnVaultV2Adapter;
60
- yVault: StandardToken;
61
- maxOutgoingYVaultSharesAmount: BigNumberish;
62
- minIncomingUnderlyingAmount?: BigNumberish;
63
- slippageToleranceBps?: BigNumberish;
64
- }) {
65
- const callArgs = callOnIntegrationArgs({
66
- adapter: yearnVaultV2Adapter,
67
- encodedCallArgs: yearnVaultV2RedeemArgs({
68
- maxOutgoingYVaultSharesAmount,
69
- minIncomingUnderlyingAmount,
70
- slippageToleranceBps,
71
- yVault,
72
- }),
73
- selector: redeemSelector,
74
- });
75
-
76
- return comptrollerProxy
77
- .connect(signer)
78
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
79
- }
@@ -1,47 +0,0 @@
1
- import type { SignerWithAddress } from '@enzymefinance/hardhat';
2
- import type {
3
- ComptrollerLib,
4
- IntegrationManager,
5
- SignedZeroExV2Order,
6
- VaultLib,
7
- ZeroExV2Adapter,
8
- } from '@enzymefinance/protocol';
9
- import {
10
- callOnIntegrationArgs,
11
- IntegrationManagerActionId,
12
- takeOrderSelector,
13
- zeroExV2TakeOrderArgs,
14
- } from '@enzymefinance/protocol';
15
- import type { BigNumberish } from 'ethers';
16
-
17
- export async function zeroExV2TakeOrder({
18
- comptrollerProxy,
19
- integrationManager,
20
- fundOwner,
21
- zeroExV2Adapter,
22
- signedOrder,
23
- takerAssetFillAmount,
24
- }: {
25
- comptrollerProxy: ComptrollerLib;
26
- vaultProxy: VaultLib;
27
- integrationManager: IntegrationManager;
28
- fundOwner: SignerWithAddress;
29
- zeroExV2Adapter: ZeroExV2Adapter;
30
- signedOrder: SignedZeroExV2Order;
31
- takerAssetFillAmount: BigNumberish;
32
- }) {
33
- const takeOrderArgs = zeroExV2TakeOrderArgs({
34
- signedOrder,
35
- takerAssetFillAmount,
36
- });
37
-
38
- const callArgs = callOnIntegrationArgs({
39
- adapter: zeroExV2Adapter,
40
- encodedCallArgs: takeOrderArgs,
41
- selector: takeOrderSelector,
42
- });
43
-
44
- return comptrollerProxy
45
- .connect(fundOwner)
46
- .callOnExtension(integrationManager, IntegrationManagerActionId.CallOnIntegration, callArgs);
47
- }