@defisaver/automation-sdk 2.0.1 → 2.0.3

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 (60) hide show
  1. package/.eslintrc.js +1 -0
  2. package/esm/abis/index.js +27 -15
  3. package/esm/automation/private/Automation.js +9 -6
  4. package/esm/automation/private/LegacyAutomation.d.ts +5 -5
  5. package/esm/automation/private/LegacyAutomation.js +30 -23
  6. package/esm/automation/private/LegacyProtocol.js +4 -1
  7. package/esm/automation/private/Protocol.js +4 -1
  8. package/esm/automation/private/StrategiesAutomation.d.ts +2 -2
  9. package/esm/automation/private/StrategiesAutomation.js +27 -21
  10. package/esm/automation/public/ArbitrumStrategies.js +10 -4
  11. package/esm/automation/public/EthereumStrategies.js +10 -4
  12. package/esm/automation/public/OptimismStrategies.js +10 -4
  13. package/esm/automation/public/legacy/LegacyAaveAutomation.js +13 -7
  14. package/esm/automation/public/legacy/LegacyCompoundAutomation.js +13 -7
  15. package/esm/automation/public/legacy/LegacyMakerAutomation.js +13 -7
  16. package/esm/configuration.js +8 -5
  17. package/esm/constants/index.js +281 -265
  18. package/esm/index.js +57 -17
  19. package/esm/services/contractService.js +22 -14
  20. package/esm/services/ethereumService.js +18 -10
  21. package/esm/services/strategiesService.js +144 -100
  22. package/esm/services/strategySubService.d.ts +2 -0
  23. package/esm/services/strategySubService.js +100 -55
  24. package/esm/services/subDataService.d.ts +12 -0
  25. package/esm/services/subDataService.js +165 -127
  26. package/esm/services/triggerService.d.ts +8 -8
  27. package/esm/services/triggerService.js +125 -95
  28. package/esm/services/utils.js +82 -33
  29. package/esm/services/utils.test.d.ts +1 -0
  30. package/esm/services/utils.test.js +362 -0
  31. package/esm/types/contracts/generated/Erc20.js +2 -1
  32. package/esm/types/contracts/generated/Legacy_AaveV2Subscriptions.js +2 -1
  33. package/esm/types/contracts/generated/Legacy_AuthCheck.js +2 -1
  34. package/esm/types/contracts/generated/Legacy_CompoundV2Subscriptions.js +2 -1
  35. package/esm/types/contracts/generated/Legacy_MakerSubscriptions.js +2 -1
  36. package/esm/types/contracts/generated/SubStorage.js +2 -1
  37. package/esm/types/contracts/generated/UniMulticall.js +2 -1
  38. package/esm/types/contracts/generated/index.js +2 -1
  39. package/esm/types/contracts/generated/types.js +2 -1
  40. package/esm/types/enums.d.ts +9 -1
  41. package/esm/types/enums.js +24 -12
  42. package/esm/types/index.js +2 -1
  43. package/package.json +12 -8
  44. package/src/automation/private/LegacyAutomation.ts +11 -10
  45. package/src/automation/private/StrategiesAutomation.ts +5 -6
  46. package/src/configuration.ts +0 -3
  47. package/src/constants/index.ts +10 -0
  48. package/src/index.ts +0 -1
  49. package/src/services/ethereumService.ts +6 -6
  50. package/src/services/strategiesService.ts +24 -0
  51. package/src/services/strategySubService.ts +30 -0
  52. package/src/services/subDataService.ts +104 -67
  53. package/src/services/triggerService.ts +86 -85
  54. package/src/services/utils.test.ts +414 -0
  55. package/src/services/utils.ts +6 -7
  56. package/src/types/enums.ts +9 -0
  57. package/tsconfig.json +1 -1
  58. package/umd/index.js +7142 -4138
  59. package/src/types/typings/process.d.ts +0 -9
  60. package/yarn-error.log +0 -7233
