@defisaver/automation-sdk 3.3.17 → 3.3.18-audit-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 +135 -0
  2. package/cjs/index.d.ts +2 -2
  3. package/cjs/index.js +5 -2
  4. package/cjs/services/strategiesService.js +157 -9
  5. package/cjs/services/strategySubService.d.ts +18 -17
  6. package/cjs/services/strategySubService.js +68 -28
  7. package/cjs/services/strategySubService.test.js +2 -40
  8. package/cjs/services/subDataService.d.ts +70 -20
  9. package/cjs/services/subDataService.js +23 -79
  10. package/cjs/services/subDataService.test.js +17 -202
  11. package/cjs/types/enums.d.ts +35 -4
  12. package/cjs/types/enums.js +31 -0
  13. package/esm/constants/index.js +135 -0
  14. package/esm/index.d.ts +2 -2
  15. package/esm/index.js +5 -2
  16. package/esm/services/strategiesService.js +157 -9
  17. package/esm/services/strategySubService.d.ts +18 -17
  18. package/esm/services/strategySubService.js +67 -27
  19. package/esm/services/strategySubService.test.js +3 -38
  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 +35 -4
  24. package/esm/types/enums.js +31 -0
  25. package/package.json +10 -2
  26. package/src/constants/index.ts +137 -1
  27. package/src/index.ts +22 -6
  28. package/src/services/strategiesService.ts +221 -9
  29. package/src/services/strategySubService.test.ts +2 -46
  30. package/src/services/strategySubService.ts +164 -40
  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 +31 -2
@@ -549,6 +549,61 @@ 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.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
+ },
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,
585
+ protocol: exports.PROTOCOLS.MorphoBlue,
586
+ },
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,
605
+ protocol: exports.PROTOCOLS.MorphoBlue,
606
+ },
552
607
  [enums_1.Bundles.MainnetIds.MORPHO_BLUE_REPAY_ON_PRICE]: {
553
608
  strategyOrBundleId: enums_1.Bundles.MainnetIds.MORPHO_BLUE_REPAY_ON_PRICE,
554
609
  strategyId: enums_1.Strategies.Identifiers.RepayOnPrice,
@@ -626,6 +681,16 @@ exports.OPTIMISM_BUNDLES_INFO = {
626
681
  strategyId: enums_1.Strategies.Identifiers.EoaCloseOnPrice,
627
682
  protocol: exports.PROTOCOLS.AaveV3,
628
683
  },
684
+ [enums_1.Bundles.OptimismIds.AAVE_V3_SW_LIQUIDATION_PROTECTION]: {
685
+ strategyOrBundleId: enums_1.Bundles.OptimismIds.AAVE_V3_SW_LIQUIDATION_PROTECTION,
686
+ strategyId: enums_1.Strategies.Identifiers.LiquidationProtection,
687
+ protocol: exports.PROTOCOLS.AaveV3,
688
+ },
689
+ [enums_1.Bundles.OptimismIds.AAVE_V3_EOA_LIQUIDATION_PROTECTION]: {
690
+ strategyOrBundleId: enums_1.Bundles.OptimismIds.AAVE_V3_EOA_LIQUIDATION_PROTECTION,
691
+ strategyId: enums_1.Strategies.Identifiers.EoaLiquidationProtection,
692
+ protocol: exports.PROTOCOLS.AaveV3,
693
+ },
629
694
  };
