@defisaver/automation-sdk 3.3.16-liq-prot-dev → 3.3.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/cjs/constants/index.js +42 -117
  2. package/cjs/index.d.ts +2 -2
  3. package/cjs/index.js +2 -5
  4. package/cjs/services/strategiesService.js +21 -160
  5. package/cjs/services/strategySubService.d.ts +21 -18
  6. package/cjs/services/strategySubService.js +74 -78
  7. package/cjs/services/strategySubService.test.js +149 -3
  8. package/cjs/services/subDataService.d.ts +20 -70
  9. package/cjs/services/subDataService.js +79 -23
  10. package/cjs/services/subDataService.test.js +202 -17
  11. package/cjs/services/utils.d.ts +1 -2
  12. package/cjs/services/utils.js +1 -14
  13. package/cjs/types/enums.d.ts +17 -36
  14. package/cjs/types/enums.js +11 -30
  15. package/esm/constants/index.js +42 -117
  16. package/esm/index.d.ts +2 -2
  17. package/esm/index.js +2 -5
  18. package/esm/services/strategiesService.js +21 -160
  19. package/esm/services/strategySubService.d.ts +21 -18
  20. package/esm/services/strategySubService.js +73 -78
  21. package/esm/services/strategySubService.test.js +147 -4
  22. package/esm/services/subDataService.d.ts +20 -70
  23. package/esm/services/subDataService.js +77 -21
  24. package/esm/services/subDataService.test.js +200 -18
  25. package/esm/services/utils.d.ts +1 -2
  26. package/esm/services/utils.js +1 -13
  27. package/esm/types/enums.d.ts +17 -36
  28. package/esm/types/enums.js +11 -30
  29. package/package.json +1 -1
  30. package/src/constants/index.ts +43 -119
  31. package/src/index.ts +6 -22
  32. package/src/services/strategiesService.ts +23 -225
  33. package/src/services/strategySubService.test.ts +191 -3
  34. package/src/services/strategySubService.ts +121 -173
  35. package/src/services/subDataService.test.ts +214 -18
  36. package/src/services/subDataService.ts +106 -42
  37. package/src/services/utils.test.ts +1 -1
  38. package/src/services/utils.ts +1 -15
  39. package/src/types/enums.ts +13 -30
@@ -1,5 +1,5 @@
1
1
  import type { EthereumAddress } from '../types';
2
- import type { CloseStrategyType } from '../types/enums';
2
+ import type { CloseStrategyType, OrderType } from '../types/enums';
3
3
  import { ChainId, RatioState } from '../types/enums';
4
4
  /**
5
5
  _______ _______ .______ .______ _______ ______ ___ .___________. _______ _______
@@ -10,11 +10,13 @@ import { ChainId, RatioState } from '../types/enums';
10
10
  |_______/ |_______|| _| | _| `._____||_______| \______/__/ \__\ |__| |_______||_______/
11
11
  */
