@enzymefinance/testutils 4.0.0 → 4.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/dist/index.d.ts +1566 -0
  2. package/dist/index.js +3375 -0
  3. package/dist/index.mjs +3375 -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
- }