@defisaver/automation-sdk 2.0.6 → 2.0.9

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 (54) hide show
  1. package/.env +4 -0
  2. package/.env.dev +5 -0
  3. package/.tests.sh +3 -0
  4. package/README.md +3 -1
  5. package/esm/automation/private/LegacyAutomation.js +9 -3
  6. package/esm/automation/private/LegacyProtocol.test.d.ts +1 -0
  7. package/esm/automation/private/LegacyProtocol.test.js +25 -0
  8. package/esm/automation/private/Protocol.test.d.ts +1 -0
  9. package/esm/automation/private/Protocol.test.js +25 -0
  10. package/esm/automation/private/StrategiesAutomation.d.ts +4 -0
  11. package/esm/automation/private/StrategiesAutomation.js +29 -4
  12. package/esm/constants/index.js +5 -0
  13. package/esm/services/contractService.d.ts +3 -2
  14. package/esm/services/contractService.js +7 -1
  15. package/esm/services/ethereumService.test.d.ts +1 -0
  16. package/esm/services/ethereumService.test.js +241 -0
  17. package/esm/services/strategiesService.js +14 -0
  18. package/esm/services/strategiesService.test.d.ts +1 -0
  19. package/esm/services/strategiesService.test.js +108 -0
  20. package/esm/services/strategySubService.d.ts +5 -3
  21. package/esm/services/strategySubService.js +10 -6
  22. package/esm/services/strategySubService.test.d.ts +1 -0
  23. package/esm/services/strategySubService.test.js +692 -0
  24. package/esm/services/subDataService.d.ts +8 -1
  25. package/esm/services/subDataService.js +23 -14
  26. package/esm/services/subDataService.test.d.ts +1 -0
  27. package/esm/services/subDataService.test.js +993 -0
  28. package/esm/services/triggerService.d.ts +7 -0
  29. package/esm/services/triggerService.js +14 -1
  30. package/esm/services/triggerService.test.js +119 -17
  31. package/esm/types/enums.d.ts +4 -2
  32. package/esm/types/enums.js +2 -0
  33. package/esm/types/index.d.ts +13 -4
  34. package/package.json +5 -5
  35. package/src/automation/private/LegacyAutomation.ts +14 -4
  36. package/src/automation/private/LegacyProtocol.test.ts +24 -0
  37. package/src/automation/private/Protocol.test.ts +24 -0
  38. package/src/automation/private/StrategiesAutomation.ts +40 -6
  39. package/src/constants/index.ts +5 -0
  40. package/src/services/contractService.ts +17 -4
  41. package/src/services/ethereumService.test.ts +256 -0
  42. package/src/services/ethereumService.ts +2 -1
  43. package/src/services/strategiesService.test.ts +103 -0
  44. package/src/services/strategiesService.ts +27 -3
  45. package/src/services/strategySubService.test.ts +835 -0
  46. package/src/services/strategySubService.ts +28 -15
  47. package/src/services/subDataService.test.ts +1063 -0
  48. package/src/services/subDataService.ts +29 -14
  49. package/src/services/triggerService.test.ts +131 -19
  50. package/src/services/triggerService.ts +14 -0
  51. package/src/services/utils.test.ts +1 -1
  52. package/src/types/enums.ts +2 -0
  53. package/src/types/index.ts +20 -5
  54. package/umd/index.js +919 -523
@@ -1,4 +1,5 @@
1
1
  import type { EthereumAddress } from '../types';
2
+ import type { OrderType } from '../types/enums';
2
3
  import { ChainId } from '../types/enums';
3
4
  export declare const makerRepayFromSavingsSubData: {
4
5
  encode(vaultId: number, targetRatioPercentage: number, chainId: ChainId, daiAddr?: EthereumAddress, mcdCdpManagerAddr?: EthereumAddress): string[];
@@ -105,7 +106,7 @@ export declare const exchangeDcaSubData: {
105
106
  };
106
107
  };
107
108
  export declare const exchangeLimitOrderSubData: {
108
- encode(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string, targetPrice: string, goodUntil: string | number, orderType: number): string[];
109
+ encode(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string, targetPrice: string, goodUntil: string | number, orderType: OrderType): string[];
109
110
  decode: (subData: string[], chainId: ChainId) => {
110
111
  fromToken: string;
111
112
  toToken: string;
@@ -138,3 +139,9 @@ export declare const liquityDsrSupplySubData: {
138
139
  targetRatio: number;
139
140
  };
140
141
  };
142
+ export declare const liquityDebtInFrontRepaySubData: {
143
+ encode: (targetRatioIncrease: number) => string[];
144
+ decode: (subData: string[]) => {
145
+ targetRatioIncrease: number;
146
+ };
147
+ };
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.liquityDsrSupplySubData = exports.liquityDsrPaybackSubData = exports.sparkQuotePriceSubData = exports.sparkLeverageManagementSubData = exports.exchangeLimitOrderSubData = exports.exchangeDcaSubData = exports.liquityPaybackUsingChickenBondSubData = exports.cBondsRebondSubData = exports.morphoAaveV2LeverageManagementSubData = exports.compoundV3LeverageManagementSubData = exports.compoundV2LeverageManagementSubData = exports.aaveV3QuotePriceSubData = exports.aaveV3LeverageManagementSubData = exports.aaveV2LeverageManagementSubData = exports.liquityCloseSubData = exports.liquityLeverageManagementSubData = exports.makerLeverageManagementSubData = exports.makerCloseSubData = exports.liquityRepayFromSavingsSubData = exports.makerRepayFromSavingsSubData = void 0;
6
+ exports.liquityDebtInFrontRepaySubData = exports.liquityDsrSupplySubData = exports.liquityDsrPaybackSubData = exports.sparkQuotePriceSubData = exports.sparkLeverageManagementSubData = exports.exchangeLimitOrderSubData = exports.exchangeDcaSubData = exports.liquityPaybackUsingChickenBondSubData = exports.cBondsRebondSubData = exports.morphoAaveV2LeverageManagementSubData = exports.compoundV3LeverageManagementSubData = exports.compoundV2LeverageManagementSubData = exports.aaveV3QuotePriceSubData = exports.aaveV3LeverageManagementSubData = exports.aaveV2LeverageManagementSubData = exports.liquityCloseSubData = exports.liquityLeverageManagementSubData = exports.makerLeverageManagementSubData = exports.makerCloseSubData = exports.liquityRepayFromSavingsSubData = exports.makerRepayFromSavingsSubData = void 0;
7
7
  const decimal_js_1 = __importDefault(require("decimal.js"));
8
8
  const web3_eth_abi_1 = __importDefault(require("web3-eth-abi"));
9
9
  const tokens_1 = require("@defisaver/tokens");
@@ -61,21 +61,13 @@ exports.makerCloseSubData = {
61
61
  const vaultId = +web3_eth_abi_1.default.decodeParameter('uint256', subData[0]);
62
62
  // if closing to collateral, asset addr will be 2nd param out of 4
63
63
  // if closing to DAI, will return 2nd param out of 3, which will be DAI addr
64
- const closeToAssetAddr = web3_eth_abi_1.default.decodeParameter('address', subData[1]).toString().toLowerCase();
64
+ const closeToAssetAddr = web3_eth_abi_1.default.decodeParameter('address', subData[1]).toString();
65
65
  return {
66
66
  vaultId, closeToAssetAddr,
67
67
  };
68
68
  },
69
69
  };
