@defisaver/automation-sdk 3.3.2-dev → 3.3.2-dev.1

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 (45) hide show
  1. package/cjs/constants/index.js +100 -5
  2. package/cjs/index.d.ts +2 -1
  3. package/cjs/index.js +1 -1
  4. package/cjs/services/strategiesService.js +28 -27
  5. package/cjs/services/strategySubService.d.ts +3 -2
  6. package/cjs/services/strategySubService.js +15 -9
  7. package/cjs/services/strategySubService.test.js +314 -0
  8. package/cjs/services/subDataService.d.ts +25 -9
  9. package/cjs/services/subDataService.js +78 -26
  10. package/cjs/services/subDataService.test.js +456 -0
  11. package/cjs/services/triggerService.d.ts +6 -6
  12. package/cjs/services/triggerService.js +14 -11
  13. package/cjs/services/triggerService.test.js +46 -0
  14. package/cjs/types/enums.d.ts +26 -8
  15. package/cjs/types/enums.js +21 -2
  16. package/cjs/types/index.d.ts +1 -8
  17. package/esm/constants/index.js +100 -5
  18. package/esm/index.d.ts +2 -1
  19. package/esm/index.js +2 -2
  20. package/esm/services/strategiesService.js +28 -27
  21. package/esm/services/strategySubService.d.ts +3 -2
  22. package/esm/services/strategySubService.js +15 -9
  23. package/esm/services/strategySubService.test.js +314 -0
  24. package/esm/services/subDataService.d.ts +25 -9
  25. package/esm/services/subDataService.js +77 -25
  26. package/esm/services/subDataService.test.js +456 -0
  27. package/esm/services/triggerService.d.ts +6 -6
  28. package/esm/services/triggerService.js +13 -10
  29. package/esm/services/triggerService.test.js +47 -1
  30. package/esm/types/enums.d.ts +26 -8
  31. package/esm/types/enums.js +21 -2
  32. package/esm/types/index.d.ts +1 -8
  33. package/package.json +2 -2
  34. package/src/constants/index.ts +103 -5
  35. package/src/index.ts +4 -2
  36. package/src/services/strategiesService.ts +31 -37
  37. package/src/services/strategySubService.test.ts +347 -0
  38. package/src/services/strategySubService.ts +57 -20
  39. package/src/services/subDataService.test.ts +532 -0
  40. package/src/services/subDataService.ts +122 -33
  41. package/src/services/triggerService.test.ts +50 -0
  42. package/src/services/triggerService.ts +21 -14
  43. package/src/types/enums.ts +21 -2
  44. package/src/types/index.ts +20 -9
  45. package/umd/index.js +0 -34219
@@ -101,11 +101,6 @@ exports.MAINNET_STRATEGIES_INFO = {
101
101
  strategyId: enums_1.Strategies.Identifiers.Payback,
102
102
  protocol: exports.PROTOCOLS.LiquityV2,
103
103
  },
104
- [enums_1.Strategies.MainnetIds.LIQUITY_V2_INTEREST_RATE_ADJUSTMENT]: {
105
- strategyOrBundleId: enums_1.Strategies.MainnetIds.LIQUITY_V2_INTEREST_RATE_ADJUSTMENT,
106
- strategyId: enums_1.Strategies.Identifiers.InterestRateAdjustment,
107
- protocol: exports.PROTOCOLS.LiquityV2,
108
- },
109
104
  };
