@defisaver/automation-sdk 3.3.15 → 3.3.16-liq-prot-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 (42) hide show
  1. package/cjs/constants/index.js +145 -0
  2. package/cjs/index.d.ts +2 -2
  3. package/cjs/index.js +5 -2
  4. package/cjs/services/strategiesService.js +158 -9
  5. package/cjs/services/strategySubService.d.ts +17 -16
  6. package/cjs/services/strategySubService.js +69 -28
  7. package/cjs/services/strategySubService.test.js +69 -40
  8. package/cjs/services/subDataService.d.ts +70 -20
  9. package/cjs/services/subDataService.js +23 -79
  10. package/cjs/services/subDataService.test.js +117 -202
  11. package/cjs/services/triggerService.test.js +60 -0
  12. package/cjs/services/utils.d.ts +2 -1
  13. package/cjs/services/utils.js +14 -1
  14. package/cjs/types/enums.d.ts +39 -6
  15. package/cjs/types/enums.js +33 -0
  16. package/esm/constants/index.js +145 -0
  17. package/esm/index.d.ts +2 -2
  18. package/esm/index.js +5 -2
  19. package/esm/services/strategiesService.js +158 -9
  20. package/esm/services/strategySubService.d.ts +17 -16
  21. package/esm/services/strategySubService.js +69 -28
  22. package/esm/services/strategySubService.test.js +70 -38
  23. package/esm/services/subDataService.d.ts +70 -20
  24. package/esm/services/subDataService.js +21 -77
  25. package/esm/services/subDataService.test.js +118 -200
  26. package/esm/services/triggerService.test.js +61 -1
  27. package/esm/services/utils.d.ts +2 -1
  28. package/esm/services/utils.js +13 -1
  29. package/esm/types/enums.d.ts +39 -6
  30. package/esm/types/enums.js +33 -0
  31. package/package.json +1 -1
  32. package/src/constants/index.ts +147 -1
  33. package/src/index.ts +22 -6
  34. package/src/services/strategiesService.ts +222 -9
  35. package/src/services/strategySubService.test.ts +86 -46
  36. package/src/services/strategySubService.ts +166 -39
  37. package/src/services/subDataService.test.ts +128 -214
  38. package/src/services/subDataService.ts +42 -106
  39. package/src/services/triggerService.test.ts +69 -0
  40. package/src/services/utils.test.ts +1 -1
  41. package/src/services/utils.ts +15 -1
  42. package/src/types/enums.ts +33 -2
@@ -3,8 +3,8 @@ 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.sparkCollateralSwitchSubData = 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;
7
- exports.fluidLeverageManagementSubData = void 0;
6
+ exports.crvUSDLeverageManagementSubData = exports.sparkCollateralSwitchSubData = exports.sparkLeverageManagementOnPriceSubData = exports.sparkCloseGenericSubData = exports.sparkLiquidationProtectionSubData = exports.sparkLeverageManagementSubData = exports.legacySparkLeverageManagementSubData = exports.exchangeLimitOrderSubData = exports.legacyExchangeLimitOrderSubData = exports.exchangeDcaSubData = exports.compoundV3CloseSubData = exports.compoundV3LeverageManagementOnPriceSubData = exports.compoundV3LiquidationProtectionSubData = exports.compoundV3LeverageManagementSubData = exports.compoundV2LeverageManagementSubData = exports.legacyCompoundV2LeverageManagementSubData = exports.aaveV4CollateralSwitchSubData = exports.aaveV4CloseSubData = exports.aaveV4LeverageManagementOnPriceSubData = exports.aaveV4LiquidationProtectionSubData = exports.aaveV4LeverageManagementSubData = exports.aaveV3LeverageManagementOnPriceSubData = exports.aaveV3QuotePriceSubData = exports.aaveV3CollateralSwitchSubData = exports.aaveV3CloseGenericSubData = exports.aaveV3LeverageManagementOnPriceGeneric = exports.aaveV3LiquidationProtectionSubData = exports.aaveV3LeverageManagementSubData = exports.legacyAaveV3LeverageManagementSubData = exports.aaveV2LeverageManagementSubData = exports.legacyAaveV2LeverageManagementSubData = exports.liquityV2PaybackSubData = exports.liquityV2LeverageManagementOnPriceSubData = exports.liquityV2CloseSubData = exports.liquityV2LeverageManagementSubData = exports.liquityDebtInFrontRepaySubData = exports.liquityDsrSupplySubData = exports.liquityDsrPaybackSubData = exports.liquityCloseSubData = exports.liquityLeverageManagementSubData = exports.legacyLiquityLeverageManagementSubData = exports.liquityRepayFromSavingsSubData = exports.makerLiquidationProtectionSubData = exports.makerLeverageManagementSubData = exports.legacyMakerLeverageManagementSubData = exports.makerCloseSubData = exports.makerRepayFromSavingsSubData = exports.liquityPaybackUsingChickenBondSubData = exports.cBondsRebondSubData = exports.morphoAaveV2LeverageManagementSubData = void 0;
7
+ exports.fluidLiquidationProtectionSubData = exports.fluidLeverageManagementSubData = exports.morphoBlueCloseOnPriceSubData = exports.morphoBlueLeverageManagementOnPriceSubData = exports.morphoBlueLiquidationProtectionSubData = exports.morphoBlueLeverageManagementSubData = exports.crvUSDPaybackSubData = void 0;
8
8
  const decimal_js_1 = __importDefault(require("decimal.js"));
9
9
  const web3_eth_abi_1 = __importDefault(require("web3-eth-abi"));
10
10
  const web3_utils_1 = require("web3-utils");
@@ -22,16 +22,6 @@ const utils_1 = require("./utils");
22
22
  |_______/ |_______|| _| | _| `._____||_______| \______/__/ \__\ |__| |_______||_______/
23
23
  */
24
24
  exports.morphoAaveV2LeverageManagementSubData = {
25
- encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
26
- return [
27
- (0, utils_1.ratioPercentageToWei)(triggerRepayRatio),
28
- (0, utils_1.ratioPercentageToWei)(triggerBoostRatio),
29
- (0, utils_1.ratioPercentageToWei)(targetBoostRatio),
30
- (0, utils_1.ratioPercentageToWei)(targetRepayRatio),
31
- // @ts-ignore
32
- boostEnabled,
33
- ];
34
- },
35
25
  decode(subData) {
36
26
  const ratioWei = web3_eth_abi_1.default.decodeParameter('uint128', subData[1]);
37
27
  const targetRatio = (0, utils_1.weiToRatioPercentage)(ratioWei);
@@ -39,10 +29,6 @@ exports.morphoAaveV2LeverageManagementSubData = {
39
29
  },
40
30
  };
41
31
  exports.cBondsRebondSubData = {
42
- encode(bondId) {
43
- const bondIdEncoded = web3_eth_abi_1.default.encodeParameter('uint256', bondId);
44
- return [bondIdEncoded];
45
- },
46
32
  decode(subData) {
47
33
  const bondId = web3_eth_abi_1.default.decodeParameter('uint256', subData[1]).toString();
48
34
  return { bondId };
@@ -124,7 +110,7 @@ exports.makerCloseSubData = {
124
110
  };
125
111
  },
126
112
  };
127
- exports.makerLeverageManagementSubData = {
113
+ exports.legacyMakerLeverageManagementSubData = {
128
114
  decode: (subData) => {
129
115
  const vaultId = +web3_eth_abi_1.default.decodeParameter('uint256', subData[0]).toString();
130
116
  const weiRatio = web3_eth_abi_1.default.decodeParameter('uint256', subData[1]);
@@ -132,7 +118,7 @@ exports.makerLeverageManagementSubData = {
132
118
  return { vaultId, targetRatio };
133
119
  },
134
120
  };
135
- exports.makerLeverageManagementWithoutSubProxy = {
121
+ exports.makerLeverageManagementSubData = {
136
122
  encode(vaultId, targetRatio, daiAddr) {
137
123
  const encodedVaultId = web3_eth_abi_1.default.encodeParameter('uint256', vaultId);
138
124
  const encodedTargetRatio = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
@@ -146,6 +132,7 @@ exports.makerLeverageManagementWithoutSubProxy = {
146
132
  return { vaultId, targetRatio, daiAddr };
147
133
  },
148
134
  };
135
+ exports.makerLiquidationProtectionSubData = exports.makerLeverageManagementSubData;
149
136
  /**
150
137
  __ __ ______ __ __ __ .___________.____ ____ ____ ____ __
151
138
  | | | | / __ \ | | | | | | | |\ \ / / \ \ / / /_ |
@@ -161,14 +148,14 @@ exports.liquityRepayFromSavingsSubData = {
161
148
  return { targetRatio };
162
149
  },
163
150
  };
164
- exports.liquityLeverageManagementSubData = {
151
+ exports.legacyLiquityLeverageManagementSubData = {
165
152
  decode: (subData) => {
166
153
  const weiRatio = web3_eth_abi_1.default.decodeParameter('uint256', subData[1]);
167
154
  const targetRatio = (0, utils_1.weiToRatioPercentage)(weiRatio);
168
155
  return { targetRatio };
169
156
  },
170
157
  };
171
- exports.liquityLeverageManagementSubDataWithoutSubProxy = {
158
+ exports.liquityLeverageManagementSubData = {
172
159
  encode(targetRatio, ratioState) {
173
160
  const encodedRatioState = web3_eth_abi_1.default.encodeParameter('uint8', ratioState);
174
161
  const encodedTargetRatio = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
@@ -399,24 +386,14 @@ exports.liquityV2PaybackSubData = {
399
386
  / _____ \ / _____ \ \ / | |____ \ / / /_
400
387
  /__/ \__\ /__/ \__\ \__/ |_______| \__/ |____|
401
388
  */
402
- exports.aaveV2LeverageManagementSubData = {
403
- encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
404
- return [
405
- new decimal_js_1.default(triggerRepayRatio).mul(1e16).toString(),
406
- new decimal_js_1.default(triggerBoostRatio).mul(1e16).toString(),
407
- new decimal_js_1.default(targetBoostRatio).mul(1e16).toString(),
408
- new decimal_js_1.default(targetRepayRatio).mul(1e16).toString(),
409
- // @ts-ignore // TODO
410
- boostEnabled,
411
- ];
412
- },
389
+ exports.legacyAaveV2LeverageManagementSubData = {
413
390
  decode(subData) {
414
391
  const ratioWei = web3_eth_abi_1.default.decodeParameter('uint256', subData[1]);
415
392
  const targetRatio = (0, utils_1.weiToRatioPercentage)(ratioWei);
416
393
  return { targetRatio };
417
394
  },
418
395
  };
419
- exports.aaveV2LeverageManagementSubDataWithoutSubProxy = {
396
+ exports.aaveV2LeverageManagementSubData = {
420
397
  encode(market, targetRatio, ratioState) {
421
398
  const encodedMarket = web3_eth_abi_1.default.encodeParameter('address', market);
422
399
  const encodedTargetRatio = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
@@ -443,14 +420,14 @@ exports.aaveV2LeverageManagementSubDataWithoutSubProxy = {
443
420
  / _____ \ / _____ \ \ / | |____ \ / ___) |
444
421
  /__/ \__\ /__/ \__\ \__/ |_______| \__/ |____/
445
422
  */
446
- exports.aaveV3LeverageManagementSubData = {
423
+ exports.legacyAaveV3LeverageManagementSubData = {
447
424
  decode(subData) {
448
425
  const ratioWei = web3_eth_abi_1.default.decodeParameter('uint256', subData[0]);
449
426
  const targetRatio = (0, utils_1.weiToRatioPercentage)(ratioWei);
450
427
  return { targetRatio };
451
428
  },
452
429
  };
453
- exports.aaveV3LeverageManagementSubDataWithoutSubProxy = {
430
+ exports.aaveV3LeverageManagementSubData = {
454
431
  encode(targetRatio, ratioState, market, user, isGeneric) {
455
432
  const encodedTargetRatio = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
456
433
  const encodedRatioState = web3_eth_abi_1.default.encodeParameter('uint8', ratioState);
@@ -469,6 +446,7 @@ exports.aaveV3LeverageManagementSubDataWithoutSubProxy = {
469
446
  return { targetRatio, ratioState };
470
447
  },
471
448
  };
449
+ exports.aaveV3LiquidationProtectionSubData = exports.aaveV3LeverageManagementSubData;
472
450
  exports.aaveV3LeverageManagementOnPriceGeneric = {
473
451
  encode(collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio, user) {
474
452
  const encodedColl = web3_eth_abi_1.default.encodeParameter('address', collAsset);
@@ -656,6 +634,7 @@ exports.aaveV4LeverageManagementSubData = {
656
634
  };
657
635
  },
658
636
  };
637
+ exports.aaveV4LiquidationProtectionSubData = exports.aaveV4LeverageManagementSubData;
659
638
  exports.aaveV4LeverageManagementOnPriceSubData = {
660
639
  encode: (spoke, owner, collAsset, collAssetId, debtAsset, debtAssetId, ratioState, targetRatio) => {
661
640
  const spokeEncoded = web3_eth_abi_1.default.encodeParameter('address', spoke);
@@ -772,24 +751,14 @@ exports.aaveV4CollateralSwitchSubData = {
772
751
  | `----.| `--' | | | | | | | \ / / /_
773
752
  \______| \______/ |__| |__| | _| \__/ |____|
774
753
  */
775
- exports.compoundV2LeverageManagementSubData = {
776
- encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
777
- return [
778
- new decimal_js_1.default(triggerRepayRatio).mul(1e16).toString(),
779
- new decimal_js_1.default(triggerBoostRatio).mul(1e16).toString(),
780
- new decimal_js_1.default(targetBoostRatio).mul(1e16).toString(),
781
- new decimal_js_1.default(targetRepayRatio).mul(1e16).toString(),
782
- // @ts-ignore // TODO
783
- boostEnabled,
784
- ];
785
- },
754
+ exports.legacyCompoundV2LeverageManagementSubData = {
786
755
  decode(subData) {
787
756
  const weiRatio = web3_eth_abi_1.default.decodeParameter('uint256', subData[0]);
788
757
  const targetRatio = (0, utils_1.weiToRatioPercentage)(weiRatio);
789
758
  return { targetRatio };
790
759
  },
791
760
  };
792
- exports.compoundV2LeverageManagementSubDataWithoutSubProxy = {
761
+ exports.compoundV2LeverageManagementSubData = {
793
762
  encode(targetRatio, ratioState) {
794
763
  const encodedTargetRatio = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
795
764
  const encodedRatioState = web3_eth_abi_1.default.encodeParameter('uint8', ratioState);
@@ -815,25 +784,6 @@ exports.compoundV2LeverageManagementSubDataWithoutSubProxy = {
815
784
  \______| \______/ |__| |__| | _| \__/ |____/
816
785
  */
817
786
  exports.compoundV3LeverageManagementSubData = {
818
- encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA) {
819
- return [
820
- market,
821
- baseToken,
822
- new decimal_js_1.default(triggerRepayRatio).mul(1e16).toString(),
823
- new decimal_js_1.default(triggerBoostRatio).mul(1e16).toString(),
824
- new decimal_js_1.default(targetBoostRatio).mul(1e16).toString(),
825
- new decimal_js_1.default(targetRepayRatio).mul(1e16).toString(),
826
- // @ts-ignore // TODO
827
- boostEnabled, isEOA,
828
- ];
829
- },
830
- decode(subData) {
831
- const weiRatio = web3_eth_abi_1.default.decodeParameter('uint256', subData[3]);
832
- const targetRatio = (0, utils_1.weiToRatioPercentage)(weiRatio);
833
- return { targetRatio };
834
- },
835
- };
836
- exports.compoundV3LeverageManagementSubDataWithoutSubProxy = {
837
787
  encode(market, baseToken, targetRatio, ratioState) {
838
788
  const encodedMarket = web3_eth_abi_1.default.encodeParameter('address', market);
839
789
  const encodedBaseToken = web3_eth_abi_1.default.encodeParameter('address', baseToken);
@@ -851,6 +801,7 @@ exports.compoundV3LeverageManagementSubDataWithoutSubProxy = {
851
801
  };
852
802
  },
853
803
  };
804
+ exports.compoundV3LiquidationProtectionSubData = exports.compoundV3LeverageManagementSubData;
854
805
  exports.compoundV3LeverageManagementOnPriceSubData = {
855
806
  encode(market, collToken, baseToken, targetRatio, ratioState, user) {
856
807
  const marketEncoded = web3_eth_abi_1.default.encodeParameter('address', market);
@@ -936,17 +887,7 @@ exports.exchangeDcaSubData = {
936
887
  };
937
888
  },
938
889
  };
939
- exports.exchangeLimitOrderSubData = {
940
- encode(fromToken, toToken, amount, targetPrice, goodUntil, orderType) {
941
- return [
942
- fromToken,
943
- toToken,
944
- amount,
945
- targetPrice,
946
- new decimal_js_1.default(goodUntil).toString(),
947
- new decimal_js_1.default(orderType).toString(),
948
- ];
949
- },
890
+ exports.legacyExchangeLimitOrderSubData = {
950
891
  decode: (subData, chainId) => {
951
892
  const fromToken = web3_eth_abi_1.default.decodeParameter('address', subData[0]).toString();
952
893
  const toToken = web3_eth_abi_1.default.decodeParameter('address', subData[1]).toString();
@@ -954,7 +895,7 @@ exports.exchangeLimitOrderSubData = {
954
895
  return { fromToken, toToken, amount };
955
896
  },
956
897
  };
957
- exports.exchangeLimitOrderSubDataWithoutSubProxy = {
898
+ exports.exchangeLimitOrderSubData = {
958
899
  encode(fromToken, toToken, amount) {
959
900
  return [
960
901
  web3_eth_abi_1.default.encodeParameter('address', fromToken),
@@ -977,14 +918,14 @@ exports.exchangeLimitOrderSubDataWithoutSubProxy = {
977
918
  .----) | | | / _____ \ | |\ \----.| . \
978
919
  |_______/ | _| /__/ \__\ | _| `._____||__|\__\
