@defisaver/automation-sdk 3.3.16-dev-13082-morpho-eoa-dev → 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 (39) hide show
  1. package/cjs/constants/index.js +117 -42
  2. package/cjs/index.d.ts +2 -2
  3. package/cjs/index.js +5 -2
  4. package/cjs/services/strategiesService.js +157 -12
  5. package/cjs/services/strategySubService.d.ts +18 -21
  6. package/cjs/services/strategySubService.js +78 -74
  7. package/cjs/services/strategySubService.test.js +3 -149
  8. package/cjs/services/subDataService.d.ts +70 -20
  9. package/cjs/services/subDataService.js +23 -79
  10. package/cjs/services/subDataService.test.js +17 -202
  11. package/cjs/services/utils.d.ts +2 -1
  12. package/cjs/services/utils.js +14 -1
  13. package/cjs/types/enums.d.ts +36 -17
  14. package/cjs/types/enums.js +30 -11
  15. package/esm/constants/index.js +117 -42
  16. package/esm/index.d.ts +2 -2
  17. package/esm/index.js +5 -2
  18. package/esm/services/strategiesService.js +157 -12
  19. package/esm/services/strategySubService.d.ts +18 -21
  20. package/esm/services/strategySubService.js +78 -73
  21. package/esm/services/strategySubService.test.js +4 -147
  22. package/esm/services/subDataService.d.ts +70 -20
  23. package/esm/services/subDataService.js +21 -77
  24. package/esm/services/subDataService.test.js +18 -200
  25. package/esm/services/utils.d.ts +2 -1
  26. package/esm/services/utils.js +13 -1
  27. package/esm/types/enums.d.ts +36 -17
  28. package/esm/types/enums.js +30 -11
  29. package/package.json +1 -1
  30. package/src/constants/index.ts +119 -43
  31. package/src/index.ts +22 -6
  32. package/src/services/strategiesService.ts +221 -12
  33. package/src/services/strategySubService.test.ts +3 -191
  34. package/src/services/strategySubService.ts +173 -121
  35. package/src/services/subDataService.test.ts +18 -214
  36. package/src/services/subDataService.ts +42 -106
  37. package/src/services/utils.test.ts +1 -1
  38. package/src/services/utils.ts +15 -1
  39. package/src/types/enums.ts +30 -13
@@ -549,24 +549,64 @@ exports.MAINNET_BUNDLES_INFO = {
549
549
  strategyId: enums_1.Strategies.Identifiers.EoaCloseOnPrice,
550
550
  protocol: exports.PROTOCOLS.AaveV4,
551
551
  },
