@defisaver/automation-sdk 3.3.14 → 3.3.15-liq-prot-1-dev

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/cjs/constants/index.js +130 -0
  2. package/cjs/index.d.ts +4 -3
  3. package/cjs/index.js +6 -2
  4. package/cjs/services/strategiesService.js +178 -17
  5. package/cjs/services/strategySubService.d.ts +14 -13
  6. package/cjs/services/strategySubService.js +79 -63
  7. package/cjs/services/strategySubService.test.js +0 -234
  8. package/cjs/services/subDataService.d.ts +92 -4
  9. package/cjs/services/subDataService.js +245 -35
  10. package/cjs/services/subDataService.test.js +0 -110
  11. package/cjs/services/utils.d.ts +3 -1
  12. package/cjs/services/utils.js +34 -1
  13. package/cjs/services/utils.test.js +25 -0
  14. package/cjs/types/enums.d.ts +36 -6
  15. package/cjs/types/enums.js +30 -0
  16. package/esm/constants/index.js +130 -0
  17. package/esm/index.d.ts +4 -3
  18. package/esm/index.js +7 -3
  19. package/esm/services/strategiesService.js +178 -17
  20. package/esm/services/strategySubService.d.ts +14 -13
  21. package/esm/services/strategySubService.js +79 -60
  22. package/esm/services/strategySubService.test.js +2 -236
  23. package/esm/services/subDataService.d.ts +92 -4
  24. package/esm/services/subDataService.js +243 -34
  25. package/esm/services/subDataService.test.js +0 -110
  26. package/esm/services/utils.d.ts +3 -1
  27. package/esm/services/utils.js +32 -1
  28. package/esm/services/utils.test.js +27 -2
  29. package/esm/types/enums.d.ts +36 -6
  30. package/esm/types/enums.js +30 -0
  31. package/package.json +1 -1
  32. package/src/constants/index.ts +132 -1
  33. package/src/index.ts +24 -6
  34. package/src/services/strategiesService.ts +242 -17
  35. package/src/services/strategySubService.test.ts +0 -279
  36. package/src/services/strategySubService.ts +209 -116
  37. package/src/services/subDataService.test.ts +0 -120
  38. package/src/services/subDataService.ts +335 -49
  39. package/src/services/utils.test.ts +32 -1
  40. package/src/services/utils.ts +32 -1
  41. package/src/types/enums.ts +30 -2
@@ -1,22 +1,26 @@
1
- import Dec from 'decimal.js';
2
1
  import { getAssetInfo } from '@defisaver/tokens';
2
+ import Dec from 'decimal.js';
3
3
 
4
- import type { OrderType } from '../types/enums';
4
+ import { STRATEGY_IDS } from '../constants';
5
5
  import {
6
- CloseToAssetType,
7
6
  Bundles,
8
7
  ChainId,
8
+ CloseToAssetType,
9
9
  RatioState,
10
10
  Strategies,
11
11
  } from '../types/enums';
12
12
  import type { EthereumAddress, StrategyOrBundleIds } from '../types';
13
13
 
14
- import { STRATEGY_IDS } from '../constants';
14
+ import type { OrderType } from '../types/enums';
15
15
 
16
16
  import * as subDataService from './subDataService';
17
17
  import * as triggerService from './triggerService';
18
18
  import {
19
- compareAddresses, getCloseStrategyType, requireAddress, requireAddresses,
19
+ compareAddresses,
20
+ getBundleIdsByNetwork,
21
+ getCloseStrategyType,
22
+ requireAddress,
23
+ requireAddresses,
20
24
  } from './utils';
21
25
 