979
920
  */
980
- exports.sparkLeverageManagementSubData = {
921
+ exports.legacySparkLeverageManagementSubData = {
981
922
  decode(subData) {
982
923
  const ratioWei = web3_eth_abi_1.default.decodeParameter('uint256', subData[0]);
983
924
  const targetRatio = (0, utils_1.weiToRatioPercentage)(ratioWei);
984
925
  return { targetRatio };
985
926
  },
986
927
  };
987
- exports.sparkLeverageManagementSubDataWithoutSubProxy = {
928
+ exports.sparkLeverageManagementSubData = {
988
929
  encode(targetRatio, ratioState) {
989
930
  const encodedTargetRatio = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
990
931
  const encodedRatioState = web3_eth_abi_1.default.encodeParameter('uint8', ratioState);
@@ -998,6 +939,7 @@ exports.sparkLeverageManagementSubDataWithoutSubProxy = {
998
939
  return { targetRatio, ratioState };
999
940
  },
1000
941
  };
942
+ exports.sparkLiquidationProtectionSubData = exports.sparkLeverageManagementSubData;
1001
943
  exports.sparkCloseGenericSubData = {
1002
944
  encode(collAsset, collAssetId, debtAsset, debtAssetId, closeType, marketAddr, user) {
1003
945
  const encodedColl = web3_eth_abi_1.default.encodeParameter('address', collAsset);
@@ -1179,6 +1121,7 @@ exports.morphoBlueLeverageManagementSubData = {
1179
1121
  };
1180
1122
  },
1181
1123
  };
1124
+ exports.morphoBlueLiquidationProtectionSubData = exports.morphoBlueLeverageManagementSubData;
1182
1125
  exports.morphoBlueLeverageManagementOnPriceSubData = {
1183
1126
  encode(loanToken, collToken, oracle, irm, lltv, targetRatio, user) {
1184
1127
  const loanTokenEncoded = web3_eth_abi_1.default.encodeParameter('address', loanToken);
@@ -1281,3 +1224,4 @@ exports.fluidLeverageManagementSubData = {
1281
1224
  };
1282
1225
  },
1283
1226
  };
1227
+ exports.fluidLiquidationProtectionSubData = exports.fluidLeverageManagementSubData;