@defisaver/automation-sdk 3.3.17 → 3.3.18-spark-eoa-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 +170 -0
- package/cjs/index.d.ts +2 -2
- package/cjs/index.js +5 -2
- package/cjs/services/ethereumService.test.js +4 -7
- package/cjs/services/strategiesService.js +195 -15
- package/cjs/services/strategySubService.d.ts +22 -17
- package/cjs/services/strategySubService.js +92 -28
- package/cjs/services/strategySubService.test.js +297 -40
- package/cjs/services/subDataService.d.ts +108 -20
- package/cjs/services/subDataService.js +97 -79
- package/cjs/services/subDataService.test.js +479 -174
- package/cjs/types/enums.d.ts +44 -6
- package/cjs/types/enums.js +38 -0
- package/esm/constants/index.js +170 -0
- package/esm/index.d.ts +2 -2
- package/esm/index.js +5 -2
- package/esm/services/ethereumService.test.js +4 -7
- package/esm/services/strategiesService.js +195 -15
- package/esm/services/strategySubService.d.ts +22 -17
- package/esm/services/strategySubService.js +91 -27
- package/esm/services/strategySubService.test.js +298 -38
- package/esm/services/subDataService.d.ts +108 -20
- package/esm/services/subDataService.js +95 -77
- package/esm/services/subDataService.test.js +480 -172
- package/esm/types/enums.d.ts +44 -6
- package/esm/types/enums.js +38 -0
- package/package.json +1 -1
- package/src/constants/index.ts +172 -1
- package/src/index.ts +22 -6
- package/src/services/ethereumService.test.ts +5 -8
- package/src/services/strategiesService.ts +262 -16
- package/src/services/strategySubService.test.ts +384 -46
- package/src/services/strategySubService.ts +251 -40
- package/src/services/subDataService.test.ts +639 -231
- package/src/services/subDataService.ts +149 -106
- package/src/services/utils.test.ts +1 -1
- package/src/services/utils.ts +3 -1
- package/src/types/enums.ts +38 -2
|
@@ -66,7 +66,7 @@ function parseMakerLeverageManagement(position, parseData) {
|
|
|
66
66
|
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
67
67
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
68
68
|
const triggerData = triggerService.makerRatioTrigger.decode(subStruct.triggerData);
|
|
69
|
-
const subData = subDataService.
|
|
69
|
+
const subData = subDataService.legacyMakerLeverageManagementSubData.decode(subStruct.subData);
|
|
70
70
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
71
71
|
_position.strategyData.decoded.subData = subData;
|
|
72
72
|
_position.positionId = getPositionId(_position.chainId, _position.protocol.id, subData.vaultId);
|
|
@@ -94,6 +94,24 @@ function parseMakerLeverageManagement(position, parseData) {
|
|
|
94
94
|
_position.strategy.strategyId = Strategies.IdOverrides.LeverageManagement;
|
|
95
95
|
return _position;
|
|
96
96
|
}
|
|
97
|
+
function parseMakerLiquidationProtection(position, parseData) {
|
|
98
|
+
const _position = cloneDeep(position);
|
|
99
|
+
const { subStruct, subId } = parseData.subscriptionEventData;
|
|
100
|
+
const { isEnabled } = parseData.strategiesSubsData;
|
|
101
|
+
const triggerData = triggerService.makerRatioTrigger.decode(subStruct.triggerData);
|
|
102
|
+
const subData = subDataService.makerLiquidationProtectionSubData.decode(subStruct.subData);
|
|
103
|
+
_position.strategyData.decoded.triggerData = triggerData;
|
|
104
|
+
_position.strategyData.decoded.subData = subData;
|
|
105
|
+
_position.positionId = getPositionId(_position.chainId, _position.protocol.id, subData.vaultId);
|
|
106
|
+
_position.specific = {
|
|
107
|
+
triggerRepayRatio: triggerData.ratio,
|
|
108
|
+
targetRepayRatio: subData.targetRatio,
|
|
109
|
+
repayEnabled: isEnabled,
|
|
110
|
+
subId1: Number(subId),
|
|
111
|
+
};
|
|
112
|
+
_position.strategy.strategyId = Strategies.IdOverrides.LiquidationProtection;
|
|
113
|
+
return _position;
|
|
114
|
+
}
|
|
97
115
|
function parseLiquityCloseOnPrice(position, parseData) {
|
|
98
116
|
const _position = cloneDeep(position);
|
|
99
117
|
const { subStruct } = parseData.subscriptionEventData;
|
|
@@ -131,7 +149,7 @@ function parseAaveV2LeverageManagement(position, parseData) {
|
|
|
131
149
|
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
132
150
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
133
151
|
const triggerData = triggerService.aaveV2RatioTrigger.decode(subStruct.triggerData);
|
|
134
|
-
const subData = subDataService.
|
|
152
|
+
const subData = subDataService.legacyAaveV2LeverageManagementSubData.decode(subStruct.subData);
|
|
135
153
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
136
154
|
_position.strategyData.decoded.subData = subData;
|
|
137
155
|
_position.positionId = getPositionId(_position.chainId, _position.protocol.id, _position.owner, triggerData.market);
|
|
@@ -167,10 +185,10 @@ function parseAaveV3LeverageManagement(position, parseData) {
|
|
|
167
185
|
const isEOA = _position.strategy.strategyId.includes('eoa');
|
|
168
186
|
let subData;
|
|
169
187
|
if (isEOA) {
|
|
170
|
-
subData = subDataService.
|
|
188
|
+
subData = subDataService.aaveV3LeverageManagementSubData.decode(subStruct.subData);
|
|
171
189
|
}
|
|
172
190
|
else {
|
|
173
|
-
subData = subDataService.
|
|
191
|
+
subData = subDataService.legacyAaveV3LeverageManagementSubData.decode(subStruct.subData);
|
|
174
192
|
}
|
|
175
193
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
176
194
|
_position.strategyData.decoded.subData = subData;
|
|
@@ -204,6 +222,26 @@ function parseAaveV3LeverageManagement(position, parseData) {
|
|
|
204
222
|
}
|
|
205
223
|
return _position;
|
|
206
224
|
}
|
|
225
|
+
function parseAaveV3LiquidationProtection(position, parseData) {
|
|
226
|
+
const _position = cloneDeep(position);
|
|
227
|
+
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
228
|
+
const { isEnabled } = parseData.strategiesSubsData;
|
|
229
|
+
const triggerData = triggerService.aaveV3RatioTrigger.decode(subStruct.triggerData);
|
|
230
|
+
const subData = subDataService.aaveV3LiquidationProtectionSubData.decode(subStruct.subData);
|
|
231
|
+
_position.strategyData.decoded.triggerData = triggerData;
|
|
232
|
+
_position.strategyData.decoded.subData = subData;
|
|
233
|
+
_position.positionId = getPositionId(_position.chainId, _position.protocol.id, _position.owner, triggerData.market);
|
|
234
|
+
_position.specific = {
|
|
235
|
+
triggerRepayRatio: triggerData.ratio,
|
|
236
|
+
targetRepayRatio: subData.targetRatio,
|
|
237
|
+
repayEnabled: isEnabled,
|
|
238
|
+
subId1: Number(subId),
|
|
239
|
+
subHashRepay: subHash,
|
|
240
|
+
};
|
|
241
|
+
const isEOA = _position.strategy.strategyId.includes('eoa');
|
|
242
|
+
_position.strategy.strategyId = isEOA ? Strategies.IdOverrides.EoaLiquidationProtection : Strategies.IdOverrides.LiquidationProtection;
|
|
243
|
+
return _position;
|
|
244
|
+
}
|
|
207
245
|
function parseAaveV3LeverageManagementOnPrice(position, parseData) {
|
|
208
246
|
const _position = cloneDeep(position);
|
|
209
247
|
const { subStruct } = parseData.subscriptionEventData;
|
|
@@ -292,11 +330,17 @@ function parseAaveV3CollateralSwitch(position, parseData) {
|
|
|
292
330
|
function parseSparkCollateralSwitch(position, parseData) {
|
|
293
331
|
const _position = cloneDeep(position);
|
|
294
332
|
const { subStruct } = parseData.subscriptionEventData;
|
|
333
|
+
const isEOA = _position.strategy.strategyId.includes('eoa');
|
|
295
334
|
const triggerData = triggerService.sparkQuotePriceTrigger.decode(subStruct.triggerData);
|
|
296
|
-
const subData =
|
|
335
|
+
const subData = isEOA
|
|
336
|
+
? subDataService.sparkGenericFLCollateralSwitchSubData.decode(subStruct.subData)
|
|
337
|
+
: subDataService.sparkCollateralSwitchSubData.decode(subStruct.subData);
|
|
297
338
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
298
339
|
_position.strategyData.decoded.subData = subData;
|
|
299
340
|
_position.positionId = getPositionId(_position.chainId, _position.protocol.id, _position.owner, subData.marketAddr);
|
|
341
|
+
_position.strategy.strategyId = isEOA
|
|
342
|
+
? Strategies.Identifiers.EoaCollateralSwitch
|
|
343
|
+
: Strategies.Identifiers.CollateralSwitch;
|
|
300
344
|
return _position;
|
|
301
345
|
}
|
|
302
346
|
function parseAaveV4LeverageManagement(position, parseData) {
|
|
@@ -333,6 +377,26 @@ function parseAaveV4LeverageManagement(position, parseData) {
|
|
|
333
377
|
}
|
|
334
378
|
return _position;
|
|
335
379
|
}
|
|
380
|
+
function parseAaveV4LiquidationProtection(position, parseData) {
|
|
381
|
+
const _position = cloneDeep(position);
|
|
382
|
+
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
383
|
+
const { isEnabled } = parseData.strategiesSubsData;
|
|
384
|
+
const triggerData = triggerService.aaveV4RatioTrigger.decode(subStruct.triggerData);
|
|
385
|
+
const subData = subDataService.aaveV4LiquidationProtectionSubData.decode(subStruct.subData);
|
|
386
|
+
const isEOA = _position.strategy.strategyId.includes('eoa');
|
|
387
|
+
_position.strategyData.decoded.triggerData = triggerData;
|
|
388
|
+
_position.strategyData.decoded.subData = subData;
|
|
389
|
+
_position.positionId = getPositionId(_position.chainId, _position.protocol.id, _position.owner, triggerData.spoke);
|
|
390
|
+
_position.strategy.strategyId = isEOA ? Strategies.IdOverrides.EoaLiquidationProtection : Strategies.IdOverrides.LiquidationProtection;
|
|
391
|
+
_position.specific = {
|
|
392
|
+
triggerRepayRatio: triggerData.ratio,
|
|
393
|
+
targetRepayRatio: subData.targetRatio,
|
|
394
|
+
repayEnabled: isEnabled,
|
|
395
|
+
subId1: Number(subId),
|
|
396
|
+
subHashRepay: subHash,
|
|
397
|
+
};
|
|
398
|
+
return _position;
|
|
399
|
+
}
|
|
336
400
|
function parseAaveV4LeverageManagementOnPrice(position, parseData) {
|
|
337
401
|
const _position = cloneDeep(position);
|
|
338
402
|
const { subStruct } = parseData.subscriptionEventData;
|
|
@@ -452,7 +516,7 @@ function parseCompoundV2LeverageManagement(position, parseData) {
|
|
|
452
516
|
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
453
517
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
454
518
|
const triggerData = triggerService.compoundV2RatioTrigger.decode(subStruct.triggerData);
|
|
455
|
-
const subData = subDataService.
|
|
519
|
+
const subData = subDataService.legacyCompoundV2LeverageManagementSubData.decode(subStruct.subData);
|
|
456
520
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
457
521
|
_position.strategyData.decoded.subData = subData;
|
|
458
522
|
_position.owner = triggerData.owner.toLowerCase();
|
|
@@ -486,7 +550,7 @@ function parseCompoundV3LeverageManagement(position, parseData) {
|
|
|
486
550
|
const _position = cloneDeep(position);
|
|
487
551
|
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
488
552
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
489
|
-
const subDataDecoder = subDataService.
|
|
553
|
+
const subDataDecoder = subDataService.compoundV3LeverageManagementSubData;
|
|
490
554
|
const triggerData = triggerService.compoundV3RatioTrigger.decode(subStruct.triggerData);
|
|
491
555
|
const subData = subDataDecoder.decode(subStruct.subData);
|
|
492
556
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
@@ -517,6 +581,27 @@ function parseCompoundV3LeverageManagement(position, parseData) {
|
|
|
517
581
|
_position.strategy.strategyId = isEOA ? Strategies.IdOverrides.EoaLeverageManagement : Strategies.IdOverrides.LeverageManagement;
|
|
518
582
|
return _position;
|
|
519
583
|
}
|
|
584
|
+
function parseCompoundV3LiquidationProtection(position, parseData) {
|
|
585
|
+
const _position = cloneDeep(position);
|
|
586
|
+
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
587
|
+
const { isEnabled } = parseData.strategiesSubsData;
|
|
588
|
+
const subDataDecoder = subDataService.compoundV3LiquidationProtectionSubData;
|
|
589
|
+
const triggerData = triggerService.compoundV3RatioTrigger.decode(subStruct.triggerData);
|
|
590
|
+
const subData = subDataDecoder.decode(subStruct.subData);
|
|
591
|
+
_position.strategyData.decoded.triggerData = triggerData;
|
|
592
|
+
_position.strategyData.decoded.subData = subData;
|
|
593
|
+
_position.positionId = getPositionId(_position.chainId, _position.protocol.id, triggerData.owner.toLowerCase(), triggerData.market);
|
|
594
|
+
const isEOA = _position.strategy.strategyId.includes('eoa');
|
|
595
|
+
_position.specific = {
|
|
596
|
+
triggerRepayRatio: triggerData.ratio,
|
|
597
|
+
targetRepayRatio: subData.targetRatio,
|
|
598
|
+
repayEnabled: isEnabled,
|
|
599
|
+
subId1: Number(subId),
|
|
600
|
+
subHashRepay: subHash,
|
|
601
|
+
};
|
|
602
|
+
_position.strategy.strategyId = isEOA ? Strategies.IdOverrides.EoaLiquidationProtection : Strategies.IdOverrides.LiquidationProtection;
|
|
603
|
+
return _position;
|
|
604
|
+
}
|
|
520
605
|
function parseCompoundV3LeverageManagementOnPrice(position, parseData) {
|
|
521
606
|
const _position = cloneDeep(position);
|
|
522
607
|
const { subStruct } = parseData.subscriptionEventData;
|
|
@@ -590,7 +675,7 @@ function parseExchangeDca(position, parseData, chainId) {
|
|
|
590
675
|
function parseExchangeLimitOrder(position, parseData, chainId) {
|
|
591
676
|
const _position = cloneDeep(position);
|
|
592
677
|
const { subStruct } = parseData.subscriptionEventData;
|
|
593
|
-
_position.strategyData.decoded.subData = subDataService.
|
|
678
|
+
_position.strategyData.decoded.subData = subDataService.legacyExchangeLimitOrderSubData.decode(subStruct.subData, chainId);
|
|
594
679
|
const fromTokenDecimals = getAssetInfoByAddress(_position.strategyData.decoded.subData.fromToken, chainId).decimals;
|
|
595
680
|
const toTokenDecimals = getAssetInfoByAddress(_position.strategyData.decoded.subData.toToken, chainId).decimals;
|
|
596
681
|
_position.strategyData.decoded.triggerData = triggerService.exchangeOffchainPriceTrigger.decode(subStruct.triggerData, fromTokenDecimals, toTokenDecimals);
|
|
@@ -602,7 +687,7 @@ function parseLiquityLeverageManagement(position, parseData) {
|
|
|
602
687
|
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
603
688
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
604
689
|
const triggerData = triggerService.liquityRatioTrigger.decode(subStruct.triggerData);
|
|
605
|
-
const subData = subDataService.
|
|
690
|
+
const subData = subDataService.legacyLiquityLeverageManagementSubData.decode(subStruct.subData);
|
|
606
691
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
607
692
|
_position.strategyData.decoded.subData = subData;
|
|
608
693
|
_position.positionId = getPositionId(_position.chainId, _position.protocol.id, _position.owner);
|
|
@@ -667,19 +752,22 @@ function parseSparkLeverageManagement(position, parseData) {
|
|
|
667
752
|
const _position = cloneDeep(position);
|
|
668
753
|
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
669
754
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
755
|
+
const isEOA = _position.strategy.strategyId.includes('eoa');
|
|
670
756
|
const triggerData = triggerService.sparkRatioTrigger.decode(subStruct.triggerData);
|
|
671
|
-
const subData =
|
|
757
|
+
const subData = isEOA
|
|
758
|
+
? subDataService.sparkGenericLeverageManagementSubData.decode(subStruct.subData)
|
|
759
|
+
: subDataService.legacySparkLeverageManagementSubData.decode(subStruct.subData);
|
|
672
760
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
673
761
|
_position.strategyData.decoded.subData = subData;
|
|
674
762
|
_position.positionId = getPositionId(_position.chainId, _position.protocol.id, _position.owner, triggerData.market);
|
|
675
|
-
const isRepay =
|
|
763
|
+
const isRepay = [Strategies.Identifiers.Repay, Strategies.Identifiers.EoaRepay].includes(_position.strategy.strategyId);
|
|
676
764
|
if (isRepay) {
|
|
677
765
|
_position.specific = {
|
|
678
766
|
triggerRepayRatio: triggerData.ratio,
|
|
679
767
|
targetRepayRatio: subData.targetRatio,
|
|
680
768
|
repayEnabled: isEnabled,
|
|
681
769
|
subId1: Number(subId),
|
|
682
|
-
mergeWithId: Strategies.Identifiers.Boost,
|
|
770
|
+
mergeWithId: isEOA ? Strategies.Identifiers.EoaBoost : Strategies.Identifiers.Boost,
|
|
683
771
|
subHashRepay: subHash,
|
|
684
772
|
};
|
|
685
773
|
}
|
|
@@ -689,18 +777,48 @@ function parseSparkLeverageManagement(position, parseData) {
|
|
|
689
777
|
targetBoostRatio: subData.targetRatio,
|
|
690
778
|
boostEnabled: isEnabled,
|
|
691
779
|
subId2: Number(subId),
|
|
692
|
-
mergeId: Strategies.Identifiers.Boost,
|
|
780
|
+
mergeId: isEOA ? Strategies.Identifiers.EoaBoost : Strategies.Identifiers.Boost,
|
|
693
781
|
subHashBoost: subHash,
|
|
694
782
|
};
|
|
695
783
|
}
|
|
696
|
-
_position.strategy.strategyId =
|
|
784
|
+
_position.strategy.strategyId = isEOA
|
|
785
|
+
? Strategies.IdOverrides.EoaLeverageManagement
|
|
786
|
+
: Strategies.IdOverrides.LeverageManagement;
|
|
787
|
+
return _position;
|
|
788
|
+
}
|
|
789
|
+
function parseSparkLiquidationProtection(position, parseData) {
|
|
790
|
+
const _position = cloneDeep(position);
|
|
791
|
+
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
792
|
+
const { isEnabled } = parseData.strategiesSubsData;
|
|
793
|
+
const isEOA = _position.strategy.strategyId.includes('eoa');
|
|
794
|
+
const triggerData = triggerService.sparkRatioTrigger.decode(subStruct.triggerData);
|
|
795
|
+
const subData = isEOA
|
|
796
|
+
? subDataService.sparkGenericLiquidationProtectionSubData.decode(subStruct.subData)
|
|
797
|
+
: subDataService.sparkLiquidationProtectionSubData.decode(subStruct.subData);
|
|
798
|
+
_position.strategyData.decoded.triggerData = triggerData;
|
|
799
|
+
_position.strategyData.decoded.subData = subData;
|
|
800
|
+
_position.positionId = getPositionId(_position.chainId, _position.protocol.id, _position.owner, triggerData.market);
|
|
801
|
+
_position.specific = {
|
|
802
|
+
triggerRepayRatio: triggerData.ratio,
|
|
803
|
+
targetRepayRatio: subData.targetRatio,
|
|
804
|
+
repayEnabled: isEnabled,
|
|
805
|
+
subId1: Number(subId),
|
|
806
|
+
subHashRepay: subHash,
|
|
807
|
+
};
|
|
808
|
+
_position.strategy.strategyId = isEOA
|
|
809
|
+
? Strategies.IdOverrides.EoaLiquidationProtection
|
|
810
|
+
: Strategies.IdOverrides.LiquidationProtection;
|
|
811
|
+
_position.strategy.strategyId = Strategies.IdOverrides.LiquidationProtection;
|
|
697
812
|
return _position;
|
|
698
813
|
}
|
|
699
814
|
function parseSparkLeverageManagementOnPrice(position, parseData) {
|
|
700
815
|
const _position = cloneDeep(position);
|
|
701
816
|
const { subStruct } = parseData.subscriptionEventData;
|
|
817
|
+
const isEOA = _position.strategy.strategyId.includes('eoa');
|
|
702
818
|
const triggerData = triggerService.sparkQuotePriceTrigger.decode(subStruct.triggerData);
|
|
703
|
-
const subData =
|
|
819
|
+
const subData = isEOA
|
|
820
|
+
? subDataService.sparkLeverageManagementOnPriceGenericSubData.decode(subStruct.subData)
|
|
821
|
+
: subDataService.sparkLeverageManagementOnPriceSubData.decode(subStruct.subData);
|
|
704
822
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
705
823
|
_position.strategyData.decoded.subData = subData;
|
|
706
824
|
_position.positionId = getPositionId(_position.chainId, _position.protocol.id, _position.owner, subData.marketAddr);
|
|
@@ -717,6 +835,9 @@ function parseSparkLeverageManagementOnPrice(position, parseData) {
|
|
|
717
835
|
price: triggerData.price,
|
|
718
836
|
ratioState: triggerData.ratioState,
|
|
719
837
|
};
|
|
838
|
+
_position.strategy.strategyId = isEOA
|
|
839
|
+
? Strategies.IdOverrides.EoaLeverageManagementOnPrice
|
|
840
|
+
: Strategies.IdOverrides.LeverageManagementOnPrice;
|
|
720
841
|
return _position;
|
|
721
842
|
}
|
|
722
843
|
function parseSparkCloseOnPrice(position, parseData) {
|
|
@@ -724,9 +845,11 @@ function parseSparkCloseOnPrice(position, parseData) {
|
|
|
724
845
|
const { subStruct } = parseData.subscriptionEventData;
|
|
725
846
|
const triggerData = triggerService.sparkQuotePriceRangeTrigger.decode(subStruct.triggerData);
|
|
726
847
|
const subData = subDataService.sparkCloseGenericSubData.decode(subStruct.subData);
|
|
848
|
+
const isEOA = _position.strategy.strategyId.includes('eoa');
|
|
727
849
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
728
850
|
_position.strategyData.decoded.subData = subData;
|
|
729
851
|
_position.positionId = getPositionId(_position.chainId, _position.protocol.id, _position.owner, subData.marketAddr);
|
|
852
|
+
_position.strategy.strategyId = isEOA ? Strategies.Identifiers.EoaCloseOnPrice : Strategies.Identifiers.CloseOnPrice;
|
|
730
853
|
const { takeProfitType, stopLossType } = getStopLossAndTakeProfitTypeByCloseStrategyType(+subData.closeType);
|
|
731
854
|
_position.specific = {
|
|
732
855
|
collAsset: subData.collAsset,
|
|
@@ -850,6 +973,26 @@ function parseMorphoBlueLeverageManagement(position, parseData) {
|
|
|
850
973
|
_position.strategy.strategyId = isEOA ? Strategies.IdOverrides.EoaLeverageManagement : Strategies.IdOverrides.LeverageManagement;
|
|
851
974
|
return _position;
|
|
852
975
|
}
|
|
976
|
+
function parseMorphoBlueLiquidationProtection(position, parseData) {
|
|
977
|
+
const _position = cloneDeep(position);
|
|
978
|
+
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
979
|
+
const { isEnabled } = parseData.strategiesSubsData;
|
|
980
|
+
const triggerData = triggerService.morphoBlueRatioTrigger.decode(subStruct.triggerData);
|
|
981
|
+
const subData = subDataService.morphoBlueLiquidationProtectionSubData.decode(subStruct.subData);
|
|
982
|
+
_position.strategyData.decoded.triggerData = triggerData;
|
|
983
|
+
_position.strategyData.decoded.subData = subData;
|
|
984
|
+
_position.positionId = getPositionId(_position.chainId, _position.protocol.id, triggerData.owner.toLowerCase(), triggerData.marketId);
|
|
985
|
+
_position.specific = {
|
|
986
|
+
triggerRepayRatio: triggerData.ratio,
|
|
987
|
+
targetRepayRatio: subData.targetRatio,
|
|
988
|
+
repayEnabled: isEnabled,
|
|
989
|
+
subId1: Number(subId),
|
|
990
|
+
subHashRepay: subHash,
|
|
991
|
+
};
|
|
992
|
+
const isEOA = _position.strategy.strategyId.includes('eoa');
|
|
993
|
+
_position.strategy.strategyId = isEOA ? Strategies.IdOverrides.EoaLiquidationProtection : Strategies.IdOverrides.LiquidationProtection;
|
|
994
|
+
return _position;
|
|
995
|
+
}
|
|
853
996
|
function parseMorphoBlueLeverageManagementOnPrice(position, parseData) {
|
|
854
997
|
const _position = cloneDeep(position);
|
|
855
998
|
const { subStruct } = parseData.subscriptionEventData;
|
|
@@ -1008,6 +1151,25 @@ function parseFluidT1LeverageManagement(position, parseData) {
|
|
|
1008
1151
|
_position.strategy.strategyId = Strategies.IdOverrides.LeverageManagement;
|
|
1009
1152
|
return _position;
|
|
1010
1153
|
}
|
|
1154
|
+
function parseFluidT1LiquidationProtection(position, parseData) {
|
|
1155
|
+
const _position = cloneDeep(position);
|
|
1156
|
+
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
1157
|
+
const { isEnabled } = parseData.strategiesSubsData;
|
|
1158
|
+
const triggerData = triggerService.fluidRatioTrigger.decode(subStruct.triggerData);
|
|
1159
|
+
const subData = subDataService.fluidLiquidationProtectionSubData.decode(subStruct.subData);
|
|
1160
|
+
_position.strategyData.decoded.triggerData = triggerData;
|
|
1161
|
+
_position.strategyData.decoded.subData = subData;
|
|
1162
|
+
_position.positionId = getPositionId(_position.chainId, _position.protocol.id, _position.owner, triggerData.nftId, subData.vault);
|
|
1163
|
+
_position.specific = {
|
|
1164
|
+
triggerRepayRatio: triggerData.ratio,
|
|
1165
|
+
targetRepayRatio: subData.targetRatio,
|
|
1166
|
+
repayEnabled: isEnabled,
|
|
1167
|
+
subId1: Number(subId),
|
|
1168
|
+
subHashRepay: subHash,
|
|
1169
|
+
};
|
|
1170
|
+
_position.strategy.strategyId = Strategies.IdOverrides.LiquidationProtection;
|
|
1171
|
+
return _position;
|
|
1172
|
+
}
|
|
1011
1173
|
const parsingMethodsMapping = {
|
|
1012
1174
|
[ProtocolIdentifiers.StrategiesAutomation.MakerDAO]: {
|
|
1013
1175
|
[Strategies.Identifiers.SavingsLiqProtection]: parseMakerSavingsLiqProtection,
|
|
@@ -1017,6 +1179,7 @@ const parsingMethodsMapping = {
|
|
|
1017
1179
|
[Strategies.Identifiers.TrailingStopToDebt]: parseMakerTrailingStop,
|
|
1018
1180
|
[Strategies.Identifiers.Repay]: parseMakerLeverageManagement,
|
|
1019
1181
|
[Strategies.Identifiers.Boost]: parseMakerLeverageManagement,
|
|
1182
|
+
[Strategies.Identifiers.LiquidationProtection]: parseMakerLiquidationProtection,
|
|
1020
1183
|
},
|
|
1021
1184
|
[ProtocolIdentifiers.StrategiesAutomation.Liquity]: {
|
|
1022
1185
|
[Strategies.Identifiers.CloseOnPriceToColl]: parseLiquityCloseOnPrice,
|
|
@@ -1055,6 +1218,8 @@ const parsingMethodsMapping = {
|
|
|
1055
1218
|
[Strategies.Identifiers.EoaBoostOnPrice]: parseAaveV3LeverageManagementOnPrice,
|
|
1056
1219
|
[Strategies.Identifiers.EoaCloseOnPrice]: parseAaveV3CloseOnPrice,
|
|
1057
1220
|
[Strategies.Identifiers.CollateralSwitch]: parseAaveV3CollateralSwitch,
|
|
1221
|
+
[Strategies.Identifiers.LiquidationProtection]: parseAaveV3LiquidationProtection,
|
|
1222
|
+
[Strategies.Identifiers.EoaLiquidationProtection]: parseAaveV3LiquidationProtection,
|
|
1058
1223
|
},
|
|
1059
1224
|
[ProtocolIdentifiers.StrategiesAutomation.AaveV4]: {
|
|
1060
1225
|
[Strategies.Identifiers.Repay]: parseAaveV4LeverageManagement,
|
|
@@ -1069,6 +1234,8 @@ const parsingMethodsMapping = {
|
|
|
1069
1234
|
[Strategies.Identifiers.EoaCloseOnPrice]: parseAaveV4CloseOnPrice,
|
|
1070
1235
|
[Strategies.Identifiers.CollateralSwitch]: parseAaveV4CollateralSwitch,
|
|
1071
1236
|
[Strategies.Identifiers.EoaCollateralSwitch]: parseAaveV4CollateralSwitch,
|
|
1237
|
+
[Strategies.Identifiers.LiquidationProtection]: parseAaveV4LiquidationProtection,
|
|
1238
|
+
[Strategies.Identifiers.EoaLiquidationProtection]: parseAaveV4LiquidationProtection,
|
|
1072
1239
|
},
|
|
1073
1240
|
[ProtocolIdentifiers.StrategiesAutomation.CompoundV2]: {
|
|
1074
1241
|
[Strategies.Identifiers.Repay]: parseCompoundV2LeverageManagement,
|
|
@@ -1085,6 +1252,8 @@ const parsingMethodsMapping = {
|
|
|
1085
1252
|
[Strategies.Identifiers.EoaBoostOnPrice]: parseCompoundV3LeverageManagementOnPrice,
|
|
1086
1253
|
[Strategies.Identifiers.CloseOnPrice]: parseCompoundV3CloseOnPrice,
|
|
1087
1254
|
[Strategies.Identifiers.EoaCloseOnPrice]: parseCompoundV3CloseOnPrice,
|
|
1255
|
+
[Strategies.Identifiers.LiquidationProtection]: parseCompoundV3LiquidationProtection,
|
|
1256
|
+
[Strategies.Identifiers.EoaLiquidationProtection]: parseCompoundV3LiquidationProtection,
|
|
1088
1257
|
},
|
|
1089
1258
|
[ProtocolIdentifiers.StrategiesAutomation.ChickenBonds]: {
|
|
1090
1259
|
[Strategies.Identifiers.Rebond]: parseChickenBondsRebond,
|
|
@@ -1103,7 +1272,15 @@ const parsingMethodsMapping = {
|
|
|
1103
1272
|
[Strategies.Identifiers.RepayOnPrice]: parseSparkLeverageManagementOnPrice,
|
|
1104
1273
|
[Strategies.Identifiers.BoostOnPrice]: parseSparkLeverageManagementOnPrice,
|
|
1105
1274
|
[Strategies.Identifiers.CloseOnPrice]: parseSparkCloseOnPrice,
|
|
1275
|
+
[Strategies.Identifiers.EoaRepay]: parseSparkLeverageManagement,
|
|
1276
|
+
[Strategies.Identifiers.EoaBoost]: parseSparkLeverageManagement,
|
|
1277
|
+
[Strategies.Identifiers.EoaRepayOnPrice]: parseSparkLeverageManagementOnPrice,
|
|
1278
|
+
[Strategies.Identifiers.EoaBoostOnPrice]: parseSparkLeverageManagementOnPrice,
|
|
1279
|
+
[Strategies.Identifiers.EoaCloseOnPrice]: parseSparkCloseOnPrice,
|
|
1106
1280
|
[Strategies.Identifiers.CollateralSwitch]: parseSparkCollateralSwitch,
|
|
1281
|
+
[Strategies.Identifiers.EoaCollateralSwitch]: parseSparkCollateralSwitch,
|
|
1282
|
+
[Strategies.Identifiers.LiquidationProtection]: parseSparkLiquidationProtection,
|
|
1283
|
+
[Strategies.Identifiers.EoaLiquidationProtection]: parseSparkLiquidationProtection,
|
|
1107
1284
|
},
|
|
1108
1285
|
[ProtocolIdentifiers.StrategiesAutomation.CrvUSD]: {
|
|
1109
1286
|
[Strategies.Identifiers.Repay]: parseCrvUSDLeverageManagement,
|
|
@@ -1120,11 +1297,14 @@ const parsingMethodsMapping = {
|
|
|
1120
1297
|
[Strategies.Identifiers.EoaBoostOnPrice]: parseMorphoBlueLeverageManagementOnPrice,
|
|
1121
1298
|
[Strategies.Identifiers.EoaRepayOnPrice]: parseMorphoBlueLeverageManagementOnPrice,
|
|
1122
1299
|
[Strategies.Identifiers.CloseOnPrice]: parseMorphoBlueCloseOnPrice,
|
|
1300
|
+
[Strategies.Identifiers.LiquidationProtection]: parseMorphoBlueLiquidationProtection,
|
|
1301
|
+
[Strategies.Identifiers.EoaLiquidationProtection]: parseMorphoBlueLiquidationProtection,
|
|
1123
1302
|
[Strategies.Identifiers.EoaCloseOnPrice]: parseMorphoBlueCloseOnPrice,
|
|
1124
1303
|
},
|
|
1125
1304
|
[ProtocolIdentifiers.StrategiesAutomation.FluidT1]: {
|
|
1126
1305
|
[Strategies.Identifiers.Repay]: parseFluidT1LeverageManagement,
|
|
1127
1306
|
[Strategies.Identifiers.Boost]: parseFluidT1LeverageManagement,
|
|
1307
|
+
[Strategies.Identifiers.LiquidationProtection]: parseFluidT1LiquidationProtection,
|
|
1128
1308
|
},
|
|
1129
1309
|
};
|
|
1130
1310
|
function getParsingMethod(id, strategy) {
|
|
@@ -1,26 +1,24 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { CloseToAssetType, Bundles, ChainId, RatioState, Strategies } from '../types/enums';
|
|
1
|
+
import { Bundles, ChainId, CloseToAssetType, RatioState, Strategies } from '../types/enums';
|
|
3
2
|
import type { EthereumAddress, StrategyOrBundleIds } from '../types';
|
|
3
|
+
import type { OrderType } from '../types/enums';
|
|
4
4
|
export declare const makerEncode: {
|
|
5
5
|
repayFromSavings(bundleId: StrategyOrBundleIds, vaultId: number, triggerRepayRatio: number, targetRepayRatio: number, isBundle?: boolean, chainId?: ChainId, daiAddr?: EthereumAddress, mcdCdpManagerAddr?: EthereumAddress): (boolean | string[] | Strategies.MainnetIds | Strategies.OptimismIds | Strategies.ArbitrumIds | Strategies.BaseIds | Bundles.MainnetIds | Bundles.OptimismIds | Bundles.ArbitrumIds | Bundles.BaseIds)[];
|
|
6
6
|
closeOnPrice(vaultId: number, ratioState: RatioState, price: string, closeToAssetAddr: EthereumAddress, chainlinkCollAddress: EthereumAddress, chainId?: ChainId, daiAddr?: EthereumAddress, mcdCdpManagerAddr?: EthereumAddress): (boolean | string[] | Strategies.MainnetIds)[];
|
|
7
7
|
trailingStop(vaultId: number, triggerPercentage: number, closeToAssetAddr: EthereumAddress, chainlinkCollAddress: EthereumAddress, roundId: number, chainId?: ChainId, daiAddr?: EthereumAddress, mcdCdpManagerAddr?: EthereumAddress): (boolean | string[] | Strategies.MainnetIds)[];
|
|
8
|
-
|
|
8
|
+
leverageManagement(vaultId: number, triggerRatio: number, targetRatio: number, ratioState: RatioState, isBoost: boolean, daiAddr?: EthereumAddress): (boolean | string[] | Bundles.MainnetIds)[];
|
|
9
|
+
liquidationProtection(vaultId: number, triggerRatio: number, targetRatio: number, ratioState: RatioState, daiAddr?: EthereumAddress): (boolean | string[] | Bundles.MainnetIds)[];
|
|
9
10
|
};
|
|
10
11
|
export declare const liquityEncode: {
|
|
11
12
|
closeOnPrice(priceOverOrUnder: RatioState, price: string, closeToAssetAddr: EthereumAddress, chainlinkCollAddress: EthereumAddress, chainId?: ChainId, collAddr?: EthereumAddress, debtAddr?: EthereumAddress): (boolean | string[] | Strategies.MainnetIds)[];
|
|
12
13
|
trailingStop(triggerPercentage: number, closeToAssetAddr: EthereumAddress, chainlinkCollAddress: EthereumAddress, roundId: number, chainId?: ChainId, collAddr?: EthereumAddress, debtAddr?: EthereumAddress): (boolean | string[] | Strategies.MainnetIds)[];
|
|
13
14
|
paybackFromChickenBondStrategySub(proxyAddress: EthereumAddress, ratio: number, sourceId: string, sourceType: number, ratioState?: RatioState): (boolean | string[] | Bundles.MainnetIds)[];
|
|
14
|
-
|
|
15
|
+
leverageManagement(strategyOrBundleId: number, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
|
|
15
16
|
dsrPayback(proxyAddress: EthereumAddress, triggerRatio: number, targetRatio: number): (boolean | string[] | Strategies.MainnetIds)[];
|
|
16
17
|
dsrSupply(proxyAddress: EthereumAddress, triggerRatio: number, targetRatio: number): (boolean | string[] | Strategies.MainnetIds)[];
|
|
17
18
|
debtInFrontRepay(proxyAddress: EthereumAddress, debtInFrontMin: string, targetRatioIncrease: number): (boolean | string[] | Strategies.MainnetIds)[];
|
|
18
19
|
};
|
|
19
|
-
export declare const chickenBondsEncode: {
|
|
20
|
-
rebond(bondId: number): string[];
|
|
21
|
-
};
|
|
22
20
|
export declare const aaveV2Encode: {
|
|
23
|
-
|
|
21
|
+
leverageManagement(strategyOrBundleId: number, market: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
|
|
24
22
|
};
|
|
25
23
|
export declare const aaveV3Encode: {
|
|
26
24
|
closeToAsset(strategyOrBundleId: number, isBundle: boolean | undefined, triggerData: {
|
|
@@ -59,25 +57,24 @@ export declare const aaveV3Encode: {
|
|
|
59
57
|
marketAddr: EthereumAddress;
|
|
60
58
|
targetRatio: number;
|
|
61
59
|
}): (number | boolean | string[])[];
|
|
62
|
-
|
|
60
|
+
leverageManagement(strategyOrBundleId: number, market: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number, isGeneric?: boolean): (number | boolean | string[])[];
|
|
61
|
+
liquidationProtection(strategyOrBundleId: number, market: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
|
|
63
62
|
leverageManagementOnPriceGeneric(strategyOrBundleId: number, price: number, ratioState: RatioState, collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, marketAddr: EthereumAddress, targetRatio: number, user: EthereumAddress): (number | boolean | string[])[];
|
|
64
63
|
closeOnPriceGeneric(strategyOrBundleId: number, collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, marketAddr: EthereumAddress, user: EthereumAddress, stopLossPrice?: number, stopLossType?: CloseToAssetType, takeProfitPrice?: number, takeProfitType?: CloseToAssetType): (number | boolean | string[])[];
|
|
65
64
|
collateralSwitch(strategyOrBundleId: number, fromAsset: EthereumAddress, fromAssetId: number, toAsset: EthereumAddress, toAssetId: number, marketAddr: EthereumAddress, amountToSwitch: string, baseTokenAddress: EthereumAddress, quoteTokenAddress: EthereumAddress, price: number, state: RatioState): (number | boolean | string[])[];
|
|
66
65
|
};
|
|
67
66
|
export declare const compoundV2Encode: {
|
|
68
|
-
|
|
67
|
+
leverageManagement(strategyOrBundleId: number, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
|
|
69
68
|
};
|
|
70
69
|
export declare const compoundV3Encode: {
|
|
71
|
-
|
|
70
|
+
leverageManagement(strategyOrBundleId: number, market: EthereumAddress, baseToken: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
|
|
71
|
+
liquidationProtection(strategyOrBundleId: number, market: EthereumAddress, baseToken: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
|
|
72
72
|
leverageManagementOnPrice(strategyOrBundleId: number, market: EthereumAddress, collToken: EthereumAddress, baseToken: EthereumAddress, targetRatio: number, price: number, priceState: RatioState, ratioState: RatioState, user: EthereumAddress): (number | boolean | string[])[];
|
|
73
73
|
closeOnPrice(strategyOrBundleId: number, market: EthereumAddress, collToken: EthereumAddress, baseToken: EthereumAddress, stopLossPrice: number | undefined, stopLossType: CloseToAssetType | undefined, takeProfitPrice: number | undefined, takeProfitType: CloseToAssetType | undefined, user: EthereumAddress): (number | boolean | string[])[];
|
|
74
74
|
};
|
|
75
|
-
export declare const morphoAaveV2Encode: {
|
|
76
|
-
leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
|
|
77
|
-
};
|
|
78
75
|
export declare const exchangeEncode: {
|
|
79
76
|
dca(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string, timestamp: number, interval: number, network: ChainId): (boolean | string[] | Strategies.MainnetIds | Strategies.OptimismIds | Strategies.ArbitrumIds | Strategies.BaseIds)[];
|
|
80
|
-
|
|
77
|
+
limitOrder(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string, targetPrice: string, goodUntil: string | number, orderType: OrderType, fromTokenDecimals: number, toTokenDecimals: number, network: ChainId): (boolean | string[] | Strategies.MainnetIds | Strategies.OptimismIds | Strategies.ArbitrumIds | Strategies.BaseIds)[];
|
|
81
78
|
};
|
|
82
79
|
export declare const sparkEncode: {
|
|
83
80
|
leverageManagementOnPrice(strategyOrBundleId: number, isBundle: boolean | undefined, triggerData: {
|
|
@@ -94,17 +91,23 @@ export declare const sparkEncode: {
|
|
|
94
91
|
targetRatio: number;
|
|
95
92
|
}): (number | boolean | string[])[];
|
|
96
93
|
closeOnPriceGeneric(strategyOrBundleId: number, collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, marketAddr: EthereumAddress, user: EthereumAddress, stopLossPrice?: number, stopLossType?: CloseToAssetType, takeProfitPrice?: number, takeProfitType?: CloseToAssetType): (number | boolean | string[])[];
|
|
97
|
-
|
|
94
|
+
leverageManagement(strategyOrBundleId: number, market: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
|
|
95
|
+
liquidationProtection(strategyOrBundleId: number, market: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
|
|
96
|
+
leverageManagementGeneric(strategyOrBundleId: number, market: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
|
|
97
|
+
liquidationProtectionGeneric(strategyOrBundleId: number, market: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
|
|
98
|
+
leverageManagementOnPriceGeneric(strategyOrBundleId: number, price: number, ratioState: RatioState, collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, marketAddr: EthereumAddress, targetRatio: number, user: EthereumAddress): (number | boolean | string[])[];
|
|
98
99
|
collateralSwitch(strategyOrBundleId: number, fromAsset: EthereumAddress, fromAssetId: number, toAsset: EthereumAddress, toAssetId: number, marketAddr: EthereumAddress, amountToSwitch: string, baseTokenAddress: EthereumAddress, quoteTokenAddress: EthereumAddress, price: number, state: RatioState): (number | boolean | string[])[];
|
|
100
|
+
collateralSwitchGeneric(strategyOrBundleId: number, fromAsset: EthereumAddress, fromAssetId: number, toAsset: EthereumAddress, toAssetId: number, marketAddr: EthereumAddress, amountToSwitch: string, user: EthereumAddress, baseTokenAddress: EthereumAddress, quoteTokenAddress: EthereumAddress, price: number, state: RatioState): (number | boolean | string[])[];
|
|
99
101
|
};
|
|
100
102
|
export declare const crvUSDEncode: {
|
|
101
103
|
leverageManagement(owner: EthereumAddress, controllerAddr: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number, collTokenAddr: EthereumAddress, crvUSDAddr: EthereumAddress): (boolean | string[] | Bundles.MainnetIds)[];
|
|
102
104
|
payback(proxyAddress: EthereumAddress, addressToPullTokensFrom: EthereumAddress, positionOwner: EthereumAddress, paybackAmount: string, crvUSDAddr: EthereumAddress, controllerAddr: EthereumAddress, minHealthRatio: number): (boolean | string[] | Strategies.MainnetIds)[];
|
|
103
105
|
};
|
|
104
|
-
export type MorphoBlueBundleStrategy = 'repay' | 'boost' | 'repayOnPrice' | 'boostOnPrice' | 'close';
|
|
106
|
+
export type MorphoBlueBundleStrategy = 'repay' | 'boost' | 'repayOnPrice' | 'boostOnPrice' | 'close' | 'liquidationProtection';
|
|
105
107
|
export declare function getMorphoBlueBundleId(network: ChainId, strategy: MorphoBlueBundleStrategy, isEOA: boolean): number;
|
|
106
108
|
export declare const morphoBlueEncode: {
|
|
107
109
|
leverageManagement(marketId: string, loanToken: EthereumAddress, collToken: EthereumAddress, oracle: EthereumAddress, irm: EthereumAddress, lltv: string, ratioState: RatioState, targetRatio: number, triggerRatio: number, user: EthereumAddress, isEOA: boolean, network: ChainId): (number | boolean | string[])[];
|
|
110
|
+
liquidationProtection(marketId: string, loanToken: EthereumAddress, collToken: EthereumAddress, oracle: EthereumAddress, irm: EthereumAddress, lltv: string, ratioState: RatioState, targetRatio: number, triggerRatio: number, user: EthereumAddress, isEOA: boolean, network: ChainId): (number | boolean | string[])[];
|
|
108
111
|
leverageManagementOnPrice(strategyOrBundleId: number, isBundle: boolean | undefined, loanToken: EthereumAddress, collToken: EthereumAddress, oracle: EthereumAddress, irm: EthereumAddress, lltv: string, user: EthereumAddress, targetRatio: number, price: number, priceState: RatioState): (number | boolean | string[])[];
|
|
109
112
|
leverageManagementOnPriceGeneric(loanToken: EthereumAddress, collToken: EthereumAddress, oracle: EthereumAddress, irm: EthereumAddress, lltv: string, user: EthereumAddress, targetRatio: number, price: number, priceState: RatioState, isBoost: boolean, isEOA: boolean, network: ChainId): (number | boolean | string[])[];
|
|
110
113
|
closeOnPrice(strategyOrBundleId: number, loanToken: EthereumAddress, collToken: EthereumAddress, oracle: EthereumAddress, irm: EthereumAddress, lltv: string, user: EthereumAddress, stopLossPrice?: number, stopLossType?: CloseToAssetType, takeProfitPrice?: number, takeProfitType?: CloseToAssetType): (number | boolean | string[])[];
|
|
@@ -118,9 +121,11 @@ export declare const liquityV2Encode: {
|
|
|
118
121
|
};
|
|
119
122
|
export declare const fluidEncode: {
|
|
120
123
|
leverageManagement(nftId: string, vault: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number, strategyOrBundleId: number): (number | boolean | string[])[];
|
|
124
|
+
liquidationProtection(nftId: string, vault: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number, strategyOrBundleId: number): (number | boolean | string[])[];
|
|
121
125
|
};
|
|
122
126
|
export declare const aaveV4Encode: {
|
|
123
127
|
leverageManagement(strategyOrBundleId: number, owner: EthereumAddress, spoke: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
|
|
128
|
+
liquidationProtection(strategyOrBundleId: number, owner: EthereumAddress, spoke: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
|
|
124
129
|
leverageManagementOnPrice(strategyOrBundleId: number, owner: EthereumAddress, spoke: EthereumAddress, collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, targetRatio: number, price: string, priceState: RatioState, ratioState: RatioState): (number | boolean | string[])[];
|
|
125
130
|
closeOnPrice(strategyOrBundleId: number, owner: EthereumAddress, spoke: EthereumAddress, collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, stopLossPrice?: string, stopLossType?: CloseToAssetType, takeProfitPrice?: string, takeProfitType?: CloseToAssetType): (number | boolean | string[])[];
|
|
126
131
|
collateralSwitch(strategyOrBundleId: number, owner: EthereumAddress, spoke: EthereumAddress, fromAsset: EthereumAddress, fromAssetId: number, toAsset: EthereumAddress, toAssetId: number, amountToSwitch: string, price: string, ratioState: RatioState): (number | boolean | string[])[];
|