@defisaver/automation-sdk 3.3.8 → 3.3.10-aave-v4-dev
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/cjs/constants/index.js +55 -0
- package/cjs/services/ethereumService.js +21 -14
- package/cjs/services/strategiesService.js +101 -0
- package/cjs/services/strategySubService.d.ts +8 -0
- package/cjs/services/strategySubService.js +47 -1
- package/cjs/services/strategySubService.test.js +143 -0
- package/cjs/services/subDataService.d.ts +302 -129
- package/cjs/services/subDataService.js +629 -372
- package/cjs/services/subDataService.test.js +213 -0
- package/cjs/services/triggerService.d.ts +29 -0
- package/cjs/services/triggerService.js +55 -1
- package/cjs/services/triggerService.test.js +84 -0
- package/cjs/types/enums.d.ts +14 -2
- package/cjs/types/enums.js +12 -0
- package/cjs/types/index.d.ts +22 -1
- package/esm/constants/index.js +55 -0
- package/esm/services/ethereumService.js +21 -14
- package/esm/services/strategiesService.js +102 -1
- package/esm/services/strategySubService.d.ts +8 -0
- package/esm/services/strategySubService.js +46 -0
- package/esm/services/strategySubService.test.js +144 -1
- package/esm/services/subDataService.d.ts +302 -129
- package/esm/services/subDataService.js +628 -371
- package/esm/services/subDataService.test.js +213 -0
- package/esm/services/triggerService.d.ts +29 -0
- package/esm/services/triggerService.js +54 -0
- package/esm/services/triggerService.test.js +85 -1
- package/esm/types/enums.d.ts +14 -2
- package/esm/types/enums.js +12 -0
- package/esm/types/index.d.ts +22 -1
- package/package.json +1 -1
- package/src/constants/index.ts +55 -0
- package/src/services/ethereumService.ts +23 -16
- package/src/services/strategiesService.ts +116 -1
- package/src/services/strategySubService.test.ts +180 -0
- package/src/services/strategySubService.ts +162 -2
- package/src/services/subDataService.test.ts +233 -0
- package/src/services/subDataService.ts +977 -703
- package/src/services/triggerService.test.ts +99 -0
- package/src/services/triggerService.ts +76 -1
- package/src/types/enums.ts +12 -0
- package/src/types/index.ts +27 -1
|
@@ -6,6 +6,68 @@ import { otherAddresses } from '@defisaver/sdk';
|
|
|
6
6
|
import { ChainId, CollActionType, DebtActionType, RatioState, } from '../types/enums';
|
|
7
7
|
import { ZERO_ADDRESS } from '../constants';
|
|
8
8
|
import { compareAddresses, ratioPercentageToWei, weiToRatioPercentage } from './utils';
|
|
9
|
+
/**
|
|
10
|
+
_______ _______ .______ .______ _______ ______ ___ .___________. _______ _______
|
|
11
|
+
| \ | ____|| _ \ | _ \ | ____| / | / \ | || ____|| \
|
|
12
|
+
| .--. || |__ | |_) | | |_) | | |__ | ,----' / ^ \ `---| |----`| |__ | .--. |
|
|
13
|
+
| | | || __| | ___/ | / | __| | | / /_\ \ | | | __| | | | |
|
|
14
|
+
| '--' || |____ | | | |\ \----.| |____ | `----./ _____ \ | | | |____ | '--' |
|
|
15
|
+
|_______/ |_______|| _| | _| `._____||_______| \______/__/ \__\ |__| |_______||_______/
|
|
16
|
+
*/
|
|
17
|
+
export const morphoAaveV2LeverageManagementSubData = {
|
|
18
|
+
encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
19
|
+
return [
|
|
20
|
+
ratioPercentageToWei(triggerRepayRatio),
|
|
21
|
+
ratioPercentageToWei(triggerBoostRatio),
|
|
22
|
+
ratioPercentageToWei(targetBoostRatio),
|
|
23
|
+
ratioPercentageToWei(targetRepayRatio),
|
|
24
|
+
// @ts-ignore
|
|
25
|
+
boostEnabled,
|
|
26
|
+
];
|
|
27
|
+
},
|
|
28
|
+
decode(subData) {
|
|
29
|
+
const ratioWei = AbiCoder.decodeParameter('uint128', subData[1]);
|
|
30
|
+
const targetRatio = weiToRatioPercentage(ratioWei);
|
|
31
|
+
return { targetRatio };
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
export const cBondsRebondSubData = {
|
|
35
|
+
encode(bondId) {
|
|
36
|
+
const bondIdEncoded = AbiCoder.encodeParameter('uint256', bondId);
|
|
37
|
+
return [bondIdEncoded];
|
|
38
|
+
},
|
|
39
|
+
decode(subData) {
|
|
40
|
+
const bondId = AbiCoder.decodeParameter('uint256', subData[1]).toString();
|
|
41
|
+
return { bondId };
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
export const liquityPaybackUsingChickenBondSubData = {
|
|
45
|
+
/**
|
|
46
|
+
* @param sourceId bondId or subId
|
|
47
|
+
* @param sourceType 0 for bond, 1 for subId
|
|
48
|
+
* @param chainId
|
|
49
|
+
*/
|
|
50
|
+
encode: (sourceId, sourceType, chainId = ChainId.Ethereum) => {
|
|
51
|
+
const sourceIdEncoded = AbiCoder.encodeParameter('uint256', sourceId);
|
|
52
|
+
const sourceTypeEncoded = AbiCoder.encodeParameter('uint256', sourceType);
|
|
53
|
+
const lusdAddressEncoded = AbiCoder.encodeParameter('address', getAssetInfo('LUSD', chainId).address);
|
|
54
|
+
const bLusdAddressEncoded = AbiCoder.encodeParameter('address', getAssetInfo('bLUSD', chainId).address);
|
|
55
|
+
return [sourceIdEncoded, sourceTypeEncoded, lusdAddressEncoded, bLusdAddressEncoded];
|
|
56
|
+
},
|
|
57
|
+
decode: (subData) => {
|
|
58
|
+
const sourceId = AbiCoder.decodeParameter('uint256', subData[0]).toString();
|
|
59
|
+
const sourceType = AbiCoder.decodeParameter('uint256', subData[1]).toString();
|
|
60
|
+
return { sourceId, sourceType };
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
.___ ___. ___ __ ___ _______ .______
|
|
65
|
+
| \/ | / \ | |/ / | ____|| _ \
|
|
66
|
+
| \ / | / ^ \ | ' / | |__ | |_) |
|
|
67
|
+
| |\/| | / /_\ \ | < | __| | /
|
|
68
|
+
| | | | / _____ \ | . \ | |____ | |\ \----.
|
|
69
|
+
|__| |__| /__/ \__\ |__|\__\ |_______|| _| `._____|
|
|
70
|
+
*/
|
|
9
71
|
export const makerRepayFromSavingsSubData = {
|
|
10
72
|
encode(vaultId, targetRatioPercentage, chainId, daiAddr, mcdCdpManagerAddr) {
|
|
11
73
|
const _daiAddr = daiAddr || getAssetInfo('DAI', chainId).address;
|
|
@@ -29,13 +91,6 @@ export const makerRepayFromSavingsSubData = {
|
|
|
29
91
|
};
|
|
30
92
|
},
|
|
31
93
|
};
|
|
32
|
-
export const liquityRepayFromSavingsSubData = {
|
|
33
|
-
decode(subData) {
|
|
34
|
-
const weiRatio = AbiCoder.decodeParameter('uint256', subData[1]);
|
|
35
|
-
const targetRatio = weiToRatioPercentage(weiRatio);
|
|
36
|
-
return { targetRatio };
|
|
37
|
-
},
|
|
38
|
-
};
|
|
39
94
|
export const makerCloseSubData = {
|
|
40
95
|
encode(vaultId, closeToAssetAddr, chainId, daiAddr, mcdCdpManagerAddr) {
|
|
41
96
|
const _daiAddr = daiAddr || getAssetInfo('DAI', chainId).address;
|
|
@@ -70,6 +125,35 @@ export const makerLeverageManagementSubData = {
|
|
|
70
125
|
return { vaultId, targetRatio };
|
|
71
126
|
},
|
|
72
127
|
};
|
|
128
|
+
export const makerLeverageManagementWithoutSubProxy = {
|
|
129
|
+
encode(vaultId, targetRatio, daiAddr) {
|
|
130
|
+
const encodedVaultId = AbiCoder.encodeParameter('uint256', vaultId);
|
|
131
|
+
const encodedTargetRatio = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
|
|
132
|
+
const encodedDaiAddr = AbiCoder.encodeParameter('address', daiAddr || getAssetInfo('DAI', 1).address);
|
|
133
|
+
return [encodedVaultId, encodedTargetRatio, encodedDaiAddr];
|
|
134
|
+
},
|
|
135
|
+
decode(subData) {
|
|
136
|
+
const vaultId = +AbiCoder.decodeParameter('uint256', subData[0]).toString();
|
|
137
|
+
const targetRatio = weiToRatioPercentage(AbiCoder.decodeParameter('uint256', subData[1]));
|
|
138
|
+
const daiAddr = AbiCoder.decodeParameter('address', subData[2]).toString();
|
|
139
|
+
return { vaultId, targetRatio, daiAddr };
|
|
140
|
+
},
|
|
141
|
+
};
|
|
142
|
+
/**
|
|
143
|
+
__ __ ______ __ __ __ .___________.____ ____ ____ ____ __
|
|
144
|
+
| | | | / __ \ | | | | | | | |\ \ / / \ \ / / /_ |
|
|
145
|
+
| | | | | | | | | | | | | | `---| |----` \ \/ / \ \/ / | |
|
|
146
|
+
| | | | | | | | | | | | | | | | \_ _/ \ / | |
|
|
147
|
+
| `----.| | | `--' '--.| `--' | | | | | | | \ / | |
|
|
148
|
+
|_______||__| \_____\_____\\______/ |__| |__| |__| \__/ |_|
|
|
149
|
+
*/
|
|
150
|
+
export const liquityRepayFromSavingsSubData = {
|
|
151
|
+
decode(subData) {
|
|
152
|
+
const weiRatio = AbiCoder.decodeParameter('uint256', subData[1]);
|
|
153
|
+
const targetRatio = weiToRatioPercentage(weiRatio);
|
|
154
|
+
return { targetRatio };
|
|
155
|
+
},
|
|
156
|
+
};
|
|
73
157
|
export const liquityLeverageManagementSubData = {
|
|
74
158
|
decode: (subData) => {
|
|
75
159
|
const weiRatio = AbiCoder.decodeParameter('uint256', subData[1]);
|
|
@@ -96,6 +180,201 @@ export const liquityCloseSubData = {
|
|
|
96
180
|
return { closeToAssetAddr, debtAddr };
|
|
97
181
|
},
|
|
98
182
|
};
|
|
183
|
+
export const liquityDsrPaybackSubData = {
|
|
184
|
+
encode: (targetRatio) => {
|
|
185
|
+
const daiAddress = getAssetInfo('DAI').address;
|
|
186
|
+
const lusdAddress = getAssetInfo('LUSD').address;
|
|
187
|
+
const ratioStateEncoded = AbiCoder.encodeParameter('uint8', RatioState.UNDER);
|
|
188
|
+
const targetRatioEncoded = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
|
|
189
|
+
const daiAddressEncoded = AbiCoder.encodeParameter('address', daiAddress);
|
|
190
|
+
const lusdAddressEncoded = AbiCoder.encodeParameter('address', lusdAddress);
|
|
191
|
+
return [ratioStateEncoded, targetRatioEncoded, daiAddressEncoded, lusdAddressEncoded];
|
|
192
|
+
},
|
|
193
|
+
decode: (subData) => {
|
|
194
|
+
const weiRatio = AbiCoder.decodeParameter('uint256', subData[1]);
|
|
195
|
+
const targetRatio = weiToRatioPercentage(weiRatio);
|
|
196
|
+
return { targetRatio };
|
|
197
|
+
},
|
|
198
|
+
};
|
|
199
|
+
export const liquityDsrSupplySubData = {
|
|
200
|
+
encode: (targetRatio) => {
|
|
201
|
+
const daiAddress = getAssetInfo('DAI').address;
|
|
202
|
+
const wethAddress = getAssetInfo('WETH').address;
|
|
203
|
+
const ratioStateEncoded = AbiCoder.encodeParameter('uint8', RatioState.UNDER);
|
|
204
|
+
const targetRatioEncoded = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
|
|
205
|
+
const daiAddressEncoded = AbiCoder.encodeParameter('address', daiAddress);
|
|
206
|
+
const wethAddressEncoded = AbiCoder.encodeParameter('address', wethAddress);
|
|
207
|
+
return [ratioStateEncoded, targetRatioEncoded, daiAddressEncoded, wethAddressEncoded];
|
|
208
|
+
},
|
|
209
|
+
decode: (subData) => {
|
|
210
|
+
const weiRatio = AbiCoder.decodeParameter('uint256', subData[1]);
|
|
211
|
+
const targetRatio = weiToRatioPercentage(weiRatio);
|
|
212
|
+
return { targetRatio };
|
|
213
|
+
},
|
|
214
|
+
};
|
|
215
|
+
export const liquityDebtInFrontRepaySubData = {
|
|
216
|
+
encode: (targetRatioIncrease) => {
|
|
217
|
+
const wethAddress = getAssetInfo('WETH').address;
|
|
218
|
+
const lusdAddress = getAssetInfo('LUSD').address;
|
|
219
|
+
const wethAddressEncoded = AbiCoder.encodeParameter('address', wethAddress);
|
|
220
|
+
const lusdAddressEncoded = AbiCoder.encodeParameter('address', lusdAddress);
|
|
221
|
+
const targetRatioIncreaseEncoded = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatioIncrease));
|
|
222
|
+
const withdrawIdEncoded = AbiCoder.encodeParameter('uint8', 1); // withdraw - 1
|
|
223
|
+
const paybackIdEncoded = AbiCoder.encodeParameter('uint8', 0); // payback - 0
|
|
224
|
+
return [wethAddressEncoded, lusdAddressEncoded, targetRatioIncreaseEncoded, withdrawIdEncoded, paybackIdEncoded];
|
|
225
|
+
},
|
|
226
|
+
decode: (subData) => {
|
|
227
|
+
const weiRatio = AbiCoder.decodeParameter('uint256', subData[2]);
|
|
228
|
+
const targetRatioIncrease = weiToRatioPercentage(weiRatio);
|
|
229
|
+
return { targetRatioIncrease };
|
|
230
|
+
},
|
|
231
|
+
};
|
|
232
|
+
/**
|
|
233
|
+
* __ __ ______ __ __ __ .___________.____ ____ ____ ____ ___
|
|
234
|
+
| | | | / __ \ | | | | | | | |\ \ / / \ \ / / |__ \
|
|
235
|
+
| | | | | | | | | | | | | | `---| |----` \ \/ / \ \/ / ) |
|
|
236
|
+
| | | | | | | | | | | | | | | | \_ _/ \ / / /
|
|
237
|
+
| `----.| | | `--' '--.| `--' | | | | | | | \ / / /_
|
|
238
|
+
|_______||__| \_____\_____\\______/ |__| |__| |__| \__/ |____|
|
|
239
|
+
*/
|
|
240
|
+
export const liquityV2LeverageManagementSubData = {
|
|
241
|
+
encode: (market, troveId, collToken, boldToken, ratioState, targetRatio) => {
|
|
242
|
+
const marketEncoded = AbiCoder.encodeParameter('address', market);
|
|
243
|
+
const troveIdEncoded = AbiCoder.encodeParameter('uint256', troveId);
|
|
244
|
+
const collTokenEncoded = AbiCoder.encodeParameter('address', collToken);
|
|
245
|
+
const boldTokenEncoded = AbiCoder.encodeParameter('address', boldToken);
|
|
246
|
+
const ratioStateEncoded = AbiCoder.encodeParameter('uint8', ratioState);
|
|
247
|
+
const targetRatioEncoded = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
|
|
248
|
+
const isRepay = ratioState === RatioState.UNDER;
|
|
249
|
+
const collActionType = isRepay ? CollActionType.WITHDRAW : CollActionType.SUPPLY;
|
|
250
|
+
const debtActionType = isRepay ? DebtActionType.PAYBACK : DebtActionType.BORROW;
|
|
251
|
+
const collActionTypeEncoded = AbiCoder.encodeParameter('uint8', collActionType);
|
|
252
|
+
const debtActionTypeEncoded = AbiCoder.encodeParameter('uint8', debtActionType);
|
|
253
|
+
return [
|
|
254
|
+
marketEncoded,
|
|
255
|
+
troveIdEncoded,
|
|
256
|
+
collTokenEncoded,
|
|
257
|
+
boldTokenEncoded,
|
|
258
|
+
ratioStateEncoded,
|
|
259
|
+
targetRatioEncoded,
|
|
260
|
+
collActionTypeEncoded,
|
|
261
|
+
debtActionTypeEncoded,
|
|
262
|
+
];
|
|
263
|
+
},
|
|
264
|
+
decode: (subData) => {
|
|
265
|
+
const market = AbiCoder.decodeParameter('address', subData[0]);
|
|
266
|
+
const troveId = AbiCoder.decodeParameter('uint256', subData[1]);
|
|
267
|
+
const collToken = AbiCoder.decodeParameter('address', subData[2]);
|
|
268
|
+
const boldToken = AbiCoder.decodeParameter('address', subData[3]);
|
|
269
|
+
const ratioState = AbiCoder.decodeParameter('uint8', subData[4]);
|
|
270
|
+
const weiRatio = AbiCoder.decodeParameter('uint256', subData[5]);
|
|
271
|
+
const targetRatio = weiToRatioPercentage(weiRatio);
|
|
272
|
+
return {
|
|
273
|
+
market, troveId, collToken, boldToken, ratioState, targetRatio,
|
|
274
|
+
};
|
|
275
|
+
},
|
|
276
|
+
};
|
|
277
|
+
export const liquityV2CloseSubData = {
|
|
278
|
+
encode(market, troveId, collToken, boldToken, closeType) {
|
|
279
|
+
const marketEncoded = AbiCoder.encodeParameter('address', market);
|
|
280
|
+
const troveIdEncoded = AbiCoder.encodeParameter('uint256', troveId);
|
|
281
|
+
const collAddrEncoded = AbiCoder.encodeParameter('address', collToken);
|
|
282
|
+
const boldTokenEncoded = AbiCoder.encodeParameter('address', boldToken);
|
|
283
|
+
const wethAddress = getAssetInfo('WETH').address;
|
|
284
|
+
const wethAddressEncoded = AbiCoder.encodeParameter('address', wethAddress);
|
|
285
|
+
const gasCompensation = new Dec('0.0375').mul(1e18).toString();
|
|
286
|
+
const gasCompensationEncoded = AbiCoder.encodeParameter('uint256', gasCompensation);
|
|
287
|
+
const closeTypeEncoded = AbiCoder.encodeParameter('uint8', closeType);
|
|
288
|
+
return [
|
|
289
|
+
marketEncoded,
|
|
290
|
+
troveIdEncoded,
|
|
291
|
+
collAddrEncoded,
|
|
292
|
+
boldTokenEncoded,
|
|
293
|
+
wethAddressEncoded,
|
|
294
|
+
gasCompensationEncoded,
|
|
295
|
+
closeTypeEncoded,
|
|
296
|
+
];
|
|
297
|
+
},
|
|
298
|
+
decode(subData) {
|
|
299
|
+
const market = AbiCoder.decodeParameter('address', subData[0]);
|
|
300
|
+
const troveId = AbiCoder.decodeParameter('uint256', subData[1]);
|
|
301
|
+
const collToken = AbiCoder.decodeParameter('address', subData[2]);
|
|
302
|
+
const boldToken = AbiCoder.decodeParameter('address', subData[3]);
|
|
303
|
+
// skip wethAddress and gasCompensation
|
|
304
|
+
const closeType = AbiCoder.decodeParameter('uint8', subData[6]);
|
|
305
|
+
return {
|
|
306
|
+
market, troveId, collToken, boldToken, closeType,
|
|
307
|
+
};
|
|
308
|
+
},
|
|
309
|
+
};
|
|
310
|
+
export const liquityV2LeverageManagementOnPriceSubData = {
|
|
311
|
+
encode(market, troveId, collToken, boldToken, targetRatio, isRepayOnPrice) {
|
|
312
|
+
const encodedMarket = AbiCoder.encodeParameter('address', market);
|
|
313
|
+
const encodedTroveId = AbiCoder.encodeParameter('uint256', troveId);
|
|
314
|
+
const encodedCollToken = AbiCoder.encodeParameter('address', collToken);
|
|
315
|
+
const encodedBoldToken = AbiCoder.encodeParameter('address', boldToken);
|
|
316
|
+
const encodedTargetRatio = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
|
|
317
|
+
const collActionType = isRepayOnPrice ? CollActionType.WITHDRAW : CollActionType.SUPPLY;
|
|
318
|
+
const debtActionType = isRepayOnPrice ? DebtActionType.PAYBACK : DebtActionType.BORROW;
|
|
319
|
+
const encodedCollActionType = AbiCoder.encodeParameter('uint8', collActionType);
|
|
320
|
+
const encodedDebtActionType = AbiCoder.encodeParameter('uint8', debtActionType);
|
|
321
|
+
return [
|
|
322
|
+
encodedMarket,
|
|
323
|
+
encodedTroveId,
|
|
324
|
+
encodedCollToken,
|
|
325
|
+
encodedBoldToken,
|
|
326
|
+
encodedTargetRatio,
|
|
327
|
+
encodedCollActionType,
|
|
328
|
+
encodedDebtActionType,
|
|
329
|
+
];
|
|
330
|
+
},
|
|
331
|
+
decode(subData) {
|
|
332
|
+
const market = AbiCoder.decodeParameter('address', subData[0]);
|
|
333
|
+
const troveId = AbiCoder.decodeParameter('uint256', subData[1]);
|
|
334
|
+
const collToken = AbiCoder.decodeParameter('address', subData[2]);
|
|
335
|
+
const boldToken = AbiCoder.decodeParameter('address', subData[3]);
|
|
336
|
+
const weiRatio = AbiCoder.decodeParameter('uint256', subData[4]);
|
|
337
|
+
const targetRatio = weiToRatioPercentage(weiRatio);
|
|
338
|
+
return {
|
|
339
|
+
market, troveId, collToken, boldToken, targetRatio,
|
|
340
|
+
};
|
|
341
|
+
},
|
|
342
|
+
};
|
|
343
|
+
export const liquityV2PaybackSubData = {
|
|
344
|
+
encode: (market, troveId, boldToken, targetRatio, ratioState) => {
|
|
345
|
+
const marketEncoded = AbiCoder.encodeParameter('address', market);
|
|
346
|
+
const troveIdEncoded = AbiCoder.encodeParameter('uint256', troveId);
|
|
347
|
+
const boldTokenEncoded = AbiCoder.encodeParameter('address', boldToken);
|
|
348
|
+
const targetRatioEncoded = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
|
|
349
|
+
const ratioStateEncoded = AbiCoder.encodeParameter('uint8', ratioState);
|
|
350
|
+
return [
|
|
351
|
+
marketEncoded,
|
|
352
|
+
troveIdEncoded,
|
|
353
|
+
boldTokenEncoded,
|
|
354
|
+
targetRatioEncoded,
|
|
355
|
+
ratioStateEncoded,
|
|
356
|
+
];
|
|
357
|
+
},
|
|
358
|
+
decode: (subData) => {
|
|
359
|
+
const market = AbiCoder.decodeParameter('address', subData[0]);
|
|
360
|
+
const troveId = AbiCoder.decodeParameter('uint256', subData[1]);
|
|
361
|
+
const boldToken = AbiCoder.decodeParameter('address', subData[2]);
|
|
362
|
+
const weiRatio = AbiCoder.decodeParameter('uint256', subData[3]);
|
|
363
|
+
const ratioState = AbiCoder.decodeParameter('uint8', subData[4]);
|
|
364
|
+
const targetRatio = weiToRatioPercentage(weiRatio);
|
|
365
|
+
return {
|
|
366
|
+
market, troveId, boldToken, ratioState, targetRatio,
|
|
367
|
+
};
|
|
368
|
+
},
|
|
369
|
+
};
|
|
370
|
+
/**
|
|
371
|
+
___ ___ ____ ____ _______ ____ ____ ___
|
|
372
|
+
/ \ / \ \ \ / / | ____| \ \ / / |__ \
|
|
373
|
+
/ ^ \ / ^ \ \ \/ / | |__ \ \/ / ) |
|
|
374
|
+
/ /_\ \ / /_\ \ \ / | __| \ / / /
|
|
375
|
+
/ _____ \ / _____ \ \ / | |____ \ / / /_
|
|
376
|
+
/__/ \__\ /__/ \__\ \__/ |_______| \__/ |____|
|
|
377
|
+
*/
|
|
99
378
|
export const aaveV2LeverageManagementSubData = {
|
|
100
379
|
encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
101
380
|
return [
|
|
@@ -113,6 +392,14 @@ export const aaveV2LeverageManagementSubData = {
|
|
|
113
392
|
return { targetRatio };
|
|
114
393
|
},
|
|
115
394
|
};
|
|
395
|
+
/**
|
|
396
|
+
___ ___ ____ ____ _______ ____ ____ ____
|
|
397
|
+
/ \ / \ \ \ / / | ____| \ \ / / |___ \
|
|
398
|
+
/ ^ \ / ^ \ \ \/ / | |__ \ \/ / __) |
|
|
399
|
+
/ /_\ \ / /_\ \ \ / | __| \ / |__ <
|
|
400
|
+
/ _____ \ / _____ \ \ / | |____ \ / ___) |
|
|
401
|
+
/__/ \__\ /__/ \__\ \__/ |_______| \__/ |____/
|
|
402
|
+
*/
|
|
116
403
|
export const aaveV3LeverageManagementSubData = {
|
|
117
404
|
decode(subData) {
|
|
118
405
|
const ratioWei = AbiCoder.decodeParameter('uint256', subData[0]);
|
|
@@ -260,16 +547,181 @@ export const aaveV3QuotePriceSubData = {
|
|
|
260
547
|
};
|
|
261
548
|
},
|
|
262
549
|
};
|
|
263
|
-
export const
|
|
264
|
-
encode(
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
550
|
+
export const aaveV3LeverageManagementOnPriceSubData = {
|
|
551
|
+
encode(collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio) {
|
|
552
|
+
const encodedColl = AbiCoder.encodeParameter('address', collAsset);
|
|
553
|
+
const encodedCollId = AbiCoder.encodeParameter('uint8', collAssetId);
|
|
554
|
+
const encodedDebt = AbiCoder.encodeParameter('address', debtAsset);
|
|
555
|
+
const encodedDebtId = AbiCoder.encodeParameter('uint8', debtAssetId);
|
|
556
|
+
const encodedMarket = AbiCoder.encodeParameter('address', marketAddr);
|
|
557
|
+
const encodedTargetRatio = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
|
|
558
|
+
const useOnBehalfEncoded = AbiCoder.encodeParameter('bool', false);
|
|
559
|
+
return [
|
|
560
|
+
encodedColl,
|
|
561
|
+
encodedCollId,
|
|
562
|
+
encodedDebt,
|
|
563
|
+
encodedDebtId,
|
|
564
|
+
encodedMarket,
|
|
565
|
+
encodedTargetRatio,
|
|
566
|
+
useOnBehalfEncoded,
|
|
567
|
+
];
|
|
568
|
+
},
|
|
569
|
+
decode(subData) {
|
|
570
|
+
const collAsset = AbiCoder.decodeParameter('address', subData[0]);
|
|
571
|
+
const collAssetId = Number(AbiCoder.decodeParameter('uint8', subData[1]));
|
|
572
|
+
const debtAsset = AbiCoder.decodeParameter('address', subData[2]);
|
|
573
|
+
const debtAssetId = Number(AbiCoder.decodeParameter('uint8', subData[3]));
|
|
574
|
+
const marketAddr = AbiCoder.decodeParameter('address', subData[4]);
|
|
575
|
+
const weiRatio = AbiCoder.decodeParameter('uint256', subData[5]);
|
|
576
|
+
const targetRatio = weiToRatioPercentage(weiRatio);
|
|
577
|
+
return {
|
|
578
|
+
collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio,
|
|
579
|
+
};
|
|
580
|
+
},
|
|
581
|
+
};
|
|
582
|
+
/**
|
|
583
|
+
* ___ ___ ____ ____ _______ ____ ____ _ _
|
|
584
|
+
/ \ / \ \ \ / / | ____| \ \ / / | || |
|
|
585
|
+
/ ^ \ / ^ \ \ \/ / | |__ \ \/ / | || |_
|
|
586
|
+
/ /_\ \ / /_\ \ \ / | __| \ / |__ _|
|
|
587
|
+
/ _____ \ / _____ \ \ / | |____ \ / | |
|
|
588
|
+
/__/ \__\ /__/ \__\ \__/ |_______| \__/ |_|
|
|
589
|
+
*/
|
|
590
|
+
export const aaveV4LeverageManagementSubData = {
|
|
591
|
+
encode: (spoke, owner, ratioState, targetRatio) => {
|
|
592
|
+
const spokeEncoded = AbiCoder.encodeParameter('address', spoke);
|
|
593
|
+
const ownerEncoded = AbiCoder.encodeParameter('address', owner);
|
|
594
|
+
const ratioStateEncoded = AbiCoder.encodeParameter('uint8', ratioState);
|
|
595
|
+
const targetRatioEncoded = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
|
|
596
|
+
return [spokeEncoded, ownerEncoded, ratioStateEncoded, targetRatioEncoded];
|
|
597
|
+
},
|
|
598
|
+
decode: (subData) => {
|
|
599
|
+
const spoke = AbiCoder.decodeParameter('address', subData[0]);
|
|
600
|
+
const owner = AbiCoder.decodeParameter('address', subData[1]);
|
|
601
|
+
const ratioState = Number(AbiCoder.decodeParameter('uint8', subData[2]));
|
|
602
|
+
const targetRatio = weiToRatioPercentage(AbiCoder.decodeParameter('uint256', subData[3]));
|
|
603
|
+
return {
|
|
604
|
+
spoke, owner, ratioState, targetRatio,
|
|
605
|
+
};
|
|
606
|
+
},
|
|
607
|
+
};
|
|
608
|
+
export const aaveV4LeverageManagementOnPriceSubData = {
|
|
609
|
+
encode: (spoke, owner, collAsset, collAssetId, debtAsset, debtAssetId, ratioState, targetRatio) => {
|
|
610
|
+
const spokeEncoded = AbiCoder.encodeParameter('address', spoke);
|
|
611
|
+
const ownerEncoded = AbiCoder.encodeParameter('address', owner);
|
|
612
|
+
const collAssetEncoded = AbiCoder.encodeParameter('address', collAsset);
|
|
613
|
+
const collAssetIdEncoded = AbiCoder.encodeParameter('uint256', collAssetId);
|
|
614
|
+
const debtAssetEncoded = AbiCoder.encodeParameter('address', debtAsset);
|
|
615
|
+
const debtAssetIdEncoded = AbiCoder.encodeParameter('uint256', debtAssetId);
|
|
616
|
+
const ratioStateEncoded = AbiCoder.encodeParameter('uint8', ratioState);
|
|
617
|
+
const targetRatioEncoded = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
|
|
618
|
+
return [
|
|
619
|
+
spokeEncoded,
|
|
620
|
+
ownerEncoded,
|
|
621
|
+
collAssetEncoded,
|
|
622
|
+
collAssetIdEncoded,
|
|
623
|
+
debtAssetEncoded,
|
|
624
|
+
debtAssetIdEncoded,
|
|
625
|
+
ratioStateEncoded,
|
|
626
|
+
targetRatioEncoded,
|
|
627
|
+
];
|
|
628
|
+
},
|
|
629
|
+
decode: (subData) => {
|
|
630
|
+
const spoke = AbiCoder.decodeParameter('address', subData[0]);
|
|
631
|
+
const owner = AbiCoder.decodeParameter('address', subData[1]);
|
|
632
|
+
const collAsset = AbiCoder.decodeParameter('address', subData[2]);
|
|
633
|
+
const collAssetId = Number(AbiCoder.decodeParameter('uint256', subData[3]));
|
|
634
|
+
const debtAsset = AbiCoder.decodeParameter('address', subData[4]);
|
|
635
|
+
const debtAssetId = Number(AbiCoder.decodeParameter('uint256', subData[5]));
|
|
636
|
+
const ratioState = Number(AbiCoder.decodeParameter('uint8', subData[6]));
|
|
637
|
+
const targetRatio = weiToRatioPercentage(AbiCoder.decodeParameter('uint256', subData[7]));
|
|
638
|
+
return {
|
|
639
|
+
spoke, owner, collAsset, collAssetId, debtAsset, debtAssetId, ratioState, targetRatio,
|
|
640
|
+
};
|
|
641
|
+
},
|
|
642
|
+
};
|
|
643
|
+
export const aaveV4CloseSubData = {
|
|
644
|
+
encode: (spoke, owner, collAsset, collAssetId, debtAsset, debtAssetId, closeType) => {
|
|
645
|
+
const spokeEncoded = AbiCoder.encodeParameter('address', spoke);
|
|
646
|
+
const ownerEncoded = AbiCoder.encodeParameter('address', owner);
|
|
647
|
+
const collAssetEncoded = AbiCoder.encodeParameter('address', collAsset);
|
|
648
|
+
const collAssetIdEncoded = AbiCoder.encodeParameter('uint256', collAssetId);
|
|
649
|
+
const debtAssetEncoded = AbiCoder.encodeParameter('address', debtAsset);
|
|
650
|
+
const debtAssetIdEncoded = AbiCoder.encodeParameter('uint256', debtAssetId);
|
|
651
|
+
const closeTypeEncoded = AbiCoder.encodeParameter('uint8', closeType);
|
|
652
|
+
return [
|
|
653
|
+
spokeEncoded,
|
|
654
|
+
ownerEncoded,
|
|
655
|
+
collAssetEncoded,
|
|
656
|
+
collAssetIdEncoded,
|
|
657
|
+
debtAssetEncoded,
|
|
658
|
+
debtAssetIdEncoded,
|
|
659
|
+
closeTypeEncoded,
|
|
660
|
+
];
|
|
661
|
+
},
|
|
662
|
+
decode: (subData) => {
|
|
663
|
+
const spoke = AbiCoder.decodeParameter('address', subData[0]);
|
|
664
|
+
const owner = AbiCoder.decodeParameter('address', subData[1]);
|
|
665
|
+
const collAsset = AbiCoder.decodeParameter('address', subData[2]);
|
|
666
|
+
const collAssetId = Number(AbiCoder.decodeParameter('uint256', subData[3]));
|
|
667
|
+
const debtAsset = AbiCoder.decodeParameter('address', subData[4]);
|
|
668
|
+
const debtAssetId = Number(AbiCoder.decodeParameter('uint256', subData[5]));
|
|
669
|
+
const closeType = Number(AbiCoder.decodeParameter('uint8', subData[6]));
|
|
670
|
+
return {
|
|
671
|
+
spoke, owner, collAsset, collAssetId, debtAsset, debtAssetId, closeType,
|
|
672
|
+
};
|
|
673
|
+
},
|
|
674
|
+
};
|
|
675
|
+
export const aaveV4CollateralSwitchSubData = {
|
|
676
|
+
encode: (spoke, owner, fromAsset, fromAssetId, toAsset, toAssetId, amountToSwitch) => {
|
|
677
|
+
const spokeEncoded = AbiCoder.encodeParameter('address', spoke);
|
|
678
|
+
const ownerEncoded = AbiCoder.encodeParameter('address', owner);
|
|
679
|
+
const fromAssetEncoded = AbiCoder.encodeParameter('address', fromAsset);
|
|
680
|
+
const fromAssetIdEncoded = AbiCoder.encodeParameter('uint256', fromAssetId);
|
|
681
|
+
const toAssetEncoded = AbiCoder.encodeParameter('address', toAsset);
|
|
682
|
+
const toAssetIdEncoded = AbiCoder.encodeParameter('uint256', toAssetId);
|
|
683
|
+
const amountToSwitchEncoded = AbiCoder.encodeParameter('uint256', amountToSwitch);
|
|
684
|
+
return [
|
|
685
|
+
spokeEncoded,
|
|
686
|
+
ownerEncoded,
|
|
687
|
+
fromAssetEncoded,
|
|
688
|
+
fromAssetIdEncoded,
|
|
689
|
+
toAssetEncoded,
|
|
690
|
+
toAssetIdEncoded,
|
|
691
|
+
amountToSwitchEncoded,
|
|
692
|
+
];
|
|
693
|
+
},
|
|
694
|
+
decode: (subData) => {
|
|
695
|
+
const spoke = AbiCoder.decodeParameter('address', subData[0]);
|
|
696
|
+
const owner = AbiCoder.decodeParameter('address', subData[1]);
|
|
697
|
+
const fromAsset = AbiCoder.decodeParameter('address', subData[2]);
|
|
698
|
+
const fromAssetId = Number(AbiCoder.decodeParameter('uint256', subData[3]));
|
|
699
|
+
const toAsset = AbiCoder.decodeParameter('address', subData[4]);
|
|
700
|
+
const toAssetId = Number(AbiCoder.decodeParameter('uint256', subData[5]));
|
|
701
|
+
const amountToSwitch = AbiCoder.decodeParameter('uint256', subData[6]);
|
|
702
|
+
return {
|
|
703
|
+
spoke, owner, fromAsset, fromAssetId, toAsset, toAssetId, amountToSwitch,
|
|
704
|
+
};
|
|
705
|
+
},
|
|
706
|
+
};
|
|
707
|
+
/**
|
|
708
|
+
______ ______ .___ ___. .______ ____ ____ ___
|
|
709
|
+
/ | / __ \ | \/ | | _ \ \ \ / / |__ \
|
|
710
|
+
| ,----'| | | | | \ / | | |_) | \ \/ / ) |
|
|
711
|
+
| | | | | | | |\/| | | ___/ \ / / /
|
|
712
|
+
| `----.| `--' | | | | | | | \ / / /_
|
|
713
|
+
\______| \______/ |__| |__| | _| \__/ |____|
|
|
714
|
+
*/
|
|
715
|
+
export const compoundV2LeverageManagementSubData = {
|
|
716
|
+
encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
717
|
+
return [
|
|
718
|
+
new Dec(triggerRepayRatio).mul(1e16).toString(),
|
|
719
|
+
new Dec(triggerBoostRatio).mul(1e16).toString(),
|
|
720
|
+
new Dec(targetBoostRatio).mul(1e16).toString(),
|
|
721
|
+
new Dec(targetRepayRatio).mul(1e16).toString(),
|
|
722
|
+
// @ts-ignore // TODO
|
|
723
|
+
boostEnabled,
|
|
724
|
+
];
|
|
273
725
|
},
|
|
274
726
|
decode(subData) {
|
|
275
727
|
const weiRatio = AbiCoder.decodeParameter('uint256', subData[0]);
|
|
@@ -277,6 +729,14 @@ export const compoundV2LeverageManagementSubData = {
|
|
|
277
729
|
return { targetRatio };
|
|
278
730
|
},
|
|
279
731
|
};
|
|
732
|
+
/**
|
|
733
|
+
______ ______ .___ ___. .______ ____ ____ ____
|
|
734
|
+
/ | / __ \ | \/ | | _ \ \ \ / / |___ \
|
|
735
|
+
| ,----'| | | | | \ / | | |_) | \ \/ / __) |
|
|
736
|
+
| | | | | | | |\/| | | ___/ \ / |__ <
|
|
737
|
+
| `----.| `--' | | | | | | | \ / ___) |
|
|
738
|
+
\______| \______/ |__| |__| | _| \__/ |____/
|
|
739
|
+
*/
|
|
280
740
|
export const compoundV3LeverageManagementSubData = {
|
|
281
741
|
encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA) {
|
|
282
742
|
return [
|
|
@@ -319,52 +779,70 @@ export const compoundV3L2LeverageManagementSubData = {
|
|
|
319
779
|
return { targetRatio };
|
|
320
780
|
},
|
|
321
781
|
};
|
|
322
|
-
export const
|
|
323
|
-
encode(
|
|
782
|
+
export const compoundV3LeverageManagementOnPriceSubData = {
|
|
783
|
+
encode(market, collToken, baseToken, targetRatio, ratioState, user) {
|
|
784
|
+
const marketEncoded = AbiCoder.encodeParameter('address', market);
|
|
785
|
+
const collTokenEncoded = AbiCoder.encodeParameter('address', collToken);
|
|
786
|
+
const baseTokenEncoded = AbiCoder.encodeParameter('address', baseToken);
|
|
787
|
+
const targetRatioEncoded = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
|
|
788
|
+
const ratioStateEncoded = AbiCoder.encodeParameter('uint8', ratioState);
|
|
789
|
+
const userEncoded = AbiCoder.encodeParameter('address', user);
|
|
324
790
|
return [
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
791
|
+
marketEncoded,
|
|
792
|
+
collTokenEncoded,
|
|
793
|
+
baseTokenEncoded,
|
|
794
|
+
targetRatioEncoded,
|
|
795
|
+
ratioStateEncoded,
|
|
796
|
+
userEncoded,
|
|
331
797
|
];
|
|
332
798
|
},
|
|
333
799
|
decode(subData) {
|
|
334
|
-
const
|
|
335
|
-
const
|
|
336
|
-
|
|
800
|
+
const market = AbiCoder.decodeParameter('address', subData[0]);
|
|
801
|
+
const collToken = AbiCoder.decodeParameter('address', subData[1]);
|
|
802
|
+
const baseToken = AbiCoder.decodeParameter('address', subData[2]);
|
|
803
|
+
const weiRatio = AbiCoder.decodeParameter('uint256', subData[3]);
|
|
804
|
+
const targetRatio = weiToRatioPercentage(weiRatio);
|
|
805
|
+
const ratioState = Number(AbiCoder.decodeParameter('uint8', subData[4]));
|
|
806
|
+
const owner = AbiCoder.decodeParameter('address', subData[5]);
|
|
807
|
+
return {
|
|
808
|
+
market, collToken, baseToken, targetRatio, ratioState, owner,
|
|
809
|
+
};
|
|
337
810
|
},
|
|
338
811
|
};
|
|
339
|
-
export const
|
|
340
|
-
encode(
|
|
341
|
-
const
|
|
342
|
-
|
|
812
|
+
export const compoundV3CloseSubData = {
|
|
813
|
+
encode(market, collToken, baseToken, closeType, user) {
|
|
814
|
+
const marketEncoded = AbiCoder.encodeParameter('address', market);
|
|
815
|
+
const collTokenEncoded = AbiCoder.encodeParameter('address', collToken);
|
|
816
|
+
const baseTokenEncoded = AbiCoder.encodeParameter('address', baseToken);
|
|
817
|
+
const closeTypeEncoded = AbiCoder.encodeParameter('uint8', closeType);
|
|
818
|
+
const userEncoded = AbiCoder.encodeParameter('address', user);
|
|
819
|
+
return [
|
|
820
|
+
marketEncoded,
|
|
821
|
+
collTokenEncoded,
|
|
822
|
+
baseTokenEncoded,
|
|
823
|
+
closeTypeEncoded,
|
|
824
|
+
userEncoded,
|
|
825
|
+
];
|
|
343
826
|
},
|
|
344
827
|
decode(subData) {
|
|
345
|
-
const
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
* @param chainId
|
|
354
|
-
*/
|
|
355
|
-
encode: (sourceId, sourceType, chainId = ChainId.Ethereum) => {
|
|
356
|
-
const sourceIdEncoded = AbiCoder.encodeParameter('uint256', sourceId);
|
|
357
|
-
const sourceTypeEncoded = AbiCoder.encodeParameter('uint256', sourceType);
|
|
358
|
-
const lusdAddressEncoded = AbiCoder.encodeParameter('address', getAssetInfo('LUSD', chainId).address);
|
|
359
|
-
const bLusdAddressEncoded = AbiCoder.encodeParameter('address', getAssetInfo('bLUSD', chainId).address);
|
|
360
|
-
return [sourceIdEncoded, sourceTypeEncoded, lusdAddressEncoded, bLusdAddressEncoded];
|
|
361
|
-
},
|
|
362
|
-
decode: (subData) => {
|
|
363
|
-
const sourceId = AbiCoder.decodeParameter('uint256', subData[0]).toString();
|
|
364
|
-
const sourceType = AbiCoder.decodeParameter('uint256', subData[1]).toString();
|
|
365
|
-
return { sourceId, sourceType };
|
|
828
|
+
const market = AbiCoder.decodeParameter('address', subData[0]);
|
|
829
|
+
const collToken = AbiCoder.decodeParameter('address', subData[1]);
|
|
830
|
+
const baseToken = AbiCoder.decodeParameter('address', subData[2]);
|
|
831
|
+
const closeType = Number(AbiCoder.decodeParameter('uint8', subData[3]));
|
|
832
|
+
const owner = AbiCoder.decodeParameter('address', subData[4]);
|
|
833
|
+
return {
|
|
834
|
+
market, collToken, baseToken, closeType, owner,
|
|
835
|
+
};
|
|
366
836
|
},
|
|
367
837
|
};
|
|
838
|
+
/**
|
|
839
|
+
__________ ___ ______ __ __ ___ .__ __. _______ _______
|
|
840
|
+
| ____\ \ / / / || | | | / \ | \ | | / _____|| ____|
|
|
841
|
+
| |__ \ V / | ,----'| |__| | / ^ \ | \| | | | __ | |__
|
|
842
|
+
| __| > < | | | __ | / /_\ \ | . ` | | | |_ | | __|
|
|
843
|
+
| |____ / . \ | `----.| | | | / _____ \ | |\ | | |__| | | |____
|
|
844
|
+
|_______/__/ \__\ \______||__| |__| /__/ \__\ |__| \__| \______| |_______|
|
|
845
|
+
*/
|
|
368
846
|
export const exchangeDcaSubData = {
|
|
369
847
|
encode: (fromToken, toToken, amount, interval) => {
|
|
370
848
|
const sellTokenEncoded = AbiCoder.encodeParameter('address', fromToken);
|
|
@@ -404,6 +882,14 @@ export const exchangeLimitOrderSubData = {
|
|
|
404
882
|
return { fromToken, toToken, amount };
|
|
405
883
|
},
|
|
406
884
|
};
|
|
885
|
+
/**
|
|
886
|
+
_______..______ ___ .______ __ ___
|
|
887
|
+
/ || _ \ / \ | _ \ | |/ /
|
|
888
|
+
| (----`| |_) | / ^ \ | |_) | | ' /
|
|
889
|
+
\ \ | ___/ / /_\ \ | / | <
|
|
890
|
+
.----) | | | / _____ \ | |\ \----.| . \
|
|
891
|
+
|_______/ | _| /__/ \__\ | _| `._____||__|\__\
|
|
892
|
+
*/
|
|
407
893
|
export const sparkLeverageManagementSubData = {
|
|
408
894
|
decode(subData) {
|
|
409
895
|
const ratioWei = AbiCoder.decodeParameter('uint256', subData[0]);
|
|
@@ -411,55 +897,60 @@ export const sparkLeverageManagementSubData = {
|
|
|
411
897
|
return { targetRatio };
|
|
412
898
|
},
|
|
413
899
|
};
|
|
414
|
-
export const
|
|
415
|
-
encode
|
|
416
|
-
const
|
|
417
|
-
const
|
|
418
|
-
const
|
|
419
|
-
const
|
|
420
|
-
|
|
421
|
-
const lusdAddressEncoded = AbiCoder.encodeParameter('address', lusdAddress);
|
|
422
|
-
return [ratioStateEncoded, targetRatioEncoded, daiAddressEncoded, lusdAddressEncoded];
|
|
423
|
-
},
|
|
424
|
-
decode: (subData) => {
|
|
425
|
-
const weiRatio = AbiCoder.decodeParameter('uint256', subData[1]);
|
|
426
|
-
const targetRatio = weiToRatioPercentage(weiRatio);
|
|
427
|
-
return { targetRatio };
|
|
428
|
-
},
|
|
429
|
-
};
|
|
430
|
-
export const liquityDsrSupplySubData = {
|
|
431
|
-
encode: (targetRatio) => {
|
|
432
|
-
const daiAddress = getAssetInfo('DAI').address;
|
|
433
|
-
const wethAddress = getAssetInfo('WETH').address;
|
|
434
|
-
const ratioStateEncoded = AbiCoder.encodeParameter('uint8', RatioState.UNDER);
|
|
435
|
-
const targetRatioEncoded = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
|
|
436
|
-
const daiAddressEncoded = AbiCoder.encodeParameter('address', daiAddress);
|
|
437
|
-
const wethAddressEncoded = AbiCoder.encodeParameter('address', wethAddress);
|
|
438
|
-
return [ratioStateEncoded, targetRatioEncoded, daiAddressEncoded, wethAddressEncoded];
|
|
900
|
+
export const sparkLeverageManagementSubDataWithoutSubProxy = {
|
|
901
|
+
encode(targetRatio, ratioState) {
|
|
902
|
+
const encodedTargetRatio = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
|
|
903
|
+
const encodedRatioState = AbiCoder.encodeParameter('uint8', ratioState);
|
|
904
|
+
const encodedUseDefaultMarket = AbiCoder.encodeParameter('bool', true);
|
|
905
|
+
const encodedUseOnBehalf = AbiCoder.encodeParameter('bool', false);
|
|
906
|
+
return [encodedTargetRatio, encodedRatioState, encodedUseDefaultMarket, encodedUseOnBehalf];
|
|
439
907
|
},
|
|
440
|
-
decode
|
|
441
|
-
const
|
|
442
|
-
const
|
|
443
|
-
return { targetRatio };
|
|
908
|
+
decode(subData) {
|
|
909
|
+
const targetRatio = weiToRatioPercentage(AbiCoder.decodeParameter('uint256', subData[0]));
|
|
910
|
+
const ratioState = AbiCoder.decodeParameter('uint8', subData[1]);
|
|
911
|
+
return { targetRatio, ratioState };
|
|
444
912
|
},
|
|
445
913
|
};
|
|
446
|
-
export const
|
|
447
|
-
encode
|
|
448
|
-
const
|
|
449
|
-
const
|
|
450
|
-
const
|
|
451
|
-
const
|
|
452
|
-
const
|
|
453
|
-
const
|
|
454
|
-
const
|
|
455
|
-
return [
|
|
914
|
+
export const sparkCloseGenericSubData = {
|
|
915
|
+
encode(collAsset, collAssetId, debtAsset, debtAssetId, closeType, marketAddr, user) {
|
|
916
|
+
const encodedColl = AbiCoder.encodeParameter('address', collAsset);
|
|
917
|
+
const encodedCollId = AbiCoder.encodeParameter('uint8', collAssetId);
|
|
918
|
+
const encodedDebt = AbiCoder.encodeParameter('address', debtAsset);
|
|
919
|
+
const encodedDebtId = AbiCoder.encodeParameter('uint8', debtAssetId);
|
|
920
|
+
const encodedCloseType = AbiCoder.encodeParameter('uint8', closeType);
|
|
921
|
+
const encodedMarket = AbiCoder.encodeParameter('address', marketAddr);
|
|
922
|
+
const userEncoded = AbiCoder.encodeParameter('address', user);
|
|
923
|
+
return [
|
|
924
|
+
encodedColl,
|
|
925
|
+
encodedCollId,
|
|
926
|
+
encodedDebt,
|
|
927
|
+
encodedDebtId,
|
|
928
|
+
encodedCloseType,
|
|
929
|
+
encodedMarket,
|
|
930
|
+
userEncoded,
|
|
931
|
+
];
|
|
456
932
|
},
|
|
457
|
-
decode
|
|
458
|
-
const
|
|
459
|
-
const
|
|
460
|
-
|
|
933
|
+
decode(subData) {
|
|
934
|
+
const collAsset = AbiCoder.decodeParameter('address', subData[0]);
|
|
935
|
+
const collAssetId = Number(AbiCoder.decodeParameter('uint8', subData[1]));
|
|
936
|
+
const debtAsset = AbiCoder.decodeParameter('address', subData[2]);
|
|
937
|
+
const debtAssetId = Number(AbiCoder.decodeParameter('uint8', subData[3]));
|
|
938
|
+
const closeType = Number(AbiCoder.decodeParameter('uint8', subData[4]));
|
|
939
|
+
const marketAddr = AbiCoder.decodeParameter('address', subData[5]);
|
|
940
|
+
const owner = AbiCoder.decodeParameter('address', subData[6]);
|
|
941
|
+
return {
|
|
942
|
+
collAsset, collAssetId, debtAsset, debtAssetId, closeType, marketAddr, owner,
|
|
943
|
+
};
|
|
461
944
|
},
|
|
462
945
|
};
|
|
946
|
+
/**
|
|
947
|
+
______ .______ ____ ____ __ __ _______. _______
|
|
948
|
+
/ || _ \ \ \ / / | | | | / || \
|
|
949
|
+
| ,----'| |_) | \ \/ / | | | | | (----`| .--. |
|
|
950
|
+
| | | / \ / | | | | \ \ | | | |
|
|
951
|
+
| `----.| |\ \----. \ / | `--' | .----) | | '--' |
|
|
952
|
+
\______|| _| `._____| \__/ \______/ |_______/ |_______/
|
|
953
|
+
*/
|
|
463
954
|
export const crvUSDLeverageManagementSubData = {
|
|
464
955
|
encode: (controllerAddr, ratioState, targetRatio, collTokenAddr, crvUSDAddr) => {
|
|
465
956
|
const controllerAddrEncoded = AbiCoder.encodeParameter('address', controllerAddr);
|
|
@@ -505,6 +996,14 @@ export const crvUSDPaybackSubData = {
|
|
|
505
996
|
};
|
|
506
997
|
},
|
|
507
998
|
};
|
|
999
|
+
/**
|
|
1000
|
+
.___ ___. ______ .______ .______ __ __ ______
|
|
1001
|
+
| \/ | / __ \ | _ \ | _ \ | | | | / __ \
|
|
1002
|
+
| \ / | | | | | | |_) | | |_) | | |__| | | | | |
|
|
1003
|
+
| |\/| | | | | | | / | ___/ | __ | | | | |
|
|
1004
|
+
| | | | | `--' | | |\ \----.| | | | | | | `--' |
|
|
1005
|
+
|__| |__| \______/ | _| `._____|| _| |__| |__| \______/
|
|
1006
|
+
*/
|
|
508
1007
|
export const morphoBlueLeverageManagementSubData = {
|
|
509
1008
|
encode: (loanToken, collToken, oracle, irm, lltv, ratioState, targetRatio, user, isEOA) => {
|
|
510
1009
|
const loanTokenEncoded = AbiCoder.encodeParameter('address', loanToken);
|
|
@@ -538,141 +1037,6 @@ export const morphoBlueLeverageManagementSubData = {
|
|
|
538
1037
|
};
|
|
539
1038
|
},
|
|
540
1039
|
};
|
|
541
|
-
export const aaveV3LeverageManagementOnPriceSubData = {
|
|
542
|
-
encode(collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio) {
|
|
543
|
-
const encodedColl = AbiCoder.encodeParameter('address', collAsset);
|
|
544
|
-
const encodedCollId = AbiCoder.encodeParameter('uint8', collAssetId);
|
|
545
|
-
const encodedDebt = AbiCoder.encodeParameter('address', debtAsset);
|
|
546
|
-
const encodedDebtId = AbiCoder.encodeParameter('uint8', debtAssetId);
|
|
547
|
-
const encodedMarket = AbiCoder.encodeParameter('address', marketAddr);
|
|
548
|
-
const encodedTargetRatio = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
|
|
549
|
-
const useOnBehalfEncoded = AbiCoder.encodeParameter('bool', false);
|
|
550
|
-
return [
|
|
551
|
-
encodedColl,
|
|
552
|
-
encodedCollId,
|
|
553
|
-
encodedDebt,
|
|
554
|
-
encodedDebtId,
|
|
555
|
-
encodedMarket,
|
|
556
|
-
encodedTargetRatio,
|
|
557
|
-
useOnBehalfEncoded,
|
|
558
|
-
];
|
|
559
|
-
},
|
|
560
|
-
decode(subData) {
|
|
561
|
-
const collAsset = AbiCoder.decodeParameter('address', subData[0]);
|
|
562
|
-
const collAssetId = Number(AbiCoder.decodeParameter('uint8', subData[1]));
|
|
563
|
-
const debtAsset = AbiCoder.decodeParameter('address', subData[2]);
|
|
564
|
-
const debtAssetId = Number(AbiCoder.decodeParameter('uint8', subData[3]));
|
|
565
|
-
const marketAddr = AbiCoder.decodeParameter('address', subData[4]);
|
|
566
|
-
const weiRatio = AbiCoder.decodeParameter('uint256', subData[5]);
|
|
567
|
-
const targetRatio = weiToRatioPercentage(weiRatio);
|
|
568
|
-
return {
|
|
569
|
-
collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio,
|
|
570
|
-
};
|
|
571
|
-
},
|
|
572
|
-
};
|
|
573
|
-
export const liquityV2LeverageManagementSubData = {
|
|
574
|
-
encode: (market, troveId, collToken, boldToken, ratioState, targetRatio) => {
|
|
575
|
-
const marketEncoded = AbiCoder.encodeParameter('address', market);
|
|
576
|
-
const troveIdEncoded = AbiCoder.encodeParameter('uint256', troveId);
|
|
577
|
-
const collTokenEncoded = AbiCoder.encodeParameter('address', collToken);
|
|
578
|
-
const boldTokenEncoded = AbiCoder.encodeParameter('address', boldToken);
|
|
579
|
-
const ratioStateEncoded = AbiCoder.encodeParameter('uint8', ratioState);
|
|
580
|
-
const targetRatioEncoded = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
|
|
581
|
-
const isRepay = ratioState === RatioState.UNDER;
|
|
582
|
-
const collActionType = isRepay ? CollActionType.WITHDRAW : CollActionType.SUPPLY;
|
|
583
|
-
const debtActionType = isRepay ? DebtActionType.PAYBACK : DebtActionType.BORROW;
|
|
584
|
-
const collActionTypeEncoded = AbiCoder.encodeParameter('uint8', collActionType);
|
|
585
|
-
const debtActionTypeEncoded = AbiCoder.encodeParameter('uint8', debtActionType);
|
|
586
|
-
return [
|
|
587
|
-
marketEncoded,
|
|
588
|
-
troveIdEncoded,
|
|
589
|
-
collTokenEncoded,
|
|
590
|
-
boldTokenEncoded,
|
|
591
|
-
ratioStateEncoded,
|
|
592
|
-
targetRatioEncoded,
|
|
593
|
-
collActionTypeEncoded,
|
|
594
|
-
debtActionTypeEncoded,
|
|
595
|
-
];
|
|
596
|
-
},
|
|
597
|
-
decode: (subData) => {
|
|
598
|
-
const market = AbiCoder.decodeParameter('address', subData[0]);
|
|
599
|
-
const troveId = AbiCoder.decodeParameter('uint256', subData[1]);
|
|
600
|
-
const collToken = AbiCoder.decodeParameter('address', subData[2]);
|
|
601
|
-
const boldToken = AbiCoder.decodeParameter('address', subData[3]);
|
|
602
|
-
const ratioState = AbiCoder.decodeParameter('uint8', subData[4]);
|
|
603
|
-
const weiRatio = AbiCoder.decodeParameter('uint256', subData[5]);
|
|
604
|
-
const targetRatio = weiToRatioPercentage(weiRatio);
|
|
605
|
-
return {
|
|
606
|
-
market, troveId, collToken, boldToken, ratioState, targetRatio,
|
|
607
|
-
};
|
|
608
|
-
},
|
|
609
|
-
};
|
|
610
|
-
export const liquityV2CloseSubData = {
|
|
611
|
-
encode(market, troveId, collToken, boldToken, closeType) {
|
|
612
|
-
const marketEncoded = AbiCoder.encodeParameter('address', market);
|
|
613
|
-
const troveIdEncoded = AbiCoder.encodeParameter('uint256', troveId);
|
|
614
|
-
const collAddrEncoded = AbiCoder.encodeParameter('address', collToken);
|
|
615
|
-
const boldTokenEncoded = AbiCoder.encodeParameter('address', boldToken);
|
|
616
|
-
const wethAddress = getAssetInfo('WETH').address;
|
|
617
|
-
const wethAddressEncoded = AbiCoder.encodeParameter('address', wethAddress);
|
|
618
|
-
const gasCompensation = new Dec('0.0375').mul(1e18).toString();
|
|
619
|
-
const gasCompensationEncoded = AbiCoder.encodeParameter('uint256', gasCompensation);
|
|
620
|
-
const closeTypeEncoded = AbiCoder.encodeParameter('uint8', closeType);
|
|
621
|
-
return [
|
|
622
|
-
marketEncoded,
|
|
623
|
-
troveIdEncoded,
|
|
624
|
-
collAddrEncoded,
|
|
625
|
-
boldTokenEncoded,
|
|
626
|
-
wethAddressEncoded,
|
|
627
|
-
gasCompensationEncoded,
|
|
628
|
-
closeTypeEncoded,
|
|
629
|
-
];
|
|
630
|
-
},
|
|
631
|
-
decode(subData) {
|
|
632
|
-
const market = AbiCoder.decodeParameter('address', subData[0]);
|
|
633
|
-
const troveId = AbiCoder.decodeParameter('uint256', subData[1]);
|
|
634
|
-
const collToken = AbiCoder.decodeParameter('address', subData[2]);
|
|
635
|
-
const boldToken = AbiCoder.decodeParameter('address', subData[3]);
|
|
636
|
-
// skip wethAddress and gasCompensation
|
|
637
|
-
const closeType = AbiCoder.decodeParameter('uint8', subData[6]);
|
|
638
|
-
return {
|
|
639
|
-
market, troveId, collToken, boldToken, closeType,
|
|
640
|
-
};
|
|
641
|
-
},
|
|
642
|
-
};
|
|
643
|
-
export const liquityV2LeverageManagementOnPriceSubData = {
|
|
644
|
-
encode(market, troveId, collToken, boldToken, targetRatio, isRepayOnPrice) {
|
|
645
|
-
const encodedMarket = AbiCoder.encodeParameter('address', market);
|
|
646
|
-
const encodedTroveId = AbiCoder.encodeParameter('uint256', troveId);
|
|
647
|
-
const encodedCollToken = AbiCoder.encodeParameter('address', collToken);
|
|
648
|
-
const encodedBoldToken = AbiCoder.encodeParameter('address', boldToken);
|
|
649
|
-
const encodedTargetRatio = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
|
|
650
|
-
const collActionType = isRepayOnPrice ? CollActionType.WITHDRAW : CollActionType.SUPPLY;
|
|
651
|
-
const debtActionType = isRepayOnPrice ? DebtActionType.PAYBACK : DebtActionType.BORROW;
|
|
652
|
-
const encodedCollActionType = AbiCoder.encodeParameter('uint8', collActionType);
|
|
653
|
-
const encodedDebtActionType = AbiCoder.encodeParameter('uint8', debtActionType);
|
|
654
|
-
return [
|
|
655
|
-
encodedMarket,
|
|
656
|
-
encodedTroveId,
|
|
657
|
-
encodedCollToken,
|
|
658
|
-
encodedBoldToken,
|
|
659
|
-
encodedTargetRatio,
|
|
660
|
-
encodedCollActionType,
|
|
661
|
-
encodedDebtActionType,
|
|
662
|
-
];
|
|
663
|
-
},
|
|
664
|
-
decode(subData) {
|
|
665
|
-
const market = AbiCoder.decodeParameter('address', subData[0]);
|
|
666
|
-
const troveId = AbiCoder.decodeParameter('uint256', subData[1]);
|
|
667
|
-
const collToken = AbiCoder.decodeParameter('address', subData[2]);
|
|
668
|
-
const boldToken = AbiCoder.decodeParameter('address', subData[3]);
|
|
669
|
-
const weiRatio = AbiCoder.decodeParameter('uint256', subData[4]);
|
|
670
|
-
const targetRatio = weiToRatioPercentage(weiRatio);
|
|
671
|
-
return {
|
|
672
|
-
market, troveId, collToken, boldToken, targetRatio,
|
|
673
|
-
};
|
|
674
|
-
},
|
|
675
|
-
};
|
|
676
1040
|
export const morphoBlueLeverageManagementOnPriceSubData = {
|
|
677
1041
|
encode(loanToken, collToken, oracle, irm, lltv, targetRatio, user) {
|
|
678
1042
|
const loanTokenEncoded = AbiCoder.encodeParameter('address', loanToken);
|
|
@@ -704,33 +1068,44 @@ export const morphoBlueLeverageManagementOnPriceSubData = {
|
|
|
704
1068
|
};
|
|
705
1069
|
},
|
|
706
1070
|
};
|
|
707
|
-
export const
|
|
708
|
-
encode
|
|
709
|
-
const
|
|
710
|
-
const
|
|
711
|
-
const
|
|
712
|
-
const
|
|
713
|
-
const
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
boldTokenEncoded,
|
|
718
|
-
targetRatioEncoded,
|
|
719
|
-
ratioStateEncoded,
|
|
720
|
-
];
|
|
1071
|
+
export const morphoBlueCloseOnPriceSubData = {
|
|
1072
|
+
encode(loanToken, collToken, oracle, irm, lltv, user, closeType) {
|
|
1073
|
+
const loanTokenEncoded = AbiCoder.encodeParameter('address', loanToken);
|
|
1074
|
+
const collTokenEncoded = AbiCoder.encodeParameter('address', collToken);
|
|
1075
|
+
const oracleEncoded = AbiCoder.encodeParameter('address', oracle);
|
|
1076
|
+
const irmEncoded = AbiCoder.encodeParameter('address', irm);
|
|
1077
|
+
const lltvEncoded = AbiCoder.encodeParameter('uint256', lltv);
|
|
1078
|
+
const userEncoded = AbiCoder.encodeParameter('address', user);
|
|
1079
|
+
const closeTypeEncoded = AbiCoder.encodeParameter('uint8', closeType);
|
|
1080
|
+
return [loanTokenEncoded, collTokenEncoded, oracleEncoded, irmEncoded, lltvEncoded, userEncoded, closeTypeEncoded];
|
|
721
1081
|
},
|
|
722
|
-
decode
|
|
723
|
-
const
|
|
724
|
-
const
|
|
725
|
-
const
|
|
726
|
-
const
|
|
727
|
-
const
|
|
728
|
-
const
|
|
1082
|
+
decode(subData) {
|
|
1083
|
+
const loanToken = AbiCoder.decodeParameter('address', subData[0]);
|
|
1084
|
+
const collToken = AbiCoder.decodeParameter('address', subData[1]);
|
|
1085
|
+
const oracle = AbiCoder.decodeParameter('address', subData[2]);
|
|
1086
|
+
const irm = AbiCoder.decodeParameter('address', subData[3]);
|
|
1087
|
+
const lltv = AbiCoder.decodeParameter('uint256', subData[4]);
|
|
1088
|
+
const user = AbiCoder.decodeParameter('address', subData[5]);
|
|
1089
|
+
const closeType = Number(AbiCoder.decodeParameter('uint8', subData[6]));
|
|
729
1090
|
return {
|
|
730
|
-
|
|
1091
|
+
loanToken,
|
|
1092
|
+
collToken,
|
|
1093
|
+
oracle,
|
|
1094
|
+
irm,
|
|
1095
|
+
lltv,
|
|
1096
|
+
user,
|
|
1097
|
+
closeType,
|
|
731
1098
|
};
|
|
732
1099
|
},
|
|
733
1100
|
};
|
|
1101
|
+
/**
|
|
1102
|
+
_______ __ __ __ __ _______
|
|
1103
|
+
| ____|| | | | | | | | | \
|
|
1104
|
+
| |__ | | | | | | | | | .--. |
|
|
1105
|
+
| __| | | | | | | | | | | | |
|
|
1106
|
+
| | | `----.| `--' | | | | '--' |
|
|
1107
|
+
|__| |_______| \______/ |__| |_______/
|
|
1108
|
+
*/
|
|
734
1109
|
export const fluidLeverageManagementSubData = {
|
|
735
1110
|
encode: (nftId, vault, ratioState, targetRatio) => {
|
|
736
1111
|
const nftIdEncoded = AbiCoder.encodeParameter('uint256', nftId);
|
|
@@ -764,121 +1139,3 @@ export const fluidLeverageManagementSubData = {
|
|
|
764
1139
|
};
|
|
765
1140
|
},
|
|
766
1141
|
};
|
|
767
|
-
export const compoundV3LeverageManagementOnPriceSubData = {
|
|
768
|
-
encode(market, collToken, baseToken, targetRatio, ratioState, user) {
|
|
769
|
-
const marketEncoded = AbiCoder.encodeParameter('address', market);
|
|
770
|
-
const collTokenEncoded = AbiCoder.encodeParameter('address', collToken);
|
|
771
|
-
const baseTokenEncoded = AbiCoder.encodeParameter('address', baseToken);
|
|
772
|
-
const targetRatioEncoded = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
|
|
773
|
-
const ratioStateEncoded = AbiCoder.encodeParameter('uint8', ratioState);
|
|
774
|
-
const userEncoded = AbiCoder.encodeParameter('address', user);
|
|
775
|
-
return [
|
|
776
|
-
marketEncoded,
|
|
777
|
-
collTokenEncoded,
|
|
778
|
-
baseTokenEncoded,
|
|
779
|
-
targetRatioEncoded,
|
|
780
|
-
ratioStateEncoded,
|
|
781
|
-
userEncoded,
|
|
782
|
-
];
|
|
783
|
-
},
|
|
784
|
-
decode(subData) {
|
|
785
|
-
const market = AbiCoder.decodeParameter('address', subData[0]);
|
|
786
|
-
const collToken = AbiCoder.decodeParameter('address', subData[1]);
|
|
787
|
-
const baseToken = AbiCoder.decodeParameter('address', subData[2]);
|
|
788
|
-
const weiRatio = AbiCoder.decodeParameter('uint256', subData[3]);
|
|
789
|
-
const targetRatio = weiToRatioPercentage(weiRatio);
|
|
790
|
-
const ratioState = Number(AbiCoder.decodeParameter('uint8', subData[4]));
|
|
791
|
-
const owner = AbiCoder.decodeParameter('address', subData[5]);
|
|
792
|
-
return {
|
|
793
|
-
market, collToken, baseToken, targetRatio, ratioState, owner,
|
|
794
|
-
};
|
|
795
|
-
},
|
|
796
|
-
};
|
|
797
|
-
export const compoundV3CloseSubData = {
|
|
798
|
-
encode(market, collToken, baseToken, closeType, user) {
|
|
799
|
-
const marketEncoded = AbiCoder.encodeParameter('address', market);
|
|
800
|
-
const collTokenEncoded = AbiCoder.encodeParameter('address', collToken);
|
|
801
|
-
const baseTokenEncoded = AbiCoder.encodeParameter('address', baseToken);
|
|
802
|
-
const closeTypeEncoded = AbiCoder.encodeParameter('uint8', closeType);
|
|
803
|
-
const userEncoded = AbiCoder.encodeParameter('address', user);
|
|
804
|
-
return [
|
|
805
|
-
marketEncoded,
|
|
806
|
-
collTokenEncoded,
|
|
807
|
-
baseTokenEncoded,
|
|
808
|
-
closeTypeEncoded,
|
|
809
|
-
userEncoded,
|
|
810
|
-
];
|
|
811
|
-
},
|
|
812
|
-
decode(subData) {
|
|
813
|
-
const market = AbiCoder.decodeParameter('address', subData[0]);
|
|
814
|
-
const collToken = AbiCoder.decodeParameter('address', subData[1]);
|
|
815
|
-
const baseToken = AbiCoder.decodeParameter('address', subData[2]);
|
|
816
|
-
const closeType = Number(AbiCoder.decodeParameter('uint8', subData[3]));
|
|
817
|
-
const owner = AbiCoder.decodeParameter('address', subData[4]);
|
|
818
|
-
return {
|
|
819
|
-
market, collToken, baseToken, closeType, owner,
|
|
820
|
-
};
|
|
821
|
-
},
|
|
822
|
-
};
|
|
823
|
-
export const sparkCloseGenericSubData = {
|
|
824
|
-
encode(collAsset, collAssetId, debtAsset, debtAssetId, closeType, marketAddr, user) {
|
|
825
|
-
const encodedColl = AbiCoder.encodeParameter('address', collAsset);
|
|
826
|
-
const encodedCollId = AbiCoder.encodeParameter('uint8', collAssetId);
|
|
827
|
-
const encodedDebt = AbiCoder.encodeParameter('address', debtAsset);
|
|
828
|
-
const encodedDebtId = AbiCoder.encodeParameter('uint8', debtAssetId);
|
|
829
|
-
const encodedCloseType = AbiCoder.encodeParameter('uint8', closeType);
|
|
830
|
-
const encodedMarket = AbiCoder.encodeParameter('address', marketAddr);
|
|
831
|
-
const userEncoded = AbiCoder.encodeParameter('address', user);
|
|
832
|
-
return [
|
|
833
|
-
encodedColl,
|
|
834
|
-
encodedCollId,
|
|
835
|
-
encodedDebt,
|
|
836
|
-
encodedDebtId,
|
|
837
|
-
encodedCloseType,
|
|
838
|
-
encodedMarket,
|
|
839
|
-
userEncoded,
|
|
840
|
-
];
|
|
841
|
-
},
|
|
842
|
-
decode(subData) {
|
|
843
|
-
const collAsset = AbiCoder.decodeParameter('address', subData[0]);
|
|
844
|
-
const collAssetId = Number(AbiCoder.decodeParameter('uint8', subData[1]));
|
|
845
|
-
const debtAsset = AbiCoder.decodeParameter('address', subData[2]);
|
|
846
|
-
const debtAssetId = Number(AbiCoder.decodeParameter('uint8', subData[3]));
|
|
847
|
-
const closeType = Number(AbiCoder.decodeParameter('uint8', subData[4]));
|
|
848
|
-
const marketAddr = AbiCoder.decodeParameter('address', subData[5]);
|
|
849
|
-
const owner = AbiCoder.decodeParameter('address', subData[6]);
|
|
850
|
-
return {
|
|
851
|
-
collAsset, collAssetId, debtAsset, debtAssetId, closeType, marketAddr, owner,
|
|
852
|
-
};
|
|
853
|
-
},
|
|
854
|
-
};
|
|
855
|
-
export const morphoBlueCloseOnPriceSubData = {
|
|
856
|
-
encode(loanToken, collToken, oracle, irm, lltv, user, closeType) {
|
|
857
|
-
const loanTokenEncoded = AbiCoder.encodeParameter('address', loanToken);
|
|
858
|
-
const collTokenEncoded = AbiCoder.encodeParameter('address', collToken);
|
|
859
|
-
const oracleEncoded = AbiCoder.encodeParameter('address', oracle);
|
|
860
|
-
const irmEncoded = AbiCoder.encodeParameter('address', irm);
|
|
861
|
-
const lltvEncoded = AbiCoder.encodeParameter('uint256', lltv);
|
|
862
|
-
const userEncoded = AbiCoder.encodeParameter('address', user);
|
|
863
|
-
const closeTypeEncoded = AbiCoder.encodeParameter('uint8', closeType);
|
|
864
|
-
return [loanTokenEncoded, collTokenEncoded, oracleEncoded, irmEncoded, lltvEncoded, userEncoded, closeTypeEncoded];
|
|
865
|
-
},
|
|
866
|
-
decode(subData) {
|
|
867
|
-
const loanToken = AbiCoder.decodeParameter('address', subData[0]);
|
|
868
|
-
const collToken = AbiCoder.decodeParameter('address', subData[1]);
|
|
869
|
-
const oracle = AbiCoder.decodeParameter('address', subData[2]);
|
|
870
|
-
const irm = AbiCoder.decodeParameter('address', subData[3]);
|
|
871
|
-
const lltv = AbiCoder.decodeParameter('uint256', subData[4]);
|
|
872
|
-
const user = AbiCoder.decodeParameter('address', subData[5]);
|
|
873
|
-
const closeType = Number(AbiCoder.decodeParameter('uint8', subData[6]));
|
|
874
|
-
return {
|
|
875
|
-
loanToken,
|
|
876
|
-
collToken,
|
|
877
|
-
oracle,
|
|
878
|
-
irm,
|
|
879
|
-
lltv,
|
|
880
|
-
user,
|
|
881
|
-
closeType,
|
|
882
|
-
};
|
|
883
|
-
},
|
|
884
|
-
};
|