@defisaver/automation-sdk 3.3.17 → 3.3.18-spark-eoa-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.
Files changed (38) hide show
  1. package/cjs/constants/index.js +170 -0
  2. package/cjs/index.d.ts +2 -2
  3. package/cjs/index.js +5 -2
  4. package/cjs/services/ethereumService.test.js +4 -7
  5. package/cjs/services/strategiesService.js +195 -15
  6. package/cjs/services/strategySubService.d.ts +22 -17
  7. package/cjs/services/strategySubService.js +92 -28
  8. package/cjs/services/strategySubService.test.js +297 -40
  9. package/cjs/services/subDataService.d.ts +108 -20
  10. package/cjs/services/subDataService.js +97 -79
  11. package/cjs/services/subDataService.test.js +479 -174
  12. package/cjs/types/enums.d.ts +44 -6
  13. package/cjs/types/enums.js +38 -0
  14. package/esm/constants/index.js +170 -0
  15. package/esm/index.d.ts +2 -2
  16. package/esm/index.js +5 -2
  17. package/esm/services/ethereumService.test.js +4 -7
  18. package/esm/services/strategiesService.js +195 -15
  19. package/esm/services/strategySubService.d.ts +22 -17
  20. package/esm/services/strategySubService.js +91 -27
  21. package/esm/services/strategySubService.test.js +298 -38
  22. package/esm/services/subDataService.d.ts +108 -20
  23. package/esm/services/subDataService.js +95 -77
  24. package/esm/services/subDataService.test.js +480 -172
  25. package/esm/types/enums.d.ts +44 -6
  26. package/esm/types/enums.js +38 -0
  27. package/package.json +1 -1
  28. package/src/constants/index.ts +172 -1
  29. package/src/index.ts +22 -6
  30. package/src/services/ethereumService.test.ts +5 -8
  31. package/src/services/strategiesService.ts +262 -16
  32. package/src/services/strategySubService.test.ts +384 -46
  33. package/src/services/strategySubService.ts +251 -40
  34. package/src/services/subDataService.test.ts +639 -231
  35. package/src/services/subDataService.ts +149 -106
  36. package/src/services/utils.test.ts +1 -1
  37. package/src/services/utils.ts +3 -1
  38. package/src/types/enums.ts +38 -2
@@ -1,5 +1,5 @@
1
1
  import type { EthereumAddress } from '../types';
2
- import type { CloseStrategyType, OrderType } from '../types/enums';
2
+ import type { CloseStrategyType } from '../types/enums';
3
3
  import { ChainId, RatioState } from '../types/enums';
4
4
  /**
5
5
  _______ _______ .______ .______ _______ ______ ___ .___________. _______ _______
@@ -10,13 +10,11 @@ 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[];
14
13
  decode(subData: string[]): {
15
14
  targetRatio: number;
16
15
  };
17
16
  };
18
17
  export declare const cBondsRebondSubData: {
19
- encode(bondId: number | string): string[];
20
18
  decode(subData: string[]): {
21
19
  bondId: string;
22
20
  };
@@ -57,13 +55,21 @@ export declare const makerCloseSubData: {
57
55
  closeToAssetAddr: EthereumAddress;
58
56
  };
59
57
  };
60
- export declare const makerLeverageManagementSubData: {
58
+ export declare const legacyMakerLeverageManagementSubData: {
61
59
  decode: (subData: string[]) => {
62
60
  vaultId: number;
63
61
  targetRatio: number;
64
62
  };
65
63
  };
66
- export declare const makerLeverageManagementWithoutSubProxy: {
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: {
67
73
  encode(vaultId: number, targetRatio: number, daiAddr?: EthereumAddress): string[];
68
74
  decode(subData: string[]): {
69
75
  vaultId: number;
@@ -84,12 +90,12 @@ export declare const liquityRepayFromSavingsSubData: {
84
90
  targetRatio: number;
85
91
  };
86
92
  };
87
- export declare const liquityLeverageManagementSubData: {
93
+ export declare const legacyLiquityLeverageManagementSubData: {
88
94
  decode: (subData: string[]) => {
89
95
  targetRatio: number;
90
96
  };
91
97
  };
92
- export declare const liquityLeverageManagementSubDataWithoutSubProxy: {
98
+ export declare const liquityLeverageManagementSubData: {
93
99
  encode(targetRatio: number, ratioState: RatioState): string[];
94
100
  decode(subData: string[]): {
95
101
  targetRatio: number;
@@ -178,13 +184,12 @@ export declare const liquityV2PaybackSubData: {
178
184
  / _____ \ / _____ \ \ / | |____ \ / / /_
179
185
  /__/ \__\ /__/ \__\ \__/ |_______| \__/ |____|
180
186
  */
