@defisaver/automation-sdk 3.2.4-dev-1 → 3.2.5

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 (39) hide show
  1. package/cjs/constants/index.js +0 -90
  2. package/cjs/services/strategiesService.js +1 -48
  3. package/cjs/services/strategySubService.d.ts +1 -2
  4. package/cjs/services/strategySubService.js +6 -13
  5. package/cjs/services/strategySubService.test.js +0 -108
  6. package/cjs/services/subDataService.d.ts +7 -18
  7. package/cjs/services/subDataService.js +15 -48
  8. package/cjs/services/subDataService.test.js +48 -124
  9. package/cjs/services/triggerService.d.ts +0 -18
  10. package/cjs/services/triggerService.js +1 -36
  11. package/cjs/services/triggerService.test.js +0 -92
  12. package/cjs/types/enums.d.ts +5 -28
  13. package/cjs/types/enums.js +0 -23
  14. package/cjs/types/index.d.ts +1 -17
  15. package/esm/constants/index.js +0 -90
  16. package/esm/services/strategiesService.js +1 -48
  17. package/esm/services/strategySubService.d.ts +1 -2
  18. package/esm/services/strategySubService.js +6 -13
  19. package/esm/services/strategySubService.test.js +1 -109
  20. package/esm/services/subDataService.d.ts +7 -18
  21. package/esm/services/subDataService.js +14 -47
  22. package/esm/services/subDataService.test.js +48 -124
  23. package/esm/services/triggerService.d.ts +0 -18
  24. package/esm/services/triggerService.js +0 -35
  25. package/esm/services/triggerService.test.js +1 -93
  26. package/esm/types/enums.d.ts +5 -28
  27. package/esm/types/enums.js +0 -23
  28. package/esm/types/index.d.ts +1 -17
  29. package/package.json +2 -2
  30. package/src/constants/index.ts +1 -90
  31. package/src/services/strategiesService.ts +1 -62
  32. package/src/services/strategySubService.test.ts +1 -115
  33. package/src/services/strategySubService.ts +14 -33
  34. package/src/services/subDataService.test.ts +73 -128
  35. package/src/services/subDataService.ts +20 -73
  36. package/src/services/triggerService.test.ts +0 -102
  37. package/src/services/triggerService.ts +0 -55
  38. package/src/types/enums.ts +0 -23
  39. package/src/types/index.ts +1 -22
@@ -398,36 +398,6 @@ exports.MAINNET_BUNDLES_INFO = {
398
398
  strategyId: enums_1.Strategies.Identifiers.Boost,
399
399
  protocol: exports.PROTOCOLS.FluidT1,
400
400
  },
401
- [enums_1.Bundles.MainnetIds.COMP_V3_SW_REPAY_ON_PRICE]: {
402
- strategyOrBundleId: enums_1.Bundles.MainnetIds.COMP_V3_SW_REPAY_ON_PRICE,
403
- strategyId: enums_1.Strategies.Identifiers.RepayOnPrice,
404
- protocol: exports.PROTOCOLS.CompoundV3,
405
- },
406
- [enums_1.Bundles.MainnetIds.COMP_V3_SW_BOOST_ON_PRICE]: {
407
- strategyOrBundleId: enums_1.Bundles.MainnetIds.COMP_V3_SW_BOOST_ON_PRICE,
408
- strategyId: enums_1.Strategies.Identifiers.BoostOnPrice,
409
- protocol: exports.PROTOCOLS.CompoundV3,
410
- },
411
- [enums_1.Bundles.MainnetIds.COMP_V3_SW_CLOSE]: {
412
- strategyOrBundleId: enums_1.Bundles.MainnetIds.COMP_V3_SW_CLOSE,
413
- strategyId: enums_1.Strategies.Identifiers.CloseOnPrice,
414
- protocol: exports.PROTOCOLS.CompoundV3,
415
- },
416
- [enums_1.Bundles.MainnetIds.COMP_V3_EOA_REPAY_ON_PRICE]: {
417
- strategyOrBundleId: enums_1.Bundles.MainnetIds.COMP_V3_EOA_REPAY_ON_PRICE,
418
- strategyId: enums_1.Strategies.Identifiers.EoaRepayOnPrice,
419
- protocol: exports.PROTOCOLS.CompoundV3,
420
- },
421
- [enums_1.Bundles.MainnetIds.COMP_V3_EOA_BOOST_ON_PRICE]: {
422
- strategyOrBundleId: enums_1.Bundles.MainnetIds.COMP_V3_EOA_BOOST_ON_PRICE,
423
- strategyId: enums_1.Strategies.Identifiers.EoaBoostOnPrice,
424
- protocol: exports.PROTOCOLS.CompoundV3,
425
- },
426
- [enums_1.Bundles.MainnetIds.COMP_V3_EOA_CLOSE]: {
427
- strategyOrBundleId: enums_1.Bundles.MainnetIds.COMP_V3_EOA_CLOSE,
428
- strategyId: enums_1.Strategies.Identifiers.EoaCloseOnPrice,
429
- protocol: exports.PROTOCOLS.CompoundV3,
430
- },
431
401
  };
