@defisaver/automation-sdk 3.3.15 → 3.3.16-liq-prot-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 (42) hide show
  1. package/cjs/constants/index.js +145 -0
  2. package/cjs/index.d.ts +2 -2
  3. package/cjs/index.js +5 -2
  4. package/cjs/services/strategiesService.js +158 -9
  5. package/cjs/services/strategySubService.d.ts +17 -16
  6. package/cjs/services/strategySubService.js +69 -28
  7. package/cjs/services/strategySubService.test.js +69 -40
  8. package/cjs/services/subDataService.d.ts +70 -20
  9. package/cjs/services/subDataService.js +23 -79
  10. package/cjs/services/subDataService.test.js +117 -202
  11. package/cjs/services/triggerService.test.js +60 -0
  12. package/cjs/services/utils.d.ts +2 -1
  13. package/cjs/services/utils.js +14 -1
  14. package/cjs/types/enums.d.ts +39 -6
  15. package/cjs/types/enums.js +33 -0
  16. package/esm/constants/index.js +145 -0
  17. package/esm/index.d.ts +2 -2
  18. package/esm/index.js +5 -2
  19. package/esm/services/strategiesService.js +158 -9
  20. package/esm/services/strategySubService.d.ts +17 -16
  21. package/esm/services/strategySubService.js +69 -28
  22. package/esm/services/strategySubService.test.js +70 -38
  23. package/esm/services/subDataService.d.ts +70 -20
  24. package/esm/services/subDataService.js +21 -77
  25. package/esm/services/subDataService.test.js +118 -200
  26. package/esm/services/triggerService.test.js +61 -1
  27. package/esm/services/utils.d.ts +2 -1
  28. package/esm/services/utils.js +13 -1
  29. package/esm/types/enums.d.ts +39 -6
  30. package/esm/types/enums.js +33 -0
  31. package/package.json +1 -1
  32. package/src/constants/index.ts +147 -1
  33. package/src/index.ts +22 -6
  34. package/src/services/strategiesService.ts +222 -9
  35. package/src/services/strategySubService.test.ts +86 -46
  36. package/src/services/strategySubService.ts +166 -39
  37. package/src/services/subDataService.test.ts +128 -214
  38. package/src/services/subDataService.ts +42 -106
  39. package/src/services/triggerService.test.ts +69 -0
  40. package/src/services/utils.test.ts +1 -1
  41. package/src/services/utils.ts +15 -1
  42. package/src/types/enums.ts +33 -2
@@ -159,6 +159,8 @@ var Strategies;
159
159
  Identifiers["EoaRepayOnPrice"] = "eoa-repay-on-price";
160
160
  Identifiers["CollateralSwitch"] = "collateral-switch";
161
161
  Identifiers["EoaCollateralSwitch"] = "eoa-collateral-switch";
162
+ Identifiers["LiquidationProtection"] = "liquidation-protection";
163
+ Identifiers["EoaLiquidationProtection"] = "liquidation-protection-eoa";
162
164
  })(Identifiers = Strategies.Identifiers || (Strategies.Identifiers = {}));
163
165
  let IdOverrides;
164
166
  (function (IdOverrides) {
@@ -171,6 +173,8 @@ var Strategies;
171
173
  IdOverrides["EoaLeverageManagement"] = "leverage-management-eoa";
172
174
  IdOverrides["LeverageManagementOnPrice"] = "leverage-management-on-price";
173
175
  IdOverrides["EoaLeverageManagementOnPrice"] = "leverage-management-on-price-eoa";
176
+ IdOverrides["LiquidationProtection"] = "liquidation-protection";
177
+ IdOverrides["EoaLiquidationProtection"] = "liquidation-protection-eoa";
174
178
  })(IdOverrides = Strategies.IdOverrides || (Strategies.IdOverrides = {}));
175
179
  })(Strategies = exports.Strategies || (exports.Strategies = {}));
176
180
  var Bundles;
@@ -248,6 +252,18 @@ var Bundles;
248
252
  MainnetIds[MainnetIds["AAVE_V4_EOA_REPAY_ON_PRICE"] = 68] = "AAVE_V4_EOA_REPAY_ON_PRICE";
249
253
  MainnetIds[MainnetIds["AAVE_V4_EOA_BOOST_ON_PRICE"] = 69] = "AAVE_V4_EOA_BOOST_ON_PRICE";
250
254
  MainnetIds[MainnetIds["AAVE_V4_EOA_CLOSE"] = 70] = "AAVE_V4_EOA_CLOSE";
255
+ MainnetIds[MainnetIds["AAVE_V3_SW_LIQUIDATION_PROTECTION"] = 71] = "AAVE_V3_SW_LIQUIDATION_PROTECTION";
256
+ MainnetIds[MainnetIds["SPARK_SW_LIQUIDATION_PROTECTION"] = 72] = "SPARK_SW_LIQUIDATION_PROTECTION";
257
+ MainnetIds[MainnetIds["MAKER_SW_LIQUIDATION_PROTECTION"] = 75] = "MAKER_SW_LIQUIDATION_PROTECTION";
258
+ MainnetIds[MainnetIds["FLUID_T1_SW_LIQUIDATION_PROTECTION"] = 76] = "FLUID_T1_SW_LIQUIDATION_PROTECTION";
259
+ MainnetIds[MainnetIds["AAVE_V4_SW_LIQUIDATION_PROTECTION"] = 77] = "AAVE_V4_SW_LIQUIDATION_PROTECTION";
260
+ MainnetIds[MainnetIds["MORPHO_BLUE_SW_LIQUIDATION_PROTECTION"] = 78] = "MORPHO_BLUE_SW_LIQUIDATION_PROTECTION";
261
+ MainnetIds[MainnetIds["AAVE_V3_EOA_LIQUIDATION_PROTECTION"] = 79] = "AAVE_V3_EOA_LIQUIDATION_PROTECTION";
262
+ MainnetIds[MainnetIds["AAVE_V4_EOA_LIQUIDATION_PROTECTION"] = 80] = "AAVE_V4_EOA_LIQUIDATION_PROTECTION";
263
+ MainnetIds[MainnetIds["MORPHO_BLUE_EOA_LIQUIDATION_PROTECTION"] = 81] = "MORPHO_BLUE_EOA_LIQUIDATION_PROTECTION";
264
+ MainnetIds[MainnetIds["COMP_V3_SW_LIQUIDATION_PROTECTION"] = 82] = "COMP_V3_SW_LIQUIDATION_PROTECTION";
265
+ MainnetIds[MainnetIds["COMP_V3_EOA_LIQUIDATION_PROTECTION"] = 83] = "COMP_V3_EOA_LIQUIDATION_PROTECTION";
266
+ MainnetIds[MainnetIds["MORPHO_BLUE_REPAY_ON_PRICE"] = 84] = "MORPHO_BLUE_REPAY_ON_PRICE";
251
267
  })(MainnetIds = Bundles.MainnetIds || (Bundles.MainnetIds = {}));