70
70
  exports.makerLeverageManagementSubData = {
71
- // encode: (vaultId:number, repayFrom, boostFrom, boostTo, repayTo, boostEnabled) => [
72
- // vaultId,
73
- // new Dec(repayFrom).mul(1e16).toString(),
74
- // new Dec(boostFrom).mul(1e16).toString(),
75
- // new Dec(boostTo).mul(1e16).toString(),
76
- // new Dec(repayTo).mul(1e16).toString(),
77
- // boostEnabled,
78
- // ],
79
71
  decode: (subData) => {
80
72
  const vaultId = +web3_eth_abi_1.default.decodeParameter('uint256', subData[0]).toString();
81
73
  const weiRatio = web3_eth_abi_1.default.decodeParameter('uint256', subData[1]);
@@ -96,16 +88,16 @@ exports.liquityCloseSubData = {
96
88
  const _debtAddr = debtAddr || (0, tokens_1.getAssetInfo)('LUSD', chainId).address;
97
89
  const collAddrEncoded = web3_eth_abi_1.default.encodeParameter('address', _collAddr);
98
90
  const debtAddrEncoded = web3_eth_abi_1.default.encodeParameter('address', _debtAddr);
99
- // if (compareAddresses(closeToAssetAddr, daiAddr)) { // TODO - Uhm, wth?
91
+ // if (compareAddresses(closeToAssetAddr, _debtAddr)) { // Closing to debt strategy was not implemented, but it should be in the future
100
92
  // // close to LUSD strategy
101
- // return [daiAddrEncoded, mcdManagerAddrEncoded];
93
+ // return [debtAddrEncoded, collAddrEncoded];
102
94
  // }
103
95
  // close to collateral strategy
104
96
  return [collAddrEncoded, debtAddrEncoded];
105
97
  },
106
98
  decode(subData) {
107
- const closeToAssetAddr = web3_eth_abi_1.default.decodeParameter('address', subData[0]).toString().toLowerCase();
108
- const debtAddr = web3_eth_abi_1.default.decodeParameter('address', subData[1]).toString().toLowerCase();
99
+ const closeToAssetAddr = web3_eth_abi_1.default.decodeParameter('address', subData[0]).toString();
100
+ const debtAddr = web3_eth_abi_1.default.decodeParameter('address', subData[1]).toString();
109
101
  return { closeToAssetAddr, debtAddr };
110
102
  },
111
103
  };
@@ -331,3 +323,20 @@ exports.liquityDsrSupplySubData = {
331
323
  return { targetRatio };
332
324
  },
333
325
  };
326
+ exports.liquityDebtInFrontRepaySubData = {
327
+ encode: (targetRatioIncrease) => {
328
+ const wethAddress = (0, tokens_1.getAssetInfo)('WETH').address;
329
+ const lusdAddress = (0, tokens_1.getAssetInfo)('LUSD').address;
330
+ const wethAddressEncoded = web3_eth_abi_1.default.encodeParameter('address', wethAddress);
331
+ const lusdAddressEncoded = web3_eth_abi_1.default.encodeParameter('address', lusdAddress);
332
+ const targetRatioIncreaseEncoded = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatioIncrease));
333
+ const withdrawIdEncoded = web3_eth_abi_1.default.encodeParameter('uint8', 1); // withdraw - 1
334
+ const paybackIdEncoded = web3_eth_abi_1.default.encodeParameter('uint8', 0); // payback - 0
335
+ return [wethAddressEncoded, lusdAddressEncoded, targetRatioIncreaseEncoded, withdrawIdEncoded, paybackIdEncoded];
336
+ },
337
+ decode: (subData) => {
338
+ const weiRatio = web3_eth_abi_1.default.decodeParameter('uint256', subData[2]);
339
+ const targetRatioIncrease = (0, utils_1.weiToRatioPercentage)(weiRatio);
340
+ return { targetRatioIncrease };
341
+ },
342
+ };
@@ -0,0 +1 @@
1
+ export {};