@defisaver/automation-sdk 3.3.13-strategies-refactor-dev → 3.3.14
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/services/strategiesService.js +17 -30
- package/cjs/services/strategySubService.d.ts +11 -5
- package/cjs/services/strategySubService.js +62 -27
- package/cjs/services/strategySubService.test.js +234 -0
- package/cjs/services/subDataService.d.ts +2 -35
- package/cjs/services/subDataService.js +20 -84
- package/cjs/services/subDataService.test.js +42 -0
- package/esm/services/strategiesService.js +17 -30
- package/esm/services/strategySubService.d.ts +11 -5
- package/esm/services/strategySubService.js +58 -26
- package/esm/services/strategySubService.test.js +236 -2
- package/esm/services/subDataService.d.ts +2 -35
- package/esm/services/subDataService.js +19 -82
- package/esm/services/subDataService.test.js +42 -0
- package/package.json +1 -1
- package/src/services/strategiesService.ts +17 -30
- package/src/services/strategySubService.test.ts +279 -0
- package/src/services/strategySubService.ts +111 -60
- package/src/services/subDataService.test.ts +48 -0
- package/src/services/subDataService.ts +28 -107
|
@@ -92,7 +92,7 @@ function parseMakerTrailingStop(position, parseData) {
|
|
|
92
92
|
}
|
|
93
93
|
function parseMakerLeverageManagement(position, parseData) {
|
|
94
94
|
const _position = (0, lodash_1.cloneDeep)(position);
|
|
95
|
-
const { subStruct, subId
|
|
95
|
+
const { subStruct, subId } = parseData.subscriptionEventData;
|
|
96
96
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
97
97
|
const triggerData = triggerService.makerRatioTrigger.decode(subStruct.triggerData);
|
|
98
98
|
const subData = subDataService.makerLeverageManagementSubData.decode(subStruct.subData);
|
|
@@ -104,10 +104,9 @@ function parseMakerLeverageManagement(position, parseData) {
|
|
|
104
104
|
_position.specific = {
|
|
105
105
|
triggerRepayRatio: triggerData.ratio,
|
|
106
106
|
targetRepayRatio: subData.targetRatio,
|
|
107
|
-
repayEnabled:
|
|
107
|
+
repayEnabled: true,
|
|
108
108
|
subId1: Number(subId),
|
|
109
109
|
mergeWithId: enums_1.Strategies.Identifiers.Boost,
|
|
110
|
-
subHashRepay: subHash,
|
|
111
110
|
};
|
|
112
111
|
}
|
|
113
112
|
else {
|
|
@@ -117,7 +116,6 @@ function parseMakerLeverageManagement(position, parseData) {
|
|
|
117
116
|
boostEnabled: isEnabled,
|
|
118
117
|
subId2: Number(subId),
|
|
119
118
|
mergeId: enums_1.Strategies.Identifiers.Boost,
|
|
120
|
-
subHashBoost: subHash,
|
|
121
119
|
};
|
|
122
120
|
}
|
|
123
121
|
_position.strategy.strategyId = enums_1.Strategies.IdOverrides.LeverageManagement;
|
|
@@ -157,7 +155,7 @@ function parseLiquityTrailingStop(position, parseData) {
|
|
|
157
155
|
}
|
|
158
156
|
function parseAaveV2LeverageManagement(position, parseData) {
|
|
159
157
|
const _position = (0, lodash_1.cloneDeep)(position);
|
|
160
|
-
const { subStruct, subId
|
|
158
|
+
const { subStruct, subId } = parseData.subscriptionEventData;
|
|
161
159
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
162
160
|
const triggerData = triggerService.aaveV2RatioTrigger.decode(subStruct.triggerData);
|
|
163
161
|
const subData = subDataService.aaveV2LeverageManagementSubData.decode(subStruct.subData);
|
|
@@ -169,10 +167,9 @@ function parseAaveV2LeverageManagement(position, parseData) {
|
|
|
169
167
|
_position.specific = {
|
|
170
168
|
triggerRepayRatio: triggerData.ratio,
|
|
171
169
|
targetRepayRatio: subData.targetRatio,
|
|
172
|
-
repayEnabled:
|
|
170
|
+
repayEnabled: true,
|
|
173
171
|
subId1: Number(subId),
|
|
174
172
|
mergeWithId: enums_1.Strategies.Identifiers.Boost,
|
|
175
|
-
subHashRepay: subHash,
|
|
176
173
|
};
|
|
177
174
|
}
|
|
178
175
|
else {
|
|
@@ -182,7 +179,6 @@ function parseAaveV2LeverageManagement(position, parseData) {
|
|
|
182
179
|
boostEnabled: isEnabled,
|
|
183
180
|
subId2: Number(subId),
|
|
184
181
|
mergeId: enums_1.Strategies.Identifiers.Boost,
|
|
185
|
-
subHashBoost: subHash,
|
|
186
182
|
};
|
|
187
183
|
}
|
|
188
184
|
_position.strategy.strategyId = enums_1.Strategies.IdOverrides.LeverageManagement;
|
|
@@ -420,7 +416,7 @@ function parseAaveV4CollateralSwitch(position, parseData) {
|
|
|
420
416
|
}
|
|
421
417
|
function parseMorphoAaveV2LeverageManagement(position, parseData) {
|
|
422
418
|
const _position = (0, lodash_1.cloneDeep)(position);
|
|
423
|
-
const { subStruct, subId
|
|
419
|
+
const { subStruct, subId } = parseData.subscriptionEventData;
|
|
424
420
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
425
421
|
const triggerData = triggerService.morphoAaveV2RatioTrigger.decode(subStruct.triggerData);
|
|
426
422
|
const subData = subDataService.morphoAaveV2LeverageManagementSubData.decode(subStruct.subData);
|
|
@@ -432,10 +428,9 @@ function parseMorphoAaveV2LeverageManagement(position, parseData) {
|
|
|
432
428
|
_position.specific = {
|
|
433
429
|
triggerRepayRatio: triggerData.ratio,
|
|
434
430
|
targetRepayRatio: subData.targetRatio,
|
|
435
|
-
repayEnabled:
|
|
431
|
+
repayEnabled: true,
|
|
436
432
|
subId1: Number(subId),
|
|
437
433
|
mergeWithId: enums_1.Strategies.Identifiers.Boost,
|
|
438
|
-
subHashRepay: subHash,
|
|
439
434
|
};
|
|
440
435
|
}
|
|
441
436
|
else {
|
|
@@ -445,7 +440,6 @@ function parseMorphoAaveV2LeverageManagement(position, parseData) {
|
|
|
445
440
|
boostEnabled: isEnabled,
|
|
446
441
|
subId2: Number(subId),
|
|
447
442
|
mergeId: enums_1.Strategies.Identifiers.Boost,
|
|
448
|
-
subHashBoost: subHash,
|
|
449
443
|
};
|
|
450
444
|
}
|
|
451
445
|
_position.strategy.strategyId = enums_1.Strategies.IdOverrides.LeverageManagement;
|
|
@@ -478,7 +472,7 @@ function parseAaveV3CloseOnPriceWithMaximumGasPrice(position, parseData) {
|
|
|
478
472
|
}
|
|
479
473
|
function parseCompoundV2LeverageManagement(position, parseData) {
|
|
480
474
|
const _position = (0, lodash_1.cloneDeep)(position);
|
|
481
|
-
const { subStruct, subId
|
|
475
|
+
const { subStruct, subId } = parseData.subscriptionEventData;
|
|
482
476
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
483
477
|
const triggerData = triggerService.compoundV2RatioTrigger.decode(subStruct.triggerData);
|
|
484
478
|
const subData = subDataService.compoundV2LeverageManagementSubData.decode(subStruct.subData);
|
|
@@ -491,10 +485,9 @@ function parseCompoundV2LeverageManagement(position, parseData) {
|
|
|
491
485
|
_position.specific = {
|
|
492
486
|
triggerRepayRatio: triggerData.ratio,
|
|
493
487
|
targetRepayRatio: subData.targetRatio,
|
|
494
|
-
repayEnabled:
|
|
488
|
+
repayEnabled: true,
|
|
495
489
|
subId1: Number(subId),
|
|
496
490
|
mergeWithId: enums_1.Strategies.Identifiers.Boost,
|
|
497
|
-
subHashRepay: subHash,
|
|
498
491
|
};
|
|
499
492
|
}
|
|
500
493
|
else {
|
|
@@ -504,7 +497,6 @@ function parseCompoundV2LeverageManagement(position, parseData) {
|
|
|
504
497
|
boostEnabled: isEnabled,
|
|
505
498
|
subId2: Number(subId),
|
|
506
499
|
mergeId: enums_1.Strategies.Identifiers.Boost,
|
|
507
|
-
subHashBoost: subHash,
|
|
508
500
|
};
|
|
509
501
|
}
|
|
510
502
|
const isEOA = _position.strategy.strategyId.includes('eoa');
|
|
@@ -513,9 +505,11 @@ function parseCompoundV2LeverageManagement(position, parseData) {
|
|
|
513
505
|
}
|
|
514
506
|
function parseCompoundV3LeverageManagement(position, parseData) {
|
|
515
507
|
const _position = (0, lodash_1.cloneDeep)(position);
|
|
516
|
-
const { subStruct, subId
|
|
508
|
+
const { subStruct, subId } = parseData.subscriptionEventData;
|
|
517
509
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
518
|
-
const subDataDecoder =
|
|
510
|
+
const subDataDecoder = position.chainId !== 1
|
|
511
|
+
? subDataService.compoundV3L2LeverageManagementSubData
|
|
512
|
+
: subDataService.compoundV3LeverageManagementSubData;
|
|
519
513
|
const triggerData = triggerService.compoundV3RatioTrigger.decode(subStruct.triggerData);
|
|
520
514
|
const subData = subDataDecoder.decode(subStruct.subData);
|
|
521
515
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
@@ -527,10 +521,9 @@ function parseCompoundV3LeverageManagement(position, parseData) {
|
|
|
527
521
|
_position.specific = {
|
|
528
522
|
triggerRepayRatio: triggerData.ratio,
|
|
529
523
|
targetRepayRatio: subData.targetRatio,
|
|
530
|
-
repayEnabled:
|
|
524
|
+
repayEnabled: true,
|
|
531
525
|
subId1: Number(subId),
|
|
532
526
|
mergeWithId: isEOA ? enums_1.Strategies.Identifiers.EoaBoost : enums_1.Strategies.Identifiers.Boost,
|
|
533
|
-
subHashRepay: subHash,
|
|
534
527
|
};
|
|
535
528
|
}
|
|
536
529
|
else {
|
|
@@ -540,7 +533,6 @@ function parseCompoundV3LeverageManagement(position, parseData) {
|
|
|
540
533
|
boostEnabled: isEnabled,
|
|
541
534
|
subId2: Number(subId),
|
|
542
535
|
mergeId: isEOA ? enums_1.Strategies.Identifiers.EoaBoost : enums_1.Strategies.Identifiers.Boost,
|
|
543
|
-
subHashBoost: subHash,
|
|
544
536
|
};
|
|
545
537
|
}
|
|
546
538
|
_position.strategy.strategyId = isEOA ? enums_1.Strategies.IdOverrides.EoaLeverageManagement : enums_1.Strategies.IdOverrides.LeverageManagement;
|
|
@@ -628,7 +620,7 @@ function parseExchangeLimitOrder(position, parseData, chainId) {
|
|
|
628
620
|
}
|
|
629
621
|
function parseLiquityLeverageManagement(position, parseData) {
|
|
630
622
|
const _position = (0, lodash_1.cloneDeep)(position);
|
|
631
|
-
const { subStruct, subId
|
|
623
|
+
const { subStruct, subId } = parseData.subscriptionEventData;
|
|
632
624
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
633
625
|
const triggerData = triggerService.liquityRatioTrigger.decode(subStruct.triggerData);
|
|
634
626
|
const subData = subDataService.liquityLeverageManagementSubData.decode(subStruct.subData);
|
|
@@ -640,10 +632,9 @@ function parseLiquityLeverageManagement(position, parseData) {
|
|
|
640
632
|
_position.specific = {
|
|
641
633
|
triggerRepayRatio: triggerData.ratio,
|
|
642
634
|
targetRepayRatio: subData.targetRatio,
|
|
643
|
-
repayEnabled:
|
|
635
|
+
repayEnabled: true,
|
|
644
636
|
subId1: Number(subId),
|
|
645
637
|
mergeWithId: enums_1.Strategies.Identifiers.Boost,
|
|
646
|
-
subHashRepay: subHash,
|
|
647
638
|
};
|
|
648
639
|
}
|
|
649
640
|
else {
|
|
@@ -653,7 +644,6 @@ function parseLiquityLeverageManagement(position, parseData) {
|
|
|
653
644
|
boostEnabled: isEnabled,
|
|
654
645
|
subId2: Number(subId),
|
|
655
646
|
mergeId: enums_1.Strategies.Identifiers.Boost,
|
|
656
|
-
subHashBoost: subHash,
|
|
657
647
|
};
|
|
658
648
|
}
|
|
659
649
|
_position.strategy.strategyId = enums_1.Strategies.IdOverrides.LeverageManagement;
|
|
@@ -694,7 +684,7 @@ function parseLiquityV2LeverageManagement(position, parseData) {
|
|
|
694
684
|
}
|
|
695
685
|
function parseSparkLeverageManagement(position, parseData) {
|
|
696
686
|
const _position = (0, lodash_1.cloneDeep)(position);
|
|
697
|
-
const { subStruct, subId
|
|
687
|
+
const { subStruct, subId } = parseData.subscriptionEventData;
|
|
698
688
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
699
689
|
const triggerData = triggerService.sparkRatioTrigger.decode(subStruct.triggerData);
|
|
700
690
|
const subData = subDataService.sparkLeverageManagementSubData.decode(subStruct.subData);
|
|
@@ -706,10 +696,9 @@ function parseSparkLeverageManagement(position, parseData) {
|
|
|
706
696
|
_position.specific = {
|
|
707
697
|
triggerRepayRatio: triggerData.ratio,
|
|
708
698
|
targetRepayRatio: subData.targetRatio,
|
|
709
|
-
repayEnabled:
|
|
699
|
+
repayEnabled: true,
|
|
710
700
|
subId1: Number(subId),
|
|
711
701
|
mergeWithId: enums_1.Strategies.Identifiers.Boost,
|
|
712
|
-
subHashRepay: subHash,
|
|
713
702
|
};
|
|
714
703
|
}
|
|
715
704
|
else {
|
|
@@ -719,7 +708,6 @@ function parseSparkLeverageManagement(position, parseData) {
|
|
|
719
708
|
boostEnabled: isEnabled,
|
|
720
709
|
subId2: Number(subId),
|
|
721
710
|
mergeId: enums_1.Strategies.Identifiers.Boost,
|
|
722
|
-
subHashBoost: subHash,
|
|
723
711
|
};
|
|
724
712
|
}
|
|
725
713
|
_position.strategy.strategyId = enums_1.Strategies.IdOverrides.LeverageManagement;
|
|
@@ -902,7 +890,6 @@ function parseMorphoBlueLeverageManagementOnPrice(position, parseData) {
|
|
|
902
890
|
debtAsset: subData.loanToken,
|
|
903
891
|
price: triggerData.price,
|
|
904
892
|
ratio: subData.targetRatio,
|
|
905
|
-
ratioState: triggerData.priceState,
|
|
906
893
|
};
|
|
907
894
|
return _position;
|
|
908
895
|
}
|
|
@@ -5,13 +5,14 @@ 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
|
+
leverageManagement(vaultId: number, triggerRepayRatio: string, triggerBoostRatio: string, targetBoostRatio: string, targetRepayRatio: string, boostEnabled: boolean): (string | number | boolean)[];
|
|
8
9
|
leverageManagementWithoutSubProxy(vaultId: number, triggerRatio: number, targetRatio: number, ratioState: RatioState, isBoost: boolean, 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(triggerRepayRatio: string, triggerBoostRatio: string, targetBoostRatio: string, targetRepayRatio: string, boostEnabled: boolean): (string | boolean)[];
|
|
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)[];
|
|
@@ -20,9 +21,10 @@ export declare const chickenBondsEncode: {
|
|
|
20
21
|
rebond(bondId: number): string[];
|
|
21
22
|
};
|
|
22
23
|
export declare const aaveV2Encode: {
|
|
23
|
-
|
|
24
|
+
leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
|
|
24
25
|
};
|
|
25
26
|
export declare const aaveV3Encode: {
|
|
27
|
+
leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string;
|
|
26
28
|
closeToAsset(strategyOrBundleId: number, isBundle: boolean | undefined, triggerData: {
|
|
27
29
|
baseTokenAddress: EthereumAddress;
|
|
28
30
|
quoteTokenAddress: EthereumAddress;
|
|
@@ -65,21 +67,25 @@ export declare const aaveV3Encode: {
|
|
|
65
67
|
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
68
|
};
|
|
67
69
|
export declare const compoundV2Encode: {
|
|
68
|
-
|
|
70
|
+
leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
|
|
69
71
|
};
|
|
70
72
|
export declare const compoundV3Encode: {
|
|
71
|
-
|
|
73
|
+
leverageManagement(market: EthereumAddress, baseToken: EthereumAddress, triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean, isEOA: boolean): string[];
|
|
72
74
|
leverageManagementOnPrice(strategyOrBundleId: number, market: EthereumAddress, collToken: EthereumAddress, baseToken: EthereumAddress, targetRatio: number, price: number, priceState: RatioState, ratioState: RatioState, user: EthereumAddress): (number | boolean | string[])[];
|
|
73
75
|
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
76
|
};
|
|
77
|
+
export declare const compoundV3L2Encode: {
|
|
78
|
+
leverageManagement(market: EthereumAddress, baseToken: EthereumAddress, triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean, isEOA?: boolean): string;
|
|
79
|
+
};
|
|
75
80
|
export declare const morphoAaveV2Encode: {
|
|
76
81
|
leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
|
|
77
82
|
};
|
|
78
83
|
export declare const exchangeEncode: {
|
|
79
84
|
dca(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string, timestamp: number, interval: number, network: ChainId): (boolean | string[] | Strategies.MainnetIds | Strategies.OptimismIds | Strategies.ArbitrumIds | Strategies.BaseIds)[];
|
|
80
|
-
|
|
85
|
+
limitOrder(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string, targetPrice: string, goodUntil: string | number, orderType: OrderType): string[];
|
|
81
86
|
};
|
|
82
87
|
export declare const sparkEncode: {
|
|
88
|
+
leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string;
|
|
83
89
|
leverageManagementOnPrice(strategyOrBundleId: number, isBundle: boolean | undefined, triggerData: {
|
|
84
90
|
baseTokenAddr: EthereumAddress;
|
|
85
91
|
quoteTokenAddr: EthereumAddress;
|
|
@@ -22,8 +22,12 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
25
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.aaveV4Encode = exports.fluidEncode = exports.liquityV2Encode = exports.morphoBlueEncode = exports.crvUSDEncode = exports.sparkEncode = exports.exchangeEncode = exports.morphoAaveV2Encode = exports.compoundV3Encode = exports.compoundV2Encode = exports.aaveV3Encode = exports.aaveV2Encode = exports.chickenBondsEncode = exports.liquityEncode = exports.makerEncode = void 0;
|
|
29
|
+
exports.aaveV4Encode = exports.fluidEncode = exports.liquityV2Encode = exports.morphoBlueEncode = exports.crvUSDEncode = exports.sparkEncode = exports.exchangeEncode = exports.morphoAaveV2Encode = exports.compoundV3L2Encode = exports.compoundV3Encode = exports.compoundV2Encode = exports.aaveV3Encode = exports.aaveV2Encode = exports.chickenBondsEncode = exports.liquityEncode = exports.makerEncode = void 0;
|
|
30
|
+
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
27
31
|
const tokens_1 = require("@defisaver/tokens");
|
|
28
32
|
const enums_1 = require("../types/enums");
|
|
29
33
|
const constants_1 = require("../constants");
|
|
@@ -56,6 +60,16 @@ exports.makerEncode = {
|
|
|
56
60
|
const isBundle = false;
|
|
57
61
|
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
58
62
|
},
|
|
63
|
+
leverageManagement(vaultId, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
64
|
+
return [
|
|
65
|
+
vaultId,
|
|
66
|
+
new decimal_js_1.default(triggerRepayRatio).mul(1e16).toString(),
|
|
67
|
+
new decimal_js_1.default(triggerBoostRatio).mul(1e16).toString(),
|
|
68
|
+
new decimal_js_1.default(targetBoostRatio).mul(1e16).toString(),
|
|
69
|
+
new decimal_js_1.default(targetRepayRatio).mul(1e16).toString(),
|
|
70
|
+
boostEnabled,
|
|
71
|
+
];
|
|
72
|
+
},
|
|
59
73
|
leverageManagementWithoutSubProxy(vaultId, triggerRatio, targetRatio, ratioState, isBoost, daiAddr) {
|
|
60
74
|
const bundleId = isBoost ? enums_1.Bundles.MainnetIds.MAKER_BOOST : enums_1.Bundles.MainnetIds.MAKER_REPAY;
|
|
61
75
|
const triggerData = triggerService.makerRatioTrigger.encode(vaultId, triggerRatio, ratioState);
|
|
@@ -93,11 +107,14 @@ exports.liquityEncode = {
|
|
|
93
107
|
const isBundle = true;
|
|
94
108
|
return [strategyId, isBundle, triggerData, subData];
|
|
95
109
|
},
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
110
|
+
leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
111
|
+
return [
|
|
112
|
+
new decimal_js_1.default(triggerRepayRatio).mul(1e16).toString(),
|
|
113
|
+
new decimal_js_1.default(triggerBoostRatio).mul(1e16).toString(),
|
|
114
|
+
new decimal_js_1.default(targetBoostRatio).mul(1e16).toString(),
|
|
115
|
+
new decimal_js_1.default(targetRepayRatio).mul(1e16).toString(),
|
|
116
|
+
boostEnabled,
|
|
117
|
+
];
|
|
101
118
|
},
|
|
102
119
|
dsrPayback(proxyAddress, triggerRatio, targetRatio) {
|
|
103
120
|
(0, utils_1.requireAddress)(proxyAddress);
|
|
@@ -130,14 +147,24 @@ exports.chickenBondsEncode = {
|
|
|
130
147
|
},
|
|
131
148
|
};
|
|
132
149
|
exports.aaveV2Encode = {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
const subData = subDataService.aaveV2LeverageManagementSubDataWithoutSubProxy.encode(market, targetRatio, ratioState);
|
|
136
|
-
const triggerData = triggerService.aaveV2RatioTrigger.encode(user, market, triggerRatio, ratioState);
|
|
137
|
-
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
150
|
+
leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
151
|
+
return subDataService.aaveV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
|
|
138
152
|
},
|
|
139
153
|
};
|
|
140
154
|
exports.aaveV3Encode = {
|
|
155
|
+
leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
156
|
+
let subInput = '0x';
|
|
157
|
+
subInput = subInput.concat(new decimal_js_1.default(triggerRepayRatio).mul(1e16).toHex().slice(2)
|
|
158
|
+
.padStart(32, '0'));
|
|
159
|
+
subInput = subInput.concat(new decimal_js_1.default(triggerBoostRatio).mul(1e16).toHex().slice(2)
|
|
160
|
+
.padStart(32, '0'));
|
|
161
|
+
subInput = subInput.concat(new decimal_js_1.default(targetBoostRatio).mul(1e16).toHex().slice(2)
|
|
162
|
+
.padStart(32, '0'));
|
|
163
|
+
subInput = subInput.concat(new decimal_js_1.default(targetRepayRatio).mul(1e16).toHex().slice(2)
|
|
164
|
+
.padStart(32, '0'));
|
|
165
|
+
subInput = subInput.concat(boostEnabled ? '01' : '00');
|
|
166
|
+
return subInput;
|
|
167
|
+
},
|
|
141
168
|
closeToAsset(strategyOrBundleId, isBundle = true, triggerData, subData) {
|
|
142
169
|
const { collAsset, collAssetId, debtAsset, debtAssetId, } = subData;
|
|
143
170
|
const subDataEncoded = subDataService.aaveV3QuotePriceSubData.encode(collAsset, collAssetId, debtAsset, debtAssetId);
|
|
@@ -186,19 +213,13 @@ exports.aaveV3Encode = {
|
|
|
186
213
|
},
|
|
187
214
|
};
|
|
188
215
|
exports.compoundV2Encode = {
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
const subData = subDataService.compoundV2LeverageManagementSubDataWithoutSubProxy.encode(targetRatio, ratioState);
|
|
192
|
-
const triggerData = triggerService.compoundV2RatioTrigger.encode(user, triggerRatio, ratioState);
|
|
193
|
-
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
216
|
+
leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
217
|
+
return subDataService.compoundV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
|
|
194
218
|
},
|
|
195
219
|
};
|
|
196
220
|
exports.compoundV3Encode = {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
const subData = subDataService.compoundV3LeverageManagementSubDataWithoutSubProxy.encode(market, baseToken, targetRatio, ratioState);
|
|
200
|
-
const triggerData = triggerService.compoundV3RatioTrigger.encode(user, market, triggerRatio, ratioState);
|
|
201
|
-
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
221
|
+
leverageManagement(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA) {
|
|
222
|
+
return subDataService.compoundV3LeverageManagementSubData.encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA);
|
|
202
223
|
},
|
|
203
224
|
leverageManagementOnPrice(strategyOrBundleId, market, collToken, baseToken, targetRatio, price, priceState, ratioState, // REPAY for repay on price, BOOST for boost on price
|
|
204
225
|
user) {
|
|
@@ -215,6 +236,11 @@ exports.compoundV3Encode = {
|
|
|
215
236
|
return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
|
|
216
237
|
},
|
|
217
238
|
};
|
|
239
|
+
exports.compoundV3L2Encode = {
|
|
240
|
+
leverageManagement(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA = false) {
|
|
241
|
+
return subDataService.compoundV3L2LeverageManagementSubData.encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA);
|
|
242
|
+
},
|
|
243
|
+
};
|
|
218
244
|
exports.morphoAaveV2Encode = {
|
|
219
245
|
leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
220
246
|
return subDataService.morphoAaveV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
|
|
@@ -228,15 +254,24 @@ exports.exchangeEncode = {
|
|
|
228
254
|
const strategyId = constants_1.STRATEGY_IDS[network].EXCHANGE_DCA;
|
|
229
255
|
return [strategyId, false, triggerData, subData];
|
|
230
256
|
},
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
const subData = subDataService.exchangeLimitOrderSubDataWithoutSubProxy.encode(fromToken, toToken, amount);
|
|
234
|
-
const triggerData = triggerService.exchangeOffchainPriceTrigger.encode(targetPrice, Number(goodUntil), orderType, fromTokenDecimals, toTokenDecimals);
|
|
235
|
-
const strategyId = constants_1.STRATEGY_IDS[network].EXCHANGE_LIMIT_ORDER;
|
|
236
|
-
return [strategyId, false, triggerData, subData];
|
|
257
|
+
limitOrder(fromToken, toToken, amount, targetPrice, goodUntil, orderType) {
|
|
258
|
+
return subDataService.exchangeLimitOrderSubData.encode(fromToken, toToken, amount, targetPrice, goodUntil, orderType);
|
|
237
259
|
},
|
|
238
260
|
};
|
|
239
261
|
exports.sparkEncode = {
|
|
262
|
+
leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
263
|
+
let subInput = '0x';
|
|
264
|
+
subInput = subInput.concat(new decimal_js_1.default(triggerRepayRatio).mul(1e16).toHex().slice(2)
|
|
265
|
+
.padStart(32, '0'));
|
|
266
|
+
subInput = subInput.concat(new decimal_js_1.default(triggerBoostRatio).mul(1e16).toHex().slice(2)
|
|
267
|
+
.padStart(32, '0'));
|
|
268
|
+
subInput = subInput.concat(new decimal_js_1.default(targetBoostRatio).mul(1e16).toHex().slice(2)
|
|
269
|
+
.padStart(32, '0'));
|
|
270
|
+
subInput = subInput.concat(new decimal_js_1.default(targetRepayRatio).mul(1e16).toHex().slice(2)
|
|
271
|
+
.padStart(32, '0'));
|
|
272
|
+
subInput = subInput.concat(boostEnabled ? '01' : '00');
|
|
273
|
+
return subInput;
|
|
274
|
+
},
|
|
240
275
|
leverageManagementOnPrice(strategyOrBundleId, isBundle = true, triggerData, subData) {
|
|
241
276
|
const { collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio, } = subData;
|
|
242
277
|
const subDataEncoded = subDataService.sparkLeverageManagementOnPriceSubData.encode(collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio);
|