252
268
  let OptimismIds;
253
269
  (function (OptimismIds) {
@@ -262,6 +278,8 @@ var Bundles;
262
278
  OptimismIds[OptimismIds["AAVE_V3_EOA_REPAY_ON_PRICE"] = 8] = "AAVE_V3_EOA_REPAY_ON_PRICE";
263
279
  OptimismIds[OptimismIds["AAVE_V3_EOA_BOOST_ON_PRICE"] = 9] = "AAVE_V3_EOA_BOOST_ON_PRICE";
264
280
  OptimismIds[OptimismIds["AAVE_V3_EOA_CLOSE"] = 10] = "AAVE_V3_EOA_CLOSE";
281
+ OptimismIds[OptimismIds["AAVE_V3_SW_LIQUIDATION_PROTECTION"] = 11] = "AAVE_V3_SW_LIQUIDATION_PROTECTION";
282
+ OptimismIds[OptimismIds["AAVE_V3_EOA_LIQUIDATION_PROTECTION"] = 12] = "AAVE_V3_EOA_LIQUIDATION_PROTECTION";
265
283
  })(OptimismIds = Bundles.OptimismIds || (Bundles.OptimismIds = {}));
266
284
  let BaseIds;
267
285
  (function (BaseIds) {
@@ -292,6 +310,13 @@ var Bundles;
292
310
  BaseIds[BaseIds["AAVE_V3_EOA_BOOST_ON_PRICE"] = 26] = "AAVE_V3_EOA_BOOST_ON_PRICE";
293
311
  BaseIds[BaseIds["AAVE_V3_EOA_CLOSE"] = 27] = "AAVE_V3_EOA_CLOSE";
294
312
  BaseIds[BaseIds["MORPHO_BLUE_CLOSE"] = 28] = "MORPHO_BLUE_CLOSE";
313
+ BaseIds[BaseIds["AAVE_V3_SW_LIQUIDATION_PROTECTION"] = 29] = "AAVE_V3_SW_LIQUIDATION_PROTECTION";
314
+ BaseIds[BaseIds["FLUID_T1_SW_LIQUIDATION_PROTECTION"] = 30] = "FLUID_T1_SW_LIQUIDATION_PROTECTION";
315
+ BaseIds[BaseIds["COMP_V3_SW_LIQUIDATION_PROTECTION"] = 32] = "COMP_V3_SW_LIQUIDATION_PROTECTION";
316
+ BaseIds[BaseIds["COMP_V3_EOA_LIQUIDATION_PROTECTION"] = 33] = "COMP_V3_EOA_LIQUIDATION_PROTECTION";
317
+ BaseIds[BaseIds["AAVE_V3_EOA_LIQUIDATION_PROTECTION"] = 34] = "AAVE_V3_EOA_LIQUIDATION_PROTECTION";
318
+ BaseIds[BaseIds["MORPHO_BLUE_SW_LIQUIDATION_PROTECTION"] = 35] = "MORPHO_BLUE_SW_LIQUIDATION_PROTECTION";
319
+ BaseIds[BaseIds["MORPHO_BLUE_REPAY_ON_PRICE"] = 36] = "MORPHO_BLUE_REPAY_ON_PRICE";
295
320
  })(BaseIds = Bundles.BaseIds || (Bundles.BaseIds = {}));
296
321
  let ArbitrumIds;
297
322
  (function (ArbitrumIds) {
@@ -324,5 +349,13 @@ var Bundles;
324
349
  ArbitrumIds[ArbitrumIds["MORPHO_BLUE_EOA_REPAY"] = 26] = "MORPHO_BLUE_EOA_REPAY";
325
350
  ArbitrumIds[ArbitrumIds["MORPHO_BLUE_EOA_BOOST"] = 27] = "MORPHO_BLUE_EOA_BOOST";
326
351
  ArbitrumIds[ArbitrumIds["MORPHO_BLUE_CLOSE"] = 28] = "MORPHO_BLUE_CLOSE";
352
+ ArbitrumIds[ArbitrumIds["AAVE_V3_SW_LIQUIDATION_PROTECTION"] = 29] = "AAVE_V3_SW_LIQUIDATION_PROTECTION";
353
+ ArbitrumIds[ArbitrumIds["FLUID_T1_SW_LIQUIDATION_PROTECTION"] = 30] = "FLUID_T1_SW_LIQUIDATION_PROTECTION";
354
+ ArbitrumIds[ArbitrumIds["MORPHO_BLUE_SW_LIQUIDATION_PROTECTION"] = 31] = "MORPHO_BLUE_SW_LIQUIDATION_PROTECTION";
355
+ ArbitrumIds[ArbitrumIds["COMP_V3_SW_LIQUIDATION_PROTECTION"] = 32] = "COMP_V3_SW_LIQUIDATION_PROTECTION";
356
+ ArbitrumIds[ArbitrumIds["COMP_V3_EOA_LIQUIDATION_PROTECTION"] = 33] = "COMP_V3_EOA_LIQUIDATION_PROTECTION";
357
+ ArbitrumIds[ArbitrumIds["AAVE_V3_EOA_LIQUIDATION_PROTECTION"] = 34] = "AAVE_V3_EOA_LIQUIDATION_PROTECTION";
358
+ ArbitrumIds[ArbitrumIds["MORPHO_BLUE_EOA_LIQUIDATION_PROTECTION"] = 35] = "MORPHO_BLUE_EOA_LIQUIDATION_PROTECTION";
359
+ ArbitrumIds[ArbitrumIds["MORPHO_BLUE_REPAY_ON_PRICE"] = 36] = "MORPHO_BLUE_REPAY_ON_PRICE";
327
360
  })(ArbitrumIds = Bundles.ArbitrumIds || (Bundles.ArbitrumIds = {}));
328
361
  })(Bundles = exports.Bundles || (exports.Bundles = {}));
@@ -543,6 +543,66 @@ export const MAINNET_BUNDLES_INFO = {
543
543
  strategyId: Strategies.Identifiers.EoaCloseOnPrice,
544
544
  protocol: PROTOCOLS.AaveV4,
545
545
  },