630
695
  exports.BASE_BUNDLES_INFO = {
631
696
  [enums_1.Bundles.BaseIds.AAVE_V3_REPAY]: {
@@ -768,6 +833,41 @@ exports.BASE_BUNDLES_INFO = {
768
833
  strategyId: enums_1.Strategies.Identifiers.RepayOnPrice,
769
834
  protocol: exports.PROTOCOLS.MorphoBlue,
770
835
  },
836
+ [enums_1.Bundles.BaseIds.AAVE_V3_SW_LIQUIDATION_PROTECTION]: {
837
+ strategyOrBundleId: enums_1.Bundles.BaseIds.AAVE_V3_SW_LIQUIDATION_PROTECTION,
838
+ strategyId: enums_1.Strategies.Identifiers.LiquidationProtection,
839
+ protocol: exports.PROTOCOLS.AaveV3,
840
+ },
841
+ [enums_1.Bundles.BaseIds.COMP_V3_SW_LIQUIDATION_PROTECTION]: {
842
+ strategyOrBundleId: enums_1.Bundles.BaseIds.COMP_V3_SW_LIQUIDATION_PROTECTION,
843
+ strategyId: enums_1.Strategies.Identifiers.LiquidationProtection,
844
+ protocol: exports.PROTOCOLS.CompoundV3,
845
+ },
846
+ [enums_1.Bundles.BaseIds.COMP_V3_EOA_LIQUIDATION_PROTECTION]: {
847
+ strategyOrBundleId: enums_1.Bundles.BaseIds.COMP_V3_EOA_LIQUIDATION_PROTECTION,
848
+ strategyId: enums_1.Strategies.Identifiers.EoaLiquidationProtection,
849
+ protocol: exports.PROTOCOLS.CompoundV3,
850
+ },
851
+ [enums_1.Bundles.BaseIds.MORPHO_BLUE_SW_LIQUIDATION_PROTECTION]: {
852
+ strategyOrBundleId: enums_1.Bundles.BaseIds.MORPHO_BLUE_SW_LIQUIDATION_PROTECTION,
853
+ strategyId: enums_1.Strategies.Identifiers.LiquidationProtection,
854
+ protocol: exports.PROTOCOLS.MorphoBlue,
855
+ },
856
+ [enums_1.Bundles.BaseIds.MORPHO_BLUE_EOA_LIQUIDATION_PROTECTION]: {
857
+ strategyOrBundleId: enums_1.Bundles.BaseIds.MORPHO_BLUE_EOA_LIQUIDATION_PROTECTION,
858
+ strategyId: enums_1.Strategies.Identifiers.EoaLiquidationProtection,
859
+ protocol: exports.PROTOCOLS.MorphoBlue,
860
+ },
861
+ [enums_1.Bundles.BaseIds.FLUID_T1_SW_LIQUIDATION_PROTECTION]: {
862
+ strategyOrBundleId: enums_1.Bundles.BaseIds.FLUID_T1_SW_LIQUIDATION_PROTECTION,
863
+ strategyId: enums_1.Strategies.Identifiers.LiquidationProtection,
864
+ protocol: exports.PROTOCOLS.FluidT1,
865
+ },
866
+ [enums_1.Bundles.BaseIds.AAVE_V3_EOA_LIQUIDATION_PROTECTION]: {
867
+ strategyOrBundleId: enums_1.Bundles.BaseIds.AAVE_V3_EOA_LIQUIDATION_PROTECTION,
868
+ strategyId: enums_1.Strategies.Identifiers.EoaLiquidationProtection,
869
+ protocol: exports.PROTOCOLS.AaveV3,
870
+ },
771
871
  [enums_1.Bundles.BaseIds.MORPHO_BLUE_EOA_REPAY]: {
772
872
  strategyOrBundleId: enums_1.Bundles.BaseIds.MORPHO_BLUE_EOA_REPAY,
773
873
  strategyId: enums_1.Strategies.Identifiers.EoaRepay,
@@ -945,6 +1045,41 @@ exports.ARBITRUM_BUNDLES_INFO = {
945
1045
  strategyId: enums_1.Strategies.Identifiers.RepayOnPrice,
946
1046
  protocol: exports.PROTOCOLS.MorphoBlue,
947
1047
  },
1048
+ [enums_1.Bundles.ArbitrumIds.AAVE_V3_SW_LIQUIDATION_PROTECTION]: {
1049
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.AAVE_V3_SW_LIQUIDATION_PROTECTION,
1050
+ strategyId: enums_1.Strategies.Identifiers.LiquidationProtection,
1051
+ protocol: exports.PROTOCOLS.AaveV3,
1052
+ },
1053
+ [enums_1.Bundles.ArbitrumIds.COMP_V3_SW_LIQUIDATION_PROTECTION]: {
1054
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.COMP_V3_SW_LIQUIDATION_PROTECTION,
1055
+ strategyId: enums_1.Strategies.Identifiers.LiquidationProtection,
1056
+ protocol: exports.PROTOCOLS.CompoundV3,
1057
+ },
1058
+ [enums_1.Bundles.ArbitrumIds.COMP_V3_EOA_LIQUIDATION_PROTECTION]: {
1059
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.COMP_V3_EOA_LIQUIDATION_PROTECTION,
1060
+ strategyId: enums_1.Strategies.Identifiers.EoaLiquidationProtection,
1061
+ protocol: exports.PROTOCOLS.CompoundV3,
1062
+ },
1063
+ [enums_1.Bundles.ArbitrumIds.MORPHO_BLUE_SW_LIQUIDATION_PROTECTION]: {
1064
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.MORPHO_BLUE_SW_LIQUIDATION_PROTECTION,
1065
+ strategyId: enums_1.Strategies.Identifiers.LiquidationProtection,
1066
+ protocol: exports.PROTOCOLS.MorphoBlue,
1067
+ },
1068
+ [enums_1.Bundles.ArbitrumIds.FLUID_T1_SW_LIQUIDATION_PROTECTION]: {
1069
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.FLUID_T1_SW_LIQUIDATION_PROTECTION,
1070
+ strategyId: enums_1.Strategies.Identifiers.LiquidationProtection,
1071
+ protocol: exports.PROTOCOLS.FluidT1,
1072
+ },
1073
+ [enums_1.Bundles.ArbitrumIds.AAVE_V3_EOA_LIQUIDATION_PROTECTION]: {
1074
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.AAVE_V3_EOA_LIQUIDATION_PROTECTION,
1075
+ strategyId: enums_1.Strategies.Identifiers.EoaLiquidationProtection,
1076
+ protocol: exports.PROTOCOLS.AaveV3,
1077
+ },
1078
+ [enums_1.Bundles.ArbitrumIds.MORPHO_BLUE_EOA_LIQUIDATION_PROTECTION]: {
1079
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.MORPHO_BLUE_EOA_LIQUIDATION_PROTECTION,
1080
+ strategyId: enums_1.Strategies.Identifiers.EoaLiquidationProtection,
1081
+ protocol: exports.PROTOCOLS.MorphoBlue,
1082
+ },
948
1083
  [enums_1.Bundles.ArbitrumIds.MORPHO_BLUE_EOA_BOOST_ON_PRICE]: {
949
1084
  strategyOrBundleId: enums_1.Bundles.ArbitrumIds.MORPHO_BLUE_EOA_BOOST_ON_PRICE,
950
1085
  strategyId: enums_1.Strategies.Identifiers.EoaBoostOnPrice,
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;
@@ -1037,6 +1155,25 @@ function parseFluidT1LeverageManagement(position, parseData) {
1037
1155
  _position.strategy.strategyId = enums_1.Strategies.IdOverrides.LeverageManagement;
1038
1156
  return _position;
1039
1157
  }
1158
+ function parseFluidT1LiquidationProtection(position, parseData) {
1159
+ const _position = (0, lodash_1.cloneDeep)(position);
1160
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
1161
+ const { isEnabled } = parseData.strategiesSubsData;
1162
+ const triggerData = triggerService.fluidRatioTrigger.decode(subStruct.triggerData);
1163
+ const subData = subDataService.fluidLiquidationProtectionSubData.decode(subStruct.subData);
1164
+ _position.strategyData.decoded.triggerData = triggerData;
1165
+ _position.strategyData.decoded.subData = subData;
1166
+ _position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, _position.owner, triggerData.nftId, subData.vault);
1167
+ _position.specific = {
1168
+ triggerRepayRatio: triggerData.ratio,
1169
+ targetRepayRatio: subData.targetRatio,
1170
+ repayEnabled: isEnabled,
1171
+ subId1: Number(subId),
1172
+ subHashRepay: subHash,
1173
+ };
1174
+ _position.strategy.strategyId = enums_1.Strategies.IdOverrides.LiquidationProtection;
1175
+ return _position;
1176
+ }
1040
1177
  const parsingMethodsMapping = {
1041
1178
  [enums_1.ProtocolIdentifiers.StrategiesAutomation.MakerDAO]: {
1042
1179
  [enums_1.Strategies.Identifiers.SavingsLiqProtection]: parseMakerSavingsLiqProtection,
@@ -1046,6 +1183,7 @@ const parsingMethodsMapping = {
1046
1183
  [enums_1.Strategies.Identifiers.TrailingStopToDebt]: parseMakerTrailingStop,
1047
1184
  [enums_1.Strategies.Identifiers.Repay]: parseMakerLeverageManagement,
1048
1185
  [enums_1.Strategies.Identifiers.Boost]: parseMakerLeverageManagement,
1186
+ [enums_1.Strategies.Identifiers.LiquidationProtection]: parseMakerLiquidationProtection,
1049
1187
  },
1050
1188
  [enums_1.ProtocolIdentifiers.StrategiesAutomation.Liquity]: {
1051
1189
  [enums_1.Strategies.Identifiers.CloseOnPriceToColl]: parseLiquityCloseOnPrice,
@@ -1084,6 +1222,8 @@ const parsingMethodsMapping = {
1084
1222
  [enums_1.Strategies.Identifiers.EoaBoostOnPrice]: parseAaveV3LeverageManagementOnPrice,
1085
1223
  [enums_1.Strategies.Identifiers.EoaCloseOnPrice]: parseAaveV3CloseOnPrice,
1086
1224
  [enums_1.Strategies.Identifiers.CollateralSwitch]: parseAaveV3CollateralSwitch,
1225
+ [enums_1.Strategies.Identifiers.LiquidationProtection]: parseAaveV3LiquidationProtection,
1226
+ [enums_1.Strategies.Identifiers.EoaLiquidationProtection]: parseAaveV3LiquidationProtection,
1087
1227
  },
1088
1228
  [enums_1.ProtocolIdentifiers.StrategiesAutomation.AaveV4]: {
1089
1229
  [enums_1.Strategies.Identifiers.Repay]: parseAaveV4LeverageManagement,
@@ -1098,6 +1238,8 @@ const parsingMethodsMapping = {
1098
1238
  [enums_1.Strategies.Identifiers.EoaCloseOnPrice]: parseAaveV4CloseOnPrice,
1099
1239
  [enums_1.Strategies.Identifiers.CollateralSwitch]: parseAaveV4CollateralSwitch,
1100
1240
  [enums_1.Strategies.Identifiers.EoaCollateralSwitch]: parseAaveV4CollateralSwitch,
1241
+ [enums_1.Strategies.Identifiers.LiquidationProtection]: parseAaveV4LiquidationProtection,
1242
+ [enums_1.Strategies.Identifiers.EoaLiquidationProtection]: parseAaveV4LiquidationProtection,
1101
1243
  },
1102
1244
  [enums_1.ProtocolIdentifiers.StrategiesAutomation.CompoundV2]: {
1103
1245
  [enums_1.Strategies.Identifiers.Repay]: parseCompoundV2LeverageManagement,
@@ -1114,6 +1256,8 @@ const parsingMethodsMapping = {
1114
1256
  [enums_1.Strategies.Identifiers.EoaBoostOnPrice]: parseCompoundV3LeverageManagementOnPrice,
1115
1257
  [enums_1.Strategies.Identifiers.CloseOnPrice]: parseCompoundV3CloseOnPrice,
1116
1258
  [enums_1.Strategies.Identifiers.EoaCloseOnPrice]: parseCompoundV3CloseOnPrice,
1259
+ [enums_1.Strategies.Identifiers.LiquidationProtection]: parseCompoundV3LiquidationProtection,
1260
+ [enums_1.Strategies.Identifiers.EoaLiquidationProtection]: parseCompoundV3LiquidationProtection,
1117
1261
  },
1118
1262
  [enums_1.ProtocolIdentifiers.StrategiesAutomation.ChickenBonds]: {
1119
1263
  [enums_1.Strategies.Identifiers.Rebond]: parseChickenBondsRebond,
@@ -1133,6 +1277,7 @@ const parsingMethodsMapping = {
1133
1277
  [enums_1.Strategies.Identifiers.BoostOnPrice]: parseSparkLeverageManagementOnPrice,
1134
1278
  [enums_1.Strategies.Identifiers.CloseOnPrice]: parseSparkCloseOnPrice,
1135
1279
  [enums_1.Strategies.Identifiers.CollateralSwitch]: parseSparkCollateralSwitch,
1280
+ [enums_1.Strategies.Identifiers.LiquidationProtection]: parseSparkLiquidationProtection,
1136
1281
  },
1137
1282
  [enums_1.ProtocolIdentifiers.StrategiesAutomation.CrvUSD]: {
1138
1283
  [enums_1.Strategies.Identifiers.Repay]: parseCrvUSDLeverageManagement,
@@ -1149,11 +1294,14 @@ const parsingMethodsMapping = {
1149
1294
  [enums_1.Strategies.Identifiers.EoaBoostOnPrice]: parseMorphoBlueLeverageManagementOnPrice,
1150
1295
  [enums_1.Strategies.Identifiers.EoaRepayOnPrice]: parseMorphoBlueLeverageManagementOnPrice,
1151
1296
  [enums_1.Strategies.Identifiers.CloseOnPrice]: parseMorphoBlueCloseOnPrice,
1297
+ [enums_1.Strategies.Identifiers.LiquidationProtection]: parseMorphoBlueLiquidationProtection,
1298
+ [enums_1.Strategies.Identifiers.EoaLiquidationProtection]: parseMorphoBlueLiquidationProtection,
1152
1299
  [enums_1.Strategies.Identifiers.EoaCloseOnPrice]: parseMorphoBlueCloseOnPrice,
1153
1300
  },
1154
1301
  [enums_1.ProtocolIdentifiers.StrategiesAutomation.FluidT1]: {
1155
1302
  [enums_1.Strategies.Identifiers.Repay]: parseFluidT1LeverageManagement,
1156
1303
  [enums_1.Strategies.Identifiers.Boost]: parseFluidT1LeverageManagement,
1304
+ [enums_1.Strategies.Identifiers.LiquidationProtection]: parseFluidT1LiquidationProtection,
1157
1305
  },
1158
1306
  };
1159
1307
  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,19 @@ 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[])[];
98
96
  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[])[];
99
97
  };
100
98
  export declare const crvUSDEncode: {
101
99
  leverageManagement(owner: EthereumAddress, controllerAddr: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number, collTokenAddr: EthereumAddress, crvUSDAddr: EthereumAddress): (boolean | string[] | Bundles.MainnetIds)[];
102
100
  payback(proxyAddress: EthereumAddress, addressToPullTokensFrom: EthereumAddress, positionOwner: EthereumAddress, paybackAmount: string, crvUSDAddr: EthereumAddress, controllerAddr: EthereumAddress, minHealthRatio: number): (boolean | string[] | Strategies.MainnetIds)[];
103
101
  };
104
- export type MorphoBlueBundleStrategy = 'repay' | 'boost' | 'repayOnPrice' | 'boostOnPrice' | 'close';
102
+ export type MorphoBlueBundleStrategy = 'repay' | 'boost' | 'repayOnPrice' | 'boostOnPrice' | 'close' | 'liquidationProtection';
105
103
  export declare function getMorphoBlueBundleId(network: ChainId, strategy: MorphoBlueBundleStrategy, isEOA: boolean): number;
106
104
  export declare const morphoBlueEncode: {
107
105
  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[])[];
106
+ 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
107
  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
108
  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
109
  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 +117,11 @@ export declare const liquityV2Encode: {
118
117
  };
119
118
  export declare const fluidEncode: {
120
119
  leverageManagement(nftId: string, vault: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number, strategyOrBundleId: number): (number | boolean | string[])[];
120
+ liquidationProtection(nftId: string, vault: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number, strategyOrBundleId: number): (number | boolean | string[])[];
121
121
  };
122
122
  export declare const aaveV4Encode: {
123
123
  leverageManagement(strategyOrBundleId: number, owner: EthereumAddress, spoke: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
124
+ liquidationProtection(strategyOrBundleId: number, owner: EthereumAddress, spoke: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
124
125
  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
126
  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
127
  collateralSwitch(strategyOrBundleId: number, owner: EthereumAddress, spoke: EthereumAddress, fromAsset: EthereumAddress, fromAssetId: number, toAsset: EthereumAddress, toAssetId: number, amountToSwitch: string, price: string, ratioState: RatioState): (number | boolean | string[])[];