@enzymefinance/testutils 4.0.0-next.1 → 4.0.0-next.6
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.
- package/CHANGELOG.md +32 -0
- package/dist/declarations/src/assertions.d.ts +2 -2
- package/dist/declarations/src/deployment.d.ts +168 -64
- package/dist/declarations/src/gasRelayer.d.ts +14 -12
- package/dist/declarations/src/helpers.d.ts +5 -4
- package/dist/declarations/src/scaffolding/assets.d.ts +3 -3
- package/dist/declarations/src/scaffolding/chainlink.d.ts +2 -2
- package/dist/declarations/src/scaffolding/common.d.ts +1 -1
- package/dist/declarations/src/scaffolding/core.d.ts +4 -3
- package/dist/declarations/src/scaffolding/extensions/common.d.ts +4 -4
- package/dist/declarations/src/scaffolding/extensions/external-positions/actions.d.ts +14 -5
- package/dist/declarations/src/scaffolding/extensions/external-positions/compound.d.ts +22 -22
- package/dist/declarations/src/scaffolding/extensions/external-positions/index.d.ts +1 -0
- package/dist/declarations/src/scaffolding/extensions/external-positions/mocks.d.ts +40 -7
- package/dist/declarations/src/scaffolding/extensions/external-positions/uniswap-v3-liquidity.d.ts +99 -0
- package/dist/declarations/src/scaffolding/extensions/fees.d.ts +1 -1
- package/dist/declarations/src/scaffolding/extensions/integrations/aave.d.ts +4 -3
- package/dist/declarations/src/scaffolding/extensions/integrations/compound.d.ts +5 -5
- package/dist/declarations/src/scaffolding/extensions/integrations/curve.d.ts +108 -33
- package/dist/declarations/src/scaffolding/extensions/integrations/idle.d.ts +3 -3
- package/dist/declarations/src/scaffolding/extensions/integrations/index.d.ts +3 -0
- package/dist/declarations/src/scaffolding/extensions/integrations/mock.d.ts +4 -4
- package/dist/declarations/src/scaffolding/extensions/integrations/olympusV2.d.ts +17 -0
- package/dist/declarations/src/scaffolding/extensions/integrations/paraSwapV4.d.ts +6 -5
- package/dist/declarations/src/scaffolding/extensions/integrations/paraSwapV5.d.ts +23 -0
- package/dist/declarations/src/scaffolding/extensions/integrations/poolTogetherV4.d.ts +29 -0
- package/dist/declarations/src/scaffolding/extensions/integrations/synthetix.d.ts +11 -3
- package/dist/declarations/src/scaffolding/extensions/integrations/trackedAssets.d.ts +3 -3
- package/dist/declarations/src/scaffolding/extensions/integrations/uniswapV2.d.ts +10 -10
- package/dist/declarations/src/scaffolding/extensions/integrations/uniswapV3.d.ts +4 -4
- package/dist/declarations/src/scaffolding/extensions/integrations/yearn.d.ts +3 -3
- package/dist/declarations/src/scaffolding/extensions/integrations/zeroExV2.d.ts +3 -3
- package/dist/declarations/src/scaffolding/extensions/policies.d.ts +1 -1
- package/dist/declarations/src/scaffolding/setup.d.ts +11 -9
- package/dist/declarations/src/scaffolding/shares.d.ts +4 -4
- package/dist/declarations/src/scaffolding/vaultCalls.d.ts +15 -6
- package/dist/declarations/src/whales.d.ts +20 -18
- package/dist/enzymefinance-testutils.browser.cjs.js +1783 -763
- package/dist/enzymefinance-testutils.browser.esm.js +1746 -757
- package/dist/enzymefinance-testutils.cjs.dev.js +1783 -763
- package/dist/enzymefinance-testutils.cjs.prod.js +1783 -763
- package/dist/enzymefinance-testutils.esm.js +1746 -757
- package/package.json +5 -5
- package/src/assertions.ts +5 -2
- package/src/deployment.ts +215 -111
- package/src/gasRelayer.ts +17 -18
- package/src/helpers.ts +6 -4
- package/src/scaffolding/assets.ts +7 -6
- package/src/scaffolding/chainlink.ts +2 -2
- package/src/scaffolding/common.ts +1 -1
- package/src/scaffolding/core.ts +30 -12
- package/src/scaffolding/extensions/common.ts +4 -4
- package/src/scaffolding/extensions/external-positions/actions.ts +33 -6
- package/src/scaffolding/extensions/external-positions/compound.ts +76 -96
- package/src/scaffolding/extensions/external-positions/index.ts +1 -0
- package/src/scaffolding/extensions/external-positions/mocks.ts +132 -10
- package/src/scaffolding/extensions/external-positions/uniswap-v3-liquidity.ts +290 -0
- package/src/scaffolding/extensions/fees.ts +1 -1
- package/src/scaffolding/extensions/integrations/aave.ts +6 -8
- package/src/scaffolding/extensions/integrations/compound.ts +10 -11
- package/src/scaffolding/extensions/integrations/curve.ts +333 -68
- package/src/scaffolding/extensions/integrations/idle.ts +9 -11
- package/src/scaffolding/extensions/integrations/index.ts +3 -0
- package/src/scaffolding/extensions/integrations/mock.ts +11 -13
- package/src/scaffolding/extensions/integrations/olympusV2.ts +71 -0
- package/src/scaffolding/extensions/integrations/paraSwapV4.ts +16 -11
- package/src/scaffolding/extensions/integrations/paraSwapV5.ts +73 -0
- package/src/scaffolding/extensions/integrations/poolTogetherV4.ts +117 -0
- package/src/scaffolding/extensions/integrations/synthetix.ts +45 -12
- package/src/scaffolding/extensions/integrations/trackedAssets.ts +3 -4
- package/src/scaffolding/extensions/integrations/uniswapV2.ts +31 -27
- package/src/scaffolding/extensions/integrations/uniswapV3.ts +9 -10
- package/src/scaffolding/extensions/integrations/yearn.ts +9 -11
- package/src/scaffolding/extensions/integrations/zeroExV2.ts +9 -7
- package/src/scaffolding/extensions/policies.ts +2 -1
- package/src/scaffolding/setup.ts +27 -13
- package/src/scaffolding/shares.ts +5 -4
- package/src/scaffolding/vaultCalls.ts +32 -2
- package/src/whales.ts +30 -17
- package/tsconfig.json +2 -1
|
@@ -1,15 +1,42 @@
|
|
|
1
|
-
import { AddressLike
|
|
2
|
-
import {
|
|
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
|
-
|
|
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 {
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
60
|
-
|
|
37
|
+
return callOnExternalPosition({
|
|
38
|
+
actionArgs,
|
|
61
39
|
actionId: CompoundDebtPositionActionId.AddCollateralAssets,
|
|
62
|
-
|
|
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
|
|
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
|
-
|
|
71
|
+
return callOnExternalPosition({
|
|
72
|
+
actionArgs,
|
|
73
|
+
actionId: CompoundDebtPositionActionId.BorrowAsset,
|
|
74
|
+
comptrollerProxy,
|
|
75
|
+
externalPositionManager,
|
|
96
76
|
externalPositionProxy,
|
|
97
|
-
|
|
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
|
|
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
|
-
|
|
128
|
-
|
|
129
|
-
data:
|
|
94
|
+
amounts: [],
|
|
95
|
+
assets: [],
|
|
96
|
+
data: '0x',
|
|
130
97
|
});
|
|
131
98
|
|
|
132
|
-
|
|
99
|
+
return callOnExternalPosition({
|
|
100
|
+
actionArgs,
|
|
101
|
+
actionId: CompoundDebtPositionActionId.ClaimComp,
|
|
102
|
+
comptrollerProxy,
|
|
103
|
+
externalPositionManager,
|
|
133
104
|
externalPositionProxy,
|
|
134
|
-
|
|
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
|
|
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
|
-
|
|
159
|
-
|
|
160
|
-
data: '
|
|
127
|
+
amounts,
|
|
128
|
+
assets,
|
|
129
|
+
data: encodeArgs(['address[]'], [cTokens]),
|
|
161
130
|
});
|
|
162
131
|
|
|
163
|
-
|
|
132
|
+
return callOnExternalPosition({
|
|
133
|
+
actionArgs,
|
|
134
|
+
actionId: CompoundDebtPositionActionId.RemoveCollateralAssets,
|
|
135
|
+
comptrollerProxy,
|
|
136
|
+
externalPositionManager,
|
|
164
137
|
externalPositionProxy,
|
|
165
|
-
|
|
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
|
|
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
|
-
|
|
200
|
-
|
|
165
|
+
return callOnExternalPosition({
|
|
166
|
+
actionArgs,
|
|
201
167
|
actionId: CompoundDebtPositionActionId.RepayBorrowedAssets,
|
|
202
|
-
|
|
168
|
+
comptrollerProxy,
|
|
169
|
+
externalPositionManager,
|
|
170
|
+
externalPositionProxy,
|
|
171
|
+
signer: fundOwner,
|
|
203
172
|
});
|
|
173
|
+
}
|
|
204
174
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
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,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
|
-
|
|
6
|
-
|
|
7
|
+
mockGenericExternalPositionActionArgs,
|
|
8
|
+
MockGenericExternalPositionActionId,
|
|
7
9
|
MockGenericExternalPositionLib,
|
|
8
10
|
MockGenericExternalPositionParser,
|
|
9
11
|
VaultLib,
|
|
10
|
-
} from '@enzymefinance/protocol
|
|
11
|
-
import {
|
|
12
|
-
|
|
13
|
-
import {
|
|
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
|
+
}
|