546
+ [Bundles.MainnetIds.MAKER_SW_LIQUIDATION_PROTECTION]: {
547
+ strategyOrBundleId: Bundles.MainnetIds.MAKER_SW_LIQUIDATION_PROTECTION,
548
+ strategyId: Strategies.Identifiers.LiquidationProtection,
549
+ protocol: PROTOCOLS.MakerDAO,
550
+ },
551
+ [Bundles.MainnetIds.AAVE_V3_SW_LIQUIDATION_PROTECTION]: {
552
+ strategyOrBundleId: Bundles.MainnetIds.AAVE_V3_SW_LIQUIDATION_PROTECTION,
553
+ strategyId: Strategies.Identifiers.LiquidationProtection,
554
+ protocol: PROTOCOLS.AaveV3,
555
+ },
556
+ [Bundles.MainnetIds.AAVE_V4_SW_LIQUIDATION_PROTECTION]: {
557
+ strategyOrBundleId: Bundles.MainnetIds.AAVE_V4_SW_LIQUIDATION_PROTECTION,
558
+ strategyId: Strategies.Identifiers.LiquidationProtection,
559
+ protocol: PROTOCOLS.AaveV4,
560
+ },
561
+ [Bundles.MainnetIds.SPARK_SW_LIQUIDATION_PROTECTION]: {
562
+ strategyOrBundleId: Bundles.MainnetIds.SPARK_SW_LIQUIDATION_PROTECTION,
563
+ strategyId: Strategies.Identifiers.LiquidationProtection,
564
+ protocol: PROTOCOLS.Spark,
565
+ },
566
+ [Bundles.MainnetIds.COMP_V3_SW_LIQUIDATION_PROTECTION]: {
567
+ strategyOrBundleId: Bundles.MainnetIds.COMP_V3_SW_LIQUIDATION_PROTECTION,
568
+ strategyId: Strategies.Identifiers.LiquidationProtection,
569
+ protocol: PROTOCOLS.CompoundV3,
570
+ },
571
+ [Bundles.MainnetIds.COMP_V3_EOA_LIQUIDATION_PROTECTION]: {
572
+ strategyOrBundleId: Bundles.MainnetIds.COMP_V3_EOA_LIQUIDATION_PROTECTION,
573
+ strategyId: Strategies.Identifiers.EoaLiquidationProtection,
574
+ protocol: PROTOCOLS.CompoundV3,
575
+ },
576
+ [Bundles.MainnetIds.MORPHO_BLUE_SW_LIQUIDATION_PROTECTION]: {
577
+ strategyOrBundleId: Bundles.MainnetIds.MORPHO_BLUE_SW_LIQUIDATION_PROTECTION,
578
+ strategyId: Strategies.Identifiers.LiquidationProtection,
579
+ protocol: PROTOCOLS.MorphoBlue,
580
+ },
581
+ [Bundles.MainnetIds.FLUID_T1_SW_LIQUIDATION_PROTECTION]: {
582
+ strategyOrBundleId: Bundles.MainnetIds.FLUID_T1_SW_LIQUIDATION_PROTECTION,
583
+ strategyId: Strategies.Identifiers.LiquidationProtection,
584
+ protocol: PROTOCOLS.FluidT1,
585
+ },
586
+ [Bundles.MainnetIds.AAVE_V3_EOA_LIQUIDATION_PROTECTION]: {
587
+ strategyOrBundleId: Bundles.MainnetIds.AAVE_V3_EOA_LIQUIDATION_PROTECTION,
588
+ strategyId: Strategies.Identifiers.EoaLiquidationProtection,
589
+ protocol: PROTOCOLS.AaveV3,
590
+ },
591
+ [Bundles.MainnetIds.AAVE_V4_EOA_LIQUIDATION_PROTECTION]: {
592
+ strategyOrBundleId: Bundles.MainnetIds.AAVE_V4_EOA_LIQUIDATION_PROTECTION,
593
+ strategyId: Strategies.Identifiers.EoaLiquidationProtection,
594
+ protocol: PROTOCOLS.AaveV4,
595
+ },
596
+ [Bundles.MainnetIds.MORPHO_BLUE_EOA_LIQUIDATION_PROTECTION]: {
597
+ strategyOrBundleId: Bundles.MainnetIds.MORPHO_BLUE_EOA_LIQUIDATION_PROTECTION,
598
+ strategyId: Strategies.Identifiers.EoaLiquidationProtection,
599
+ protocol: PROTOCOLS.MorphoBlue,
600
+ },
601
+ [Bundles.MainnetIds.MORPHO_BLUE_REPAY_ON_PRICE]: {
602
+ strategyOrBundleId: Bundles.MainnetIds.MORPHO_BLUE_REPAY_ON_PRICE,
603
+ strategyId: Strategies.Identifiers.RepayOnPrice,
604
+ protocol: PROTOCOLS.MorphoBlue,
605
+ },
546
606
  };
