@enzymefinance/testutils 4.0.0 → 4.0.1

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 +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,179 +0,0 @@
1
- import type { AddressLike } from '@enzymefinance/ethers';
2
- import type { SignerWithAddress } from '@enzymefinance/hardhat';
3
- import type { ComptrollerLib, ExternalPositionManager } from '@enzymefinance/protocol';
4
- import {
5
- AaveDebtPositionActionId,
6
- aaveDebtPositionAddCollateralArgs,
7
- aaveDebtPositionBorrowArgs,
8
- aaveDebtPositionClaimRewardsArgs,
9
- aaveDebtPositionRemoveCollateralArgs,
10
- aaveDebtPositionRepayBorrowArgs,
11
- ExternalPositionType,
12
- } from '@enzymefinance/protocol';
13
- import type { BigNumberish } from 'ethers';
14
-
15
- import { callOnExternalPosition, createExternalPosition } from './actions';
16
-
17
- export async function aaveDebtPositionAddCollateral({
18
- comptrollerProxy,
19
- externalPositionManager,
20
- signer,
21
- aTokens,
22
- amounts,
23
- externalPositionProxy,
24
- }: {
25
- comptrollerProxy: ComptrollerLib;
26
- externalPositionManager: ExternalPositionManager;
27
- signer: SignerWithAddress;
28
- aTokens: AddressLike[];
29
- amounts: BigNumberish[];
30
- externalPositionProxy: AddressLike;
31
- }) {
32
- const actionArgs = aaveDebtPositionAddCollateralArgs({
33
- aTokens,
34
- amounts,
35
- });
36
-
37
- return callOnExternalPosition({
38
- actionArgs,
39
- actionId: AaveDebtPositionActionId.AddCollateralAssets,
40
- comptrollerProxy,
41
- externalPositionManager,
42
- externalPositionProxy,
43
- signer,
44
- });
45
- }
46
-
47
- export async function aaveDebtPositionBorrow({
48
- comptrollerProxy,
49
- externalPositionManager,
50
- signer,
51
- tokens,
52
- amounts,
53
- externalPositionProxy,
54
- }: {
55
- comptrollerProxy: ComptrollerLib;
56
- externalPositionManager: ExternalPositionManager;
57
- signer: SignerWithAddress;
58
- tokens: AddressLike[];
59
- amounts: BigNumberish[];
60
- externalPositionProxy: AddressLike;
61
- }) {
62
- const actionArgs = aaveDebtPositionBorrowArgs({
63
- amounts,
64
- tokens,
65
- });
66
-
67
- return callOnExternalPosition({
68
- actionArgs,
69
- actionId: AaveDebtPositionActionId.BorrowAsset,
70
- comptrollerProxy,
71
- externalPositionManager,
72
- externalPositionProxy,
73
- signer,
74
- });
75
- }
76
-
77
- export async function aaveDebtPositionClaimRewards({
78
- comptrollerProxy,
79
- externalPositionManager,
80
- signer,
81
- assets,
82
- externalPositionProxy,
83
- }: {
84
- comptrollerProxy: ComptrollerLib;
85
- externalPositionManager: ExternalPositionManager;
86
- signer: SignerWithAddress;
87
- assets: AddressLike[];
88
- externalPositionProxy: AddressLike;
89
- }) {
90
- const actionArgs = aaveDebtPositionClaimRewardsArgs({
91
- assets,
92
- });
93
-
94
- return callOnExternalPosition({
95
- actionArgs,
96
- actionId: AaveDebtPositionActionId.ClaimRewards,
97
- comptrollerProxy,
98
- externalPositionManager,
99
- externalPositionProxy,
100
- signer,
101
- });
102
- }
103
-
104
- export async function aaveDebtPositionRemoveCollateral({
105
- comptrollerProxy,
106
- externalPositionManager,
107
- signer,
108
- aTokens,
109
- amounts,
110
- externalPositionProxy,
111
- }: {
112
- comptrollerProxy: ComptrollerLib;
113
- externalPositionManager: ExternalPositionManager;
114
- signer: SignerWithAddress;
115
- aTokens: AddressLike[];
116
- amounts: BigNumberish[];
117
- externalPositionProxy: AddressLike;
118
- }) {
119
- const actionArgs = aaveDebtPositionRemoveCollateralArgs({
120
- aTokens,
121
- amounts,
122
- });
123
-
124
- return callOnExternalPosition({
125
- actionArgs,
126
- actionId: AaveDebtPositionActionId.RemoveCollateralAssets,
127
- comptrollerProxy,
128
- externalPositionManager,
129
- externalPositionProxy,
130
- signer,
131
- });
132
- }
133
-
134
- export async function aaveDebtPositionRepayBorrow({
135
- comptrollerProxy,
136
- externalPositionManager,
137
- signer,
138
- tokens,
139
- amounts,
140
- externalPositionProxy,
141
- }: {
142
- comptrollerProxy: ComptrollerLib;
143
- externalPositionManager: ExternalPositionManager;
144
- signer: SignerWithAddress;
145
- tokens: AddressLike[];
146
- amounts: BigNumberish[];
147
- externalPositionProxy: AddressLike;
148
- }) {
149
- const actionArgs = aaveDebtPositionRepayBorrowArgs({
150
- amounts,
151
- tokens,
152
- });
153
-
154
- return callOnExternalPosition({
155
- actionArgs,
156
- actionId: AaveDebtPositionActionId.RepayBorrowedAssets,
157
- comptrollerProxy,
158
- externalPositionManager,
159
- externalPositionProxy,
160
- signer,
161
- });
162
- }
163
-
164
- export async function createAaveDebtPosition({
165
- signer,
166
- comptrollerProxy,
167
- externalPositionManager,
168
- }: {
169
- signer: SignerWithAddress;
170
- comptrollerProxy: ComptrollerLib;
171
- externalPositionManager: ExternalPositionManager;
172
- }) {
173
- return createExternalPosition({
174
- comptrollerProxy,
175
- externalPositionManager,
176
- externalPositionTypeId: ExternalPositionType.AaveDebtPosition,
177
- signer,
178
- });
179
- }
@@ -1,108 +0,0 @@
1
- import type { AddressLike } from '@enzymefinance/ethers';
2
- import { extractEvent } from '@enzymefinance/ethers';
3
- import type { SignerWithAddress } from '@enzymefinance/hardhat';
4
- import type { ComptrollerLib, ExternalPositionManager } from '@enzymefinance/protocol';
5
- import {
6
- callOnExternalPositionArgs,
7
- encodeArgs,
8
- ExternalPositionManagerActionId,
9
- externalPositionReactivateArgs,
10
- externalPositionRemoveArgs,
11
- IExternalPositionProxy,
12
- } from '@enzymefinance/protocol';
13
- import type { BigNumberish, BytesLike } from 'ethers';
14
-
15
- export async function callOnExternalPosition({
16
- signer,
17
- comptrollerProxy,
18
- externalPositionManager,
19
- externalPositionProxy,
20
- actionId,
21
- actionArgs,
22
- }: {
23
- signer: SignerWithAddress;
24
- comptrollerProxy: ComptrollerLib;
25
- externalPositionManager: ExternalPositionManager;
26
- externalPositionProxy: AddressLike;
27
- actionId: BigNumberish;
28
- actionArgs: BytesLike;
29
- }) {
30
- const callArgs = callOnExternalPositionArgs({
31
- actionArgs,
32
- actionId,
33
- externalPositionProxy,
34
- });
35
-
36
- return comptrollerProxy
37
- .connect(signer)
38
- .callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CallOnExternalPosition, callArgs);
39
- }
40
-
41
- export async function createExternalPosition({
42
- signer,
43
- comptrollerProxy,
44
- externalPositionManager,
45
- externalPositionTypeId,
46
- initializationData = '0x',
47
- callOnExternalPositionData = '0x',
48
- }: {
49
- signer: SignerWithAddress;
50
- comptrollerProxy: ComptrollerLib;
51
- externalPositionManager: ExternalPositionManager;
52
- externalPositionTypeId: BigNumberish;
53
- initializationData?: BytesLike;
54
- callOnExternalPositionData?: BytesLike;
55
- }) {
56
- const receipt = await comptrollerProxy
57
- .connect(signer)
58
- .callOnExtension(
59
- externalPositionManager,
60
- ExternalPositionManagerActionId.CreateExternalPosition,
61
- encodeArgs(
62
- ['uint256', 'bytes', 'bytes'],
63
- [externalPositionTypeId, initializationData, callOnExternalPositionData],
64
- ),
65
- );
66
-
67
- const event = extractEvent(receipt, externalPositionManager.abi.getEvent('ExternalPositionDeployedForFund'));
68
-
69
- const externalPositionProxy = new IExternalPositionProxy(event[0].args.externalPosition, signer);
70
-
71
- return { externalPositionProxy, receipt };
72
- }
73
-
74
- export async function reactivateExternalPosition({
75
- signer,
76
- comptrollerProxy,
77
- externalPositionManager,
78
- externalPositionProxy,
79
- }: {
80
- signer: SignerWithAddress;
81
- comptrollerProxy: ComptrollerLib;
82
- externalPositionManager: ExternalPositionManager;
83
- externalPositionProxy: AddressLike;
84
- }) {
85
- const callArgs = externalPositionReactivateArgs({ externalPositionProxy });
86
-
87
- return comptrollerProxy
88
- .connect(signer)
89
- .callOnExtension(externalPositionManager, ExternalPositionManagerActionId.ReactivateExternalPosition, callArgs);
90
- }
91
-
92
- export async function removeExternalPosition({
93
- signer,
94
- comptrollerProxy,
95
- externalPositionManager,
96
- externalPositionProxy,
97
- }: {
98
- signer: SignerWithAddress;
99
- comptrollerProxy: ComptrollerLib;
100
- externalPositionManager: ExternalPositionManager;
101
- externalPositionProxy: AddressLike;
102
- }) {
103
- const callArgs = externalPositionRemoveArgs({ externalPositionProxy });
104
-
105
- return comptrollerProxy
106
- .connect(signer)
107
- .callOnExtension(externalPositionManager, ExternalPositionManagerActionId.RemoveExternalPosition, callArgs);
108
- }
@@ -1,190 +0,0 @@
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 {
5
- CompoundDebtPositionActionId,
6
- compoundExternalPositionActionArgs,
7
- encodeArgs,
8
- ExternalPositionType,
9
- } from '@enzymefinance/protocol';
10
- import type { BigNumberish } from 'ethers';
11
-
12
- import { callOnExternalPosition, createExternalPosition } from './actions';
13
-
14
- export async function compoundDebtPositionAddCollateral({
15
- comptrollerProxy,
16
- externalPositionManager,
17
- fundOwner,
18
- assets,
19
- amounts,
20
- externalPositionProxy,
21
- cTokens,
22
- }: {
23
- comptrollerProxy: ComptrollerLib;
24
- externalPositionManager: ExternalPositionManager;
25
- fundOwner: SignerWithAddress;
26
- assets: AddressLike[];
27
- cTokens: AddressLike[];
28
- amounts: BigNumberish[];
29
- externalPositionProxy: AddressLike;
30
- }) {
31
- const actionArgs = compoundExternalPositionActionArgs({
32
- amounts,
33
- assets,
34
- data: encodeArgs(['address[]'], [cTokens]),
35
- });
36
-
37
- return callOnExternalPosition({
38
- actionArgs,
39
- actionId: CompoundDebtPositionActionId.AddCollateralAssets,
40
- comptrollerProxy,
41
- externalPositionManager,
42
- externalPositionProxy,
43
- signer: fundOwner,
44
- });
45
- }
46
-
47
- export async function compoundDebtPositionBorrow({
48
- comptrollerProxy,
49
- externalPositionManager,
50
- fundOwner,
51
- externalPositionProxy,
52
- assets,
53
- amounts,
54
- cTokens,
55
- }: {
56
- comptrollerProxy: ComptrollerLib;
57
- vaultProxy: VaultLib;
58
- externalPositionManager: ExternalPositionManager;
59
- fundOwner: SignerWithAddress;
60
- externalPositionProxy: AddressLike;
61
- assets: AddressLike[];
62
- amounts: BigNumberish[];
63
- cTokens: AddressLike[];
64
- }) {
65
- const actionArgs = compoundExternalPositionActionArgs({
66
- amounts,
67
- assets,
68
- data: encodeArgs(['address[]'], [cTokens]),
69
- });
70
-
71
- return callOnExternalPosition({
72
- actionArgs,
73
- actionId: CompoundDebtPositionActionId.BorrowAsset,
74
- comptrollerProxy,
75
- externalPositionManager,
76
- externalPositionProxy,
77
- signer: fundOwner,
78
- });
79
- }
80
-
81
- export async function compoundDebtPositionClaimComp({
82
- comptrollerProxy,
83
- externalPositionManager,
84
- fundOwner,
85
- externalPositionProxy,
86
- }: {
87
- comptrollerProxy: ComptrollerLib;
88
- vaultProxy: VaultLib;
89
- externalPositionManager: ExternalPositionManager;
90
- fundOwner: SignerWithAddress;
91
- externalPositionProxy: AddressLike;
92
- }) {
93
- const actionArgs = compoundExternalPositionActionArgs({
94
- amounts: [],
95
- assets: [],
96
- data: '0x',
97
- });
98
-
99
- return callOnExternalPosition({
100
- actionArgs,
101
- actionId: CompoundDebtPositionActionId.ClaimComp,
102
- comptrollerProxy,
103
- externalPositionManager,
104
- externalPositionProxy,
105
- signer: fundOwner,
106
- });
107
- }
108
-
109
- export async function compoundDebtPositionRemoveCollateral({
110
- comptrollerProxy,
111
- externalPositionManager,
112
- fundOwner,
113
- assets,
114
- amounts,
115
- externalPositionProxy,
116
- cTokens,
117
- }: {
118
- comptrollerProxy: ComptrollerLib;
119
- externalPositionManager: ExternalPositionManager;
120
- fundOwner: SignerWithAddress;
121
- assets: AddressLike[];
122
- amounts: BigNumberish[];
123
- externalPositionProxy: AddressLike;
124
- cTokens: AddressLike[];
125
- }) {
126
- const actionArgs = compoundExternalPositionActionArgs({
127
- amounts,
128
- assets,
129
- data: encodeArgs(['address[]'], [cTokens]),
130
- });
131
-
132
- return callOnExternalPosition({
133
- actionArgs,
134
- actionId: CompoundDebtPositionActionId.RemoveCollateralAssets,
135
- comptrollerProxy,
136
- externalPositionManager,
137
- externalPositionProxy,
138
- signer: fundOwner,
139
- });
140
- }
141
-
142
- export async function compoundDebtPositionRepayBorrow({
143
- comptrollerProxy,
144
- externalPositionManager,
145
- fundOwner,
146
- assets,
147
- amounts,
148
- externalPositionProxy,
149
- cTokens,
150
- }: {
151
- comptrollerProxy: ComptrollerLib;
152
- externalPositionManager: ExternalPositionManager;
153
- fundOwner: SignerWithAddress;
154
- assets: AddressLike[];
155
- amounts: BigNumberish[];
156
- externalPositionProxy: AddressLike;
157
- cTokens: AddressLike[];
158
- }) {
159
- const actionArgs = compoundExternalPositionActionArgs({
160
- amounts,
161
- assets,
162
- data: encodeArgs(['address[]'], [cTokens]),
163
- });
164
-
165
- return callOnExternalPosition({
166
- actionArgs,
167
- actionId: CompoundDebtPositionActionId.RepayBorrowedAssets,
168
- comptrollerProxy,
169
- externalPositionManager,
170
- externalPositionProxy,
171
- signer: fundOwner,
172
- });
173
- }
174
-
175
- export async function createCompoundDebtPosition({
176
- signer,
177
- comptrollerProxy,
178
- externalPositionManager,
179
- }: {
180
- signer: SignerWithAddress;
181
- comptrollerProxy: ComptrollerLib;
182
- externalPositionManager: ExternalPositionManager;
183
- }) {
184
- return createExternalPosition({
185
- comptrollerProxy,
186
- externalPositionManager,
187
- externalPositionTypeId: ExternalPositionType.CompoundDebtPosition,
188
- signer,
189
- });
190
- }
@@ -1,5 +0,0 @@
1
- export * from './actions';
2
- export * from './compound';
3
- export * from './mocks';
4
- export * from './aave-debt';
5
- export * from './uniswap-v3-liquidity';
@@ -1,191 +0,0 @@
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 {
5
- mockGenericExternalPositionActionArgs,
6
- MockGenericExternalPositionActionId,
7
- MockGenericExternalPositionLib,
8
- MockGenericExternalPositionParser,
9
- VaultLib,
10
- } from '@enzymefinance/protocol';
11
- import type { BigNumberish } from 'ethers';
12
-
13
- import { callOnExternalPosition, createExternalPosition } from './actions';
14
-
15
- export async function createMockExternalPosition({
16
- comptrollerProxy,
17
- externalPositionManager,
18
- externalPositionFactory,
19
- defaultActionAssetsToTransfer,
20
- defaultActionAmountsToTransfer,
21
- defaultActionAssetsToReceive,
22
- fundOwner,
23
- deployer,
24
- }: {
25
- comptrollerProxy: ComptrollerLib;
26
- externalPositionManager: ExternalPositionManager;
27
- externalPositionFactory: ExternalPositionFactory;
28
- defaultActionAssetsToTransfer: AddressLike[];
29
- defaultActionAmountsToTransfer: BigNumberish[];
30
- defaultActionAssetsToReceive: AddressLike[];
31
- fundOwner: SignerWithAddress;
32
- deployer: SignerWithAddress;
33
- }) {
34
- const vaultProxy = new VaultLib(await comptrollerProxy.getVaultProxy(), deployer);
35
- const typeId = await externalPositionFactory.getPositionTypeCounter();
36
-
37
- await externalPositionFactory.addNewPositionTypes(['TEST']);
38
-
39
- const mockGenericExternalPositionLib = await MockGenericExternalPositionLib.deploy(deployer);
40
- const mockExternalPositionParser = await MockGenericExternalPositionParser.deploy(deployer);
41
-
42
- mockExternalPositionParser.setAssetsForAction(
43
- 0,
44
- defaultActionAssetsToTransfer,
45
- defaultActionAmountsToTransfer,
46
- defaultActionAssetsToReceive,
47
- );
48
-
49
- await externalPositionManager.updateExternalPositionTypesInfo(
50
- [typeId],
51
- [mockGenericExternalPositionLib],
52
- [mockExternalPositionParser],
53
- );
54
-
55
- const receipt = await createExternalPosition({
56
- comptrollerProxy,
57
- externalPositionManager,
58
- externalPositionTypeId: typeId,
59
- signer: fundOwner,
60
- });
61
-
62
- const externalPositionProxy = (await vaultProxy.getActiveExternalPositions())[0];
63
-
64
- return {
65
- externalPositionProxy,
66
- mockExternalPositionParser,
67
- mockGenericExternalPositionLib,
68
- receipt,
69
- typeId,
70
- };
71
- }
72
-
73
- export async function mockExternalPositionAddDebtAssets({
74
- signer,
75
- comptrollerProxy,
76
- externalPositionManager,
77
- externalPositionProxy,
78
- assets,
79
- amounts,
80
- }: {
81
- signer: SignerWithAddress;
82
- comptrollerProxy: ComptrollerLib;
83
- externalPositionManager: ExternalPositionManager;
84
- externalPositionProxy: AddressLike;
85
- assets: AddressLike[];
86
- amounts: BigNumberish[];
87
- }) {
88
- const actionArgs = mockGenericExternalPositionActionArgs({
89
- amounts,
90
- assets,
91
- });
92
-
93
- return callOnExternalPosition({
94
- actionArgs,
95
- actionId: MockGenericExternalPositionActionId.AddDebtAssets,
96
- comptrollerProxy,
97
- externalPositionManager,
98
- externalPositionProxy,
99
- signer,
100
- });
101
- }
102
-
103
- export async function mockExternalPositionAddManagedAssets({
104
- signer,
105
- comptrollerProxy,
106
- externalPositionManager,
107
- externalPositionProxy,
108
- assets,
109
- amounts,
110
- }: {
111
- signer: SignerWithAddress;
112
- comptrollerProxy: ComptrollerLib;
113
- externalPositionManager: ExternalPositionManager;
114
- externalPositionProxy: AddressLike;
115
- assets: AddressLike[];
116
- amounts: BigNumberish[];
117
- }) {
118
- const actionArgs = mockGenericExternalPositionActionArgs({
119
- amounts,
120
- assets,
121
- });
122
-
123
- return callOnExternalPosition({
124
- actionArgs,
125
- actionId: MockGenericExternalPositionActionId.AddManagedAssets,
126
- comptrollerProxy,
127
- externalPositionManager,
128
- externalPositionProxy,
129
- signer,
130
- });
131
- }
132
-
133
- export async function mockExternalPositionRemoveDebtAssets({
134
- signer,
135
- comptrollerProxy,
136
- externalPositionManager,
137
- externalPositionProxy,
138
- assets,
139
- amounts,
140
- }: {
141
- signer: SignerWithAddress;
142
- comptrollerProxy: ComptrollerLib;
143
- externalPositionManager: ExternalPositionManager;
144
- externalPositionProxy: AddressLike;
145
- assets: AddressLike[];
146
- amounts: BigNumberish[];
147
- }) {
148
- const actionArgs = mockGenericExternalPositionActionArgs({
149
- amounts,
150
- assets,
151
- });
152
-
153
- return callOnExternalPosition({
154
- actionArgs,
155
- actionId: MockGenericExternalPositionActionId.RemoveDebtAssets,
156
- comptrollerProxy,
157
- externalPositionManager,
158
- externalPositionProxy,
159
- signer,
160
- });
161
- }
162
-
163
- export async function mockExternalPositionRemoveManagedAssets({
164
- signer,
165
- comptrollerProxy,
166
- externalPositionManager,
167
- externalPositionProxy,
168
- assets,
169
- amounts,
170
- }: {
171
- signer: SignerWithAddress;
172
- comptrollerProxy: ComptrollerLib;
173
- externalPositionManager: ExternalPositionManager;
174
- externalPositionProxy: AddressLike;
175
- assets: AddressLike[];
176
- amounts: BigNumberish[];
177
- }) {
178
- const actionArgs = mockGenericExternalPositionActionArgs({
179
- amounts,
180
- assets,
181
- });
182
-
183
- return callOnExternalPosition({
184
- actionArgs,
185
- actionId: MockGenericExternalPositionActionId.RemoveManagedAssets,
186
- comptrollerProxy,
187
- externalPositionManager,
188
- externalPositionProxy,
189
- signer,
190
- });
191
- }