@defisaver/automation-sdk 2.0.2 → 2.0.4
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/.eslintrc.js +1 -0
- package/esm/abis/index.js +27 -15
- package/esm/automation/private/Automation.js +9 -6
- package/esm/automation/private/LegacyAutomation.d.ts +5 -5
- package/esm/automation/private/LegacyAutomation.js +30 -23
- package/esm/automation/private/LegacyProtocol.js +4 -1
- package/esm/automation/private/Protocol.js +4 -1
- package/esm/automation/private/StrategiesAutomation.d.ts +2 -2
- package/esm/automation/private/StrategiesAutomation.js +27 -21
- package/esm/automation/public/ArbitrumStrategies.js +10 -4
- package/esm/automation/public/EthereumStrategies.js +10 -4
- package/esm/automation/public/OptimismStrategies.js +10 -4
- package/esm/automation/public/legacy/LegacyAaveAutomation.js +13 -7
- package/esm/automation/public/legacy/LegacyCompoundAutomation.js +13 -7
- package/esm/automation/public/legacy/LegacyMakerAutomation.js +13 -7
- package/esm/configuration.js +8 -5
- package/esm/constants/index.js +281 -275
- package/esm/index.js +57 -17
- package/esm/services/contractService.js +22 -14
- package/esm/services/ethereumService.js +18 -10
- package/esm/services/strategiesService.js +132 -105
- package/esm/services/strategySubService.js +90 -61
- package/esm/services/subDataService.d.ts +5 -0
- package/esm/services/subDataService.js +158 -145
- package/esm/services/triggerService.d.ts +5 -5
- package/esm/services/triggerService.js +124 -94
- package/esm/services/utils.js +82 -33
- package/esm/services/utils.test.d.ts +1 -0
- package/esm/services/utils.test.js +362 -0
- package/esm/types/contracts/generated/Erc20.js +2 -1
- package/esm/types/contracts/generated/Legacy_AaveV2Subscriptions.js +2 -1
- package/esm/types/contracts/generated/Legacy_AuthCheck.js +2 -1
- package/esm/types/contracts/generated/Legacy_CompoundV2Subscriptions.js +2 -1
- package/esm/types/contracts/generated/Legacy_MakerSubscriptions.js +2 -1
- package/esm/types/contracts/generated/SubStorage.js +2 -1
- package/esm/types/contracts/generated/UniMulticall.js +2 -1
- package/esm/types/contracts/generated/index.js +2 -1
- package/esm/types/contracts/generated/types.js +2 -1
- package/esm/types/enums.js +17 -14
- package/esm/types/index.js +2 -1
- package/package.json +11 -7
- package/src/automation/private/LegacyAutomation.ts +11 -10
- package/src/automation/private/StrategiesAutomation.ts +5 -6
- package/src/configuration.ts +0 -3
- package/src/index.ts +0 -1
- package/src/services/ethereumService.ts +6 -6
- package/src/services/strategiesService.ts +2 -2
- package/src/services/subDataService.ts +84 -76
- package/src/services/triggerService.ts +83 -83
- package/src/services/utils.test.ts +414 -0
- package/src/services/utils.ts +6 -7
- package/tsconfig.json +1 -1
- package/umd/index.js +7045 -4124
- package/src/types/typings/process.d.ts +0 -9
- package/yarn-error.log +0 -7233
|
@@ -1,12 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.parseStrategiesAutomatedPosition = void 0;
|
|
27
|
+
const tokens_1 = require("@defisaver/tokens");
|
|
28
|
+
const lodash_1 = require("lodash");
|
|
29
|
+
const constants_1 = require("../constants");
|
|
30
|
+
const enums_1 = require("../types/enums");
|
|
31
|
+
const utils_1 = require("./utils");
|
|
32
|
+
const subDataService = __importStar(require("./subDataService"));
|
|
33
|
+
const triggerService = __importStar(require("./triggerService"));
|
|
8
34
|
function parseMakerSavingsLiqProtection(position, parseData) {
|
|
9
|
-
const _position = cloneDeep(position);
|
|
35
|
+
const _position = (0, lodash_1.cloneDeep)(position);
|
|
10
36
|
const { subStruct } = parseData.subscriptionEventData;
|
|
11
37
|
const triggerData = triggerService.makerRatioTrigger.decode(subStruct.triggerData);
|
|
12
38
|
const subData = subDataService.makerRepayFromSavingsSubData.decode(subStruct.subData);
|
|
@@ -21,14 +47,14 @@ function parseMakerSavingsLiqProtection(position, parseData) {
|
|
|
21
47
|
return _position;
|
|
22
48
|
}
|
|
23
49
|
function parseMakerCloseOnPrice(position, parseData) {
|
|
24
|
-
const _position = cloneDeep(position);
|
|
50
|
+
const _position = (0, lodash_1.cloneDeep)(position);
|
|
25
51
|
const { subStruct } = parseData.subscriptionEventData;
|
|
26
52
|
const triggerData = triggerService.chainlinkPriceTrigger.decode(subStruct.triggerData);
|
|
27
53
|
const subData = subDataService.makerCloseSubData.decode(subStruct.subData);
|
|
28
54
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
29
55
|
_position.strategyData.decoded.subData = subData;
|
|
30
|
-
const isTakeProfit = isRatioStateOver(Number(triggerData.state));
|
|
31
|
-
_position.strategy.strategyId = isTakeProfit ? Strategies.IdOverrides.TakeProfit : Strategies.IdOverrides.StopLoss;
|
|
56
|
+
const isTakeProfit = (0, utils_1.isRatioStateOver)(Number(triggerData.state));
|
|
57
|
+
_position.strategy.strategyId = isTakeProfit ? enums_1.Strategies.IdOverrides.TakeProfit : enums_1.Strategies.IdOverrides.StopLoss;
|
|
32
58
|
_position.specific = {
|
|
33
59
|
price: triggerData.price,
|
|
34
60
|
closeToAssetAddr: subData.closeToAssetAddr,
|
|
@@ -36,13 +62,13 @@ function parseMakerCloseOnPrice(position, parseData) {
|
|
|
36
62
|
return _position;
|
|
37
63
|
}
|
|
38
64
|
function parseMakerTrailingStop(position, parseData) {
|
|
39
|
-
const _position = cloneDeep(position);
|
|
65
|
+
const _position = (0, lodash_1.cloneDeep)(position);
|
|
40
66
|
const { subStruct } = parseData.subscriptionEventData;
|
|
41
67
|
const triggerData = triggerService.trailingStopTrigger.decode(subStruct.triggerData);
|
|
42
68
|
const subData = subDataService.makerCloseSubData.decode(subStruct.subData);
|
|
43
69
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
44
70
|
_position.strategyData.decoded.subData = subData;
|
|
45
|
-
_position.strategy.strategyId = Strategies.IdOverrides.TrailingStop;
|
|
71
|
+
_position.strategy.strategyId = enums_1.Strategies.IdOverrides.TrailingStop;
|
|
46
72
|
_position.specific = {
|
|
47
73
|
triggerPercentage: Number(triggerData.triggerPercentage),
|
|
48
74
|
roundId: Number(triggerData.roundId),
|
|
@@ -51,14 +77,14 @@ function parseMakerTrailingStop(position, parseData) {
|
|
|
51
77
|
return _position;
|
|
52
78
|
}
|
|
53
79
|
function parseMakerLeverageManagement(position, parseData) {
|
|
54
|
-
const _position = cloneDeep(position);
|
|
80
|
+
const _position = (0, lodash_1.cloneDeep)(position);
|
|
55
81
|
const { subStruct, subId } = parseData.subscriptionEventData;
|
|
56
82
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
57
83
|
const triggerData = triggerService.makerRatioTrigger.decode(subStruct.triggerData);
|
|
58
84
|
const subData = subDataService.makerLeverageManagementSubData.decode(subStruct.subData);
|
|
59
85
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
60
86
|
_position.strategyData.decoded.subData = subData;
|
|
61
|
-
const isRepay = _position.strategy.strategyId === Strategies.Identifiers.Repay;
|
|
87
|
+
const isRepay = _position.strategy.strategyId === enums_1.Strategies.Identifiers.Repay;
|
|
62
88
|
if (isRepay) {
|
|
63
89
|
_position.specific = {
|
|
64
90
|
triggerRepayRatio: triggerData.ratio,
|
|
@@ -75,19 +101,19 @@ function parseMakerLeverageManagement(position, parseData) {
|
|
|
75
101
|
subId2: Number(subId),
|
|
76
102
|
};
|
|
77
103
|
}
|
|
78
|
-
_position.strategy.strategyId = Strategies.IdOverrides.LeverageManagement;
|
|
104
|
+
_position.strategy.strategyId = enums_1.Strategies.IdOverrides.LeverageManagement;
|
|
79
105
|
_position.specific.mergeWithSameId = true;
|
|
80
106
|
return _position;
|
|
81
107
|
}
|
|
82
108
|
function parseLiquityCloseOnPrice(position, parseData) {
|
|
83
|
-
const _position = cloneDeep(position);
|
|
109
|
+
const _position = (0, lodash_1.cloneDeep)(position);
|
|
84
110
|
const { subStruct } = parseData.subscriptionEventData;
|
|
85
111
|
const triggerData = triggerService.chainlinkPriceTrigger.decode(subStruct.triggerData);
|
|
86
112
|
const subData = subDataService.liquityCloseSubData.decode(subStruct.subData);
|
|
87
113
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
88
114
|
_position.strategyData.decoded.subData = subData;
|
|
89
|
-
const isTakeProfit = isRatioStateOver(Number(triggerData.state));
|
|
90
|
-
_position.strategy.strategyId = isTakeProfit ? Strategies.IdOverrides.TakeProfit : Strategies.IdOverrides.StopLoss;
|
|
115
|
+
const isTakeProfit = (0, utils_1.isRatioStateOver)(Number(triggerData.state));
|
|
116
|
+
_position.strategy.strategyId = isTakeProfit ? enums_1.Strategies.IdOverrides.TakeProfit : enums_1.Strategies.IdOverrides.StopLoss;
|
|
91
117
|
_position.specific = {
|
|
92
118
|
price: triggerData.price,
|
|
93
119
|
closeToAssetAddr: subData.closeToAssetAddr,
|
|
@@ -95,13 +121,13 @@ function parseLiquityCloseOnPrice(position, parseData) {
|
|
|
95
121
|
return _position;
|
|
96
122
|
}
|
|
97
123
|
function parseLiquityTrailingStop(position, parseData) {
|
|
98
|
-
const _position = cloneDeep(position);
|
|
124
|
+
const _position = (0, lodash_1.cloneDeep)(position);
|
|
99
125
|
const { subStruct } = parseData.subscriptionEventData;
|
|
100
126
|
const triggerData = triggerService.trailingStopTrigger.decode(subStruct.triggerData);
|
|
101
127
|
const subData = subDataService.liquityCloseSubData.decode(subStruct.subData);
|
|
102
128
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
103
129
|
_position.strategyData.decoded.subData = subData;
|
|
104
|
-
_position.strategy.strategyId = Strategies.IdOverrides.TrailingStop;
|
|
130
|
+
_position.strategy.strategyId = enums_1.Strategies.IdOverrides.TrailingStop;
|
|
105
131
|
_position.specific = {
|
|
106
132
|
triggerPercentage: Number(triggerData.triggerPercentage),
|
|
107
133
|
roundId: Number(triggerData.roundId),
|
|
@@ -110,14 +136,14 @@ function parseLiquityTrailingStop(position, parseData) {
|
|
|
110
136
|
return _position;
|
|
111
137
|
}
|
|
112
138
|
function parseAaveV2LeverageManagement(position, parseData) {
|
|
113
|
-
const _position = cloneDeep(position);
|
|
139
|
+
const _position = (0, lodash_1.cloneDeep)(position);
|
|
114
140
|
const { subStruct, subId } = parseData.subscriptionEventData;
|
|
115
141
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
116
142
|
const triggerData = triggerService.aaveV2RatioTrigger.decode(subStruct.triggerData);
|
|
117
143
|
const subData = subDataService.aaveV2LeverageManagementSubData.decode(subStruct.subData);
|
|
118
144
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
119
145
|
_position.strategyData.decoded.subData = subData;
|
|
120
|
-
const isRepay = _position.strategy.strategyId === Strategies.Identifiers.Repay;
|
|
146
|
+
const isRepay = _position.strategy.strategyId === enums_1.Strategies.Identifiers.Repay;
|
|
121
147
|
if (isRepay) {
|
|
122
148
|
_position.specific = {
|
|
123
149
|
triggerRepayRatio: triggerData.ratio,
|
|
@@ -134,19 +160,19 @@ function parseAaveV2LeverageManagement(position, parseData) {
|
|
|
134
160
|
subId2: Number(subId),
|
|
135
161
|
};
|
|
136
162
|
}
|
|
137
|
-
_position.strategy.strategyId = Strategies.IdOverrides.LeverageManagement;
|
|
163
|
+
_position.strategy.strategyId = enums_1.Strategies.IdOverrides.LeverageManagement;
|
|
138
164
|
_position.specific.mergeWithSameId = true;
|
|
139
165
|
return _position;
|
|
140
166
|
}
|
|
141
167
|
function parseAaveV3LeverageManagement(position, parseData) {
|
|
142
|
-
const _position = cloneDeep(position);
|
|
168
|
+
const _position = (0, lodash_1.cloneDeep)(position);
|
|
143
169
|
const { subStruct, subId } = parseData.subscriptionEventData;
|
|
144
170
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
145
171
|
const triggerData = triggerService.aaveV3RatioTrigger.decode(subStruct.triggerData);
|
|
146
172
|
const subData = subDataService.aaveV3LeverageManagementSubData.decode(subStruct.subData);
|
|
147
173
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
148
174
|
_position.strategyData.decoded.subData = subData;
|
|
149
|
-
const isRepay = _position.strategy.strategyId === Strategies.Identifiers.Repay;
|
|
175
|
+
const isRepay = _position.strategy.strategyId === enums_1.Strategies.Identifiers.Repay;
|
|
150
176
|
if (isRepay) {
|
|
151
177
|
_position.specific = {
|
|
152
178
|
triggerRepayRatio: triggerData.ratio,
|
|
@@ -163,19 +189,19 @@ function parseAaveV3LeverageManagement(position, parseData) {
|
|
|
163
189
|
subId2: Number(subId),
|
|
164
190
|
};
|
|
165
191
|
}
|
|
166
|
-
_position.strategy.strategyId = Strategies.IdOverrides.LeverageManagement;
|
|
192
|
+
_position.strategy.strategyId = enums_1.Strategies.IdOverrides.LeverageManagement;
|
|
167
193
|
_position.specific.mergeWithSameId = true;
|
|
168
194
|
return _position;
|
|
169
195
|
}
|
|
170
196
|
function parseMorphoAaveV2LeverageManagement(position, parseData) {
|
|
171
|
-
const _position = cloneDeep(position);
|
|
197
|
+
const _position = (0, lodash_1.cloneDeep)(position);
|
|
172
198
|
const { subStruct, subId } = parseData.subscriptionEventData;
|
|
173
199
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
174
200
|
const triggerData = triggerService.morphoAaveV2RatioTrigger.decode(subStruct.triggerData);
|
|
175
201
|
const subData = subDataService.morphoAaveV2LeverageManagementSubData.decode(subStruct.subData);
|
|
176
202
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
177
203
|
_position.strategyData.decoded.subData = subData;
|
|
178
|
-
const isRepay = _position.strategy.strategyId === Strategies.Identifiers.Repay;
|
|
204
|
+
const isRepay = _position.strategy.strategyId === enums_1.Strategies.Identifiers.Repay;
|
|
179
205
|
if (isRepay) {
|
|
180
206
|
_position.specific = {
|
|
181
207
|
triggerRepayRatio: triggerData.ratio,
|
|
@@ -192,12 +218,12 @@ function parseMorphoAaveV2LeverageManagement(position, parseData) {
|
|
|
192
218
|
subId2: Number(subId),
|
|
193
219
|
};
|
|
194
220
|
}
|
|
195
|
-
_position.strategy.strategyId = Strategies.IdOverrides.LeverageManagement;
|
|
221
|
+
_position.strategy.strategyId = enums_1.Strategies.IdOverrides.LeverageManagement;
|
|
196
222
|
_position.specific.mergeWithSameId = true;
|
|
197
223
|
return _position;
|
|
198
224
|
}
|
|
199
225
|
function parseAaveV3CloseOnPrice(position, parseData) {
|
|
200
|
-
const _position = cloneDeep(position);
|
|
226
|
+
const _position = (0, lodash_1.cloneDeep)(position);
|
|
201
227
|
const { subStruct } = parseData.subscriptionEventData;
|
|
202
228
|
const triggerData = triggerService.aaveV3QuotePriceTrigger.decode(subStruct.triggerData);
|
|
203
229
|
const subData = subDataService.aaveV3QuotePriceSubData.decode(subStruct.subData);
|
|
@@ -213,12 +239,12 @@ function parseAaveV3CloseOnPrice(position, parseData) {
|
|
|
213
239
|
price: triggerData.price,
|
|
214
240
|
ratioState: triggerData.ratioState,
|
|
215
241
|
};
|
|
216
|
-
const { ratioState } = getRatioStateInfoForAaveCloseStrategy(_position.specific.ratioState, wethToEthByAddress(_position.specific.collAsset, parseData.chainId), wethToEthByAddress(_position.specific.debtAsset, parseData.chainId), parseData.chainId);
|
|
217
|
-
_position.strategy.strategyId = isRatioStateOver(ratioState) ? Strategies.IdOverrides.TakeProfit : Strategies.IdOverrides.StopLoss;
|
|
242
|
+
const { ratioState } = (0, utils_1.getRatioStateInfoForAaveCloseStrategy)(_position.specific.ratioState, (0, utils_1.wethToEthByAddress)(_position.specific.collAsset, parseData.chainId), (0, utils_1.wethToEthByAddress)(_position.specific.debtAsset, parseData.chainId), parseData.chainId);
|
|
243
|
+
_position.strategy.strategyId = (0, utils_1.isRatioStateOver)(ratioState) ? enums_1.Strategies.IdOverrides.TakeProfit : enums_1.Strategies.IdOverrides.StopLoss;
|
|
218
244
|
return _position;
|
|
219
245
|
}
|
|
220
246
|
function parseCompoundV2LeverageManagement(position, parseData) {
|
|
221
|
-
const _position = cloneDeep(position);
|
|
247
|
+
const _position = (0, lodash_1.cloneDeep)(position);
|
|
222
248
|
const { subStruct, subId } = parseData.subscriptionEventData;
|
|
223
249
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
224
250
|
const triggerData = triggerService.compoundV2RatioTrigger.decode(subStruct.triggerData);
|
|
@@ -226,7 +252,7 @@ function parseCompoundV2LeverageManagement(position, parseData) {
|
|
|
226
252
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
227
253
|
_position.strategyData.decoded.subData = subData;
|
|
228
254
|
_position.owner = triggerData.owner;
|
|
229
|
-
const isRepay = [Strategies.Identifiers.Repay, Strategies.Identifiers.EoaRepay].includes(_position.strategy.strategyId);
|
|
255
|
+
const isRepay = [enums_1.Strategies.Identifiers.Repay, enums_1.Strategies.Identifiers.EoaRepay].includes(_position.strategy.strategyId);
|
|
230
256
|
if (isRepay) {
|
|
231
257
|
_position.specific = {
|
|
232
258
|
triggerRepayRatio: triggerData.ratio,
|
|
@@ -243,12 +269,12 @@ function parseCompoundV2LeverageManagement(position, parseData) {
|
|
|
243
269
|
subId2: Number(subId),
|
|
244
270
|
};
|
|
245
271
|
}
|
|
246
|
-
_position.strategy.strategyId = Strategies.IdOverrides.LeverageManagement;
|
|
272
|
+
_position.strategy.strategyId = enums_1.Strategies.IdOverrides.LeverageManagement;
|
|
247
273
|
_position.specific.mergeWithSameId = true;
|
|
248
274
|
return _position;
|
|
249
275
|
}
|
|
250
276
|
function parseCompoundV3LeverageManagement(position, parseData) {
|
|
251
|
-
const _position = cloneDeep(position);
|
|
277
|
+
const _position = (0, lodash_1.cloneDeep)(position);
|
|
252
278
|
const { subStruct, subId } = parseData.subscriptionEventData;
|
|
253
279
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
254
280
|
const triggerData = triggerService.compoundV3RatioTrigger.decode(subStruct.triggerData);
|
|
@@ -256,7 +282,7 @@ function parseCompoundV3LeverageManagement(position, parseData) {
|
|
|
256
282
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
257
283
|
_position.strategyData.decoded.subData = subData;
|
|
258
284
|
_position.owner = triggerData.owner;
|
|
259
|
-
const isRepay = [Strategies.Identifiers.Repay, Strategies.Identifiers.EoaRepay].includes(_position.strategy.strategyId);
|
|
285
|
+
const isRepay = [enums_1.Strategies.Identifiers.Repay, enums_1.Strategies.Identifiers.EoaRepay].includes(_position.strategy.strategyId);
|
|
260
286
|
if (isRepay) {
|
|
261
287
|
_position.specific = {
|
|
262
288
|
triggerRepayRatio: triggerData.ratio,
|
|
@@ -274,19 +300,19 @@ function parseCompoundV3LeverageManagement(position, parseData) {
|
|
|
274
300
|
};
|
|
275
301
|
}
|
|
276
302
|
const isEOA = _position.strategy.strategyId.includes('eoa');
|
|
277
|
-
_position.strategy.strategyId = isEOA ? Strategies.IdOverrides.EoaLeverageManagement : Strategies.IdOverrides.LeverageManagement;
|
|
303
|
+
_position.strategy.strategyId = isEOA ? enums_1.Strategies.IdOverrides.EoaLeverageManagement : enums_1.Strategies.IdOverrides.LeverageManagement;
|
|
278
304
|
_position.specific.mergeWithSameId = true;
|
|
279
305
|
return _position;
|
|
280
306
|
}
|
|
281
307
|
function parseChickenBondsRebond(position, parseData) {
|
|
282
|
-
const _position = cloneDeep(position);
|
|
308
|
+
const _position = (0, lodash_1.cloneDeep)(position);
|
|
283
309
|
const { subStruct } = parseData.subscriptionEventData;
|
|
284
310
|
_position.strategyData.decoded.triggerData = triggerService.cBondsRebondTrigger.decode(subStruct.triggerData);
|
|
285
311
|
_position.strategyData.decoded.subData = subDataService.cBondsRebondSubData.decode(subStruct.subData);
|
|
286
312
|
return _position;
|
|
287
313
|
}
|
|
288
314
|
function parseLiquityBondProtection(position, parseData) {
|
|
289
|
-
const _position = cloneDeep(position);
|
|
315
|
+
const _position = (0, lodash_1.cloneDeep)(position);
|
|
290
316
|
const { subStruct } = parseData.subscriptionEventData;
|
|
291
317
|
const triggerData = triggerService.liquityRatioTrigger.decode(subStruct.triggerData);
|
|
292
318
|
_position.strategyData.decoded.subData = subDataService.liquityPaybackUsingChickenBondSubData.decode(subStruct.subData);
|
|
@@ -299,30 +325,30 @@ function parseLiquityBondProtection(position, parseData) {
|
|
|
299
325
|
return _position;
|
|
300
326
|
}
|
|
301
327
|
function parseExchangeDca(position, parseData, chainId) {
|
|
302
|
-
const _position = cloneDeep(position);
|
|
328
|
+
const _position = (0, lodash_1.cloneDeep)(position);
|
|
303
329
|
const { subStruct } = parseData.subscriptionEventData;
|
|
304
330
|
_position.strategyData.decoded.triggerData = triggerService.exchangeTimestampTrigger.decode(subStruct.triggerData);
|
|
305
331
|
_position.strategyData.decoded.subData = subDataService.exchangeDcaSubData.decode(subStruct.subData, chainId);
|
|
306
332
|
return _position;
|
|
307
333
|
}
|
|
308
334
|
function parseExchangeLimitOrder(position, parseData, chainId) {
|
|
309
|
-
const _position = cloneDeep(position);
|
|
335
|
+
const _position = (0, lodash_1.cloneDeep)(position);
|
|
310
336
|
const { subStruct } = parseData.subscriptionEventData;
|
|
311
337
|
_position.strategyData.decoded.subData = subDataService.exchangeLimitOrderSubData.decode(subStruct.subData, chainId);
|
|
312
|
-
const fromTokenDecimals = getAssetInfoByAddress(_position.strategyData.decoded.subData.fromToken, chainId).decimals;
|
|
313
|
-
const toTokenDecimals = getAssetInfoByAddress(_position.strategyData.decoded.subData.toToken, chainId).decimals;
|
|
338
|
+
const fromTokenDecimals = (0, tokens_1.getAssetInfoByAddress)(_position.strategyData.decoded.subData.fromToken, chainId).decimals;
|
|
339
|
+
const toTokenDecimals = (0, tokens_1.getAssetInfoByAddress)(_position.strategyData.decoded.subData.toToken, chainId).decimals;
|
|
314
340
|
_position.strategyData.decoded.triggerData = triggerService.exchangeOffchainPriceTrigger.decode(subStruct.triggerData, fromTokenDecimals, toTokenDecimals);
|
|
315
341
|
return _position;
|
|
316
342
|
}
|
|
317
343
|
function parseLiquityLeverageManagement(position, parseData) {
|
|
318
|
-
const _position = cloneDeep(position);
|
|
344
|
+
const _position = (0, lodash_1.cloneDeep)(position);
|
|
319
345
|
const { subStruct, subId } = parseData.subscriptionEventData;
|
|
320
346
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
321
347
|
const triggerData = triggerService.liquityRatioTrigger.decode(subStruct.triggerData);
|
|
322
348
|
const subData = subDataService.liquityLeverageManagementSubData.decode(subStruct.subData);
|
|
323
349
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
324
350
|
_position.strategyData.decoded.subData = subData;
|
|
325
|
-
const isRepay = _position.strategy.strategyId === Strategies.Identifiers.Repay;
|
|
351
|
+
const isRepay = _position.strategy.strategyId === enums_1.Strategies.Identifiers.Repay;
|
|
326
352
|
if (isRepay) {
|
|
327
353
|
_position.specific = {
|
|
328
354
|
triggerRepayRatio: triggerData.ratio,
|
|
@@ -339,19 +365,19 @@ function parseLiquityLeverageManagement(position, parseData) {
|
|
|
339
365
|
subId2: Number(subId),
|
|
340
366
|
};
|
|
341
367
|
}
|
|
342
|
-
_position.strategy.strategyId = Strategies.IdOverrides.LeverageManagement;
|
|
368
|
+
_position.strategy.strategyId = enums_1.Strategies.IdOverrides.LeverageManagement;
|
|
343
369
|
_position.specific.mergeWithSameId = true;
|
|
344
370
|
return _position;
|
|
345
371
|
}
|
|
346
372
|
function parseSparkLeverageManagement(position, parseData) {
|
|
347
|
-
const _position = cloneDeep(position);
|
|
373
|
+
const _position = (0, lodash_1.cloneDeep)(position);
|
|
348
374
|
const { subStruct, subId } = parseData.subscriptionEventData;
|
|
349
375
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
350
376
|
const triggerData = triggerService.sparkRatioTrigger.decode(subStruct.triggerData);
|
|
351
377
|
const subData = subDataService.sparkLeverageManagementSubData.decode(subStruct.subData);
|
|
352
378
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
353
379
|
_position.strategyData.decoded.subData = subData;
|
|
354
|
-
const isRepay = _position.strategy.strategyId === Strategies.Identifiers.Repay;
|
|
380
|
+
const isRepay = _position.strategy.strategyId === enums_1.Strategies.Identifiers.Repay;
|
|
355
381
|
if (isRepay) {
|
|
356
382
|
_position.specific = {
|
|
357
383
|
triggerRepayRatio: triggerData.ratio,
|
|
@@ -368,12 +394,12 @@ function parseSparkLeverageManagement(position, parseData) {
|
|
|
368
394
|
subId2: Number(subId),
|
|
369
395
|
};
|
|
370
396
|
}
|
|
371
|
-
_position.strategy.strategyId = Strategies.IdOverrides.LeverageManagement;
|
|
397
|
+
_position.strategy.strategyId = enums_1.Strategies.IdOverrides.LeverageManagement;
|
|
372
398
|
_position.specific.mergeWithSameId = true;
|
|
373
399
|
return _position;
|
|
374
400
|
}
|
|
375
401
|
function parseSparkCloseOnPrice(position, parseData) {
|
|
376
|
-
const _position = cloneDeep(position);
|
|
402
|
+
const _position = (0, lodash_1.cloneDeep)(position);
|
|
377
403
|
const { subStruct } = parseData.subscriptionEventData;
|
|
378
404
|
const triggerData = triggerService.sparkQuotePriceTrigger.decode(subStruct.triggerData);
|
|
379
405
|
const subData = subDataService.sparkQuotePriceSubData.decode(subStruct.subData);
|
|
@@ -389,15 +415,15 @@ function parseSparkCloseOnPrice(position, parseData) {
|
|
|
389
415
|
price: triggerData.price,
|
|
390
416
|
ratioState: triggerData.ratioState,
|
|
391
417
|
};
|
|
392
|
-
const { ratioState } = getRatioStateInfoForAaveCloseStrategy(_position.specific.ratioState, wethToEthByAddress(_position.specific.collAsset, parseData.chainId), wethToEthByAddress(_position.specific.debtAsset, parseData.chainId), parseData.chainId);
|
|
393
|
-
_position.strategy.strategyId = isRatioStateOver(ratioState) ? Strategies.IdOverrides.TakeProfit : Strategies.IdOverrides.StopLoss;
|
|
418
|
+
const { ratioState } = (0, utils_1.getRatioStateInfoForAaveCloseStrategy)(_position.specific.ratioState, (0, utils_1.wethToEthByAddress)(_position.specific.collAsset, parseData.chainId), (0, utils_1.wethToEthByAddress)(_position.specific.debtAsset, parseData.chainId), parseData.chainId);
|
|
419
|
+
_position.strategy.strategyId = (0, utils_1.isRatioStateOver)(ratioState) ? enums_1.Strategies.IdOverrides.TakeProfit : enums_1.Strategies.IdOverrides.StopLoss;
|
|
394
420
|
return _position;
|
|
395
421
|
}
|
|
396
422
|
function parseLiquitySavingsLiqProtection(position, parseData) {
|
|
397
|
-
const _position = cloneDeep(position);
|
|
423
|
+
const _position = (0, lodash_1.cloneDeep)(position);
|
|
398
424
|
const { subStruct } = parseData.subscriptionEventData;
|
|
399
|
-
const triggerData = triggerService.
|
|
400
|
-
const subData = subDataService.
|
|
425
|
+
const triggerData = triggerService.liquityRatioTrigger.decode(subStruct.triggerData);
|
|
426
|
+
const subData = subDataService.liquityRepayFromSavingsSubData.decode(subStruct.subData);
|
|
401
427
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
402
428
|
_position.strategyData.decoded.subData = subData;
|
|
403
429
|
_position.specific = {
|
|
@@ -409,73 +435,73 @@ function parseLiquitySavingsLiqProtection(position, parseData) {
|
|
|
409
435
|
return _position;
|
|
410
436
|
}
|
|
411
437
|
const parsingMethodsMapping = {
|
|
412
|
-
[ProtocolIdentifiers.StrategiesAutomation.MakerDAO]: {
|
|
413
|
-
[Strategies.Identifiers.SavingsLiqProtection]: parseMakerSavingsLiqProtection,
|
|
414
|
-
[Strategies.Identifiers.CloseOnPriceToDebt]: parseMakerCloseOnPrice,
|
|
415
|
-
[Strategies.Identifiers.CloseOnPriceToColl]: parseMakerCloseOnPrice,
|
|
416
|
-
[Strategies.Identifiers.TrailingStopToColl]: parseMakerTrailingStop,
|
|
417
|
-
[Strategies.Identifiers.TrailingStopToDebt]: parseMakerTrailingStop,
|
|
418
|
-
[Strategies.Identifiers.Repay]: parseMakerLeverageManagement,
|
|
419
|
-
[Strategies.Identifiers.Boost]: parseMakerLeverageManagement,
|
|
438
|
+
[enums_1.ProtocolIdentifiers.StrategiesAutomation.MakerDAO]: {
|
|
439
|
+
[enums_1.Strategies.Identifiers.SavingsLiqProtection]: parseMakerSavingsLiqProtection,
|
|
440
|
+
[enums_1.Strategies.Identifiers.CloseOnPriceToDebt]: parseMakerCloseOnPrice,
|
|
441
|
+
[enums_1.Strategies.Identifiers.CloseOnPriceToColl]: parseMakerCloseOnPrice,
|
|
442
|
+
[enums_1.Strategies.Identifiers.TrailingStopToColl]: parseMakerTrailingStop,
|
|
443
|
+
[enums_1.Strategies.Identifiers.TrailingStopToDebt]: parseMakerTrailingStop,
|
|
444
|
+
[enums_1.Strategies.Identifiers.Repay]: parseMakerLeverageManagement,
|
|
445
|
+
[enums_1.Strategies.Identifiers.Boost]: parseMakerLeverageManagement,
|
|
420
446
|
},
|
|
421
|
-
[ProtocolIdentifiers.StrategiesAutomation.Liquity]: {
|
|
422
|
-
[Strategies.Identifiers.CloseOnPriceToColl]: parseLiquityCloseOnPrice,
|
|
423
|
-
[Strategies.Identifiers.TrailingStopToColl]: parseLiquityTrailingStop,
|
|
424
|
-
[Strategies.Identifiers.BondProtection]: parseLiquityBondProtection,
|
|
425
|
-
[Strategies.Identifiers.Repay]: parseLiquityLeverageManagement,
|
|
426
|
-
[Strategies.Identifiers.Boost]: parseLiquityLeverageManagement,
|
|
427
|
-
[Strategies.Identifiers.SavingsDsrPayback]: parseLiquitySavingsLiqProtection,
|
|
428
|
-
[Strategies.Identifiers.SavingsDsrSupply]: parseLiquitySavingsLiqProtection,
|
|
447
|
+
[enums_1.ProtocolIdentifiers.StrategiesAutomation.Liquity]: {
|
|
448
|
+
[enums_1.Strategies.Identifiers.CloseOnPriceToColl]: parseLiquityCloseOnPrice,
|
|
449
|
+
[enums_1.Strategies.Identifiers.TrailingStopToColl]: parseLiquityTrailingStop,
|
|
450
|
+
[enums_1.Strategies.Identifiers.BondProtection]: parseLiquityBondProtection,
|
|
451
|
+
[enums_1.Strategies.Identifiers.Repay]: parseLiquityLeverageManagement,
|
|
452
|
+
[enums_1.Strategies.Identifiers.Boost]: parseLiquityLeverageManagement,
|
|
453
|
+
[enums_1.Strategies.Identifiers.SavingsDsrPayback]: parseLiquitySavingsLiqProtection,
|
|
454
|
+
[enums_1.Strategies.Identifiers.SavingsDsrSupply]: parseLiquitySavingsLiqProtection,
|
|
429
455
|
},
|
|
430
|
-
[ProtocolIdentifiers.StrategiesAutomation.AaveV2]: {
|
|
431
|
-
[Strategies.Identifiers.Repay]: parseAaveV2LeverageManagement,
|
|
432
|
-
[Strategies.Identifiers.Boost]: parseAaveV2LeverageManagement,
|
|
456
|
+
[enums_1.ProtocolIdentifiers.StrategiesAutomation.AaveV2]: {
|
|
457
|
+
[enums_1.Strategies.Identifiers.Repay]: parseAaveV2LeverageManagement,
|
|
458
|
+
[enums_1.Strategies.Identifiers.Boost]: parseAaveV2LeverageManagement,
|
|
433
459
|
},
|
|
434
|
-
[ProtocolIdentifiers.StrategiesAutomation.AaveV3]: {
|
|
435
|
-
[Strategies.Identifiers.Repay]: parseAaveV3LeverageManagement,
|
|
436
|
-
[Strategies.Identifiers.Boost]: parseAaveV3LeverageManagement,
|
|
437
|
-
[Strategies.Identifiers.CloseToDebt]: parseAaveV3CloseOnPrice,
|
|
438
|
-
[Strategies.Identifiers.CloseToCollateral]: parseAaveV3CloseOnPrice,
|
|
460
|
+
[enums_1.ProtocolIdentifiers.StrategiesAutomation.AaveV3]: {
|
|
461
|
+
[enums_1.Strategies.Identifiers.Repay]: parseAaveV3LeverageManagement,
|
|
462
|
+
[enums_1.Strategies.Identifiers.Boost]: parseAaveV3LeverageManagement,
|
|
463
|
+
[enums_1.Strategies.Identifiers.CloseToDebt]: parseAaveV3CloseOnPrice,
|
|
464
|
+
[enums_1.Strategies.Identifiers.CloseToCollateral]: parseAaveV3CloseOnPrice,
|
|
439
465
|
},
|
|
440
|
-
[ProtocolIdentifiers.StrategiesAutomation.CompoundV2]: {
|
|
441
|
-
[Strategies.Identifiers.Repay]: parseCompoundV2LeverageManagement,
|
|
442
|
-
[Strategies.Identifiers.Boost]: parseCompoundV2LeverageManagement,
|
|
466
|
+
[enums_1.ProtocolIdentifiers.StrategiesAutomation.CompoundV2]: {
|
|
467
|
+
[enums_1.Strategies.Identifiers.Repay]: parseCompoundV2LeverageManagement,
|
|
468
|
+
[enums_1.Strategies.Identifiers.Boost]: parseCompoundV2LeverageManagement,
|
|
443
469
|
},
|
|
444
|
-
[ProtocolIdentifiers.StrategiesAutomation.CompoundV3]: {
|
|
445
|
-
[Strategies.Identifiers.Repay]: parseCompoundV3LeverageManagement,
|
|
446
|
-
[Strategies.Identifiers.Boost]: parseCompoundV3LeverageManagement,
|
|
447
|
-
[Strategies.Identifiers.EoaRepay]: parseCompoundV3LeverageManagement,
|
|
448
|
-
[Strategies.Identifiers.EoaBoost]: parseCompoundV3LeverageManagement,
|
|
470
|
+
[enums_1.ProtocolIdentifiers.StrategiesAutomation.CompoundV3]: {
|
|
471
|
+
[enums_1.Strategies.Identifiers.Repay]: parseCompoundV3LeverageManagement,
|
|
472
|
+
[enums_1.Strategies.Identifiers.Boost]: parseCompoundV3LeverageManagement,
|
|
473
|
+
[enums_1.Strategies.Identifiers.EoaRepay]: parseCompoundV3LeverageManagement,
|
|
474
|
+
[enums_1.Strategies.Identifiers.EoaBoost]: parseCompoundV3LeverageManagement,
|
|
449
475
|
},
|
|
450
|
-
[ProtocolIdentifiers.StrategiesAutomation.ChickenBonds]: {
|
|
451
|
-
[Strategies.Identifiers.Rebond]: parseChickenBondsRebond,
|
|
476
|
+
[enums_1.ProtocolIdentifiers.StrategiesAutomation.ChickenBonds]: {
|
|
477
|
+
[enums_1.Strategies.Identifiers.Rebond]: parseChickenBondsRebond,
|
|
452
478
|
},
|
|
453
|
-
[ProtocolIdentifiers.StrategiesAutomation.MorphoAaveV2]: {
|
|
454
|
-
[Strategies.Identifiers.Repay]: parseMorphoAaveV2LeverageManagement,
|
|
455
|
-
[Strategies.Identifiers.Boost]: parseMorphoAaveV2LeverageManagement,
|
|
479
|
+
[enums_1.ProtocolIdentifiers.StrategiesAutomation.MorphoAaveV2]: {
|
|
480
|
+
[enums_1.Strategies.Identifiers.Repay]: parseMorphoAaveV2LeverageManagement,
|
|
481
|
+
[enums_1.Strategies.Identifiers.Boost]: parseMorphoAaveV2LeverageManagement,
|
|
456
482
|
},
|
|
457
|
-
[ProtocolIdentifiers.StrategiesAutomation.Exchange]: {
|
|
458
|
-
[Strategies.Identifiers.Dca]: parseExchangeDca,
|
|
459
|
-
[Strategies.Identifiers.LimitOrder]: parseExchangeLimitOrder,
|
|
483
|
+
[enums_1.ProtocolIdentifiers.StrategiesAutomation.Exchange]: {
|
|
484
|
+
[enums_1.Strategies.Identifiers.Dca]: parseExchangeDca,
|
|
485
|
+
[enums_1.Strategies.Identifiers.LimitOrder]: parseExchangeLimitOrder,
|
|
460
486
|
},
|
|
461
|
-
[ProtocolIdentifiers.StrategiesAutomation.Spark]: {
|
|
462
|
-
[Strategies.Identifiers.Repay]: parseSparkLeverageManagement,
|
|
463
|
-
[Strategies.Identifiers.Boost]: parseSparkLeverageManagement,
|
|
464
|
-
[Strategies.Identifiers.CloseToDebt]: parseSparkCloseOnPrice,
|
|
465
|
-
[Strategies.Identifiers.CloseToCollateral]: parseSparkCloseOnPrice,
|
|
487
|
+
[enums_1.ProtocolIdentifiers.StrategiesAutomation.Spark]: {
|
|
488
|
+
[enums_1.Strategies.Identifiers.Repay]: parseSparkLeverageManagement,
|
|
489
|
+
[enums_1.Strategies.Identifiers.Boost]: parseSparkLeverageManagement,
|
|
490
|
+
[enums_1.Strategies.Identifiers.CloseToDebt]: parseSparkCloseOnPrice,
|
|
491
|
+
[enums_1.Strategies.Identifiers.CloseToCollateral]: parseSparkCloseOnPrice,
|
|
466
492
|
},
|
|
467
493
|
};
|
|
468
494
|
function getParsingMethod(id, strategy) {
|
|
469
495
|
return parsingMethodsMapping[id][strategy.strategyId];
|
|
470
496
|
}
|
|
471
|
-
|
|
497
|
+
function parseStrategiesAutomatedPosition(parseData) {
|
|
472
498
|
const { chainId, blockNumber, subscriptionEventData, strategiesSubsData, } = parseData;
|
|
473
499
|
const { subStruct, proxy, subId, subHash, } = subscriptionEventData;
|
|
474
500
|
const { isEnabled } = strategiesSubsData;
|
|
475
501
|
const id = subStruct.strategyOrBundleId;
|
|
476
502
|
const strategyOrBundleInfo = (subStruct.isBundle
|
|
477
|
-
? BUNDLES_INFO[chainId][id]
|
|
478
|
-
: STRATEGIES_INFO[chainId][id]);
|
|
503
|
+
? constants_1.BUNDLES_INFO[chainId][id]
|
|
504
|
+
: constants_1.STRATEGIES_INFO[chainId][id]);
|
|
479
505
|
if (!strategyOrBundleInfo)
|
|
480
506
|
return null;
|
|
481
507
|
const position = {
|
|
@@ -501,3 +527,4 @@ export function parseStrategiesAutomatedPosition(parseData) {
|
|
|
501
527
|
};
|
|
502
528
|
return getParsingMethod(position.protocol.id, position.strategy)(position, parseData, chainId);
|
|
503
529
|
}
|
|
530
|
+
exports.parseStrategiesAutomatedPosition = parseStrategiesAutomatedPosition;
|