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