@defisaver/automation-sdk 3.3.14 → 3.3.15-liq-prot-1-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 +130 -0
- package/cjs/index.d.ts +4 -3
- package/cjs/index.js +6 -2
- package/cjs/services/strategiesService.js +178 -17
- package/cjs/services/strategySubService.d.ts +14 -13
- package/cjs/services/strategySubService.js +79 -63
- package/cjs/services/strategySubService.test.js +0 -234
- package/cjs/services/subDataService.d.ts +92 -4
- package/cjs/services/subDataService.js +245 -35
- package/cjs/services/subDataService.test.js +0 -110
- package/cjs/services/utils.d.ts +3 -1
- package/cjs/services/utils.js +34 -1
- package/cjs/services/utils.test.js +25 -0
- package/cjs/types/enums.d.ts +36 -6
- package/cjs/types/enums.js +30 -0
- package/esm/constants/index.js +130 -0
- package/esm/index.d.ts +4 -3
- package/esm/index.js +7 -3
- package/esm/services/strategiesService.js +178 -17
- package/esm/services/strategySubService.d.ts +14 -13
- package/esm/services/strategySubService.js +79 -60
- package/esm/services/strategySubService.test.js +2 -236
- package/esm/services/subDataService.d.ts +92 -4
- package/esm/services/subDataService.js +243 -34
- package/esm/services/subDataService.test.js +0 -110
- package/esm/services/utils.d.ts +3 -1
- package/esm/services/utils.js +32 -1
- package/esm/services/utils.test.js +27 -2
- package/esm/types/enums.d.ts +36 -6
- package/esm/types/enums.js +30 -0
- package/package.json +1 -1
- package/src/constants/index.ts +132 -1
- package/src/index.ts +24 -6
- package/src/services/strategiesService.ts +242 -17
- package/src/services/strategySubService.test.ts +0 -279
- package/src/services/strategySubService.ts +209 -116
- package/src/services/subDataService.test.ts +0 -120
- package/src/services/subDataService.ts +335 -49
- package/src/services/utils.test.ts +32 -1
- package/src/services/utils.ts +32 -1
- package/src/types/enums.ts +30 -2
|
@@ -102,7 +102,7 @@ function parseMakerTrailingStop(position: Position.Automated, parseData: ParseDa
|
|
|
102
102
|
function parseMakerLeverageManagement(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
103
103
|
const _position = cloneDeep(position);
|
|
104
104
|
|
|
105
|
-
const { subStruct, subId } = parseData.subscriptionEventData;
|
|
105
|
+
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
106
106
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
107
107
|
|
|
108
108
|
const triggerData = triggerService.makerRatioTrigger.decode(subStruct.triggerData);
|
|
@@ -119,9 +119,10 @@ function parseMakerLeverageManagement(position: Position.Automated, parseData: P
|
|
|
119
119
|
_position.specific = {
|
|
120
120
|
triggerRepayRatio: triggerData.ratio,
|
|
121
121
|
targetRepayRatio: subData.targetRatio,
|
|
122
|
-
repayEnabled:
|
|
122
|
+
repayEnabled: isEnabled,
|
|
123
123
|
subId1: Number(subId),
|
|
124
124
|
mergeWithId: Strategies.Identifiers.Boost,
|
|
125
|
+
subHashRepay: subHash,
|
|
125
126
|
};
|
|
126
127
|
} else {
|
|
127
128
|
_position.specific = {
|
|
@@ -130,6 +131,7 @@ function parseMakerLeverageManagement(position: Position.Automated, parseData: P
|
|
|
130
131
|
boostEnabled: isEnabled,
|
|
131
132
|
subId2: Number(subId),
|
|
132
133
|
mergeId: Strategies.Identifiers.Boost,
|
|
134
|
+
subHashBoost: subHash,
|
|
133
135
|
};
|
|
134
136
|
}
|
|
135
137
|
|
|
@@ -138,6 +140,33 @@ function parseMakerLeverageManagement(position: Position.Automated, parseData: P
|
|
|
138
140
|
return _position;
|
|
139
141
|
}
|
|
140
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
|
+
|
|
141
170
|
function parseLiquityCloseOnPrice(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
142
171
|
const _position = cloneDeep(position);
|
|
143
172
|
|
|
@@ -190,7 +219,7 @@ function parseLiquityTrailingStop(position: Position.Automated, parseData: Parse
|
|
|
190
219
|
function parseAaveV2LeverageManagement(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
191
220
|
const _position = cloneDeep(position);
|
|
192
221
|
|
|
193
|
-
const { subStruct, subId } = parseData.subscriptionEventData;
|
|
222
|
+
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
194
223
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
195
224
|
|
|
196
225
|
const triggerData = triggerService.aaveV2RatioTrigger.decode(subStruct.triggerData);
|
|
@@ -207,9 +236,10 @@ function parseAaveV2LeverageManagement(position: Position.Automated, parseData:
|
|
|
207
236
|
_position.specific = {
|
|
208
237
|
triggerRepayRatio: triggerData.ratio,
|
|
209
238
|
targetRepayRatio: subData.targetRatio,
|
|
210
|
-
repayEnabled:
|
|
239
|
+
repayEnabled: isEnabled,
|
|
211
240
|
subId1: Number(subId),
|
|
212
241
|
mergeWithId: Strategies.Identifiers.Boost,
|
|
242
|
+
subHashRepay: subHash,
|
|
213
243
|
};
|
|
214
244
|
} else {
|
|
215
245
|
_position.specific = {
|
|
@@ -218,6 +248,7 @@ function parseAaveV2LeverageManagement(position: Position.Automated, parseData:
|
|
|
218
248
|
boostEnabled: isEnabled,
|
|
219
249
|
subId2: Number(subId),
|
|
220
250
|
mergeId: Strategies.Identifiers.Boost,
|
|
251
|
+
subHashBoost: subHash,
|
|
221
252
|
};
|
|
222
253
|
}
|
|
223
254
|
|
|
@@ -276,6 +307,35 @@ function parseAaveV3LeverageManagement(position: Position.Automated, parseData:
|
|
|
276
307
|
return _position;
|
|
277
308
|
}
|
|
278
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
|
+
|
|
279
339
|
function parseAaveV3LeverageManagementOnPrice(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
280
340
|
const _position = cloneDeep(position);
|
|
281
341
|
const { subStruct } = parseData.subscriptionEventData;
|
|
@@ -433,6 +493,31 @@ function parseAaveV4LeverageManagement(position: Position.Automated, parseData:
|
|
|
433
493
|
return _position;
|
|
434
494
|
}
|
|
435
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
|
+
|
|
436
521
|
function parseAaveV4LeverageManagementOnPrice(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
437
522
|
const _position = cloneDeep(position);
|
|
438
523
|
const { subStruct } = parseData.subscriptionEventData;
|
|
@@ -501,7 +586,7 @@ function parseAaveV4CollateralSwitch(position: Position.Automated, parseData: Pa
|
|
|
501
586
|
function parseMorphoAaveV2LeverageManagement(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
502
587
|
const _position = cloneDeep(position);
|
|
503
588
|
|
|
504
|
-
const { subStruct, subId } = parseData.subscriptionEventData;
|
|
589
|
+
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
505
590
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
506
591
|
|
|
507
592
|
const triggerData = triggerService.morphoAaveV2RatioTrigger.decode(subStruct.triggerData);
|
|
@@ -518,9 +603,10 @@ function parseMorphoAaveV2LeverageManagement(position: Position.Automated, parse
|
|
|
518
603
|
_position.specific = {
|
|
519
604
|
triggerRepayRatio: triggerData.ratio,
|
|
520
605
|
targetRepayRatio: subData.targetRatio,
|
|
521
|
-
repayEnabled:
|
|
606
|
+
repayEnabled: isEnabled,
|
|
522
607
|
subId1: Number(subId),
|
|
523
608
|
mergeWithId: Strategies.Identifiers.Boost,
|
|
609
|
+
subHashRepay: subHash,
|
|
524
610
|
};
|
|
525
611
|
} else {
|
|
526
612
|
_position.specific = {
|
|
@@ -529,6 +615,7 @@ function parseMorphoAaveV2LeverageManagement(position: Position.Automated, parse
|
|
|
529
615
|
boostEnabled: isEnabled,
|
|
530
616
|
subId2: Number(subId),
|
|
531
617
|
mergeId: Strategies.Identifiers.Boost,
|
|
618
|
+
subHashBoost: subHash,
|
|
532
619
|
};
|
|
533
620
|
}
|
|
534
621
|
|
|
@@ -579,7 +666,7 @@ function parseAaveV3CloseOnPriceWithMaximumGasPrice(position: Position.Automated
|
|
|
579
666
|
function parseCompoundV2LeverageManagement(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
580
667
|
const _position = cloneDeep(position);
|
|
581
668
|
|
|
582
|
-
const { subStruct, subId } = parseData.subscriptionEventData;
|
|
669
|
+
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
583
670
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
584
671
|
|
|
585
672
|
const triggerData = triggerService.compoundV2RatioTrigger.decode(subStruct.triggerData);
|
|
@@ -597,9 +684,10 @@ function parseCompoundV2LeverageManagement(position: Position.Automated, parseDa
|
|
|
597
684
|
_position.specific = {
|
|
598
685
|
triggerRepayRatio: triggerData.ratio,
|
|
599
686
|
targetRepayRatio: subData.targetRatio,
|
|
600
|
-
repayEnabled:
|
|
687
|
+
repayEnabled: isEnabled,
|
|
601
688
|
subId1: Number(subId),
|
|
602
689
|
mergeWithId: Strategies.Identifiers.Boost,
|
|
690
|
+
subHashRepay: subHash,
|
|
603
691
|
};
|
|
604
692
|
} else {
|
|
605
693
|
_position.specific = {
|
|
@@ -608,6 +696,7 @@ function parseCompoundV2LeverageManagement(position: Position.Automated, parseDa
|
|
|
608
696
|
boostEnabled: isEnabled,
|
|
609
697
|
subId2: Number(subId),
|
|
610
698
|
mergeId: Strategies.Identifiers.Boost,
|
|
699
|
+
subHashBoost: subHash,
|
|
611
700
|
};
|
|
612
701
|
}
|
|
613
702
|
|
|
@@ -620,12 +709,10 @@ function parseCompoundV2LeverageManagement(position: Position.Automated, parseDa
|
|
|
620
709
|
function parseCompoundV3LeverageManagement(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
621
710
|
const _position = cloneDeep(position);
|
|
622
711
|
|
|
623
|
-
const { subStruct, subId } = parseData.subscriptionEventData;
|
|
712
|
+
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
624
713
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
625
714
|
|
|
626
|
-
const subDataDecoder =
|
|
627
|
-
? subDataService.compoundV3L2LeverageManagementSubData
|
|
628
|
-
: subDataService.compoundV3LeverageManagementSubData;
|
|
715
|
+
const subDataDecoder = subDataService.compoundV3LeverageManagementSubDataWithoutSubProxy;
|
|
629
716
|
|
|
630
717
|
const triggerData = triggerService.compoundV3RatioTrigger.decode(subStruct.triggerData);
|
|
631
718
|
const subData = subDataDecoder.decode(subStruct.subData);
|
|
@@ -643,9 +730,10 @@ function parseCompoundV3LeverageManagement(position: Position.Automated, parseDa
|
|
|
643
730
|
_position.specific = {
|
|
644
731
|
triggerRepayRatio: triggerData.ratio,
|
|
645
732
|
targetRepayRatio: subData.targetRatio,
|
|
646
|
-
repayEnabled:
|
|
733
|
+
repayEnabled: isEnabled,
|
|
647
734
|
subId1: Number(subId),
|
|
648
735
|
mergeWithId: isEOA ? Strategies.Identifiers.EoaBoost : Strategies.Identifiers.Boost,
|
|
736
|
+
subHashRepay: subHash,
|
|
649
737
|
};
|
|
650
738
|
} else {
|
|
651
739
|
_position.specific = {
|
|
@@ -654,6 +742,7 @@ function parseCompoundV3LeverageManagement(position: Position.Automated, parseDa
|
|
|
654
742
|
boostEnabled: isEnabled,
|
|
655
743
|
subId2: Number(subId),
|
|
656
744
|
mergeId: isEOA ? Strategies.Identifiers.EoaBoost : Strategies.Identifiers.Boost,
|
|
745
|
+
subHashBoost: subHash,
|
|
657
746
|
};
|
|
658
747
|
}
|
|
659
748
|
|
|
@@ -662,6 +751,39 @@ function parseCompoundV3LeverageManagement(position: Position.Automated, parseDa
|
|
|
662
751
|
return _position;
|
|
663
752
|
}
|
|
664
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.compoundV3LiquidationProtectionSubDataWithoutSubProxy;
|
|
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
|
+
|
|
665
787
|
function parseCompoundV3LeverageManagementOnPrice(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
666
788
|
const _position = cloneDeep(position);
|
|
667
789
|
|
|
@@ -779,7 +901,7 @@ function parseExchangeLimitOrder(position: Position.Automated, parseData: ParseD
|
|
|
779
901
|
function parseLiquityLeverageManagement(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
780
902
|
const _position = cloneDeep(position);
|
|
781
903
|
|
|
782
|
-
const { subStruct, subId } = parseData.subscriptionEventData;
|
|
904
|
+
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
783
905
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
784
906
|
|
|
785
907
|
const triggerData = triggerService.liquityRatioTrigger.decode(subStruct.triggerData);
|
|
@@ -796,9 +918,10 @@ function parseLiquityLeverageManagement(position: Position.Automated, parseData:
|
|
|
796
918
|
_position.specific = {
|
|
797
919
|
triggerRepayRatio: triggerData.ratio,
|
|
798
920
|
targetRepayRatio: subData.targetRatio,
|
|
799
|
-
repayEnabled:
|
|
921
|
+
repayEnabled: isEnabled,
|
|
800
922
|
subId1: Number(subId),
|
|
801
923
|
mergeWithId: Strategies.Identifiers.Boost,
|
|
924
|
+
subHashRepay: subHash,
|
|
802
925
|
};
|
|
803
926
|
} else {
|
|
804
927
|
_position.specific = {
|
|
@@ -807,6 +930,7 @@ function parseLiquityLeverageManagement(position: Position.Automated, parseData:
|
|
|
807
930
|
boostEnabled: isEnabled,
|
|
808
931
|
subId2: Number(subId),
|
|
809
932
|
mergeId: Strategies.Identifiers.Boost,
|
|
933
|
+
subHashBoost: subHash,
|
|
810
934
|
};
|
|
811
935
|
}
|
|
812
936
|
|
|
@@ -861,7 +985,7 @@ function parseLiquityV2LeverageManagement(position: Position.Automated, parseDat
|
|
|
861
985
|
function parseSparkLeverageManagement(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
862
986
|
const _position = cloneDeep(position);
|
|
863
987
|
|
|
864
|
-
const { subStruct, subId } = parseData.subscriptionEventData;
|
|
988
|
+
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
865
989
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
866
990
|
|
|
867
991
|
const triggerData = triggerService.sparkRatioTrigger.decode(subStruct.triggerData);
|
|
@@ -878,9 +1002,10 @@ function parseSparkLeverageManagement(position: Position.Automated, parseData: P
|
|
|
878
1002
|
_position.specific = {
|
|
879
1003
|
triggerRepayRatio: triggerData.ratio,
|
|
880
1004
|
targetRepayRatio: subData.targetRatio,
|
|
881
|
-
repayEnabled:
|
|
1005
|
+
repayEnabled: isEnabled,
|
|
882
1006
|
subId1: Number(subId),
|
|
883
1007
|
mergeWithId: Strategies.Identifiers.Boost,
|
|
1008
|
+
subHashRepay: subHash,
|
|
884
1009
|
};
|
|
885
1010
|
} else {
|
|
886
1011
|
_position.specific = {
|
|
@@ -889,6 +1014,7 @@ function parseSparkLeverageManagement(position: Position.Automated, parseData: P
|
|
|
889
1014
|
boostEnabled: isEnabled,
|
|
890
1015
|
subId2: Number(subId),
|
|
891
1016
|
mergeId: Strategies.Identifiers.Boost,
|
|
1017
|
+
subHashBoost: subHash,
|
|
892
1018
|
};
|
|
893
1019
|
}
|
|
894
1020
|
|
|
@@ -897,6 +1023,34 @@ function parseSparkLeverageManagement(position: Position.Automated, parseData: P
|
|
|
897
1023
|
return _position;
|
|
898
1024
|
}
|
|
899
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
|
+
|
|
900
1054
|
function parseSparkLeverageManagementOnPrice(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
901
1055
|
const _position = cloneDeep(position);
|
|
902
1056
|
const { subStruct } = parseData.subscriptionEventData;
|
|
@@ -1097,6 +1251,34 @@ function parseMorphoBlueLeverageManagement(position: Position.Automated, parseDa
|
|
|
1097
1251
|
return _position;
|
|
1098
1252
|
}
|
|
1099
1253
|
|
|
1254
|
+
|
|
1255
|
+
function parseMorphoBlueLiquidationProtection(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
1256
|
+
const _position = cloneDeep(position);
|
|
1257
|
+
|
|
1258
|
+
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
1259
|
+
const { isEnabled } = parseData.strategiesSubsData;
|
|
1260
|
+
const triggerData = triggerService.morphoBlueRatioTrigger.decode(subStruct.triggerData);
|
|
1261
|
+
const subData = subDataService.morphoBlueLiquidationProtectionSubData.decode(subStruct.subData);
|
|
1262
|
+
|
|
1263
|
+
_position.strategyData.decoded.triggerData = triggerData;
|
|
1264
|
+
_position.strategyData.decoded.subData = subData;
|
|
1265
|
+
|
|
1266
|
+
_position.positionId = getPositionId(_position.chainId, _position.protocol.id, triggerData.owner.toLowerCase(), triggerData.marketId);
|
|
1267
|
+
|
|
1268
|
+
_position.specific = {
|
|
1269
|
+
triggerRepayRatio: triggerData.ratio,
|
|
1270
|
+
targetRepayRatio: subData.targetRatio,
|
|
1271
|
+
repayEnabled: isEnabled,
|
|
1272
|
+
subId1: Number(subId),
|
|
1273
|
+
subHashRepay: subHash,
|
|
1274
|
+
};
|
|
1275
|
+
|
|
1276
|
+
const isEOA = _position.strategy.strategyId.includes('eoa');
|
|
1277
|
+
_position.strategy.strategyId = isEOA ? Strategies.IdOverrides.EoaLiquidationProtection : Strategies.IdOverrides.LiquidationProtection;
|
|
1278
|
+
|
|
1279
|
+
return _position;
|
|
1280
|
+
}
|
|
1281
|
+
|
|
1100
1282
|
function parseMorphoBlueLeverageManagementOnPrice(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
1101
1283
|
const _position = cloneDeep(position);
|
|
1102
1284
|
|
|
@@ -1128,6 +1310,7 @@ function parseMorphoBlueLeverageManagementOnPrice(position: Position.Automated,
|
|
|
1128
1310
|
debtAsset: subData.loanToken,
|
|
1129
1311
|
price: triggerData.price,
|
|
1130
1312
|
ratio: subData.targetRatio,
|
|
1313
|
+
ratioState: triggerData.priceState,
|
|
1131
1314
|
};
|
|
1132
1315
|
|
|
1133
1316
|
return _position;
|
|
@@ -1302,6 +1485,37 @@ function parseFluidT1LeverageManagement(position: Position.Automated, parseData:
|
|
|
1302
1485
|
return _position;
|
|
1303
1486
|
}
|
|
1304
1487
|
|
|
1488
|
+
|
|
1489
|
+
function parseFluidT1LiquidationProtection(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
1490
|
+
const _position = cloneDeep(position);
|
|
1491
|
+
|
|
1492
|
+
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
1493
|
+
const { isEnabled } = parseData.strategiesSubsData;
|
|
1494
|
+
|
|
1495
|
+
const triggerData = triggerService.fluidRatioTrigger.decode(subStruct.triggerData);
|
|
1496
|
+
const subData = subDataService.fluidLiquidationProtectionSubData.decode(subStruct.subData);
|
|
1497
|
+
|
|
1498
|
+
_position.strategyData.decoded.triggerData = triggerData;
|
|
1499
|
+
_position.strategyData.decoded.subData = subData;
|
|
1500
|
+
|
|
1501
|
+
_position.positionId = getPositionId(
|
|
1502
|
+
_position.chainId, _position.protocol.id, _position.owner, triggerData.nftId, subData.vault,
|
|
1503
|
+
);
|
|
1504
|
+
|
|
1505
|
+
_position.specific = {
|
|
1506
|
+
triggerRepayRatio: triggerData.ratio,
|
|
1507
|
+
targetRepayRatio: subData.targetRatio,
|
|
1508
|
+
repayEnabled: isEnabled,
|
|
1509
|
+
subId1: Number(subId),
|
|
1510
|
+
subHashRepay: subHash,
|
|
1511
|
+
};
|
|
1512
|
+
|
|
1513
|
+
_position.strategy.strategyId = Strategies.IdOverrides.LiquidationProtection;
|
|
1514
|
+
|
|
1515
|
+
return _position;
|
|
1516
|
+
}
|
|
1517
|
+
|
|
1518
|
+
|
|
1305
1519
|
const parsingMethodsMapping: StrategiesToProtocolVersionMapping = {
|
|
1306
1520
|
[ProtocolIdentifiers.StrategiesAutomation.MakerDAO]: {
|
|
1307
1521
|
[Strategies.Identifiers.SavingsLiqProtection]: parseMakerSavingsLiqProtection,
|
|
@@ -1311,6 +1525,7 @@ const parsingMethodsMapping: StrategiesToProtocolVersionMapping = {
|
|
|
1311
1525
|
[Strategies.Identifiers.TrailingStopToDebt]: parseMakerTrailingStop,
|
|
1312
1526
|
[Strategies.Identifiers.Repay]: parseMakerLeverageManagement,
|
|
1313
1527
|
[Strategies.Identifiers.Boost]: parseMakerLeverageManagement,
|
|
1528
|
+
[Strategies.Identifiers.LiquidationProtection]: parseMakerLiquidationProtection,
|
|
1314
1529
|
},
|
|
1315
1530
|
[ProtocolIdentifiers.StrategiesAutomation.Liquity]: {
|
|
1316
1531
|
[Strategies.Identifiers.CloseOnPriceToColl]: parseLiquityCloseOnPrice,
|
|
@@ -1349,6 +1564,8 @@ const parsingMethodsMapping: StrategiesToProtocolVersionMapping = {
|
|
|
1349
1564
|
[Strategies.Identifiers.EoaBoostOnPrice]: parseAaveV3LeverageManagementOnPrice,
|
|
1350
1565
|
[Strategies.Identifiers.EoaCloseOnPrice]: parseAaveV3CloseOnPrice,
|
|
1351
1566
|
[Strategies.Identifiers.CollateralSwitch]: parseAaveV3CollateralSwitch,
|
|
1567
|
+
[Strategies.Identifiers.LiquidationProtection]: parseAaveV3LiquidationProtection,
|
|
1568
|
+
[Strategies.Identifiers.EoaLiquidationProtection]: parseAaveV3LiquidationProtection,
|
|
1352
1569
|
},
|
|
1353
1570
|
[ProtocolIdentifiers.StrategiesAutomation.AaveV4]: {
|
|
1354
1571
|
[Strategies.Identifiers.Repay]: parseAaveV4LeverageManagement,
|
|
@@ -1363,6 +1580,8 @@ const parsingMethodsMapping: StrategiesToProtocolVersionMapping = {
|
|
|
1363
1580
|
[Strategies.Identifiers.EoaCloseOnPrice]: parseAaveV4CloseOnPrice,
|
|
1364
1581
|
[Strategies.Identifiers.CollateralSwitch]: parseAaveV4CollateralSwitch,
|
|
1365
1582
|
[Strategies.Identifiers.EoaCollateralSwitch]: parseAaveV4CollateralSwitch,
|
|
1583
|
+
[Strategies.Identifiers.LiquidationProtection]: parseAaveV4LiquidationProtection,
|
|
1584
|
+
[Strategies.Identifiers.EoaLiquidationProtection]: parseAaveV4LiquidationProtection,
|
|
1366
1585
|
},
|
|
1367
1586
|
[ProtocolIdentifiers.StrategiesAutomation.CompoundV2]: {
|
|
1368
1587
|
[Strategies.Identifiers.Repay]: parseCompoundV2LeverageManagement,
|
|
@@ -1379,6 +1598,8 @@ const parsingMethodsMapping: StrategiesToProtocolVersionMapping = {
|
|
|
1379
1598
|
[Strategies.Identifiers.EoaBoostOnPrice]: parseCompoundV3LeverageManagementOnPrice,
|
|
1380
1599
|
[Strategies.Identifiers.CloseOnPrice]: parseCompoundV3CloseOnPrice,
|
|
1381
1600
|
[Strategies.Identifiers.EoaCloseOnPrice]: parseCompoundV3CloseOnPrice,
|
|
1601
|
+
[Strategies.Identifiers.LiquidationProtection]: parseCompoundV3LiquidationProtection,
|
|
1602
|
+
[Strategies.Identifiers.EoaLiquidationProtection]: parseCompoundV3LiquidationProtection,
|
|
1382
1603
|
},
|
|
1383
1604
|
[ProtocolIdentifiers.StrategiesAutomation.ChickenBonds]: {
|
|
1384
1605
|
[Strategies.Identifiers.Rebond]: parseChickenBondsRebond,
|
|
@@ -1398,6 +1619,7 @@ const parsingMethodsMapping: StrategiesToProtocolVersionMapping = {
|
|
|
1398
1619
|
[Strategies.Identifiers.BoostOnPrice]: parseSparkLeverageManagementOnPrice,
|
|
1399
1620
|
[Strategies.Identifiers.CloseOnPrice]: parseSparkCloseOnPrice,
|
|
1400
1621
|
[Strategies.Identifiers.CollateralSwitch]: parseSparkCollateralSwitch,
|
|
1622
|
+
[Strategies.Identifiers.LiquidationProtection]: parseSparkLiquidationProtection,
|
|
1401
1623
|
},
|
|
1402
1624
|
[ProtocolIdentifiers.StrategiesAutomation.CrvUSD]: {
|
|
1403
1625
|
[Strategies.Identifiers.Repay]: parseCrvUSDLeverageManagement,
|
|
@@ -1411,10 +1633,13 @@ const parsingMethodsMapping: StrategiesToProtocolVersionMapping = {
|
|
|
1411
1633
|
[Strategies.Identifiers.EoaBoost]: parseMorphoBlueLeverageManagement,
|
|
1412
1634
|
[Strategies.Identifiers.BoostOnPrice]: parseMorphoBlueLeverageManagementOnPrice,
|
|
1413
1635
|
[Strategies.Identifiers.CloseOnPrice]: parseMorphoBlueCloseOnPrice,
|
|
1636
|
+
[Strategies.Identifiers.LiquidationProtection]: parseMorphoBlueLiquidationProtection,
|
|
1637
|
+
[Strategies.Identifiers.EoaLiquidationProtection]: parseMorphoBlueLiquidationProtection,
|
|
1414
1638
|
},
|
|
1415
1639
|
[ProtocolIdentifiers.StrategiesAutomation.FluidT1]: {
|
|
1416
1640
|
[Strategies.Identifiers.Repay]: parseFluidT1LeverageManagement,
|
|
1417
1641
|
[Strategies.Identifiers.Boost]: parseFluidT1LeverageManagement,
|
|
1642
|
+
[Strategies.Identifiers.LiquidationProtection]: parseFluidT1LiquidationProtection,
|
|
1418
1643
|
},
|
|
1419
1644
|
};
|
|
1420
1645
|
|