@defisaver/automation-sdk 3.3.14 → 3.3.15

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.
@@ -63,7 +63,7 @@ function parseMakerTrailingStop(position, parseData) {
63
63
  }
64
64
  function parseMakerLeverageManagement(position, parseData) {
65
65
  const _position = cloneDeep(position);
66
- const { subStruct, subId } = parseData.subscriptionEventData;
66
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
67
67
  const { isEnabled } = parseData.strategiesSubsData;
68
68
  const triggerData = triggerService.makerRatioTrigger.decode(subStruct.triggerData);
69
69
  const subData = subDataService.makerLeverageManagementSubData.decode(subStruct.subData);
@@ -75,9 +75,10 @@ function parseMakerLeverageManagement(position, parseData) {
75
75
  _position.specific = {
76
76
  triggerRepayRatio: triggerData.ratio,
77
77
  targetRepayRatio: subData.targetRatio,
78
- repayEnabled: true,
78
+ repayEnabled: isEnabled,
79
79
  subId1: Number(subId),
80
80
  mergeWithId: Strategies.Identifiers.Boost,
81
+ subHashRepay: subHash,
81
82
  };
82
83
  }
83
84
  else {
@@ -87,6 +88,7 @@ function parseMakerLeverageManagement(position, parseData) {
87
88
  boostEnabled: isEnabled,
88
89
  subId2: Number(subId),
89
90
  mergeId: Strategies.Identifiers.Boost,
91
+ subHashBoost: subHash,
90
92
  };
91
93
  }
92
94
  _position.strategy.strategyId = Strategies.IdOverrides.LeverageManagement;
@@ -126,7 +128,7 @@ function parseLiquityTrailingStop(position, parseData) {
126
128
  }
127
129
  function parseAaveV2LeverageManagement(position, parseData) {
128
130
  const _position = cloneDeep(position);
129
- const { subStruct, subId } = parseData.subscriptionEventData;
131
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
130
132
  const { isEnabled } = parseData.strategiesSubsData;
131
133
  const triggerData = triggerService.aaveV2RatioTrigger.decode(subStruct.triggerData);
132
134
  const subData = subDataService.aaveV2LeverageManagementSubData.decode(subStruct.subData);
@@ -138,9 +140,10 @@ function parseAaveV2LeverageManagement(position, parseData) {
138
140
  _position.specific = {
139
141
  triggerRepayRatio: triggerData.ratio,
140
142
  targetRepayRatio: subData.targetRatio,
141
- repayEnabled: true,
143
+ repayEnabled: isEnabled,
142
144
  subId1: Number(subId),
143
145
  mergeWithId: Strategies.Identifiers.Boost,
146
+ subHashRepay: subHash,
144
147
  };
145
148
  }
146
149
  else {
@@ -150,6 +153,7 @@ function parseAaveV2LeverageManagement(position, parseData) {
150
153
  boostEnabled: isEnabled,
151
154
  subId2: Number(subId),
152
155
  mergeId: Strategies.Identifiers.Boost,
156
+ subHashBoost: subHash,
153
157
  };
154
158
  }
155
159
  _position.strategy.strategyId = Strategies.IdOverrides.LeverageManagement;
@@ -387,7 +391,7 @@ function parseAaveV4CollateralSwitch(position, parseData) {
387
391
  }
388
392
  function parseMorphoAaveV2LeverageManagement(position, parseData) {
389
393
  const _position = cloneDeep(position);
390
- const { subStruct, subId } = parseData.subscriptionEventData;
394
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
391
395
  const { isEnabled } = parseData.strategiesSubsData;
392
396
  const triggerData = triggerService.morphoAaveV2RatioTrigger.decode(subStruct.triggerData);
393
397
  const subData = subDataService.morphoAaveV2LeverageManagementSubData.decode(subStruct.subData);
@@ -399,9 +403,10 @@ function parseMorphoAaveV2LeverageManagement(position, parseData) {
399
403
  _position.specific = {
400
404
  triggerRepayRatio: triggerData.ratio,
401
405
  targetRepayRatio: subData.targetRatio,
402
- repayEnabled: true,
406
+ repayEnabled: isEnabled,
403
407
  subId1: Number(subId),
404
408
  mergeWithId: Strategies.Identifiers.Boost,
409
+ subHashRepay: subHash,
405
410
  };
406
411
  }
407
412
  else {
@@ -411,6 +416,7 @@ function parseMorphoAaveV2LeverageManagement(position, parseData) {
411
416
  boostEnabled: isEnabled,
412
417
  subId2: Number(subId),
413
418
  mergeId: Strategies.Identifiers.Boost,
419
+ subHashBoost: subHash,
414
420
  };
415
421
  }
416
422
  _position.strategy.strategyId = Strategies.IdOverrides.LeverageManagement;
@@ -443,7 +449,7 @@ function parseAaveV3CloseOnPriceWithMaximumGasPrice(position, parseData) {
443
449
  }
444
450
  function parseCompoundV2LeverageManagement(position, parseData) {
445
451
  const _position = cloneDeep(position);
446
- const { subStruct, subId } = parseData.subscriptionEventData;
452
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
447
453
  const { isEnabled } = parseData.strategiesSubsData;
448
454
  const triggerData = triggerService.compoundV2RatioTrigger.decode(subStruct.triggerData);
449
455
  const subData = subDataService.compoundV2LeverageManagementSubData.decode(subStruct.subData);
@@ -456,9 +462,10 @@ function parseCompoundV2LeverageManagement(position, parseData) {
456
462
  _position.specific = {
457
463
  triggerRepayRatio: triggerData.ratio,
458
464
  targetRepayRatio: subData.targetRatio,
459
- repayEnabled: true,
465
+ repayEnabled: isEnabled,
460
466
  subId1: Number(subId),
461
467
  mergeWithId: Strategies.Identifiers.Boost,
468
+ subHashRepay: subHash,
462
469
  };
463
470
  }
464
471
  else {
@@ -468,6 +475,7 @@ function parseCompoundV2LeverageManagement(position, parseData) {
468
475
  boostEnabled: isEnabled,
469
476
  subId2: Number(subId),
470
477
  mergeId: Strategies.Identifiers.Boost,
478
+ subHashBoost: subHash,
471
479
  };
472
480
  }
473
481
  const isEOA = _position.strategy.strategyId.includes('eoa');
@@ -476,11 +484,9 @@ function parseCompoundV2LeverageManagement(position, parseData) {
476
484
  }
477
485
  function parseCompoundV3LeverageManagement(position, parseData) {
478
486
  const _position = cloneDeep(position);
479
- const { subStruct, subId } = parseData.subscriptionEventData;
487
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
480
488
  const { isEnabled } = parseData.strategiesSubsData;
481
- const subDataDecoder = position.chainId !== 1
482
- ? subDataService.compoundV3L2LeverageManagementSubData
483
- : subDataService.compoundV3LeverageManagementSubData;
489
+ const subDataDecoder = subDataService.compoundV3LeverageManagementSubDataWithoutSubProxy;
484
490
  const triggerData = triggerService.compoundV3RatioTrigger.decode(subStruct.triggerData);
485
491
  const subData = subDataDecoder.decode(subStruct.subData);
486
492
  _position.strategyData.decoded.triggerData = triggerData;
@@ -492,9 +498,10 @@ function parseCompoundV3LeverageManagement(position, parseData) {
492
498
  _position.specific = {
493
499
  triggerRepayRatio: triggerData.ratio,
494
500
  targetRepayRatio: subData.targetRatio,
495
- repayEnabled: true,
501
+ repayEnabled: isEnabled,
496
502
  subId1: Number(subId),
497
503
  mergeWithId: isEOA ? Strategies.Identifiers.EoaBoost : Strategies.Identifiers.Boost,
504
+ subHashRepay: subHash,
498
505
  };
499
506
  }
500
507
  else {
@@ -504,6 +511,7 @@ function parseCompoundV3LeverageManagement(position, parseData) {
504
511
  boostEnabled: isEnabled,
505
512
  subId2: Number(subId),
506
513
  mergeId: isEOA ? Strategies.Identifiers.EoaBoost : Strategies.Identifiers.Boost,
514
+ subHashBoost: subHash,
507
515
  };
508
516
  }
509
517
  _position.strategy.strategyId = isEOA ? Strategies.IdOverrides.EoaLeverageManagement : Strategies.IdOverrides.LeverageManagement;
@@ -591,7 +599,7 @@ function parseExchangeLimitOrder(position, parseData, chainId) {
591
599
  }
592
600
  function parseLiquityLeverageManagement(position, parseData) {
593
601
  const _position = cloneDeep(position);
594
- const { subStruct, subId } = parseData.subscriptionEventData;
602
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
595
603
  const { isEnabled } = parseData.strategiesSubsData;
596
604
  const triggerData = triggerService.liquityRatioTrigger.decode(subStruct.triggerData);
597
605
  const subData = subDataService.liquityLeverageManagementSubData.decode(subStruct.subData);
@@ -603,9 +611,10 @@ function parseLiquityLeverageManagement(position, parseData) {
603
611
  _position.specific = {
604
612
  triggerRepayRatio: triggerData.ratio,
605
613
  targetRepayRatio: subData.targetRatio,
606
- repayEnabled: true,
614
+ repayEnabled: isEnabled,
607
615
  subId1: Number(subId),
608
616
  mergeWithId: Strategies.Identifiers.Boost,
617
+ subHashRepay: subHash,
609
618
  };
610
619
  }
611
620
  else {
@@ -615,6 +624,7 @@ function parseLiquityLeverageManagement(position, parseData) {
615
624
  boostEnabled: isEnabled,
616
625
  subId2: Number(subId),
617
626
  mergeId: Strategies.Identifiers.Boost,
627
+ subHashBoost: subHash,
618
628
  };
619
629
  }
620
630
  _position.strategy.strategyId = Strategies.IdOverrides.LeverageManagement;
@@ -655,7 +665,7 @@ function parseLiquityV2LeverageManagement(position, parseData) {
655
665
  }
656
666
  function parseSparkLeverageManagement(position, parseData) {
657
667
  const _position = cloneDeep(position);
658
- const { subStruct, subId } = parseData.subscriptionEventData;
668
+ const { subStruct, subId, subHash } = parseData.subscriptionEventData;
659
669
  const { isEnabled } = parseData.strategiesSubsData;
660
670
  const triggerData = triggerService.sparkRatioTrigger.decode(subStruct.triggerData);
661
671
  const subData = subDataService.sparkLeverageManagementSubData.decode(subStruct.subData);
@@ -667,9 +677,10 @@ function parseSparkLeverageManagement(position, parseData) {
667
677
  _position.specific = {
668
678
  triggerRepayRatio: triggerData.ratio,
669
679
  targetRepayRatio: subData.targetRatio,
670
- repayEnabled: true,
680
+ repayEnabled: isEnabled,
671
681
  subId1: Number(subId),
672
682
  mergeWithId: Strategies.Identifiers.Boost,
683
+ subHashRepay: subHash,
673
684
  };
674
685
  }
675
686
  else {
@@ -679,6 +690,7 @@ function parseSparkLeverageManagement(position, parseData) {
679
690
  boostEnabled: isEnabled,
680
691
  subId2: Number(subId),
681
692
  mergeId: Strategies.Identifiers.Boost,
693
+ subHashBoost: subHash,
682
694
  };
683
695
  }
684
696
  _position.strategy.strategyId = Strategies.IdOverrides.LeverageManagement;
@@ -861,6 +873,7 @@ function parseMorphoBlueLeverageManagementOnPrice(position, parseData) {
861
873
  debtAsset: subData.loanToken,
862
874
  price: triggerData.price,
863
875
  ratio: subData.targetRatio,
876
+ ratioState: triggerData.priceState,
864
877
  };
865
878
  return _position;
866
879
  }
@@ -5,14 +5,13 @@ 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
- leverageManagement(vaultId: number, triggerRepayRatio: string, triggerBoostRatio: string, targetBoostRatio: string, targetRepayRatio: string, boostEnabled: boolean): (string | number | boolean)[];
9
8
  leverageManagementWithoutSubProxy(vaultId: number, triggerRatio: number, targetRatio: number, ratioState: RatioState, isBoost: boolean, daiAddr?: EthereumAddress): (boolean | string[] | Bundles.MainnetIds)[];
10
9
  };
11
10
  export declare const liquityEncode: {
12
11
  closeOnPrice(priceOverOrUnder: RatioState, price: string, closeToAssetAddr: EthereumAddress, chainlinkCollAddress: EthereumAddress, chainId?: ChainId, collAddr?: EthereumAddress, debtAddr?: EthereumAddress): (boolean | string[] | Strategies.MainnetIds)[];
13
12
  trailingStop(triggerPercentage: number, closeToAssetAddr: EthereumAddress, chainlinkCollAddress: EthereumAddress, roundId: number, chainId?: ChainId, collAddr?: EthereumAddress, debtAddr?: EthereumAddress): (boolean | string[] | Strategies.MainnetIds)[];
14
13
  paybackFromChickenBondStrategySub(proxyAddress: EthereumAddress, ratio: number, sourceId: string, sourceType: number, ratioState?: RatioState): (boolean | string[] | Bundles.MainnetIds)[];
15
- leverageManagement(triggerRepayRatio: string, triggerBoostRatio: string, targetBoostRatio: string, targetRepayRatio: string, boostEnabled: boolean): (string | boolean)[];
14
+ leverageManagementWithoutSubProxy(strategyOrBundleId: number, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
16
15
  dsrPayback(proxyAddress: EthereumAddress, triggerRatio: number, targetRatio: number): (boolean | string[] | Strategies.MainnetIds)[];
17
16
  dsrSupply(proxyAddress: EthereumAddress, triggerRatio: number, targetRatio: number): (boolean | string[] | Strategies.MainnetIds)[];
18
17
  debtInFrontRepay(proxyAddress: EthereumAddress, debtInFrontMin: string, targetRatioIncrease: number): (boolean | string[] | Strategies.MainnetIds)[];
@@ -21,10 +20,9 @@ export declare const chickenBondsEncode: {
21
20
  rebond(bondId: number): string[];
22
21
  };
23
22
  export declare const aaveV2Encode: {
24
- leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
23
+ leverageManagementWithoutSubProxy(strategyOrBundleId: number, market: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
25
24
  };
26
25
  export declare const aaveV3Encode: {
27
- leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string;
28
26
  closeToAsset(strategyOrBundleId: number, isBundle: boolean | undefined, triggerData: {
29
27
  baseTokenAddress: EthereumAddress;
30
28
  quoteTokenAddress: EthereumAddress;
@@ -67,25 +65,21 @@ export declare const aaveV3Encode: {
67
65
  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[])[];
68
66
  };
69
67
  export declare const compoundV2Encode: {
70
- leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
68
+ leverageManagementWithoutSubProxy(strategyOrBundleId: number, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
71
69
  };
72
70
  export declare const compoundV3Encode: {
73
- leverageManagement(market: EthereumAddress, baseToken: EthereumAddress, triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean, isEOA: boolean): string[];
71
+ leverageManagementWithoutSubProxy(strategyOrBundleId: number, market: EthereumAddress, baseToken: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
74
72
  leverageManagementOnPrice(strategyOrBundleId: number, market: EthereumAddress, collToken: EthereumAddress, baseToken: EthereumAddress, targetRatio: number, price: number, priceState: RatioState, ratioState: RatioState, user: EthereumAddress): (number | boolean | string[])[];
75
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[])[];
76
74
  };
77
- export declare const compoundV3L2Encode: {
78
- leverageManagement(market: EthereumAddress, baseToken: EthereumAddress, triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean, isEOA?: boolean): string;
79
- };
80
75
  export declare const morphoAaveV2Encode: {
81
76
  leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
82
77
  };
83
78
  export declare const exchangeEncode: {
84
79
  dca(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string, timestamp: number, interval: number, network: ChainId): (boolean | string[] | Strategies.MainnetIds | Strategies.OptimismIds | Strategies.ArbitrumIds | Strategies.BaseIds)[];
85
- limitOrder(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string, targetPrice: string, goodUntil: string | number, orderType: OrderType): string[];
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)[];
86
81
  };
87
82
  export declare const sparkEncode: {
88
- leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string;
89
83
  leverageManagementOnPrice(strategyOrBundleId: number, isBundle: boolean | undefined, triggerData: {
90
84
  baseTokenAddr: EthereumAddress;
91
85
  quoteTokenAddr: EthereumAddress;
@@ -1,4 +1,3 @@
1
- import Dec from 'decimal.js';
2
1
  import { getAssetInfo } from '@defisaver/tokens';
3
2
  import { CloseToAssetType, Bundles, ChainId, RatioState, Strategies, } from '../types/enums';
4
3
  import { STRATEGY_IDS } from '../constants';
@@ -31,16 +30,6 @@ export const makerEncode = {
31
30
  const isBundle = false;
32
31
  return [strategyOrBundleId, isBundle, triggerData, subData];
33
32
  },
34
- leverageManagement(vaultId, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
35
- return [
36
- vaultId,
37
- new Dec(triggerRepayRatio).mul(1e16).toString(),
38
- new Dec(triggerBoostRatio).mul(1e16).toString(),
39
- new Dec(targetBoostRatio).mul(1e16).toString(),
40
- new Dec(targetRepayRatio).mul(1e16).toString(),
41
- boostEnabled,
42
- ];
43
- },
44
33
  leverageManagementWithoutSubProxy(vaultId, triggerRatio, targetRatio, ratioState, isBoost, daiAddr) {
45
34
  const bundleId = isBoost ? Bundles.MainnetIds.MAKER_BOOST : Bundles.MainnetIds.MAKER_REPAY;
46
35
  const triggerData = triggerService.makerRatioTrigger.encode(vaultId, triggerRatio, ratioState);
@@ -78,14 +67,11 @@ export const liquityEncode = {
78
67
  const isBundle = true;
79
68
  return [strategyId, isBundle, triggerData, subData];
80
69
  },
81
- leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
82
- return [
83
- new Dec(triggerRepayRatio).mul(1e16).toString(),
84
- new Dec(triggerBoostRatio).mul(1e16).toString(),
85
- new Dec(targetBoostRatio).mul(1e16).toString(),
86
- new Dec(targetRepayRatio).mul(1e16).toString(),
87
- boostEnabled,
88
- ];
70
+ leverageManagementWithoutSubProxy(strategyOrBundleId, user, ratioState, targetRatio, triggerRatio) {
71
+ const isBundle = true;
72
+ const subData = subDataService.liquityLeverageManagementSubDataWithoutSubProxy.encode(targetRatio, ratioState);
73
+ const triggerData = triggerService.liquityRatioTrigger.encode(user, triggerRatio, ratioState);
74
+ return [strategyOrBundleId, isBundle, triggerData, subData];
89
75
  },
90
76
  dsrPayback(proxyAddress, triggerRatio, targetRatio) {
91
77
  requireAddress(proxyAddress);
@@ -118,24 +104,14 @@ export const chickenBondsEncode = {
118
104
  },
119
105
  };
120
106
  export const aaveV2Encode = {
121
- leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
122
- return subDataService.aaveV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
107
+ leverageManagementWithoutSubProxy(strategyOrBundleId, market, user, ratioState, targetRatio, triggerRatio) {
108
+ const isBundle = true;
109
+ const subData = subDataService.aaveV2LeverageManagementSubDataWithoutSubProxy.encode(market, targetRatio, ratioState);
110
+ const triggerData = triggerService.aaveV2RatioTrigger.encode(user, market, triggerRatio, ratioState);
111
+ return [strategyOrBundleId, isBundle, triggerData, subData];
123
112
  },
124
113
  };
125
114
  export const aaveV3Encode = {
126
- leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
127
- let subInput = '0x';
128
- subInput = subInput.concat(new Dec(triggerRepayRatio).mul(1e16).toHex().slice(2)
129
- .padStart(32, '0'));
130
- subInput = subInput.concat(new Dec(triggerBoostRatio).mul(1e16).toHex().slice(2)
131
- .padStart(32, '0'));
132
- subInput = subInput.concat(new Dec(targetBoostRatio).mul(1e16).toHex().slice(2)
133
- .padStart(32, '0'));
134
- subInput = subInput.concat(new Dec(targetRepayRatio).mul(1e16).toHex().slice(2)
135
- .padStart(32, '0'));
136
- subInput = subInput.concat(boostEnabled ? '01' : '00');
137
- return subInput;
138
- },
139
115
  closeToAsset(strategyOrBundleId, isBundle = true, triggerData, subData) {
140
116
  const { collAsset, collAssetId, debtAsset, debtAssetId, } = subData;
141
117
  const subDataEncoded = subDataService.aaveV3QuotePriceSubData.encode(collAsset, collAssetId, debtAsset, debtAssetId);
@@ -184,13 +160,19 @@ export const aaveV3Encode = {
184
160
  },
185
161
  };
186
162
  export const compoundV2Encode = {
187
- leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
188
- return subDataService.compoundV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
163
+ leverageManagementWithoutSubProxy(strategyOrBundleId, user, ratioState, targetRatio, triggerRatio) {
164
+ const isBundle = true;
165
+ const subData = subDataService.compoundV2LeverageManagementSubDataWithoutSubProxy.encode(targetRatio, ratioState);
166
+ const triggerData = triggerService.compoundV2RatioTrigger.encode(user, triggerRatio, ratioState);
167
+ return [strategyOrBundleId, isBundle, triggerData, subData];
189
168
  },
190
169
  };
191
170
  export const compoundV3Encode = {
192
- leverageManagement(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA) {
193
- return subDataService.compoundV3LeverageManagementSubData.encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA);
171
+ leverageManagementWithoutSubProxy(strategyOrBundleId, market, baseToken, user, ratioState, targetRatio, triggerRatio) {
172
+ const isBundle = true;
173
+ const subData = subDataService.compoundV3LeverageManagementSubDataWithoutSubProxy.encode(market, baseToken, targetRatio, ratioState);
174
+ const triggerData = triggerService.compoundV3RatioTrigger.encode(user, market, triggerRatio, ratioState);
175
+ return [strategyOrBundleId, isBundle, triggerData, subData];
194
176
  },
195
177
  leverageManagementOnPrice(strategyOrBundleId, market, collToken, baseToken, targetRatio, price, priceState, ratioState, // REPAY for repay on price, BOOST for boost on price
196
178
  user) {
@@ -207,11 +189,6 @@ export const compoundV3Encode = {
207
189
  return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
208
190
  },
209
191
  };
210
- export const compoundV3L2Encode = {
211
- leverageManagement(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA = false) {
212
- return subDataService.compoundV3L2LeverageManagementSubData.encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA);
213
- },
214
- };
215
192
  export const morphoAaveV2Encode = {
216
193
  leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
217
194
  return subDataService.morphoAaveV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
@@ -225,24 +202,15 @@ export const exchangeEncode = {
225
202
  const strategyId = STRATEGY_IDS[network].EXCHANGE_DCA;
226
203
  return [strategyId, false, triggerData, subData];
227
204
  },
228
- limitOrder(fromToken, toToken, amount, targetPrice, goodUntil, orderType) {
229
- return subDataService.exchangeLimitOrderSubData.encode(fromToken, toToken, amount, targetPrice, goodUntil, orderType);
205
+ limitOrderWithoutSubProxy(fromToken, toToken, amount, targetPrice, goodUntil, orderType, fromTokenDecimals, toTokenDecimals, network) {
206
+ requireAddresses([fromToken, toToken]);
207
+ const subData = subDataService.exchangeLimitOrderSubDataWithoutSubProxy.encode(fromToken, toToken, amount);
208
+ const triggerData = triggerService.exchangeOffchainPriceTrigger.encode(targetPrice, Number(goodUntil), orderType, fromTokenDecimals, toTokenDecimals);
209
+ const strategyId = STRATEGY_IDS[network].EXCHANGE_LIMIT_ORDER;
210
+ return [strategyId, false, triggerData, subData];
230
211
  },
231
212
  };
232
213
  export const sparkEncode = {
233
- leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
234
- let subInput = '0x';
235
- subInput = subInput.concat(new Dec(triggerRepayRatio).mul(1e16).toHex().slice(2)
236
- .padStart(32, '0'));
237
- subInput = subInput.concat(new Dec(triggerBoostRatio).mul(1e16).toHex().slice(2)
238
- .padStart(32, '0'));
239
- subInput = subInput.concat(new Dec(targetBoostRatio).mul(1e16).toHex().slice(2)
240
- .padStart(32, '0'));
241
- subInput = subInput.concat(new Dec(targetRepayRatio).mul(1e16).toHex().slice(2)
242
- .padStart(32, '0'));
243
- subInput = subInput.concat(boostEnabled ? '01' : '00');
244
- return subInput;
245
- },
246
214
  leverageManagementOnPrice(strategyOrBundleId, isBundle = true, triggerData, subData) {
247
215
  const { collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio, } = subData;
248
216
  const subDataEncoded = subDataService.sparkLeverageManagementOnPriceSubData.encode(collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio);