@defisaver/automation-sdk 3.3.17 → 3.3.18-spark-eoa-dev

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/cjs/constants/index.js +170 -0
  2. package/cjs/index.d.ts +2 -2
  3. package/cjs/index.js +5 -2
  4. package/cjs/services/ethereumService.test.js +4 -7
  5. package/cjs/services/strategiesService.js +195 -15
  6. package/cjs/services/strategySubService.d.ts +22 -17
  7. package/cjs/services/strategySubService.js +92 -28
  8. package/cjs/services/strategySubService.test.js +297 -40
  9. package/cjs/services/subDataService.d.ts +108 -20
  10. package/cjs/services/subDataService.js +97 -79
  11. package/cjs/services/subDataService.test.js +479 -174
  12. package/cjs/types/enums.d.ts +44 -6
  13. package/cjs/types/enums.js +38 -0
  14. package/esm/constants/index.js +170 -0
  15. package/esm/index.d.ts +2 -2
  16. package/esm/index.js +5 -2
  17. package/esm/services/ethereumService.test.js +4 -7
  18. package/esm/services/strategiesService.js +195 -15
  19. package/esm/services/strategySubService.d.ts +22 -17
  20. package/esm/services/strategySubService.js +91 -27
  21. package/esm/services/strategySubService.test.js +298 -38
  22. package/esm/services/subDataService.d.ts +108 -20
  23. package/esm/services/subDataService.js +95 -77
  24. package/esm/services/subDataService.test.js +480 -172
  25. package/esm/types/enums.d.ts +44 -6
  26. package/esm/types/enums.js +38 -0
  27. package/package.json +1 -1
  28. package/src/constants/index.ts +172 -1
  29. package/src/index.ts +22 -6
  30. package/src/services/ethereumService.test.ts +5 -8
  31. package/src/services/strategiesService.ts +262 -16
  32. package/src/services/strategySubService.test.ts +384 -46
  33. package/src/services/strategySubService.ts +251 -40
  34. package/src/services/subDataService.test.ts +639 -231
  35. package/src/services/subDataService.ts +149 -106
  36. package/src/services/utils.test.ts +1 -1
  37. package/src/services/utils.ts +3 -1
  38. package/src/types/enums.ts +38 -2
@@ -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;
@@ -321,11 +359,17 @@ function parseAaveV3CollateralSwitch(position, parseData) {
321
359
  function parseSparkCollateralSwitch(position, parseData) {
322
360
  const _position = (0, lodash_1.cloneDeep)(position);
323
361
  const { subStruct } = parseData.subscriptionEventData;
362
+ const isEOA = _position.strategy.strategyId.includes('eoa');
324
363
  const triggerData = triggerService.sparkQuotePriceTrigger.decode(subStruct.triggerData);
325
- const subData = subDataService.sparkCollateralSwitchSubData.decode(subStruct.subData);
364
+ const subData = isEOA
365
+ ? subDataService.sparkGenericFLCollateralSwitchSubData.decode(subStruct.subData)
366
+ : subDataService.sparkCollateralSwitchSubData.decode(subStruct.subData);
326
367
  _position.strategyData.decoded.triggerData = triggerData;
327
368
  _position.strategyData.decoded.subData = subData;
328
369
  _position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, _position.owner, subData.marketAddr);
370
+ _position.strategy.strategyId = isEOA
371
+ ? enums_1.Strategies.Identifiers.EoaCollateralSwitch
372
+ : enums_1.Strategies.Identifiers.CollateralSwitch;
329
373
  return _position;
330
374
  }
331
375
  function parseAaveV4LeverageManagement(position, parseData) {
@@ -362,6 +406,26 @@ function parseAaveV4LeverageManagement(position, parseData) {
362
406
  }
363
407
  return _position;
364
408
  }