432
402
  exports.OPTIMISM_BUNDLES_INFO = {
433
403
  [enums_1.Bundles.OptimismIds.AAVE_V3_REPAY]: {
@@ -527,36 +497,6 @@ exports.BASE_BUNDLES_INFO = {
527
497
  strategyId: enums_1.Strategies.Identifiers.Boost,
528
498
  protocol: exports.PROTOCOLS.FluidT1,
529
499
  },
530
- [enums_1.Bundles.BaseIds.COMP_V3_SW_REPAY_ON_PRICE]: {
531
- strategyOrBundleId: enums_1.Bundles.BaseIds.COMP_V3_SW_REPAY_ON_PRICE,
532
- strategyId: enums_1.Strategies.Identifiers.RepayOnPrice,
533
- protocol: exports.PROTOCOLS.CompoundV3,
534
- },
535
- [enums_1.Bundles.BaseIds.COMP_V3_SW_BOOST_ON_PRICE]: {
536
- strategyOrBundleId: enums_1.Bundles.BaseIds.COMP_V3_SW_BOOST_ON_PRICE,
537
- strategyId: enums_1.Strategies.Identifiers.BoostOnPrice,
538
- protocol: exports.PROTOCOLS.CompoundV3,
539
- },
540
- [enums_1.Bundles.BaseIds.COMP_V3_SW_CLOSE]: {
541
- strategyOrBundleId: enums_1.Bundles.BaseIds.COMP_V3_SW_CLOSE,
542
- strategyId: enums_1.Strategies.Identifiers.CloseOnPrice,
543
- protocol: exports.PROTOCOLS.CompoundV3,
544
- },
545
- [enums_1.Bundles.BaseIds.COMP_V3_EOA_REPAY_ON_PRICE]: {
546
- strategyOrBundleId: enums_1.Bundles.BaseIds.COMP_V3_EOA_REPAY_ON_PRICE,
547
- strategyId: enums_1.Strategies.Identifiers.EoaRepayOnPrice,
548
- protocol: exports.PROTOCOLS.CompoundV3,
549
- },
550
- [enums_1.Bundles.BaseIds.COMP_V3_EOA_BOOST_ON_PRICE]: {
551
- strategyOrBundleId: enums_1.Bundles.BaseIds.COMP_V3_EOA_BOOST_ON_PRICE,
552
- strategyId: enums_1.Strategies.Identifiers.EoaBoostOnPrice,
553
- protocol: exports.PROTOCOLS.CompoundV3,
554
- },
555
- [enums_1.Bundles.BaseIds.COMP_V3_EOA_CLOSE]: {
556
- strategyOrBundleId: enums_1.Bundles.BaseIds.COMP_V3_EOA_CLOSE,
557
- strategyId: enums_1.Strategies.Identifiers.EoaCloseOnPrice,
558
- protocol: exports.PROTOCOLS.CompoundV3,
559
- },
560
500
  };
561
501
  exports.ARBITRUM_BUNDLES_INFO = {
562
502
  [enums_1.Bundles.ArbitrumIds.AAVE_V3_REPAY]: {
@@ -609,36 +549,6 @@ exports.ARBITRUM_BUNDLES_INFO = {
609
549
  strategyId: enums_1.Strategies.Identifiers.Boost,
610
550
  protocol: exports.PROTOCOLS.FluidT1,
611
551
  },
612
- [enums_1.Bundles.ArbitrumIds.COMP_V3_SW_REPAY_ON_PRICE]: {
613
- strategyOrBundleId: enums_1.Bundles.ArbitrumIds.COMP_V3_SW_REPAY_ON_PRICE,
614
- strategyId: enums_1.Strategies.Identifiers.RepayOnPrice,
615
- protocol: exports.PROTOCOLS.CompoundV3,
616
- },
617
- [enums_1.Bundles.ArbitrumIds.COMP_V3_SW_BOOST_ON_PRICE]: {
618
- strategyOrBundleId: enums_1.Bundles.ArbitrumIds.COMP_V3_SW_BOOST_ON_PRICE,
619
- strategyId: enums_1.Strategies.Identifiers.BoostOnPrice,
620
- protocol: exports.PROTOCOLS.CompoundV3,
621
- },
622
- [enums_1.Bundles.ArbitrumIds.COMP_V3_SW_CLOSE]: {
623
- strategyOrBundleId: enums_1.Bundles.ArbitrumIds.COMP_V3_SW_CLOSE,
624
- strategyId: enums_1.Strategies.Identifiers.CloseOnPrice,
625
- protocol: exports.PROTOCOLS.CompoundV3,
626
- },
627
- [enums_1.Bundles.ArbitrumIds.COMP_V3_EOA_REPAY_ON_PRICE]: {
628
- strategyOrBundleId: enums_1.Bundles.ArbitrumIds.COMP_V3_EOA_REPAY_ON_PRICE,
629
- strategyId: enums_1.Strategies.Identifiers.EoaRepayOnPrice,
630
- protocol: exports.PROTOCOLS.CompoundV3,
631
- },
632
- [enums_1.Bundles.ArbitrumIds.COMP_V3_EOA_BOOST_ON_PRICE]: {
633
- strategyOrBundleId: enums_1.Bundles.ArbitrumIds.COMP_V3_EOA_BOOST_ON_PRICE,
634
- strategyId: enums_1.Strategies.Identifiers.EoaBoostOnPrice,
635
- protocol: exports.PROTOCOLS.CompoundV3,
636
- },
637
- [enums_1.Bundles.ArbitrumIds.COMP_V3_EOA_CLOSE]: {
638
- strategyOrBundleId: enums_1.Bundles.ArbitrumIds.COMP_V3_EOA_CLOSE,
639
- strategyId: enums_1.Strategies.Identifiers.EoaCloseOnPrice,
640
- protocol: exports.PROTOCOLS.CompoundV3,
641
- },
642
552
  };
643
553
  exports.BUNDLES_INFO = {
644
554
  [enums_1.ChainId.Ethereum]: exports.MAINNET_BUNDLES_INFO,
@@ -363,48 +363,6 @@ function parseCompoundV3LeverageManagement(position, parseData) {
363
363
  _position.strategy.strategyId = isEOA ? enums_1.Strategies.IdOverrides.EoaLeverageManagement : enums_1.Strategies.IdOverrides.LeverageManagement;
364
364
  return _position;
365
365
  }
366
- function parseCompoundV3LeverageManagementOnPrice(position, parseData) {
367
- const _position = (0, lodash_1.cloneDeep)(position);
368
- const { subStruct } = parseData.subscriptionEventData;
369
- const triggerData = triggerService.compoundV3PriceTrigger.decode(subStruct.triggerData);
370
- const subData = subDataService.compoundV3LeverageManagementOnPriceSubData.decode(subStruct.subData);
371
- _position.strategyData.decoded.triggerData = triggerData;
372
- _position.strategyData.decoded.subData = subData;
373
- _position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, triggerData.market, Math.random());
374
- _position.specific = {
375
- market: subData.market,
376
- collToken: subData.collToken,
377
- baseToken: subData.baseToken,
378
- ratio: subData.targetRatio,
379
- price: triggerData.price,
380
- priceState: triggerData.priceState,
381
- };
382
- const isEOA = _position.strategy.strategyId.includes('eoa');
383
- _position.strategy.strategyId = isEOA ? enums_1.Strategies.IdOverrides.EoaLeverageManagementOnPrice : enums_1.Strategies.IdOverrides.LeverageManagementOnPrice;
384
- return _position;
385
- }
386
- function parseCompoundV3CloseOnPrice(position, parseData) {
387
- const _position = (0, lodash_1.cloneDeep)(position);
388
- const { subStruct } = parseData.subscriptionEventData;
389
- const triggerData = triggerService.compoundV3PriceRangeTrigger.decode(subStruct.triggerData);
390
- const subData = subDataService.compoundV3CloseSubData.decode(subStruct.subData);
391
- _position.strategyData.decoded.triggerData = triggerData;
392
- _position.strategyData.decoded.subData = subData;
393
- _position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, triggerData.market, Math.random());
394
- const { takeProfitType, stopLossType } = (0, utils_1.getStopLossAndTakeProfitTypeByCloseStrategyType)(+subData.closeType);
395
- const isEOA = _position.strategy.strategyId.includes('eoa');
396
- _position.strategy.strategyId = isEOA ? enums_1.Strategies.Identifiers.EoaCloseOnPrice : enums_1.Strategies.Identifiers.CloseOnPrice;
397
- _position.specific = {
398
- market: subData.market,
399
- collToken: subData.collToken,
400
- baseToken: subData.baseToken,
401
- stopLossPrice: triggerData.lowerPrice,
402
- takeProfitPrice: triggerData.upperPrice,
403
- takeProfitType,
404
- stopLossType,
405
- };
406
- return _position;
407
- }
408
366
  function parseChickenBondsRebond(position, parseData) {
409
367
  const _position = (0, lodash_1.cloneDeep)(position);
410
368
  const { subStruct } = parseData.subscriptionEventData;
@@ -730,6 +688,7 @@ function parseLiquityV2CloseOnPrice(position, parseData) {
730
688
  // - Only TakeProfit
731
689
  // - Only StopLoss
732
690
  // - Both
691
+ // TODO: see on frontend what specific data we need here because stop-loss and take-profit is one bundle now
733
692
  _position.strategy.strategyId = enums_1.Strategies.Identifiers.CloseOnPrice;
734
693
  _position.specific = {
735
694
  market: subData.market,
@@ -864,12 +823,6 @@ const parsingMethodsMapping = {
864
823
  [enums_1.Strategies.Identifiers.Boost]: parseCompoundV3LeverageManagement,
865
824
  [enums_1.Strategies.Identifiers.EoaRepay]: parseCompoundV3LeverageManagement,
866
825
  [enums_1.Strategies.Identifiers.EoaBoost]: parseCompoundV3LeverageManagement,
867
- [enums_1.Strategies.Identifiers.RepayOnPrice]: parseCompoundV3LeverageManagementOnPrice,
868
- [enums_1.Strategies.Identifiers.BoostOnPrice]: parseCompoundV3LeverageManagementOnPrice,
869
- [enums_1.Strategies.Identifiers.EoaRepayOnPrice]: parseCompoundV3LeverageManagementOnPrice,
870
- [enums_1.Strategies.Identifiers.EoaBoostOnPrice]: parseCompoundV3LeverageManagementOnPrice,
871
- [enums_1.Strategies.Identifiers.CloseOnPrice]: parseCompoundV3CloseOnPrice,
872
- [enums_1.Strategies.Identifiers.EoaCloseOnPrice]: parseCompoundV3CloseOnPrice,
873
826
  },
874
827
  [enums_1.ProtocolIdentifiers.StrategiesAutomation.ChickenBonds]: {
875
828
  [enums_1.Strategies.Identifiers.Rebond]: parseChickenBondsRebond,
@@ -60,14 +60,13 @@ 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
64
  };
64
65
  export declare const compoundV2Encode: {
65
66
  leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
66
67
  };
67
68
  export declare const compoundV3Encode: {
68
69
  leverageManagement(market: EthereumAddress, baseToken: EthereumAddress, triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean, isEOA: boolean): string[];
69
- leverageManagementOnPrice(strategyOrBundleId: number, market: EthereumAddress, collToken: EthereumAddress, baseToken: EthereumAddress, targetRatio: number, price: number, priceState: RatioState): (number | boolean | string[])[];
70
- closeOnPrice(strategyOrBundleId: number, market: EthereumAddress, collToken: EthereumAddress, baseToken: EthereumAddress, stopLossPrice?: number, stopLossType?: CloseToAssetType, takeProfitPrice?: number, takeProfitType?: CloseToAssetType): (number | boolean | string[])[];
71
70
  };
72
71
  export declare const compoundV3L2Encode: {
73
72
  leverageManagement(market: EthereumAddress, baseToken: EthereumAddress, triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string;
@@ -175,6 +175,12 @@ 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) {
179
+ const isBundle = true;
180
+ const subData = subDataService.aaveV3LeverageManagementSubDataWithoutSubProxy.encode(targetRatio, ratioState);
181
+ const triggerData = triggerService.aaveV3RatioTrigger.encode(user, market, triggerRatio, ratioState);
182
+ return [strategyOrBundleId, isBundle, triggerData, subData];
183
+ },
178
184
  };
179
185
  exports.compoundV2Encode = {
180
186
  leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
@@ -185,19 +191,6 @@ exports.compoundV3Encode = {
185
191
  leverageManagement(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA) {
186
192
  return subDataService.compoundV3LeverageManagementSubData.encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA);
187
193
  },
188
- leverageManagementOnPrice(strategyOrBundleId, market, collToken, baseToken, targetRatio, price, priceState) {
189
- const isBundle = true;
190
- const subDataEncoded = subDataService.compoundV3LeverageManagementOnPriceSubData.encode(market, collToken, baseToken, targetRatio);
191
- const triggerDataEncoded = triggerService.compoundV3PriceTrigger.encode(market, collToken, price, priceState);
192
- return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
193
- },
194
- closeOnPrice(strategyOrBundleId, market, collToken, baseToken, stopLossPrice = 0, stopLossType = enums_1.CloseToAssetType.DEBT, takeProfitPrice = 0, takeProfitType = enums_1.CloseToAssetType.COLLATERAL) {
195
- const isBundle = true;
196
- const closeType = (0, utils_1.getCloseStrategyType)(stopLossPrice, stopLossType, takeProfitPrice, takeProfitType);
197
- const subDataEncoded = subDataService.compoundV3CloseSubData.encode(market, collToken, baseToken, closeType);
198
- const triggerDataEncoded = triggerService.compoundV3PriceRangeTrigger.encode(market, collToken, stopLossPrice, takeProfitPrice);
199
- return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
200
- },
201
194
  };
202
195
  exports.compoundV3L2Encode = {
203
196
  leverageManagement(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
@@ -558,114 +558,6 @@ describe('Feature: strategySubService.ts', () => {
558
558
  });
559
559
  });
560
560
  });
561
- describe('leverageManagementOnPrice()', () => {
562
- const examples = [
563
- [
564
- [
565
- enums_1.Bundles.MainnetIds.COMP_V3_SW_REPAY_ON_PRICE,
566
- true,
567
- ['0x000000000000000000000000c3d688b66703497daa19211eedff47f25384cdc3000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000002e90edd0000000000000000000000000000000000000000000000000000000000000000001'],
568
- [
569
- '0x000000000000000000000000c3d688b66703497daa19211eedff47f25384cdc3',
570
- '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
571
- '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
572
- '0x0000000000000000000000000000000000000000000000001bc16d674ec80000'
573
- ],
574
- ],
575
- [
576
- enums_1.Bundles.MainnetIds.COMP_V3_SW_REPAY_ON_PRICE,
577
- web3Utils.toChecksumAddress('0xc3d688B66703497DAA19211EEdff47f25384cdc3'),
578
- web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('WETH', enums_1.ChainId.Ethereum).address),
579
- web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('USDC', enums_1.ChainId.Ethereum).address),
580
- 200,
581
- 2000,
582
- enums_1.RatioState.UNDER,
583
- ],
584
- ],
585
- [
586
- [
587
- enums_1.Bundles.MainnetIds.COMP_V3_SW_BOOST_ON_PRICE,
588
- true,
589
- ['0x000000000000000000000000c3d688b66703497daa19211eedff47f25384cdc3000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000045d964b8000000000000000000000000000000000000000000000000000000000000000000'],
590
- [
591
- '0x000000000000000000000000c3d688b66703497daa19211eedff47f25384cdc3',
592
- '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
593
- '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
594
- '0x0000000000000000000000000000000000000000000000001a5e27eef13e0000'
595
- ],
596
- ],
597
- [
598
- enums_1.Bundles.MainnetIds.COMP_V3_SW_BOOST_ON_PRICE,
599
- web3Utils.toChecksumAddress('0xc3d688B66703497DAA19211EEdff47f25384cdc3'),
600
- web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('WETH', enums_1.ChainId.Ethereum).address),
601
- web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('USDC', enums_1.ChainId.Ethereum).address),
602
- 190,
603
- 3000,
604
- enums_1.RatioState.OVER,
605
- ],
606
- ]
607
- ];
608
- examples.forEach(([expected, actual]) => {
609
- it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
610
- (0, chai_1.expect)(strategySubService_1.compoundV3Encode.leverageManagementOnPrice(...actual)).to.eql(expected);
611
- });
612
- });
613
- });
614
- describe('closeOnPrice()', () => {
615
- const examples = [
616
- [
617
- [
618
- enums_1.Bundles.MainnetIds.COMP_V3_SW_CLOSE,
619
- true,
620
- ['0x000000000000000000000000c3d688b66703497daa19211eedff47f25384cdc3000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000022ecb25c000000000000000000000000000000000000000000000000000000005d21dba000'],
621
- [
622
- '0x000000000000000000000000c3d688b66703497daa19211eedff47f25384cdc3',
623
- '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
624
- '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
625
- '0x0000000000000000000000000000000000000000000000000000000000000006'
626
- ],
627
- ],
628
- [
629
- enums_1.Bundles.MainnetIds.COMP_V3_SW_CLOSE,
630
- web3Utils.toChecksumAddress('0xc3d688B66703497DAA19211EEdff47f25384cdc3'),
631
- web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('WETH', enums_1.ChainId.Ethereum).address),
632
- web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('USDC', enums_1.ChainId.Ethereum).address),
633
- 1500,
634
- enums_1.CloseToAssetType.DEBT,
635
- 4000,
636
- enums_1.CloseToAssetType.DEBT,
637
- ],
638
- ],
639
- [
640
- [
641
- enums_1.Bundles.MainnetIds.COMP_V3_EOA_CLOSE,
642
- true,
643
- ['0x000000000000000000000000c3d688b66703497daa19211eedff47f25384cdc3000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000746a528800'],
644
- [
645
- '0x000000000000000000000000c3d688b66703497daa19211eedff47f25384cdc3',
646
- '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
647
- '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
648
- '0x0000000000000000000000000000000000000000000000000000000000000000'
649
- ],
650
- ],
651
- [
652
- enums_1.Bundles.MainnetIds.COMP_V3_EOA_CLOSE,
653
- web3Utils.toChecksumAddress('0xc3d688B66703497DAA19211EEdff47f25384cdc3'),
654
- web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('WETH', enums_1.ChainId.Ethereum).address),
655
- web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('USDC', enums_1.ChainId.Ethereum).address),
656
- 0,
657
- enums_1.CloseToAssetType.DEBT,
658
- 5000,
659
- enums_1.CloseToAssetType.COLLATERAL,
660
- ],
661
- ]
662
- ];
663
- examples.forEach(([expected, actual]) => {
664
- it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
665
- (0, chai_1.expect)(strategySubService_1.compoundV3Encode.closeOnPrice(...actual)).to.eql(expected);
666
- });
667
- });
668
- });
669
561
  });