22
26
  export const makerEncode = {
@@ -81,23 +85,6 @@ export const makerEncode = {
81
85
 
82
86
  return [strategyOrBundleId, isBundle, triggerData, subData];
83
87
  },
84
- leverageManagement(
85
- vaultId: number,
86
- triggerRepayRatio: string,
87
- triggerBoostRatio: string,
88
- targetBoostRatio: string,
89
- targetRepayRatio: string,
90
- boostEnabled: boolean,
91
- ) {
92
- return [
93
- vaultId,
94
- new Dec(triggerRepayRatio).mul(1e16).toString(),
95
- new Dec(triggerBoostRatio).mul(1e16).toString(),
96
- new Dec(targetBoostRatio).mul(1e16).toString(),
97
- new Dec(targetRepayRatio).mul(1e16).toString(),
98
- boostEnabled,
99
- ];
100
- },
101
88
  leverageManagementWithoutSubProxy(
102
89
  vaultId: number,
103
90
  triggerRatio: number,
@@ -119,6 +106,26 @@ export const makerEncode = {
119
106
  subData,
120
107
  ];
121
108
  },
109
+
110
+ liquidationProtection(
111
+ vaultId: number,
112
+ triggerRatio: number,
113
+ targetRatio: number,
114
+ ratioState: RatioState,
115
+ daiAddr?: EthereumAddress,
116
+ ) {
117
+ const bundleId = Bundles.MainnetIds.MAKER_SW_LIQUIDATION_PROTECTION;
118
+
119
+ const triggerData = triggerService.makerRatioTrigger.encode(vaultId, triggerRatio, ratioState);
120
+ const subData = subDataService.makerLiquidationProtectionSubData.encode(vaultId, targetRatio, daiAddr);
121
+
122
+ return [
123
+ bundleId,
124
+ true,
125
+ triggerData,
126
+ subData,
127
+ ];
128
+ },
122
129
  };
123
130
 
