@defisaver/automation-sdk 2.0.3 → 2.0.5
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.
- package/esm/services/strategiesService.js +2 -2
- package/esm/services/subDataService.d.ts +5 -0
- package/esm/services/subDataService.js +8 -1
- package/esm/services/triggerService.d.ts +1 -1
- package/esm/services/triggerService.js +10 -10
- package/esm/services/triggerService.test.d.ts +1 -0
- package/esm/services/triggerService.test.js +719 -0
- package/package.json +1 -1
- package/src/services/strategiesService.ts +2 -2
- package/src/services/subDataService.ts +9 -0
- package/src/services/triggerService.test.ts +784 -0
- package/src/services/triggerService.ts +11 -9
- package/umd/index.js +22 -12
|
@@ -422,8 +422,8 @@ function parseSparkCloseOnPrice(position, parseData) {
|
|
|
422
422
|
function parseLiquitySavingsLiqProtection(position, parseData) {
|
|
423
423
|
const _position = (0, lodash_1.cloneDeep)(position);
|
|
424
424
|
const { subStruct } = parseData.subscriptionEventData;
|
|
425
|
-
const triggerData = triggerService.
|
|
426
|
-
const subData = subDataService.
|
|
425
|
+
const triggerData = triggerService.liquityRatioTrigger.decode(subStruct.triggerData);
|
|
426
|
+
const subData = subDataService.liquityRepayFromSavingsSubData.decode(subStruct.subData);
|
|
427
427
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
428
428
|
_position.strategyData.decoded.subData = subData;
|
|
429
429
|
_position.specific = {
|
|
@@ -9,6 +9,11 @@ export declare const makerRepayFromSavingsSubData: {
|
|
|
9
9
|
targetRatio: number;
|
|
10
10
|
};
|
|
11
11
|
};
|
|
12
|
+
export declare const liquityRepayFromSavingsSubData: {
|
|
13
|
+
decode(subData: string[]): {
|
|
14
|
+
targetRatio: number;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
12
17
|
export declare const makerCloseSubData: {
|
|
13
18
|
encode(vaultId: number, closeToAssetAddr: EthereumAddress, chainId: ChainId, daiAddr?: EthereumAddress, mcdCdpManagerAddr?: EthereumAddress): string[];
|
|
14
19
|
decode(subData: string[]): {
|
|
@@ -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.makerRepayFromSavingsSubData = void 0;
|
|
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;
|
|
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");
|
|
@@ -34,6 +34,13 @@ exports.makerRepayFromSavingsSubData = {
|
|
|
34
34
|
};
|
|
35
35
|
},
|
|
36
36
|
};
|
|
37
|
+
exports.liquityRepayFromSavingsSubData = {
|
|
38
|
+
decode(subData) {
|
|
39
|
+
const weiRatio = web3_eth_abi_1.default.decodeParameter('uint256', subData[1]);
|
|
40
|
+
const targetRatio = (0, utils_1.weiToRatioPercentage)(weiRatio);
|
|
41
|
+
return { targetRatio };
|
|
42
|
+
},
|
|
43
|
+
};
|
|
37
44
|
exports.makerCloseSubData = {
|
|
38
45
|
encode(vaultId, closeToAssetAddr, chainId, daiAddr, mcdCdpManagerAddr) {
|
|
39
46
|
const _daiAddr = daiAddr || (0, tokens_1.getAssetInfo)('DAI', chainId).address;
|
|
@@ -105,7 +105,7 @@ export declare const exchangeTimestampTrigger: {
|
|
|
105
105
|
};
|
|
106
106
|
};
|
|
107
107
|
export declare const exchangeOffchainPriceTrigger: {
|
|
108
|
-
encode(targetPrice: string, goodUntil: number, orderType: OrderType, fromTokenDecimals: number): string[];
|
|
108
|
+
encode(targetPrice: string, goodUntil: number, orderType: OrderType, fromTokenDecimals: number, toTokenDecimals: number): string[];
|
|
109
109
|
decode(triggerData: string[], fromTokenDecimals: number, toTokenDecimals: number): {
|
|
110
110
|
orderType: OrderType;
|
|
111
111
|
targetPrice: string;
|
|
@@ -159,7 +159,7 @@ exports.aaveV2RatioTrigger = {
|
|
|
159
159
|
return {
|
|
160
160
|
owner: decodedData[0],
|
|
161
161
|
market: decodedData[1],
|
|
162
|
-
ratio: (0, utils_1.weiToRatioPercentage)(decodedData[
|
|
162
|
+
ratio: (0, utils_1.weiToRatioPercentage)(decodedData[2]),
|
|
163
163
|
ratioState: +decodedData[3],
|
|
164
164
|
};
|
|
165
165
|
},
|
|
@@ -183,7 +183,7 @@ exports.compoundV3RatioTrigger = {
|
|
|
183
183
|
return {
|
|
184
184
|
owner: decodedData[0],
|
|
185
185
|
market: decodedData[1],
|
|
186
|
-
ratio: (0, utils_1.weiToRatioPercentage)(decodedData[
|
|
186
|
+
ratio: (0, utils_1.weiToRatioPercentage)(decodedData[2]),
|
|
187
187
|
ratioState: +decodedData[3],
|
|
188
188
|
};
|
|
189
189
|
},
|
|
@@ -197,16 +197,16 @@ exports.exchangeTimestampTrigger = {
|
|
|
197
197
|
decode(triggerData) {
|
|
198
198
|
const decodedData = web3_eth_abi_1.default.decodeParameters(['uint256', 'uint256'], triggerData[0]);
|
|
199
199
|
return {
|
|
200
|
-
timestamp: decodedData[0],
|
|
201
|
-
interval: decodedData[1],
|
|
200
|
+
timestamp: Number(decodedData[0]),
|
|
201
|
+
interval: Number(decodedData[1]),
|
|
202
202
|
};
|
|
203
203
|
},
|
|
204
204
|
};
|
|
205
205
|
exports.exchangeOffchainPriceTrigger = {
|
|
206
|
-
encode(targetPrice, goodUntil, orderType, fromTokenDecimals) {
|
|
207
|
-
const
|
|
208
|
-
const
|
|
209
|
-
return [web3_eth_abi_1.default.encodeParameters(['uint256', 'uint256'], [price,
|
|
206
|
+
encode(targetPrice, goodUntil, orderType, fromTokenDecimals, toTokenDecimals) {
|
|
207
|
+
const decimals = new decimal_js_1.default(toTokenDecimals).plus(18).minus(fromTokenDecimals).toNumber();
|
|
208
|
+
const price = new decimal_js_1.default(targetPrice.toString()).mul(Math.pow(10, decimals)).floor().toString();
|
|
209
|
+
return [web3_eth_abi_1.default.encodeParameters(['uint256', 'uint256', 'uint8'], [price, goodUntil, orderType])];
|
|
210
210
|
},
|
|
211
211
|
decode(triggerData, fromTokenDecimals, toTokenDecimals) {
|
|
212
212
|
const decodedData = web3_eth_abi_1.default.decodeParameters(['uint256', 'uint256', 'uint8'], triggerData[0]);
|
|
@@ -214,7 +214,7 @@ exports.exchangeOffchainPriceTrigger = {
|
|
|
214
214
|
const price = new decimal_js_1.default(decodedData[0]).div(new decimal_js_1.default(10).pow(decimals)).toDP(fromTokenDecimals).toString();
|
|
215
215
|
return {
|
|
216
216
|
targetPrice: price,
|
|
217
|
-
goodUntil: decodedData[1],
|
|
217
|
+
goodUntil: +decodedData[1],
|
|
218
218
|
orderType: +decodedData[2],
|
|
219
219
|
};
|
|
220
220
|
},
|
|
@@ -263,7 +263,7 @@ exports.curveUsdBorrowRateTrigger = {
|
|
|
263
263
|
},
|
|
264
264
|
decode(triggerData) {
|
|
265
265
|
const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'uint256', 'uint8'], triggerData[0]);
|
|
266
|
-
const rateEth =
|
|
266
|
+
const rateEth = web3Utils.fromWei(decodedData[1], 'ether');
|
|
267
267
|
// the form is x = (e**(rate*365*86400))-1 where x*100 is number in %
|
|
268
268
|
const exponentRate = new decimal_js_1.default(rateEth).mul(365).mul(86400);
|
|
269
269
|
const targetRate = new decimal_js_1.default(new decimal_js_1.default(2.718281828459).pow(exponentRate).minus(1)).mul(100)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|