12
12
  export declare const morphoAaveV2LeverageManagementSubData: {
13
+ encode(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
13
14
  decode(subData: string[]): {
14
15
  targetRatio: number;
15
16
  };
16
17
  };
17
18
  export declare const cBondsRebondSubData: {
19
+ encode(bondId: number | string): string[];
18
20
  decode(subData: string[]): {
19
21
  bondId: string;
20
22
  };
@@ -55,21 +57,13 @@ export declare const makerCloseSubData: {
55
57
  closeToAssetAddr: EthereumAddress;
56
58
  };
57
59
  };
58
- export declare const legacyMakerLeverageManagementSubData: {
60
+ export declare const makerLeverageManagementSubData: {
59
61
  decode: (subData: string[]) => {
60
62
  vaultId: number;
61
63
  targetRatio: number;
62
64
  };
63
65
  };
64
- export declare const makerLeverageManagementSubData: {
65
- encode(vaultId: number, targetRatio: number, daiAddr?: EthereumAddress): string[];
66
- decode(subData: string[]): {
67
- vaultId: number;
68
- targetRatio: number;
69
- daiAddr: string;
70
- };
71
- };
72
- export declare const makerLiquidationProtectionSubData: {
66
+ export declare const makerLeverageManagementWithoutSubProxy: {
73
67
  encode(vaultId: number, targetRatio: number, daiAddr?: EthereumAddress): string[];
74
68
  decode(subData: string[]): {
75
69
  vaultId: number;
@@ -90,12 +84,12 @@ export declare const liquityRepayFromSavingsSubData: {
90
84
  targetRatio: number;
91
85
  };
92
86
  };
93
- export declare const legacyLiquityLeverageManagementSubData: {
87
+ export declare const liquityLeverageManagementSubData: {
94
88
  decode: (subData: string[]) => {
95
89
  targetRatio: number;
96
90
  };
97
91
  };
98
- export declare const liquityLeverageManagementSubData: {
92
+ export declare const liquityLeverageManagementSubDataWithoutSubProxy: {
99
93
  encode(targetRatio: number, ratioState: RatioState): string[];
100
94
  decode(subData: string[]): {
101
95
  targetRatio: number;
@@ -184,12 +178,13 @@ export declare const liquityV2PaybackSubData: {
184
178
  / _____ \ / _____ \ \ / | |____ \ / / /_
185
179
  /__/ \__\ /__/ \__\ \__/ |_______| \__/ |____|
186
180
  */
187
- export declare const legacyAaveV2LeverageManagementSubData: {
181
+ export declare const aaveV2LeverageManagementSubData: {
182
+ encode(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
188
183
  decode(subData: string[]): {
189
184
  targetRatio: number;
190
185
  };
191
186
  };
192
- export declare const aaveV2LeverageManagementSubData: {
187
+ export declare const aaveV2LeverageManagementSubDataWithoutSubProxy: {
193
188
  encode(market: EthereumAddress, targetRatio: number, ratioState: RatioState): string[];
194
189
  decode(subData: string[]): {
195
190
  market: EthereumAddress;
@@ -205,19 +200,12 @@ export declare const aaveV2LeverageManagementSubData: {
205
200
  / _____ \ / _____ \ \ / | |____ \ / ___) |
206
201
  /__/ \__\ /__/ \__\ \__/ |_______| \__/ |____/
207
202
  */
208
- export declare const legacyAaveV3LeverageManagementSubData: {
209
- decode(subData: string[]): {
210
- targetRatio: number;
211
- };
212
- };
213
203
  export declare const aaveV3LeverageManagementSubData: {
214
- encode(targetRatio: number, ratioState: RatioState, market: EthereumAddress, user: EthereumAddress, isGeneric: boolean): string[];
215
204
  decode(subData: string[]): {
216
205
  targetRatio: number;
217
- ratioState: RatioState;
218
206
  };
219
207
  };
220
- export declare const aaveV3LiquidationProtectionSubData: {
208
+ export declare const aaveV3LeverageManagementSubDataWithoutSubProxy: {
221
209
  encode(targetRatio: number, ratioState: RatioState, market: EthereumAddress, user: EthereumAddress, isGeneric: boolean): string[];
222
210
  decode(subData: string[]): {
223
211
  targetRatio: number;
@@ -296,15 +284,6 @@ export declare const aaveV4LeverageManagementSubData: {
296
284
  targetRatio: number;
297
285
  };
298
286
  };
299
- export declare const aaveV4LiquidationProtectionSubData: {
300
- encode: (spoke: EthereumAddress, owner: EthereumAddress, ratioState: RatioState, targetRatio: number) => string[];
301
- decode: (subData: string[]) => {
302
- spoke: string;
303
- owner: string;
304
- ratioState: RatioState;
305
- targetRatio: number;
306
- };
307
- };
308
287
  export declare const aaveV4LeverageManagementOnPriceSubData: {
309
288
  encode: (spoke: EthereumAddress, owner: EthereumAddress, collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, ratioState: RatioState, targetRatio: number) => string[];
310
289
  decode: (subData: string[]) => {
@@ -350,12 +329,13 @@ export declare const aaveV4CollateralSwitchSubData: {
350
329
  | `----.| `--' | | | | | | | \ / / /_
351
330
  \______| \______/ |__| |__| | _| \__/ |____|
352
331
  */
353
- export declare const legacyCompoundV2LeverageManagementSubData: {
332
+ export declare const compoundV2LeverageManagementSubData: {
333
+ encode(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
354
334
  decode(subData: string[]): {
355
335
  targetRatio: number;
356
336
  };
357
337
  };
358
- export declare const compoundV2LeverageManagementSubData: {
338
+ export declare const compoundV2LeverageManagementSubDataWithoutSubProxy: {
359
339
  encode(targetRatio: number, ratioState: RatioState): string[];
360
340
  decode(subData: string[]): {
361
341
  targetRatio: number;
@@ -371,15 +351,12 @@ export declare const compoundV2LeverageManagementSubData: {
371
351
  \______| \______/ |__| |__| | _| \__/ |____/
372
352
  */
373
353
  export declare const compoundV3LeverageManagementSubData: {
374
- encode(market: EthereumAddress, baseToken: EthereumAddress, targetRatio: number, ratioState: RatioState): string[];
354
+ encode(market: EthereumAddress, baseToken: EthereumAddress, triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean, isEOA: boolean): string[];
375
355
  decode(subData: string[]): {
376
- market: EthereumAddress;
377
- baseToken: EthereumAddress;
378
356
  targetRatio: number;
379
- ratioState: RatioState;
380
357
  };
381
358
  };
382
- export declare const compoundV3LiquidationProtectionSubData: {
359
+ export declare const compoundV3LeverageManagementSubDataWithoutSubProxy: {
383
360
  encode(market: EthereumAddress, baseToken: EthereumAddress, targetRatio: number, ratioState: RatioState): string[];
384
361
  decode(subData: string[]): {
385
362
  market: EthereumAddress;
@@ -426,14 +403,15 @@ export declare const exchangeDcaSubData: {
426
403
  interval: string;
427
404
  };
428
405
  };
429
- export declare const legacyExchangeLimitOrderSubData: {
406
+ export declare const exchangeLimitOrderSubData: {
407
+ encode(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string, targetPrice: string, goodUntil: string | number, orderType: OrderType): string[];
430
408
  decode: (subData: string[], chainId: ChainId) => {
431
409
  fromToken: string;
432
410
  toToken: string;
433
411
  amount: string;
434
412
  };
435
413
  };
436
- export declare const exchangeLimitOrderSubData: {
414
+ export declare const exchangeLimitOrderSubDataWithoutSubProxy: {
437
415
  encode(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string): string[];
438
416
  decode: (subData: string[], chainId: ChainId) => {
439
417
  fromToken: string;
@@ -449,19 +427,12 @@ export declare const exchangeLimitOrderSubData: {
449
427
  .----) | | | / _____ \ | |\ \----.| . \
450
428
  |_______/ | _| /__/ \__\ | _| `._____||__|\__\
451
429
  */
452
- export declare const legacySparkLeverageManagementSubData: {
453
- decode(subData: string[]): {
454
- targetRatio: number;
455
- };
456
- };
457
430
  export declare const sparkLeverageManagementSubData: {
458
- encode(targetRatio: number, ratioState: RatioState): string[];
459
431
  decode(subData: string[]): {
460
432
  targetRatio: number;
461
- ratioState: RatioState;
462
433
  };
463
434
  };
464
- export declare const sparkLiquidationProtectionSubData: {
435
+ export declare const sparkLeverageManagementSubDataWithoutSubProxy: {
465
436
  encode(targetRatio: number, ratioState: RatioState): string[];
466
437
  decode(subData: string[]): {
467
438
  targetRatio: number;
@@ -546,18 +517,6 @@ export declare const morphoBlueLeverageManagementSubData: {
546
517
  targetRatio: number;
547
518
  };
548
519
  };
549
- export declare const morphoBlueLiquidationProtectionSubData: {
550
- encode: (loanToken: EthereumAddress, collToken: EthereumAddress, oracle: EthereumAddress, irm: EthereumAddress, lltv: string, ratioState: RatioState, targetRatio: number, user: EthereumAddress, isEOA: boolean) => string[];
551
- decode: (subData: string[]) => {
552
- loanToken: string;
553
- collToken: string;
554
- oracle: string;
555
- irm: string;
556
- lltv: string;
557
- user: string;
558
- targetRatio: number;
559
- };
560
- };
561
520
  export declare const morphoBlueLeverageManagementOnPriceSubData: {
562
521
  encode(loanToken: EthereumAddress, collToken: EthereumAddress, oracle: EthereumAddress, irm: EthereumAddress, lltv: string, targetRatio: number, user: EthereumAddress): string[];
563
522
  decode(subData: string[]): {
@@ -599,12 +558,3 @@ export declare const fluidLeverageManagementSubData: {
599
558
  targetRatio: number;
600
559
  };
601
560
  };
602
- export declare const fluidLiquidationProtectionSubData: {
603
- encode: (nftId: string, vault: EthereumAddress, ratioState: RatioState, targetRatio: number) => string[];
604
- decode: (subData: string[]) => {
605
- nftId: string;
606
- vault: string;
607
- ratioState: RatioState;
608
- targetRatio: number;
609
- };
610
- };
@@ -3,8 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.crvUSDLeverageManagementSubData = exports.sparkCollateralSwitchSubData = exports.sparkLeverageManagementOnPriceSubData = exports.sparkCloseGenericSubData = exports.sparkLiquidationProtectionSubData = exports.sparkLeverageManagementSubData = exports.legacySparkLeverageManagementSubData = exports.exchangeLimitOrderSubData = exports.legacyExchangeLimitOrderSubData = exports.exchangeDcaSubData = exports.compoundV3CloseSubData = exports.compoundV3LeverageManagementOnPriceSubData = exports.compoundV3LiquidationProtectionSubData = exports.compoundV3LeverageManagementSubData = exports.compoundV2LeverageManagementSubData = exports.legacyCompoundV2LeverageManagementSubData = exports.aaveV4CollateralSwitchSubData = exports.aaveV4CloseSubData = exports.aaveV4LeverageManagementOnPriceSubData = exports.aaveV4LiquidationProtectionSubData = exports.aaveV4LeverageManagementSubData = exports.aaveV3LeverageManagementOnPriceSubData = exports.aaveV3QuotePriceSubData = exports.aaveV3CollateralSwitchSubData = exports.aaveV3CloseGenericSubData = exports.aaveV3LeverageManagementOnPriceGeneric = exports.aaveV3LiquidationProtectionSubData = exports.aaveV3LeverageManagementSubData = exports.legacyAaveV3LeverageManagementSubData = exports.aaveV2LeverageManagementSubData = exports.legacyAaveV2LeverageManagementSubData = exports.liquityV2PaybackSubData = exports.liquityV2LeverageManagementOnPriceSubData = exports.liquityV2CloseSubData = exports.liquityV2LeverageManagementSubData = exports.liquityDebtInFrontRepaySubData = exports.liquityDsrSupplySubData = exports.liquityDsrPaybackSubData = exports.liquityCloseSubData = exports.liquityLeverageManagementSubData = exports.legacyLiquityLeverageManagementSubData = exports.liquityRepayFromSavingsSubData = exports.makerLiquidationProtectionSubData = exports.makerLeverageManagementSubData = exports.legacyMakerLeverageManagementSubData = exports.makerCloseSubData = exports.makerRepayFromSavingsSubData = exports.liquityPaybackUsingChickenBondSubData = exports.cBondsRebondSubData = exports.morphoAaveV2LeverageManagementSubData = void 0;
7
- exports.fluidLiquidationProtectionSubData = exports.fluidLeverageManagementSubData = exports.morphoBlueCloseOnPriceSubData = exports.morphoBlueLeverageManagementOnPriceSubData = exports.morphoBlueLiquidationProtectionSubData = exports.morphoBlueLeverageManagementSubData = exports.crvUSDPaybackSubData = void 0;
6
+ exports.morphoBlueCloseOnPriceSubData = exports.morphoBlueLeverageManagementOnPriceSubData = exports.morphoBlueLeverageManagementSubData = exports.crvUSDPaybackSubData = exports.crvUSDLeverageManagementSubData = exports.sparkCollateralSwitchSubData = exports.sparkLeverageManagementOnPriceSubData = exports.sparkCloseGenericSubData = exports.sparkLeverageManagementSubDataWithoutSubProxy = exports.sparkLeverageManagementSubData = exports.exchangeLimitOrderSubDataWithoutSubProxy = exports.exchangeLimitOrderSubData = exports.exchangeDcaSubData = exports.compoundV3CloseSubData = exports.compoundV3LeverageManagementOnPriceSubData = exports.compoundV3LeverageManagementSubDataWithoutSubProxy = exports.compoundV3LeverageManagementSubData = exports.compoundV2LeverageManagementSubDataWithoutSubProxy = exports.compoundV2LeverageManagementSubData = exports.aaveV4CollateralSwitchSubData = exports.aaveV4CloseSubData = exports.aaveV4LeverageManagementOnPriceSubData = exports.aaveV4LeverageManagementSubData = exports.aaveV3LeverageManagementOnPriceSubData = exports.aaveV3QuotePriceSubData = exports.aaveV3CollateralSwitchSubData = exports.aaveV3CloseGenericSubData = exports.aaveV3LeverageManagementOnPriceGeneric = exports.aaveV3LeverageManagementSubDataWithoutSubProxy = exports.aaveV3LeverageManagementSubData = exports.aaveV2LeverageManagementSubDataWithoutSubProxy = exports.aaveV2LeverageManagementSubData = exports.liquityV2PaybackSubData = exports.liquityV2LeverageManagementOnPriceSubData = exports.liquityV2CloseSubData = exports.liquityV2LeverageManagementSubData = exports.liquityDebtInFrontRepaySubData = exports.liquityDsrSupplySubData = exports.liquityDsrPaybackSubData = exports.liquityCloseSubData = exports.liquityLeverageManagementSubDataWithoutSubProxy = exports.liquityLeverageManagementSubData = exports.liquityRepayFromSavingsSubData = exports.makerLeverageManagementWithoutSubProxy = exports.makerLeverageManagementSubData = exports.makerCloseSubData = exports.makerRepayFromSavingsSubData = exports.liquityPaybackUsingChickenBondSubData = exports.cBondsRebondSubData = exports.morphoAaveV2LeverageManagementSubData = void 0;
7
+ exports.fluidLeverageManagementSubData = void 0;
8
8
  const decimal_js_1 = __importDefault(require("decimal.js"));
9
9
  const web3_eth_abi_1 = __importDefault(require("web3-eth-abi"));
10
10
  const web3_utils_1 = require("web3-utils");
@@ -22,6 +22,16 @@ const utils_1 = require("./utils");
22
22
  |_______/ |_______|| _| | _| `._____||_______| \______/__/ \__\ |__| |_______||_______/
23
23
  */
24
24
  exports.morphoAaveV2LeverageManagementSubData = {
25
+ encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
26
+ return [
27
+ (0, utils_1.ratioPercentageToWei)(triggerRepayRatio),
28
+ (0, utils_1.ratioPercentageToWei)(triggerBoostRatio),
29
+ (0, utils_1.ratioPercentageToWei)(targetBoostRatio),
30
+ (0, utils_1.ratioPercentageToWei)(targetRepayRatio),
31
+ // @ts-ignore
32
+ boostEnabled,
33
+ ];
34
+ },
25
35
  decode(subData) {
26
36
  const ratioWei = web3_eth_abi_1.default.decodeParameter('uint128', subData[1]);
27
37
  const targetRatio = (0, utils_1.weiToRatioPercentage)(ratioWei);
@@ -29,6 +39,10 @@ exports.morphoAaveV2LeverageManagementSubData = {
29
39
  },
30
40
  };
31
41
  exports.cBondsRebondSubData = {
42
+ encode(bondId) {
43
+ const bondIdEncoded = web3_eth_abi_1.default.encodeParameter('uint256', bondId);
44
+ return [bondIdEncoded];
45
+ },
32
46
  decode(subData) {
33
47
  const bondId = web3_eth_abi_1.default.decodeParameter('uint256', subData[1]).toString();
34
48
  return { bondId };
@@ -110,7 +124,7 @@ exports.makerCloseSubData = {
110
124
  };
111
125
  },
112
126
  };
113
- exports.legacyMakerLeverageManagementSubData = {
127
+ exports.makerLeverageManagementSubData = {
114
128
  decode: (subData) => {
115
129
  const vaultId = +web3_eth_abi_1.default.decodeParameter('uint256', subData[0]).toString();
116
130
  const weiRatio = web3_eth_abi_1.default.decodeParameter('uint256', subData[1]);
@@ -118,7 +132,7 @@ exports.legacyMakerLeverageManagementSubData = {
118
132
  return { vaultId, targetRatio };
119
133
  },
120
134
  };
121
- exports.makerLeverageManagementSubData = {
135
+ exports.makerLeverageManagementWithoutSubProxy = {
122
136
  encode(vaultId, targetRatio, daiAddr) {
123
137
  const encodedVaultId = web3_eth_abi_1.default.encodeParameter('uint256', vaultId);
124
138
  const encodedTargetRatio = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
@@ -132,7 +146,6 @@ exports.makerLeverageManagementSubData = {
132
146
  return { vaultId, targetRatio, daiAddr };
133
147
  },
134
148
  };
135
- exports.makerLiquidationProtectionSubData = exports.makerLeverageManagementSubData;
136
149
  /**
137
150
  __ __ ______ __ __ __ .___________.____ ____ ____ ____ __
138
151
  | | | | / __ \ | | | | | | | |\ \ / / \ \ / / /_ |
@@ -148,14 +161,14 @@ exports.liquityRepayFromSavingsSubData = {
148
161
  return { targetRatio };
149
162
  },
150
163
  };
151
- exports.legacyLiquityLeverageManagementSubData = {
164
+ exports.liquityLeverageManagementSubData = {
152
165
  decode: (subData) => {
153
166
  const weiRatio = web3_eth_abi_1.default.decodeParameter('uint256', subData[1]);
154
167
  const targetRatio = (0, utils_1.weiToRatioPercentage)(weiRatio);
155
168
  return { targetRatio };
156
169
  },
157
170
  };
158
- exports.liquityLeverageManagementSubData = {
171
+ exports.liquityLeverageManagementSubDataWithoutSubProxy = {
159
172
  encode(targetRatio, ratioState) {
160
173
  const encodedRatioState = web3_eth_abi_1.default.encodeParameter('uint8', ratioState);
161
174
  const encodedTargetRatio = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
@@ -386,14 +399,24 @@ exports.liquityV2PaybackSubData = {
386
399
  / _____ \ / _____ \ \ / | |____ \ / / /_
387
400
  /__/ \__\ /__/ \__\ \__/ |_______| \__/ |____|
388
401
  */
389
- exports.legacyAaveV2LeverageManagementSubData = {
402
+ exports.aaveV2LeverageManagementSubData = {
403
+ encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
404
+ return [
405
+ new decimal_js_1.default(triggerRepayRatio).mul(1e16).toString(),
406
+ new decimal_js_1.default(triggerBoostRatio).mul(1e16).toString(),
407
+ new decimal_js_1.default(targetBoostRatio).mul(1e16).toString(),
408
+ new decimal_js_1.default(targetRepayRatio).mul(1e16).toString(),
409
+ // @ts-ignore // TODO
410
+ boostEnabled,
411
+ ];
412
+ },
390
413
  decode(subData) {
391
414
  const ratioWei = web3_eth_abi_1.default.decodeParameter('uint256', subData[1]);
392
415
  const targetRatio = (0, utils_1.weiToRatioPercentage)(ratioWei);
393
416
  return { targetRatio };
394
417
  },
395
418
  };
396
- exports.aaveV2LeverageManagementSubData = {
419
+ exports.aaveV2LeverageManagementSubDataWithoutSubProxy = {
397
420
  encode(market, targetRatio, ratioState) {
398
421
  const encodedMarket = web3_eth_abi_1.default.encodeParameter('address', market);
399
422
  const encodedTargetRatio = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
@@ -420,14 +443,14 @@ exports.aaveV2LeverageManagementSubData = {
420
443
  / _____ \ / _____ \ \ / | |____ \ / ___) |
421
444
  /__/ \__\ /__/ \__\ \__/ |_______| \__/ |____/
422
445
  */
423
- exports.legacyAaveV3LeverageManagementSubData = {
446
+ exports.aaveV3LeverageManagementSubData = {
424
447
  decode(subData) {
425
448
  const ratioWei = web3_eth_abi_1.default.decodeParameter('uint256', subData[0]);
426
449
  const targetRatio = (0, utils_1.weiToRatioPercentage)(ratioWei);
427
450
  return { targetRatio };
428
451
  },
429
452
  };
430
- exports.aaveV3LeverageManagementSubData = {
453
+ exports.aaveV3LeverageManagementSubDataWithoutSubProxy = {
431
454
  encode(targetRatio, ratioState, market, user, isGeneric) {
432
455
  const encodedTargetRatio = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
433
456
  const encodedRatioState = web3_eth_abi_1.default.encodeParameter('uint8', ratioState);
@@ -446,7 +469,6 @@ exports.aaveV3LeverageManagementSubData = {
446
469
  return { targetRatio, ratioState };
447
470
  },
448
471
  };
449
- exports.aaveV3LiquidationProtectionSubData = exports.aaveV3LeverageManagementSubData;
450
472
  exports.aaveV3LeverageManagementOnPriceGeneric = {
451
473
  encode(collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio, user) {
452
474
  const encodedColl = web3_eth_abi_1.default.encodeParameter('address', collAsset);
@@ -634,7 +656,6 @@ exports.aaveV4LeverageManagementSubData = {
634
656
  };
635
657
  },
636
658
  };
637
- exports.aaveV4LiquidationProtectionSubData = exports.aaveV4LeverageManagementSubData;
638
659
  exports.aaveV4LeverageManagementOnPriceSubData = {
639
660
  encode: (spoke, owner, collAsset, collAssetId, debtAsset, debtAssetId, ratioState, targetRatio) => {
640
661
  const spokeEncoded = web3_eth_abi_1.default.encodeParameter('address', spoke);
@@ -751,14 +772,24 @@ exports.aaveV4CollateralSwitchSubData = {
751
772
  | `----.| `--' | | | | | | | \ / / /_
752
773
  \______| \______/ |__| |__| | _| \__/ |____|
753
774
  */
754
- exports.legacyCompoundV2LeverageManagementSubData = {
775
+ exports.compoundV2LeverageManagementSubData = {
776
+ encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
777
+ return [
778
+ new decimal_js_1.default(triggerRepayRatio).mul(1e16).toString(),
779
+ new decimal_js_1.default(triggerBoostRatio).mul(1e16).toString(),
780
+ new decimal_js_1.default(targetBoostRatio).mul(1e16).toString(),
781
+ new decimal_js_1.default(targetRepayRatio).mul(1e16).toString(),
782
+ // @ts-ignore // TODO
783
+ boostEnabled,
784
+ ];
785
+ },
755
786
  decode(subData) {
756
787
  const weiRatio = web3_eth_abi_1.default.decodeParameter('uint256', subData[0]);
757
788
  const targetRatio = (0, utils_1.weiToRatioPercentage)(weiRatio);
758
789
  return { targetRatio };
759
790
  },
760
791
  };
761
- exports.compoundV2LeverageManagementSubData = {
792
+ exports.compoundV2LeverageManagementSubDataWithoutSubProxy = {
762
793
  encode(targetRatio, ratioState) {
763
794
  const encodedTargetRatio = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
764
795
  const encodedRatioState = web3_eth_abi_1.default.encodeParameter('uint8', ratioState);
@@ -784,6 +815,25 @@ exports.compoundV2LeverageManagementSubData = {
784
815
  \______| \______/ |__| |__| | _| \__/ |____/
785
816
  */
786
817
  exports.compoundV3LeverageManagementSubData = {
818
+ encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA) {
819
+ return [
820
+ market,
821
+ baseToken,
822
+ new decimal_js_1.default(triggerRepayRatio).mul(1e16).toString(),
823
+ new decimal_js_1.default(triggerBoostRatio).mul(1e16).toString(),
824
+ new decimal_js_1.default(targetBoostRatio).mul(1e16).toString(),
825
+ new decimal_js_1.default(targetRepayRatio).mul(1e16).toString(),
826
+ // @ts-ignore // TODO
827
+ boostEnabled, isEOA,
828
+ ];
829
+ },
830
+ decode(subData) {
831
+ const weiRatio = web3_eth_abi_1.default.decodeParameter('uint256', subData[3]);
832
+ const targetRatio = (0, utils_1.weiToRatioPercentage)(weiRatio);
833
+ return { targetRatio };
834
+ },
835
+ };
836
+ exports.compoundV3LeverageManagementSubDataWithoutSubProxy = {
787
837
  encode(market, baseToken, targetRatio, ratioState) {
788
838
  const encodedMarket = web3_eth_abi_1.default.encodeParameter('address', market);
789
839
  const encodedBaseToken = web3_eth_abi_1.default.encodeParameter('address', baseToken);
@@ -801,7 +851,6 @@ exports.compoundV3LeverageManagementSubData = {
801
851
  };
802
852
  },
803
853
  };
804
- exports.compoundV3LiquidationProtectionSubData = exports.compoundV3LeverageManagementSubData;
805
854
  exports.compoundV3LeverageManagementOnPriceSubData = {
806
855
  encode(market, collToken, baseToken, targetRatio, ratioState, user) {
807
856
  const marketEncoded = web3_eth_abi_1.default.encodeParameter('address', market);
@@ -887,7 +936,17 @@ exports.exchangeDcaSubData = {
887
936
  };
888
937
  },
889
938
  };
890
- exports.legacyExchangeLimitOrderSubData = {
939
+ exports.exchangeLimitOrderSubData = {
940
+ encode(fromToken, toToken, amount, targetPrice, goodUntil, orderType) {
941
+ return [
942
+ fromToken,
943
+ toToken,
944
+ amount,
945
+ targetPrice,
946
+ new decimal_js_1.default(goodUntil).toString(),
947
+ new decimal_js_1.default(orderType).toString(),
948
+ ];
949
+ },
891
950
  decode: (subData, chainId) => {
892
951
  const fromToken = web3_eth_abi_1.default.decodeParameter('address', subData[0]).toString();
893
952
  const toToken = web3_eth_abi_1.default.decodeParameter('address', subData[1]).toString();
@@ -895,7 +954,7 @@ exports.legacyExchangeLimitOrderSubData = {
895
954
  return { fromToken, toToken, amount };
896
955
  },
897
956
  };
898
- exports.exchangeLimitOrderSubData = {
957
+ exports.exchangeLimitOrderSubDataWithoutSubProxy = {
899
958
  encode(fromToken, toToken, amount) {
900
959
  return [
901
960
  web3_eth_abi_1.default.encodeParameter('address', fromToken),
@@ -918,14 +977,14 @@ exports.exchangeLimitOrderSubData = {
918
977
  .----) | | | / _____ \ | |\ \----.| . \
919
978
  |_______/ | _| /__/ \__\ | _| `._____||__|\__\
920
979
  */
921
- exports.legacySparkLeverageManagementSubData = {
980
+ exports.sparkLeverageManagementSubData = {
922
981
  decode(subData) {
923
982
  const ratioWei = web3_eth_abi_1.default.decodeParameter('uint256', subData[0]);
924
983
  const targetRatio = (0, utils_1.weiToRatioPercentage)(ratioWei);
925
984
  return { targetRatio };
926
985
  },
927
986
  };
928
- exports.sparkLeverageManagementSubData = {
987
+ exports.sparkLeverageManagementSubDataWithoutSubProxy = {
929
988
  encode(targetRatio, ratioState) {
930
989
  const encodedTargetRatio = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
931
990
  const encodedRatioState = web3_eth_abi_1.default.encodeParameter('uint8', ratioState);
@@ -939,7 +998,6 @@ exports.sparkLeverageManagementSubData = {
939
998
  return { targetRatio, ratioState };
940
999
  },
941
1000
  };
942
- exports.sparkLiquidationProtectionSubData = exports.sparkLeverageManagementSubData;
943
1001
  exports.sparkCloseGenericSubData = {
944
1002
  encode(collAsset, collAssetId, debtAsset, debtAssetId, closeType, marketAddr, user) {
945
1003
  const encodedColl = web3_eth_abi_1.default.encodeParameter('address', collAsset);
@@ -1121,7 +1179,6 @@ exports.morphoBlueLeverageManagementSubData = {
1121
1179
  };
1122
1180
  },
1123
1181
  };
1124
- exports.morphoBlueLiquidationProtectionSubData = exports.morphoBlueLeverageManagementSubData;
1125
1182
  exports.morphoBlueLeverageManagementOnPriceSubData = {
1126
1183
  encode(loanToken, collToken, oracle, irm, lltv, targetRatio, user) {
1127
1184
  const loanTokenEncoded = web3_eth_abi_1.default.encodeParameter('address', loanToken);
@@ -1224,4 +1281,3 @@ exports.fluidLeverageManagementSubData = {
1224
1281
  };
1225
1282
  },
1226
1283
  };
1227
- exports.fluidLiquidationProtectionSubData = exports.fluidLeverageManagementSubData;