@defisaver/automation-sdk 3.3.16 → 3.3.17-liq-prot-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.
- package/cjs/constants/index.js +190 -0
- package/cjs/index.d.ts +2 -2
- package/cjs/index.js +5 -2
- package/cjs/services/strategiesService.js +169 -12
- package/cjs/services/strategySubService.d.ts +22 -17
- package/cjs/services/strategySubService.js +115 -38
- package/cjs/services/strategySubService.test.js +111 -41
- package/cjs/services/subDataService.d.ts +70 -20
- package/cjs/services/subDataService.js +23 -79
- package/cjs/services/subDataService.test.js +17 -202
- package/cjs/types/enums.d.ts +48 -6
- package/cjs/types/enums.js +42 -0
- package/esm/constants/index.js +190 -0
- package/esm/index.d.ts +2 -2
- package/esm/index.js +5 -2
- package/esm/services/strategiesService.js +169 -12
- package/esm/services/strategySubService.d.ts +22 -17
- package/esm/services/strategySubService.js +113 -37
- package/esm/services/strategySubService.test.js +112 -39
- package/esm/services/subDataService.d.ts +70 -20
- package/esm/services/subDataService.js +21 -77
- package/esm/services/subDataService.test.js +18 -200
- package/esm/types/enums.d.ts +48 -6
- package/esm/types/enums.js +42 -0
- package/package.json +1 -1
- package/src/constants/index.ts +192 -1
- package/src/index.ts +22 -6
- package/src/services/strategiesService.ts +234 -12
- package/src/services/strategySubService.test.ts +147 -47
- package/src/services/strategySubService.ts +246 -47
- package/src/services/subDataService.test.ts +18 -214
- package/src/services/subDataService.ts +42 -106
- package/src/services/utils.test.ts +1 -1
- package/src/services/utils.ts +3 -1
- package/src/types/enums.ts +42 -2
|
@@ -106,7 +106,7 @@ function parseMakerLeverageManagement(position: Position.Automated, parseData: P
|
|
|
106
106
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
107
107
|
|
|
108
108
|
const triggerData = triggerService.makerRatioTrigger.decode(subStruct.triggerData);
|
|
109
|
-
const subData = subDataService.
|
|
109
|
+
const subData = subDataService.legacyMakerLeverageManagementSubData.decode(subStruct.subData);
|
|
110
110
|
|
|
111
111
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
112
112
|
_position.strategyData.decoded.subData = subData;
|
|
@@ -140,6 +140,33 @@ function parseMakerLeverageManagement(position: Position.Automated, parseData: P
|
|
|
140
140
|
return _position;
|
|
141
141
|
}
|
|
142
142
|
|
|
143
|
+
function parseMakerLiquidationProtection(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
144
|
+
const _position = cloneDeep(position);
|
|
145
|
+
|
|
146
|
+
const { subStruct, subId } = parseData.subscriptionEventData;
|
|
147
|
+
const { isEnabled } = parseData.strategiesSubsData;
|
|
148
|
+
|
|
149
|
+
const triggerData = triggerService.makerRatioTrigger.decode(subStruct.triggerData);
|
|
150
|
+
const subData = subDataService.makerLiquidationProtectionSubData.decode(subStruct.subData);
|
|
151
|
+
|
|
152
|
+
_position.strategyData.decoded.triggerData = triggerData;
|
|
153
|
+
_position.strategyData.decoded.subData = subData;
|
|
154
|
+
|
|
155
|
+
_position.positionId = getPositionId(_position.chainId, _position.protocol.id, subData.vaultId);
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
_position.specific = {
|
|
159
|
+
triggerRepayRatio: triggerData.ratio,
|
|
160
|
+
targetRepayRatio: subData.targetRatio,
|
|
161
|
+
repayEnabled: isEnabled,
|
|
162
|
+
subId1: Number(subId),
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
_position.strategy.strategyId = Strategies.IdOverrides.LiquidationProtection;
|
|
166
|
+
|
|
167
|
+
return _position;
|
|
168
|
+
}
|
|
169
|
+
|
|
143
170
|
function parseLiquityCloseOnPrice(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
144
171
|
const _position = cloneDeep(position);
|
|
145
172
|
|
|
@@ -196,7 +223,7 @@ function parseAaveV2LeverageManagement(position: Position.Automated, parseData:
|
|
|
196
223
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
197
224
|
|
|
198
225
|
const triggerData = triggerService.aaveV2RatioTrigger.decode(subStruct.triggerData);
|
|
199
|
-
const subData = subDataService.
|
|
226
|
+
const subData = subDataService.legacyAaveV2LeverageManagementSubData.decode(subStruct.subData);
|
|
200
227
|
|
|
201
228
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
202
229
|
_position.strategyData.decoded.subData = subData;
|
|
@@ -240,9 +267,9 @@ function parseAaveV3LeverageManagement(position: Position.Automated, parseData:
|
|
|
240
267
|
const isEOA = _position.strategy.strategyId.includes('eoa');
|
|
241
268
|
let subData;
|
|
242
269
|
if (isEOA) {
|
|
243
|
-
subData = subDataService.aaveV3LeverageManagementSubDataWithoutSubProxy.decode(subStruct.subData);
|
|
244
|
-
} else {
|
|
245
270
|
subData = subDataService.aaveV3LeverageManagementSubData.decode(subStruct.subData);
|
|
271
|
+
} else {
|
|
272
|
+
subData = subDataService.legacyAaveV3LeverageManagementSubData.decode(subStruct.subData);
|
|
246
273
|
}
|
|
247
274
|
|
|
248
275
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
@@ -280,6 +307,35 @@ function parseAaveV3LeverageManagement(position: Position.Automated, parseData:
|
|
|
280
307
|
return _position;
|
|
281
308
|
}
|
|
282
309
|
|
|
310
|
+
function parseAaveV3LiquidationProtection(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
311
|
+
const _position = cloneDeep(position);
|
|
312
|
+
|
|
313
|
+
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
314
|
+
const { isEnabled } = parseData.strategiesSubsData;
|
|
315
|
+
|
|
316
|
+
const triggerData = triggerService.aaveV3RatioTrigger.decode(subStruct.triggerData);
|
|
317
|
+
|
|
318
|
+
const subData = subDataService.aaveV3LiquidationProtectionSubData.decode(subStruct.subData);
|
|
319
|
+
|
|
320
|
+
_position.strategyData.decoded.triggerData = triggerData;
|
|
321
|
+
_position.strategyData.decoded.subData = subData;
|
|
322
|
+
|
|
323
|
+
_position.positionId = getPositionId(_position.chainId, _position.protocol.id, _position.owner, triggerData.market);
|
|
324
|
+
|
|
325
|
+
_position.specific = {
|
|
326
|
+
triggerRepayRatio: triggerData.ratio,
|
|
327
|
+
targetRepayRatio: subData.targetRatio,
|
|
328
|
+
repayEnabled: isEnabled,
|
|
329
|
+
subId1: Number(subId),
|
|
330
|
+
subHashRepay: subHash,
|
|
331
|
+
};
|
|
332
|
+
|
|
333
|
+
const isEOA = _position.strategy.strategyId.includes('eoa');
|
|
334
|
+
_position.strategy.strategyId = isEOA ? Strategies.IdOverrides.EoaLiquidationProtection : Strategies.IdOverrides.LiquidationProtection;
|
|
335
|
+
|
|
336
|
+
return _position;
|
|
337
|
+
}
|
|
338
|
+
|
|
283
339
|
function parseAaveV3LeverageManagementOnPrice(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
284
340
|
const _position = cloneDeep(position);
|
|
285
341
|
const { subStruct } = parseData.subscriptionEventData;
|
|
@@ -437,6 +493,31 @@ function parseAaveV4LeverageManagement(position: Position.Automated, parseData:
|
|
|
437
493
|
return _position;
|
|
438
494
|
}
|
|
439
495
|
|
|
496
|
+
function parseAaveV4LiquidationProtection(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
497
|
+
const _position = cloneDeep(position);
|
|
498
|
+
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
499
|
+
const { isEnabled } = parseData.strategiesSubsData;
|
|
500
|
+
const triggerData = triggerService.aaveV4RatioTrigger.decode(subStruct.triggerData);
|
|
501
|
+
const subData = subDataService.aaveV4LiquidationProtectionSubData.decode(subStruct.subData);
|
|
502
|
+
const isEOA = _position.strategy.strategyId.includes('eoa');
|
|
503
|
+
|
|
504
|
+
_position.strategyData.decoded.triggerData = triggerData;
|
|
505
|
+
_position.strategyData.decoded.subData = subData;
|
|
506
|
+
_position.positionId = getPositionId(_position.chainId, _position.protocol.id, _position.owner, triggerData.spoke);
|
|
507
|
+
_position.strategy.strategyId = isEOA ? Strategies.IdOverrides.EoaLiquidationProtection : Strategies.IdOverrides.LiquidationProtection;
|
|
508
|
+
|
|
509
|
+
_position.specific = {
|
|
510
|
+
triggerRepayRatio: triggerData.ratio,
|
|
511
|
+
targetRepayRatio: subData.targetRatio,
|
|
512
|
+
repayEnabled: isEnabled,
|
|
513
|
+
subId1: Number(subId),
|
|
514
|
+
subHashRepay: subHash,
|
|
515
|
+
};
|
|
516
|
+
|
|
517
|
+
return _position;
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
|
|
440
521
|
function parseAaveV4LeverageManagementOnPrice(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
441
522
|
const _position = cloneDeep(position);
|
|
442
523
|
const { subStruct } = parseData.subscriptionEventData;
|
|
@@ -589,7 +670,7 @@ function parseCompoundV2LeverageManagement(position: Position.Automated, parseDa
|
|
|
589
670
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
590
671
|
|
|
591
672
|
const triggerData = triggerService.compoundV2RatioTrigger.decode(subStruct.triggerData);
|
|
592
|
-
const subData = subDataService.
|
|
673
|
+
const subData = subDataService.legacyCompoundV2LeverageManagementSubData.decode(subStruct.subData);
|
|
593
674
|
|
|
594
675
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
595
676
|
_position.strategyData.decoded.subData = subData;
|
|
@@ -631,7 +712,7 @@ function parseCompoundV3LeverageManagement(position: Position.Automated, parseDa
|
|
|
631
712
|
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
632
713
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
633
714
|
|
|
634
|
-
const subDataDecoder = subDataService.
|
|
715
|
+
const subDataDecoder = subDataService.compoundV3LeverageManagementSubData;
|
|
635
716
|
|
|
636
717
|
const triggerData = triggerService.compoundV3RatioTrigger.decode(subStruct.triggerData);
|
|
637
718
|
const subData = subDataDecoder.decode(subStruct.subData);
|
|
@@ -670,6 +751,39 @@ function parseCompoundV3LeverageManagement(position: Position.Automated, parseDa
|
|
|
670
751
|
return _position;
|
|
671
752
|
}
|
|
672
753
|
|
|
754
|
+
|
|
755
|
+
function parseCompoundV3LiquidationProtection(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
756
|
+
const _position = cloneDeep(position);
|
|
757
|
+
|
|
758
|
+
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
759
|
+
const { isEnabled } = parseData.strategiesSubsData;
|
|
760
|
+
|
|
761
|
+
const subDataDecoder = subDataService.compoundV3LiquidationProtectionSubData;
|
|
762
|
+
|
|
763
|
+
const triggerData = triggerService.compoundV3RatioTrigger.decode(subStruct.triggerData);
|
|
764
|
+
const subData = subDataDecoder.decode(subStruct.subData);
|
|
765
|
+
|
|
766
|
+
_position.strategyData.decoded.triggerData = triggerData;
|
|
767
|
+
_position.strategyData.decoded.subData = subData;
|
|
768
|
+
|
|
769
|
+
_position.positionId = getPositionId(_position.chainId, _position.protocol.id, triggerData.owner.toLowerCase(), triggerData.market);
|
|
770
|
+
|
|
771
|
+
const isEOA = _position.strategy.strategyId.includes('eoa');
|
|
772
|
+
|
|
773
|
+
_position.specific = {
|
|
774
|
+
triggerRepayRatio: triggerData.ratio,
|
|
775
|
+
targetRepayRatio: subData.targetRatio,
|
|
776
|
+
repayEnabled: isEnabled,
|
|
777
|
+
subId1: Number(subId),
|
|
778
|
+
subHashRepay: subHash,
|
|
779
|
+
};
|
|
780
|
+
|
|
781
|
+
_position.strategy.strategyId = isEOA ? Strategies.IdOverrides.EoaLiquidationProtection : Strategies.IdOverrides.LiquidationProtection;
|
|
782
|
+
|
|
783
|
+
return _position;
|
|
784
|
+
}
|
|
785
|
+
|
|
786
|
+
|
|
673
787
|
function parseCompoundV3LeverageManagementOnPrice(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
674
788
|
const _position = cloneDeep(position);
|
|
675
789
|
|
|
@@ -774,7 +888,7 @@ function parseExchangeLimitOrder(position: Position.Automated, parseData: ParseD
|
|
|
774
888
|
|
|
775
889
|
const { subStruct } = parseData.subscriptionEventData;
|
|
776
890
|
|
|
777
|
-
_position.strategyData.decoded.subData = subDataService.
|
|
891
|
+
_position.strategyData.decoded.subData = subDataService.legacyExchangeLimitOrderSubData.decode(subStruct.subData, chainId);
|
|
778
892
|
const fromTokenDecimals = getAssetInfoByAddress(_position.strategyData.decoded.subData.fromToken, chainId).decimals;
|
|
779
893
|
const toTokenDecimals = getAssetInfoByAddress(_position.strategyData.decoded.subData.toToken, chainId).decimals;
|
|
780
894
|
_position.strategyData.decoded.triggerData = triggerService.exchangeOffchainPriceTrigger.decode(subStruct.triggerData, fromTokenDecimals, toTokenDecimals);
|
|
@@ -791,7 +905,7 @@ function parseLiquityLeverageManagement(position: Position.Automated, parseData:
|
|
|
791
905
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
792
906
|
|
|
793
907
|
const triggerData = triggerService.liquityRatioTrigger.decode(subStruct.triggerData);
|
|
794
|
-
const subData = subDataService.
|
|
908
|
+
const subData = subDataService.legacyLiquityLeverageManagementSubData.decode(subStruct.subData);
|
|
795
909
|
|
|
796
910
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
797
911
|
_position.strategyData.decoded.subData = subData;
|
|
@@ -875,7 +989,7 @@ function parseSparkLeverageManagement(position: Position.Automated, parseData: P
|
|
|
875
989
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
876
990
|
|
|
877
991
|
const triggerData = triggerService.sparkRatioTrigger.decode(subStruct.triggerData);
|
|
878
|
-
const subData = subDataService.
|
|
992
|
+
const subData = subDataService.legacySparkLeverageManagementSubData.decode(subStruct.subData);
|
|
879
993
|
|
|
880
994
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
881
995
|
_position.strategyData.decoded.subData = subData;
|
|
@@ -909,6 +1023,34 @@ function parseSparkLeverageManagement(position: Position.Automated, parseData: P
|
|
|
909
1023
|
return _position;
|
|
910
1024
|
}
|
|
911
1025
|
|
|
1026
|
+
function parseSparkLiquidationProtection(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
1027
|
+
const _position = cloneDeep(position);
|
|
1028
|
+
|
|
1029
|
+
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
1030
|
+
const { isEnabled } = parseData.strategiesSubsData;
|
|
1031
|
+
|
|
1032
|
+
const triggerData = triggerService.sparkRatioTrigger.decode(subStruct.triggerData);
|
|
1033
|
+
const subData = subDataService.sparkLiquidationProtectionSubData.decode(subStruct.subData);
|
|
1034
|
+
|
|
1035
|
+
_position.strategyData.decoded.triggerData = triggerData;
|
|
1036
|
+
_position.strategyData.decoded.subData = subData;
|
|
1037
|
+
|
|
1038
|
+
_position.positionId = getPositionId(_position.chainId, _position.protocol.id, _position.owner, triggerData.market);
|
|
1039
|
+
|
|
1040
|
+
_position.specific = {
|
|
1041
|
+
triggerRepayRatio: triggerData.ratio,
|
|
1042
|
+
targetRepayRatio: subData.targetRatio,
|
|
1043
|
+
repayEnabled: isEnabled,
|
|
1044
|
+
subId1: Number(subId),
|
|
1045
|
+
subHashRepay: subHash,
|
|
1046
|
+
};
|
|
1047
|
+
|
|
1048
|
+
_position.strategy.strategyId = Strategies.IdOverrides.LiquidationProtection;
|
|
1049
|
+
|
|
1050
|
+
return _position;
|
|
1051
|
+
}
|
|
1052
|
+
|
|
1053
|
+
|
|
912
1054
|
function parseSparkLeverageManagementOnPrice(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
913
1055
|
const _position = cloneDeep(position);
|
|
914
1056
|
const { subStruct } = parseData.subscriptionEventData;
|
|
@@ -1072,6 +1214,7 @@ function parseMorphoBlueLeverageManagement(position: Position.Automated, parseDa
|
|
|
1072
1214
|
|
|
1073
1215
|
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
1074
1216
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
1217
|
+
const isEOA = _position.strategy.strategyId.includes('eoa');
|
|
1075
1218
|
const triggerData = triggerService.morphoBlueRatioTrigger.decode(subStruct.triggerData);
|
|
1076
1219
|
const subData = subDataService.morphoBlueLeverageManagementSubData.decode(subStruct.subData);
|
|
1077
1220
|
|
|
@@ -1089,7 +1232,7 @@ function parseMorphoBlueLeverageManagement(position: Position.Automated, parseDa
|
|
|
1089
1232
|
repayEnabled: isEnabled,
|
|
1090
1233
|
subId1: Number(subId),
|
|
1091
1234
|
subHashRepay: subHash,
|
|
1092
|
-
mergeWithId: Strategies.Identifiers.Boost,
|
|
1235
|
+
mergeWithId: isEOA ? Strategies.Identifiers.EoaBoost : Strategies.Identifiers.Boost,
|
|
1093
1236
|
};
|
|
1094
1237
|
} else {
|
|
1095
1238
|
_position.specific = {
|
|
@@ -1098,13 +1241,39 @@ function parseMorphoBlueLeverageManagement(position: Position.Automated, parseDa
|
|
|
1098
1241
|
boostEnabled: isEnabled,
|
|
1099
1242
|
subId2: Number(subId),
|
|
1100
1243
|
subHashBoost: subHash,
|
|
1101
|
-
mergeId: Strategies.Identifiers.Boost,
|
|
1244
|
+
mergeId: isEOA ? Strategies.Identifiers.EoaBoost : Strategies.Identifiers.Boost,
|
|
1102
1245
|
};
|
|
1103
1246
|
}
|
|
1104
1247
|
|
|
1105
|
-
const isEOA = _position.strategy.strategyId.includes('eoa');
|
|
1106
1248
|
_position.strategy.strategyId = isEOA ? Strategies.IdOverrides.EoaLeverageManagement : Strategies.IdOverrides.LeverageManagement;
|
|
1107
1249
|
|
|
1250
|
+
return _position;
|
|
1251
|
+
}
|
|
1252
|
+
|
|
1253
|
+
|
|
1254
|
+
function parseMorphoBlueLiquidationProtection(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
1255
|
+
const _position = cloneDeep(position);
|
|
1256
|
+
|
|
1257
|
+
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
1258
|
+
const { isEnabled } = parseData.strategiesSubsData;
|
|
1259
|
+
const triggerData = triggerService.morphoBlueRatioTrigger.decode(subStruct.triggerData);
|
|
1260
|
+
const subData = subDataService.morphoBlueLiquidationProtectionSubData.decode(subStruct.subData);
|
|
1261
|
+
|
|
1262
|
+
_position.strategyData.decoded.triggerData = triggerData;
|
|
1263
|
+
_position.strategyData.decoded.subData = subData;
|
|
1264
|
+
|
|
1265
|
+
_position.positionId = getPositionId(_position.chainId, _position.protocol.id, triggerData.owner.toLowerCase(), triggerData.marketId);
|
|
1266
|
+
|
|
1267
|
+
_position.specific = {
|
|
1268
|
+
triggerRepayRatio: triggerData.ratio,
|
|
1269
|
+
targetRepayRatio: subData.targetRatio,
|
|
1270
|
+
repayEnabled: isEnabled,
|
|
1271
|
+
subId1: Number(subId),
|
|
1272
|
+
subHashRepay: subHash,
|
|
1273
|
+
};
|
|
1274
|
+
|
|
1275
|
+
const isEOA = _position.strategy.strategyId.includes('eoa');
|
|
1276
|
+
_position.strategy.strategyId = isEOA ? Strategies.IdOverrides.EoaLiquidationProtection : Strategies.IdOverrides.LiquidationProtection;
|
|
1108
1277
|
|
|
1109
1278
|
return _position;
|
|
1110
1279
|
}
|
|
@@ -1113,6 +1282,7 @@ function parseMorphoBlueLeverageManagementOnPrice(position: Position.Automated,
|
|
|
1113
1282
|
const _position = cloneDeep(position);
|
|
1114
1283
|
|
|
1115
1284
|
const { subStruct } = parseData.subscriptionEventData;
|
|
1285
|
+
const isEOA = _position.strategy.strategyId.includes('eoa');
|
|
1116
1286
|
const triggerData = triggerService.morphoBluePriceTrigger.decode(subStruct.triggerData);
|
|
1117
1287
|
const subData = subDataService.morphoBlueLeverageManagementOnPriceSubData.decode(subStruct.subData);
|
|
1118
1288
|
|
|
@@ -1143,6 +1313,10 @@ function parseMorphoBlueLeverageManagementOnPrice(position: Position.Automated,
|
|
|
1143
1313
|
ratioState: triggerData.priceState,
|
|
1144
1314
|
};
|
|
1145
1315
|
|
|
1316
|
+
_position.strategy.strategyId = isEOA
|
|
1317
|
+
? Strategies.IdOverrides.EoaLeverageManagementOnPrice
|
|
1318
|
+
: Strategies.IdOverrides.LeverageManagementOnPrice;
|
|
1319
|
+
|
|
1146
1320
|
return _position;
|
|
1147
1321
|
}
|
|
1148
1322
|
|
|
@@ -1150,6 +1324,7 @@ function parseMorphoBlueCloseOnPrice(position: Position.Automated, parseData: Pa
|
|
|
1150
1324
|
const _position = cloneDeep(position);
|
|
1151
1325
|
|
|
1152
1326
|
const { subStruct } = parseData.subscriptionEventData;
|
|
1327
|
+
const isEOA = _position.strategy.strategyId.includes('eoa');
|
|
1153
1328
|
|
|
1154
1329
|
const triggerData = triggerService.morphoBluePriceRangeTrigger.decode(subStruct.triggerData);
|
|
1155
1330
|
const subData = subDataService.morphoBlueCloseOnPriceSubData.decode(subStruct.subData);
|
|
@@ -1174,6 +1349,8 @@ function parseMorphoBlueCloseOnPrice(position: Position.Automated, parseData: Pa
|
|
|
1174
1349
|
|
|
1175
1350
|
const { takeProfitType, stopLossType } = getStopLossAndTakeProfitTypeByCloseStrategyType(+subData.closeType);
|
|
1176
1351
|
|
|
1352
|
+
_position.strategy.strategyId = isEOA ? Strategies.Identifiers.EoaCloseOnPrice : Strategies.Identifiers.CloseOnPrice;
|
|
1353
|
+
|
|
1177
1354
|
_position.specific = {
|
|
1178
1355
|
subHash: _position.subHash,
|
|
1179
1356
|
marketId,
|
|
@@ -1315,6 +1492,37 @@ function parseFluidT1LeverageManagement(position: Position.Automated, parseData:
|
|
|
1315
1492
|
return _position;
|
|
1316
1493
|
}
|
|
1317
1494
|
|
|
1495
|
+
|
|
1496
|
+
function parseFluidT1LiquidationProtection(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
1497
|
+
const _position = cloneDeep(position);
|
|
1498
|
+
|
|
1499
|
+
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
1500
|
+
const { isEnabled } = parseData.strategiesSubsData;
|
|
1501
|
+
|
|
1502
|
+
const triggerData = triggerService.fluidRatioTrigger.decode(subStruct.triggerData);
|
|
1503
|
+
const subData = subDataService.fluidLiquidationProtectionSubData.decode(subStruct.subData);
|
|
1504
|
+
|
|
1505
|
+
_position.strategyData.decoded.triggerData = triggerData;
|
|
1506
|
+
_position.strategyData.decoded.subData = subData;
|
|
1507
|
+
|
|
1508
|
+
_position.positionId = getPositionId(
|
|
1509
|
+
_position.chainId, _position.protocol.id, _position.owner, triggerData.nftId, subData.vault,
|
|
1510
|
+
);
|
|
1511
|
+
|
|
1512
|
+
_position.specific = {
|
|
1513
|
+
triggerRepayRatio: triggerData.ratio,
|
|
1514
|
+
targetRepayRatio: subData.targetRatio,
|
|
1515
|
+
repayEnabled: isEnabled,
|
|
1516
|
+
subId1: Number(subId),
|
|
1517
|
+
subHashRepay: subHash,
|
|
1518
|
+
};
|
|
1519
|
+
|
|
1520
|
+
_position.strategy.strategyId = Strategies.IdOverrides.LiquidationProtection;
|
|
1521
|
+
|
|
1522
|
+
return _position;
|
|
1523
|
+
}
|
|
1524
|
+
|
|
1525
|
+
|
|
1318
1526
|
const parsingMethodsMapping: StrategiesToProtocolVersionMapping = {
|
|
1319
1527
|
[ProtocolIdentifiers.StrategiesAutomation.MakerDAO]: {
|
|
1320
1528
|
[Strategies.Identifiers.SavingsLiqProtection]: parseMakerSavingsLiqProtection,
|
|
@@ -1324,6 +1532,7 @@ const parsingMethodsMapping: StrategiesToProtocolVersionMapping = {
|
|
|
1324
1532
|
[Strategies.Identifiers.TrailingStopToDebt]: parseMakerTrailingStop,
|
|
1325
1533
|
[Strategies.Identifiers.Repay]: parseMakerLeverageManagement,
|
|
1326
1534
|
[Strategies.Identifiers.Boost]: parseMakerLeverageManagement,
|
|
1535
|
+
[Strategies.Identifiers.LiquidationProtection]: parseMakerLiquidationProtection,
|
|
1327
1536
|
},
|
|
1328
1537
|
[ProtocolIdentifiers.StrategiesAutomation.Liquity]: {
|
|
1329
1538
|
[Strategies.Identifiers.CloseOnPriceToColl]: parseLiquityCloseOnPrice,
|
|
@@ -1362,6 +1571,8 @@ const parsingMethodsMapping: StrategiesToProtocolVersionMapping = {
|
|
|
1362
1571
|
[Strategies.Identifiers.EoaBoostOnPrice]: parseAaveV3LeverageManagementOnPrice,
|
|
1363
1572
|
[Strategies.Identifiers.EoaCloseOnPrice]: parseAaveV3CloseOnPrice,
|
|
1364
1573
|
[Strategies.Identifiers.CollateralSwitch]: parseAaveV3CollateralSwitch,
|
|
1574
|
+
[Strategies.Identifiers.LiquidationProtection]: parseAaveV3LiquidationProtection,
|
|
1575
|
+
[Strategies.Identifiers.EoaLiquidationProtection]: parseAaveV3LiquidationProtection,
|
|
1365
1576
|
},
|
|
1366
1577
|
[ProtocolIdentifiers.StrategiesAutomation.AaveV4]: {
|
|
1367
1578
|
[Strategies.Identifiers.Repay]: parseAaveV4LeverageManagement,
|
|
@@ -1376,6 +1587,8 @@ const parsingMethodsMapping: StrategiesToProtocolVersionMapping = {
|
|
|
1376
1587
|
[Strategies.Identifiers.EoaCloseOnPrice]: parseAaveV4CloseOnPrice,
|
|
1377
1588
|
[Strategies.Identifiers.CollateralSwitch]: parseAaveV4CollateralSwitch,
|
|
1378
1589
|
[Strategies.Identifiers.EoaCollateralSwitch]: parseAaveV4CollateralSwitch,
|
|
1590
|
+
[Strategies.Identifiers.LiquidationProtection]: parseAaveV4LiquidationProtection,
|
|
1591
|
+
[Strategies.Identifiers.EoaLiquidationProtection]: parseAaveV4LiquidationProtection,
|
|
1379
1592
|
},
|
|
1380
1593
|
[ProtocolIdentifiers.StrategiesAutomation.CompoundV2]: {
|
|
1381
1594
|
[Strategies.Identifiers.Repay]: parseCompoundV2LeverageManagement,
|
|
@@ -1392,6 +1605,8 @@ const parsingMethodsMapping: StrategiesToProtocolVersionMapping = {
|
|
|
1392
1605
|
[Strategies.Identifiers.EoaBoostOnPrice]: parseCompoundV3LeverageManagementOnPrice,
|
|
1393
1606
|
[Strategies.Identifiers.CloseOnPrice]: parseCompoundV3CloseOnPrice,
|
|
1394
1607
|
[Strategies.Identifiers.EoaCloseOnPrice]: parseCompoundV3CloseOnPrice,
|
|
1608
|
+
[Strategies.Identifiers.LiquidationProtection]: parseCompoundV3LiquidationProtection,
|
|
1609
|
+
[Strategies.Identifiers.EoaLiquidationProtection]: parseCompoundV3LiquidationProtection,
|
|
1395
1610
|
},
|
|
1396
1611
|
[ProtocolIdentifiers.StrategiesAutomation.ChickenBonds]: {
|
|
1397
1612
|
[Strategies.Identifiers.Rebond]: parseChickenBondsRebond,
|
|
@@ -1411,6 +1626,7 @@ const parsingMethodsMapping: StrategiesToProtocolVersionMapping = {
|
|
|
1411
1626
|
[Strategies.Identifiers.BoostOnPrice]: parseSparkLeverageManagementOnPrice,
|
|
1412
1627
|
[Strategies.Identifiers.CloseOnPrice]: parseSparkCloseOnPrice,
|
|
1413
1628
|
[Strategies.Identifiers.CollateralSwitch]: parseSparkCollateralSwitch,
|
|
1629
|
+
[Strategies.Identifiers.LiquidationProtection]: parseSparkLiquidationProtection,
|
|
1414
1630
|
},
|
|
1415
1631
|
[ProtocolIdentifiers.StrategiesAutomation.CrvUSD]: {
|
|
1416
1632
|
[Strategies.Identifiers.Repay]: parseCrvUSDLeverageManagement,
|
|
@@ -1424,11 +1640,17 @@ const parsingMethodsMapping: StrategiesToProtocolVersionMapping = {
|
|
|
1424
1640
|
[Strategies.Identifiers.EoaBoost]: parseMorphoBlueLeverageManagement,
|
|
1425
1641
|
[Strategies.Identifiers.BoostOnPrice]: parseMorphoBlueLeverageManagementOnPrice,
|
|
1426
1642
|
[Strategies.Identifiers.RepayOnPrice]: parseMorphoBlueLeverageManagementOnPrice,
|
|
1643
|
+
[Strategies.Identifiers.EoaBoostOnPrice]: parseMorphoBlueLeverageManagementOnPrice,
|
|
1644
|
+
[Strategies.Identifiers.EoaRepayOnPrice]: parseMorphoBlueLeverageManagementOnPrice,
|
|
1427
1645
|
[Strategies.Identifiers.CloseOnPrice]: parseMorphoBlueCloseOnPrice,
|
|
1646
|
+
[Strategies.Identifiers.LiquidationProtection]: parseMorphoBlueLiquidationProtection,
|
|
1647
|
+
[Strategies.Identifiers.EoaLiquidationProtection]: parseMorphoBlueLiquidationProtection,
|
|
1648
|
+
[Strategies.Identifiers.EoaCloseOnPrice]: parseMorphoBlueCloseOnPrice,
|
|
1428
1649
|
},
|
|
1429
1650
|
[ProtocolIdentifiers.StrategiesAutomation.FluidT1]: {
|
|
1430
1651
|
[Strategies.Identifiers.Repay]: parseFluidT1LeverageManagement,
|
|
1431
1652
|
[Strategies.Identifiers.Boost]: parseFluidT1LeverageManagement,
|
|
1653
|
+
[Strategies.Identifiers.LiquidationProtection]: parseFluidT1LiquidationProtection,
|
|
1432
1654
|
},
|
|
1433
1655
|
};
|
|
1434
1656
|
|