@defisaver/automation-sdk 3.3.12-strategies-refactor-1-dev → 3.3.12-strategies-refactor-3-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.
@@ -92,7 +92,7 @@ function parseMakerTrailingStop(position, parseData) {
92
92
  }
93
93
  function parseMakerLeverageManagement(position, parseData) {
94
94
  const _position = (0, lodash_1.cloneDeep)(position);
95
- const { subStruct, subId } = parseData.subscriptionEventData;
95
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
96
96
  const { isEnabled } = parseData.strategiesSubsData;
97
97
  const triggerData = triggerService.makerRatioTrigger.decode(subStruct.triggerData);
98
98
  const subData = subDataService.makerLeverageManagementSubData.decode(subStruct.subData);
@@ -104,9 +104,10 @@ function parseMakerLeverageManagement(position, parseData) {
104
104
  _position.specific = {
105
105
  triggerRepayRatio: triggerData.ratio,
106
106
  targetRepayRatio: subData.targetRatio,
107
- repayEnabled: true,
107
+ repayEnabled: isEnabled,
108
108
  subId1: Number(subId),
109
109
  mergeWithId: enums_1.Strategies.Identifiers.Boost,
110
+ subHashRepay: subHash,
110
111
  };
111
112
  }
112
113
  else {
@@ -116,6 +117,7 @@ function parseMakerLeverageManagement(position, parseData) {
116
117
  boostEnabled: isEnabled,
117
118
  subId2: Number(subId),
118
119
  mergeId: enums_1.Strategies.Identifiers.Boost,
120
+ subHashBoost: subHash,
119
121
  };
120
122
  }
121
123
  _position.strategy.strategyId = enums_1.Strategies.IdOverrides.LeverageManagement;
@@ -155,7 +157,7 @@ function parseLiquityTrailingStop(position, parseData) {
155
157
  }
156
158
  function parseAaveV2LeverageManagement(position, parseData) {
157
159
  const _position = (0, lodash_1.cloneDeep)(position);
158
- const { subStruct, subId } = parseData.subscriptionEventData;
160
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
159
161
  const { isEnabled } = parseData.strategiesSubsData;
160
162
  const triggerData = triggerService.aaveV2RatioTrigger.decode(subStruct.triggerData);
161
163
  const subData = subDataService.aaveV2LeverageManagementSubData.decode(subStruct.subData);
@@ -167,9 +169,10 @@ function parseAaveV2LeverageManagement(position, parseData) {
167
169
  _position.specific = {
168
170
  triggerRepayRatio: triggerData.ratio,
169
171
  targetRepayRatio: subData.targetRatio,
170
- repayEnabled: true,
172
+ repayEnabled: isEnabled,
171
173
  subId1: Number(subId),
172
174
  mergeWithId: enums_1.Strategies.Identifiers.Boost,
175
+ subHashRepay: subHash,
173
176
  };
174
177
  }
175
178
  else {
@@ -179,6 +182,7 @@ function parseAaveV2LeverageManagement(position, parseData) {
179
182
  boostEnabled: isEnabled,
180
183
  subId2: Number(subId),
181
184
  mergeId: enums_1.Strategies.Identifiers.Boost,
185
+ subHashBoost: subHash,
182
186
  };
183
187
  }
184
188
  _position.strategy.strategyId = enums_1.Strategies.IdOverrides.LeverageManagement;
@@ -406,7 +410,7 @@ function parseAaveV4CollateralSwitch(position, parseData) {
406
410
  }
407
411
  function parseMorphoAaveV2LeverageManagement(position, parseData) {
408
412
  const _position = (0, lodash_1.cloneDeep)(position);
409
- const { subStruct, subId } = parseData.subscriptionEventData;
413
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
410
414
  const { isEnabled } = parseData.strategiesSubsData;
411
415
  const triggerData = triggerService.morphoAaveV2RatioTrigger.decode(subStruct.triggerData);
412
416
  const subData = subDataService.morphoAaveV2LeverageManagementSubData.decode(subStruct.subData);
@@ -418,9 +422,10 @@ function parseMorphoAaveV2LeverageManagement(position, parseData) {
418
422
  _position.specific = {
419
423
  triggerRepayRatio: triggerData.ratio,
420
424
  targetRepayRatio: subData.targetRatio,
421
- repayEnabled: true,
425
+ repayEnabled: isEnabled,
422
426
  subId1: Number(subId),
423
427
  mergeWithId: enums_1.Strategies.Identifiers.Boost,
428
+ subHashRepay: subHash,
424
429
  };
425
430
  }
426
431
  else {
@@ -430,6 +435,7 @@ function parseMorphoAaveV2LeverageManagement(position, parseData) {
430
435
  boostEnabled: isEnabled,
431
436
  subId2: Number(subId),
432
437
  mergeId: enums_1.Strategies.Identifiers.Boost,
438
+ subHashBoost: subHash,
433
439
  };
434
440
  }
435
441
  _position.strategy.strategyId = enums_1.Strategies.IdOverrides.LeverageManagement;
@@ -462,7 +468,7 @@ function parseAaveV3CloseOnPriceWithMaximumGasPrice(position, parseData) {
462
468
  }
463
469
  function parseCompoundV2LeverageManagement(position, parseData) {
464
470
  const _position = (0, lodash_1.cloneDeep)(position);
465
- const { subStruct, subId } = parseData.subscriptionEventData;
471
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
466
472
  const { isEnabled } = parseData.strategiesSubsData;
467
473
  const triggerData = triggerService.compoundV2RatioTrigger.decode(subStruct.triggerData);
468
474
  const subData = subDataService.compoundV2LeverageManagementSubData.decode(subStruct.subData);
@@ -475,9 +481,10 @@ function parseCompoundV2LeverageManagement(position, parseData) {
475
481
  _position.specific = {
476
482
  triggerRepayRatio: triggerData.ratio,
477
483
  targetRepayRatio: subData.targetRatio,
478
- repayEnabled: true,
484
+ repayEnabled: isEnabled,
479
485
  subId1: Number(subId),
480
486
  mergeWithId: enums_1.Strategies.Identifiers.Boost,
487
+ subHashRepay: subHash,
481
488
  };
482
489
  }
483
490
  else {
@@ -487,6 +494,7 @@ function parseCompoundV2LeverageManagement(position, parseData) {
487
494
  boostEnabled: isEnabled,
488
495
  subId2: Number(subId),
489
496
  mergeId: enums_1.Strategies.Identifiers.Boost,
497
+ subHashBoost: subHash,
490
498
  };
491
499
  }
492
500
  const isEOA = _position.strategy.strategyId.includes('eoa');
@@ -495,7 +503,7 @@ function parseCompoundV2LeverageManagement(position, parseData) {
495
503
  }
496
504
  function parseCompoundV3LeverageManagement(position, parseData) {
497
505
  const _position = (0, lodash_1.cloneDeep)(position);
498
- const { subStruct, subId } = parseData.subscriptionEventData;
506
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
499
507
  const { isEnabled } = parseData.strategiesSubsData;
500
508
  const subDataDecoder = subDataService.compoundV3LeverageManagementSubDataWithoutSubProxy;
501
509
  const triggerData = triggerService.compoundV3RatioTrigger.decode(subStruct.triggerData);
@@ -509,9 +517,10 @@ function parseCompoundV3LeverageManagement(position, parseData) {
509
517
  _position.specific = {
510
518
  triggerRepayRatio: triggerData.ratio,
511
519
  targetRepayRatio: subData.targetRatio,
512
- repayEnabled: true,
520
+ repayEnabled: isEnabled,
513
521
  subId1: Number(subId),
514
522
  mergeWithId: isEOA ? enums_1.Strategies.Identifiers.EoaBoost : enums_1.Strategies.Identifiers.Boost,
523
+ subHashRepay: subHash,
515
524
  };
516
525
  }
517
526
  else {
@@ -521,6 +530,7 @@ function parseCompoundV3LeverageManagement(position, parseData) {
521
530
  boostEnabled: isEnabled,
522
531
  subId2: Number(subId),
523
532
  mergeId: isEOA ? enums_1.Strategies.Identifiers.EoaBoost : enums_1.Strategies.Identifiers.Boost,
533
+ subHashBoost: subHash,
524
534
  };
525
535
  }
526
536
  _position.strategy.strategyId = isEOA ? enums_1.Strategies.IdOverrides.EoaLeverageManagement : enums_1.Strategies.IdOverrides.LeverageManagement;
@@ -608,7 +618,7 @@ function parseExchangeLimitOrder(position, parseData, chainId) {
608
618
  }
609
619
  function parseLiquityLeverageManagement(position, parseData) {
610
620
  const _position = (0, lodash_1.cloneDeep)(position);
611
- const { subStruct, subId } = parseData.subscriptionEventData;
621
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
612
622
  const { isEnabled } = parseData.strategiesSubsData;
613
623
  const triggerData = triggerService.liquityRatioTrigger.decode(subStruct.triggerData);
614
624
  const subData = subDataService.liquityLeverageManagementSubData.decode(subStruct.subData);
@@ -620,9 +630,10 @@ function parseLiquityLeverageManagement(position, parseData) {
620
630
  _position.specific = {
621
631
  triggerRepayRatio: triggerData.ratio,
622
632
  targetRepayRatio: subData.targetRatio,
623
- repayEnabled: true,
633
+ repayEnabled: isEnabled,
624
634
  subId1: Number(subId),
625
635
  mergeWithId: enums_1.Strategies.Identifiers.Boost,
636
+ subHashRepay: subHash,
626
637
  };
627
638
  }
628
639
  else {
@@ -632,6 +643,7 @@ function parseLiquityLeverageManagement(position, parseData) {
632
643
  boostEnabled: isEnabled,
633
644
  subId2: Number(subId),
634
645
  mergeId: enums_1.Strategies.Identifiers.Boost,
646
+ subHashBoost: subHash,
635
647
  };
636
648
  }
637
649
  _position.strategy.strategyId = enums_1.Strategies.IdOverrides.LeverageManagement;
@@ -672,7 +684,7 @@ function parseLiquityV2LeverageManagement(position, parseData) {
672
684
  }
673
685
  function parseSparkLeverageManagement(position, parseData) {
674
686
  const _position = (0, lodash_1.cloneDeep)(position);
675
- const { subStruct, subId } = parseData.subscriptionEventData;
687
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
676
688
  const { isEnabled } = parseData.strategiesSubsData;
677
689
  const triggerData = triggerService.sparkRatioTrigger.decode(subStruct.triggerData);
678
690
  const subData = subDataService.sparkLeverageManagementSubData.decode(subStruct.subData);
@@ -684,9 +696,10 @@ function parseSparkLeverageManagement(position, parseData) {
684
696
  _position.specific = {
685
697
  triggerRepayRatio: triggerData.ratio,
686
698
  targetRepayRatio: subData.targetRatio,
687
- repayEnabled: true,
699
+ repayEnabled: isEnabled,
688
700
  subId1: Number(subId),
689
701
  mergeWithId: enums_1.Strategies.Identifiers.Boost,
702
+ subHashRepay: subHash,
690
703
  };
691
704
  }
692
705
  else {
@@ -696,6 +709,7 @@ function parseSparkLeverageManagement(position, parseData) {
696
709
  boostEnabled: isEnabled,
697
710
  subId2: Number(subId),
698
711
  mergeId: enums_1.Strategies.Identifiers.Boost,
712
+ subHashBoost: subHash,
699
713
  };
700
714
  }
701
715
  _position.strategy.strategyId = enums_1.Strategies.IdOverrides.LeverageManagement;
@@ -78,9 +78,6 @@ export declare const compoundV3Encode: {
78
78
  leverageManagementOnPrice(strategyOrBundleId: number, market: EthereumAddress, collToken: EthereumAddress, baseToken: EthereumAddress, targetRatio: number, price: number, priceState: RatioState, ratioState: RatioState, user: EthereumAddress): (number | boolean | string[])[];
79
79
  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[])[];
80
80
  };
81
- export declare const compoundV3L2Encode: {
82
- leverageManagement(market: EthereumAddress, baseToken: EthereumAddress, triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean, isEOA?: boolean): string;
83
- };
84
81
  export declare const morphoAaveV2Encode: {
85
82
  leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
86
83
  };
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.aaveV4Encode = exports.fluidEncode = exports.liquityV2Encode = exports.morphoBlueEncode = exports.crvUSDEncode = exports.sparkEncode = exports.exchangeEncode = exports.morphoAaveV2Encode = exports.compoundV3L2Encode = exports.compoundV3Encode = exports.compoundV2Encode = exports.aaveV3Encode = exports.aaveV2Encode = exports.chickenBondsEncode = exports.liquityEncode = exports.makerEncode = void 0;
29
+ exports.aaveV4Encode = exports.fluidEncode = exports.liquityV2Encode = exports.morphoBlueEncode = exports.crvUSDEncode = exports.sparkEncode = exports.exchangeEncode = exports.morphoAaveV2Encode = exports.compoundV3Encode = exports.compoundV2Encode = exports.aaveV3Encode = exports.aaveV2Encode = exports.chickenBondsEncode = exports.liquityEncode = exports.makerEncode = void 0;
30
30
  const decimal_js_1 = __importDefault(require("decimal.js"));
31
31
  const tokens_1 = require("@defisaver/tokens");
32
32
  const enums_1 = require("../types/enums");
@@ -158,7 +158,7 @@ exports.aaveV2Encode = {
158
158
  },
159
159
  leverageManagementWithoutSubProxy(strategyOrBundleId, market, user, ratioState, targetRatio, triggerRatio) {
160
160
  const isBundle = true;
161
- const subData = subDataService.aaveV2LeverageManagementSubDataWithoutSubProxy.encode(targetRatio, ratioState);
161
+ const subData = subDataService.aaveV2LeverageManagementSubDataWithoutSubProxy.encode(market, targetRatio, ratioState);
162
162
  const triggerData = triggerService.aaveV2RatioTrigger.encode(user, market, triggerRatio, ratioState);
163
163
  return [strategyOrBundleId, isBundle, triggerData, subData];
164
164
  },
@@ -260,11 +260,6 @@ exports.compoundV3Encode = {
260
260
  return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
261
261
  },
262
262
  };
263
- exports.compoundV3L2Encode = {
264
- leverageManagement(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA = false) {
265
- return subDataService.compoundV3L2LeverageManagementSubData.encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA);
266
- },
267
- };
268
263
  exports.morphoAaveV2Encode = {
269
264
  leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
270
265
  return subDataService.morphoAaveV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
@@ -1450,37 +1450,6 @@ describe('Feature: strategySubService.ts', () => {
1450
1450
  });
1451
1451
  });
1452
1452
  });
1453
- describe('When testing strategySubService.compoundV3L2Encode', () => {
1454
- describe('leverageManagement()', () => {
1455
- const examples = [
1456
- [
1457
- '0x0313D212133AFab8F2b829B1066c7e43caD94e2c0213D212133AfaB8F2b829B1066C7E43cAD94E2c000000000000000016345785d8a0000000000000000000001e87f85809dc0000000000000000000018fae27693b4000000000000000000001a5e27eef13e00000100',
1458
- [
1459
- web3Utils.toChecksumAddress('0x0313d212133AFaB8F2B829B1066c7E43cAd94E2c'),
1460
- web3Utils.toChecksumAddress('0x0213d212133AFaB8F2B829B1066c7E43cAd94E2c'),
1461
- 160, 220, 180, 190,
1462
- true,
1463
- false,
1464
- ],
1465
- ],
1466
- [
1467
- '0x0313D212133AFab8F2b829B1066c7e43caD94e2c0413d212133afAb8F2B829b1066C7e43cAd94e2c000000000000000016345785d8a0000000000000000000001e87f85809dc0000000000000000000018fae27693b4000000000000000000000f43fc2c04ee00000000',
1468
- [
1469
- web3Utils.toChecksumAddress('0x0313d212133AFaB8F2B829B1066c7E43cAd94E2c'),
1470
- web3Utils.toChecksumAddress('0x0413d212133AFaB8F2B829B1066c7E43cAd94E2c'),
1471
- 160, 220, 180, 110,
1472
- false,
1473
- false,
1474
- ],
1475
- ],
1476
- ];
1477
- examples.forEach(([expected, actual]) => {
1478
- it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
1479
- (0, chai_1.expect)(strategySubService_1.compoundV3L2Encode.leverageManagement(...actual)).to.eql(expected);
1480
- });
1481
- });
1482
- });
1483
- });
1484
1453
  describe('When testing strategySubService.sparkEncode', () => {
1485
1454
  describe('leverageManagement()', () => {
1486
1455
  const examples = [
@@ -185,8 +185,9 @@ export declare const aaveV2LeverageManagementSubData: {
185
185
  };
186
186
  };
187
187
  export declare const aaveV2LeverageManagementSubDataWithoutSubProxy: {
188
- encode(targetRatio: number, ratioState: RatioState): string[];
188
+ encode(market: EthereumAddress, targetRatio: number, ratioState: RatioState): string[];
189
189
  decode(subData: string[]): {
190
+ market: EthereumAddress;
190
191
  targetRatio: number;
191
192
  ratioState: RatioState;
192
193
  };
@@ -364,12 +365,6 @@ export declare const compoundV3LeverageManagementSubDataWithoutSubProxy: {
364
365
  ratioState: RatioState;
365
366
  };
366
367
  };
367
- export declare const compoundV3L2LeverageManagementSubData: {
368
- encode(market: EthereumAddress, baseToken: EthereumAddress, triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean, isEOA: boolean): string;
369
- decode(subData: string[]): {
370
- targetRatio: number;
371
- };
372
- };
373
368
  export declare const compoundV3LeverageManagementOnPriceSubData: {
374
369
  encode(market: EthereumAddress, collToken: EthereumAddress, baseToken: EthereumAddress, targetRatio: number, ratioState: RatioState, user: EthereumAddress): string[];
375
370
  decode(subData: string[]): {
@@ -3,8 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.morphoBlueCloseOnPriceSubData = exports.morphoBlueLeverageManagementOnPriceSubData = exports.morphoBlueLeverageManagementSubData = exports.crvUSDPaybackSubData = exports.crvUSDLeverageManagementSubData = exports.sparkLeverageManagementOnPriceSubData = exports.sparkCloseGenericSubData = exports.sparkLeverageManagementSubDataWithoutSubProxy = exports.sparkLeverageManagementSubData = exports.exchangeLimitOrderSubDataWithoutSubProxy = exports.exchangeLimitOrderSubData = exports.exchangeDcaSubData = exports.compoundV3CloseSubData = exports.compoundV3LeverageManagementOnPriceSubData = exports.compoundV3L2LeverageManagementSubData = exports.compoundV3LeverageManagementSubDataWithoutSubProxy = exports.compoundV3LeverageManagementSubData = exports.compoundV2LeverageManagementSubDataWithoutSubProxy = exports.compoundV2LeverageManagementSubData = exports.aaveV4CollateralSwitchSubData = exports.aaveV4CloseSubData = exports.aaveV4LeverageManagementOnPriceSubData = exports.aaveV4LeverageManagementSubData = exports.aaveV3LeverageManagementOnPriceSubData = exports.aaveV3QuotePriceSubData = exports.aaveV3CollateralSwitchSubData = exports.aaveV3CloseGenericSubData = exports.aaveV3LeverageManagementOnPriceGeneric = exports.aaveV3LeverageManagementSubDataWithoutSubProxy = exports.aaveV3LeverageManagementSubData = exports.aaveV2LeverageManagementSubDataWithoutSubProxy = exports.aaveV2LeverageManagementSubData = exports.liquityV2PaybackSubData = exports.liquityV2LeverageManagementOnPriceSubData = exports.liquityV2CloseSubData = exports.liquityV2LeverageManagementSubData = exports.liquityDebtInFrontRepaySubData = exports.liquityDsrSupplySubData = exports.liquityDsrPaybackSubData = exports.liquityCloseSubData = exports.liquityLeverageManagementSubDataWithoutSubProxy = exports.liquityLeverageManagementSubData = exports.liquityRepayFromSavingsSubData = exports.makerLeverageManagementWithoutSubProxy = exports.makerLeverageManagementSubData = exports.makerCloseSubData = exports.makerRepayFromSavingsSubData = exports.liquityPaybackUsingChickenBondSubData = exports.cBondsRebondSubData = exports.morphoAaveV2LeverageManagementSubData = void 0;
7
- exports.fluidLeverageManagementSubData = void 0;
6
+ exports.fluidLeverageManagementSubData = exports.morphoBlueCloseOnPriceSubData = exports.morphoBlueLeverageManagementOnPriceSubData = exports.morphoBlueLeverageManagementSubData = exports.crvUSDPaybackSubData = exports.crvUSDLeverageManagementSubData = exports.sparkLeverageManagementOnPriceSubData = exports.sparkCloseGenericSubData = exports.sparkLeverageManagementSubDataWithoutSubProxy = exports.sparkLeverageManagementSubData = exports.exchangeLimitOrderSubDataWithoutSubProxy = exports.exchangeLimitOrderSubData = exports.exchangeDcaSubData = exports.compoundV3CloseSubData = exports.compoundV3LeverageManagementOnPriceSubData = exports.compoundV3LeverageManagementSubDataWithoutSubProxy = exports.compoundV3LeverageManagementSubData = exports.compoundV2LeverageManagementSubDataWithoutSubProxy = exports.compoundV2LeverageManagementSubData = exports.aaveV4CollateralSwitchSubData = exports.aaveV4CloseSubData = exports.aaveV4LeverageManagementOnPriceSubData = exports.aaveV4LeverageManagementSubData = exports.aaveV3LeverageManagementOnPriceSubData = exports.aaveV3QuotePriceSubData = exports.aaveV3CollateralSwitchSubData = exports.aaveV3CloseGenericSubData = exports.aaveV3LeverageManagementOnPriceGeneric = exports.aaveV3LeverageManagementSubDataWithoutSubProxy = exports.aaveV3LeverageManagementSubData = exports.aaveV2LeverageManagementSubDataWithoutSubProxy = exports.aaveV2LeverageManagementSubData = exports.liquityV2PaybackSubData = exports.liquityV2LeverageManagementOnPriceSubData = exports.liquityV2CloseSubData = exports.liquityV2LeverageManagementSubData = exports.liquityDebtInFrontRepaySubData = exports.liquityDsrSupplySubData = exports.liquityDsrPaybackSubData = exports.liquityCloseSubData = exports.liquityLeverageManagementSubDataWithoutSubProxy = exports.liquityLeverageManagementSubData = exports.liquityRepayFromSavingsSubData = exports.makerLeverageManagementWithoutSubProxy = exports.makerLeverageManagementSubData = exports.makerCloseSubData = exports.makerRepayFromSavingsSubData = exports.liquityPaybackUsingChickenBondSubData = exports.cBondsRebondSubData = exports.morphoAaveV2LeverageManagementSubData = void 0;
8
7
  const decimal_js_1 = __importDefault(require("decimal.js"));
9
8
  const web3_eth_abi_1 = __importDefault(require("web3-eth-abi"));
10
9
  const web3_utils_1 = require("web3-utils");
@@ -170,13 +169,18 @@ exports.liquityLeverageManagementSubData = {
170
169
  };
171
170
  exports.liquityLeverageManagementSubDataWithoutSubProxy = {
172
171
  encode(targetRatio, ratioState) {
173
- const encodedTargetRatio = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
174
172
  const encodedRatioState = web3_eth_abi_1.default.encodeParameter('uint8', ratioState);
175
- return [encodedTargetRatio, encodedRatioState];
173
+ const encodedTargetRatio = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
174
+ const isRepay = ratioState === enums_1.RatioState.UNDER;
175
+ const collActionType = isRepay ? enums_1.CollActionType.WITHDRAW : enums_1.CollActionType.SUPPLY;
176
+ const debtActionType = isRepay ? enums_1.DebtActionType.PAYBACK : enums_1.DebtActionType.BORROW;
177
+ const collActionTypeEncoded = web3_eth_abi_1.default.encodeParameter('uint8', collActionType);
178
+ const debtActionTypeEncoded = web3_eth_abi_1.default.encodeParameter('uint8', debtActionType);
179
+ return [encodedRatioState, encodedTargetRatio, collActionTypeEncoded, debtActionTypeEncoded];
176
180
  },
177
181
  decode(subData) {
178
- const targetRatio = (0, utils_1.weiToRatioPercentage)(web3_eth_abi_1.default.decodeParameter('uint256', subData[0]));
179
- const ratioState = web3_eth_abi_1.default.decodeParameter('uint8', subData[1]);
182
+ const ratioState = web3_eth_abi_1.default.decodeParameter('uint8', subData[0]);
183
+ const targetRatio = (0, utils_1.weiToRatioPercentage)(web3_eth_abi_1.default.decodeParameter('uint256', subData[1]));
180
184
  return { targetRatio, ratioState };
181
185
  },
182
186
  };
@@ -412,15 +416,22 @@ exports.aaveV2LeverageManagementSubData = {
412
416
  },
413
417
  };
414
418
  exports.aaveV2LeverageManagementSubDataWithoutSubProxy = {
415
- encode(targetRatio, ratioState) {
419
+ encode(market, targetRatio, ratioState) {
420
+ const encodedMarket = web3_eth_abi_1.default.encodeParameter('address', market);
416
421
  const encodedTargetRatio = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
417
422
  const encodedRatioState = web3_eth_abi_1.default.encodeParameter('uint8', ratioState);
418
- return [encodedTargetRatio, encodedRatioState];
423
+ const isBoost = ratioState === enums_1.RatioState.OVER;
424
+ if (isBoost) {
425
+ const enableAsCollEncoded = web3_eth_abi_1.default.encodeParameter('uint256', 1);
426
+ return [encodedMarket, encodedTargetRatio, encodedRatioState, enableAsCollEncoded];
427
+ }
428
+ return [encodedMarket, encodedTargetRatio, encodedRatioState];
419
429
  },
420
430
  decode(subData) {
421
- const targetRatio = (0, utils_1.weiToRatioPercentage)(web3_eth_abi_1.default.decodeParameter('uint256', subData[0]));
422
- const ratioState = web3_eth_abi_1.default.decodeParameter('uint8', subData[1]);
423
- return { targetRatio, ratioState };
431
+ const market = web3_eth_abi_1.default.decodeParameter('address', subData[0]);
432
+ const targetRatio = (0, utils_1.weiToRatioPercentage)(web3_eth_abi_1.default.decodeParameter('uint256', subData[1]));
433
+ const ratioState = web3_eth_abi_1.default.decodeParameter('uint8', subData[2]);
434
+ return { market, targetRatio, ratioState };
424
435
  },
425
436
  };
426
437
  /**
@@ -781,6 +792,11 @@ exports.compoundV2LeverageManagementSubDataWithoutSubProxy = {
781
792
  encode(targetRatio, ratioState) {
782
793
  const encodedTargetRatio = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
783
794
  const encodedRatioState = web3_eth_abi_1.default.encodeParameter('uint8', ratioState);
795
+ const isBoost = ratioState === enums_1.RatioState.OVER;
796
+ if (isBoost) {
797
+ const enableAsCollEncoded = web3_eth_abi_1.default.encodeParameter('uint256', 1);
798
+ return [encodedTargetRatio, encodedRatioState, enableAsCollEncoded];
799
+ }
784
800
  return [encodedTargetRatio, encodedRatioState];
785
801
  },
786
802
  decode(subData) {
@@ -820,43 +836,20 @@ exports.compoundV3LeverageManagementSubDataWithoutSubProxy = {
820
836
  encode(market, baseToken, targetRatio, ratioState) {
821
837
  const encodedMarket = web3_eth_abi_1.default.encodeParameter('address', market);
822
838
  const encodedBaseToken = web3_eth_abi_1.default.encodeParameter('address', baseToken);
823
- const encodedTargetRatio = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
824
839
  const encodedRatioState = web3_eth_abi_1.default.encodeParameter('uint8', ratioState);
825
- return [encodedMarket, encodedBaseToken, encodedTargetRatio, encodedRatioState];
840
+ const encodedTargetRatio = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
841
+ return [encodedMarket, encodedBaseToken, encodedRatioState, encodedTargetRatio];
826
842
  },
827
843
  decode(subData) {
828
844
  const market = web3_eth_abi_1.default.decodeParameter('address', subData[0]);
829
845
  const baseToken = web3_eth_abi_1.default.decodeParameter('address', subData[1]);
830
- const targetRatio = (0, utils_1.weiToRatioPercentage)(web3_eth_abi_1.default.decodeParameter('uint256', subData[2]));
831
- const ratioState = web3_eth_abi_1.default.decodeParameter('uint8', subData[3]);
846
+ const ratioState = web3_eth_abi_1.default.decodeParameter('uint8', subData[2]);
847
+ const targetRatio = (0, utils_1.weiToRatioPercentage)(web3_eth_abi_1.default.decodeParameter('uint256', subData[3]));
832
848
  return {
833
849
  market, baseToken, targetRatio, ratioState,
834
850
  };
835
851
  },
836
852
  };
837
- exports.compoundV3L2LeverageManagementSubData = {
838
- encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA) {
839
- let subInput = '0x';
840
- subInput = subInput.concat(market.slice(2));
841
- subInput = subInput.concat(baseToken.slice(2));
842
- subInput = subInput.concat(new decimal_js_1.default(triggerRepayRatio).mul(1e16).toHex().slice(2)
843
- .padStart(32, '0'));
844
- subInput = subInput.concat(new decimal_js_1.default(triggerBoostRatio).mul(1e16).toHex().slice(2)
845
- .padStart(32, '0'));
846
- subInput = subInput.concat(new decimal_js_1.default(targetBoostRatio).mul(1e16).toHex().slice(2)
847
- .padStart(32, '0'));
848
- subInput = subInput.concat(new decimal_js_1.default(targetRepayRatio).mul(1e16).toHex().slice(2)
849
- .padStart(32, '0'));
850
- subInput = subInput.concat(boostEnabled ? '01' : '00');
851
- subInput = subInput.concat(isEOA ? '01' : '00');
852
- return subInput;
853
- },
854
- decode(subData) {
855
- const ratioWei = web3_eth_abi_1.default.decodeParameter('uint256', subData[3]);
856
- const targetRatio = (0, utils_1.weiToRatioPercentage)(ratioWei);
857
- return { targetRatio };
858
- },
859
- };
860
853
  exports.compoundV3LeverageManagementOnPriceSubData = {
861
854
  encode(market, collToken, baseToken, targetRatio, ratioState, user) {
862
855
  const marketEncoded = web3_eth_abi_1.default.encodeParameter('address', market);
@@ -1216,48 +1216,6 @@ describe('Feature: subDataService.ts', () => {
1216
1216
  });
1217
1217
  });
1218
1218
  });
1219
- describe('When testing subDataService.compoundV3L2LeverageManagementSubData', () => {
1220
- describe('encode()', () => {
1221
- const examples = [
1222
- [
1223
- '0x0313D212133AFab8F2b829B1066c7e43caD94e2c0213D212133AfaB8F2b829B1066C7E43cAD94E2c000000000000000016345785d8a0000000000000000000001e87f85809dc0000000000000000000018fae27693b4000000000000000000001a5e27eef13e00000100',
1224
- [web3Utils.toChecksumAddress('0x0313d212133AFaB8F2B829B1066c7E43cAd94E2c'), web3Utils.toChecksumAddress('0x0213d212133AFaB8F2B829B1066c7E43cAd94E2c'), 160, 220, 180, 190, true, false]
1225
- ],
1226
- [
1227
- '0x0313D212133AFab8F2b829B1066c7e43caD94e2c0413d212133afAb8F2B829b1066C7e43cAd94e2c000000000000000016345785d8a0000000000000000000001e87f85809dc0000000000000000000018fae27693b4000000000000000000000f43fc2c04ee00000000',
1228
- [web3Utils.toChecksumAddress('0x0313d212133AFaB8F2B829B1066c7E43cAd94E2c'), web3Utils.toChecksumAddress('0x0413d212133AFaB8F2B829B1066c7E43cAd94E2c'), 160, 220, 180, 110, false, false]
1229
- ],
1230
- ];
1231
- examples.forEach(([expected, actual]) => {
1232
- it(`Given ${actual} should return expected value: ${expected}`, () => {
1233
- (0, chai_1.expect)(subDataService.compoundV3L2LeverageManagementSubData.encode(...actual)).to.eql(expected);
1234
- });
1235
- });
1236
- });
1237
- describe('decode()', () => {
1238
- const examples = [
1239
- [
1240
- { targetRatio: 200 },
1241
- [
1242
- '0x0000000000000000000000000313d212133AFaB8F2B829B1066c7E43cAd94E2c', '0x0000000000000000000000000213d212133AFaB8F2B829B1066c7E43cAd94E2c',
1243
- '0x0000000000000000000000000000000000000000000000000000000000000001', '0x0000000000000000000000000000000000000000000000001bc16d674ec80000',
1244
- ],
1245
- ],
1246
- [
1247
- { targetRatio: 123 },
1248
- [
1249
- '0x0000000000000000000000000313d212133AFaB8F2B829B1066c7E43cAd94E2c', '0x0000000000000000000000000413d212133AFaB8F2B829B1066c7E43cAd94E2c',
1250
- '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000001111d67bb1bb0000',
1251
- ],
1252
- ],
1253
- ];
1254
- examples.forEach(([expected, actual]) => {
1255
- it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
1256
- (0, chai_1.expect)(subDataService.compoundV3L2LeverageManagementSubData.decode(actual)).to.eql(expected);
1257
- });
1258
- });
1259
- });
1260
- });
1261
1219
  describe('When testing subDataService.morphoBlueLeverageManagementSubData', () => {
1262
1220
  describe('encode()', () => {
1263
1221
  const examples = [