@defisaver/automation-sdk 3.3.16 → 3.3.17-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 (35) hide show
  1. package/cjs/constants/index.js +190 -0
  2. package/cjs/index.d.ts +2 -2
  3. package/cjs/index.js +5 -2
  4. package/cjs/services/strategiesService.js +169 -12
  5. package/cjs/services/strategySubService.d.ts +22 -17
  6. package/cjs/services/strategySubService.js +115 -38
  7. package/cjs/services/strategySubService.test.js +111 -41
  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/types/enums.d.ts +48 -6
  12. package/cjs/types/enums.js +42 -0
  13. package/esm/constants/index.js +190 -0
  14. package/esm/index.d.ts +2 -2
  15. package/esm/index.js +5 -2
  16. package/esm/services/strategiesService.js +169 -12
  17. package/esm/services/strategySubService.d.ts +22 -17
  18. package/esm/services/strategySubService.js +113 -37
  19. package/esm/services/strategySubService.test.js +112 -39
  20. package/esm/services/subDataService.d.ts +70 -20
  21. package/esm/services/subDataService.js +21 -77
  22. package/esm/services/subDataService.test.js +18 -200
  23. package/esm/types/enums.d.ts +48 -6
  24. package/esm/types/enums.js +42 -0
  25. package/package.json +1 -1
  26. package/src/constants/index.ts +192 -1
  27. package/src/index.ts +22 -6
  28. package/src/services/strategiesService.ts +234 -12
  29. package/src/services/strategySubService.test.ts +147 -47
  30. package/src/services/strategySubService.ts +246 -47
  31. package/src/services/subDataService.test.ts +18 -214
  32. package/src/services/subDataService.ts +42 -106
  33. package/src/services/utils.test.ts +1 -1
  34. package/src/services/utils.ts +3 -1
  35. package/src/types/enums.ts +42 -2