409
+ function parseAaveV4LiquidationProtection(position, parseData) {
410
+ const _position = (0, lodash_1.cloneDeep)(position);
411
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
412
+ const { isEnabled } = parseData.strategiesSubsData;
413
+ const triggerData = triggerService.aaveV4RatioTrigger.decode(subStruct.triggerData);
414
+ const subData = subDataService.aaveV4LiquidationProtectionSubData.decode(subStruct.subData);
415
+ const isEOA = _position.strategy.strategyId.includes('eoa');
416
+ _position.strategyData.decoded.triggerData = triggerData;
417
+ _position.strategyData.decoded.subData = subData;
418
+ _position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, _position.owner, triggerData.spoke);
419
+ _position.strategy.strategyId = isEOA ? enums_1.Strategies.IdOverrides.EoaLiquidationProtection : enums_1.Strategies.IdOverrides.LiquidationProtection;
420
+ _position.specific = {
421
+ triggerRepayRatio: triggerData.ratio,
422
+ targetRepayRatio: subData.targetRatio,
423
+ repayEnabled: isEnabled,
424
+ subId1: Number(subId),
425
+ subHashRepay: subHash,
426
+ };
427
+ return _position;
428
+ }
365
429
  function parseAaveV4LeverageManagementOnPrice(position, parseData) {
366
430
  const _position = (0, lodash_1.cloneDeep)(position);
367
431
  const { subStruct } = parseData.subscriptionEventData;
@@ -481,7 +545,7 @@ function parseCompoundV2LeverageManagement(position, parseData) {
481
545
  const { subStruct, subId, subHash } = parseData.subscriptionEventData;
482
546
  const { isEnabled } = parseData.strategiesSubsData;
483
547
  const triggerData = triggerService.compoundV2RatioTrigger.decode(subStruct.triggerData);
484
- const subData = subDataService.compoundV2LeverageManagementSubData.decode(subStruct.subData);
548
+ const subData = subDataService.legacyCompoundV2LeverageManagementSubData.decode(subStruct.subData);
485
549
  _position.strategyData.decoded.triggerData = triggerData;
486
550
  _position.strategyData.decoded.subData = subData;
487
551
  _position.owner = triggerData.owner.toLowerCase();
@@ -515,7 +579,7 @@ function parseCompoundV3LeverageManagement(position, parseData) {
515
579
  const _position = (0, lodash_1.cloneDeep)(position);
516
580
  const { subStruct, subId, subHash } = parseData.subscriptionEventData;
517
581
  const { isEnabled } = parseData.strategiesSubsData;
518
- const subDataDecoder = subDataService.compoundV3LeverageManagementSubDataWithoutSubProxy;
582
+ const subDataDecoder = subDataService.compoundV3LeverageManagementSubData;
519
583
  const triggerData = triggerService.compoundV3RatioTrigger.decode(subStruct.triggerData);
520
584
  const subData = subDataDecoder.decode(subStruct.subData);
521
585
  _position.strategyData.decoded.triggerData = triggerData;
@@ -546,6 +610,27 @@ function parseCompoundV3LeverageManagement(position, parseData) {
546
610
  _position.strategy.strategyId = isEOA ? enums_1.Strategies.IdOverrides.EoaLeverageManagement : enums_1.Strategies.IdOverrides.LeverageManagement;
547
611
  return _position;
548
612
  }
613
+ function parseCompoundV3LiquidationProtection(position, parseData) {
614
+ const _position = (0, lodash_1.cloneDeep)(position);
615
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
616
+ const { isEnabled } = parseData.strategiesSubsData;
617
+ const subDataDecoder = subDataService.compoundV3LiquidationProtectionSubData;
618
+ const triggerData = triggerService.compoundV3RatioTrigger.decode(subStruct.triggerData);
619
+ const subData = subDataDecoder.decode(subStruct.subData);
620
+ _position.strategyData.decoded.triggerData = triggerData;
621
+ _position.strategyData.decoded.subData = subData;
622
+ _position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, triggerData.owner.toLowerCase(), triggerData.market);
623
+ const isEOA = _position.strategy.strategyId.includes('eoa');
624
+ _position.specific = {
625
+ triggerRepayRatio: triggerData.ratio,
626
+ targetRepayRatio: subData.targetRatio,
627
+ repayEnabled: isEnabled,
628
+ subId1: Number(subId),
629
+ subHashRepay: subHash,
630
+ };
631
+ _position.strategy.strategyId = isEOA ? enums_1.Strategies.IdOverrides.EoaLiquidationProtection : enums_1.Strategies.IdOverrides.LiquidationProtection;
632
+ return _position;
633
+ }
549
634
  function parseCompoundV3LeverageManagementOnPrice(position, parseData) {
550
635
  const _position = (0, lodash_1.cloneDeep)(position);
551
636
  const { subStruct } = parseData.subscriptionEventData;
@@ -619,7 +704,7 @@ function parseExchangeDca(position, parseData, chainId) {
619
704
  function parseExchangeLimitOrder(position, parseData, chainId) {
620
705
  const _position = (0, lodash_1.cloneDeep)(position);
621
706
  const { subStruct } = parseData.subscriptionEventData;
622
- _position.strategyData.decoded.subData = subDataService.exchangeLimitOrderSubData.decode(subStruct.subData, chainId);
707
+ _position.strategyData.decoded.subData = subDataService.legacyExchangeLimitOrderSubData.decode(subStruct.subData, chainId);
623
708
  const fromTokenDecimals = (0, tokens_1.getAssetInfoByAddress)(_position.strategyData.decoded.subData.fromToken, chainId).decimals;
624
709
  const toTokenDecimals = (0, tokens_1.getAssetInfoByAddress)(_position.strategyData.decoded.subData.toToken, chainId).decimals;
625
710
  _position.strategyData.decoded.triggerData = triggerService.exchangeOffchainPriceTrigger.decode(subStruct.triggerData, fromTokenDecimals, toTokenDecimals);
@@ -631,7 +716,7 @@ function parseLiquityLeverageManagement(position, parseData) {
631
716
  const { subStruct, subId, subHash } = parseData.subscriptionEventData;
632
717
  const { isEnabled } = parseData.strategiesSubsData;
633
718
  const triggerData = triggerService.liquityRatioTrigger.decode(subStruct.triggerData);
634
- const subData = subDataService.liquityLeverageManagementSubData.decode(subStruct.subData);
719
+ const subData = subDataService.legacyLiquityLeverageManagementSubData.decode(subStruct.subData);
635
720
  _position.strategyData.decoded.triggerData = triggerData;
636
721
  _position.strategyData.decoded.subData = subData;
637
722
  _position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, _position.owner);
@@ -696,19 +781,22 @@ function parseSparkLeverageManagement(position, parseData) {
696
781
  const _position = (0, lodash_1.cloneDeep)(position);
697
782
  const { subStruct, subId, subHash } = parseData.subscriptionEventData;
698
783
  const { isEnabled } = parseData.strategiesSubsData;
784
+ const isEOA = _position.strategy.strategyId.includes('eoa');
699
785
  const triggerData = triggerService.sparkRatioTrigger.decode(subStruct.triggerData);
700
- const subData = subDataService.sparkLeverageManagementSubData.decode(subStruct.subData);
786
+ const subData = isEOA
787
+ ? subDataService.sparkGenericLeverageManagementSubData.decode(subStruct.subData)
788
+ : subDataService.legacySparkLeverageManagementSubData.decode(subStruct.subData);
701
789
  _position.strategyData.decoded.triggerData = triggerData;
702
790
  _position.strategyData.decoded.subData = subData;
703
791
  _position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, _position.owner, triggerData.market);
704
- const isRepay = _position.strategy.strategyId === enums_1.Strategies.Identifiers.Repay;
792
+ const isRepay = [enums_1.Strategies.Identifiers.Repay, enums_1.Strategies.Identifiers.EoaRepay].includes(_position.strategy.strategyId);
705
793
  if (isRepay) {
706
794
  _position.specific = {
707
795
  triggerRepayRatio: triggerData.ratio,
708
796
  targetRepayRatio: subData.targetRatio,
709
797
  repayEnabled: isEnabled,
710
798
  subId1: Number(subId),
711
- mergeWithId: enums_1.Strategies.Identifiers.Boost,
799
+ mergeWithId: isEOA ? enums_1.Strategies.Identifiers.EoaBoost : enums_1.Strategies.Identifiers.Boost,
712
800
  subHashRepay: subHash,
713
801
  };
714
802
  }
@@ -718,18 +806,48 @@ function parseSparkLeverageManagement(position, parseData) {
718
806
  targetBoostRatio: subData.targetRatio,
719
807
  boostEnabled: isEnabled,
720
808
  subId2: Number(subId),
721
- mergeId: enums_1.Strategies.Identifiers.Boost,
809
+ mergeId: isEOA ? enums_1.Strategies.Identifiers.EoaBoost : enums_1.Strategies.Identifiers.Boost,
722
810
  subHashBoost: subHash,
723
811
  };
724
812
  }
725
- _position.strategy.strategyId = enums_1.Strategies.IdOverrides.LeverageManagement;
813
+ _position.strategy.strategyId = isEOA
814
+ ? enums_1.Strategies.IdOverrides.EoaLeverageManagement
815
+ : enums_1.Strategies.IdOverrides.LeverageManagement;
816
+ return _position;
817
+ }
818
+ function parseSparkLiquidationProtection(position, parseData) {
819
+ const _position = (0, lodash_1.cloneDeep)(position);
820
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
821
+ const { isEnabled } = parseData.strategiesSubsData;
822
+ const isEOA = _position.strategy.strategyId.includes('eoa');
823
+ const triggerData = triggerService.sparkRatioTrigger.decode(subStruct.triggerData);
824
+ const subData = isEOA
825
+ ? subDataService.sparkGenericLiquidationProtectionSubData.decode(subStruct.subData)
826
+ : subDataService.sparkLiquidationProtectionSubData.decode(subStruct.subData);
827
+ _position.strategyData.decoded.triggerData = triggerData;
828
+ _position.strategyData.decoded.subData = subData;
829
+ _position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, _position.owner, triggerData.market);
830
+ _position.specific = {
831
+ triggerRepayRatio: triggerData.ratio,
832
+ targetRepayRatio: subData.targetRatio,
833
+ repayEnabled: isEnabled,
834
+ subId1: Number(subId),
835
+ subHashRepay: subHash,
836
+ };
837
+ _position.strategy.strategyId = isEOA
838
+ ? enums_1.Strategies.IdOverrides.EoaLiquidationProtection
839
+ : enums_1.Strategies.IdOverrides.LiquidationProtection;
840
+ _position.strategy.strategyId = enums_1.Strategies.IdOverrides.LiquidationProtection;
726
841
  return _position;
727
842
  }
728
843
  function parseSparkLeverageManagementOnPrice(position, parseData) {
729
844
  const _position = (0, lodash_1.cloneDeep)(position);
730
845
  const { subStruct } = parseData.subscriptionEventData;
846
+ const isEOA = _position.strategy.strategyId.includes('eoa');
731
847
  const triggerData = triggerService.sparkQuotePriceTrigger.decode(subStruct.triggerData);
732
- const subData = subDataService.sparkLeverageManagementOnPriceSubData.decode(subStruct.subData);
848
+ const subData = isEOA
849
+ ? subDataService.sparkLeverageManagementOnPriceGenericSubData.decode(subStruct.subData)
850
+ : subDataService.sparkLeverageManagementOnPriceSubData.decode(subStruct.subData);
733
851
  _position.strategyData.decoded.triggerData = triggerData;
734
852
  _position.strategyData.decoded.subData = subData;
735
853
  _position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, _position.owner, subData.marketAddr);
@@ -746,6 +864,9 @@ function parseSparkLeverageManagementOnPrice(position, parseData) {
746
864
  price: triggerData.price,
747
865
  ratioState: triggerData.ratioState,
748
866
  };
867
+ _position.strategy.strategyId = isEOA
868
+ ? enums_1.Strategies.IdOverrides.EoaLeverageManagementOnPrice
869
+ : enums_1.Strategies.IdOverrides.LeverageManagementOnPrice;
749
870
  return _position;
750
871
  }
751
872
  function parseSparkCloseOnPrice(position, parseData) {
@@ -753,9 +874,11 @@ function parseSparkCloseOnPrice(position, parseData) {
753
874
  const { subStruct } = parseData.subscriptionEventData;
754
875
  const triggerData = triggerService.sparkQuotePriceRangeTrigger.decode(subStruct.triggerData);
755
876
  const subData = subDataService.sparkCloseGenericSubData.decode(subStruct.subData);
877
+ const isEOA = _position.strategy.strategyId.includes('eoa');
756
878
  _position.strategyData.decoded.triggerData = triggerData;
757
879
  _position.strategyData.decoded.subData = subData;
758
880
  _position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, _position.owner, subData.marketAddr);
881
+ _position.strategy.strategyId = isEOA ? enums_1.Strategies.Identifiers.EoaCloseOnPrice : enums_1.Strategies.Identifiers.CloseOnPrice;
759
882
  const { takeProfitType, stopLossType } = (0, utils_1.getStopLossAndTakeProfitTypeByCloseStrategyType)(+subData.closeType);
760
883
  _position.specific = {
761
884
  collAsset: subData.collAsset,
@@ -879,6 +1002,26 @@ function parseMorphoBlueLeverageManagement(position, parseData) {
879
1002
  _position.strategy.strategyId = isEOA ? enums_1.Strategies.IdOverrides.EoaLeverageManagement : enums_1.Strategies.IdOverrides.LeverageManagement;
880
1003
  return _position;
881
1004
  }
1005
+ function parseMorphoBlueLiquidationProtection(position, parseData) {
1006
+ const _position = (0, lodash_1.cloneDeep)(position);
1007
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
1008
+ const { isEnabled } = parseData.strategiesSubsData;
1009
+ const triggerData = triggerService.morphoBlueRatioTrigger.decode(subStruct.triggerData);
1010
+ const subData = subDataService.morphoBlueLiquidationProtectionSubData.decode(subStruct.subData);
1011
+ _position.strategyData.decoded.triggerData = triggerData;
1012
+ _position.strategyData.decoded.subData = subData;
1013
+ _position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, triggerData.owner.toLowerCase(), triggerData.marketId);
1014
+ _position.specific = {
1015
+ triggerRepayRatio: triggerData.ratio,
1016
+ targetRepayRatio: subData.targetRatio,
1017
+ repayEnabled: isEnabled,
1018
+ subId1: Number(subId),
1019
+ subHashRepay: subHash,
1020
+ };
1021
+ const isEOA = _position.strategy.strategyId.includes('eoa');
1022
+ _position.strategy.strategyId = isEOA ? enums_1.Strategies.IdOverrides.EoaLiquidationProtection : enums_1.Strategies.IdOverrides.LiquidationProtection;
1023
+ return _position;
1024
+ }
882
1025
  function parseMorphoBlueLeverageManagementOnPrice(position, parseData) {
883
1026
  const _position = (0, lodash_1.cloneDeep)(position);
884
1027
  const { subStruct } = parseData.subscriptionEventData;
@@ -1037,6 +1180,25 @@ function parseFluidT1LeverageManagement(position, parseData) {
1037
1180
  _position.strategy.strategyId = enums_1.Strategies.IdOverrides.LeverageManagement;
1038
1181
  return _position;
1039
1182
  }
1183
+ function parseFluidT1LiquidationProtection(position, parseData) {
1184
+ const _position = (0, lodash_1.cloneDeep)(position);
1185
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
1186
+ const { isEnabled } = parseData.strategiesSubsData;
1187
+ const triggerData = triggerService.fluidRatioTrigger.decode(subStruct.triggerData);
1188
+ const subData = subDataService.fluidLiquidationProtectionSubData.decode(subStruct.subData);
1189
+ _position.strategyData.decoded.triggerData = triggerData;
1190
+ _position.strategyData.decoded.subData = subData;
1191
+ _position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, _position.owner, triggerData.nftId, subData.vault);
1192
+ _position.specific = {
1193
+ triggerRepayRatio: triggerData.ratio,
1194
+ targetRepayRatio: subData.targetRatio,
1195
+ repayEnabled: isEnabled,
1196
+ subId1: Number(subId),
1197
+ subHashRepay: subHash,
1198
+ };
1199
+ _position.strategy.strategyId = enums_1.Strategies.IdOverrides.LiquidationProtection;
1200
+ return _position;
1201
+ }
1040
1202
  const parsingMethodsMapping = {
1041
1203
  [enums_1.ProtocolIdentifiers.StrategiesAutomation.MakerDAO]: {
1042
1204
  [enums_1.Strategies.Identifiers.SavingsLiqProtection]: parseMakerSavingsLiqProtection,
@@ -1046,6 +1208,7 @@ const parsingMethodsMapping = {
1046
1208
  [enums_1.Strategies.Identifiers.TrailingStopToDebt]: parseMakerTrailingStop,
1047
1209
  [enums_1.Strategies.Identifiers.Repay]: parseMakerLeverageManagement,
1048
1210
  [enums_1.Strategies.Identifiers.Boost]: parseMakerLeverageManagement,
1211
+ [enums_1.Strategies.Identifiers.LiquidationProtection]: parseMakerLiquidationProtection,
1049
1212
  },
1050
1213
  [enums_1.ProtocolIdentifiers.StrategiesAutomation.Liquity]: {
1051
1214
  [enums_1.Strategies.Identifiers.CloseOnPriceToColl]: parseLiquityCloseOnPrice,
@@ -1084,6 +1247,8 @@ const parsingMethodsMapping = {
1084
1247
  [enums_1.Strategies.Identifiers.EoaBoostOnPrice]: parseAaveV3LeverageManagementOnPrice,
1085
1248
  [enums_1.Strategies.Identifiers.EoaCloseOnPrice]: parseAaveV3CloseOnPrice,
1086
1249
  [enums_1.Strategies.Identifiers.CollateralSwitch]: parseAaveV3CollateralSwitch,
1250
+ [enums_1.Strategies.Identifiers.LiquidationProtection]: parseAaveV3LiquidationProtection,
1251
+ [enums_1.Strategies.Identifiers.EoaLiquidationProtection]: parseAaveV3LiquidationProtection,
1087
1252
  },
1088
1253
  [enums_1.ProtocolIdentifiers.StrategiesAutomation.AaveV4]: {
1089
1254
  [enums_1.Strategies.Identifiers.Repay]: parseAaveV4LeverageManagement,
@@ -1098,6 +1263,8 @@ const parsingMethodsMapping = {
1098
1263
  [enums_1.Strategies.Identifiers.EoaCloseOnPrice]: parseAaveV4CloseOnPrice,
1099
1264
  [enums_1.Strategies.Identifiers.CollateralSwitch]: parseAaveV4CollateralSwitch,
1100
1265
  [enums_1.Strategies.Identifiers.EoaCollateralSwitch]: parseAaveV4CollateralSwitch,
1266
+ [enums_1.Strategies.Identifiers.LiquidationProtection]: parseAaveV4LiquidationProtection,
1267
+ [enums_1.Strategies.Identifiers.EoaLiquidationProtection]: parseAaveV4LiquidationProtection,
1101
1268
  },
1102
1269
  [enums_1.ProtocolIdentifiers.StrategiesAutomation.CompoundV2]: {
1103
1270
  [enums_1.Strategies.Identifiers.Repay]: parseCompoundV2LeverageManagement,
@@ -1114,6 +1281,8 @@ const parsingMethodsMapping = {
1114
1281
  [enums_1.Strategies.Identifiers.EoaBoostOnPrice]: parseCompoundV3LeverageManagementOnPrice,
1115
1282
  [enums_1.Strategies.Identifiers.CloseOnPrice]: parseCompoundV3CloseOnPrice,
1116
1283
  [enums_1.Strategies.Identifiers.EoaCloseOnPrice]: parseCompoundV3CloseOnPrice,
1284
+ [enums_1.Strategies.Identifiers.LiquidationProtection]: parseCompoundV3LiquidationProtection,
1285
+ [enums_1.Strategies.Identifiers.EoaLiquidationProtection]: parseCompoundV3LiquidationProtection,
1117
1286
  },
1118
1287
  [enums_1.ProtocolIdentifiers.StrategiesAutomation.ChickenBonds]: {
1119
1288
  [enums_1.Strategies.Identifiers.Rebond]: parseChickenBondsRebond,
@@ -1132,7 +1301,15 @@ const parsingMethodsMapping = {
1132
1301
  [enums_1.Strategies.Identifiers.RepayOnPrice]: parseSparkLeverageManagementOnPrice,
1133
1302
  [enums_1.Strategies.Identifiers.BoostOnPrice]: parseSparkLeverageManagementOnPrice,
1134
1303
  [enums_1.Strategies.Identifiers.CloseOnPrice]: parseSparkCloseOnPrice,
1304
+ [enums_1.Strategies.Identifiers.EoaRepay]: parseSparkLeverageManagement,
1305
+ [enums_1.Strategies.Identifiers.EoaBoost]: parseSparkLeverageManagement,
1306
+ [enums_1.Strategies.Identifiers.EoaRepayOnPrice]: parseSparkLeverageManagementOnPrice,
1307
+ [enums_1.Strategies.Identifiers.EoaBoostOnPrice]: parseSparkLeverageManagementOnPrice,
1308
+ [enums_1.Strategies.Identifiers.EoaCloseOnPrice]: parseSparkCloseOnPrice,
1135
1309
  [enums_1.Strategies.Identifiers.CollateralSwitch]: parseSparkCollateralSwitch,
1310
+ [enums_1.Strategies.Identifiers.EoaCollateralSwitch]: parseSparkCollateralSwitch,
1311
+ [enums_1.Strategies.Identifiers.LiquidationProtection]: parseSparkLiquidationProtection,
1312
+ [enums_1.Strategies.Identifiers.EoaLiquidationProtection]: parseSparkLiquidationProtection,
1136
1313
  },
1137
1314
  [enums_1.ProtocolIdentifiers.StrategiesAutomation.CrvUSD]: {
1138
1315
  [enums_1.Strategies.Identifiers.Repay]: parseCrvUSDLeverageManagement,
@@ -1149,11 +1326,14 @@ const parsingMethodsMapping = {
1149
1326
  [enums_1.Strategies.Identifiers.EoaBoostOnPrice]: parseMorphoBlueLeverageManagementOnPrice,
1150
1327
  [enums_1.Strategies.Identifiers.EoaRepayOnPrice]: parseMorphoBlueLeverageManagementOnPrice,
1151
1328
  [enums_1.Strategies.Identifiers.CloseOnPrice]: parseMorphoBlueCloseOnPrice,
1329
+ [enums_1.Strategies.Identifiers.LiquidationProtection]: parseMorphoBlueLiquidationProtection,
1330
+ [enums_1.Strategies.Identifiers.EoaLiquidationProtection]: parseMorphoBlueLiquidationProtection,
1152
1331
  [enums_1.Strategies.Identifiers.EoaCloseOnPrice]: parseMorphoBlueCloseOnPrice,
1153
1332
  },
1154
1333
  [enums_1.ProtocolIdentifiers.StrategiesAutomation.FluidT1]: {
1155
1334
  [enums_1.Strategies.Identifiers.Repay]: parseFluidT1LeverageManagement,
1156
1335
  [enums_1.Strategies.Identifiers.Boost]: parseFluidT1LeverageManagement,
1336
+ [enums_1.Strategies.Identifiers.LiquidationProtection]: parseFluidT1LiquidationProtection,
1157
1337
  },
1158
1338
  };
1159
1339
  function getParsingMethod(id, strategy) {
@@ -1,26 +1,24 @@
1
- import type { OrderType } from '../types/enums';
2
- import { CloseToAssetType, Bundles, ChainId, RatioState, Strategies } from '../types/enums';
1
+ import { Bundles, ChainId, CloseToAssetType, RatioState, Strategies } from '../types/enums';
3
2
  import type { EthereumAddress, StrategyOrBundleIds } from '../types';
3
+ import type { OrderType } from '../types/enums';
4
4
  export declare const makerEncode: {
5
5
  repayFromSavings(bundleId: StrategyOrBundleIds, vaultId: number, triggerRepayRatio: number, targetRepayRatio: number, isBundle?: boolean, chainId?: ChainId, daiAddr?: EthereumAddress, mcdCdpManagerAddr?: EthereumAddress): (boolean | string[] | Strategies.MainnetIds | Strategies.OptimismIds | Strategies.ArbitrumIds | Strategies.BaseIds | Bundles.MainnetIds | Bundles.OptimismIds | Bundles.ArbitrumIds | Bundles.BaseIds)[];
6
6
  closeOnPrice(vaultId: number, ratioState: RatioState, price: string, closeToAssetAddr: EthereumAddress, chainlinkCollAddress: EthereumAddress, chainId?: ChainId, daiAddr?: EthereumAddress, mcdCdpManagerAddr?: EthereumAddress): (boolean | string[] | Strategies.MainnetIds)[];
7
7
  trailingStop(vaultId: number, triggerPercentage: number, closeToAssetAddr: EthereumAddress, chainlinkCollAddress: EthereumAddress, roundId: number, chainId?: ChainId, daiAddr?: EthereumAddress, mcdCdpManagerAddr?: EthereumAddress): (boolean | string[] | Strategies.MainnetIds)[];
8
- leverageManagementWithoutSubProxy(vaultId: number, triggerRatio: number, targetRatio: number, ratioState: RatioState, isBoost: boolean, daiAddr?: EthereumAddress): (boolean | string[] | Bundles.MainnetIds)[];
8
+ leverageManagement(vaultId: number, triggerRatio: number, targetRatio: number, ratioState: RatioState, isBoost: boolean, daiAddr?: EthereumAddress): (boolean | string[] | Bundles.MainnetIds)[];
9
+ liquidationProtection(vaultId: number, triggerRatio: number, targetRatio: number, ratioState: RatioState, daiAddr?: EthereumAddress): (boolean | string[] | Bundles.MainnetIds)[];
9
10
  };
10
11
  export declare const liquityEncode: {
11
12
  closeOnPrice(priceOverOrUnder: RatioState, price: string, closeToAssetAddr: EthereumAddress, chainlinkCollAddress: EthereumAddress, chainId?: ChainId, collAddr?: EthereumAddress, debtAddr?: EthereumAddress): (boolean | string[] | Strategies.MainnetIds)[];
12
13
  trailingStop(triggerPercentage: number, closeToAssetAddr: EthereumAddress, chainlinkCollAddress: EthereumAddress, roundId: number, chainId?: ChainId, collAddr?: EthereumAddress, debtAddr?: EthereumAddress): (boolean | string[] | Strategies.MainnetIds)[];
13
14
  paybackFromChickenBondStrategySub(proxyAddress: EthereumAddress, ratio: number, sourceId: string, sourceType: number, ratioState?: RatioState): (boolean | string[] | Bundles.MainnetIds)[];
14
- leverageManagementWithoutSubProxy(strategyOrBundleId: number, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
15
+ leverageManagement(strategyOrBundleId: number, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
15
16
  dsrPayback(proxyAddress: EthereumAddress, triggerRatio: number, targetRatio: number): (boolean | string[] | Strategies.MainnetIds)[];
16
17
  dsrSupply(proxyAddress: EthereumAddress, triggerRatio: number, targetRatio: number): (boolean | string[] | Strategies.MainnetIds)[];
17
18
  debtInFrontRepay(proxyAddress: EthereumAddress, debtInFrontMin: string, targetRatioIncrease: number): (boolean | string[] | Strategies.MainnetIds)[];
18
19
  };
19
- export declare const chickenBondsEncode: {
20
- rebond(bondId: number): string[];
21
- };
22
20
  export declare const aaveV2Encode: {
23
- leverageManagementWithoutSubProxy(strategyOrBundleId: number, market: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
21
+ leverageManagement(strategyOrBundleId: number, market: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
24
22
  };
25
23
  export declare const aaveV3Encode: {
26
24
  closeToAsset(strategyOrBundleId: number, isBundle: boolean | undefined, triggerData: {
@@ -59,25 +57,24 @@ export declare const aaveV3Encode: {
59
57
  marketAddr: EthereumAddress;
60
58
  targetRatio: number;
61
59
  }): (number | boolean | string[])[];
62
- leverageManagementWithoutSubProxy(strategyOrBundleId: number, market: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number, isGeneric?: boolean): (number | boolean | string[])[];
60
+ leverageManagement(strategyOrBundleId: number, market: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number, isGeneric?: boolean): (number | boolean | string[])[];
61
+ liquidationProtection(strategyOrBundleId: number, market: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
63
62
  leverageManagementOnPriceGeneric(strategyOrBundleId: number, price: number, ratioState: RatioState, collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, marketAddr: EthereumAddress, targetRatio: number, user: EthereumAddress): (number | boolean | string[])[];
64
63
  closeOnPriceGeneric(strategyOrBundleId: number, collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, marketAddr: EthereumAddress, user: EthereumAddress, stopLossPrice?: number, stopLossType?: CloseToAssetType, takeProfitPrice?: number, takeProfitType?: CloseToAssetType): (number | boolean | string[])[];
65
64
  collateralSwitch(strategyOrBundleId: number, fromAsset: EthereumAddress, fromAssetId: number, toAsset: EthereumAddress, toAssetId: number, marketAddr: EthereumAddress, amountToSwitch: string, baseTokenAddress: EthereumAddress, quoteTokenAddress: EthereumAddress, price: number, state: RatioState): (number | boolean | string[])[];
66
65
  };
67
66
  export declare const compoundV2Encode: {
68
- leverageManagementWithoutSubProxy(strategyOrBundleId: number, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
67
+ leverageManagement(strategyOrBundleId: number, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
69
68
  };
70
69
  export declare const compoundV3Encode: {
71
- leverageManagementWithoutSubProxy(strategyOrBundleId: number, market: EthereumAddress, baseToken: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
70
+ leverageManagement(strategyOrBundleId: number, market: EthereumAddress, baseToken: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
71
+ liquidationProtection(strategyOrBundleId: number, market: EthereumAddress, baseToken: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
72
72
  leverageManagementOnPrice(strategyOrBundleId: number, market: EthereumAddress, collToken: EthereumAddress, baseToken: EthereumAddress, targetRatio: number, price: number, priceState: RatioState, ratioState: RatioState, user: EthereumAddress): (number | boolean | string[])[];
73
73
  closeOnPrice(strategyOrBundleId: number, market: EthereumAddress, collToken: EthereumAddress, baseToken: EthereumAddress, stopLossPrice: number | undefined, stopLossType: CloseToAssetType | undefined, takeProfitPrice: number | undefined, takeProfitType: CloseToAssetType | undefined, user: EthereumAddress): (number | boolean | string[])[];
74
74
  };
75
- export declare const morphoAaveV2Encode: {
76
- leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
77
- };
78
75
  export declare const exchangeEncode: {
79
76
  dca(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string, timestamp: number, interval: number, network: ChainId): (boolean | string[] | Strategies.MainnetIds | Strategies.OptimismIds | Strategies.ArbitrumIds | Strategies.BaseIds)[];
80
- limitOrderWithoutSubProxy(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string, targetPrice: string, goodUntil: string | number, orderType: OrderType, fromTokenDecimals: number, toTokenDecimals: number, network: ChainId): (boolean | string[] | Strategies.MainnetIds | Strategies.OptimismIds | Strategies.ArbitrumIds | Strategies.BaseIds)[];
77
+ limitOrder(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string, targetPrice: string, goodUntil: string | number, orderType: OrderType, fromTokenDecimals: number, toTokenDecimals: number, network: ChainId): (boolean | string[] | Strategies.MainnetIds | Strategies.OptimismIds | Strategies.ArbitrumIds | Strategies.BaseIds)[];
81
78
  };
82
79
  export declare const sparkEncode: {
83
80
  leverageManagementOnPrice(strategyOrBundleId: number, isBundle: boolean | undefined, triggerData: {
@@ -94,17 +91,23 @@ export declare const sparkEncode: {
94
91
  targetRatio: number;
95
92
  }): (number | boolean | string[])[];
96
93
  closeOnPriceGeneric(strategyOrBundleId: number, collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, marketAddr: EthereumAddress, user: EthereumAddress, stopLossPrice?: number, stopLossType?: CloseToAssetType, takeProfitPrice?: number, takeProfitType?: CloseToAssetType): (number | boolean | string[])[];
97
- leverageManagementWithoutSubProxy(strategyOrBundleId: number, market: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
94
+ leverageManagement(strategyOrBundleId: number, market: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
95
+ liquidationProtection(strategyOrBundleId: number, market: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
96
+ leverageManagementGeneric(strategyOrBundleId: number, market: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
97
+ liquidationProtectionGeneric(strategyOrBundleId: number, market: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
98
+ leverageManagementOnPriceGeneric(strategyOrBundleId: number, price: number, ratioState: RatioState, collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, marketAddr: EthereumAddress, targetRatio: number, user: EthereumAddress): (number | boolean | string[])[];
98
99
  collateralSwitch(strategyOrBundleId: number, fromAsset: EthereumAddress, fromAssetId: number, toAsset: EthereumAddress, toAssetId: number, marketAddr: EthereumAddress, amountToSwitch: string, baseTokenAddress: EthereumAddress, quoteTokenAddress: EthereumAddress, price: number, state: RatioState): (number | boolean | string[])[];
100
+ collateralSwitchGeneric(strategyOrBundleId: number, fromAsset: EthereumAddress, fromAssetId: number, toAsset: EthereumAddress, toAssetId: number, marketAddr: EthereumAddress, amountToSwitch: string, user: EthereumAddress, baseTokenAddress: EthereumAddress, quoteTokenAddress: EthereumAddress, price: number, state: RatioState): (number | boolean | string[])[];
99
101
  };
100
102
  export declare const crvUSDEncode: {
101
103
  leverageManagement(owner: EthereumAddress, controllerAddr: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number, collTokenAddr: EthereumAddress, crvUSDAddr: EthereumAddress): (boolean | string[] | Bundles.MainnetIds)[];
102
104
  payback(proxyAddress: EthereumAddress, addressToPullTokensFrom: EthereumAddress, positionOwner: EthereumAddress, paybackAmount: string, crvUSDAddr: EthereumAddress, controllerAddr: EthereumAddress, minHealthRatio: number): (boolean | string[] | Strategies.MainnetIds)[];
103
105
  };
104
- export type MorphoBlueBundleStrategy = 'repay' | 'boost' | 'repayOnPrice' | 'boostOnPrice' | 'close';
106
+ export type MorphoBlueBundleStrategy = 'repay' | 'boost' | 'repayOnPrice' | 'boostOnPrice' | 'close' | 'liquidationProtection';
105
107
  export declare function getMorphoBlueBundleId(network: ChainId, strategy: MorphoBlueBundleStrategy, isEOA: boolean): number;
106
108
  export declare const morphoBlueEncode: {
107
109
  leverageManagement(marketId: string, loanToken: EthereumAddress, collToken: EthereumAddress, oracle: EthereumAddress, irm: EthereumAddress, lltv: string, ratioState: RatioState, targetRatio: number, triggerRatio: number, user: EthereumAddress, isEOA: boolean, network: ChainId): (number | boolean | string[])[];
110
+ liquidationProtection(marketId: string, loanToken: EthereumAddress, collToken: EthereumAddress, oracle: EthereumAddress, irm: EthereumAddress, lltv: string, ratioState: RatioState, targetRatio: number, triggerRatio: number, user: EthereumAddress, isEOA: boolean, network: ChainId): (number | boolean | string[])[];
108
111
  leverageManagementOnPrice(strategyOrBundleId: number, isBundle: boolean | undefined, loanToken: EthereumAddress, collToken: EthereumAddress, oracle: EthereumAddress, irm: EthereumAddress, lltv: string, user: EthereumAddress, targetRatio: number, price: number, priceState: RatioState): (number | boolean | string[])[];
109
112
  leverageManagementOnPriceGeneric(loanToken: EthereumAddress, collToken: EthereumAddress, oracle: EthereumAddress, irm: EthereumAddress, lltv: string, user: EthereumAddress, targetRatio: number, price: number, priceState: RatioState, isBoost: boolean, isEOA: boolean, network: ChainId): (number | boolean | string[])[];
110
113
  closeOnPrice(strategyOrBundleId: number, loanToken: EthereumAddress, collToken: EthereumAddress, oracle: EthereumAddress, irm: EthereumAddress, lltv: string, user: EthereumAddress, stopLossPrice?: number, stopLossType?: CloseToAssetType, takeProfitPrice?: number, takeProfitType?: CloseToAssetType): (number | boolean | string[])[];
@@ -118,9 +121,11 @@ export declare const liquityV2Encode: {
118
121
  };
119
122
  export declare const fluidEncode: {
120
123
  leverageManagement(nftId: string, vault: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number, strategyOrBundleId: number): (number | boolean | string[])[];
124
+ liquidationProtection(nftId: string, vault: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number, strategyOrBundleId: number): (number | boolean | string[])[];
121
125
  };
122
126
  export declare const aaveV4Encode: {
123
127
  leverageManagement(strategyOrBundleId: number, owner: EthereumAddress, spoke: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
128
+ liquidationProtection(strategyOrBundleId: number, owner: EthereumAddress, spoke: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
124
129
  leverageManagementOnPrice(strategyOrBundleId: number, owner: EthereumAddress, spoke: EthereumAddress, collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, targetRatio: number, price: string, priceState: RatioState, ratioState: RatioState): (number | boolean | string[])[];
125
130
  closeOnPrice(strategyOrBundleId: number, owner: EthereumAddress, spoke: EthereumAddress, collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, stopLossPrice?: string, stopLossType?: CloseToAssetType, takeProfitPrice?: string, takeProfitType?: CloseToAssetType): (number | boolean | string[])[];
126
131
  collateralSwitch(strategyOrBundleId: number, owner: EthereumAddress, spoke: EthereumAddress, fromAsset: EthereumAddress, fromAssetId: number, toAsset: EthereumAddress, toAssetId: number, amountToSwitch: string, price: string, ratioState: RatioState): (number | boolean | string[])[];