552
- [enums_1.Bundles.MainnetIds.MORPHO_BLUE_REPAY_ON_PRICE]: {
553
- strategyOrBundleId: enums_1.Bundles.MainnetIds.MORPHO_BLUE_REPAY_ON_PRICE,
554
- strategyId: enums_1.Strategies.Identifiers.RepayOnPrice,
555
- protocol: exports.PROTOCOLS.MorphoBlue,
552
+ [enums_1.Bundles.MainnetIds.MAKER_SW_LIQUIDATION_PROTECTION]: {
553
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.MAKER_SW_LIQUIDATION_PROTECTION,
554
+ strategyId: enums_1.Strategies.Identifiers.LiquidationProtection,
555
+ protocol: exports.PROTOCOLS.MakerDAO,
556
556
  },
557
- [enums_1.Bundles.MainnetIds.MORPHO_BLUE_EOA_BOOST_ON_PRICE]: {
558
- strategyOrBundleId: enums_1.Bundles.MainnetIds.MORPHO_BLUE_EOA_BOOST_ON_PRICE,
559
- strategyId: enums_1.Strategies.Identifiers.EoaBoostOnPrice,
557
+ [enums_1.Bundles.MainnetIds.AAVE_V3_SW_LIQUIDATION_PROTECTION]: {
558
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V3_SW_LIQUIDATION_PROTECTION,
559
+ strategyId: enums_1.Strategies.Identifiers.LiquidationProtection,
560
+ protocol: exports.PROTOCOLS.AaveV3,
561
+ },
562
+ [enums_1.Bundles.MainnetIds.AAVE_V4_SW_LIQUIDATION_PROTECTION]: {
563
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V4_SW_LIQUIDATION_PROTECTION,
564
+ strategyId: enums_1.Strategies.Identifiers.LiquidationProtection,
565
+ protocol: exports.PROTOCOLS.AaveV4,
566
+ },
567
+ [enums_1.Bundles.MainnetIds.SPARK_SW_LIQUIDATION_PROTECTION]: {
568
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.SPARK_SW_LIQUIDATION_PROTECTION,
569
+ strategyId: enums_1.Strategies.Identifiers.LiquidationProtection,
570
+ protocol: exports.PROTOCOLS.Spark,
571
+ },
572
+ [enums_1.Bundles.MainnetIds.COMP_V3_SW_LIQUIDATION_PROTECTION]: {
573
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.COMP_V3_SW_LIQUIDATION_PROTECTION,
574
+ strategyId: enums_1.Strategies.Identifiers.LiquidationProtection,
575
+ protocol: exports.PROTOCOLS.CompoundV3,
576
+ },
577
+ [enums_1.Bundles.MainnetIds.COMP_V3_EOA_LIQUIDATION_PROTECTION]: {
578
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.COMP_V3_EOA_LIQUIDATION_PROTECTION,
579
+ strategyId: enums_1.Strategies.Identifiers.EoaLiquidationProtection,
580
+ protocol: exports.PROTOCOLS.CompoundV3,
581
+ },
582
+ [enums_1.Bundles.MainnetIds.MORPHO_BLUE_SW_LIQUIDATION_PROTECTION]: {
583
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.MORPHO_BLUE_SW_LIQUIDATION_PROTECTION,
584
+ strategyId: enums_1.Strategies.Identifiers.LiquidationProtection,
560
585
  protocol: exports.PROTOCOLS.MorphoBlue,
561
586
  },
562
- [enums_1.Bundles.MainnetIds.MORPHO_BLUE_EOA_REPAY_ON_PRICE]: {
563
- strategyOrBundleId: enums_1.Bundles.MainnetIds.MORPHO_BLUE_EOA_REPAY_ON_PRICE,
564
- strategyId: enums_1.Strategies.Identifiers.EoaRepayOnPrice,
587
+ [enums_1.Bundles.MainnetIds.FLUID_T1_SW_LIQUIDATION_PROTECTION]: {
588
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.FLUID_T1_SW_LIQUIDATION_PROTECTION,
589
+ strategyId: enums_1.Strategies.Identifiers.LiquidationProtection,
590
+ protocol: exports.PROTOCOLS.FluidT1,
591
+ },
592
+ [enums_1.Bundles.MainnetIds.AAVE_V3_EOA_LIQUIDATION_PROTECTION]: {
593
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V3_EOA_LIQUIDATION_PROTECTION,
594
+ strategyId: enums_1.Strategies.Identifiers.EoaLiquidationProtection,
595
+ protocol: exports.PROTOCOLS.AaveV3,
596
+ },
597
+ [enums_1.Bundles.MainnetIds.AAVE_V4_EOA_LIQUIDATION_PROTECTION]: {
598
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V4_EOA_LIQUIDATION_PROTECTION,
599
+ strategyId: enums_1.Strategies.Identifiers.EoaLiquidationProtection,
600
+ protocol: exports.PROTOCOLS.AaveV4,
601
+ },
602
+ [enums_1.Bundles.MainnetIds.MORPHO_BLUE_EOA_LIQUIDATION_PROTECTION]: {
603
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.MORPHO_BLUE_EOA_LIQUIDATION_PROTECTION,
604
+ strategyId: enums_1.Strategies.Identifiers.EoaLiquidationProtection,
565
605
  protocol: exports.PROTOCOLS.MorphoBlue,
566
606
  },
567
- [enums_1.Bundles.MainnetIds.MORPHO_BLUE_EOA_CLOSE]: {
568
- strategyOrBundleId: enums_1.Bundles.MainnetIds.MORPHO_BLUE_EOA_CLOSE,
569
- strategyId: enums_1.Strategies.Identifiers.EoaCloseOnPrice,
607
+ [enums_1.Bundles.MainnetIds.MORPHO_BLUE_REPAY_ON_PRICE]: {
608
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.MORPHO_BLUE_REPAY_ON_PRICE,
609
+ strategyId: enums_1.Strategies.Identifiers.RepayOnPrice,
570
610
  protocol: exports.PROTOCOLS.MorphoBlue,
571
611
  },
572
612
  };
@@ -626,6 +666,16 @@ exports.OPTIMISM_BUNDLES_INFO = {
626
666
  strategyId: enums_1.Strategies.Identifiers.EoaCloseOnPrice,
627
667
  protocol: exports.PROTOCOLS.AaveV3,
628
668
  },
669
+ [enums_1.Bundles.OptimismIds.AAVE_V3_SW_LIQUIDATION_PROTECTION]: {
670
+ strategyOrBundleId: enums_1.Bundles.OptimismIds.AAVE_V3_SW_LIQUIDATION_PROTECTION,
671
+ strategyId: enums_1.Strategies.Identifiers.LiquidationProtection,
672
+ protocol: exports.PROTOCOLS.AaveV3,
673
+ },
674
+ [enums_1.Bundles.OptimismIds.AAVE_V3_EOA_LIQUIDATION_PROTECTION]: {
675
+ strategyOrBundleId: enums_1.Bundles.OptimismIds.AAVE_V3_EOA_LIQUIDATION_PROTECTION,
676
+ strategyId: enums_1.Strategies.Identifiers.EoaLiquidationProtection,
677
+ protocol: exports.PROTOCOLS.AaveV3,
678
+ },
629
679
  };
630
680
  exports.BASE_BUNDLES_INFO = {
631
681
  [enums_1.Bundles.BaseIds.AAVE_V3_REPAY]: {
@@ -768,30 +818,35 @@ exports.BASE_BUNDLES_INFO = {
768
818
  strategyId: enums_1.Strategies.Identifiers.RepayOnPrice,
769
819
  protocol: exports.PROTOCOLS.MorphoBlue,
770
820
  },
771
- [enums_1.Bundles.BaseIds.MORPHO_BLUE_EOA_REPAY]: {
772
- strategyOrBundleId: enums_1.Bundles.BaseIds.MORPHO_BLUE_EOA_REPAY,
773
- strategyId: enums_1.Strategies.Identifiers.EoaRepay,
774
- protocol: exports.PROTOCOLS.MorphoBlue,
821
+ [enums_1.Bundles.BaseIds.AAVE_V3_SW_LIQUIDATION_PROTECTION]: {
822
+ strategyOrBundleId: enums_1.Bundles.BaseIds.AAVE_V3_SW_LIQUIDATION_PROTECTION,
823
+ strategyId: enums_1.Strategies.Identifiers.LiquidationProtection,
824
+ protocol: exports.PROTOCOLS.AaveV3,
775
825
  },
776
- [enums_1.Bundles.BaseIds.MORPHO_BLUE_EOA_BOOST]: {
777
- strategyOrBundleId: enums_1.Bundles.BaseIds.MORPHO_BLUE_EOA_BOOST,
778
- strategyId: enums_1.Strategies.Identifiers.EoaBoost,
779
- protocol: exports.PROTOCOLS.MorphoBlue,
826
+ [enums_1.Bundles.BaseIds.COMP_V3_SW_LIQUIDATION_PROTECTION]: {
827
+ strategyOrBundleId: enums_1.Bundles.BaseIds.COMP_V3_SW_LIQUIDATION_PROTECTION,
828
+ strategyId: enums_1.Strategies.Identifiers.LiquidationProtection,
829
+ protocol: exports.PROTOCOLS.CompoundV3,
780
830
  },
781
- [enums_1.Bundles.BaseIds.MORPHO_BLUE_EOA_BOOST_ON_PRICE]: {
782
- strategyOrBundleId: enums_1.Bundles.BaseIds.MORPHO_BLUE_EOA_BOOST_ON_PRICE,
783
- strategyId: enums_1.Strategies.Identifiers.EoaBoostOnPrice,
784
- protocol: exports.PROTOCOLS.MorphoBlue,
831
+ [enums_1.Bundles.BaseIds.COMP_V3_EOA_LIQUIDATION_PROTECTION]: {
832
+ strategyOrBundleId: enums_1.Bundles.BaseIds.COMP_V3_EOA_LIQUIDATION_PROTECTION,
833
+ strategyId: enums_1.Strategies.Identifiers.EoaLiquidationProtection,
834
+ protocol: exports.PROTOCOLS.CompoundV3,
785
835
  },
786
- [enums_1.Bundles.BaseIds.MORPHO_BLUE_EOA_REPAY_ON_PRICE]: {
787
- strategyOrBundleId: enums_1.Bundles.BaseIds.MORPHO_BLUE_EOA_REPAY_ON_PRICE,
788
- strategyId: enums_1.Strategies.Identifiers.EoaRepayOnPrice,
836
+ [enums_1.Bundles.BaseIds.MORPHO_BLUE_SW_LIQUIDATION_PROTECTION]: {
837
+ strategyOrBundleId: enums_1.Bundles.BaseIds.MORPHO_BLUE_SW_LIQUIDATION_PROTECTION,
838
+ strategyId: enums_1.Strategies.Identifiers.LiquidationProtection,
789
839
  protocol: exports.PROTOCOLS.MorphoBlue,
790
840
  },
791
- [enums_1.Bundles.BaseIds.MORPHO_BLUE_EOA_CLOSE]: {
792
- strategyOrBundleId: enums_1.Bundles.BaseIds.MORPHO_BLUE_EOA_CLOSE,
793
- strategyId: enums_1.Strategies.Identifiers.EoaCloseOnPrice,
794
- protocol: exports.PROTOCOLS.MorphoBlue,
841
+ [enums_1.Bundles.BaseIds.FLUID_T1_SW_LIQUIDATION_PROTECTION]: {
842
+ strategyOrBundleId: enums_1.Bundles.BaseIds.FLUID_T1_SW_LIQUIDATION_PROTECTION,
843
+ strategyId: enums_1.Strategies.Identifiers.LiquidationProtection,
844
+ protocol: exports.PROTOCOLS.FluidT1,
845
+ },
846
+ [enums_1.Bundles.BaseIds.AAVE_V3_EOA_LIQUIDATION_PROTECTION]: {
847
+ strategyOrBundleId: enums_1.Bundles.BaseIds.AAVE_V3_EOA_LIQUIDATION_PROTECTION,
848
+ strategyId: enums_1.Strategies.Identifiers.EoaLiquidationProtection,
849
+ protocol: exports.PROTOCOLS.AaveV3,
795
850
  },
796
851
  };
797
852
  exports.ARBITRUM_BUNDLES_INFO = {
@@ -945,19 +1000,39 @@ exports.ARBITRUM_BUNDLES_INFO = {
945
1000
  strategyId: enums_1.Strategies.Identifiers.RepayOnPrice,
946
1001
  protocol: exports.PROTOCOLS.MorphoBlue,
947
1002
  },
948
- [enums_1.Bundles.ArbitrumIds.MORPHO_BLUE_EOA_BOOST_ON_PRICE]: {
949
- strategyOrBundleId: enums_1.Bundles.ArbitrumIds.MORPHO_BLUE_EOA_BOOST_ON_PRICE,
950
- strategyId: enums_1.Strategies.Identifiers.EoaBoostOnPrice,
951
- protocol: exports.PROTOCOLS.MorphoBlue,
1003
+ [enums_1.Bundles.ArbitrumIds.AAVE_V3_SW_LIQUIDATION_PROTECTION]: {
1004
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.AAVE_V3_SW_LIQUIDATION_PROTECTION,
1005
+ strategyId: enums_1.Strategies.Identifiers.LiquidationProtection,
1006
+ protocol: exports.PROTOCOLS.AaveV3,
952
1007
  },
953
- [enums_1.Bundles.ArbitrumIds.MORPHO_BLUE_EOA_REPAY_ON_PRICE]: {
954
- strategyOrBundleId: enums_1.Bundles.ArbitrumIds.MORPHO_BLUE_EOA_REPAY_ON_PRICE,
955
- strategyId: enums_1.Strategies.Identifiers.EoaRepayOnPrice,
1008
+ [enums_1.Bundles.ArbitrumIds.COMP_V3_SW_LIQUIDATION_PROTECTION]: {
1009
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.COMP_V3_SW_LIQUIDATION_PROTECTION,
1010
+ strategyId: enums_1.Strategies.Identifiers.LiquidationProtection,
1011
+ protocol: exports.PROTOCOLS.CompoundV3,
1012
+ },
1013
+ [enums_1.Bundles.ArbitrumIds.COMP_V3_EOA_LIQUIDATION_PROTECTION]: {
1014
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.COMP_V3_EOA_LIQUIDATION_PROTECTION,
1015
+ strategyId: enums_1.Strategies.Identifiers.EoaLiquidationProtection,
1016
+ protocol: exports.PROTOCOLS.CompoundV3,
1017
+ },
1018
+ [enums_1.Bundles.ArbitrumIds.MORPHO_BLUE_SW_LIQUIDATION_PROTECTION]: {
1019
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.MORPHO_BLUE_SW_LIQUIDATION_PROTECTION,
1020
+ strategyId: enums_1.Strategies.Identifiers.LiquidationProtection,
956
1021
  protocol: exports.PROTOCOLS.MorphoBlue,
957
1022
  },
958
- [enums_1.Bundles.ArbitrumIds.MORPHO_BLUE_EOA_CLOSE]: {
959
- strategyOrBundleId: enums_1.Bundles.ArbitrumIds.MORPHO_BLUE_EOA_CLOSE,
960
- strategyId: enums_1.Strategies.Identifiers.EoaCloseOnPrice,
1023
+ [enums_1.Bundles.ArbitrumIds.FLUID_T1_SW_LIQUIDATION_PROTECTION]: {
1024
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.FLUID_T1_SW_LIQUIDATION_PROTECTION,
1025
+ strategyId: enums_1.Strategies.Identifiers.LiquidationProtection,
1026
+ protocol: exports.PROTOCOLS.FluidT1,
1027
+ },
1028
+ [enums_1.Bundles.ArbitrumIds.AAVE_V3_EOA_LIQUIDATION_PROTECTION]: {
1029
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.AAVE_V3_EOA_LIQUIDATION_PROTECTION,
1030
+ strategyId: enums_1.Strategies.Identifiers.EoaLiquidationProtection,
1031
+ protocol: exports.PROTOCOLS.AaveV3,
1032
+ },
1033
+ [enums_1.Bundles.ArbitrumIds.MORPHO_BLUE_EOA_LIQUIDATION_PROTECTION]: {
1034
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.MORPHO_BLUE_EOA_LIQUIDATION_PROTECTION,
1035
+ strategyId: enums_1.Strategies.Identifiers.EoaLiquidationProtection,
961
1036
  protocol: exports.PROTOCOLS.MorphoBlue,
962
1037
  },
963
1038
  };
package/cjs/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/cjs/index.js CHANGED
@@ -30,7 +30,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
30
30
  return (mod && mod.__esModule) ? mod : { "default": mod };
31
31
  };
32
32
  Object.defineProperty(exports, "__esModule", { value: true });
33
- exports.strategiesService = exports.constants = exports.enums = exports.utils = exports.strategySubService = exports.subDataService = exports.triggerService = exports.BaseStrategies = exports.ArbitrumStrategies = exports.OptimismStrategies = exports.EthereumStrategies = exports.LegacyCompoundAutomation = exports.LegacyAaveAutomation = exports.LegacyMakerAutomation = void 0;
33
+ exports.utils = exports.triggerService = exports.subDataService = exports.strategySubService = exports.strategiesService = exports.enums = exports.constants = exports.OptimismStrategies = exports.LegacyMakerAutomation = exports.LegacyCompoundAutomation = exports.LegacyAaveAutomation = exports.EthereumStrategies = exports.BaseStrategies = exports.ArbitrumStrategies = void 0;
34
34
  require("./configuration");
35
35
  const LegacyMakerAutomation_1 = __importDefault(require("./automation/public/legacy/LegacyMakerAutomation"));
36
36
  exports.LegacyMakerAutomation = LegacyMakerAutomation_1.default;
@@ -60,6 +60,9 @@ const enums = __importStar(require("./types/enums"));
60
60
  exports.enums = enums;
61
61
  const utils_1 = require("./services/utils");
62
62
  const utils = {
63
- getRatioStateInfoForAaveCloseStrategy: utils_1.getRatioStateInfoForAaveCloseStrategy, compareSubHashes: utils_1.compareSubHashes, encodeSubId: utils_1.encodeSubId, getCloseStrategyType: utils_1.getCloseStrategyType,
63
+ compareSubHashes: utils_1.compareSubHashes,
64
+ encodeSubId: utils_1.encodeSubId,
65
+ getCloseStrategyType: utils_1.getCloseStrategyType,
66
+ getRatioStateInfoForAaveCloseStrategy: utils_1.getRatioStateInfoForAaveCloseStrategy,
64
67
  };
65
68
  exports.utils = utils;
@@ -95,7 +95,7 @@ function parseMakerLeverageManagement(position, parseData) {
95
95
  const { subStruct, subId, subHash } = parseData.subscriptionEventData;
96
96
  const { isEnabled } = parseData.strategiesSubsData;
97
97
  const triggerData = triggerService.makerRatioTrigger.decode(subStruct.triggerData);
98
- const subData = subDataService.makerLeverageManagementSubData.decode(subStruct.subData);
98
+ const subData = subDataService.legacyMakerLeverageManagementSubData.decode(subStruct.subData);
99
99
  _position.strategyData.decoded.triggerData = triggerData;
100
100
  _position.strategyData.decoded.subData = subData;
101
101
  _position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, subData.vaultId);
@@ -123,6 +123,24 @@ function parseMakerLeverageManagement(position, parseData) {
123
123
  _position.strategy.strategyId = enums_1.Strategies.IdOverrides.LeverageManagement;
124
124
  return _position;
125
125
  }
126
+ function parseMakerLiquidationProtection(position, parseData) {
127
+ const _position = (0, lodash_1.cloneDeep)(position);
128
+ const { subStruct, subId } = parseData.subscriptionEventData;
129
+ const { isEnabled } = parseData.strategiesSubsData;
130
+ const triggerData = triggerService.makerRatioTrigger.decode(subStruct.triggerData);
131
+ const subData = subDataService.makerLiquidationProtectionSubData.decode(subStruct.subData);
132
+ _position.strategyData.decoded.triggerData = triggerData;
133
+ _position.strategyData.decoded.subData = subData;
134
+ _position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, subData.vaultId);
135
+ _position.specific = {
136
+ triggerRepayRatio: triggerData.ratio,
137
+ targetRepayRatio: subData.targetRatio,
138
+ repayEnabled: isEnabled,
139
+ subId1: Number(subId),
140
+ };
141
+ _position.strategy.strategyId = enums_1.Strategies.IdOverrides.LiquidationProtection;
142
+ return _position;
143
+ }
126
144
  function parseLiquityCloseOnPrice(position, parseData) {
127
145
  const _position = (0, lodash_1.cloneDeep)(position);
128
146
  const { subStruct } = parseData.subscriptionEventData;
@@ -160,7 +178,7 @@ function parseAaveV2LeverageManagement(position, parseData) {
160
178
  const { subStruct, subId, subHash } = parseData.subscriptionEventData;
161
179
  const { isEnabled } = parseData.strategiesSubsData;
162
180
  const triggerData = triggerService.aaveV2RatioTrigger.decode(subStruct.triggerData);
163
- const subData = subDataService.aaveV2LeverageManagementSubData.decode(subStruct.subData);
181
+ const subData = subDataService.legacyAaveV2LeverageManagementSubData.decode(subStruct.subData);
164
182
  _position.strategyData.decoded.triggerData = triggerData;
165
183
  _position.strategyData.decoded.subData = subData;
166
184
  _position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, _position.owner, triggerData.market);
@@ -196,10 +214,10 @@ function parseAaveV3LeverageManagement(position, parseData) {
196
214
  const isEOA = _position.strategy.strategyId.includes('eoa');
197
215
  let subData;
198
216
  if (isEOA) {
199
- subData = subDataService.aaveV3LeverageManagementSubDataWithoutSubProxy.decode(subStruct.subData);
217
+ subData = subDataService.aaveV3LeverageManagementSubData.decode(subStruct.subData);
200
218
  }
201
219
  else {
202
- subData = subDataService.aaveV3LeverageManagementSubData.decode(subStruct.subData);
220
+ subData = subDataService.legacyAaveV3LeverageManagementSubData.decode(subStruct.subData);
203
221
  }
204
222
  _position.strategyData.decoded.triggerData = triggerData;
205
223
  _position.strategyData.decoded.subData = subData;
@@ -233,6 +251,26 @@ function parseAaveV3LeverageManagement(position, parseData) {
233
251
  }
234
252
  return _position;
235
253
  }
254
+ function parseAaveV3LiquidationProtection(position, parseData) {
255
+ const _position = (0, lodash_1.cloneDeep)(position);
256
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
257
+ const { isEnabled } = parseData.strategiesSubsData;
258
+ const triggerData = triggerService.aaveV3RatioTrigger.decode(subStruct.triggerData);
259
+ const subData = subDataService.aaveV3LiquidationProtectionSubData.decode(subStruct.subData);
260
+ _position.strategyData.decoded.triggerData = triggerData;
261
+ _position.strategyData.decoded.subData = subData;
262
+ _position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, _position.owner, triggerData.market);
263
+ _position.specific = {
264
+ triggerRepayRatio: triggerData.ratio,
265
+ targetRepayRatio: subData.targetRatio,
266
+ repayEnabled: isEnabled,
267
+ subId1: Number(subId),
268
+ subHashRepay: subHash,
269
+ };
270
+ const isEOA = _position.strategy.strategyId.includes('eoa');
271
+ _position.strategy.strategyId = isEOA ? enums_1.Strategies.IdOverrides.EoaLiquidationProtection : enums_1.Strategies.IdOverrides.LiquidationProtection;
272
+ return _position;
273
+ }
236
274
  function parseAaveV3LeverageManagementOnPrice(position, parseData) {
237
275
  const _position = (0, lodash_1.cloneDeep)(position);
238
276
  const { subStruct } = parseData.subscriptionEventData;
@@ -362,6 +400,26 @@ function parseAaveV4LeverageManagement(position, parseData) {
362
400
  }
363
401
  return _position;
364
402
  }
403
+ function parseAaveV4LiquidationProtection(position, parseData) {
404
+ const _position = (0, lodash_1.cloneDeep)(position);
405
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
406
+ const { isEnabled } = parseData.strategiesSubsData;
407
+ const triggerData = triggerService.aaveV4RatioTrigger.decode(subStruct.triggerData);
408
+ const subData = subDataService.aaveV4LiquidationProtectionSubData.decode(subStruct.subData);
409
+ const isEOA = _position.strategy.strategyId.includes('eoa');
410
+ _position.strategyData.decoded.triggerData = triggerData;
411
+ _position.strategyData.decoded.subData = subData;
412
+ _position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, _position.owner, triggerData.spoke);
413
+ _position.strategy.strategyId = isEOA ? enums_1.Strategies.IdOverrides.EoaLiquidationProtection : enums_1.Strategies.IdOverrides.LiquidationProtection;
414
+ _position.specific = {
415
+ triggerRepayRatio: triggerData.ratio,
416
+ targetRepayRatio: subData.targetRatio,
417
+ repayEnabled: isEnabled,
418
+ subId1: Number(subId),
419
+ subHashRepay: subHash,
420
+ };
421
+ return _position;
422
+ }
365
423
  function parseAaveV4LeverageManagementOnPrice(position, parseData) {
366
424
  const _position = (0, lodash_1.cloneDeep)(position);
367
425
  const { subStruct } = parseData.subscriptionEventData;
@@ -481,7 +539,7 @@ function parseCompoundV2LeverageManagement(position, parseData) {
481
539
  const { subStruct, subId, subHash } = parseData.subscriptionEventData;
482
540
  const { isEnabled } = parseData.strategiesSubsData;
483
541
  const triggerData = triggerService.compoundV2RatioTrigger.decode(subStruct.triggerData);
484
- const subData = subDataService.compoundV2LeverageManagementSubData.decode(subStruct.subData);
542
+ const subData = subDataService.legacyCompoundV2LeverageManagementSubData.decode(subStruct.subData);
485
543
  _position.strategyData.decoded.triggerData = triggerData;
486
544
  _position.strategyData.decoded.subData = subData;
487
545
  _position.owner = triggerData.owner.toLowerCase();
@@ -515,7 +573,7 @@ function parseCompoundV3LeverageManagement(position, parseData) {
515
573
  const _position = (0, lodash_1.cloneDeep)(position);
516
574
  const { subStruct, subId, subHash } = parseData.subscriptionEventData;
517
575
  const { isEnabled } = parseData.strategiesSubsData;
518
- const subDataDecoder = subDataService.compoundV3LeverageManagementSubDataWithoutSubProxy;
576
+ const subDataDecoder = subDataService.compoundV3LeverageManagementSubData;
519
577
  const triggerData = triggerService.compoundV3RatioTrigger.decode(subStruct.triggerData);
520
578
  const subData = subDataDecoder.decode(subStruct.subData);
521
579
  _position.strategyData.decoded.triggerData = triggerData;
@@ -546,6 +604,27 @@ function parseCompoundV3LeverageManagement(position, parseData) {
546
604
  _position.strategy.strategyId = isEOA ? enums_1.Strategies.IdOverrides.EoaLeverageManagement : enums_1.Strategies.IdOverrides.LeverageManagement;
547
605
  return _position;
548
606
  }
607
+ function parseCompoundV3LiquidationProtection(position, parseData) {
608
+ const _position = (0, lodash_1.cloneDeep)(position);
609
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
610
+ const { isEnabled } = parseData.strategiesSubsData;
611
+ const subDataDecoder = subDataService.compoundV3LiquidationProtectionSubData;
612
+ const triggerData = triggerService.compoundV3RatioTrigger.decode(subStruct.triggerData);
613
+ const subData = subDataDecoder.decode(subStruct.subData);
614
+ _position.strategyData.decoded.triggerData = triggerData;
615
+ _position.strategyData.decoded.subData = subData;
616
+ _position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, triggerData.owner.toLowerCase(), triggerData.market);
617
+ const isEOA = _position.strategy.strategyId.includes('eoa');
618
+ _position.specific = {
619
+ triggerRepayRatio: triggerData.ratio,
620
+ targetRepayRatio: subData.targetRatio,
621
+ repayEnabled: isEnabled,
622
+ subId1: Number(subId),
623
+ subHashRepay: subHash,
624
+ };
625
+ _position.strategy.strategyId = isEOA ? enums_1.Strategies.IdOverrides.EoaLiquidationProtection : enums_1.Strategies.IdOverrides.LiquidationProtection;
626
+ return _position;
627
+ }
549
628
  function parseCompoundV3LeverageManagementOnPrice(position, parseData) {
550
629
  const _position = (0, lodash_1.cloneDeep)(position);
551
630
  const { subStruct } = parseData.subscriptionEventData;
@@ -619,7 +698,7 @@ function parseExchangeDca(position, parseData, chainId) {
619
698
  function parseExchangeLimitOrder(position, parseData, chainId) {
620
699
  const _position = (0, lodash_1.cloneDeep)(position);
621
700
  const { subStruct } = parseData.subscriptionEventData;
622
- _position.strategyData.decoded.subData = subDataService.exchangeLimitOrderSubData.decode(subStruct.subData, chainId);
701
+ _position.strategyData.decoded.subData = subDataService.legacyExchangeLimitOrderSubData.decode(subStruct.subData, chainId);
623
702
  const fromTokenDecimals = (0, tokens_1.getAssetInfoByAddress)(_position.strategyData.decoded.subData.fromToken, chainId).decimals;
624
703
  const toTokenDecimals = (0, tokens_1.getAssetInfoByAddress)(_position.strategyData.decoded.subData.toToken, chainId).decimals;
625
704
  _position.strategyData.decoded.triggerData = triggerService.exchangeOffchainPriceTrigger.decode(subStruct.triggerData, fromTokenDecimals, toTokenDecimals);
@@ -631,7 +710,7 @@ function parseLiquityLeverageManagement(position, parseData) {
631
710
  const { subStruct, subId, subHash } = parseData.subscriptionEventData;
632
711
  const { isEnabled } = parseData.strategiesSubsData;
633
712
  const triggerData = triggerService.liquityRatioTrigger.decode(subStruct.triggerData);
634
- const subData = subDataService.liquityLeverageManagementSubData.decode(subStruct.subData);
713
+ const subData = subDataService.legacyLiquityLeverageManagementSubData.decode(subStruct.subData);
635
714
  _position.strategyData.decoded.triggerData = triggerData;
636
715
  _position.strategyData.decoded.subData = subData;
637
716
  _position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, _position.owner);
@@ -697,7 +776,7 @@ function parseSparkLeverageManagement(position, parseData) {
697
776
  const { subStruct, subId, subHash } = parseData.subscriptionEventData;
698
777
  const { isEnabled } = parseData.strategiesSubsData;
699
778
  const triggerData = triggerService.sparkRatioTrigger.decode(subStruct.triggerData);
700
- const subData = subDataService.sparkLeverageManagementSubData.decode(subStruct.subData);
779
+ const subData = subDataService.legacySparkLeverageManagementSubData.decode(subStruct.subData);
701
780
  _position.strategyData.decoded.triggerData = triggerData;
702
781
  _position.strategyData.decoded.subData = subData;
703
782
  _position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, _position.owner, triggerData.market);
@@ -725,6 +804,25 @@ function parseSparkLeverageManagement(position, parseData) {
725
804
  _position.strategy.strategyId = enums_1.Strategies.IdOverrides.LeverageManagement;
726
805
  return _position;
727
806
  }
807
+ function parseSparkLiquidationProtection(position, parseData) {
808
+ const _position = (0, lodash_1.cloneDeep)(position);
809
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
810
+ const { isEnabled } = parseData.strategiesSubsData;
811
+ const triggerData = triggerService.sparkRatioTrigger.decode(subStruct.triggerData);
812
+ const subData = subDataService.sparkLiquidationProtectionSubData.decode(subStruct.subData);
813
+ _position.strategyData.decoded.triggerData = triggerData;
814
+ _position.strategyData.decoded.subData = subData;
815
+ _position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, _position.owner, triggerData.market);
816
+ _position.specific = {
817
+ triggerRepayRatio: triggerData.ratio,
818
+ targetRepayRatio: subData.targetRatio,
819
+ repayEnabled: isEnabled,
820
+ subId1: Number(subId),
821
+ subHashRepay: subHash,
822
+ };
823
+ _position.strategy.strategyId = enums_1.Strategies.IdOverrides.LiquidationProtection;
824
+ return _position;
825
+ }
728
826
  function parseSparkLeverageManagementOnPrice(position, parseData) {
729
827
  const _position = (0, lodash_1.cloneDeep)(position);
730
828
  const { subStruct } = parseData.subscriptionEventData;
@@ -879,6 +977,26 @@ function parseMorphoBlueLeverageManagement(position, parseData) {
879
977
  _position.strategy.strategyId = isEOA ? enums_1.Strategies.IdOverrides.EoaLeverageManagement : enums_1.Strategies.IdOverrides.LeverageManagement;
880
978
  return _position;
881
979
  }
980
+ function parseMorphoBlueLiquidationProtection(position, parseData) {
981
+ const _position = (0, lodash_1.cloneDeep)(position);
982
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
983
+ const { isEnabled } = parseData.strategiesSubsData;
984
+ const triggerData = triggerService.morphoBlueRatioTrigger.decode(subStruct.triggerData);
985
+ const subData = subDataService.morphoBlueLiquidationProtectionSubData.decode(subStruct.subData);
986
+ _position.strategyData.decoded.triggerData = triggerData;
987
+ _position.strategyData.decoded.subData = subData;
988
+ _position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, triggerData.owner.toLowerCase(), triggerData.marketId);
989
+ _position.specific = {
990
+ triggerRepayRatio: triggerData.ratio,
991
+ targetRepayRatio: subData.targetRatio,
992
+ repayEnabled: isEnabled,
993
+ subId1: Number(subId),
994
+ subHashRepay: subHash,
995
+ };
996
+ const isEOA = _position.strategy.strategyId.includes('eoa');
997
+ _position.strategy.strategyId = isEOA ? enums_1.Strategies.IdOverrides.EoaLiquidationProtection : enums_1.Strategies.IdOverrides.LiquidationProtection;
998
+ return _position;
999
+ }
882
1000
  function parseMorphoBlueLeverageManagementOnPrice(position, parseData) {
883
1001
  const _position = (0, lodash_1.cloneDeep)(position);
884
1002
  const { subStruct } = parseData.subscriptionEventData;
@@ -1031,6 +1149,25 @@ function parseFluidT1LeverageManagement(position, parseData) {
1031
1149
  _position.strategy.strategyId = enums_1.Strategies.IdOverrides.LeverageManagement;
1032
1150
  return _position;
1033
1151
  }
1152
+ function parseFluidT1LiquidationProtection(position, parseData) {
1153
+ const _position = (0, lodash_1.cloneDeep)(position);
1154
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
1155
+ const { isEnabled } = parseData.strategiesSubsData;
1156
+ const triggerData = triggerService.fluidRatioTrigger.decode(subStruct.triggerData);
1157
+ const subData = subDataService.fluidLiquidationProtectionSubData.decode(subStruct.subData);
1158
+ _position.strategyData.decoded.triggerData = triggerData;
1159
+ _position.strategyData.decoded.subData = subData;
1160
+ _position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, _position.owner, triggerData.nftId, subData.vault);
1161
+ _position.specific = {
1162
+ triggerRepayRatio: triggerData.ratio,
1163
+ targetRepayRatio: subData.targetRatio,
1164
+ repayEnabled: isEnabled,
1165
+ subId1: Number(subId),
1166
+ subHashRepay: subHash,
1167
+ };
1168
+ _position.strategy.strategyId = enums_1.Strategies.IdOverrides.LiquidationProtection;
1169
+ return _position;
1170
+ }
1034
1171
  const parsingMethodsMapping = {
1035
1172
  [enums_1.ProtocolIdentifiers.StrategiesAutomation.MakerDAO]: {
1036
1173
  [enums_1.Strategies.Identifiers.SavingsLiqProtection]: parseMakerSavingsLiqProtection,
@@ -1040,6 +1177,7 @@ const parsingMethodsMapping = {
1040
1177
  [enums_1.Strategies.Identifiers.TrailingStopToDebt]: parseMakerTrailingStop,
1041
1178
  [enums_1.Strategies.Identifiers.Repay]: parseMakerLeverageManagement,
1042
1179
  [enums_1.Strategies.Identifiers.Boost]: parseMakerLeverageManagement,
1180
+ [enums_1.Strategies.Identifiers.LiquidationProtection]: parseMakerLiquidationProtection,
1043
1181
  },
1044
1182
  [enums_1.ProtocolIdentifiers.StrategiesAutomation.Liquity]: {
1045
1183
  [enums_1.Strategies.Identifiers.CloseOnPriceToColl]: parseLiquityCloseOnPrice,
@@ -1078,6 +1216,8 @@ const parsingMethodsMapping = {
1078
1216
  [enums_1.Strategies.Identifiers.EoaBoostOnPrice]: parseAaveV3LeverageManagementOnPrice,
1079
1217
  [enums_1.Strategies.Identifiers.EoaCloseOnPrice]: parseAaveV3CloseOnPrice,
1080
1218
  [enums_1.Strategies.Identifiers.CollateralSwitch]: parseAaveV3CollateralSwitch,
1219
+ [enums_1.Strategies.Identifiers.LiquidationProtection]: parseAaveV3LiquidationProtection,
1220
+ [enums_1.Strategies.Identifiers.EoaLiquidationProtection]: parseAaveV3LiquidationProtection,
1081
1221
  },
1082
1222
  [enums_1.ProtocolIdentifiers.StrategiesAutomation.AaveV4]: {
1083
1223
  [enums_1.Strategies.Identifiers.Repay]: parseAaveV4LeverageManagement,
@@ -1092,6 +1232,8 @@ const parsingMethodsMapping = {
1092
1232
  [enums_1.Strategies.Identifiers.EoaCloseOnPrice]: parseAaveV4CloseOnPrice,
1093
1233
  [enums_1.Strategies.Identifiers.CollateralSwitch]: parseAaveV4CollateralSwitch,
1094
1234
  [enums_1.Strategies.Identifiers.EoaCollateralSwitch]: parseAaveV4CollateralSwitch,
1235
+ [enums_1.Strategies.Identifiers.LiquidationProtection]: parseAaveV4LiquidationProtection,
1236
+ [enums_1.Strategies.Identifiers.EoaLiquidationProtection]: parseAaveV4LiquidationProtection,
1095
1237
  },
1096
1238
  [enums_1.ProtocolIdentifiers.StrategiesAutomation.CompoundV2]: {
1097
1239
  [enums_1.Strategies.Identifiers.Repay]: parseCompoundV2LeverageManagement,
@@ -1108,6 +1250,8 @@ const parsingMethodsMapping = {
1108
1250
  [enums_1.Strategies.Identifiers.EoaBoostOnPrice]: parseCompoundV3LeverageManagementOnPrice,
1109
1251
  [enums_1.Strategies.Identifiers.CloseOnPrice]: parseCompoundV3CloseOnPrice,
1110
1252
  [enums_1.Strategies.Identifiers.EoaCloseOnPrice]: parseCompoundV3CloseOnPrice,
1253
+ [enums_1.Strategies.Identifiers.LiquidationProtection]: parseCompoundV3LiquidationProtection,
1254
+ [enums_1.Strategies.Identifiers.EoaLiquidationProtection]: parseCompoundV3LiquidationProtection,
1111
1255
  },
1112
1256
  [enums_1.ProtocolIdentifiers.StrategiesAutomation.ChickenBonds]: {
1113
1257
  [enums_1.Strategies.Identifiers.Rebond]: parseChickenBondsRebond,
@@ -1127,6 +1271,7 @@ const parsingMethodsMapping = {
1127
1271
  [enums_1.Strategies.Identifiers.BoostOnPrice]: parseSparkLeverageManagementOnPrice,
1128
1272
  [enums_1.Strategies.Identifiers.CloseOnPrice]: parseSparkCloseOnPrice,
1129
1273
  [enums_1.Strategies.Identifiers.CollateralSwitch]: parseSparkCollateralSwitch,
1274
+ [enums_1.Strategies.Identifiers.LiquidationProtection]: parseSparkLiquidationProtection,
1130
1275
  },
1131
1276
  [enums_1.ProtocolIdentifiers.StrategiesAutomation.CrvUSD]: {
1132
1277
  [enums_1.Strategies.Identifiers.Repay]: parseCrvUSDLeverageManagement,
@@ -1140,14 +1285,14 @@ const parsingMethodsMapping = {
1140
1285
  [enums_1.Strategies.Identifiers.EoaBoost]: parseMorphoBlueLeverageManagement,
1141
1286
  [enums_1.Strategies.Identifiers.BoostOnPrice]: parseMorphoBlueLeverageManagementOnPrice,
1142
1287
  [enums_1.Strategies.Identifiers.RepayOnPrice]: parseMorphoBlueLeverageManagementOnPrice,
1143
- [enums_1.Strategies.Identifiers.EoaBoostOnPrice]: parseMorphoBlueLeverageManagementOnPrice,
1144
- [enums_1.Strategies.Identifiers.EoaRepayOnPrice]: parseMorphoBlueLeverageManagementOnPrice,
1145
1288
  [enums_1.Strategies.Identifiers.CloseOnPrice]: parseMorphoBlueCloseOnPrice,
1146
- [enums_1.Strategies.Identifiers.EoaCloseOnPrice]: parseMorphoBlueCloseOnPrice,
1289
+ [enums_1.Strategies.Identifiers.LiquidationProtection]: parseMorphoBlueLiquidationProtection,
1290
+ [enums_1.Strategies.Identifiers.EoaLiquidationProtection]: parseMorphoBlueLiquidationProtection,
1147
1291
  },
1148
1292
  [enums_1.ProtocolIdentifiers.StrategiesAutomation.FluidT1]: {
1149
1293
  [enums_1.Strategies.Identifiers.Repay]: parseFluidT1LeverageManagement,
1150
1294
  [enums_1.Strategies.Identifiers.Boost]: parseFluidT1LeverageManagement,
1295
+ [enums_1.Strategies.Identifiers.LiquidationProtection]: parseFluidT1LiquidationProtection,
1151
1296
  },
1152
1297
  };
1153
1298
  function getParsingMethod(id, strategy) {