181
- export declare const aaveV2LeverageManagementSubData: {
182
- encode(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
187
+ export declare const legacyAaveV2LeverageManagementSubData: {
183
188
  decode(subData: string[]): {
184
189
  targetRatio: number;
185
190
  };
186
191
  };
187
- export declare const aaveV2LeverageManagementSubDataWithoutSubProxy: {
192
+ export declare const aaveV2LeverageManagementSubData: {
188
193
  encode(market: EthereumAddress, targetRatio: number, ratioState: RatioState): string[];
189
194
  decode(subData: string[]): {
190
195
  market: EthereumAddress;
@@ -200,12 +205,19 @@ export declare const aaveV2LeverageManagementSubDataWithoutSubProxy: {
200
205
  / _____ \ / _____ \ \ / | |____ \ / ___) |
201
206
  /__/ \__\ /__/ \__\ \__/ |_______| \__/ |____/
202
207
  */
208
+ export declare const legacyAaveV3LeverageManagementSubData: {
209
+ decode(subData: string[]): {
210
+ targetRatio: number;
211
+ };
212
+ };
203
213
  export declare const aaveV3LeverageManagementSubData: {
214
+ encode(targetRatio: number, ratioState: RatioState, market: EthereumAddress, user: EthereumAddress, isGeneric: boolean): string[];
204
215
  decode(subData: string[]): {
205
216
  targetRatio: number;
217
+ ratioState: RatioState;
206
218
  };
207
219
  };
208
- export declare const aaveV3LeverageManagementSubDataWithoutSubProxy: {
220
+ export declare const aaveV3LiquidationProtectionSubData: {
209
221
  encode(targetRatio: number, ratioState: RatioState, market: EthereumAddress, user: EthereumAddress, isGeneric: boolean): string[];
210
222
  decode(subData: string[]): {
211
223
  targetRatio: number;
@@ -284,6 +296,15 @@ export declare const aaveV4LeverageManagementSubData: {
284
296
  targetRatio: number;
285
297
  };
286
298
  };
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
+ };
287
308
  export declare const aaveV4LeverageManagementOnPriceSubData: {
288
309
  encode: (spoke: EthereumAddress, owner: EthereumAddress, collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, ratioState: RatioState, targetRatio: number) => string[];
289
310
  decode: (subData: string[]) => {
@@ -329,13 +350,12 @@ export declare const aaveV4CollateralSwitchSubData: {
329
350
  | `----.| `--' | | | | | | | \ / / /_
330
351
  \______| \______/ |__| |__| | _| \__/ |____|
331
352
  */
332
- export declare const compoundV2LeverageManagementSubData: {
333
- encode(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
353
+ export declare const legacyCompoundV2LeverageManagementSubData: {
334
354
  decode(subData: string[]): {
335
355
  targetRatio: number;
336
356
  };
337
357
  };
338
- export declare const compoundV2LeverageManagementSubDataWithoutSubProxy: {
358
+ export declare const compoundV2LeverageManagementSubData: {
339
359
  encode(targetRatio: number, ratioState: RatioState): string[];
340
360
  decode(subData: string[]): {
341
361
  targetRatio: number;
@@ -351,12 +371,15 @@ export declare const compoundV2LeverageManagementSubDataWithoutSubProxy: {
351
371
  \______| \______/ |__| |__| | _| \__/ |____/
352
372
  */
353
373
  export declare const compoundV3LeverageManagementSubData: {
354
- encode(market: EthereumAddress, baseToken: EthereumAddress, triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean, isEOA: boolean): string[];
374
+ encode(market: EthereumAddress, baseToken: EthereumAddress, targetRatio: number, ratioState: RatioState): string[];
355
375
  decode(subData: string[]): {
376
+ market: EthereumAddress;
377
+ baseToken: EthereumAddress;
356
378
  targetRatio: number;
379
+ ratioState: RatioState;
357
380
  };
358
381
  };
359
- export declare const compoundV3LeverageManagementSubDataWithoutSubProxy: {
382
+ export declare const compoundV3LiquidationProtectionSubData: {
360
383
  encode(market: EthereumAddress, baseToken: EthereumAddress, targetRatio: number, ratioState: RatioState): string[];
361
384
  decode(subData: string[]): {
362
385
  market: EthereumAddress;
@@ -403,15 +426,14 @@ export declare const exchangeDcaSubData: {
403
426
  interval: string;
404
427
  };
405
428
  };
406
- export declare const exchangeLimitOrderSubData: {
407
- encode(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string, targetPrice: string, goodUntil: string | number, orderType: OrderType): string[];
429
+ export declare const legacyExchangeLimitOrderSubData: {
408
430
  decode: (subData: string[], chainId: ChainId) => {
409
431
  fromToken: string;
410
432
  toToken: string;
411
433
  amount: string;
412
434
  };
413
435
  };
414
- export declare const exchangeLimitOrderSubDataWithoutSubProxy: {
436
+ export declare const exchangeLimitOrderSubData: {
415
437
  encode(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string): string[];
416
438
  decode: (subData: string[], chainId: ChainId) => {
417
439
  fromToken: string;
@@ -427,18 +449,39 @@ export declare const exchangeLimitOrderSubDataWithoutSubProxy: {
427
449
  .----) | | | / _____ \ | |\ \----.| . \
428
450
  |_______/ | _| /__/ \__\ | _| `._____||__|\__\
429
451
  */
452
+ export declare const legacySparkLeverageManagementSubData: {
453
+ decode(subData: string[]): {
454
+ targetRatio: number;
455
+ };
456
+ };
430
457
  export declare const sparkLeverageManagementSubData: {
458
+ encode(targetRatio: number, ratioState: RatioState): string[];
431
459
  decode(subData: string[]): {
432
460
  targetRatio: number;
461
+ ratioState: RatioState;
433
462
  };
434
463
  };
435
- export declare const sparkLeverageManagementSubDataWithoutSubProxy: {
464
+ export declare const sparkLiquidationProtectionSubData: {
436
465
  encode(targetRatio: number, ratioState: RatioState): string[];
437
466
  decode(subData: string[]): {
438
467
  targetRatio: number;
439
468
  ratioState: RatioState;
440
469
  };
441
470
  };
471
+ export declare const sparkGenericLeverageManagementSubData: {
472
+ encode(targetRatio: number, ratioState: RatioState, market: EthereumAddress, user: EthereumAddress): string[];
473
+ decode(subData: string[]): {
474
+ targetRatio: number;
475
+ ratioState: RatioState;
476
+ };
477
+ };
478
+ export declare const sparkGenericLiquidationProtectionSubData: {
479
+ encode(targetRatio: number, ratioState: RatioState, market: EthereumAddress, user: EthereumAddress): string[];
480
+ decode(subData: string[]): {
481
+ targetRatio: number;
482
+ ratioState: RatioState;
483
+ };
484
+ };
442
485
  export declare const sparkCloseGenericSubData: {
443
486
  encode(collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, closeType: CloseStrategyType, marketAddr: EthereumAddress, user: EthereumAddress): string[];
444
487
  decode(subData: string[]): {
@@ -462,6 +505,18 @@ export declare const sparkLeverageManagementOnPriceSubData: {
462
505
  targetRatio: number;
463
506
  };
464
507
  };
508
+ export declare const sparkLeverageManagementOnPriceGenericSubData: {
509
+ encode(collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, marketAddr: EthereumAddress, targetRatio: number, user: EthereumAddress): string[];
510
+ decode(subData: string[]): {
511
+ collAsset: string;
512
+ collAssetId: number;
513
+ debtAsset: string;
514
+ debtAssetId: number;
515
+ marketAddr: string;
516
+ targetRatio: number;
517
+ user: string;
518
+ };
519
+ };
465
520
  export declare const sparkCollateralSwitchSubData: {
466
521
  encode(fromAsset: EthereumAddress, fromAssetId: number, toAsset: EthereumAddress, toAssetId: number, marketAddr: EthereumAddress, amountToSwitch: string, useOnBehalf?: boolean): string[];
467
522
  decode(subData: string[]): {
@@ -473,6 +528,18 @@ export declare const sparkCollateralSwitchSubData: {
473
528
  amountToSwitch: string;
474
529
  };
475
530
  };
531
+ export declare const sparkGenericFLCollateralSwitchSubData: {
532
+ encode(fromAsset: EthereumAddress, fromAssetId: number, toAsset: EthereumAddress, toAssetId: number, marketAddr: EthereumAddress, amountToSwitch: string, user: EthereumAddress): string[];
533
+ decode(subData: string[]): {
534
+ fromAsset: EthereumAddress;
535
+ fromAssetId: number;
536
+ toAsset: EthereumAddress;
537
+ toAssetId: number;
538
+ marketAddr: EthereumAddress;
539
+ amountToSwitch: string;
540
+ user: EthereumAddress;
541
+ };
542
+ };
476
543
  /**
477
544
  ______ .______ ____ ____ __ __ _______. _______
478
545
  / || _ \ \ \ / / | | | | / || \
@@ -517,6 +584,18 @@ export declare const morphoBlueLeverageManagementSubData: {
517
584
  targetRatio: number;
518
585
  };
519
586
  };
587
+ export declare const morphoBlueLiquidationProtectionSubData: {
588
+ encode: (loanToken: EthereumAddress, collToken: EthereumAddress, oracle: EthereumAddress, irm: EthereumAddress, lltv: string, ratioState: RatioState, targetRatio: number, user: EthereumAddress, isEOA: boolean) => string[];
589
+ decode: (subData: string[]) => {
590
+ loanToken: string;
591
+ collToken: string;
592
+ oracle: string;
593
+ irm: string;
594
+ lltv: string;
595
+ user: string;
596
+ targetRatio: number;
597
+ };
598
+ };
520
599
  export declare const morphoBlueLeverageManagementOnPriceSubData: {
521
600
  encode(loanToken: EthereumAddress, collToken: EthereumAddress, oracle: EthereumAddress, irm: EthereumAddress, lltv: string, targetRatio: number, user: EthereumAddress): string[];
522
601
  decode(subData: string[]): {
@@ -558,3 +637,12 @@ export declare const fluidLeverageManagementSubData: {
558
637
  targetRatio: number;
559
638
  };
560
639
  };
640
+ export declare const fluidLiquidationProtectionSubData: {
641
+ encode: (nftId: string, vault: EthereumAddress, ratioState: RatioState, targetRatio: number) => string[];
642
+ decode: (subData: string[]) => {
643
+ nftId: string;
644
+ vault: string;
645
+ ratioState: RatioState;
646
+ targetRatio: number;
647
+ };
648
+ };
@@ -15,16 +15,6 @@ import { compareAddresses, ratioPercentageToWei, weiToRatioPercentage } from './
15
15
  |_______/ |_______|| _| | _| `._____||_______| \______/__/ \__\ |__| |_______||_______/
16
16
  */
17
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
18
  decode(subData) {
29
19
  const ratioWei = AbiCoder.decodeParameter('uint128', subData[1]);
30
20
  const targetRatio = weiToRatioPercentage(ratioWei);
@@ -32,10 +22,6 @@ export const morphoAaveV2LeverageManagementSubData = {
32
22
  },
33
23
  };
34
24
  export const cBondsRebondSubData = {
35
- encode(bondId) {
36
- const bondIdEncoded = AbiCoder.encodeParameter('uint256', bondId);
37
- return [bondIdEncoded];
38
- },
39
25
  decode(subData) {
40
26
  const bondId = AbiCoder.decodeParameter('uint256', subData[1]).toString();
41
27
  return { bondId };
@@ -117,7 +103,7 @@ export const makerCloseSubData = {
117
103
  };
118
104
  },
119
105
  };
120
- export const makerLeverageManagementSubData = {
106
+ export const legacyMakerLeverageManagementSubData = {
121
107
  decode: (subData) => {
122
108
  const vaultId = +AbiCoder.decodeParameter('uint256', subData[0]).toString();
123
109
  const weiRatio = AbiCoder.decodeParameter('uint256', subData[1]);
@@ -125,7 +111,7 @@ export const makerLeverageManagementSubData = {
125
111
  return { vaultId, targetRatio };
126
112
  },
127
113
  };
128
- export const makerLeverageManagementWithoutSubProxy = {
114
+ export const makerLeverageManagementSubData = {
129
115
  encode(vaultId, targetRatio, daiAddr) {
130
116
  const encodedVaultId = AbiCoder.encodeParameter('uint256', vaultId);
131
117
  const encodedTargetRatio = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
@@ -139,6 +125,7 @@ export const makerLeverageManagementWithoutSubProxy = {
139
125
  return { vaultId, targetRatio, daiAddr };
140
126
  },
141
127
  };
128
+ export const makerLiquidationProtectionSubData = makerLeverageManagementSubData;
142
129
  /**
143
130
  __ __ ______ __ __ __ .___________.____ ____ ____ ____ __
144
131
  | | | | / __ \ | | | | | | | |\ \ / / \ \ / / /_ |
@@ -154,14 +141,14 @@ export const liquityRepayFromSavingsSubData = {
154
141
  return { targetRatio };
155
142
  },
156
143
  };
157
- export const liquityLeverageManagementSubData = {
144
+ export const legacyLiquityLeverageManagementSubData = {
158
145
  decode: (subData) => {
159
146
  const weiRatio = AbiCoder.decodeParameter('uint256', subData[1]);
160
147
  const targetRatio = weiToRatioPercentage(weiRatio);
161
148
  return { targetRatio };
162
149
  },
163
150
  };
164
- export const liquityLeverageManagementSubDataWithoutSubProxy = {
151
+ export const liquityLeverageManagementSubData = {
165
152
  encode(targetRatio, ratioState) {
166
153
  const encodedRatioState = AbiCoder.encodeParameter('uint8', ratioState);
167
154
  const encodedTargetRatio = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
@@ -392,24 +379,14 @@ export const liquityV2PaybackSubData = {
392
379
  / _____ \ / _____ \ \ / | |____ \ / / /_
393
380
  /__/ \__\ /__/ \__\ \__/ |_______| \__/ |____|
394
381
  */
395
- export const aaveV2LeverageManagementSubData = {
396
- encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
397
- return [
398
- new Dec(triggerRepayRatio).mul(1e16).toString(),
399
- new Dec(triggerBoostRatio).mul(1e16).toString(),
400
- new Dec(targetBoostRatio).mul(1e16).toString(),
401
- new Dec(targetRepayRatio).mul(1e16).toString(),
402
- // @ts-ignore // TODO
403
- boostEnabled,
404
- ];
405
- },
382
+ export const legacyAaveV2LeverageManagementSubData = {
406
383
  decode(subData) {
407
384
  const ratioWei = AbiCoder.decodeParameter('uint256', subData[1]);
408
385
  const targetRatio = weiToRatioPercentage(ratioWei);
409
386
  return { targetRatio };
410
387
  },
411
388
  };
412
- export const aaveV2LeverageManagementSubDataWithoutSubProxy = {
389
+ export const aaveV2LeverageManagementSubData = {
413
390
  encode(market, targetRatio, ratioState) {
414
391
  const encodedMarket = AbiCoder.encodeParameter('address', market);
415
392
  const encodedTargetRatio = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
@@ -436,14 +413,14 @@ export const aaveV2LeverageManagementSubDataWithoutSubProxy = {
436
413
  / _____ \ / _____ \ \ / | |____ \ / ___) |
437
414
  /__/ \__\ /__/ \__\ \__/ |_______| \__/ |____/
438
415
  */
439
- export const aaveV3LeverageManagementSubData = {
416
+ export const legacyAaveV3LeverageManagementSubData = {
440
417
  decode(subData) {
441
418
  const ratioWei = AbiCoder.decodeParameter('uint256', subData[0]);
442
419
  const targetRatio = weiToRatioPercentage(ratioWei);
443
420
  return { targetRatio };
444
421
  },
445
422
  };
446
- export const aaveV3LeverageManagementSubDataWithoutSubProxy = {
423
+ export const aaveV3LeverageManagementSubData = {
447
424
  encode(targetRatio, ratioState, market, user, isGeneric) {
448
425
  const encodedTargetRatio = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
449
426
  const encodedRatioState = AbiCoder.encodeParameter('uint8', ratioState);
@@ -462,6 +439,7 @@ export const aaveV3LeverageManagementSubDataWithoutSubProxy = {
462
439
  return { targetRatio, ratioState };
463
440
  },
464
441
  };
442
+ export const aaveV3LiquidationProtectionSubData = aaveV3LeverageManagementSubData;
465
443
  export const aaveV3LeverageManagementOnPriceGeneric = {
466
444
  encode(collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio, user) {
467
445
  const encodedColl = AbiCoder.encodeParameter('address', collAsset);
@@ -649,6 +627,7 @@ export const aaveV4LeverageManagementSubData = {
649
627
  };
650
628
  },
651
629
  };
630
+ export const aaveV4LiquidationProtectionSubData = aaveV4LeverageManagementSubData;
652
631
  export const aaveV4LeverageManagementOnPriceSubData = {
653
632
  encode: (spoke, owner, collAsset, collAssetId, debtAsset, debtAssetId, ratioState, targetRatio) => {
654
633
  const spokeEncoded = AbiCoder.encodeParameter('address', spoke);
@@ -765,24 +744,14 @@ export const aaveV4CollateralSwitchSubData = {
765
744
  | `----.| `--' | | | | | | | \ / / /_
766
745
  \______| \______/ |__| |__| | _| \__/ |____|
767
746
  */
768
- export const compoundV2LeverageManagementSubData = {
769
- encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
770
- return [
771
- new Dec(triggerRepayRatio).mul(1e16).toString(),
772
- new Dec(triggerBoostRatio).mul(1e16).toString(),
773
- new Dec(targetBoostRatio).mul(1e16).toString(),
774
- new Dec(targetRepayRatio).mul(1e16).toString(),
775
- // @ts-ignore // TODO
776
- boostEnabled,
777
- ];
778
- },
747
+ export const legacyCompoundV2LeverageManagementSubData = {
779
748
  decode(subData) {
780
749
  const weiRatio = AbiCoder.decodeParameter('uint256', subData[0]);
781
750
  const targetRatio = weiToRatioPercentage(weiRatio);
782
751
  return { targetRatio };
783
752
  },
784
753
  };
785
- export const compoundV2LeverageManagementSubDataWithoutSubProxy = {
754
+ export const compoundV2LeverageManagementSubData = {
786
755
  encode(targetRatio, ratioState) {
787
756
  const encodedTargetRatio = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
788
757
  const encodedRatioState = AbiCoder.encodeParameter('uint8', ratioState);
@@ -808,25 +777,6 @@ export const compoundV2LeverageManagementSubDataWithoutSubProxy = {
808
777
  \______| \______/ |__| |__| | _| \__/ |____/
809
778
  */
810
779
  export const compoundV3LeverageManagementSubData = {
811
- encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA) {
812
- return [
813
- market,
814
- baseToken,
815
- new Dec(triggerRepayRatio).mul(1e16).toString(),
816
- new Dec(triggerBoostRatio).mul(1e16).toString(),
817
- new Dec(targetBoostRatio).mul(1e16).toString(),
818
- new Dec(targetRepayRatio).mul(1e16).toString(),
819
- // @ts-ignore // TODO
820
- boostEnabled, isEOA,
821
- ];
822
- },
823
- decode(subData) {
824
- const weiRatio = AbiCoder.decodeParameter('uint256', subData[3]);
825
- const targetRatio = weiToRatioPercentage(weiRatio);
826
- return { targetRatio };
827
- },
828
- };
829
- export const compoundV3LeverageManagementSubDataWithoutSubProxy = {
830
780
  encode(market, baseToken, targetRatio, ratioState) {
831
781
  const encodedMarket = AbiCoder.encodeParameter('address', market);
832
782
  const encodedBaseToken = AbiCoder.encodeParameter('address', baseToken);
@@ -844,6 +794,7 @@ export const compoundV3LeverageManagementSubDataWithoutSubProxy = {
844
794
  };
845
795
  },
846
796
  };
797
+ export const compoundV3LiquidationProtectionSubData = compoundV3LeverageManagementSubData;
847
798
  export const compoundV3LeverageManagementOnPriceSubData = {
848
799
  encode(market, collToken, baseToken, targetRatio, ratioState, user) {
849
800
  const marketEncoded = AbiCoder.encodeParameter('address', market);
@@ -929,17 +880,7 @@ export const exchangeDcaSubData = {
929
880
  };
930
881
  },
931
882
  };
932
- export const exchangeLimitOrderSubData = {
933
- encode(fromToken, toToken, amount, targetPrice, goodUntil, orderType) {
934
- return [
935
- fromToken,
936
- toToken,
937
- amount,
938
- targetPrice,
939
- new Dec(goodUntil).toString(),
940
- new Dec(orderType).toString(),
941
- ];
942
- },
883
+ export const legacyExchangeLimitOrderSubData = {
943
884
  decode: (subData, chainId) => {
944
885
  const fromToken = AbiCoder.decodeParameter('address', subData[0]).toString();
945
886
  const toToken = AbiCoder.decodeParameter('address', subData[1]).toString();
@@ -947,7 +888,7 @@ export const exchangeLimitOrderSubData = {
947
888
  return { fromToken, toToken, amount };
948
889
  },
949
890
  };
950
- export const exchangeLimitOrderSubDataWithoutSubProxy = {
891
+ export const exchangeLimitOrderSubData = {
951
892
  encode(fromToken, toToken, amount) {
952
893
  return [
953
894
  AbiCoder.encodeParameter('address', fromToken),
@@ -970,14 +911,14 @@ export const exchangeLimitOrderSubDataWithoutSubProxy = {
970
911
  .----) | | | / _____ \ | |\ \----.| . \
971
912
  |_______/ | _| /__/ \__\ | _| `._____||__|\__\
972
913
  */
973
- export const sparkLeverageManagementSubData = {
914
+ export const legacySparkLeverageManagementSubData = {
974
915
  decode(subData) {
975
916
  const ratioWei = AbiCoder.decodeParameter('uint256', subData[0]);
976
917
  const targetRatio = weiToRatioPercentage(ratioWei);
977
918
  return { targetRatio };
978
919
  },
979
920
  };
980
- export const sparkLeverageManagementSubDataWithoutSubProxy = {
921
+ export const sparkLeverageManagementSubData = {
981
922
  encode(targetRatio, ratioState) {
982
923
  const encodedTargetRatio = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
983
924
  const encodedRatioState = AbiCoder.encodeParameter('uint8', ratioState);
@@ -991,6 +932,22 @@ export const sparkLeverageManagementSubDataWithoutSubProxy = {
991
932
  return { targetRatio, ratioState };
992
933
  },
993
934
  };
935
+ export const sparkLiquidationProtectionSubData = sparkLeverageManagementSubData;
936
+ export const sparkGenericLeverageManagementSubData = {
937
+ encode(targetRatio, ratioState, market, user) {
938
+ const encodedTargetRatio = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
939
+ const encodedRatioState = AbiCoder.encodeParameter('uint8', ratioState);
940
+ const encodedMarket = AbiCoder.encodeParameter('address', market);
941
+ const encodedUser = AbiCoder.encodeParameter('address', user);
942
+ return [encodedTargetRatio, encodedRatioState, encodedMarket, encodedUser];
943
+ },
944
+ decode(subData) {
945
+ const targetRatio = weiToRatioPercentage(String(AbiCoder.decodeParameter('uint256', subData[0])));
946
+ const ratioState = Number(AbiCoder.decodeParameter('uint8', subData[1]));
947
+ return { targetRatio, ratioState };
948
+ },
949
+ };
950
+ export const sparkGenericLiquidationProtectionSubData = sparkGenericLeverageManagementSubData;
994
951
  export const sparkCloseGenericSubData = {
995
952
  encode(collAsset, collAssetId, debtAsset, debtAssetId, closeType, marketAddr, user) {
996
953
  const encodedColl = AbiCoder.encodeParameter('address', collAsset);
@@ -1047,6 +1004,33 @@ export const sparkLeverageManagementOnPriceSubData = {
1047
1004
  };
1048
1005
  },
1049
1006
  };
1007
+ export const sparkLeverageManagementOnPriceGenericSubData = {
1008
+ encode(collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio, user) {
1009
+ const encodedColl = AbiCoder.encodeParameter('address', collAsset);
1010
+ const encodedCollId = AbiCoder.encodeParameter('uint16', collAssetId);
1011
+ const encodedDebt = AbiCoder.encodeParameter('address', debtAsset);
1012
+ const encodedDebtId = AbiCoder.encodeParameter('uint16', debtAssetId);
1013
+ const encodedMarket = AbiCoder.encodeParameter('address', marketAddr);
1014
+ const encodedTargetRatio = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
1015
+ const encodedUser = AbiCoder.encodeParameter('address', user);
1016
+ return [
1017
+ encodedColl, encodedCollId, encodedDebt, encodedDebtId,
1018
+ encodedMarket, encodedTargetRatio, encodedUser,
1019
+ ];
1020
+ },
1021
+ decode(subData) {
1022
+ const collAsset = AbiCoder.decodeParameter('address', subData[0]);
1023
+ const collAssetId = Number(AbiCoder.decodeParameter('uint16', subData[1]));
1024
+ const debtAsset = AbiCoder.decodeParameter('address', subData[2]);
1025
+ const debtAssetId = Number(AbiCoder.decodeParameter('uint16', subData[3]));
1026
+ const marketAddr = AbiCoder.decodeParameter('address', subData[4]);
1027
+ const targetRatio = weiToRatioPercentage(String(AbiCoder.decodeParameter('uint256', subData[5])));
1028
+ const user = AbiCoder.decodeParameter('address', subData[6]);
1029
+ return {
1030
+ collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio, user,
1031
+ };
1032
+ },
1033
+ };
1050
1034
  export const sparkCollateralSwitchSubData = {
1051
1035
  encode(fromAsset, fromAssetId, toAsset, toAssetId, marketAddr, amountToSwitch, useOnBehalf = false) {
1052
1036
  const encodedFromAsset = AbiCoder.encodeParameter('address', fromAsset);
@@ -1078,6 +1062,38 @@ export const sparkCollateralSwitchSubData = {
1078
1062
  };
1079
1063
  },
1080
1064
  };
1065
+ export const sparkGenericFLCollateralSwitchSubData = {
1066
+ encode(fromAsset, fromAssetId, toAsset, toAssetId, marketAddr, amountToSwitch, user) {
1067
+ const encodedFromAsset = AbiCoder.encodeParameter('address', fromAsset);
1068
+ const encodedFromAssetId = AbiCoder.encodeParameter('uint16', fromAssetId);
1069
+ const encodedToAsset = AbiCoder.encodeParameter('address', toAsset);
1070
+ const encodedToAssetId = AbiCoder.encodeParameter('uint16', toAssetId);
1071
+ const encodedMarketAddr = AbiCoder.encodeParameter('address', marketAddr);
1072
+ const encodedAmountToSwitch = AbiCoder.encodeParameter('uint256', amountToSwitch);
1073
+ const encodedUser = AbiCoder.encodeParameter('address', user);
1074
+ return [
1075
+ encodedFromAsset,
1076
+ encodedFromAssetId,
1077
+ encodedToAsset,
1078
+ encodedToAssetId,
1079
+ encodedMarketAddr,
1080
+ encodedAmountToSwitch,
1081
+ encodedUser,
1082
+ ];
1083
+ },
1084
+ decode(subData) {
1085
+ const fromAsset = AbiCoder.decodeParameter('address', subData[0]);
1086
+ const fromAssetId = Number(AbiCoder.decodeParameter('uint16', subData[1]));
1087
+ const toAsset = AbiCoder.decodeParameter('address', subData[2]);
1088
+ const toAssetId = Number(AbiCoder.decodeParameter('uint16', subData[3]));
1089
+ const marketAddr = AbiCoder.decodeParameter('address', subData[4]);
1090
+ const amountToSwitch = AbiCoder.decodeParameter('uint256', subData[5]);
1091
+ const user = AbiCoder.decodeParameter('address', subData[6]);
1092
+ return {
1093
+ fromAsset, fromAssetId, toAsset, toAssetId, marketAddr, amountToSwitch, user,
1094
+ };
1095
+ },
1096
+ };
1081
1097
  /**
1082
1098
  ______ .______ ____ ____ __ __ _______. _______
1083
1099
  / || _ \ \ \ / / | | | | / || \
@@ -1172,6 +1188,7 @@ export const morphoBlueLeverageManagementSubData = {
1172
1188
  };
1173
1189
  },
1174
1190
  };
1191
+ export const morphoBlueLiquidationProtectionSubData = morphoBlueLeverageManagementSubData;
1175
1192
  export const morphoBlueLeverageManagementOnPriceSubData = {
1176
1193
  encode(loanToken, collToken, oracle, irm, lltv, targetRatio, user) {
1177
1194
  const loanTokenEncoded = AbiCoder.encodeParameter('address', loanToken);
@@ -1274,3 +1291,4 @@ export const fluidLeverageManagementSubData = {
1274
1291
  };
1275
1292
  },
1276
1293
  };
1294
+ export const fluidLiquidationProtectionSubData = fluidLeverageManagementSubData;