124
131
  export const liquityEncode = {
@@ -179,20 +186,19 @@ export const liquityEncode = {
179
186
 
180
187
  return [strategyId, isBundle, triggerData, subData];
181
188
  },
182
- leverageManagement(
183
- triggerRepayRatio:string,
184
- triggerBoostRatio:string,
185
- targetBoostRatio:string,
186
- targetRepayRatio:string,
187
- boostEnabled:boolean,
189
+ leverageManagementWithoutSubProxy(
190
+ strategyOrBundleId: number,
191
+ user: EthereumAddress,
192
+ ratioState: RatioState,
193
+ targetRatio: number,
194
+ triggerRatio: number,
188
195
  ) {
189
- return [
190
- new Dec(triggerRepayRatio).mul(1e16).toString(),
191
- new Dec(triggerBoostRatio).mul(1e16).toString(),
192
- new Dec(targetBoostRatio).mul(1e16).toString(),
193
- new Dec(targetRepayRatio).mul(1e16).toString(),
194
- boostEnabled,
195
- ];
196
+ const isBundle = true;
197
+
198
+ const subData = subDataService.liquityLeverageManagementSubDataWithoutSubProxy.encode(targetRatio, ratioState);
199
+ const triggerData = triggerService.liquityRatioTrigger.encode(user, triggerRatio, ratioState);
200
+
201
+ return [strategyOrBundleId, isBundle, triggerData, subData];
196
202
  },
197
203
  dsrPayback(
198
204
  proxyAddress: EthereumAddress,
@@ -248,39 +254,24 @@ export const chickenBondsEncode = {
248
254
  };
249
255
 
250
256
  export const aaveV2Encode = {
251
- leverageManagement(
252
- triggerRepayRatio: number,
253
- triggerBoostRatio: number,
254
- targetBoostRatio: number,
255
- targetRepayRatio: number,
256
- boostEnabled: boolean,
257
+ leverageManagementWithoutSubProxy(
258
+ strategyOrBundleId: number,
259
+ market: EthereumAddress,
260
+ user: EthereumAddress,
261
+ ratioState: RatioState,
262
+ targetRatio: number,
263
+ triggerRatio: number,
257
264
  ) {
258
- return subDataService.aaveV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
265
+ const isBundle = true;
266
+
267
+ const subData = subDataService.aaveV2LeverageManagementSubDataWithoutSubProxy.encode(market, targetRatio, ratioState);
268
+ const triggerData = triggerService.aaveV2RatioTrigger.encode(user, market, triggerRatio, ratioState);
269
+
270
+ return [strategyOrBundleId, isBundle, triggerData, subData];
259
271
  },
260
272
  };
261
273
 
262
274
  export const aaveV3Encode = {
263
- leverageManagement(
264
- triggerRepayRatio: number,
265
- triggerBoostRatio: number,
266
- targetBoostRatio: number,
267
- targetRepayRatio: number,
268
- boostEnabled: boolean,
269
- ) {
270
- let subInput = '0x';
271
-
272
- subInput = subInput.concat(new Dec(triggerRepayRatio).mul(1e16).toHex().slice(2)
273
- .padStart(32, '0'));
274
- subInput = subInput.concat(new Dec(triggerBoostRatio).mul(1e16).toHex().slice(2)
275
- .padStart(32, '0'));
276
- subInput = subInput.concat(new Dec(targetBoostRatio).mul(1e16).toHex().slice(2)
277
- .padStart(32, '0'));
278
- subInput = subInput.concat(new Dec(targetRepayRatio).mul(1e16).toHex().slice(2)
279
- .padStart(32, '0'));
280
- subInput = subInput.concat(boostEnabled ? '01' : '00');
281
-
282
- return subInput;
283
- },
284
275
  closeToAsset(
285
276
  strategyOrBundleId: number,
286
277
  isBundle: boolean = true,
@@ -370,6 +361,27 @@ export const aaveV3Encode = {
370
361
  return [strategyOrBundleId, isBundle, triggerData, subData];
371
362
  },
372
363
 
364
+ liquidationProtection(
365
+ strategyOrBundleId: number,
366
+ market: EthereumAddress,
367
+ user: EthereumAddress,
368
+ ratioState: RatioState,
369
+ targetRatio: number,
370
+ triggerRatio: number,
371
+ ) {
372
+ const isBundle = true;
373
+
374
+ const subData = subDataService.aaveV3LiquidationProtectionSubData.encode(
375
+ targetRatio,
376
+ ratioState,
377
+ market,
378
+ user,
379
+ );
380
+ const triggerData = triggerService.aaveV3RatioTrigger.encode(user, market, triggerRatio, ratioState);
381
+
382
+ return [strategyOrBundleId, isBundle, triggerData, subData];
383
+ },
384
+
373
385
  leverageManagementOnPriceGeneric(
374
386
  strategyOrBundleId: number,
375
387
  price: number,
@@ -441,30 +453,57 @@ export const aaveV3Encode = {
441
453
  };
442
454
 
443
455
  export const compoundV2Encode = {
444
- leverageManagement(
445
- triggerRepayRatio: number,
446
- triggerBoostRatio: number,
447
- targetBoostRatio: number,
448
- targetRepayRatio: number,
449
- boostEnabled: boolean,
456
+ leverageManagementWithoutSubProxy(
457
+ strategyOrBundleId: number,
458
+ user: EthereumAddress,
459
+ ratioState: RatioState,
460
+ targetRatio: number,
461
+ triggerRatio: number,
450
462
  ) {
451
- return subDataService.compoundV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
463
+ const isBundle = true;
464
+
465
+ const subData = subDataService.compoundV2LeverageManagementSubDataWithoutSubProxy.encode(targetRatio, ratioState);
466
+ const triggerData = triggerService.compoundV2RatioTrigger.encode(user, triggerRatio, ratioState);
467
+
468
+ return [strategyOrBundleId, isBundle, triggerData, subData];
452
469
  },
453
470
  };
454
471
 
455
472
  export const compoundV3Encode = {
456
- leverageManagement(
473
+ leverageManagementWithoutSubProxy(
474
+ strategyOrBundleId: number,
457
475
  market: EthereumAddress,
458
476
  baseToken: EthereumAddress,
459
- triggerRepayRatio: number,
460
- triggerBoostRatio: number,
461
- targetBoostRatio: number,
462
- targetRepayRatio: number,
463
- boostEnabled: boolean,
464
- isEOA: boolean,
477
+ user: EthereumAddress,
478
+ ratioState: RatioState,
479
+ targetRatio: number,
480
+ triggerRatio: number,
481
+ ) {
482
+ const isBundle = true;
483
+
484
+ const subData = subDataService.compoundV3LeverageManagementSubDataWithoutSubProxy.encode(market, baseToken, targetRatio, ratioState);
485
+ const triggerData = triggerService.compoundV3RatioTrigger.encode(user, market, triggerRatio, ratioState);
486
+
487
+ return [strategyOrBundleId, isBundle, triggerData, subData];
488
+ },
489
+
490
+ liquidationProtectionWithoutSubProxy(
491
+ strategyOrBundleId: number,
492
+ market: EthereumAddress,
493
+ baseToken: EthereumAddress,
494
+ user: EthereumAddress,
495
+ ratioState: RatioState,
496
+ targetRatio: number,
497
+ triggerRatio: number,
465
498
  ) {
466
- return subDataService.compoundV3LeverageManagementSubData.encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA);
499
+ const isBundle = true;
500
+
501
+ const subData = subDataService.compoundV3LiquidationProtectionSubDataWithoutSubProxy.encode(market, baseToken, targetRatio, ratioState);
502
+ const triggerData = triggerService.compoundV3RatioTrigger.encode(user, market, triggerRatio, ratioState);
503
+
504
+ return [strategyOrBundleId, isBundle, triggerData, subData];
467
505
  },
506
+
468
507
  leverageManagementOnPrice(
469
508
  strategyOrBundleId: number,
470
509
  market: EthereumAddress,
@@ -503,21 +542,6 @@ export const compoundV3Encode = {
503
542
  },
504
543
  };
505
544
 
506
- export const compoundV3L2Encode = {
507
- leverageManagement(
508
- market: EthereumAddress,
509
- baseToken: EthereumAddress,
510
- triggerRepayRatio: number,
511
- triggerBoostRatio: number,
512
- targetBoostRatio: number,
513
- targetRepayRatio: number,
514
- boostEnabled: boolean,
515
- isEOA: boolean = false,
516
- ) {
517
- return subDataService.compoundV3L2LeverageManagementSubData.encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA);
518
- },
519
- };
520
-
521
545
  export const morphoAaveV2Encode = {
522
546
  leverageManagement(
523
547
  triggerRepayRatio: number,
@@ -547,40 +571,28 @@ export const exchangeEncode = {
547
571
 
548
572
  return [strategyId, false, triggerData, subData];
549
573
  },
550
- limitOrder(
574
+ limitOrderWithoutSubProxy(
551
575
  fromToken: EthereumAddress,
552
576
  toToken: EthereumAddress,
553
577
  amount: string,
554
578
  targetPrice: string,
555
579
  goodUntil: string | number,
556
580
  orderType: OrderType,
581
+ fromTokenDecimals: number,
582
+ toTokenDecimals: number,
583
+ network: ChainId,
557
584
  ) {
558
- return subDataService.exchangeLimitOrderSubData.encode(fromToken, toToken, amount, targetPrice, goodUntil, orderType);
585
+ requireAddresses([fromToken, toToken]);
586
+ const subData = subDataService.exchangeLimitOrderSubDataWithoutSubProxy.encode(fromToken, toToken, amount);
587
+ const triggerData = triggerService.exchangeOffchainPriceTrigger.encode(targetPrice, Number(goodUntil), orderType, fromTokenDecimals, toTokenDecimals);
588
+
589
+ const strategyId = STRATEGY_IDS[network].EXCHANGE_LIMIT_ORDER;
590
+
591
+ return [strategyId, false, triggerData, subData];
559
592
  },
560
593
  };
561
594
 
562
595
  export const sparkEncode = {
563
- leverageManagement(
564
- triggerRepayRatio: number,
565
- triggerBoostRatio: number,
566
- targetBoostRatio: number,
567
- targetRepayRatio: number,
568
- boostEnabled: boolean,
569
- ) {
570
- let subInput = '0x';
571
-
572
- subInput = subInput.concat(new Dec(triggerRepayRatio).mul(1e16).toHex().slice(2)
573
- .padStart(32, '0'));
574
- subInput = subInput.concat(new Dec(triggerBoostRatio).mul(1e16).toHex().slice(2)
575
- .padStart(32, '0'));
576
- subInput = subInput.concat(new Dec(targetBoostRatio).mul(1e16).toHex().slice(2)
577
- .padStart(32, '0'));
578
- subInput = subInput.concat(new Dec(targetRepayRatio).mul(1e16).toHex().slice(2)
579
- .padStart(32, '0'));
580
- subInput = subInput.concat(boostEnabled ? '01' : '00');
581
-
582
- return subInput;
583
- },
584
596
  leverageManagementOnPrice(
585
597
  strategyOrBundleId: number,
586
598
  isBundle: boolean = true,
@@ -642,6 +654,26 @@ export const sparkEncode = {
642
654
 
643
655
  return [strategyOrBundleId, isBundle, triggerData, subData];
644
656
  },
657
+
658
+ liquidationProtection(
659
+ strategyOrBundleId: number,
660
+ market: EthereumAddress,
661
+ user: EthereumAddress,
662
+ ratioState: RatioState,
663
+ targetRatio: number,
664
+ triggerRatio: number,
665
+ ) {
666
+ const isBundle = true;
667
+
668
+ const subData = subDataService.sparkLiquidationProtectionSubData.encode(
669
+ targetRatio,
670
+ ratioState,
671
+ );
672
+ const triggerData = triggerService.sparkRatioTrigger.encode(user, market, triggerRatio, ratioState);
673
+
674
+ return [strategyOrBundleId, isBundle, triggerData, subData];
675
+ },
676
+
645
677
  collateralSwitch(
646
678
  strategyOrBundleId: number,
647
679
  fromAsset: EthereumAddress,
@@ -738,6 +770,35 @@ export const morphoBlueEncode = {
738
770
 
739
771
  return [strategyOrBundleId, isBundle, triggerData, subData];
740
772
  },
773
+
774
+ liquidationProtection(
775
+ marketId: string,
776
+ loanToken: EthereumAddress,
777
+ collToken: EthereumAddress,
778
+ oracle: EthereumAddress,
779
+ irm: EthereumAddress,
780
+ lltv: string,
781
+ ratioState: RatioState,
782
+ targetRatio: number,
783
+ triggerRatio: number,
784
+ user: EthereumAddress,
785
+ isEOA: boolean,
786
+ network: ChainId,
787
+ ) {
788
+ const subData = subDataService.morphoBlueLiquidationProtectionSubData.encode(loanToken, collToken, oracle, irm, lltv, ratioState, targetRatio, user, isEOA);
789
+
790
+ const triggerData = triggerService.morphoBlueRatioTrigger.encode(marketId, user, triggerRatio, ratioState);
791
+
792
+
793
+ // Type casting because there is no MORPHO_BLUE_EOA_LIQUIDATION_PROTECTION for Base chain.
794
+ // That is fine because we will just always send isEOA == false for Base chain.
795
+ const bundleNetwork = getBundleIdsByNetwork(network) as typeof Bundles.MainnetIds;
796
+ const bundleId = isEOA ? bundleNetwork.MORPHO_BLUE_EOA_LIQUIDATION_PROTECTION : bundleNetwork.MORPHO_BLUE_SW_LIQUIDATION_PROTECTION;
797
+ const isBundle = true;
798
+
799
+ return [bundleId, isBundle, triggerData, subData];
800
+ },
801
+
741
802
  leverageManagementOnPrice(
742
803
  strategyOrBundleId: number,
743
804
  isBundle: boolean = true,
@@ -866,6 +927,22 @@ export const fluidEncode = {
866
927
 
867
928
  return [strategyOrBundleId, isBundle, triggerData, subData];
868
929
  },
930
+
931
+ liquidationProtection(
932
+ nftId: string,
933
+ vault: EthereumAddress,
934
+ ratioState: RatioState,
935
+ targetRatio: number,
936
+ triggerRatio: number,
937
+ strategyOrBundleId: number,
938
+ ) {
939
+ const isBundle = true;
940
+ const subData = subDataService.fluidLiquidationProtectionSubData.encode(nftId, vault, ratioState, targetRatio);
941
+ const triggerData = triggerService.fluidRatioTrigger.encode(nftId, triggerRatio, ratioState);
942
+
943
+ return [strategyOrBundleId, isBundle, triggerData, subData];
944
+ },
945
+
869
946
  };
870
947
 
871
948
  export const aaveV4Encode = {
@@ -883,6 +960,22 @@ export const aaveV4Encode = {
883
960
 
884
961
  return [strategyOrBundleId, isBundle, triggerData, subData];
885
962
  },
963
+
964
+ liquidationProtection(
965
+ strategyOrBundleId: number,
966
+ owner: EthereumAddress,
967
+ spoke: EthereumAddress,
968
+ ratioState: RatioState,
969
+ targetRatio: number,
970
+ triggerRatio: number,
971
+ ) {
972
+ const isBundle = true;
973
+ const subData = subDataService.aaveV4LiquidationProtectionSubData.encode(spoke, owner, ratioState, targetRatio);
974
+ const triggerData = triggerService.aaveV4RatioTrigger.encode(owner, spoke, triggerRatio, ratioState);
975
+
976
+ return [strategyOrBundleId, isBundle, triggerData, subData];
977
+ },
978
+
886
979
  leverageManagementOnPrice(
887
980
  strategyOrBundleId: number,
888
981
  owner: EthereumAddress,
@@ -734,78 +734,6 @@ describe('Feature: subDataService.ts', () => {
734
734
  });
735
735
  });
736
736
 
737
- describe('When testing subDataService.compoundV3LeverageManagementSubData', () => {
738
- describe('encode()', () => {
739
- const examples: Array<[[EthereumAddress, EthereumAddress, string, string, string, string, boolean, boolean], [market: EthereumAddress, baseToken: EthereumAddress, triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean, isEOA: boolean]]> = [
740
- [
741
- [
742
- web3Utils.toChecksumAddress('0x1C0F620155e85491f8D35440eb17538Ca5c55212'),
743
- web3Utils.toChecksumAddress(getAssetInfo('USDC', ChainId.Ethereum).address),
744
- new Dec(160).mul(1e16).toString(),
745
- new Dec(220).mul(1e16).toString(),
746
- new Dec(180).mul(1e16).toString(),
747
- new Dec(190).mul(1e16).toString(),
748
- true, false,
749
- ],
750
- [
751
- web3Utils.toChecksumAddress('0x1C0F620155e85491f8D35440eb17538Ca5c55212'),
752
- web3Utils.toChecksumAddress(getAssetInfo('USDC', ChainId.Ethereum).address),
753
- 160, 220, 180, 190,
754
- true, false,
755
- ]
756
- ],
757
- [
758
- [
759
- web3Utils.toChecksumAddress('0xaC0F620155e85491f8D35440eb17538Ca5c55212'),
760
- web3Utils.toChecksumAddress(getAssetInfo('WETH', ChainId.Ethereum).address),
761
- new Dec(160).mul(1e16).toString(),
762
- new Dec(210).mul(1e16).toString(),
763
- new Dec(180).mul(1e16).toString(),
764
- new Dec(190).mul(1e16).toString(),
765
- false, true,
766
- ],
767
- [
768
- web3Utils.toChecksumAddress('0xaC0F620155e85491f8D35440eb17538Ca5c55212'),
769
- web3Utils.toChecksumAddress(getAssetInfo('WETH', ChainId.Ethereum).address),
770
- 160, 210, 180, 190,
771
- false, true,
772
- ]
773
- ],
774
- ];
775
-
776
- examples.forEach(([expected, actual]) => {
777
- it(`Given ${actual} should return expected value: ${expected}`, () => {
778
- expect(subDataService.compoundV3LeverageManagementSubData.encode(...actual)).to.eql(expected);
779
- });
780
- });
781
- });
782
-
783
- describe('decode()', () => {
784
- const examples: Array<[{ targetRatio: number }, SubData]> = [
785
- [
786
- { targetRatio: 123 },
787
- [
788
- '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000',
789
- '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000001111d67bb1bb0000',
790
- ],
791
- ],
792
- [
793
- { targetRatio: 200 },
794
- [
795
- '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000000000000000000000',
796
- '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000001bc16d674ec80000',
797
- ],
798
- ],
799
- ];
800
-
801
- examples.forEach(([expected, actual]) => {
802
- it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
803
- expect(subDataService.compoundV3LeverageManagementSubData.decode(actual)).to.eql(expected);
804
- });
805
- });
806
- });
807
- });
808
-
809
737
  describe('When testing subDataService.morphoAaveV2LeverageManagementSubData', () => {
810
738
  describe('encode()', () => {
811
739
  const examples: Array<[[string, string, string, string, boolean], [triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean]]> = [
@@ -1408,54 +1336,6 @@ describe('Feature: subDataService.ts', () => {
1408
1336
  });
1409
1337
  });
1410
1338
 
1411
- describe('When testing subDataService.compoundV3L2LeverageManagementSubData', () => {
1412
- describe('encode()', () => {
1413
- const examples: Array<[
1414
- string,
1415
- [market: EthereumAddress, baseToken: EthereumAddress, triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean, isEOA: boolean],
1416
- ]> = [
1417
- [
1418
- '0x0313D212133AFab8F2b829B1066c7e43caD94e2c0213D212133AfaB8F2b829B1066C7E43cAD94E2c000000000000000016345785d8a0000000000000000000001e87f85809dc0000000000000000000018fae27693b4000000000000000000001a5e27eef13e00000100',
1419
- [web3Utils.toChecksumAddress('0x0313d212133AFaB8F2B829B1066c7E43cAd94E2c'), web3Utils.toChecksumAddress('0x0213d212133AFaB8F2B829B1066c7E43cAd94E2c'), 160, 220, 180, 190, true, false]
1420
- ],
1421
- [
1422
- '0x0313D212133AFab8F2b829B1066c7e43caD94e2c0413d212133afAb8F2B829b1066C7e43cAd94e2c000000000000000016345785d8a0000000000000000000001e87f85809dc0000000000000000000018fae27693b4000000000000000000000f43fc2c04ee00000000',
1423
- [web3Utils.toChecksumAddress('0x0313d212133AFaB8F2B829B1066c7E43cAd94E2c'), web3Utils.toChecksumAddress('0x0413d212133AFaB8F2B829B1066c7E43cAd94E2c'), 160, 220, 180, 110, false, false]
1424
- ],
1425
- ];
1426
-
1427
- examples.forEach(([expected, actual]) => {
1428
- it(`Given ${actual} should return expected value: ${expected}`, () => {
1429
- expect(subDataService.compoundV3L2LeverageManagementSubData.encode(...actual)).to.eql(expected);
1430
- });
1431
- });
1432
- });
1433
- describe('decode()', () => {
1434
- const examples: Array<[{ targetRatio: number }, SubData]> = [
1435
- [
1436
- { targetRatio: 200 },
1437
- [
1438
- '0x0000000000000000000000000313d212133AFaB8F2B829B1066c7E43cAd94E2c', '0x0000000000000000000000000213d212133AFaB8F2B829B1066c7E43cAd94E2c',
1439
- '0x0000000000000000000000000000000000000000000000000000000000000001', '0x0000000000000000000000000000000000000000000000001bc16d674ec80000',
1440
- ],
1441
- ],
1442
- [
1443
- { targetRatio: 123 },
1444
- [
1445
- '0x0000000000000000000000000313d212133AFaB8F2B829B1066c7E43cAd94E2c', '0x0000000000000000000000000413d212133AFaB8F2B829B1066c7E43cAd94E2c',
1446
- '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000001111d67bb1bb0000',
1447
- ],
1448
- ],
1449
- ];
1450
-
1451
- examples.forEach(([expected, actual]) => {
1452
- it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
1453
- expect(subDataService.compoundV3L2LeverageManagementSubData.decode(actual)).to.eql(expected);
1454
- });
1455
- });
1456
- });
1457
- });
1458
-
1459
1339
  describe('When testing subDataService.morphoBlueLeverageManagementSubData', () => {
1460
1340
  describe('encode()', () => {
1461
1341
  const examples: Array<[