@@ -1,60 +1,66 @@
1
- import Dec from 'decimal.js';
2
- import { assetAmountInEth, getAssetInfo, getAssetInfoByAddress } from '@defisaver/tokens';
3
- import { otherAddresses } from '@defisaver/sdk';
4
- import { ChainId } from '../types/enums';
5
- import { ZERO_ADDRESS } from '../constants';
6
- import { compareAddresses, ratioPercentageToWei, weiToRatioPercentage } from './utils';
7
- const { mockedWeb3 } = process;
8
- export const makerRepayFromSavingsSubData = {
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
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.makerRepayFromSavingsSubData = void 0;
7
+ const decimal_js_1 = __importDefault(require("decimal.js"));
8
+ const web3_eth_abi_1 = __importDefault(require("web3-eth-abi"));
9
+ const tokens_1 = require("@defisaver/tokens");
10
+ const sdk_1 = require("@defisaver/sdk");
11
+ const enums_1 = require("../types/enums");
12
+ const constants_1 = require("../constants");
13
+ const utils_1 = require("./utils");
14
+ exports.makerRepayFromSavingsSubData = {
9
15
  encode(vaultId, targetRatioPercentage, chainId, daiAddr, mcdCdpManagerAddr) {
10
- const _daiAddr = daiAddr || getAssetInfo('DAI', chainId).address;
16
+ const _daiAddr = daiAddr || (0, tokens_1.getAssetInfo)('DAI', chainId).address;
11
17
  // @ts-ignore // TODO - this requires change in @defisaver/tokens
12
- const _mcdCdpManagerAddr = mcdCdpManagerAddr || otherAddresses(chainId).McdCdpManager;
13
- const vaultIdEncoded = mockedWeb3.eth.abi.encodeParameter('uint256', vaultId.toString());
14
- const targetRatioWei = ratioPercentageToWei(targetRatioPercentage);
15
- const targetRatioEncoded = mockedWeb3.eth.abi.encodeParameter('uint256', targetRatioWei);
16
- const daiAddrEncoded = mockedWeb3.eth.abi.encodeParameter('address', _daiAddr);
17
- const mcdManagerAddrEncoded = mockedWeb3.eth.abi.encodeParameter('address', _mcdCdpManagerAddr);
18
+ const _mcdCdpManagerAddr = mcdCdpManagerAddr || (0, sdk_1.otherAddresses)(chainId).McdCdpManager;
19
+ const vaultIdEncoded = web3_eth_abi_1.default.encodeParameter('uint256', vaultId.toString());
20
+ const targetRatioWei = (0, utils_1.ratioPercentageToWei)(targetRatioPercentage);
21
+ const targetRatioEncoded = web3_eth_abi_1.default.encodeParameter('uint256', targetRatioWei);
22
+ const daiAddrEncoded = web3_eth_abi_1.default.encodeParameter('address', _daiAddr);
23
+ const mcdManagerAddrEncoded = web3_eth_abi_1.default.encodeParameter('address', _mcdCdpManagerAddr);
18
24
  return [vaultIdEncoded, targetRatioEncoded, daiAddrEncoded, mcdManagerAddrEncoded];
19
25
  },
20
26
  decode(subData) {
21
- const vaultId = +mockedWeb3.eth.abi.decodeParameter('uint256', subData[0]).toString();
22
- const weiRatio = mockedWeb3.eth.abi.decodeParameter('uint256', subData[1]);
23
- const targetRatio = weiToRatioPercentage(weiRatio);
24
- const daiAddr = mockedWeb3.eth.abi.decodeParameter('address', subData[2]).toString();
25
- const mcdManagerAddr = mockedWeb3.eth.abi.decodeParameter('address', subData[3]).toString();
27
+ const vaultId = +web3_eth_abi_1.default.decodeParameter('uint256', subData[0]).toString();
28
+ const weiRatio = web3_eth_abi_1.default.decodeParameter('uint256', subData[1]);
29
+ const targetRatio = (0, utils_1.weiToRatioPercentage)(weiRatio);
30
+ const daiAddr = web3_eth_abi_1.default.decodeParameter('address', subData[2]).toString();
31
+ const mcdManagerAddr = web3_eth_abi_1.default.decodeParameter('address', subData[3]).toString();
26
32
  return {
27
33
  vaultId, targetRatio, daiAddr, mcdManagerAddr,
28
34
  };
29
35
  },
30
36
  };
31
- export const makerCloseSubData = {
37
+ exports.makerCloseSubData = {
32
38
  encode(vaultId, closeToAssetAddr, chainId, daiAddr, mcdCdpManagerAddr) {
33
- const _daiAddr = daiAddr || getAssetInfo('DAI', chainId).address;
39
+ const _daiAddr = daiAddr || (0, tokens_1.getAssetInfo)('DAI', chainId).address;
34
40
  // @ts-ignore // TODO - this requires change in @defisaver/tokens
35
- const _mcdCdpManagerAddr = mcdCdpManagerAddr || otherAddresses(chainId).McdCdpManager;
36
- const vaultIdEncoded = mockedWeb3.eth.abi.encodeParameter('uint256', vaultId.toString());
37
- const daiAddrEncoded = mockedWeb3.eth.abi.encodeParameter('address', _daiAddr);
38
- const mcdManagerAddrEncoded = mockedWeb3.eth.abi.encodeParameter('address', _mcdCdpManagerAddr);
39
- if (compareAddresses(closeToAssetAddr, _daiAddr)) {
41
+ const _mcdCdpManagerAddr = mcdCdpManagerAddr || (0, sdk_1.otherAddresses)(chainId).McdCdpManager;
42
+ const vaultIdEncoded = web3_eth_abi_1.default.encodeParameter('uint256', vaultId.toString());
43
+ const daiAddrEncoded = web3_eth_abi_1.default.encodeParameter('address', _daiAddr);
44
+ const mcdManagerAddrEncoded = web3_eth_abi_1.default.encodeParameter('address', _mcdCdpManagerAddr);
45
+ if ((0, utils_1.compareAddresses)(closeToAssetAddr, _daiAddr)) {
40
46
  // Close to DAI strategy
41
47
  return [vaultIdEncoded, daiAddrEncoded, mcdManagerAddrEncoded];
42
48
  }
43
49
  // Close to collateral strategy
44
- const collAddrEncoded = mockedWeb3.eth.abi.encodeParameter('address', closeToAssetAddr);
50
+ const collAddrEncoded = web3_eth_abi_1.default.encodeParameter('address', closeToAssetAddr);
45
51
  return [vaultIdEncoded, collAddrEncoded, daiAddrEncoded, mcdManagerAddrEncoded];
46
52
  },
47
53
  decode(subData) {
48
- const vaultId = +mockedWeb3.eth.abi.decodeParameter('uint256', subData[0]);
54
+ const vaultId = +web3_eth_abi_1.default.decodeParameter('uint256', subData[0]);
49
55
  // if closing to collateral, asset addr will be 2nd param out of 4
50
56
  // if closing to DAI, will return 2nd param out of 3, which will be DAI addr
51
- const closeToAssetAddr = mockedWeb3.eth.abi.decodeParameter('address', subData[1]).toString().toLowerCase();
57
+ const closeToAssetAddr = web3_eth_abi_1.default.decodeParameter('address', subData[1]).toString().toLowerCase();
52
58
  return {
53
59
  vaultId, closeToAssetAddr,
54
60
  };
55
61
  },
56
62
  };
57
- export const makerLeverageManagementSubData = {
63
+ exports.makerLeverageManagementSubData = {
58
64
  // encode: (vaultId:number, repayFrom, boostFrom, boostTo, repayTo, boostEnabled) => [
59
65
  // vaultId,
60
66
  // new Dec(repayFrom).mul(1e16).toString(),
@@ -64,25 +70,25 @@ export const makerLeverageManagementSubData = {
64
70
  // boostEnabled,
65
71
  // ],
66
72
  decode: (subData) => {
67
- const vaultId = +mockedWeb3.eth.abi.decodeParameter('uint256', subData[0]).toString();
68
- const weiRatio = mockedWeb3.eth.abi.decodeParameter('uint256', subData[1]);
69
- const targetRatio = weiToRatioPercentage(weiRatio);
73
+ const vaultId = +web3_eth_abi_1.default.decodeParameter('uint256', subData[0]).toString();
74
+ const weiRatio = web3_eth_abi_1.default.decodeParameter('uint256', subData[1]);
75
+ const targetRatio = (0, utils_1.weiToRatioPercentage)(weiRatio);
70
76
  return { vaultId, targetRatio };
71
77
  },
72
78
  };
73
- export const liquityLeverageManagementSubData = {
79
+ exports.liquityLeverageManagementSubData = {
74
80
  decode: (subData) => {
75
- const weiRatio = mockedWeb3.eth.abi.decodeParameter('uint256', subData[1]);
76
- const targetRatio = weiToRatioPercentage(weiRatio);
81
+ const weiRatio = web3_eth_abi_1.default.decodeParameter('uint256', subData[1]);
82
+ const targetRatio = (0, utils_1.weiToRatioPercentage)(weiRatio);
77
83
  return { targetRatio };
78
84
  },
79
85
  };
80
- export const liquityCloseSubData = {
81
- encode(closeToAssetAddr, chainId = ChainId.Ethereum, collAddr, debtAddr) {
82
- const _collAddr = collAddr || getAssetInfo('WETH', chainId).address;
83
- const _debtAddr = debtAddr || getAssetInfo('LUSD', chainId).address;
84
- const collAddrEncoded = mockedWeb3.eth.abi.encodeParameter('address', _collAddr);
85
- const debtAddrEncoded = mockedWeb3.eth.abi.encodeParameter('address', _debtAddr);
86
+ exports.liquityCloseSubData = {
87
+ encode(closeToAssetAddr, chainId = enums_1.ChainId.Ethereum, collAddr, debtAddr) {
88
+ const _collAddr = collAddr || (0, tokens_1.getAssetInfo)('WETH', chainId).address;
89
+ const _debtAddr = debtAddr || (0, tokens_1.getAssetInfo)('LUSD', chainId).address;
90
+ const collAddrEncoded = web3_eth_abi_1.default.encodeParameter('address', _collAddr);
91
+ const debtAddrEncoded = web3_eth_abi_1.default.encodeParameter('address', _debtAddr);
86
92
  // if (compareAddresses(closeToAssetAddr, daiAddr)) { // TODO - Uhm, wth?
87
93
  // // close to LUSD strategy
88
94
  // return [daiAddrEncoded, mcdManagerAddrEncoded];
@@ -91,149 +97,149 @@ export const liquityCloseSubData = {
91
97
  return [collAddrEncoded, debtAddrEncoded];
92
98
  },
93
99
  decode(subData) {
94
- const closeToAssetAddr = mockedWeb3.eth.abi.decodeParameter('address', subData[0]).toString().toLowerCase();
95
- const debtAddr = mockedWeb3.eth.abi.decodeParameter('address', subData[1]).toString().toLowerCase();
100
+ const closeToAssetAddr = web3_eth_abi_1.default.decodeParameter('address', subData[0]).toString().toLowerCase();
101
+ const debtAddr = web3_eth_abi_1.default.decodeParameter('address', subData[1]).toString().toLowerCase();
96
102
  return { closeToAssetAddr, debtAddr };
97
103
  },
98
104
  };
99
- export const aaveV2LeverageManagementSubData = {
105
+ exports.aaveV2LeverageManagementSubData = {
100
106
  encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
101
107
  return [
102
- new Dec(triggerRepayRatio).mul(1e16).toString(),
103
- new Dec(triggerBoostRatio).mul(1e16).toString(),
104
- new Dec(targetBoostRatio).mul(1e16).toString(),
105
- new Dec(targetRepayRatio).mul(1e16).toString(),
108
+ new decimal_js_1.default(triggerRepayRatio).mul(1e16).toString(),
109
+ new decimal_js_1.default(triggerBoostRatio).mul(1e16).toString(),
110
+ new decimal_js_1.default(targetBoostRatio).mul(1e16).toString(),
111
+ new decimal_js_1.default(targetRepayRatio).mul(1e16).toString(),
106
112
  // @ts-ignore // TODO
107
113
  boostEnabled,
108
114
  ];
109
115
  },
110
116
  decode(subData) {
111
- const ratioWei = mockedWeb3.eth.abi.decodeParameter('uint256', subData[1]);
112
- const targetRatio = weiToRatioPercentage(ratioWei);
117
+ const ratioWei = web3_eth_abi_1.default.decodeParameter('uint256', subData[1]);
118
+ const targetRatio = (0, utils_1.weiToRatioPercentage)(ratioWei);
113
119
  return { targetRatio };
114
120
  },
115
121
  };
116
- export const aaveV3LeverageManagementSubData = {
122
+ exports.aaveV3LeverageManagementSubData = {
117
123
  decode(subData) {
118
- const ratioWei = mockedWeb3.eth.abi.decodeParameter('uint256', subData[0]);
119
- const targetRatio = weiToRatioPercentage(ratioWei);
124
+ const ratioWei = web3_eth_abi_1.default.decodeParameter('uint256', subData[0]);
125
+ const targetRatio = (0, utils_1.weiToRatioPercentage)(ratioWei);
120
126
  return { targetRatio };
121
127
  },
122
128
  };
123
- export const aaveV3QuotePriceSubData = {
124
- encode(collAsset, collAssetId, debtAsset, debtAssetId, nullAddress = ZERO_ADDRESS) {
125
- const encodedColl = mockedWeb3.eth.abi.encodeParameter('address', collAsset);
126
- const encodedCollId = mockedWeb3.eth.abi.encodeParameter('uint8', collAssetId);
127
- const encodedDebt = mockedWeb3.eth.abi.encodeParameter('address', debtAsset);
128
- const encodedDebtId = mockedWeb3.eth.abi.encodeParameter('uint8', debtAssetId);
129
- const encodedNullAddress = mockedWeb3.eth.abi.encodeParameter('address', nullAddress);
129
+ exports.aaveV3QuotePriceSubData = {
130
+ encode(collAsset, collAssetId, debtAsset, debtAssetId, nullAddress = constants_1.ZERO_ADDRESS) {
131
+ const encodedColl = web3_eth_abi_1.default.encodeParameter('address', collAsset);
132
+ const encodedCollId = web3_eth_abi_1.default.encodeParameter('uint8', collAssetId);
133
+ const encodedDebt = web3_eth_abi_1.default.encodeParameter('address', debtAsset);
134
+ const encodedDebtId = web3_eth_abi_1.default.encodeParameter('uint8', debtAssetId);
135
+ const encodedNullAddress = web3_eth_abi_1.default.encodeParameter('address', nullAddress);
130
136
  return [encodedColl, encodedCollId, encodedDebt, encodedDebtId, encodedNullAddress];
131
137
  },
132
138
  decode(subData) {
133
- const collAsset = mockedWeb3.eth.abi.decodeParameter('address', subData[0]);
134
- const collAssetId = Number(mockedWeb3.eth.abi.decodeParameter('uint8', subData[1]));
135
- const debtAsset = mockedWeb3.eth.abi.decodeParameter('address', subData[2]);
136
- const debtAssetId = Number(mockedWeb3.eth.abi.decodeParameter('uint8', subData[3]));
139
+ const collAsset = web3_eth_abi_1.default.decodeParameter('address', subData[0]);
140
+ const collAssetId = Number(web3_eth_abi_1.default.decodeParameter('uint8', subData[1]));
141
+ const debtAsset = web3_eth_abi_1.default.decodeParameter('address', subData[2]);
142
+ const debtAssetId = Number(web3_eth_abi_1.default.decodeParameter('uint8', subData[3]));
137
143
  return {
138
144
  collAsset, collAssetId, debtAsset, debtAssetId,
139
145
  };
140
146
  },
141
147
  };
142
- export const compoundV2LeverageManagementSubData = {
148
+ exports.compoundV2LeverageManagementSubData = {
143
149
  encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
144
150
  return [
145
- new Dec(triggerRepayRatio).mul(1e16).toString(),
146
- new Dec(triggerBoostRatio).mul(1e16).toString(),
147
- new Dec(targetBoostRatio).mul(1e16).toString(),
148
- new Dec(targetRepayRatio).mul(1e16).toString(),
151
+ new decimal_js_1.default(triggerRepayRatio).mul(1e16).toString(),
152
+ new decimal_js_1.default(triggerBoostRatio).mul(1e16).toString(),
153
+ new decimal_js_1.default(targetBoostRatio).mul(1e16).toString(),
154
+ new decimal_js_1.default(targetRepayRatio).mul(1e16).toString(),
149
155
  // @ts-ignore // TODO
150
156
  boostEnabled,
151
157
  ];
152
158
  },
153
159
  decode(subData) {
154
- const weiRatio = mockedWeb3.eth.abi.decodeParameter('uint256', subData[0]);
155
- const targetRatio = weiToRatioPercentage(weiRatio);
160
+ const weiRatio = web3_eth_abi_1.default.decodeParameter('uint256', subData[0]);
161
+ const targetRatio = (0, utils_1.weiToRatioPercentage)(weiRatio);
156
162
  return { targetRatio };
157
163
  },
158
164
  };
159
- export const compoundV3LeverageManagementSubData = {
165
+ exports.compoundV3LeverageManagementSubData = {
160
166
  encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA) {
161
167
  return [
162
168
  market,
163
169
  baseToken,
164
- new Dec(triggerRepayRatio).mul(1e16).toString(),
165
- new Dec(triggerBoostRatio).mul(1e16).toString(),
166
- new Dec(targetBoostRatio).mul(1e16).toString(),
167
- new Dec(targetRepayRatio).mul(1e16).toString(),
170
+ new decimal_js_1.default(triggerRepayRatio).mul(1e16).toString(),
171
+ new decimal_js_1.default(triggerBoostRatio).mul(1e16).toString(),
172
+ new decimal_js_1.default(targetBoostRatio).mul(1e16).toString(),
173
+ new decimal_js_1.default(targetRepayRatio).mul(1e16).toString(),
168
174
  // @ts-ignore // TODO
169
175
  boostEnabled, isEOA,
170
176
  ];
171
177
  },
172
178
  decode(subData) {
173
- const weiRatio = mockedWeb3.eth.abi.decodeParameter('uint256', subData[3]);
174
- const targetRatio = weiToRatioPercentage(weiRatio);
179
+ const weiRatio = web3_eth_abi_1.default.decodeParameter('uint256', subData[3]);
180
+ const targetRatio = (0, utils_1.weiToRatioPercentage)(weiRatio);
175
181
  return { targetRatio };
176
182
  },
177
183
  };
178
- export const morphoAaveV2LeverageManagementSubData = {
184
+ exports.morphoAaveV2LeverageManagementSubData = {
179
185
  encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
180
186
  return [
181
- ratioPercentageToWei(triggerRepayRatio),
182
- ratioPercentageToWei(triggerBoostRatio),
183
- ratioPercentageToWei(targetBoostRatio),
184
- ratioPercentageToWei(targetRepayRatio),
187
+ (0, utils_1.ratioPercentageToWei)(triggerRepayRatio),
188
+ (0, utils_1.ratioPercentageToWei)(triggerBoostRatio),
189
+ (0, utils_1.ratioPercentageToWei)(targetBoostRatio),
190
+ (0, utils_1.ratioPercentageToWei)(targetRepayRatio),
185
191
  // @ts-ignore
186
192
  boostEnabled,
187
193
  ];
188
194
  },
189
195
  decode(subData) {
190
- const ratioWei = mockedWeb3.eth.abi.decodeParameter('uint128', subData[1]);
191
- const targetRatio = weiToRatioPercentage(ratioWei);
196
+ const ratioWei = web3_eth_abi_1.default.decodeParameter('uint128', subData[1]);
197
+ const targetRatio = (0, utils_1.weiToRatioPercentage)(ratioWei);
192
198
  return { targetRatio };
193
199
  },
194
200
  };
195
- export const cBondsRebondSubData = {
201
+ exports.cBondsRebondSubData = {
196
202
  encode(bondId) {
197
- const bondIdEncoded = mockedWeb3.eth.abi.encodeParameter('uint256', bondId);
203
+ const bondIdEncoded = web3_eth_abi_1.default.encodeParameter('uint256', bondId);
198
204
  return [bondIdEncoded];
199
205
  },
200
206
  decode(subData) {
201
- const bondId = mockedWeb3.eth.abi.decodeParameter('uint256', subData[1]).toString();
207
+ const bondId = web3_eth_abi_1.default.decodeParameter('uint256', subData[1]).toString();
202
208
  return { bondId };
203
209
  },
204
210
  };
205
- export const liquityPaybackUsingChickenBondSubData = {
211
+ exports.liquityPaybackUsingChickenBondSubData = {
206
212
  /**
207
213
  * @param sourceId bondId or subId
208
214
  * @param sourceType 0 for bond, 1 for subId
209
215
  * @param chainId
210
216
  */
211
- encode: (sourceId, sourceType, chainId = ChainId.Ethereum) => {
212
- const sourceIdEncoded = mockedWeb3.eth.abi.encodeParameter('uint256', sourceId);
213
- const sourceTypeEncoded = mockedWeb3.eth.abi.encodeParameter('uint256', sourceType);
214
- const lusdAddressEncoded = mockedWeb3.eth.abi.encodeParameter('address', getAssetInfo('LUSD', chainId).address);
215
- const bLusdAddressEncoded = mockedWeb3.eth.abi.encodeParameter('address', getAssetInfo('bLUSD', chainId).address);
217
+ encode: (sourceId, sourceType, chainId = enums_1.ChainId.Ethereum) => {
218
+ const sourceIdEncoded = web3_eth_abi_1.default.encodeParameter('uint256', sourceId);
219
+ const sourceTypeEncoded = web3_eth_abi_1.default.encodeParameter('uint256', sourceType);
220
+ const lusdAddressEncoded = web3_eth_abi_1.default.encodeParameter('address', (0, tokens_1.getAssetInfo)('LUSD', chainId).address);
221
+ const bLusdAddressEncoded = web3_eth_abi_1.default.encodeParameter('address', (0, tokens_1.getAssetInfo)('bLUSD', chainId).address);
216
222
  return [sourceIdEncoded, sourceTypeEncoded, lusdAddressEncoded, bLusdAddressEncoded];
217
223
  },
218
224
  decode: (subData) => {
219
- const sourceId = mockedWeb3.eth.abi.decodeParameter('uint256', subData[0]).toString();
220
- const sourceType = mockedWeb3.eth.abi.decodeParameter('uint256', subData[1]).toString();
225
+ const sourceId = web3_eth_abi_1.default.decodeParameter('uint256', subData[0]).toString();
226
+ const sourceType = web3_eth_abi_1.default.decodeParameter('uint256', subData[1]).toString();
221
227
  return { sourceId, sourceType };
222
228
  },
223
229
  };
224
- export const exchangeDcaSubData = {
230
+ exports.exchangeDcaSubData = {
225
231
  encode: (fromToken, toToken, amount, interval) => {
226
- const sellTokenEncoded = mockedWeb3.eth.abi.encodeParameter('address', fromToken);
227
- const buyTokenEncoded = mockedWeb3.eth.abi.encodeParameter('address', toToken);
228
- const amountEncoded = mockedWeb3.eth.abi.encodeParameter('uint256', amount);
229
- const intervalEncoded = mockedWeb3.eth.abi.encodeParameter('uint256', interval);
232
+ const sellTokenEncoded = web3_eth_abi_1.default.encodeParameter('address', fromToken);
233
+ const buyTokenEncoded = web3_eth_abi_1.default.encodeParameter('address', toToken);
234
+ const amountEncoded = web3_eth_abi_1.default.encodeParameter('uint256', amount);
235
+ const intervalEncoded = web3_eth_abi_1.default.encodeParameter('uint256', interval);
230
236
  return [sellTokenEncoded, buyTokenEncoded, amountEncoded, intervalEncoded];
231
237
  },
232
238
  decode: (subData, chainId) => {
233
- const fromToken = mockedWeb3.eth.abi.decodeParameter('address', subData[0]).toString();
234
- const toToken = mockedWeb3.eth.abi.decodeParameter('address', subData[1]).toString();
235
- const amount = assetAmountInEth(mockedWeb3.eth.abi.decodeParameter('uint256', subData[2]).toString(), getAssetInfoByAddress(fromToken, chainId).symbol);
236
- const interval = mockedWeb3.eth.abi.decodeParameter('uint256', subData[3]).toString();
239
+ const fromToken = web3_eth_abi_1.default.decodeParameter('address', subData[0]).toString();
240
+ const toToken = web3_eth_abi_1.default.decodeParameter('address', subData[1]).toString();
241
+ const amount = (0, tokens_1.assetAmountInEth)(web3_eth_abi_1.default.decodeParameter('uint256', subData[2]).toString(), (0, tokens_1.getAssetInfoByAddress)(fromToken, chainId).symbol);
242
+ const interval = web3_eth_abi_1.default.decodeParameter('uint256', subData[3]).toString();
237
243
  return {
238
244
  fromToken,
239
245
  toToken,
@@ -242,47 +248,79 @@ export const exchangeDcaSubData = {
242
248
  };
243
249
  },
244
250
  };
245
- export const exchangeLimitOrderSubData = {
251
+ exports.exchangeLimitOrderSubData = {
246
252
  encode(fromToken, toToken, amount, targetPrice, goodUntil, orderType) {
247
253
  return [
248
254
  fromToken,
249
255
  toToken,
250
256
  amount,
251
257
  targetPrice,
252
- new Dec(goodUntil).toString(),
253
- new Dec(orderType).toString(),
258
+ new decimal_js_1.default(goodUntil).toString(),
259
+ new decimal_js_1.default(orderType).toString(),
254
260
  ];
255
261
  },
256
262
  decode: (subData, chainId) => {
257
- const fromToken = mockedWeb3.eth.abi.decodeParameter('address', subData[0]).toString();
258
- const toToken = mockedWeb3.eth.abi.decodeParameter('address', subData[1]).toString();
259
- const amount = assetAmountInEth(mockedWeb3.eth.abi.decodeParameter('uint256', subData[2]).toString(), getAssetInfoByAddress(fromToken, chainId).symbol);
263
+ const fromToken = web3_eth_abi_1.default.decodeParameter('address', subData[0]).toString();
264
+ const toToken = web3_eth_abi_1.default.decodeParameter('address', subData[1]).toString();
265
+ const amount = (0, tokens_1.assetAmountInEth)(web3_eth_abi_1.default.decodeParameter('uint256', subData[2]).toString(), (0, tokens_1.getAssetInfoByAddress)(fromToken, chainId).symbol);
260
266
  return { fromToken, toToken, amount };
261
267
  },
262
268
  };
263
- export const sparkLeverageManagementSubData = {
269
+ exports.sparkLeverageManagementSubData = {
264
270
  decode(subData) {
265
- const ratioWei = mockedWeb3.eth.abi.decodeParameter('uint256', subData[0]);
266
- const targetRatio = weiToRatioPercentage(ratioWei);
271
+ const ratioWei = web3_eth_abi_1.default.decodeParameter('uint256', subData[0]);
272
+ const targetRatio = (0, utils_1.weiToRatioPercentage)(ratioWei);
267
273
  return { targetRatio };
268
274
  },
269
275
  };
270
- export const sparkQuotePriceSubData = {
271
- encode(collAsset, collAssetId, debtAsset, debtAssetId, nullAddress = ZERO_ADDRESS) {
272
- const encodedColl = mockedWeb3.eth.abi.encodeParameter('address', collAsset);
273
- const encodedCollId = mockedWeb3.eth.abi.encodeParameter('uint8', collAssetId);
274
- const encodedDebt = mockedWeb3.eth.abi.encodeParameter('address', debtAsset);
275
- const encodedDebtId = mockedWeb3.eth.abi.encodeParameter('uint8', debtAssetId);
276
- const encodedNullAddress = mockedWeb3.eth.abi.encodeParameter('address', nullAddress);
276
+ exports.sparkQuotePriceSubData = {
277
+ encode(collAsset, collAssetId, debtAsset, debtAssetId, nullAddress = constants_1.ZERO_ADDRESS) {
278
+ const encodedColl = web3_eth_abi_1.default.encodeParameter('address', collAsset);
279
+ const encodedCollId = web3_eth_abi_1.default.encodeParameter('uint8', collAssetId);
280
+ const encodedDebt = web3_eth_abi_1.default.encodeParameter('address', debtAsset);
281
+ const encodedDebtId = web3_eth_abi_1.default.encodeParameter('uint8', debtAssetId);
282
+ const encodedNullAddress = web3_eth_abi_1.default.encodeParameter('address', nullAddress);
277
283
  return [encodedColl, encodedCollId, encodedDebt, encodedDebtId, encodedNullAddress];
278
284
  },
279
285
  decode(subData) {
280
- const collAsset = mockedWeb3.eth.abi.decodeParameter('address', subData[0]);
281
- const collAssetId = Number(mockedWeb3.eth.abi.decodeParameter('uint8', subData[1]));
282
- const debtAsset = mockedWeb3.eth.abi.decodeParameter('address', subData[2]);
283
- const debtAssetId = Number(mockedWeb3.eth.abi.decodeParameter('uint8', subData[3]));
286
+ const collAsset = web3_eth_abi_1.default.decodeParameter('address', subData[0]);
287
+ const collAssetId = Number(web3_eth_abi_1.default.decodeParameter('uint8', subData[1]));
288
+ const debtAsset = web3_eth_abi_1.default.decodeParameter('address', subData[2]);
289
+ const debtAssetId = Number(web3_eth_abi_1.default.decodeParameter('uint8', subData[3]));
284
290
  return {
285
291
  collAsset, collAssetId, debtAsset, debtAssetId,
286
292
  };
287
293
  },
288
294
  };
295
+ exports.liquityDsrPaybackSubData = {
296
+ encode: (targetRatio) => {
297
+ const daiAddress = (0, tokens_1.getAssetInfo)('DAI').address;
298
+ const lusdAddress = (0, tokens_1.getAssetInfo)('LUSD').address;
299
+ const ratioStateEncoded = web3_eth_abi_1.default.encodeParameter('uint8', enums_1.RatioState.UNDER);
300
+ const targetRatioEncoded = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
301
+ const daiAddressEncoded = web3_eth_abi_1.default.encodeParameter('address', daiAddress);
302
+ const lusdAddressEncoded = web3_eth_abi_1.default.encodeParameter('address', lusdAddress);
303
+ return [ratioStateEncoded, targetRatioEncoded, daiAddressEncoded, lusdAddressEncoded];
304
+ },
305
+ decode: (subData) => {
306
+ const weiRatio = web3_eth_abi_1.default.decodeParameter('uint256', subData[1]);
307
+ const targetRatio = (0, utils_1.weiToRatioPercentage)(weiRatio);
308
+ return { targetRatio };
309
+ },
310
+ };
311
+ exports.liquityDsrSupplySubData = {
312
+ encode: (targetRatio) => {
313
+ const daiAddress = (0, tokens_1.getAssetInfo)('DAI').address;
314
+ const wethAddress = (0, tokens_1.getAssetInfo)('WETH').address;
315
+ const ratioStateEncoded = web3_eth_abi_1.default.encodeParameter('uint8', enums_1.RatioState.UNDER);
316
+ const targetRatioEncoded = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
317
+ const daiAddressEncoded = web3_eth_abi_1.default.encodeParameter('address', daiAddress);
318
+ const wethAddressEncoded = web3_eth_abi_1.default.encodeParameter('address', wethAddress);
319
+ return [ratioStateEncoded, targetRatioEncoded, daiAddressEncoded, wethAddressEncoded];
320
+ },
321
+ decode: (subData) => {
322
+ const weiRatio = web3_eth_abi_1.default.decodeParameter('uint256', subData[1]);
323
+ const targetRatio = (0, utils_1.weiToRatioPercentage)(weiRatio);
324
+ return { targetRatio };
325
+ },
326
+ };
@@ -1,5 +1,5 @@
1
1
  import type { EthereumAddress } from '../types';
2
- import type { RatioState } from '../types/enums';
2
+ import type { RatioState, OrderType } from '../types/enums';
3
3
  export declare const chainlinkPriceTrigger: {
4
4
  encode(tokenAddr: EthereumAddress, price: string, state: RatioState): string[];
5
5
  decode(triggerData: string[]): {
@@ -27,8 +27,8 @@ export declare const makerRatioTrigger: {
27
27
  export declare const aaveV3RatioTrigger: {
28
28
  encode(owner: EthereumAddress, market: EthereumAddress, ratioPercentage: number, ratioState: RatioState): string[];
29
29
  decode(triggerData: string[]): {
30
- owner: string;
31
- market: string;
30
+ owner: any;
31
+ market: any;
32
32
  ratio: number;
33
33
  ratioState: number;
34
34
  };
@@ -36,7 +36,7 @@ export declare const aaveV3RatioTrigger: {
36
36
  export declare const morphoAaveV2RatioTrigger: {
37
37
  encode(owner: EthereumAddress, ratioPercentage: number, ratioState: RatioState): string[];
38
38
  decode(triggerData: string[]): {
39
- owner: string;
39
+ owner: any;
40
40
  ratio: number;
41
41
  ratioState: number;
42
42
  };
@@ -105,9 +105,9 @@ export declare const exchangeTimestampTrigger: {
105
105
  };
106
106
  };
107
107
  export declare const exchangeOffchainPriceTrigger: {
108
- encode(targetPrice: string, goodUntil: number, fromTokenDecimals: number): string[];
108
+ encode(targetPrice: string, goodUntil: number, orderType: OrderType, fromTokenDecimals: number): string[];
109
109
  decode(triggerData: string[], fromTokenDecimals: number, toTokenDecimals: number): {
110
- orderType: number;
110
+ orderType: OrderType;
111
111
  targetPrice: string;
112
112
  goodUntil: any;
113
113
  };
@@ -115,8 +115,8 @@ export declare const exchangeOffchainPriceTrigger: {
115
115
  export declare const sparkRatioTrigger: {
116
116
  encode(owner: EthereumAddress, market: EthereumAddress, ratioPercentage: number, ratioState: RatioState): string[];
117
117
  decode(triggerData: string[]): {
118
- owner: string;
119
- market: string;
118
+ owner: any;
119
+ market: any;
120
120
  ratio: number;
121
121
  ratioState: number;
122
122
  };