670
562
  describe('When testing strategySubService.morphoAaveV2Encode', () => {
671
563
  describe('leverageManagement()', () => {
@@ -51,6 +51,13 @@ export declare const aaveV3LeverageManagementSubData: {
51
51
  targetRatio: number;
52
52
  };
53
53
  };
54
+ export declare const aaveV3LeverageManagementSubDataWithoutSubProxy: {
55
+ encode(targetRatio: number, ratioState: RatioState): string[];
56
+ decode(subData: string[]): {
57
+ targetRatio: number;
58
+ ratioState: RatioState;
59
+ };
60
+ };
54
61
  export declare const aaveV3QuotePriceSubData: {
55
62
  encode(collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, nullAddress?: EthereumAddress): string[];
56
63
  decode(subData: string[]): {
@@ -252,21 +259,3 @@ export declare const fluidLeverageManagementSubData: {
252
259
  targetRatio: number;
253
260
  };
254
261
  };
255
- export declare const compoundV3LeverageManagementOnPriceSubData: {
256
- encode(market: EthereumAddress, collToken: EthereumAddress, baseToken: EthereumAddress, targetRatio: number): string[];
257
- decode(subData: string[]): {
258
- market: EthereumAddress;
259
- collToken: EthereumAddress;
260
- baseToken: EthereumAddress;
261
- targetRatio: number;
262
- };
263
- };
264
- export declare const compoundV3CloseSubData: {
265
- encode(market: EthereumAddress, collToken: EthereumAddress, baseToken: EthereumAddress, closeType: CloseStrategyType): string[];
266
- decode(subData: string[]): {
267
- market: EthereumAddress;
268
- collToken: EthereumAddress;
269
- baseToken: EthereumAddress;
270
- closeType: CloseStrategyType;
271
- };
272
- };
@@ -3,7 +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.compoundV3CloseSubData = exports.compoundV3LeverageManagementOnPriceSubData = exports.fluidLeverageManagementSubData = exports.liquityV2PaybackSubData = exports.morphoBlueLeverageManagementOnPriceSubData = exports.liquityV2LeverageManagementOnPriceSubData = exports.liquityV2CloseSubData = exports.liquityV2LeverageManagementSubData = exports.aaveV3LeverageManagementOnPriceSubData = exports.morphoBlueLeverageManagementSubData = exports.crvUSDPaybackSubData = exports.crvUSDLeverageManagementSubData = exports.liquityDebtInFrontRepaySubData = exports.liquityDsrSupplySubData = exports.liquityDsrPaybackSubData = exports.sparkQuotePriceSubData = exports.sparkLeverageManagementSubData = exports.exchangeLimitOrderSubData = exports.exchangeDcaSubData = exports.liquityPaybackUsingChickenBondSubData = exports.cBondsRebondSubData = exports.morphoAaveV2LeverageManagementSubData = exports.compoundV3L2LeverageManagementSubData = exports.compoundV3LeverageManagementSubData = exports.compoundV2LeverageManagementSubData = exports.aaveV3QuotePriceSubData = exports.aaveV3LeverageManagementSubData = exports.aaveV2LeverageManagementSubData = exports.liquityCloseSubData = exports.liquityLeverageManagementSubData = exports.makerLeverageManagementSubData = exports.makerCloseSubData = exports.liquityRepayFromSavingsSubData = exports.makerRepayFromSavingsSubData = void 0;
6
+ exports.fluidLeverageManagementSubData = exports.liquityV2PaybackSubData = exports.morphoBlueLeverageManagementOnPriceSubData = exports.liquityV2LeverageManagementOnPriceSubData = exports.liquityV2CloseSubData = exports.liquityV2LeverageManagementSubData = exports.aaveV3LeverageManagementOnPriceSubData = exports.morphoBlueLeverageManagementSubData = exports.crvUSDPaybackSubData = exports.crvUSDLeverageManagementSubData = exports.liquityDebtInFrontRepaySubData = exports.liquityDsrSupplySubData = exports.liquityDsrPaybackSubData = exports.sparkQuotePriceSubData = exports.sparkLeverageManagementSubData = exports.exchangeLimitOrderSubData = exports.exchangeDcaSubData = exports.liquityPaybackUsingChickenBondSubData = exports.cBondsRebondSubData = exports.morphoAaveV2LeverageManagementSubData = exports.compoundV3L2LeverageManagementSubData = exports.compoundV3LeverageManagementSubData = exports.compoundV2LeverageManagementSubData = exports.aaveV3QuotePriceSubData = exports.aaveV3LeverageManagementSubDataWithoutSubProxy = exports.aaveV3LeverageManagementSubData = exports.aaveV2LeverageManagementSubData = exports.liquityCloseSubData = exports.liquityLeverageManagementSubData = exports.makerLeverageManagementSubData = exports.makerCloseSubData = exports.liquityRepayFromSavingsSubData = exports.makerRepayFromSavingsSubData = void 0;
7
7
  const decimal_js_1 = __importDefault(require("decimal.js"));
8
8
  const web3_eth_abi_1 = __importDefault(require("web3-eth-abi"));
9
9
  const web3_utils_1 = require("web3-utils");
@@ -126,6 +126,20 @@ exports.aaveV3LeverageManagementSubData = {
126
126
  return { targetRatio };
127
127
  },
128
128
  };
129
+ exports.aaveV3LeverageManagementSubDataWithoutSubProxy = {
130
+ encode(targetRatio, ratioState) {
131
+ const encodedTargetRatio = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
132
+ const encodedRatioState = web3_eth_abi_1.default.encodeParameter('uint8', ratioState);
133
+ const encodedUseDefaultMarket = web3_eth_abi_1.default.encodeParameter('bool', true);
134
+ const encodedUseOnBehalf = web3_eth_abi_1.default.encodeParameter('bool', false);
135
+ return [encodedTargetRatio, encodedRatioState, encodedUseDefaultMarket, encodedUseOnBehalf];
136
+ },
137
+ decode(subData) {
138
+ const targetRatio = (0, utils_1.weiToRatioPercentage)(web3_eth_abi_1.default.decodeParameter('uint256', subData[0]));
139
+ const ratioState = web3_eth_abi_1.default.decodeParameter('uint8', subData[1]);
140
+ return { targetRatio, ratioState };
141
+ },
142
+ };
129
143
  exports.aaveV3QuotePriceSubData = {
130
144
  encode(collAsset, collAssetId, debtAsset, debtAssetId, nullAddress = constants_1.ZERO_ADDRESS) {
131
145
  const encodedColl = web3_eth_abi_1.default.encodeParameter('address', collAsset);
@@ -667,50 +681,3 @@ exports.fluidLeverageManagementSubData = {
667
681
  };
668
682
  },
669
683
  };
670
- exports.compoundV3LeverageManagementOnPriceSubData = {
671
- encode(market, collToken, baseToken, targetRatio) {
672
- const marketEncoded = web3_eth_abi_1.default.encodeParameter('address', market);
673
- const collTokenEncoded = web3_eth_abi_1.default.encodeParameter('address', collToken);
674
- const baseTokenEncoded = web3_eth_abi_1.default.encodeParameter('address', baseToken);
675
- const targetRatioEncoded = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
676
- return [
677
- marketEncoded,
678
- collTokenEncoded,
679
- baseTokenEncoded,
680
- targetRatioEncoded,
681
- ];
682
- },
683
- decode(subData) {
684
- const market = web3_eth_abi_1.default.decodeParameter('address', subData[0]);
685
- const collToken = web3_eth_abi_1.default.decodeParameter('address', subData[1]);
686
- const baseToken = web3_eth_abi_1.default.decodeParameter('address', subData[2]);
687
- const weiRatio = web3_eth_abi_1.default.decodeParameter('uint256', subData[3]);
688
- const targetRatio = (0, utils_1.weiToRatioPercentage)(weiRatio);
689
- return {
690
- market, collToken, baseToken, targetRatio,
691
- };
692
- },
693
- };
694
- exports.compoundV3CloseSubData = {
695
- encode(market, collToken, baseToken, closeType) {
696
- const marketEncoded = web3_eth_abi_1.default.encodeParameter('address', market);
697
- const collTokenEncoded = web3_eth_abi_1.default.encodeParameter('address', collToken);
698
- const baseTokenEncoded = web3_eth_abi_1.default.encodeParameter('address', baseToken);
699
- const closeTypeEncoded = web3_eth_abi_1.default.encodeParameter('uint8', closeType);
700
- return [
701
- marketEncoded,
702
- collTokenEncoded,
703
- baseTokenEncoded,
704
- closeTypeEncoded,
705
- ];
706
- },
707
- decode(subData) {
708
- const market = web3_eth_abi_1.default.decodeParameter('address', subData[0]);
709
- const collToken = web3_eth_abi_1.default.decodeParameter('address', subData[1]);
710
- const baseToken = web3_eth_abi_1.default.decodeParameter('address', subData[2]);
711
- const closeType = web3_eth_abi_1.default.decodeParameter('uint8', subData[3]);
712
- return {
713
- market, collToken, baseToken, closeType,
714
- };
715
- },
716
- };