@@ -106,7 +106,7 @@ function parseMakerLeverageManagement(position: Position.Automated, parseData: P
106
106
  const { isEnabled } = parseData.strategiesSubsData;
107
107
 
108
108
  const triggerData = triggerService.makerRatioTrigger.decode(subStruct.triggerData);
109
- const subData = subDataService.makerLeverageManagementSubData.decode(subStruct.subData);
109
+ const subData = subDataService.legacyMakerLeverageManagementSubData.decode(subStruct.subData);
110
110
 
111
111
  _position.strategyData.decoded.triggerData = triggerData;
112
112
  _position.strategyData.decoded.subData = subData;
@@ -140,6 +140,33 @@ function parseMakerLeverageManagement(position: Position.Automated, parseData: P
140
140
  return _position;
141
141
  }
142
142
 
143
+ function parseMakerLiquidationProtection(position: Position.Automated, parseData: ParseData): Position.Automated {
144
+ const _position = cloneDeep(position);
145
+
146
+ const { subStruct, subId } = parseData.subscriptionEventData;
147
+ const { isEnabled } = parseData.strategiesSubsData;
148
+
149
+ const triggerData = triggerService.makerRatioTrigger.decode(subStruct.triggerData);
150
+ const subData = subDataService.makerLiquidationProtectionSubData.decode(subStruct.subData);
151
+
152
+ _position.strategyData.decoded.triggerData = triggerData;
153
+ _position.strategyData.decoded.subData = subData;
154
+
155
+ _position.positionId = getPositionId(_position.chainId, _position.protocol.id, subData.vaultId);
156
+
157
+
158
+ _position.specific = {
159
+ triggerRepayRatio: triggerData.ratio,
160
+ targetRepayRatio: subData.targetRatio,
161
+ repayEnabled: isEnabled,
162
+ subId1: Number(subId),
163
+ };
164
+
165
+ _position.strategy.strategyId = Strategies.IdOverrides.LiquidationProtection;
166
+
167
+ return _position;
168
+ }
169
+
143
170
  function parseLiquityCloseOnPrice(position: Position.Automated, parseData: ParseData): Position.Automated {
144
171
  const _position = cloneDeep(position);
145
172
 
@@ -196,7 +223,7 @@ function parseAaveV2LeverageManagement(position: Position.Automated, parseData:
196
223
  const { isEnabled } = parseData.strategiesSubsData;
197
224
 
198
225
  const triggerData = triggerService.aaveV2RatioTrigger.decode(subStruct.triggerData);
199
- const subData = subDataService.aaveV2LeverageManagementSubData.decode(subStruct.subData);
226
+ const subData = subDataService.legacyAaveV2LeverageManagementSubData.decode(subStruct.subData);
200
227
 
201
228
  _position.strategyData.decoded.triggerData = triggerData;
202
229
  _position.strategyData.decoded.subData = subData;
@@ -240,9 +267,9 @@ function parseAaveV3LeverageManagement(position: Position.Automated, parseData:
240
267
  const isEOA = _position.strategy.strategyId.includes('eoa');
241
268
  let subData;
242
269
  if (isEOA) {
243
- subData = subDataService.aaveV3LeverageManagementSubDataWithoutSubProxy.decode(subStruct.subData);
244
- } else {
245
270
  subData = subDataService.aaveV3LeverageManagementSubData.decode(subStruct.subData);
271
+ } else {
272
+ subData = subDataService.legacyAaveV3LeverageManagementSubData.decode(subStruct.subData);
246
273
  }
247
274
 
248
275
  _position.strategyData.decoded.triggerData = triggerData;
@@ -280,6 +307,35 @@ function parseAaveV3LeverageManagement(position: Position.Automated, parseData:
280
307
  return _position;
281
308
  }
282
309
 
310
+ function parseAaveV3LiquidationProtection(position: Position.Automated, parseData: ParseData): Position.Automated {
311
+ const _position = cloneDeep(position);
312
+
313
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
314
+ const { isEnabled } = parseData.strategiesSubsData;
315
+
316
+ const triggerData = triggerService.aaveV3RatioTrigger.decode(subStruct.triggerData);
317
+
318
+ const subData = subDataService.aaveV3LiquidationProtectionSubData.decode(subStruct.subData);
319
+
320
+ _position.strategyData.decoded.triggerData = triggerData;
321
+ _position.strategyData.decoded.subData = subData;
322
+
323
+ _position.positionId = getPositionId(_position.chainId, _position.protocol.id, _position.owner, triggerData.market);
324
+
325
+ _position.specific = {
326
+ triggerRepayRatio: triggerData.ratio,
327
+ targetRepayRatio: subData.targetRatio,
328
+ repayEnabled: isEnabled,
329
+ subId1: Number(subId),
330
+ subHashRepay: subHash,
331
+ };
332
+
333
+ const isEOA = _position.strategy.strategyId.includes('eoa');
334
+ _position.strategy.strategyId = isEOA ? Strategies.IdOverrides.EoaLiquidationProtection : Strategies.IdOverrides.LiquidationProtection;
335
+
336
+ return _position;
337
+ }
338
+
283
339
  function parseAaveV3LeverageManagementOnPrice(position: Position.Automated, parseData: ParseData): Position.Automated {
284
340
  const _position = cloneDeep(position);
285
341
  const { subStruct } = parseData.subscriptionEventData;
@@ -437,6 +493,31 @@ function parseAaveV4LeverageManagement(position: Position.Automated, parseData:
437
493
  return _position;
438
494
  }
439
495
 
496
+ function parseAaveV4LiquidationProtection(position: Position.Automated, parseData: ParseData): Position.Automated {
497
+ const _position = cloneDeep(position);
498
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
499
+ const { isEnabled } = parseData.strategiesSubsData;
500
+ const triggerData = triggerService.aaveV4RatioTrigger.decode(subStruct.triggerData);
501
+ const subData = subDataService.aaveV4LiquidationProtectionSubData.decode(subStruct.subData);
502
+ const isEOA = _position.strategy.strategyId.includes('eoa');
503
+
504
+ _position.strategyData.decoded.triggerData = triggerData;
505
+ _position.strategyData.decoded.subData = subData;
506
+ _position.positionId = getPositionId(_position.chainId, _position.protocol.id, _position.owner, triggerData.spoke);
507
+ _position.strategy.strategyId = isEOA ? Strategies.IdOverrides.EoaLiquidationProtection : Strategies.IdOverrides.LiquidationProtection;
508
+
509
+ _position.specific = {
510
+ triggerRepayRatio: triggerData.ratio,
511
+ targetRepayRatio: subData.targetRatio,
512
+ repayEnabled: isEnabled,
513
+ subId1: Number(subId),
514
+ subHashRepay: subHash,
515
+ };
516
+
517
+ return _position;
518
+ }
519
+
520
+
440
521
  function parseAaveV4LeverageManagementOnPrice(position: Position.Automated, parseData: ParseData): Position.Automated {
441
522
  const _position = cloneDeep(position);
442
523
  const { subStruct } = parseData.subscriptionEventData;
@@ -589,7 +670,7 @@ function parseCompoundV2LeverageManagement(position: Position.Automated, parseDa
589
670
  const { isEnabled } = parseData.strategiesSubsData;
590
671
 
591
672
  const triggerData = triggerService.compoundV2RatioTrigger.decode(subStruct.triggerData);
592
- const subData = subDataService.compoundV2LeverageManagementSubData.decode(subStruct.subData);
673
+ const subData = subDataService.legacyCompoundV2LeverageManagementSubData.decode(subStruct.subData);
593
674
 
594
675
  _position.strategyData.decoded.triggerData = triggerData;
595
676
  _position.strategyData.decoded.subData = subData;
@@ -631,7 +712,7 @@ function parseCompoundV3LeverageManagement(position: Position.Automated, parseDa
631
712
  const { subStruct, subId, subHash } = parseData.subscriptionEventData;
632
713
  const { isEnabled } = parseData.strategiesSubsData;
633
714
 
634
- const subDataDecoder = subDataService.compoundV3LeverageManagementSubDataWithoutSubProxy;
715
+ const subDataDecoder = subDataService.compoundV3LeverageManagementSubData;
635
716
 
636
717
  const triggerData = triggerService.compoundV3RatioTrigger.decode(subStruct.triggerData);
637
718
  const subData = subDataDecoder.decode(subStruct.subData);
@@ -670,6 +751,39 @@ function parseCompoundV3LeverageManagement(position: Position.Automated, parseDa
670
751
  return _position;
671
752
  }
672
753
 
754
+
755
+ function parseCompoundV3LiquidationProtection(position: Position.Automated, parseData: ParseData): Position.Automated {
756
+ const _position = cloneDeep(position);
757
+
758
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
759
+ const { isEnabled } = parseData.strategiesSubsData;
760
+
761
+ const subDataDecoder = subDataService.compoundV3LiquidationProtectionSubData;
762
+
763
+ const triggerData = triggerService.compoundV3RatioTrigger.decode(subStruct.triggerData);
764
+ const subData = subDataDecoder.decode(subStruct.subData);
765
+
766
+ _position.strategyData.decoded.triggerData = triggerData;
767
+ _position.strategyData.decoded.subData = subData;
768
+
769
+ _position.positionId = getPositionId(_position.chainId, _position.protocol.id, triggerData.owner.toLowerCase(), triggerData.market);
770
+
771
+ const isEOA = _position.strategy.strategyId.includes('eoa');
772
+
773
+ _position.specific = {
774
+ triggerRepayRatio: triggerData.ratio,
775
+ targetRepayRatio: subData.targetRatio,
776
+ repayEnabled: isEnabled,
777
+ subId1: Number(subId),
778
+ subHashRepay: subHash,
779
+ };
780
+
781
+ _position.strategy.strategyId = isEOA ? Strategies.IdOverrides.EoaLiquidationProtection : Strategies.IdOverrides.LiquidationProtection;
782
+
783
+ return _position;
784
+ }
785
+
786
+
673
787
  function parseCompoundV3LeverageManagementOnPrice(position: Position.Automated, parseData: ParseData): Position.Automated {
674
788
  const _position = cloneDeep(position);
675
789
 
@@ -774,7 +888,7 @@ function parseExchangeLimitOrder(position: Position.Automated, parseData: ParseD
774
888
 
775
889
  const { subStruct } = parseData.subscriptionEventData;
776
890
 
777
- _position.strategyData.decoded.subData = subDataService.exchangeLimitOrderSubData.decode(subStruct.subData, chainId);
891
+ _position.strategyData.decoded.subData = subDataService.legacyExchangeLimitOrderSubData.decode(subStruct.subData, chainId);
778
892
  const fromTokenDecimals = getAssetInfoByAddress(_position.strategyData.decoded.subData.fromToken, chainId).decimals;
779
893
  const toTokenDecimals = getAssetInfoByAddress(_position.strategyData.decoded.subData.toToken, chainId).decimals;
780
894
  _position.strategyData.decoded.triggerData = triggerService.exchangeOffchainPriceTrigger.decode(subStruct.triggerData, fromTokenDecimals, toTokenDecimals);
@@ -791,7 +905,7 @@ function parseLiquityLeverageManagement(position: Position.Automated, parseData:
791
905
  const { isEnabled } = parseData.strategiesSubsData;
792
906
 
793
907
  const triggerData = triggerService.liquityRatioTrigger.decode(subStruct.triggerData);
794
- const subData = subDataService.liquityLeverageManagementSubData.decode(subStruct.subData);
908
+ const subData = subDataService.legacyLiquityLeverageManagementSubData.decode(subStruct.subData);
795
909
 
796
910
  _position.strategyData.decoded.triggerData = triggerData;
797
911
  _position.strategyData.decoded.subData = subData;
@@ -875,7 +989,7 @@ function parseSparkLeverageManagement(position: Position.Automated, parseData: P
875
989
  const { isEnabled } = parseData.strategiesSubsData;
876
990
 
877
991
  const triggerData = triggerService.sparkRatioTrigger.decode(subStruct.triggerData);
878
- const subData = subDataService.sparkLeverageManagementSubData.decode(subStruct.subData);
992
+ const subData = subDataService.legacySparkLeverageManagementSubData.decode(subStruct.subData);
879
993
 
880
994
  _position.strategyData.decoded.triggerData = triggerData;
881
995
  _position.strategyData.decoded.subData = subData;
@@ -909,6 +1023,34 @@ function parseSparkLeverageManagement(position: Position.Automated, parseData: P
909
1023
  return _position;
910
1024
  }
911
1025
 
1026
+ function parseSparkLiquidationProtection(position: Position.Automated, parseData: ParseData): Position.Automated {
1027
+ const _position = cloneDeep(position);
1028
+
1029
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
1030
+ const { isEnabled } = parseData.strategiesSubsData;
1031
+
1032
+ const triggerData = triggerService.sparkRatioTrigger.decode(subStruct.triggerData);
1033
+ const subData = subDataService.sparkLiquidationProtectionSubData.decode(subStruct.subData);
1034
+
1035
+ _position.strategyData.decoded.triggerData = triggerData;
1036
+ _position.strategyData.decoded.subData = subData;
1037
+
1038
+ _position.positionId = getPositionId(_position.chainId, _position.protocol.id, _position.owner, triggerData.market);
1039
+
1040
+ _position.specific = {
1041
+ triggerRepayRatio: triggerData.ratio,
1042
+ targetRepayRatio: subData.targetRatio,
1043
+ repayEnabled: isEnabled,
1044
+ subId1: Number(subId),
1045
+ subHashRepay: subHash,
1046
+ };
1047
+
1048
+ _position.strategy.strategyId = Strategies.IdOverrides.LiquidationProtection;
1049
+
1050
+ return _position;
1051
+ }
1052
+
1053
+
912
1054
  function parseSparkLeverageManagementOnPrice(position: Position.Automated, parseData: ParseData): Position.Automated {
913
1055
  const _position = cloneDeep(position);
914
1056
  const { subStruct } = parseData.subscriptionEventData;
@@ -1072,6 +1214,7 @@ function parseMorphoBlueLeverageManagement(position: Position.Automated, parseDa
1072
1214
 
1073
1215
  const { subStruct, subId, subHash } = parseData.subscriptionEventData;
1074
1216
  const { isEnabled } = parseData.strategiesSubsData;
1217
+ const isEOA = _position.strategy.strategyId.includes('eoa');
1075
1218
  const triggerData = triggerService.morphoBlueRatioTrigger.decode(subStruct.triggerData);
1076
1219
  const subData = subDataService.morphoBlueLeverageManagementSubData.decode(subStruct.subData);
1077
1220
 
@@ -1089,7 +1232,7 @@ function parseMorphoBlueLeverageManagement(position: Position.Automated, parseDa
1089
1232
  repayEnabled: isEnabled,
1090
1233
  subId1: Number(subId),
1091
1234
  subHashRepay: subHash,
1092
- mergeWithId: Strategies.Identifiers.Boost,
1235
+ mergeWithId: isEOA ? Strategies.Identifiers.EoaBoost : Strategies.Identifiers.Boost,
1093
1236
  };
1094
1237
  } else {
1095
1238
  _position.specific = {
@@ -1098,13 +1241,39 @@ function parseMorphoBlueLeverageManagement(position: Position.Automated, parseDa
1098
1241
  boostEnabled: isEnabled,
1099
1242
  subId2: Number(subId),
1100
1243
  subHashBoost: subHash,
1101
- mergeId: Strategies.Identifiers.Boost,
1244
+ mergeId: isEOA ? Strategies.Identifiers.EoaBoost : Strategies.Identifiers.Boost,
1102
1245
  };
1103
1246
  }
1104
1247
 
1105
- const isEOA = _position.strategy.strategyId.includes('eoa');
1106
1248
  _position.strategy.strategyId = isEOA ? Strategies.IdOverrides.EoaLeverageManagement : Strategies.IdOverrides.LeverageManagement;
1107
1249
 
1250
+ return _position;
1251
+ }
1252
+
1253
+
1254
+ function parseMorphoBlueLiquidationProtection(position: Position.Automated, parseData: ParseData): Position.Automated {
1255
+ const _position = cloneDeep(position);
1256
+
1257
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
1258
+ const { isEnabled } = parseData.strategiesSubsData;
1259
+ const triggerData = triggerService.morphoBlueRatioTrigger.decode(subStruct.triggerData);
1260
+ const subData = subDataService.morphoBlueLiquidationProtectionSubData.decode(subStruct.subData);
1261
+
1262
+ _position.strategyData.decoded.triggerData = triggerData;
1263
+ _position.strategyData.decoded.subData = subData;
1264
+
1265
+ _position.positionId = getPositionId(_position.chainId, _position.protocol.id, triggerData.owner.toLowerCase(), triggerData.marketId);
1266
+
1267
+ _position.specific = {
1268
+ triggerRepayRatio: triggerData.ratio,
1269
+ targetRepayRatio: subData.targetRatio,
1270
+ repayEnabled: isEnabled,
1271
+ subId1: Number(subId),
1272
+ subHashRepay: subHash,
1273
+ };
1274
+
1275
+ const isEOA = _position.strategy.strategyId.includes('eoa');
1276
+ _position.strategy.strategyId = isEOA ? Strategies.IdOverrides.EoaLiquidationProtection : Strategies.IdOverrides.LiquidationProtection;
1108
1277
 
1109
1278
  return _position;
1110
1279
  }
@@ -1113,6 +1282,7 @@ function parseMorphoBlueLeverageManagementOnPrice(position: Position.Automated,
1113
1282
  const _position = cloneDeep(position);
1114
1283
 
1115
1284
  const { subStruct } = parseData.subscriptionEventData;
1285
+ const isEOA = _position.strategy.strategyId.includes('eoa');
1116
1286
  const triggerData = triggerService.morphoBluePriceTrigger.decode(subStruct.triggerData);
1117
1287
  const subData = subDataService.morphoBlueLeverageManagementOnPriceSubData.decode(subStruct.subData);
1118
1288
 
@@ -1143,6 +1313,10 @@ function parseMorphoBlueLeverageManagementOnPrice(position: Position.Automated,
1143
1313
  ratioState: triggerData.priceState,
1144
1314
  };
1145
1315
 
1316
+ _position.strategy.strategyId = isEOA
1317
+ ? Strategies.IdOverrides.EoaLeverageManagementOnPrice
1318
+ : Strategies.IdOverrides.LeverageManagementOnPrice;
1319
+
1146
1320
  return _position;
1147
1321
  }
1148
1322
 
@@ -1150,6 +1324,7 @@ function parseMorphoBlueCloseOnPrice(position: Position.Automated, parseData: Pa
1150
1324
  const _position = cloneDeep(position);
1151
1325
 
1152
1326
  const { subStruct } = parseData.subscriptionEventData;
1327
+ const isEOA = _position.strategy.strategyId.includes('eoa');
1153
1328
 
1154
1329
  const triggerData = triggerService.morphoBluePriceRangeTrigger.decode(subStruct.triggerData);
1155
1330
  const subData = subDataService.morphoBlueCloseOnPriceSubData.decode(subStruct.subData);
@@ -1174,6 +1349,8 @@ function parseMorphoBlueCloseOnPrice(position: Position.Automated, parseData: Pa
1174
1349
 
1175
1350
  const { takeProfitType, stopLossType } = getStopLossAndTakeProfitTypeByCloseStrategyType(+subData.closeType);
1176
1351
 
1352
+ _position.strategy.strategyId = isEOA ? Strategies.Identifiers.EoaCloseOnPrice : Strategies.Identifiers.CloseOnPrice;
1353
+
1177
1354
  _position.specific = {
1178
1355
  subHash: _position.subHash,
1179
1356
  marketId,
@@ -1315,6 +1492,37 @@ function parseFluidT1LeverageManagement(position: Position.Automated, parseData:
1315
1492
  return _position;
1316
1493
  }
1317
1494
 
1495
+
1496
+ function parseFluidT1LiquidationProtection(position: Position.Automated, parseData: ParseData): Position.Automated {
1497
+ const _position = cloneDeep(position);
1498
+
1499
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
1500
+ const { isEnabled } = parseData.strategiesSubsData;
1501
+
1502
+ const triggerData = triggerService.fluidRatioTrigger.decode(subStruct.triggerData);
1503
+ const subData = subDataService.fluidLiquidationProtectionSubData.decode(subStruct.subData);
1504
+
1505
+ _position.strategyData.decoded.triggerData = triggerData;
1506
+ _position.strategyData.decoded.subData = subData;
1507
+
1508
+ _position.positionId = getPositionId(
1509
+ _position.chainId, _position.protocol.id, _position.owner, triggerData.nftId, subData.vault,
1510
+ );
1511
+
1512
+ _position.specific = {
1513
+ triggerRepayRatio: triggerData.ratio,
1514
+ targetRepayRatio: subData.targetRatio,
1515
+ repayEnabled: isEnabled,
1516
+ subId1: Number(subId),
1517
+ subHashRepay: subHash,
1518
+ };
1519
+
1520
+ _position.strategy.strategyId = Strategies.IdOverrides.LiquidationProtection;
1521
+
1522
+ return _position;
1523
+ }
1524
+
1525
+
1318
1526
  const parsingMethodsMapping: StrategiesToProtocolVersionMapping = {
1319
1527
  [ProtocolIdentifiers.StrategiesAutomation.MakerDAO]: {
1320
1528
  [Strategies.Identifiers.SavingsLiqProtection]: parseMakerSavingsLiqProtection,
@@ -1324,6 +1532,7 @@ const parsingMethodsMapping: StrategiesToProtocolVersionMapping = {
1324
1532
  [Strategies.Identifiers.TrailingStopToDebt]: parseMakerTrailingStop,
1325
1533
  [Strategies.Identifiers.Repay]: parseMakerLeverageManagement,
1326
1534
  [Strategies.Identifiers.Boost]: parseMakerLeverageManagement,
1535
+ [Strategies.Identifiers.LiquidationProtection]: parseMakerLiquidationProtection,
1327
1536
  },
1328
1537
  [ProtocolIdentifiers.StrategiesAutomation.Liquity]: {
1329
1538
  [Strategies.Identifiers.CloseOnPriceToColl]: parseLiquityCloseOnPrice,
@@ -1362,6 +1571,8 @@ const parsingMethodsMapping: StrategiesToProtocolVersionMapping = {
1362
1571
  [Strategies.Identifiers.EoaBoostOnPrice]: parseAaveV3LeverageManagementOnPrice,
1363
1572
  [Strategies.Identifiers.EoaCloseOnPrice]: parseAaveV3CloseOnPrice,
1364
1573
  [Strategies.Identifiers.CollateralSwitch]: parseAaveV3CollateralSwitch,
1574
+ [Strategies.Identifiers.LiquidationProtection]: parseAaveV3LiquidationProtection,
1575
+ [Strategies.Identifiers.EoaLiquidationProtection]: parseAaveV3LiquidationProtection,
1365
1576
  },
1366
1577
  [ProtocolIdentifiers.StrategiesAutomation.AaveV4]: {
1367
1578
  [Strategies.Identifiers.Repay]: parseAaveV4LeverageManagement,
@@ -1376,6 +1587,8 @@ const parsingMethodsMapping: StrategiesToProtocolVersionMapping = {
1376
1587
  [Strategies.Identifiers.EoaCloseOnPrice]: parseAaveV4CloseOnPrice,
1377
1588
  [Strategies.Identifiers.CollateralSwitch]: parseAaveV4CollateralSwitch,
1378
1589
  [Strategies.Identifiers.EoaCollateralSwitch]: parseAaveV4CollateralSwitch,
1590
+ [Strategies.Identifiers.LiquidationProtection]: parseAaveV4LiquidationProtection,
1591
+ [Strategies.Identifiers.EoaLiquidationProtection]: parseAaveV4LiquidationProtection,
1379
1592
  },
1380
1593
  [ProtocolIdentifiers.StrategiesAutomation.CompoundV2]: {
1381
1594
  [Strategies.Identifiers.Repay]: parseCompoundV2LeverageManagement,
@@ -1392,6 +1605,8 @@ const parsingMethodsMapping: StrategiesToProtocolVersionMapping = {
1392
1605
  [Strategies.Identifiers.EoaBoostOnPrice]: parseCompoundV3LeverageManagementOnPrice,
1393
1606
  [Strategies.Identifiers.CloseOnPrice]: parseCompoundV3CloseOnPrice,
1394
1607
  [Strategies.Identifiers.EoaCloseOnPrice]: parseCompoundV3CloseOnPrice,
1608
+ [Strategies.Identifiers.LiquidationProtection]: parseCompoundV3LiquidationProtection,
1609
+ [Strategies.Identifiers.EoaLiquidationProtection]: parseCompoundV3LiquidationProtection,
1395
1610
  },
1396
1611
  [ProtocolIdentifiers.StrategiesAutomation.ChickenBonds]: {
1397
1612
  [Strategies.Identifiers.Rebond]: parseChickenBondsRebond,
@@ -1411,6 +1626,7 @@ const parsingMethodsMapping: StrategiesToProtocolVersionMapping = {
1411
1626
  [Strategies.Identifiers.BoostOnPrice]: parseSparkLeverageManagementOnPrice,
1412
1627
  [Strategies.Identifiers.CloseOnPrice]: parseSparkCloseOnPrice,
1413
1628
  [Strategies.Identifiers.CollateralSwitch]: parseSparkCollateralSwitch,
1629
+ [Strategies.Identifiers.LiquidationProtection]: parseSparkLiquidationProtection,
1414
1630
  },
1415
1631
  [ProtocolIdentifiers.StrategiesAutomation.CrvUSD]: {
1416
1632
  [Strategies.Identifiers.Repay]: parseCrvUSDLeverageManagement,
@@ -1424,11 +1640,17 @@ const parsingMethodsMapping: StrategiesToProtocolVersionMapping = {
1424
1640
  [Strategies.Identifiers.EoaBoost]: parseMorphoBlueLeverageManagement,
1425
1641
  [Strategies.Identifiers.BoostOnPrice]: parseMorphoBlueLeverageManagementOnPrice,
1426
1642
  [Strategies.Identifiers.RepayOnPrice]: parseMorphoBlueLeverageManagementOnPrice,
1643
+ [Strategies.Identifiers.EoaBoostOnPrice]: parseMorphoBlueLeverageManagementOnPrice,
1644
+ [Strategies.Identifiers.EoaRepayOnPrice]: parseMorphoBlueLeverageManagementOnPrice,
1427
1645
  [Strategies.Identifiers.CloseOnPrice]: parseMorphoBlueCloseOnPrice,
1646
+ [Strategies.Identifiers.LiquidationProtection]: parseMorphoBlueLiquidationProtection,
1647
+ [Strategies.Identifiers.EoaLiquidationProtection]: parseMorphoBlueLiquidationProtection,
1648
+ [Strategies.Identifiers.EoaCloseOnPrice]: parseMorphoBlueCloseOnPrice,
1428
1649
  },
1429
1650
  [ProtocolIdentifiers.StrategiesAutomation.FluidT1]: {
1430
1651
  [Strategies.Identifiers.Repay]: parseFluidT1LeverageManagement,
1431
1652
  [Strategies.Identifiers.Boost]: parseFluidT1LeverageManagement,
1653
+ [Strategies.Identifiers.LiquidationProtection]: parseFluidT1LiquidationProtection,
1432
1654
  },
1433
1655
  };
1434
1656