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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/declarations/src/assertions.d.ts +2 -2
  3. package/dist/declarations/src/deployment.d.ts +168 -64
  4. package/dist/declarations/src/gasRelayer.d.ts +14 -12
  5. package/dist/declarations/src/helpers.d.ts +5 -4
  6. package/dist/declarations/src/scaffolding/assets.d.ts +3 -3
  7. package/dist/declarations/src/scaffolding/chainlink.d.ts +2 -2
  8. package/dist/declarations/src/scaffolding/common.d.ts +1 -1
  9. package/dist/declarations/src/scaffolding/core.d.ts +4 -3
  10. package/dist/declarations/src/scaffolding/extensions/common.d.ts +4 -4
  11. package/dist/declarations/src/scaffolding/extensions/external-positions/actions.d.ts +14 -5
  12. package/dist/declarations/src/scaffolding/extensions/external-positions/compound.d.ts +22 -22
  13. package/dist/declarations/src/scaffolding/extensions/external-positions/index.d.ts +1 -0
  14. package/dist/declarations/src/scaffolding/extensions/external-positions/mocks.d.ts +40 -7
  15. package/dist/declarations/src/scaffolding/extensions/external-positions/uniswap-v3-liquidity.d.ts +99 -0
  16. package/dist/declarations/src/scaffolding/extensions/fees.d.ts +1 -1
  17. package/dist/declarations/src/scaffolding/extensions/integrations/aave.d.ts +4 -3
  18. package/dist/declarations/src/scaffolding/extensions/integrations/compound.d.ts +5 -5
  19. package/dist/declarations/src/scaffolding/extensions/integrations/curve.d.ts +108 -33
  20. package/dist/declarations/src/scaffolding/extensions/integrations/idle.d.ts +3 -3
  21. package/dist/declarations/src/scaffolding/extensions/integrations/index.d.ts +3 -0
  22. package/dist/declarations/src/scaffolding/extensions/integrations/mock.d.ts +4 -4
  23. package/dist/declarations/src/scaffolding/extensions/integrations/olympusV2.d.ts +17 -0
  24. package/dist/declarations/src/scaffolding/extensions/integrations/paraSwapV4.d.ts +6 -5
  25. package/dist/declarations/src/scaffolding/extensions/integrations/paraSwapV5.d.ts +23 -0
  26. package/dist/declarations/src/scaffolding/extensions/integrations/poolTogetherV4.d.ts +29 -0
  27. package/dist/declarations/src/scaffolding/extensions/integrations/synthetix.d.ts +11 -3
  28. package/dist/declarations/src/scaffolding/extensions/integrations/trackedAssets.d.ts +3 -3
  29. package/dist/declarations/src/scaffolding/extensions/integrations/uniswapV2.d.ts +10 -10
  30. package/dist/declarations/src/scaffolding/extensions/integrations/uniswapV3.d.ts +4 -4
  31. package/dist/declarations/src/scaffolding/extensions/integrations/yearn.d.ts +3 -3
  32. package/dist/declarations/src/scaffolding/extensions/integrations/zeroExV2.d.ts +3 -3
  33. package/dist/declarations/src/scaffolding/extensions/policies.d.ts +1 -1
  34. package/dist/declarations/src/scaffolding/setup.d.ts +11 -9
  35. package/dist/declarations/src/scaffolding/shares.d.ts +4 -4
  36. package/dist/declarations/src/scaffolding/vaultCalls.d.ts +15 -6
  37. package/dist/declarations/src/whales.d.ts +20 -18
  38. package/dist/enzymefinance-testutils.browser.cjs.js +1783 -763
  39. package/dist/enzymefinance-testutils.browser.esm.js +1746 -757
  40. package/dist/enzymefinance-testutils.cjs.dev.js +1783 -763
  41. package/dist/enzymefinance-testutils.cjs.prod.js +1783 -763
  42. package/dist/enzymefinance-testutils.esm.js +1746 -757
  43. package/package.json +5 -5
  44. package/src/assertions.ts +5 -2
  45. package/src/deployment.ts +215 -111
  46. package/src/gasRelayer.ts +17 -18
  47. package/src/helpers.ts +6 -4
  48. package/src/scaffolding/assets.ts +7 -6
  49. package/src/scaffolding/chainlink.ts +2 -2
  50. package/src/scaffolding/common.ts +1 -1
  51. package/src/scaffolding/core.ts +30 -12
  52. package/src/scaffolding/extensions/common.ts +4 -4
  53. package/src/scaffolding/extensions/external-positions/actions.ts +33 -6
  54. package/src/scaffolding/extensions/external-positions/compound.ts +76 -96
  55. package/src/scaffolding/extensions/external-positions/index.ts +1 -0
  56. package/src/scaffolding/extensions/external-positions/mocks.ts +132 -10
  57. package/src/scaffolding/extensions/external-positions/uniswap-v3-liquidity.ts +290 -0
  58. package/src/scaffolding/extensions/fees.ts +1 -1
  59. package/src/scaffolding/extensions/integrations/aave.ts +6 -8
  60. package/src/scaffolding/extensions/integrations/compound.ts +10 -11
  61. package/src/scaffolding/extensions/integrations/curve.ts +333 -68
  62. package/src/scaffolding/extensions/integrations/idle.ts +9 -11
  63. package/src/scaffolding/extensions/integrations/index.ts +3 -0
  64. package/src/scaffolding/extensions/integrations/mock.ts +11 -13
  65. package/src/scaffolding/extensions/integrations/olympusV2.ts +71 -0
  66. package/src/scaffolding/extensions/integrations/paraSwapV4.ts +16 -11
  67. package/src/scaffolding/extensions/integrations/paraSwapV5.ts +73 -0
  68. package/src/scaffolding/extensions/integrations/poolTogetherV4.ts +117 -0
  69. package/src/scaffolding/extensions/integrations/synthetix.ts +45 -12
  70. package/src/scaffolding/extensions/integrations/trackedAssets.ts +3 -4
  71. package/src/scaffolding/extensions/integrations/uniswapV2.ts +31 -27
  72. package/src/scaffolding/extensions/integrations/uniswapV3.ts +9 -10
  73. package/src/scaffolding/extensions/integrations/yearn.ts +9 -11
  74. package/src/scaffolding/extensions/integrations/zeroExV2.ts +9 -7
  75. package/src/scaffolding/extensions/policies.ts +2 -1
  76. package/src/scaffolding/setup.ts +27 -13
  77. package/src/scaffolding/shares.ts +5 -4
  78. package/src/scaffolding/vaultCalls.ts +32 -2
  79. package/src/whales.ts +30 -17
  80. package/tsconfig.json +2 -1