110
105
  exports.OPTIMISM_STRATEGIES_INFO = {
111
106
  [enums_1.Strategies.OptimismIds.EXCHANGE_DCA]: {
@@ -433,6 +428,31 @@ exports.MAINNET_BUNDLES_INFO = {
433
428
  strategyId: enums_1.Strategies.Identifiers.EoaCloseOnPrice,
434
429
  protocol: exports.PROTOCOLS.CompoundV3,
435
430
  },
431
+ [enums_1.Bundles.MainnetIds.AAVE_V3_EOA_REPAY]: {
432
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V3_EOA_REPAY,
433
+ strategyId: enums_1.Strategies.Identifiers.EoaRepay,
434
+ protocol: exports.PROTOCOLS.AaveV3,
435
+ },
436
+ [enums_1.Bundles.MainnetIds.AAVE_V3_EOA_BOOST]: {
437
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V3_EOA_BOOST,
438
+ strategyId: enums_1.Strategies.Identifiers.EoaBoost,
439
+ protocol: exports.PROTOCOLS.AaveV3,
440
+ },
441
+ [enums_1.Bundles.MainnetIds.AAVE_V3_EOA_REPAY_ON_PRICE]: {
442
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V3_EOA_REPAY_ON_PRICE,
443
+ strategyId: enums_1.Strategies.Identifiers.EoaRepayOnPrice,
444
+ protocol: exports.PROTOCOLS.AaveV3,
445
+ },
446
+ [enums_1.Bundles.MainnetIds.AAVE_V3_EOA_BOOST_ON_PRICE]: {
447
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V3_EOA_BOOST_ON_PRICE,
448
+ strategyId: enums_1.Strategies.Identifiers.EoaBoostOnPrice,
449
+ protocol: exports.PROTOCOLS.AaveV3,
450
+ },
451
+ [enums_1.Bundles.MainnetIds.AAVE_V3_EOA_CLOSE]: {
452
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
453
+ strategyId: enums_1.Strategies.Identifiers.EoaCloseOnPrice,
454
+ protocol: exports.PROTOCOLS.AaveV3,
455
+ },
436
456
  };
437
457
  exports.OPTIMISM_BUNDLES_INFO = {
438
458
  [enums_1.Bundles.OptimismIds.AAVE_V3_REPAY]: {
@@ -465,6 +485,31 @@ exports.OPTIMISM_BUNDLES_INFO = {
465
485
  strategyId: enums_1.Strategies.Identifiers.RepayOnPrice,
466
486
  protocol: exports.PROTOCOLS.AaveV3,
467
487
  },
488
+ [enums_1.Bundles.OptimismIds.AAVE_V3_EOA_REPAY]: {
489
+ strategyOrBundleId: enums_1.Bundles.OptimismIds.AAVE_V3_EOA_REPAY,
490
+ strategyId: enums_1.Strategies.Identifiers.EoaRepay,
491
+ protocol: exports.PROTOCOLS.AaveV3,
492
+ },
493
+ [enums_1.Bundles.OptimismIds.AAVE_V3_EOA_BOOST]: {
494
+ strategyOrBundleId: enums_1.Bundles.OptimismIds.AAVE_V3_EOA_BOOST,
495
+ strategyId: enums_1.Strategies.Identifiers.EoaBoost,
496
+ protocol: exports.PROTOCOLS.AaveV3,
497
+ },
498
+ [enums_1.Bundles.OptimismIds.AAVE_V3_EOA_REPAY_ON_PRICE]: {
499
+ strategyOrBundleId: enums_1.Bundles.OptimismIds.AAVE_V3_EOA_REPAY_ON_PRICE,
500
+ strategyId: enums_1.Strategies.Identifiers.EoaRepayOnPrice,
501
+ protocol: exports.PROTOCOLS.AaveV3,
502
+ },
503
+ [enums_1.Bundles.OptimismIds.AAVE_V3_EOA_BOOST_ON_PRICE]: {
504
+ strategyOrBundleId: enums_1.Bundles.OptimismIds.AAVE_V3_EOA_BOOST_ON_PRICE,
505
+ strategyId: enums_1.Strategies.Identifiers.EoaBoostOnPrice,
506
+ protocol: exports.PROTOCOLS.AaveV3,
507
+ },
508
+ [enums_1.Bundles.OptimismIds.AAVE_V3_EOA_CLOSE]: {
509
+ strategyOrBundleId: enums_1.Bundles.OptimismIds.AAVE_V3_EOA_CLOSE,
510
+ strategyId: enums_1.Strategies.Identifiers.EoaCloseOnPrice,
511
+ protocol: exports.PROTOCOLS.AaveV3,
512
+ },
468
513
  };
469
514
  exports.BASE_BUNDLES_INFO = {
470
515
  [enums_1.Bundles.BaseIds.AAVE_V3_REPAY]: {
@@ -572,6 +617,31 @@ exports.BASE_BUNDLES_INFO = {
572
617
  strategyId: enums_1.Strategies.Identifiers.EoaBoost,
573
618
  protocol: exports.PROTOCOLS.CompoundV3,
574
619
  },
620
+ [enums_1.Bundles.BaseIds.AAVE_V3_EOA_REPAY]: {
621
+ strategyOrBundleId: enums_1.Bundles.BaseIds.AAVE_V3_EOA_REPAY,
622
+ strategyId: enums_1.Strategies.Identifiers.EoaRepay,
623
+ protocol: exports.PROTOCOLS.AaveV3,
624
+ },
625
+ [enums_1.Bundles.BaseIds.AAVE_V3_EOA_BOOST]: {
626
+ strategyOrBundleId: enums_1.Bundles.BaseIds.AAVE_V3_EOA_BOOST,
627
+ strategyId: enums_1.Strategies.Identifiers.EoaBoost,
628
+ protocol: exports.PROTOCOLS.AaveV3,
629
+ },
630
+ [enums_1.Bundles.BaseIds.AAVE_V3_EOA_REPAY_ON_PRICE]: {
631
+ strategyOrBundleId: enums_1.Bundles.BaseIds.AAVE_V3_EOA_REPAY_ON_PRICE,
632
+ strategyId: enums_1.Strategies.Identifiers.EoaRepayOnPrice,
633
+ protocol: exports.PROTOCOLS.AaveV3,
634
+ },
635
+ [enums_1.Bundles.BaseIds.AAVE_V3_EOA_BOOST_ON_PRICE]: {
636
+ strategyOrBundleId: enums_1.Bundles.BaseIds.AAVE_V3_EOA_BOOST_ON_PRICE,
637
+ strategyId: enums_1.Strategies.Identifiers.EoaBoostOnPrice,
638
+ protocol: exports.PROTOCOLS.AaveV3,
639
+ },
640
+ [enums_1.Bundles.BaseIds.AAVE_V3_EOA_CLOSE]: {
641
+ strategyOrBundleId: enums_1.Bundles.BaseIds.AAVE_V3_EOA_CLOSE,
642
+ strategyId: enums_1.Strategies.Identifiers.EoaCloseOnPrice,
643
+ protocol: exports.PROTOCOLS.AaveV3,
644
+ },
575
645
  };
576
646
  exports.ARBITRUM_BUNDLES_INFO = {
577
647
  [enums_1.Bundles.ArbitrumIds.AAVE_V3_REPAY]: {
@@ -664,6 +734,31 @@ exports.ARBITRUM_BUNDLES_INFO = {
664
734
  strategyId: enums_1.Strategies.Identifiers.EoaBoost,
665
735
  protocol: exports.PROTOCOLS.CompoundV3,
666
736
  },
737
+ [enums_1.Bundles.ArbitrumIds.AAVE_V3_EOA_REPAY]: {
738
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.AAVE_V3_EOA_REPAY,
739
+ strategyId: enums_1.Strategies.Identifiers.EoaRepay,
740
+ protocol: exports.PROTOCOLS.AaveV3,
741
+ },
742
+ [enums_1.Bundles.ArbitrumIds.AAVE_V3_EOA_BOOST]: {
743
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.AAVE_V3_EOA_BOOST,
744
+ strategyId: enums_1.Strategies.Identifiers.EoaBoost,
745
+ protocol: exports.PROTOCOLS.AaveV3,
746
+ },
747
+ [enums_1.Bundles.ArbitrumIds.AAVE_V3_EOA_REPAY_ON_PRICE]: {
748
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.AAVE_V3_EOA_REPAY_ON_PRICE,
749
+ strategyId: enums_1.Strategies.Identifiers.EoaRepayOnPrice,
750
+ protocol: exports.PROTOCOLS.AaveV3,
751
+ },
752
+ [enums_1.Bundles.ArbitrumIds.AAVE_V3_EOA_BOOST_ON_PRICE]: {
753
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.AAVE_V3_EOA_BOOST_ON_PRICE,
754
+ strategyId: enums_1.Strategies.Identifiers.EoaBoostOnPrice,
755
+ protocol: exports.PROTOCOLS.AaveV3,
756
+ },
757
+ [enums_1.Bundles.ArbitrumIds.AAVE_V3_EOA_CLOSE]: {
758
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.AAVE_V3_EOA_CLOSE,
759
+ strategyId: enums_1.Strategies.Identifiers.EoaCloseOnPrice,
760
+ protocol: exports.PROTOCOLS.AaveV3,
761
+ },
667
762
  };
668
763
  exports.BUNDLES_INFO = {
669
764
  [enums_1.ChainId.Ethereum]: exports.MAINNET_BUNDLES_INFO,
package/cjs/index.d.ts CHANGED
@@ -13,11 +13,12 @@ import * as strategiesService from './services/strategiesService';
13
13
  import * as constants from './constants';
14
14
  import * as enums from './types/enums';
15
15
  import type * as types from './types';
16
- import { getRatioStateInfoForAaveCloseStrategy, compareSubHashes, encodeSubId } from './services/utils';
16
+ import { getRatioStateInfoForAaveCloseStrategy, compareSubHashes, encodeSubId, getCloseStrategyType } from './services/utils';
17
17
  declare const utils: {
18
18
  getRatioStateInfoForAaveCloseStrategy: typeof getRatioStateInfoForAaveCloseStrategy;
19
19
  compareSubHashes: typeof compareSubHashes;
20
20
  encodeSubId: typeof encodeSubId;
21
+ getCloseStrategyType: typeof getCloseStrategyType;
21
22
  };
22
23
  export { LegacyMakerAutomation, LegacyAaveAutomation, LegacyCompoundAutomation, EthereumStrategies, OptimismStrategies, ArbitrumStrategies, BaseStrategies, triggerService, subDataService, strategySubService, utils, enums, constants, strategiesService, };
23
24
  export type { types };
package/cjs/index.js CHANGED
@@ -60,6 +60,6 @@ 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,
63
+ getRatioStateInfoForAaveCloseStrategy: utils_1.getRatioStateInfoForAaveCloseStrategy, compareSubHashes: utils_1.compareSubHashes, encodeSubId: utils_1.encodeSubId, getCloseStrategyType: utils_1.getCloseStrategyType,
64
64
  };
65
65
  exports.utils = utils;
@@ -189,21 +189,25 @@ function parseAaveV2LeverageManagement(position, parseData) {
189
189
  }
190
190
  function parseAaveV3LeverageManagement(position, parseData) {
191
191
  const _position = (0, lodash_1.cloneDeep)(position);
192
- const { subStruct, subId } = parseData.subscriptionEventData;
192
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
193
193
  const { isEnabled } = parseData.strategiesSubsData;
194
194
  const triggerData = triggerService.aaveV3RatioTrigger.decode(subStruct.triggerData);
195
195
  const subData = subDataService.aaveV3LeverageManagementSubData.decode(subStruct.subData);
196
196
  _position.strategyData.decoded.triggerData = triggerData;
197
197
  _position.strategyData.decoded.subData = subData;
198
198
  _position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, _position.owner, triggerData.market);
199
- const isRepay = _position.strategy.strategyId === enums_1.Strategies.Identifiers.Repay;
199
+ // TODO -> check if this change breaks something?
200
+ const isEOA = _position.strategy.strategyId.includes('eoa');
201
+ // TODO -> check if this change breaks something?
202
+ const isRepay = [enums_1.Strategies.Identifiers.Repay, enums_1.Strategies.Identifiers.EoaRepay].includes(_position.strategy.strategyId);
200
203
  if (isRepay) {
201
204
  _position.specific = {
202
205
  triggerRepayRatio: triggerData.ratio,
203
206
  targetRepayRatio: subData.targetRatio,
204
207
  repayEnabled: true,
205
208
  subId1: Number(subId),
206
- mergeWithId: enums_1.Strategies.Identifiers.Boost,
209
+ subHashRepay: subHash,
210
+ mergeWithId: isEOA ? enums_1.Strategies.Identifiers.EoaBoost : enums_1.Strategies.Identifiers.Boost,
207
211
  };
208
212
  }
209
213
  else {
@@ -212,10 +216,11 @@ function parseAaveV3LeverageManagement(position, parseData) {
212
216
  targetBoostRatio: subData.targetRatio,
213
217
  boostEnabled: isEnabled,
214
218
  subId2: Number(subId),
215
- mergeId: enums_1.Strategies.Identifiers.Boost,
219
+ subHashBoost: subHash,
220
+ mergeId: isEOA ? enums_1.Strategies.Identifiers.EoaBoost : enums_1.Strategies.Identifiers.Boost,
216
221
  };
217
222
  }
218
- _position.strategy.strategyId = enums_1.Strategies.IdOverrides.LeverageManagement;
223
+ _position.strategy.strategyId = isEOA ? enums_1.Strategies.IdOverrides.EoaLeverageManagement : enums_1.Strategies.IdOverrides.LeverageManagement;
219
224
  return _position;
220
225
  }
221
226
  function parseMorphoAaveV2LeverageManagement(position, parseData) {
@@ -268,7 +273,13 @@ function parseAaveV3CloseOnPrice(position, parseData) {
268
273
  ratioState: triggerData.ratioState,
269
274
  };
270
275
  const { ratioState } = (0, utils_1.getRatioStateInfoForAaveCloseStrategy)(_position.specific.ratioState, (0, utils_1.wethToEthByAddress)(_position.specific.collAsset, parseData.chainId), (0, utils_1.wethToEthByAddress)(_position.specific.debtAsset, parseData.chainId), parseData.chainId);
271
- _position.strategy.strategyId = (0, utils_1.isRatioStateOver)(ratioState) ? enums_1.Strategies.IdOverrides.TakeProfit : enums_1.Strategies.IdOverrides.StopLoss;
276
+ // TODO -> Check if those changes break something?
277
+ const isEOA = _position.strategy.strategyId.includes('eoa');
278
+ _position.strategy.strategyId = isEOA
279
+ ? enums_1.Strategies.Identifiers.EoaCloseOnPrice
280
+ : (_position.strategy.strategyId = (0, utils_1.isRatioStateOver)(ratioState)
281
+ ? enums_1.Strategies.IdOverrides.TakeProfit
282
+ : enums_1.Strategies.IdOverrides.StopLoss);
272
283
  return _position;
273
284
  }
274
285
  function parseAaveV3CloseOnPriceWithMaximumGasPrice(position, parseData) {
@@ -342,13 +353,14 @@ function parseCompoundV3LeverageManagement(position, parseData) {
342
353
  _position.strategyData.decoded.subData = subData;
343
354
  _position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, triggerData.owner.toLowerCase(), triggerData.market);
344
355
  const isRepay = [enums_1.Strategies.Identifiers.Repay, enums_1.Strategies.Identifiers.EoaRepay].includes(_position.strategy.strategyId);
356
+ const isEOA = _position.strategy.strategyId.includes('eoa');
345
357
  if (isRepay) {
346
358
  _position.specific = {
347
359
  triggerRepayRatio: triggerData.ratio,
348
360
  targetRepayRatio: subData.targetRatio,
349
361
  repayEnabled: true,
350
362
  subId1: Number(subId),
351
- mergeWithId: enums_1.Strategies.Identifiers.Boost,
363
+ mergeWithId: isEOA ? enums_1.Strategies.Identifiers.EoaBoost : enums_1.Strategies.Identifiers.Boost,
352
364
  };
353
365
  }
354
366
  else {
@@ -357,10 +369,9 @@ function parseCompoundV3LeverageManagement(position, parseData) {
357
369
  targetBoostRatio: subData.targetRatio,
358
370
  boostEnabled: isEnabled,
359
371
  subId2: Number(subId),
360
- mergeId: enums_1.Strategies.Identifiers.Boost,
372
+ mergeId: isEOA ? enums_1.Strategies.Identifiers.EoaBoost : enums_1.Strategies.Identifiers.Boost,
361
373
  };
362
374
  }
363
- const isEOA = _position.strategy.strategyId.includes('eoa');
364
375
  _position.strategy.strategyId = isEOA ? enums_1.Strategies.IdOverrides.EoaLeverageManagement : enums_1.Strategies.IdOverrides.LeverageManagement;
365
376
  return _position;
366
377
  }
@@ -714,6 +725,9 @@ function parseAaveV3LeverageManagementOnPrice(position, parseData) {
714
725
  collAssetId: subData.collAssetId,
715
726
  ratio: subData.targetRatio,
716
727
  };
728
+ // TODO -> check if this change breaks something?
729
+ const isEOA = _position.strategy.strategyId.includes('eoa');
730
+ _position.strategy.strategyId = isEOA ? enums_1.Strategies.IdOverrides.EoaLeverageManagementOnPrice : enums_1.Strategies.IdOverrides.LeverageManagementOnPrice;
717
731
  return _position;
718
732
  }
719
733
  function parseLiquityV2CloseOnPrice(position, parseData) {
@@ -812,23 +826,6 @@ function parseFluidT1LeverageManagement(position, parseData) {
812
826
  _position.strategy.strategyId = enums_1.Strategies.IdOverrides.LeverageManagement;
813
827
  return _position;
814
828
  }
815
- function parseLiquityV2InterestRateAdjustment(position, parseData) {
816
- const _position = (0, lodash_1.cloneDeep)(position);
817
- const { subStruct } = parseData.subscriptionEventData;
818
- const triggerData = triggerService.liquityV2InterestRateAdjustmentTrigger.decode(subStruct.triggerData);
819
- const subData = subDataService.liquityV2InterestRateAdjustmentSubData.decode(subStruct.subData);
820
- _position.strategyData.decoded.triggerData = triggerData;
821
- _position.strategyData.decoded.subData = subData;
822
- _position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, _position.owner, triggerData.troveId, triggerData.market);
823
- _position.specific = {
824
- market: subData.market,
825
- troveId: subData.troveId,
826
- criticalDebtInFrontLimit: triggerData.criticalDebtInFrontLimit,
827
- nonCriticalDebtInFrontLimit: triggerData.nonCriticalDebtInFrontLimit,
828
- interestRateChange: subData.interestRateChange,
829
- };
830
- return _position;
831
- }
832
829
  const parsingMethodsMapping = {
833
830
  [enums_1.ProtocolIdentifiers.StrategiesAutomation.MakerDAO]: {
834
831
  [enums_1.Strategies.Identifiers.SavingsLiqProtection]: parseMakerSavingsLiqProtection,
@@ -856,7 +853,6 @@ const parsingMethodsMapping = {
856
853
  [enums_1.Strategies.Identifiers.BoostOnPrice]: parseLiquityV2LeverageManagementOnPrice,
857
854
  [enums_1.Strategies.Identifiers.RepayOnPrice]: parseLiquityV2LeverageManagementOnPrice,
858
855
  [enums_1.Strategies.Identifiers.Payback]: parseLiquityV2Payback,
859
- [enums_1.Strategies.Identifiers.InterestRateAdjustment]: parseLiquityV2InterestRateAdjustment,
860
856
  },
861
857
  [enums_1.ProtocolIdentifiers.StrategiesAutomation.AaveV2]: {
862
858
  [enums_1.Strategies.Identifiers.Repay]: parseAaveV2LeverageManagement,
@@ -871,6 +867,11 @@ const parsingMethodsMapping = {
871
867
  [enums_1.Strategies.Identifiers.CloseToCollateralWithGasPrice]: parseAaveV3CloseOnPriceWithMaximumGasPrice,
872
868
  [enums_1.Strategies.Identifiers.OpenOrderFromCollateral]: parseAaveV3LeverageManagementOnPrice,
873
869
  [enums_1.Strategies.Identifiers.RepayOnPrice]: parseAaveV3LeverageManagementOnPrice,
870
+ [enums_1.Strategies.Identifiers.EoaRepay]: parseAaveV3LeverageManagement,
871
+ [enums_1.Strategies.Identifiers.EoaBoost]: parseAaveV3LeverageManagement,
872
+ [enums_1.Strategies.Identifiers.EoaRepayOnPrice]: parseAaveV3LeverageManagementOnPrice,
873
+ [enums_1.Strategies.Identifiers.EoaBoostOnPrice]: parseAaveV3LeverageManagementOnPrice,
874
+ [enums_1.Strategies.Identifiers.EoaCloseOnPrice]: parseAaveV3CloseOnPrice,
874
875
  },
875
876
  [enums_1.ProtocolIdentifiers.StrategiesAutomation.CompoundV2]: {
876
877
  [enums_1.Strategies.Identifiers.Repay]: parseCompoundV2LeverageManagement,
@@ -60,7 +60,9 @@ export declare const aaveV3Encode: {
60
60
  marketAddr: EthereumAddress;
61
61
  targetRatio: number;
62
62
  }): (number | boolean | string[])[];
63
- leverageManagementWithoutSubProxy(strategyOrBundleId: number, market: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
63
+ leverageManagementWithoutSubProxy(strategyOrBundleId: number, market: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number, isGeneric?: boolean): (number | boolean | string[])[];
64
+ leverageManagementOnPriceGeneric(strategyOrBundleId: number, price: number, ratioState: RatioState, collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, marketAddr: EthereumAddress, targetRatio: number, user: EthereumAddress): (number | boolean | string[])[];
65
+ 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[])[];
64
66
  };
65
67
  export declare const compoundV2Encode: {
66
68
  leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
@@ -107,7 +109,6 @@ export declare const liquityV2Encode: {
107
109
  closeOnPrice(strategyOrBundleId: number, market: EthereumAddress, troveId: string, collToken: EthereumAddress, boldToken: EthereumAddress, stopLossPrice?: number, stopLossType?: CloseToAssetType, takeProfitPrice?: number, takeProfitType?: CloseToAssetType): (number | boolean | string[])[];
108
110
  leverageManagementOnPrice(strategyOrBundleId: number, market: EthereumAddress, price: number, state: RatioState, troveId: string, collToken: EthereumAddress, boldToken: EthereumAddress, targetRatio: number, isRepayOnPrice: boolean): (number | boolean | string[])[];
109
111
  payback(market: EthereumAddress, troveId: string, boldToken: EthereumAddress, targetRatio: number, ratioState: RatioState, triggerRatio: number): (boolean | string[] | Strategies.MainnetIds)[];
110
- interestRateAdjustment(market: EthereumAddress, troveId: string, criticalDebtInFrontLimit: string, nonCriticalDebtInFrontLimit: string, interestRateChange: string): (boolean | string[] | Strategies.MainnetIds)[];
111
112
  };
112
113
  export declare const fluidEncode: {
113
114
  leverageManagement(nftId: string, vault: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number, strategyOrBundleId: number): (number | boolean | string[])[];
@@ -175,12 +175,25 @@ exports.aaveV3Encode = {
175
175
  const triggerDataEncoded = triggerService.aaveV3QuotePriceTrigger.encode(baseTokenAddress, quoteTokenAddress, price, state);
176
176
  return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
177
177
  },
178
- leverageManagementWithoutSubProxy(strategyOrBundleId, market, user, ratioState, targetRatio, triggerRatio) {
178
+ leverageManagementWithoutSubProxy(strategyOrBundleId, market, user, ratioState, targetRatio, triggerRatio, isGeneric = false) {
179
179
  const isBundle = true;
180
- const subData = subDataService.aaveV3LeverageManagementSubDataWithoutSubProxy.encode(targetRatio, ratioState);
180
+ const subData = subDataService.aaveV3LeverageManagementSubDataWithoutSubProxy.encode(targetRatio, ratioState, market, user, isGeneric);
181
181
  const triggerData = triggerService.aaveV3RatioTrigger.encode(user, market, triggerRatio, ratioState);
182
182
  return [strategyOrBundleId, isBundle, triggerData, subData];
183
183
  },
184
+ leverageManagementOnPriceGeneric(strategyOrBundleId, price, ratioState, collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio, user) {
185
+ const isBundle = true;
186
+ const subDataEncoded = subDataService.aaveV3LeverageManagementOnPriceGeneric.encode(collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio, user);
187
+ const triggerDataEncoded = triggerService.aaveV3QuotePriceTrigger.encode(collAsset, debtAsset, price, ratioState);
188
+ return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
189
+ },
190
+ closeOnPriceGeneric(strategyOrBundleId, collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, user, stopLossPrice = 0, stopLossType = enums_1.CloseToAssetType.DEBT, takeProfitPrice = 0, takeProfitType = enums_1.CloseToAssetType.COLLATERAL) {
191
+ const isBundle = true;
192
+ const closeType = (0, utils_1.getCloseStrategyType)(stopLossPrice, stopLossType, takeProfitPrice, takeProfitType);
193
+ const subDataEncoded = subDataService.aaveV3CloseGenericSubData.encode(collAsset, collAssetId, debtAsset, debtAssetId, closeType, marketAddr, user);
194
+ const triggerDataEncoded = triggerService.aaveV3QuotePriceRangeTrigger.encode(collAsset, debtAsset, stopLossPrice, takeProfitPrice);
195
+ return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
196
+ },
184
197
  };
185
198
  exports.compoundV2Encode = {
186
199
  leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
@@ -317,13 +330,6 @@ exports.liquityV2Encode = {
317
330
  const triggerData = triggerService.liquityV2RatioTrigger.encode(market, troveId, triggerRatio, ratioState);
318
331
  return [strategyId, isBundle, triggerData, subData];
319
332
  },
320
- interestRateAdjustment(market, troveId, criticalDebtInFrontLimit, nonCriticalDebtInFrontLimit, interestRateChange) {
321
- const strategyId = enums_1.Strategies.MainnetIds.LIQUITY_V2_INTEREST_RATE_ADJUSTMENT;
322
- const isBundle = false;
323
- const subData = subDataService.liquityV2InterestRateAdjustmentSubData.encode(market, troveId, interestRateChange);
324
- const triggerData = triggerService.liquityV2InterestRateAdjustmentTrigger.encode(market, troveId, criticalDebtInFrontLimit, nonCriticalDebtInFrontLimit);
325
- return [strategyId, isBundle, triggerData, subData];
326
- },
327
333
  };
328
334
  exports.fluidEncode = {
329
335
  leverageManagement(nftId, vault, ratioState, targetRatio, triggerRatio, strategyOrBundleId) {