547
607
  export const OPTIMISM_BUNDLES_INFO = {
548
608
  [Bundles.OptimismIds.AAVE_V3_REPAY]: {
@@ -600,6 +660,16 @@ export const OPTIMISM_BUNDLES_INFO = {
600
660
  strategyId: Strategies.Identifiers.EoaCloseOnPrice,
601
661
  protocol: PROTOCOLS.AaveV3,
602
662
  },
663
+ [Bundles.OptimismIds.AAVE_V3_SW_LIQUIDATION_PROTECTION]: {
664
+ strategyOrBundleId: Bundles.OptimismIds.AAVE_V3_SW_LIQUIDATION_PROTECTION,
665
+ strategyId: Strategies.Identifiers.LiquidationProtection,
666
+ protocol: PROTOCOLS.AaveV3,
667
+ },
668
+ [Bundles.OptimismIds.AAVE_V3_EOA_LIQUIDATION_PROTECTION]: {
669
+ strategyOrBundleId: Bundles.OptimismIds.AAVE_V3_EOA_LIQUIDATION_PROTECTION,
670
+ strategyId: Strategies.Identifiers.EoaLiquidationProtection,
671
+ protocol: PROTOCOLS.AaveV3,
672
+ },
603
673
  };
604
674
  export const BASE_BUNDLES_INFO = {
605
675
  [Bundles.BaseIds.AAVE_V3_REPAY]: {
@@ -737,6 +807,41 @@ export const BASE_BUNDLES_INFO = {
737
807
  strategyId: Strategies.Identifiers.CloseOnPrice,
738
808
  protocol: PROTOCOLS.MorphoBlue,
739
809
  },
810
+ [Bundles.BaseIds.MORPHO_BLUE_REPAY_ON_PRICE]: {
811
+ strategyOrBundleId: Bundles.BaseIds.MORPHO_BLUE_REPAY_ON_PRICE,
812
+ strategyId: Strategies.Identifiers.RepayOnPrice,
813
+ protocol: PROTOCOLS.MorphoBlue,
814
+ },
815
+ [Bundles.BaseIds.AAVE_V3_SW_LIQUIDATION_PROTECTION]: {
816
+ strategyOrBundleId: Bundles.BaseIds.AAVE_V3_SW_LIQUIDATION_PROTECTION,
817
+ strategyId: Strategies.Identifiers.LiquidationProtection,
818
+ protocol: PROTOCOLS.AaveV3,
819
+ },
820
+ [Bundles.BaseIds.COMP_V3_SW_LIQUIDATION_PROTECTION]: {
821
+ strategyOrBundleId: Bundles.BaseIds.COMP_V3_SW_LIQUIDATION_PROTECTION,
822
+ strategyId: Strategies.Identifiers.LiquidationProtection,
823
+ protocol: PROTOCOLS.CompoundV3,
824
+ },
825
+ [Bundles.BaseIds.COMP_V3_EOA_LIQUIDATION_PROTECTION]: {
826
+ strategyOrBundleId: Bundles.BaseIds.COMP_V3_EOA_LIQUIDATION_PROTECTION,
827
+ strategyId: Strategies.Identifiers.EoaLiquidationProtection,
828
+ protocol: PROTOCOLS.CompoundV3,
829
+ },
830
+ [Bundles.BaseIds.MORPHO_BLUE_SW_LIQUIDATION_PROTECTION]: {
831
+ strategyOrBundleId: Bundles.BaseIds.MORPHO_BLUE_SW_LIQUIDATION_PROTECTION,
832
+ strategyId: Strategies.Identifiers.LiquidationProtection,
833
+ protocol: PROTOCOLS.MorphoBlue,
834
+ },
835
+ [Bundles.BaseIds.FLUID_T1_SW_LIQUIDATION_PROTECTION]: {
836
+ strategyOrBundleId: Bundles.BaseIds.FLUID_T1_SW_LIQUIDATION_PROTECTION,
837
+ strategyId: Strategies.Identifiers.LiquidationProtection,
838
+ protocol: PROTOCOLS.FluidT1,
839
+ },
840
+ [Bundles.BaseIds.AAVE_V3_EOA_LIQUIDATION_PROTECTION]: {
841
+ strategyOrBundleId: Bundles.BaseIds.AAVE_V3_EOA_LIQUIDATION_PROTECTION,
842
+ strategyId: Strategies.Identifiers.EoaLiquidationProtection,
843
+ protocol: PROTOCOLS.AaveV3,
844
+ },
740
845
  };
741
846
  export const ARBITRUM_BUNDLES_INFO = {
742
847
  [Bundles.ArbitrumIds.AAVE_V3_REPAY]: {
@@ -884,6 +989,46 @@ export const ARBITRUM_BUNDLES_INFO = {
884
989
  strategyId: Strategies.Identifiers.CloseOnPrice,
885
990
  protocol: PROTOCOLS.MorphoBlue,
886
991
  },
992
+ [Bundles.ArbitrumIds.MORPHO_BLUE_REPAY_ON_PRICE]: {
993
+ strategyOrBundleId: Bundles.ArbitrumIds.MORPHO_BLUE_REPAY_ON_PRICE,
994
+ strategyId: Strategies.Identifiers.RepayOnPrice,
995
+ protocol: PROTOCOLS.MorphoBlue,
996
+ },
997
+ [Bundles.ArbitrumIds.AAVE_V3_SW_LIQUIDATION_PROTECTION]: {
998
+ strategyOrBundleId: Bundles.ArbitrumIds.AAVE_V3_SW_LIQUIDATION_PROTECTION,
999
+ strategyId: Strategies.Identifiers.LiquidationProtection,
1000
+ protocol: PROTOCOLS.AaveV3,
1001
+ },
1002
+ [Bundles.ArbitrumIds.COMP_V3_SW_LIQUIDATION_PROTECTION]: {
1003
+ strategyOrBundleId: Bundles.ArbitrumIds.COMP_V3_SW_LIQUIDATION_PROTECTION,
1004
+ strategyId: Strategies.Identifiers.LiquidationProtection,
1005
+ protocol: PROTOCOLS.CompoundV3,
1006
+ },
1007
+ [Bundles.ArbitrumIds.COMP_V3_EOA_LIQUIDATION_PROTECTION]: {
1008
+ strategyOrBundleId: Bundles.ArbitrumIds.COMP_V3_EOA_LIQUIDATION_PROTECTION,
1009
+ strategyId: Strategies.Identifiers.EoaLiquidationProtection,
1010
+ protocol: PROTOCOLS.CompoundV3,
1011
+ },
1012
+ [Bundles.ArbitrumIds.MORPHO_BLUE_SW_LIQUIDATION_PROTECTION]: {
1013
+ strategyOrBundleId: Bundles.ArbitrumIds.MORPHO_BLUE_SW_LIQUIDATION_PROTECTION,
1014
+ strategyId: Strategies.Identifiers.LiquidationProtection,
1015
+ protocol: PROTOCOLS.MorphoBlue,
1016
+ },
1017
+ [Bundles.ArbitrumIds.FLUID_T1_SW_LIQUIDATION_PROTECTION]: {
1018
+ strategyOrBundleId: Bundles.ArbitrumIds.FLUID_T1_SW_LIQUIDATION_PROTECTION,
1019
+ strategyId: Strategies.Identifiers.LiquidationProtection,
1020
+ protocol: PROTOCOLS.FluidT1,
1021
+ },
1022
+ [Bundles.ArbitrumIds.AAVE_V3_EOA_LIQUIDATION_PROTECTION]: {
1023
+ strategyOrBundleId: Bundles.ArbitrumIds.AAVE_V3_EOA_LIQUIDATION_PROTECTION,
1024
+ strategyId: Strategies.Identifiers.EoaLiquidationProtection,
1025
+ protocol: PROTOCOLS.AaveV3,
1026
+ },
1027
+ [Bundles.ArbitrumIds.MORPHO_BLUE_EOA_LIQUIDATION_PROTECTION]: {
1028
+ strategyOrBundleId: Bundles.ArbitrumIds.MORPHO_BLUE_EOA_LIQUIDATION_PROTECTION,
1029
+ strategyId: Strategies.Identifiers.EoaLiquidationProtection,
1030
+ protocol: PROTOCOLS.MorphoBlue,
1031
+ },
887
1032
  };
888
1033
  export const BUNDLES_INFO = {
889
1034
  [ChainId.Ethereum]: MAINNET_BUNDLES_INFO,
package/esm/index.d.ts CHANGED
@@ -15,10 +15,10 @@ import * as enums from './types/enums';
15
15
  import type * as types from './types';
16
16
  import { getRatioStateInfoForAaveCloseStrategy, compareSubHashes, encodeSubId, getCloseStrategyType } from './services/utils';
17
17
  declare const utils: {
18
- getRatioStateInfoForAaveCloseStrategy: typeof getRatioStateInfoForAaveCloseStrategy;
19
18
  compareSubHashes: typeof compareSubHashes;
20
19
  encodeSubId: typeof encodeSubId;
21
20
  getCloseStrategyType: typeof getCloseStrategyType;
21
+ getRatioStateInfoForAaveCloseStrategy: typeof getRatioStateInfoForAaveCloseStrategy;
22
22
  };
23
- export { LegacyMakerAutomation, LegacyAaveAutomation, LegacyCompoundAutomation, EthereumStrategies, OptimismStrategies, ArbitrumStrategies, BaseStrategies, triggerService, subDataService, strategySubService, utils, enums, constants, strategiesService, };
23
+ export { ArbitrumStrategies, BaseStrategies, EthereumStrategies, LegacyAaveAutomation, LegacyCompoundAutomation, LegacyMakerAutomation, OptimismStrategies, constants, enums, strategiesService, strategySubService, subDataService, triggerService, utils, };
24
24
  export type { types };
package/esm/index.js CHANGED
@@ -18,6 +18,9 @@ import * as constants from './constants';
18
18
  import * as enums from './types/enums';
19
19
  import { getRatioStateInfoForAaveCloseStrategy, compareSubHashes, encodeSubId, getCloseStrategyType, } from './services/utils';
20
20
  const utils = {
21
- getRatioStateInfoForAaveCloseStrategy, compareSubHashes, encodeSubId, getCloseStrategyType,
21
+ compareSubHashes,
22
+ encodeSubId,
23
+ getCloseStrategyType,
24
+ getRatioStateInfoForAaveCloseStrategy,
22
25
  };
23
- export { LegacyMakerAutomation, LegacyAaveAutomation, LegacyCompoundAutomation, EthereumStrategies, OptimismStrategies, ArbitrumStrategies, BaseStrategies, triggerService, subDataService, strategySubService, utils, enums, constants, strategiesService, };
26
+ export { ArbitrumStrategies, BaseStrategies, EthereumStrategies, LegacyAaveAutomation, LegacyCompoundAutomation, LegacyMakerAutomation, OptimismStrategies, constants, enums, strategiesService, strategySubService, subDataService, triggerService, utils, };
@@ -66,7 +66,7 @@ function parseMakerLeverageManagement(position, parseData) {
66
66
  const { subStruct, subId, subHash } = parseData.subscriptionEventData;
67
67
  const { isEnabled } = parseData.strategiesSubsData;
68
68
  const triggerData = triggerService.makerRatioTrigger.decode(subStruct.triggerData);
69
- const subData = subDataService.makerLeverageManagementSubData.decode(subStruct.subData);
69
+ const subData = subDataService.legacyMakerLeverageManagementSubData.decode(subStruct.subData);
70
70
  _position.strategyData.decoded.triggerData = triggerData;
71
71
  _position.strategyData.decoded.subData = subData;
72
72
  _position.positionId = getPositionId(_position.chainId, _position.protocol.id, subData.vaultId);
@@ -94,6 +94,24 @@ function parseMakerLeverageManagement(position, parseData) {
94
94
  _position.strategy.strategyId = Strategies.IdOverrides.LeverageManagement;
95
95
  return _position;
96
96
  }
97
+ function parseMakerLiquidationProtection(position, parseData) {
98
+ const _position = cloneDeep(position);
99
+ const { subStruct, subId } = parseData.subscriptionEventData;
100
+ const { isEnabled } = parseData.strategiesSubsData;
101
+ const triggerData = triggerService.makerRatioTrigger.decode(subStruct.triggerData);
102
+ const subData = subDataService.makerLiquidationProtectionSubData.decode(subStruct.subData);
103
+ _position.strategyData.decoded.triggerData = triggerData;
104
+ _position.strategyData.decoded.subData = subData;
105
+ _position.positionId = getPositionId(_position.chainId, _position.protocol.id, subData.vaultId);
106
+ _position.specific = {
107
+ triggerRepayRatio: triggerData.ratio,
108
+ targetRepayRatio: subData.targetRatio,
109
+ repayEnabled: isEnabled,
110
+ subId1: Number(subId),
111
+ };
112
+ _position.strategy.strategyId = Strategies.IdOverrides.LiquidationProtection;
113
+ return _position;
114
+ }
97
115
  function parseLiquityCloseOnPrice(position, parseData) {
98
116
  const _position = cloneDeep(position);
99
117
  const { subStruct } = parseData.subscriptionEventData;
@@ -131,7 +149,7 @@ function parseAaveV2LeverageManagement(position, parseData) {
131
149
  const { subStruct, subId, subHash } = parseData.subscriptionEventData;
132
150
  const { isEnabled } = parseData.strategiesSubsData;
133
151
  const triggerData = triggerService.aaveV2RatioTrigger.decode(subStruct.triggerData);
134
- const subData = subDataService.aaveV2LeverageManagementSubData.decode(subStruct.subData);
152
+ const subData = subDataService.legacyAaveV2LeverageManagementSubData.decode(subStruct.subData);
135
153
  _position.strategyData.decoded.triggerData = triggerData;
136
154
  _position.strategyData.decoded.subData = subData;
137
155
  _position.positionId = getPositionId(_position.chainId, _position.protocol.id, _position.owner, triggerData.market);
@@ -167,10 +185,10 @@ function parseAaveV3LeverageManagement(position, parseData) {
167
185
  const isEOA = _position.strategy.strategyId.includes('eoa');
168
186
  let subData;
169
187
  if (isEOA) {
170
- subData = subDataService.aaveV3LeverageManagementSubDataWithoutSubProxy.decode(subStruct.subData);
188
+ subData = subDataService.aaveV3LeverageManagementSubData.decode(subStruct.subData);
171
189
  }
172
190
  else {
173
- subData = subDataService.aaveV3LeverageManagementSubData.decode(subStruct.subData);
191
+ subData = subDataService.legacyAaveV3LeverageManagementSubData.decode(subStruct.subData);
174
192
  }
175
193
  _position.strategyData.decoded.triggerData = triggerData;
176
194
  _position.strategyData.decoded.subData = subData;
@@ -204,6 +222,26 @@ function parseAaveV3LeverageManagement(position, parseData) {
204
222
  }
205
223
  return _position;
206
224
  }
225
+ function parseAaveV3LiquidationProtection(position, parseData) {
226
+ const _position = cloneDeep(position);
227
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
228
+ const { isEnabled } = parseData.strategiesSubsData;
229
+ const triggerData = triggerService.aaveV3RatioTrigger.decode(subStruct.triggerData);
230
+ const subData = subDataService.aaveV3LiquidationProtectionSubData.decode(subStruct.subData);
231
+ _position.strategyData.decoded.triggerData = triggerData;
232
+ _position.strategyData.decoded.subData = subData;
233
+ _position.positionId = getPositionId(_position.chainId, _position.protocol.id, _position.owner, triggerData.market);
234
+ _position.specific = {
235
+ triggerRepayRatio: triggerData.ratio,
236
+ targetRepayRatio: subData.targetRatio,
237
+ repayEnabled: isEnabled,
238
+ subId1: Number(subId),
239
+ subHashRepay: subHash,
240
+ };
241
+ const isEOA = _position.strategy.strategyId.includes('eoa');
242
+ _position.strategy.strategyId = isEOA ? Strategies.IdOverrides.EoaLiquidationProtection : Strategies.IdOverrides.LiquidationProtection;
243
+ return _position;
244
+ }
207
245
  function parseAaveV3LeverageManagementOnPrice(position, parseData) {
208
246
  const _position = cloneDeep(position);
209
247
  const { subStruct } = parseData.subscriptionEventData;
@@ -333,6 +371,26 @@ function parseAaveV4LeverageManagement(position, parseData) {
333
371
  }
334
372
  return _position;
335
373
  }
374
+ function parseAaveV4LiquidationProtection(position, parseData) {
375
+ const _position = cloneDeep(position);
376
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
377
+ const { isEnabled } = parseData.strategiesSubsData;
378
+ const triggerData = triggerService.aaveV4RatioTrigger.decode(subStruct.triggerData);
379
+ const subData = subDataService.aaveV4LiquidationProtectionSubData.decode(subStruct.subData);
380
+ const isEOA = _position.strategy.strategyId.includes('eoa');
381
+ _position.strategyData.decoded.triggerData = triggerData;
382
+ _position.strategyData.decoded.subData = subData;
383
+ _position.positionId = getPositionId(_position.chainId, _position.protocol.id, _position.owner, triggerData.spoke);
384
+ _position.strategy.strategyId = isEOA ? Strategies.IdOverrides.EoaLiquidationProtection : Strategies.IdOverrides.LiquidationProtection;
385
+ _position.specific = {
386
+ triggerRepayRatio: triggerData.ratio,
387
+ targetRepayRatio: subData.targetRatio,
388
+ repayEnabled: isEnabled,
389
+ subId1: Number(subId),
390
+ subHashRepay: subHash,
391
+ };
392
+ return _position;
393
+ }
336
394
  function parseAaveV4LeverageManagementOnPrice(position, parseData) {
337
395
  const _position = cloneDeep(position);
338
396
  const { subStruct } = parseData.subscriptionEventData;
@@ -452,7 +510,7 @@ function parseCompoundV2LeverageManagement(position, parseData) {
452
510
  const { subStruct, subId, subHash } = parseData.subscriptionEventData;
453
511
  const { isEnabled } = parseData.strategiesSubsData;
454
512
  const triggerData = triggerService.compoundV2RatioTrigger.decode(subStruct.triggerData);
455
- const subData = subDataService.compoundV2LeverageManagementSubData.decode(subStruct.subData);
513
+ const subData = subDataService.legacyCompoundV2LeverageManagementSubData.decode(subStruct.subData);
456
514
  _position.strategyData.decoded.triggerData = triggerData;
457
515
  _position.strategyData.decoded.subData = subData;
458
516
  _position.owner = triggerData.owner.toLowerCase();
@@ -486,7 +544,7 @@ function parseCompoundV3LeverageManagement(position, parseData) {
486
544
  const _position = cloneDeep(position);
487
545
  const { subStruct, subId, subHash } = parseData.subscriptionEventData;
488
546
  const { isEnabled } = parseData.strategiesSubsData;
489
- const subDataDecoder = subDataService.compoundV3LeverageManagementSubDataWithoutSubProxy;
547
+ const subDataDecoder = subDataService.compoundV3LeverageManagementSubData;
490
548
  const triggerData = triggerService.compoundV3RatioTrigger.decode(subStruct.triggerData);
491
549
  const subData = subDataDecoder.decode(subStruct.subData);
492
550
  _position.strategyData.decoded.triggerData = triggerData;
@@ -517,6 +575,27 @@ function parseCompoundV3LeverageManagement(position, parseData) {
517
575
  _position.strategy.strategyId = isEOA ? Strategies.IdOverrides.EoaLeverageManagement : Strategies.IdOverrides.LeverageManagement;
518
576
  return _position;
519
577
  }
578
+ function parseCompoundV3LiquidationProtection(position, parseData) {
579
+ const _position = cloneDeep(position);
580
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
581
+ const { isEnabled } = parseData.strategiesSubsData;
582
+ const subDataDecoder = subDataService.compoundV3LiquidationProtectionSubData;
583
+ const triggerData = triggerService.compoundV3RatioTrigger.decode(subStruct.triggerData);
584
+ const subData = subDataDecoder.decode(subStruct.subData);
585
+ _position.strategyData.decoded.triggerData = triggerData;
586
+ _position.strategyData.decoded.subData = subData;
587
+ _position.positionId = getPositionId(_position.chainId, _position.protocol.id, triggerData.owner.toLowerCase(), triggerData.market);
588
+ const isEOA = _position.strategy.strategyId.includes('eoa');
589
+ _position.specific = {
590
+ triggerRepayRatio: triggerData.ratio,
591
+ targetRepayRatio: subData.targetRatio,
592
+ repayEnabled: isEnabled,
593
+ subId1: Number(subId),
594
+ subHashRepay: subHash,
595
+ };
596
+ _position.strategy.strategyId = isEOA ? Strategies.IdOverrides.EoaLiquidationProtection : Strategies.IdOverrides.LiquidationProtection;
597
+ return _position;
598
+ }
520
599
  function parseCompoundV3LeverageManagementOnPrice(position, parseData) {
521
600
  const _position = cloneDeep(position);
522
601
  const { subStruct } = parseData.subscriptionEventData;
@@ -590,7 +669,7 @@ function parseExchangeDca(position, parseData, chainId) {
590
669
  function parseExchangeLimitOrder(position, parseData, chainId) {
591
670
  const _position = cloneDeep(position);
592
671
  const { subStruct } = parseData.subscriptionEventData;
593
- _position.strategyData.decoded.subData = subDataService.exchangeLimitOrderSubData.decode(subStruct.subData, chainId);
672
+ _position.strategyData.decoded.subData = subDataService.legacyExchangeLimitOrderSubData.decode(subStruct.subData, chainId);
594
673
  const fromTokenDecimals = getAssetInfoByAddress(_position.strategyData.decoded.subData.fromToken, chainId).decimals;
595
674
  const toTokenDecimals = getAssetInfoByAddress(_position.strategyData.decoded.subData.toToken, chainId).decimals;
596
675
  _position.strategyData.decoded.triggerData = triggerService.exchangeOffchainPriceTrigger.decode(subStruct.triggerData, fromTokenDecimals, toTokenDecimals);
@@ -602,7 +681,7 @@ function parseLiquityLeverageManagement(position, parseData) {
602
681
  const { subStruct, subId, subHash } = parseData.subscriptionEventData;
603
682
  const { isEnabled } = parseData.strategiesSubsData;
604
683
  const triggerData = triggerService.liquityRatioTrigger.decode(subStruct.triggerData);
605
- const subData = subDataService.liquityLeverageManagementSubData.decode(subStruct.subData);
684
+ const subData = subDataService.legacyLiquityLeverageManagementSubData.decode(subStruct.subData);
606
685
  _position.strategyData.decoded.triggerData = triggerData;
607
686
  _position.strategyData.decoded.subData = subData;
608
687
  _position.positionId = getPositionId(_position.chainId, _position.protocol.id, _position.owner);
@@ -668,7 +747,7 @@ function parseSparkLeverageManagement(position, parseData) {
668
747
  const { subStruct, subId, subHash } = parseData.subscriptionEventData;
669
748
  const { isEnabled } = parseData.strategiesSubsData;
670
749
  const triggerData = triggerService.sparkRatioTrigger.decode(subStruct.triggerData);
671
- const subData = subDataService.sparkLeverageManagementSubData.decode(subStruct.subData);
750
+ const subData = subDataService.legacySparkLeverageManagementSubData.decode(subStruct.subData);
672
751
  _position.strategyData.decoded.triggerData = triggerData;
673
752
  _position.strategyData.decoded.subData = subData;
674
753
  _position.positionId = getPositionId(_position.chainId, _position.protocol.id, _position.owner, triggerData.market);
@@ -696,6 +775,25 @@ function parseSparkLeverageManagement(position, parseData) {
696
775
  _position.strategy.strategyId = Strategies.IdOverrides.LeverageManagement;
697
776
  return _position;
698
777
  }
778
+ function parseSparkLiquidationProtection(position, parseData) {
779
+ const _position = cloneDeep(position);
780
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
781
+ const { isEnabled } = parseData.strategiesSubsData;
782
+ const triggerData = triggerService.sparkRatioTrigger.decode(subStruct.triggerData);
783
+ const subData = subDataService.sparkLiquidationProtectionSubData.decode(subStruct.subData);
784
+ _position.strategyData.decoded.triggerData = triggerData;
785
+ _position.strategyData.decoded.subData = subData;
786
+ _position.positionId = getPositionId(_position.chainId, _position.protocol.id, _position.owner, triggerData.market);
787
+ _position.specific = {
788
+ triggerRepayRatio: triggerData.ratio,
789
+ targetRepayRatio: subData.targetRatio,
790
+ repayEnabled: isEnabled,
791
+ subId1: Number(subId),
792
+ subHashRepay: subHash,
793
+ };
794
+ _position.strategy.strategyId = Strategies.IdOverrides.LiquidationProtection;
795
+ return _position;
796
+ }
699
797
  function parseSparkLeverageManagementOnPrice(position, parseData) {
700
798
  const _position = cloneDeep(position);
701
799
  const { subStruct } = parseData.subscriptionEventData;
@@ -850,6 +948,26 @@ function parseMorphoBlueLeverageManagement(position, parseData) {
850
948
  _position.strategy.strategyId = isEOA ? Strategies.IdOverrides.EoaLeverageManagement : Strategies.IdOverrides.LeverageManagement;
851
949
  return _position;
852
950
  }
951
+ function parseMorphoBlueLiquidationProtection(position, parseData) {
952
+ const _position = cloneDeep(position);
953
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
954
+ const { isEnabled } = parseData.strategiesSubsData;
955
+ const triggerData = triggerService.morphoBlueRatioTrigger.decode(subStruct.triggerData);
956
+ const subData = subDataService.morphoBlueLiquidationProtectionSubData.decode(subStruct.subData);
957
+ _position.strategyData.decoded.triggerData = triggerData;
958
+ _position.strategyData.decoded.subData = subData;
959
+ _position.positionId = getPositionId(_position.chainId, _position.protocol.id, triggerData.owner.toLowerCase(), triggerData.marketId);
960
+ _position.specific = {
961
+ triggerRepayRatio: triggerData.ratio,
962
+ targetRepayRatio: subData.targetRatio,
963
+ repayEnabled: isEnabled,
964
+ subId1: Number(subId),
965
+ subHashRepay: subHash,
966
+ };
967
+ const isEOA = _position.strategy.strategyId.includes('eoa');
968
+ _position.strategy.strategyId = isEOA ? Strategies.IdOverrides.EoaLiquidationProtection : Strategies.IdOverrides.LiquidationProtection;
969
+ return _position;
970
+ }
853
971
  function parseMorphoBlueLeverageManagementOnPrice(position, parseData) {
854
972
  const _position = cloneDeep(position);
855
973
  const { subStruct } = parseData.subscriptionEventData;
@@ -1002,6 +1120,25 @@ function parseFluidT1LeverageManagement(position, parseData) {
1002
1120
  _position.strategy.strategyId = Strategies.IdOverrides.LeverageManagement;
1003
1121
  return _position;
1004
1122
  }
1123
+ function parseFluidT1LiquidationProtection(position, parseData) {
1124
+ const _position = cloneDeep(position);
1125
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
1126
+ const { isEnabled } = parseData.strategiesSubsData;
1127
+ const triggerData = triggerService.fluidRatioTrigger.decode(subStruct.triggerData);
1128
+ const subData = subDataService.fluidLiquidationProtectionSubData.decode(subStruct.subData);
1129
+ _position.strategyData.decoded.triggerData = triggerData;
1130
+ _position.strategyData.decoded.subData = subData;
1131
+ _position.positionId = getPositionId(_position.chainId, _position.protocol.id, _position.owner, triggerData.nftId, subData.vault);
1132
+ _position.specific = {
1133
+ triggerRepayRatio: triggerData.ratio,
1134
+ targetRepayRatio: subData.targetRatio,
1135
+ repayEnabled: isEnabled,
1136
+ subId1: Number(subId),
1137
+ subHashRepay: subHash,
1138
+ };
1139
+ _position.strategy.strategyId = Strategies.IdOverrides.LiquidationProtection;
1140
+ return _position;
1141
+ }
1005
1142
  const parsingMethodsMapping = {
1006
1143
  [ProtocolIdentifiers.StrategiesAutomation.MakerDAO]: {
1007
1144
  [Strategies.Identifiers.SavingsLiqProtection]: parseMakerSavingsLiqProtection,
@@ -1011,6 +1148,7 @@ const parsingMethodsMapping = {
1011
1148
  [Strategies.Identifiers.TrailingStopToDebt]: parseMakerTrailingStop,
1012
1149
  [Strategies.Identifiers.Repay]: parseMakerLeverageManagement,
1013
1150
  [Strategies.Identifiers.Boost]: parseMakerLeverageManagement,
1151
+ [Strategies.Identifiers.LiquidationProtection]: parseMakerLiquidationProtection,
1014
1152
  },
1015
1153
  [ProtocolIdentifiers.StrategiesAutomation.Liquity]: {
1016
1154
  [Strategies.Identifiers.CloseOnPriceToColl]: parseLiquityCloseOnPrice,
@@ -1049,6 +1187,8 @@ const parsingMethodsMapping = {
1049
1187
  [Strategies.Identifiers.EoaBoostOnPrice]: parseAaveV3LeverageManagementOnPrice,
1050
1188
  [Strategies.Identifiers.EoaCloseOnPrice]: parseAaveV3CloseOnPrice,
1051
1189
  [Strategies.Identifiers.CollateralSwitch]: parseAaveV3CollateralSwitch,
1190
+ [Strategies.Identifiers.LiquidationProtection]: parseAaveV3LiquidationProtection,
1191
+ [Strategies.Identifiers.EoaLiquidationProtection]: parseAaveV3LiquidationProtection,
1052
1192
  },
1053
1193
  [ProtocolIdentifiers.StrategiesAutomation.AaveV4]: {
1054
1194
  [Strategies.Identifiers.Repay]: parseAaveV4LeverageManagement,
@@ -1063,6 +1203,8 @@ const parsingMethodsMapping = {
1063
1203
  [Strategies.Identifiers.EoaCloseOnPrice]: parseAaveV4CloseOnPrice,
1064
1204
  [Strategies.Identifiers.CollateralSwitch]: parseAaveV4CollateralSwitch,
1065
1205
  [Strategies.Identifiers.EoaCollateralSwitch]: parseAaveV4CollateralSwitch,
1206
+ [Strategies.Identifiers.LiquidationProtection]: parseAaveV4LiquidationProtection,
1207
+ [Strategies.Identifiers.EoaLiquidationProtection]: parseAaveV4LiquidationProtection,
1066
1208
  },
1067
1209
  [ProtocolIdentifiers.StrategiesAutomation.CompoundV2]: {
1068
1210
  [Strategies.Identifiers.Repay]: parseCompoundV2LeverageManagement,
@@ -1079,6 +1221,8 @@ const parsingMethodsMapping = {
1079
1221
  [Strategies.Identifiers.EoaBoostOnPrice]: parseCompoundV3LeverageManagementOnPrice,
1080
1222
  [Strategies.Identifiers.CloseOnPrice]: parseCompoundV3CloseOnPrice,
1081
1223
  [Strategies.Identifiers.EoaCloseOnPrice]: parseCompoundV3CloseOnPrice,
1224
+ [Strategies.Identifiers.LiquidationProtection]: parseCompoundV3LiquidationProtection,
1225
+ [Strategies.Identifiers.EoaLiquidationProtection]: parseCompoundV3LiquidationProtection,
1082
1226
  },
1083
1227
  [ProtocolIdentifiers.StrategiesAutomation.ChickenBonds]: {
1084
1228
  [Strategies.Identifiers.Rebond]: parseChickenBondsRebond,
@@ -1098,6 +1242,7 @@ const parsingMethodsMapping = {
1098
1242
  [Strategies.Identifiers.BoostOnPrice]: parseSparkLeverageManagementOnPrice,
1099
1243
  [Strategies.Identifiers.CloseOnPrice]: parseSparkCloseOnPrice,
1100
1244
  [Strategies.Identifiers.CollateralSwitch]: parseSparkCollateralSwitch,
1245
+ [Strategies.Identifiers.LiquidationProtection]: parseSparkLiquidationProtection,
1101
1246
  },
1102
1247
  [ProtocolIdentifiers.StrategiesAutomation.CrvUSD]: {
1103
1248
  [Strategies.Identifiers.Repay]: parseCrvUSDLeverageManagement,
@@ -1110,11 +1255,15 @@ const parsingMethodsMapping = {
1110
1255
  [Strategies.Identifiers.EoaRepay]: parseMorphoBlueLeverageManagement,
1111
1256
  [Strategies.Identifiers.EoaBoost]: parseMorphoBlueLeverageManagement,
1112
1257
  [Strategies.Identifiers.BoostOnPrice]: parseMorphoBlueLeverageManagementOnPrice,
1258
+ [Strategies.Identifiers.RepayOnPrice]: parseMorphoBlueLeverageManagementOnPrice,
1113
1259
  [Strategies.Identifiers.CloseOnPrice]: parseMorphoBlueCloseOnPrice,
1260
+ [Strategies.Identifiers.LiquidationProtection]: parseMorphoBlueLiquidationProtection,
1261
+ [Strategies.Identifiers.EoaLiquidationProtection]: parseMorphoBlueLiquidationProtection,
1114
1262
  },
1115
1263
  [ProtocolIdentifiers.StrategiesAutomation.FluidT1]: {
1116
1264
  [Strategies.Identifiers.Repay]: parseFluidT1LeverageManagement,
1117
1265
  [Strategies.Identifiers.Boost]: parseFluidT1LeverageManagement,
1266
+ [Strategies.Identifiers.LiquidationProtection]: parseFluidT1LiquidationProtection,
1118
1267
  },
1119
1268
  };
1120
1269
  function getParsingMethod(id, strategy) {