@@ -1,15 +1,42 @@
1
- import { AddressLike, extractEvent } from '@enzymefinance/ethers';
2
- import { SignerWithAddress } from '@enzymefinance/hardhat';
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';
3
5
  import {
4
- ComptrollerLib,
6
+ callOnExternalPositionArgs,
5
7
  encodeArgs,
6
- ExternalPositionManager,
7
8
  ExternalPositionManagerActionId,
8
9
  externalPositionReactivateArgs,
9
10
  externalPositionRemoveArgs,
10
11
  IExternalPositionProxy,
11
12
  } from '@enzymefinance/protocol';
12
- import { BigNumberish, BytesLike } from 'ethers';
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
+ }
13
40
 
14
41
  export async function createExternalPosition({
15
42
  signer,
@@ -36,7 +63,7 @@ export async function createExternalPosition({
36
63
 
37
64
  const externalPositionProxy = new IExternalPositionProxy(event[0].args.externalPosition, signer);
38
65
 
39
- return { receipt, externalPositionProxy };
66
+ return { externalPositionProxy, receipt };
40
67
  }
41
68
 
42
69
  export async function reactivateExternalPosition({
@@ -1,39 +1,17 @@
1
- import { AddressLike } from '@enzymefinance/ethers';
2
- import { SignerWithAddress } from '@enzymefinance/hardhat';
1
+ import type { AddressLike } from '@enzymefinance/ethers';
2
+ import type { SignerWithAddress } from '@enzymefinance/hardhat';
3
+ import type { ComptrollerLib, ExternalPositionManager, VaultLib } from '@enzymefinance/protocol';
3
4
  import {
4
- ComptrollerLib,
5
- encodeArgs,
6
- ExternalPositionManager,
7
- VaultLib,
8
- callOnExternalPositionArgs,
9
- compoundExternalPositionActionArgs,
10
- ExternalPositionManagerActionId,
11
5
  CompoundDebtPositionActionId,
6
+ compoundExternalPositionActionArgs,
7
+ encodeArgs,
12
8
  ExternalPositionType,
13
9
  } from '@enzymefinance/protocol';
14
- import { BigNumberish } from 'ethers';
15
- import { createExternalPosition } from './actions';
10
+ import type { BigNumberish } from 'ethers';
16
11
 
17
- // TODO: re-namespace all functions with `CompoundDebtPosition`
18
-
19
- export async function createCompoundDebtPosition({
20
- signer,
21
- comptrollerProxy,
22
- externalPositionManager,
23
- }: {
24
- signer: SignerWithAddress;
25
- comptrollerProxy: ComptrollerLib;
26
- externalPositionManager: ExternalPositionManager;
27
- }) {
28
- return createExternalPosition({
29
- signer,
30
- comptrollerProxy,
31
- externalPositionManager,
32
- externalPositionTypeId: ExternalPositionType.CompoundDebtPosition,
33
- });
34
- }
12
+ import { callOnExternalPosition, createExternalPosition } from './actions';
35
13
 
36
- export async function addCollateral({
14
+ export async function compoundDebtPositionAddCollateral({
37
15
  comptrollerProxy,
38
16
  externalPositionManager,
39
17
  fundOwner,
@@ -51,129 +29,117 @@ export async function addCollateral({
51
29
  externalPositionProxy: AddressLike;
52
30
  }) {
53
31
  const actionArgs = compoundExternalPositionActionArgs({
54
- assets,
55
32
  amounts,
33
+ assets,
56
34
  data: encodeArgs(['address[]'], [cTokens]),
57
35
  });
58
36
 
59
- const callArgs = callOnExternalPositionArgs({
60
- externalPositionProxy,
37
+ return callOnExternalPosition({
38
+ actionArgs,
61
39
  actionId: CompoundDebtPositionActionId.AddCollateralAssets,
62
- encodedCallArgs: actionArgs,
40
+ comptrollerProxy,
41
+ externalPositionManager,
42
+ externalPositionProxy,
43
+ signer: fundOwner,
63
44
  });
64
-
65
- const addCollateralTx = comptrollerProxy
66
- .connect(fundOwner)
67
- .callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CallOnExternalPosition, callArgs);
68
-
69
- return addCollateralTx;
70
45
  }
71
46
 
72
- export async function removeCollateral({
47
+ export async function compoundDebtPositionBorrow({
73
48
  comptrollerProxy,
74
49
  externalPositionManager,
75
50
  fundOwner,
51
+ externalPositionProxy,
76
52
  assets,
77
53
  amounts,
78
- externalPositionProxy,
79
54
  cTokens,
80
55
  }: {
81
56
  comptrollerProxy: ComptrollerLib;
57
+ vaultProxy: VaultLib;
82
58
  externalPositionManager: ExternalPositionManager;
83
59
  fundOwner: SignerWithAddress;
60
+ externalPositionProxy: AddressLike;
84
61
  assets: AddressLike[];
85
62
  amounts: BigNumberish[];
86
- externalPositionProxy: AddressLike;
87
63
  cTokens: AddressLike[];
88
64
  }) {
89
65
  const actionArgs = compoundExternalPositionActionArgs({
90
- assets,
91
66
  amounts,
67
+ assets,
92
68
  data: encodeArgs(['address[]'], [cTokens]),
93
69
  });
94
70
 
95
- const callArgs = callOnExternalPositionArgs({
71
+ return callOnExternalPosition({
72
+ actionArgs,
73
+ actionId: CompoundDebtPositionActionId.BorrowAsset,
74
+ comptrollerProxy,
75
+ externalPositionManager,
96
76
  externalPositionProxy,
97
- actionId: CompoundDebtPositionActionId.RemoveCollateralAssets,
98
- encodedCallArgs: actionArgs,
77
+ signer: fundOwner,
99
78
  });
100
-
101
- const removeCollateralTx = comptrollerProxy
102
- .connect(fundOwner)
103
- .callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CallOnExternalPosition, callArgs);
104
-
105
- return removeCollateralTx;
106
79
  }
107
80
 
108
- export async function borrow({
81
+ export async function compoundDebtPositionClaimComp({
109
82
  comptrollerProxy,
110
83
  externalPositionManager,
111
84
  fundOwner,
112
85
  externalPositionProxy,
113
- assets,
114
- amounts,
115
- cTokens,
116
86
  }: {
117
87
  comptrollerProxy: ComptrollerLib;
118
88
  vaultProxy: VaultLib;
119
89
  externalPositionManager: ExternalPositionManager;
120
90
  fundOwner: SignerWithAddress;
121
91
  externalPositionProxy: AddressLike;
122
- assets: AddressLike[];
123
- amounts: BigNumberish[];
124
- cTokens: AddressLike[];
125
92
  }) {
126
93
  const actionArgs = compoundExternalPositionActionArgs({
127
- assets,
128
- amounts,
129
- data: encodeArgs(['address[]'], [cTokens]),
94
+ amounts: [],
95
+ assets: [],
96
+ data: '0x',
130
97
  });
131
98
 
132
- const callArgs = callOnExternalPositionArgs({
99
+ return callOnExternalPosition({
100
+ actionArgs,
101
+ actionId: CompoundDebtPositionActionId.ClaimComp,
102
+ comptrollerProxy,
103
+ externalPositionManager,
133
104
  externalPositionProxy,
134
- actionId: CompoundDebtPositionActionId.BorrowAsset,
135
- encodedCallArgs: actionArgs,
105
+ signer: fundOwner,
136
106
  });
137
-
138
- const borrowTx = comptrollerProxy
139
- .connect(fundOwner)
140
- .callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CallOnExternalPosition, callArgs);
141
-
142
- return borrowTx;
143
107
  }
144
108
 
145
- export async function claimComp({
109
+ export async function compoundDebtPositionRemoveCollateral({
146
110
  comptrollerProxy,
147
111
  externalPositionManager,
148
112
  fundOwner,
113
+ assets,
114
+ amounts,
149
115
  externalPositionProxy,
116
+ cTokens,
150
117
  }: {
151
118
  comptrollerProxy: ComptrollerLib;
152
- vaultProxy: VaultLib;
153
119
  externalPositionManager: ExternalPositionManager;
154
120
  fundOwner: SignerWithAddress;
121
+ assets: AddressLike[];
122
+ amounts: BigNumberish[];
155
123
  externalPositionProxy: AddressLike;
124
+ cTokens: AddressLike[];
156
125
  }) {
157
126
  const actionArgs = compoundExternalPositionActionArgs({
158
- assets: [],
159
- amounts: [],
160
- data: '0x',
127
+ amounts,
128
+ assets,
129
+ data: encodeArgs(['address[]'], [cTokens]),
161
130
  });
162
131
 
163
- const callArgs = callOnExternalPositionArgs({
132
+ return callOnExternalPosition({
133
+ actionArgs,
134
+ actionId: CompoundDebtPositionActionId.RemoveCollateralAssets,
135
+ comptrollerProxy,
136
+ externalPositionManager,
164
137
  externalPositionProxy,
165
- actionId: CompoundDebtPositionActionId.ClaimComp,
166
- encodedCallArgs: actionArgs,
138
+ signer: fundOwner,
167
139
  });
168
-
169
- const claimCompTx = comptrollerProxy
170
- .connect(fundOwner)
171
- .callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CallOnExternalPosition, callArgs);
172
-
173
- return claimCompTx;
174
140
  }
175
141
 
176
- export async function repayBorrow({
142
+ export async function compoundDebtPositionRepayBorrow({
177
143
  comptrollerProxy,
178
144
  externalPositionManager,
179
145
  fundOwner,
@@ -191,20 +157,34 @@ export async function repayBorrow({
191
157
  cTokens: AddressLike[];
192
158
  }) {
193
159
  const actionArgs = compoundExternalPositionActionArgs({
194
- assets,
195
160
  amounts,
161
+ assets,
196
162
  data: encodeArgs(['address[]'], [cTokens]),
197
163
  });
198
164
 
199
- const callArgs = callOnExternalPositionArgs({
200
- externalPositionProxy,
165
+ return callOnExternalPosition({
166
+ actionArgs,
201
167
  actionId: CompoundDebtPositionActionId.RepayBorrowedAssets,
202
- encodedCallArgs: actionArgs,
168
+ comptrollerProxy,
169
+ externalPositionManager,
170
+ externalPositionProxy,
171
+ signer: fundOwner,
203
172
  });
173
+ }
204
174
 
205
- const repayTx = comptrollerProxy
206
- .connect(fundOwner)
207
- .callOnExtension(externalPositionManager, ExternalPositionManagerActionId.CallOnExternalPosition, callArgs);
208
-
209
- return repayTx;
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
+ });
210
190
  }
@@ -1,3 +1,4 @@
1
1
  export * from './actions';
2
2
  export * from './compound';
3
3
  export * from './mocks';
4
+ export * from './uniswap-v3-liquidity';
@@ -1,16 +1,18 @@
1
+ import type { AddressLike } from '@enzymefinance/ethers';
2
+ import type { SignerWithAddress } from '@enzymefinance/hardhat';
3
+ import type { ComptrollerLib, ExternalPositionFactory, ExternalPositionManager } from '@enzymefinance/protocol';
1
4
  import {
2
- ComptrollerLib,
3
5
  encodeArgs,
4
6
  ExternalPositionManagerActionId,
5
- ExternalPositionFactory,
6
- ExternalPositionManager,
7
+ mockGenericExternalPositionActionArgs,
8
+ MockGenericExternalPositionActionId,
7
9
  MockGenericExternalPositionLib,
8
10
  MockGenericExternalPositionParser,
9
11
  VaultLib,
10
- } from '@enzymefinance/protocol/src';
11
- import { SignerWithAddress } from '@enzymefinance/hardhat';
12
- import { AddressLike } from '@enzymefinance/ethers';
13
- import { BigNumberish } from 'ethers';
12
+ } from '@enzymefinance/protocol';
13
+ import type { BigNumberish } from 'ethers';
14
+
15
+ import { callOnExternalPosition } from './actions';
14
16
 
15
17
  export async function createMockExternalPosition({
16
18
  comptrollerProxy,
@@ -63,10 +65,130 @@ export async function createMockExternalPosition({
63
65
  const externalPositionProxy = (await vaultProxy.getActiveExternalPositions())[0];
64
66
 
65
67
  return {
66
- typeId,
67
- mockGenericExternalPositionLib,
68
- mockExternalPositionParser,
69
68
  externalPositionProxy,
69
+ mockExternalPositionParser,
70
+ mockGenericExternalPositionLib,
70
71
  receipt,
72
+ typeId,
71
73
  };
72
74
  }
75
+
76
+ export async function mockExternalPositionAddDebtAssets({
77
+ signer,
78
+ comptrollerProxy,
79
+ externalPositionManager,
80
+ externalPositionProxy,
81
+ assets,
82
+ amounts,
83
+ }: {
84
+ signer: SignerWithAddress;
85
+ comptrollerProxy: ComptrollerLib;
86
+ externalPositionManager: ExternalPositionManager;
87
+ externalPositionProxy: AddressLike;
88
+ assets: AddressLike[];
89
+ amounts: BigNumberish[];
90
+ }) {
91
+ const actionArgs = mockGenericExternalPositionActionArgs({
92
+ amounts,
93
+ assets,
94
+ });
95
+
96
+ return callOnExternalPosition({
97
+ actionArgs,
98
+ actionId: MockGenericExternalPositionActionId.AddDebtAssets,
99
+ comptrollerProxy,
100
+ externalPositionManager,
101
+ externalPositionProxy,
102
+ signer,
103
+ });
104
+ }
105
+
106
+ export async function mockExternalPositionAddManagedAssets({
107
+ signer,
108
+ comptrollerProxy,
109
+ externalPositionManager,
110
+ externalPositionProxy,
111
+ assets,
112
+ amounts,
113
+ }: {
114
+ signer: SignerWithAddress;
115
+ comptrollerProxy: ComptrollerLib;
116
+ externalPositionManager: ExternalPositionManager;
117
+ externalPositionProxy: AddressLike;
118
+ assets: AddressLike[];
119
+ amounts: BigNumberish[];
120
+ }) {
121
+ const actionArgs = mockGenericExternalPositionActionArgs({
122
+ amounts,
123
+ assets,
124
+ });
125
+
126
+ return callOnExternalPosition({
127
+ actionArgs,
128
+ actionId: MockGenericExternalPositionActionId.AddManagedAssets,
129
+ comptrollerProxy,
130
+ externalPositionManager,
131
+ externalPositionProxy,
132
+ signer,
133
+ });
134
+ }
135
+
136
+ export async function mockExternalPositionRemoveDebtAssets({
137
+ signer,
138
+ comptrollerProxy,
139
+ externalPositionManager,
140
+ externalPositionProxy,
141
+ assets,
142
+ amounts,
143
+ }: {
144
+ signer: SignerWithAddress;
145
+ comptrollerProxy: ComptrollerLib;
146
+ externalPositionManager: ExternalPositionManager;
147
+ externalPositionProxy: AddressLike;
148
+ assets: AddressLike[];
149
+ amounts: BigNumberish[];
150
+ }) {
151
+ const actionArgs = mockGenericExternalPositionActionArgs({
152
+ amounts,
153
+ assets,
154
+ });
155
+
156
+ return callOnExternalPosition({
157
+ actionArgs,
158
+ actionId: MockGenericExternalPositionActionId.RemoveDebtAssets,
159
+ comptrollerProxy,
160
+ externalPositionManager,
161
+ externalPositionProxy,
162
+ signer,
163
+ });
164
+ }
165
+
166
+ export async function mockExternalPositionRemoveManagedAssets({
167
+ signer,
168
+ comptrollerProxy,
169
+ externalPositionManager,
170
+ externalPositionProxy,
171
+ assets,
172
+ amounts,
173
+ }: {
174
+ signer: SignerWithAddress;
175
+ comptrollerProxy: ComptrollerLib;
176
+ externalPositionManager: ExternalPositionManager;
177
+ externalPositionProxy: AddressLike;
178
+ assets: AddressLike[];
179
+ amounts: BigNumberish[];
180
+ }) {
181
+ const actionArgs = mockGenericExternalPositionActionArgs({
182
+ amounts,
183
+ assets,
184
+ });
185
+
186
+ return callOnExternalPosition({
187
+ actionArgs,
188
+ actionId: MockGenericExternalPositionActionId.RemoveManagedAssets,
189
+ comptrollerProxy,
190
+ externalPositionManager,
191
+ externalPositionProxy,
192
+ signer,
193
+ });
194
+ }