@defisaver/automation-sdk 3.3.15-liq-prot-2-dev → 3.3.15-liq-prot-3-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/index.d.ts +1 -2
- package/cjs/index.js +0 -1
- package/cjs/services/strategiesService.js +10 -10
- package/cjs/services/strategySubService.d.ts +9 -15
- package/cjs/services/strategySubService.js +20 -30
- package/cjs/services/strategySubService.test.js +2 -40
- package/cjs/services/subDataService.d.ts +18 -23
- package/cjs/services/subDataService.js +23 -225
- package/cjs/services/subDataService.test.js +17 -134
- package/cjs/services/utils.d.ts +0 -1
- package/cjs/services/utils.js +1 -21
- package/cjs/services/utils.test.js +0 -25
- package/esm/index.d.ts +1 -2
- package/esm/index.js +1 -2
- package/esm/services/strategiesService.js +10 -10
- package/esm/services/strategySubService.d.ts +9 -15
- package/esm/services/strategySubService.js +19 -29
- package/esm/services/strategySubService.test.js +3 -38
- package/esm/services/subDataService.d.ts +18 -23
- package/esm/services/subDataService.js +22 -224
- package/esm/services/subDataService.test.js +18 -132
- package/esm/services/utils.d.ts +0 -1
- package/esm/services/utils.js +0 -19
- package/esm/services/utils.test.js +2 -27
- package/package.json +1 -1
- package/src/index.ts +0 -2
- package/src/services/strategiesService.ts +10 -10
- package/src/services/strategySubService.test.ts +2 -46
- package/src/services/strategySubService.ts +19 -36
- package/src/services/subDataService.test.ts +18 -142
- package/src/services/subDataService.ts +23 -294
- package/src/services/utils.test.ts +0 -31
- package/src/services/utils.ts +0 -17
package/cjs/index.d.ts
CHANGED
|
@@ -13,12 +13,11 @@ import * as strategiesService from './services/strategiesService';
|
|
|
13
13
|
import * as constants from './constants';
|
|
14
14
|
import * as enums from './types/enums';
|
|
15
15
|
import type * as types from './types';
|
|
16
|
-
import { getRatioStateInfoForAaveCloseStrategy, compareSubHashes, encodeSubId, getCloseStrategyType
|
|
16
|
+
import { getRatioStateInfoForAaveCloseStrategy, compareSubHashes, encodeSubId, getCloseStrategyType } from './services/utils';
|
|
17
17
|
declare const utils: {
|
|
18
18
|
compareSubHashes: typeof compareSubHashes;
|
|
19
19
|
encodeSubId: typeof encodeSubId;
|
|
20
20
|
getCloseStrategyType: typeof getCloseStrategyType;
|
|
21
|
-
getCompoundV3LeverageManagementBundleId: typeof getCompoundV3LeverageManagementBundleId;
|
|
22
21
|
getRatioStateInfoForAaveCloseStrategy: typeof getRatioStateInfoForAaveCloseStrategy;
|
|
23
22
|
};
|
|
24
23
|
export { ArbitrumStrategies, BaseStrategies, EthereumStrategies, LegacyAaveAutomation, LegacyCompoundAutomation, LegacyMakerAutomation, OptimismStrategies, constants, enums, strategiesService, strategySubService, subDataService, triggerService, utils, };
|
package/cjs/index.js
CHANGED
|
@@ -63,7 +63,6 @@ const utils = {
|
|
|
63
63
|
compareSubHashes: utils_1.compareSubHashes,
|
|
64
64
|
encodeSubId: utils_1.encodeSubId,
|
|
65
65
|
getCloseStrategyType: utils_1.getCloseStrategyType,
|
|
66
|
-
getCompoundV3LeverageManagementBundleId: utils_1.getCompoundV3LeverageManagementBundleId,
|
|
67
66
|
getRatioStateInfoForAaveCloseStrategy: utils_1.getRatioStateInfoForAaveCloseStrategy,
|
|
68
67
|
};
|
|
69
68
|
exports.utils = utils;
|
|
@@ -95,7 +95,7 @@ function parseMakerLeverageManagement(position, parseData) {
|
|
|
95
95
|
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
96
96
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
97
97
|
const triggerData = triggerService.makerRatioTrigger.decode(subStruct.triggerData);
|
|
98
|
-
const subData = subDataService.
|
|
98
|
+
const subData = subDataService.legacyMakerLeverageManagementSubData.decode(subStruct.subData);
|
|
99
99
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
100
100
|
_position.strategyData.decoded.subData = subData;
|
|
101
101
|
_position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, subData.vaultId);
|
|
@@ -178,7 +178,7 @@ function parseAaveV2LeverageManagement(position, parseData) {
|
|
|
178
178
|
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
179
179
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
180
180
|
const triggerData = triggerService.aaveV2RatioTrigger.decode(subStruct.triggerData);
|
|
181
|
-
const subData = subDataService.
|
|
181
|
+
const subData = subDataService.legacyAaveV2LeverageManagementSubData.decode(subStruct.subData);
|
|
182
182
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
183
183
|
_position.strategyData.decoded.subData = subData;
|
|
184
184
|
_position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, _position.owner, triggerData.market);
|
|
@@ -214,10 +214,10 @@ function parseAaveV3LeverageManagement(position, parseData) {
|
|
|
214
214
|
const isEOA = _position.strategy.strategyId.includes('eoa');
|
|
215
215
|
let subData;
|
|
216
216
|
if (isEOA) {
|
|
217
|
-
subData = subDataService.
|
|
217
|
+
subData = subDataService.aaveV3LeverageManagementSubData.decode(subStruct.subData);
|
|
218
218
|
}
|
|
219
219
|
else {
|
|
220
|
-
subData = subDataService.
|
|
220
|
+
subData = subDataService.legacyAaveV3LeverageManagementSubData.decode(subStruct.subData);
|
|
221
221
|
}
|
|
222
222
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
223
223
|
_position.strategyData.decoded.subData = subData;
|
|
@@ -539,7 +539,7 @@ function parseCompoundV2LeverageManagement(position, parseData) {
|
|
|
539
539
|
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
540
540
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
541
541
|
const triggerData = triggerService.compoundV2RatioTrigger.decode(subStruct.triggerData);
|
|
542
|
-
const subData = subDataService.
|
|
542
|
+
const subData = subDataService.legacyCompoundV2LeverageManagementSubData.decode(subStruct.subData);
|
|
543
543
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
544
544
|
_position.strategyData.decoded.subData = subData;
|
|
545
545
|
_position.owner = triggerData.owner.toLowerCase();
|
|
@@ -573,7 +573,7 @@ function parseCompoundV3LeverageManagement(position, parseData) {
|
|
|
573
573
|
const _position = (0, lodash_1.cloneDeep)(position);
|
|
574
574
|
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
575
575
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
576
|
-
const subDataDecoder = subDataService.
|
|
576
|
+
const subDataDecoder = subDataService.compoundV3LeverageManagementSubData;
|
|
577
577
|
const triggerData = triggerService.compoundV3RatioTrigger.decode(subStruct.triggerData);
|
|
578
578
|
const subData = subDataDecoder.decode(subStruct.subData);
|
|
579
579
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
@@ -608,7 +608,7 @@ function parseCompoundV3LiquidationProtection(position, parseData) {
|
|
|
608
608
|
const _position = (0, lodash_1.cloneDeep)(position);
|
|
609
609
|
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
610
610
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
611
|
-
const subDataDecoder = subDataService.
|
|
611
|
+
const subDataDecoder = subDataService.compoundV3LiquidationProtectionSubData;
|
|
612
612
|
const triggerData = triggerService.compoundV3RatioTrigger.decode(subStruct.triggerData);
|
|
613
613
|
const subData = subDataDecoder.decode(subStruct.subData);
|
|
614
614
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
@@ -698,7 +698,7 @@ function parseExchangeDca(position, parseData, chainId) {
|
|
|
698
698
|
function parseExchangeLimitOrder(position, parseData, chainId) {
|
|
699
699
|
const _position = (0, lodash_1.cloneDeep)(position);
|
|
700
700
|
const { subStruct } = parseData.subscriptionEventData;
|
|
701
|
-
_position.strategyData.decoded.subData = subDataService.
|
|
701
|
+
_position.strategyData.decoded.subData = subDataService.legacyExchangeLimitOrderSubData.decode(subStruct.subData, chainId);
|
|
702
702
|
const fromTokenDecimals = (0, tokens_1.getAssetInfoByAddress)(_position.strategyData.decoded.subData.fromToken, chainId).decimals;
|
|
703
703
|
const toTokenDecimals = (0, tokens_1.getAssetInfoByAddress)(_position.strategyData.decoded.subData.toToken, chainId).decimals;
|
|
704
704
|
_position.strategyData.decoded.triggerData = triggerService.exchangeOffchainPriceTrigger.decode(subStruct.triggerData, fromTokenDecimals, toTokenDecimals);
|
|
@@ -710,7 +710,7 @@ function parseLiquityLeverageManagement(position, parseData) {
|
|
|
710
710
|
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
711
711
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
712
712
|
const triggerData = triggerService.liquityRatioTrigger.decode(subStruct.triggerData);
|
|
713
|
-
const subData = subDataService.
|
|
713
|
+
const subData = subDataService.legacyLiquityLeverageManagementSubData.decode(subStruct.subData);
|
|
714
714
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
715
715
|
_position.strategyData.decoded.subData = subData;
|
|
716
716
|
_position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, _position.owner);
|
|
@@ -776,7 +776,7 @@ function parseSparkLeverageManagement(position, parseData) {
|
|
|
776
776
|
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
777
777
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
778
778
|
const triggerData = triggerService.sparkRatioTrigger.decode(subStruct.triggerData);
|
|
779
|
-
const subData = subDataService.
|
|
779
|
+
const subData = subDataService.legacySparkLeverageManagementSubData.decode(subStruct.subData);
|
|
780
780
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
781
781
|
_position.strategyData.decoded.subData = subData;
|
|
782
782
|
_position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, _position.owner, triggerData.market);
|
|
@@ -5,23 +5,20 @@ 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
9
|
liquidationProtection(vaultId: number, triggerRatio: number, targetRatio: number, ratioState: RatioState, daiAddr?: EthereumAddress): (boolean | string[] | Bundles.MainnetIds)[];
|
|
10
10
|
};
|
|
11
11
|
export declare const liquityEncode: {
|
|
12
12
|
closeOnPrice(priceOverOrUnder: RatioState, price: string, closeToAssetAddr: EthereumAddress, chainlinkCollAddress: EthereumAddress, chainId?: ChainId, collAddr?: EthereumAddress, debtAddr?: EthereumAddress): (boolean | string[] | Strategies.MainnetIds)[];
|
|
13
13
|
trailingStop(triggerPercentage: number, closeToAssetAddr: EthereumAddress, chainlinkCollAddress: EthereumAddress, roundId: number, chainId?: ChainId, collAddr?: EthereumAddress, debtAddr?: EthereumAddress): (boolean | string[] | Strategies.MainnetIds)[];
|
|
14
14
|
paybackFromChickenBondStrategySub(proxyAddress: EthereumAddress, ratio: number, sourceId: string, sourceType: number, ratioState?: RatioState): (boolean | string[] | Bundles.MainnetIds)[];
|
|
15
|
-
|
|
15
|
+
leverageManagement(strategyOrBundleId: number, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
|
|
16
16
|
dsrPayback(proxyAddress: EthereumAddress, triggerRatio: number, targetRatio: number): (boolean | string[] | Strategies.MainnetIds)[];
|
|
17
17
|
dsrSupply(proxyAddress: EthereumAddress, triggerRatio: number, targetRatio: number): (boolean | string[] | Strategies.MainnetIds)[];
|
|
18
18
|
debtInFrontRepay(proxyAddress: EthereumAddress, debtInFrontMin: string, targetRatioIncrease: number): (boolean | string[] | Strategies.MainnetIds)[];
|
|
19
19
|
};
|
|
20
|
-
export declare const chickenBondsEncode: {
|
|
21
|
-
rebond(bondId: number): string[];
|
|
22
|
-
};
|
|
23
20
|
export declare const aaveV2Encode: {
|
|
24
|
-
|
|
21
|
+
leverageManagement(strategyOrBundleId: number, market: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
|
|
25
22
|
};
|
|
26
23
|
export declare const aaveV3Encode: {
|
|
27
24
|
closeToAsset(strategyOrBundleId: number, isBundle: boolean | undefined, triggerData: {
|
|
@@ -60,27 +57,24 @@ export declare const aaveV3Encode: {
|
|
|
60
57
|
marketAddr: EthereumAddress;
|
|
61
58
|
targetRatio: number;
|
|
62
59
|
}): (number | boolean | string[])[];
|
|
63
|
-
|
|
60
|
+
leverageManagement(strategyOrBundleId: number, market: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number, isGeneric?: boolean): (number | boolean | string[])[];
|
|
64
61
|
liquidationProtection(strategyOrBundleId: number, market: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
|
|
65
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[])[];
|
|
66
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[])[];
|
|
67
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[])[];
|
|
68
65
|
};
|
|
69
66
|
export declare const compoundV2Encode: {
|
|
70
|
-
|
|
67
|
+
leverageManagement(strategyOrBundleId: number, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
|
|
71
68
|
};
|
|
72
69
|
export declare const compoundV3Encode: {
|
|
73
|
-
|
|
74
|
-
|
|
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[])[];
|
|
75
72
|
leverageManagementOnPrice(strategyOrBundleId: number, market: EthereumAddress, collToken: EthereumAddress, baseToken: EthereumAddress, targetRatio: number, price: number, priceState: RatioState, ratioState: RatioState, user: EthereumAddress): (number | boolean | string[])[];
|
|
76
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[])[];
|
|
77
74
|
};
|
|
78
|
-
export declare const morphoAaveV2Encode: {
|
|
79
|
-
leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
|
|
80
|
-
};
|
|
81
75
|
export declare const exchangeEncode: {
|
|
82
76
|
dca(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string, timestamp: number, interval: number, network: ChainId): (boolean | string[] | Strategies.MainnetIds | Strategies.OptimismIds | Strategies.ArbitrumIds | Strategies.BaseIds)[];
|
|
83
|
-
|
|
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)[];
|
|
84
78
|
};
|
|
85
79
|
export declare const sparkEncode: {
|
|
86
80
|
leverageManagementOnPrice(strategyOrBundleId: number, isBundle: boolean | undefined, triggerData: {
|
|
@@ -97,7 +91,7 @@ export declare const sparkEncode: {
|
|
|
97
91
|
targetRatio: number;
|
|
98
92
|
}): (number | boolean | string[])[];
|
|
99
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[])[];
|
|
100
|
-
|
|
94
|
+
leverageManagement(strategyOrBundleId: number, market: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
|
|
101
95
|
liquidationProtection(strategyOrBundleId: number, market: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
|
|
102
96
|
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[])[];
|
|
103
97
|
};
|
|
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.aaveV4Encode = exports.fluidEncode = exports.liquityV2Encode = exports.morphoBlueEncode = exports.crvUSDEncode = exports.sparkEncode = exports.exchangeEncode = exports.
|
|
26
|
+
exports.aaveV4Encode = exports.fluidEncode = exports.liquityV2Encode = exports.morphoBlueEncode = exports.crvUSDEncode = exports.sparkEncode = exports.exchangeEncode = exports.compoundV3Encode = exports.compoundV2Encode = exports.aaveV3Encode = exports.aaveV2Encode = exports.liquityEncode = exports.makerEncode = void 0;
|
|
27
27
|
const tokens_1 = require("@defisaver/tokens");
|
|
28
28
|
const constants_1 = require("../constants");
|
|
29
29
|
const enums_1 = require("../types/enums");
|
|
@@ -56,10 +56,10 @@ exports.makerEncode = {
|
|
|
56
56
|
const isBundle = false;
|
|
57
57
|
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
58
58
|
},
|
|
59
|
-
|
|
59
|
+
leverageManagement(vaultId, triggerRatio, targetRatio, ratioState, isBoost, daiAddr) {
|
|
60
60
|
const bundleId = isBoost ? enums_1.Bundles.MainnetIds.MAKER_BOOST : enums_1.Bundles.MainnetIds.MAKER_REPAY;
|
|
61
61
|
const triggerData = triggerService.makerRatioTrigger.encode(vaultId, triggerRatio, ratioState);
|
|
62
|
-
const subData = subDataService.
|
|
62
|
+
const subData = subDataService.makerLeverageManagementSubData.encode(vaultId, targetRatio, daiAddr);
|
|
63
63
|
return [
|
|
64
64
|
bundleId,
|
|
65
65
|
true,
|
|
@@ -104,9 +104,9 @@ exports.liquityEncode = {
|
|
|
104
104
|
const isBundle = true;
|
|
105
105
|
return [strategyId, isBundle, triggerData, subData];
|
|
106
106
|
},
|
|
107
|
-
|
|
107
|
+
leverageManagement(strategyOrBundleId, user, ratioState, targetRatio, triggerRatio) {
|
|
108
108
|
const isBundle = true;
|
|
109
|
-
const subData = subDataService.
|
|
109
|
+
const subData = subDataService.liquityLeverageManagementSubData.encode(targetRatio, ratioState);
|
|
110
110
|
const triggerData = triggerService.liquityRatioTrigger.encode(user, triggerRatio, ratioState);
|
|
111
111
|
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
112
112
|
},
|
|
@@ -135,15 +135,10 @@ exports.liquityEncode = {
|
|
|
135
135
|
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
136
136
|
},
|
|
137
137
|
};
|
|
138
|
-
exports.chickenBondsEncode = {
|
|
139
|
-
rebond(bondId) {
|
|
140
|
-
return subDataService.cBondsRebondSubData.encode(bondId);
|
|
141
|
-
},
|
|
142
|
-
};
|
|
143
138
|
exports.aaveV2Encode = {
|
|
144
|
-
|
|
139
|
+
leverageManagement(strategyOrBundleId, market, user, ratioState, targetRatio, triggerRatio) {
|
|
145
140
|
const isBundle = true;
|
|
146
|
-
const subData = subDataService.
|
|
141
|
+
const subData = subDataService.aaveV2LeverageManagementSubData.encode(market, targetRatio, ratioState);
|
|
147
142
|
const triggerData = triggerService.aaveV2RatioTrigger.encode(user, market, triggerRatio, ratioState);
|
|
148
143
|
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
149
144
|
},
|
|
@@ -170,15 +165,15 @@ exports.aaveV3Encode = {
|
|
|
170
165
|
const triggerDataEncoded = triggerService.aaveV3QuotePriceTrigger.encode(baseTokenAddress, quoteTokenAddress, price, state);
|
|
171
166
|
return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
|
|
172
167
|
},
|
|
173
|
-
|
|
168
|
+
leverageManagement(strategyOrBundleId, market, user, ratioState, targetRatio, triggerRatio, isGeneric = false) {
|
|
174
169
|
const isBundle = true;
|
|
175
|
-
const subData = subDataService.
|
|
170
|
+
const subData = subDataService.aaveV3LeverageManagementSubData.encode(targetRatio, ratioState, market, user, isGeneric);
|
|
176
171
|
const triggerData = triggerService.aaveV3RatioTrigger.encode(user, market, triggerRatio, ratioState);
|
|
177
172
|
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
178
173
|
},
|
|
179
174
|
liquidationProtection(strategyOrBundleId, market, user, ratioState, targetRatio, triggerRatio) {
|
|
180
175
|
const isBundle = true;
|
|
181
|
-
const subData = subDataService.aaveV3LiquidationProtectionSubData.encode(targetRatio, ratioState, market, user);
|
|
176
|
+
const subData = subDataService.aaveV3LiquidationProtectionSubData.encode(targetRatio, ratioState, market, user, true);
|
|
182
177
|
const triggerData = triggerService.aaveV3RatioTrigger.encode(user, market, triggerRatio, ratioState);
|
|
183
178
|
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
184
179
|
},
|
|
@@ -203,23 +198,23 @@ exports.aaveV3Encode = {
|
|
|
203
198
|
},
|
|
204
199
|
};
|
|
205
200
|
exports.compoundV2Encode = {
|
|
206
|
-
|
|
201
|
+
leverageManagement(strategyOrBundleId, user, ratioState, targetRatio, triggerRatio) {
|
|
207
202
|
const isBundle = true;
|
|
208
|
-
const subData = subDataService.
|
|
203
|
+
const subData = subDataService.compoundV2LeverageManagementSubData.encode(targetRatio, ratioState);
|
|
209
204
|
const triggerData = triggerService.compoundV2RatioTrigger.encode(user, triggerRatio, ratioState);
|
|
210
205
|
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
211
206
|
},
|
|
212
207
|
};
|
|
213
208
|
exports.compoundV3Encode = {
|
|
214
|
-
|
|
209
|
+
leverageManagement(strategyOrBundleId, market, baseToken, user, ratioState, targetRatio, triggerRatio) {
|
|
215
210
|
const isBundle = true;
|
|
216
|
-
const subData = subDataService.
|
|
211
|
+
const subData = subDataService.compoundV3LeverageManagementSubData.encode(market, baseToken, targetRatio, ratioState);
|
|
217
212
|
const triggerData = triggerService.compoundV3RatioTrigger.encode(user, market, triggerRatio, ratioState);
|
|
218
213
|
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
219
214
|
},
|
|
220
|
-
|
|
215
|
+
liquidationProtection(strategyOrBundleId, market, baseToken, user, ratioState, targetRatio, triggerRatio) {
|
|
221
216
|
const isBundle = true;
|
|
222
|
-
const subData = subDataService.
|
|
217
|
+
const subData = subDataService.compoundV3LiquidationProtectionSubData.encode(market, baseToken, targetRatio, ratioState);
|
|
223
218
|
const triggerData = triggerService.compoundV3RatioTrigger.encode(user, market, triggerRatio, ratioState);
|
|
224
219
|
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
225
220
|
},
|
|
@@ -238,11 +233,6 @@ exports.compoundV3Encode = {
|
|
|
238
233
|
return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
|
|
239
234
|
},
|
|
240
235
|
};
|
|
241
|
-
exports.morphoAaveV2Encode = {
|
|
242
|
-
leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
243
|
-
return subDataService.morphoAaveV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
|
|
244
|
-
},
|
|
245
|
-
};
|
|
246
236
|
exports.exchangeEncode = {
|
|
247
237
|
dca(fromToken, toToken, amount, timestamp, interval, network) {
|
|
248
238
|
(0, utils_1.requireAddresses)([fromToken, toToken]);
|
|
@@ -251,9 +241,9 @@ exports.exchangeEncode = {
|
|
|
251
241
|
const strategyId = constants_1.STRATEGY_IDS[network].EXCHANGE_DCA;
|
|
252
242
|
return [strategyId, false, triggerData, subData];
|
|
253
243
|
},
|
|
254
|
-
|
|
244
|
+
limitOrder(fromToken, toToken, amount, targetPrice, goodUntil, orderType, fromTokenDecimals, toTokenDecimals, network) {
|
|
255
245
|
(0, utils_1.requireAddresses)([fromToken, toToken]);
|
|
256
|
-
const subData = subDataService.
|
|
246
|
+
const subData = subDataService.exchangeLimitOrderSubData.encode(fromToken, toToken, amount);
|
|
257
247
|
const triggerData = triggerService.exchangeOffchainPriceTrigger.encode(targetPrice, Number(goodUntil), orderType, fromTokenDecimals, toTokenDecimals);
|
|
258
248
|
const strategyId = constants_1.STRATEGY_IDS[network].EXCHANGE_LIMIT_ORDER;
|
|
259
249
|
return [strategyId, false, triggerData, subData];
|
|
@@ -274,9 +264,9 @@ exports.sparkEncode = {
|
|
|
274
264
|
const triggerDataEncoded = triggerService.sparkQuotePriceRangeTrigger.encode(collAsset, debtAsset, stopLossPrice, takeProfitPrice);
|
|
275
265
|
return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
|
|
276
266
|
},
|
|
277
|
-
|
|
267
|
+
leverageManagement(strategyOrBundleId, market, user, ratioState, targetRatio, triggerRatio) {
|
|
278
268
|
const isBundle = true;
|
|
279
|
-
const subData = subDataService.
|
|
269
|
+
const subData = subDataService.sparkLeverageManagementSubData.encode(targetRatio, ratioState);
|
|
280
270
|
const triggerData = triggerService.sparkRatioTrigger.encode(user, market, triggerRatio, ratioState);
|
|
281
271
|
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
282
272
|
},
|
|
@@ -22,12 +22,8 @@ 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
|
-
};
|
|
28
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
26
|
const chai_1 = require("chai");
|
|
30
|
-
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
31
27
|
const sdk_1 = require("@defisaver/sdk");
|
|
32
28
|
const tokens_1 = require("@defisaver/tokens");
|
|
33
29
|
const web3Utils = __importStar(require("web3-utils"));
|
|
@@ -124,7 +120,7 @@ describe('Feature: strategySubService.ts', () => {
|
|
|
124
120
|
});
|
|
125
121
|
});
|
|
126
122
|
});
|
|
127
|
-
describe('
|
|
123
|
+
describe('leverageManagement()', () => {
|
|
128
124
|
const examples = [
|
|
129
125
|
// Repay scenario (isBoost=false, RatioState.UNDER)
|
|
130
126
|
[
|
|
@@ -167,7 +163,7 @@ describe('Feature: strategySubService.ts', () => {
|
|
|
167
163
|
];
|
|
168
164
|
examples.forEach(([expected, actual]) => {
|
|
169
165
|
it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
|
|
170
|
-
(0, chai_1.expect)(strategySubService_1.makerEncode.
|
|
166
|
+
(0, chai_1.expect)(strategySubService_1.makerEncode.leverageManagement(...actual)).to.eql(expected);
|
|
171
167
|
});
|
|
172
168
|
});
|
|
173
169
|
});
|
|
@@ -294,21 +290,6 @@ describe('Feature: strategySubService.ts', () => {
|
|
|
294
290
|
});
|
|
295
291
|
});
|
|
296
292
|
});
|
|
297
|
-
describe('When testing strategySubService.chickenBondsEncode', () => {
|
|
298
|
-
describe('rebond()', () => {
|
|
299
|
-
const examples = [
|
|
300
|
-
[
|
|
301
|
-
['0x00000000000000000000000000000000000000000000000000000000000005e3'],
|
|
302
|
-
[1507]
|
|
303
|
-
]
|
|
304
|
-
];
|
|
305
|
-
examples.forEach(([expected, actual]) => {
|
|
306
|
-
it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
|
|
307
|
-
(0, chai_1.expect)(strategySubService_1.chickenBondsEncode.rebond(...actual)).to.eql(expected);
|
|
308
|
-
});
|
|
309
|
-
});
|
|
310
|
-
});
|
|
311
|
-
});
|
|
312
293
|
describe('When testing strategySubService.aaveV3Encode', () => {
|
|
313
294
|
describe('closeToAsset()', () => {
|
|
314
295
|
const examples = [
|
|
@@ -998,25 +979,6 @@ describe('Feature: strategySubService.ts', () => {
|
|
|
998
979
|
});
|
|
999
980
|
});
|
|
1000
981
|
});
|
|
1001
|
-
describe('When testing strategySubService.morphoAaveV2Encode', () => {
|
|
1002
|
-
describe('leverageManagement()', () => {
|
|
1003
|
-
const examples = [
|
|
1004
|
-
[
|
|
1005
|
-
[new decimal_js_1.default(160).mul(1e16).toString(), new decimal_js_1.default(220).mul(1e16).toString(), new decimal_js_1.default(180).mul(1e16).toString(), new decimal_js_1.default(190).mul(1e16).toString(), true],
|
|
1006
|
-
[160, 220, 180, 190, true]
|
|
1007
|
-
],
|
|
1008
|
-
[
|
|
1009
|
-
[new decimal_js_1.default(160).mul(1e16).toString(), new decimal_js_1.default(200).mul(1e16).toString(), new decimal_js_1.default(180).mul(1e16).toString(), new decimal_js_1.default(190).mul(1e16).toString(), false],
|
|
1010
|
-
[160, 200, 180, 190, false]
|
|
1011
|
-
],
|
|
1012
|
-
];
|
|
1013
|
-
examples.forEach(([expected, actual]) => {
|
|
1014
|
-
it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
|
|
1015
|
-
(0, chai_1.expect)(strategySubService_1.morphoAaveV2Encode.leverageManagement(...actual)).to.eql(expected);
|
|
1016
|
-
});
|
|
1017
|
-
});
|
|
1018
|
-
});
|
|
1019
|
-
});
|
|
1020
982
|
describe('When testing strategySubService.exchangeEncode', () => {
|
|
1021
983
|
describe('dca()', () => {
|
|
1022
984
|
const examples = [
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { EthereumAddress } from '../types';
|
|
2
|
-
import type { CloseStrategyType
|
|
2
|
+
import type { CloseStrategyType } from '../types/enums';
|
|
3
3
|
import { ChainId, RatioState } from '../types/enums';
|
|
4
4
|
/**
|
|
5
5
|
_______ _______ .______ .______ _______ ______ ___ .___________. _______ _______
|
|
@@ -10,13 +10,11 @@ import { ChainId, RatioState } from '../types/enums';
|
|
|
10
10
|
|_______/ |_______|| _| | _| `._____||_______| \______/__/ \__\ |__| |_______||_______/
|
|
11
11
|
*/
|
|
12
12
|
export declare const morphoAaveV2LeverageManagementSubData: {
|
|
13
|
-
encode(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
|
|
14
13
|
decode(subData: string[]): {
|
|
15
14
|
targetRatio: number;
|
|
16
15
|
};
|
|
17
16
|
};
|
|
18
17
|
export declare const cBondsRebondSubData: {
|
|
19
|
-
encode(bondId: number | string): string[];
|
|
20
18
|
decode(subData: string[]): {
|
|
21
19
|
bondId: string;
|
|
22
20
|
};
|
|
@@ -57,13 +55,13 @@ export declare const makerCloseSubData: {
|
|
|
57
55
|
closeToAssetAddr: EthereumAddress;
|
|
58
56
|
};
|
|
59
57
|
};
|
|
60
|
-
export declare const
|
|
58
|
+
export declare const legacyMakerLeverageManagementSubData: {
|
|
61
59
|
decode: (subData: string[]) => {
|
|
62
60
|
vaultId: number;
|
|
63
61
|
targetRatio: number;
|
|
64
62
|
};
|
|
65
63
|
};
|
|
66
|
-
export declare const
|
|
64
|
+
export declare const makerLeverageManagementSubData: {
|
|
67
65
|
encode(vaultId: number, targetRatio: number, daiAddr?: EthereumAddress): string[];
|
|
68
66
|
decode(subData: string[]): {
|
|
69
67
|
vaultId: number;
|
|
@@ -92,12 +90,12 @@ export declare const liquityRepayFromSavingsSubData: {
|
|
|
92
90
|
targetRatio: number;
|
|
93
91
|
};
|
|
94
92
|
};
|
|
95
|
-
export declare const
|
|
93
|
+
export declare const legacyLiquityLeverageManagementSubData: {
|
|
96
94
|
decode: (subData: string[]) => {
|
|
97
95
|
targetRatio: number;
|
|
98
96
|
};
|
|
99
97
|
};
|
|
100
|
-
export declare const
|
|
98
|
+
export declare const liquityLeverageManagementSubData: {
|
|
101
99
|
encode(targetRatio: number, ratioState: RatioState): string[];
|
|
102
100
|
decode(subData: string[]): {
|
|
103
101
|
targetRatio: number;
|
|
@@ -186,13 +184,12 @@ export declare const liquityV2PaybackSubData: {
|
|
|
186
184
|
/ _____ \ / _____ \ \ / | |____ \ / / /_
|
|
187
185
|
/__/ \__\ /__/ \__\ \__/ |_______| \__/ |____|
|
|
188
186
|
*/
|
|
189
|
-
export declare const
|
|
190
|
-
encode(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
|
|
187
|
+
export declare const legacyAaveV2LeverageManagementSubData: {
|
|
191
188
|
decode(subData: string[]): {
|
|
192
189
|
targetRatio: number;
|
|
193
190
|
};
|
|
194
191
|
};
|
|
195
|
-
export declare const
|
|
192
|
+
export declare const aaveV2LeverageManagementSubData: {
|
|
196
193
|
encode(market: EthereumAddress, targetRatio: number, ratioState: RatioState): string[];
|
|
197
194
|
decode(subData: string[]): {
|
|
198
195
|
market: EthereumAddress;
|
|
@@ -208,12 +205,12 @@ export declare const aaveV2LeverageManagementSubDataWithoutSubProxy: {
|
|
|
208
205
|
/ _____ \ / _____ \ \ / | |____ \ / ___) |
|
|
209
206
|
/__/ \__\ /__/ \__\ \__/ |_______| \__/ |____/
|
|
210
207
|
*/
|
|
211
|
-
export declare const
|
|
208
|
+
export declare const legacyAaveV3LeverageManagementSubData: {
|
|
212
209
|
decode(subData: string[]): {
|
|
213
210
|
targetRatio: number;
|
|
214
211
|
};
|
|
215
212
|
};
|
|
216
|
-
export declare const
|
|
213
|
+
export declare const aaveV3LeverageManagementSubData: {
|
|
217
214
|
encode(targetRatio: number, ratioState: RatioState, market: EthereumAddress, user: EthereumAddress, isGeneric: boolean): string[];
|
|
218
215
|
decode(subData: string[]): {
|
|
219
216
|
targetRatio: number;
|
|
@@ -221,7 +218,7 @@ export declare const aaveV3LeverageManagementSubDataWithoutSubProxy: {
|
|
|
221
218
|
};
|
|
222
219
|
};
|
|
223
220
|
export declare const aaveV3LiquidationProtectionSubData: {
|
|
224
|
-
encode(targetRatio: number, ratioState: RatioState, market: EthereumAddress, user: EthereumAddress): string[];
|
|
221
|
+
encode(targetRatio: number, ratioState: RatioState, market: EthereumAddress, user: EthereumAddress, isGeneric: boolean): string[];
|
|
225
222
|
decode(subData: string[]): {
|
|
226
223
|
targetRatio: number;
|
|
227
224
|
ratioState: RatioState;
|
|
@@ -353,13 +350,12 @@ export declare const aaveV4CollateralSwitchSubData: {
|
|
|
353
350
|
| `----.| `--' | | | | | | | \ / / /_
|
|
354
351
|
\______| \______/ |__| |__| | _| \__/ |____|
|
|
355
352
|
*/
|
|
356
|
-
export declare const
|
|
357
|
-
encode(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
|
|
353
|
+
export declare const legacyCompoundV2LeverageManagementSubData: {
|
|
358
354
|
decode(subData: string[]): {
|
|
359
355
|
targetRatio: number;
|
|
360
356
|
};
|
|
361
357
|
};
|
|
362
|
-
export declare const
|
|
358
|
+
export declare const compoundV2LeverageManagementSubData: {
|
|
363
359
|
encode(targetRatio: number, ratioState: RatioState): string[];
|
|
364
360
|
decode(subData: string[]): {
|
|
365
361
|
targetRatio: number;
|
|
@@ -374,7 +370,7 @@ export declare const compoundV2LeverageManagementSubDataWithoutSubProxy: {
|
|
|
374
370
|
| `----.| `--' | | | | | | | \ / ___) |
|
|
375
371
|
\______| \______/ |__| |__| | _| \__/ |____/
|
|
376
372
|
*/
|
|
377
|
-
export declare const
|
|
373
|
+
export declare const compoundV3LeverageManagementSubData: {
|
|
378
374
|
encode(market: EthereumAddress, baseToken: EthereumAddress, targetRatio: number, ratioState: RatioState): string[];
|
|
379
375
|
decode(subData: string[]): {
|
|
380
376
|
market: EthereumAddress;
|
|
@@ -383,7 +379,7 @@ export declare const compoundV3LeverageManagementSubDataWithoutSubProxy: {
|
|
|
383
379
|
ratioState: RatioState;
|
|
384
380
|
};
|
|
385
381
|
};
|
|
386
|
-
export declare const
|
|
382
|
+
export declare const compoundV3LiquidationProtectionSubData: {
|
|
387
383
|
encode(market: EthereumAddress, baseToken: EthereumAddress, targetRatio: number, ratioState: RatioState): string[];
|
|
388
384
|
decode(subData: string[]): {
|
|
389
385
|
market: EthereumAddress;
|
|
@@ -430,15 +426,14 @@ export declare const exchangeDcaSubData: {
|
|
|
430
426
|
interval: string;
|
|
431
427
|
};
|
|
432
428
|
};
|
|
433
|
-
export declare const
|
|
434
|
-
encode(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string, targetPrice: string, goodUntil: string | number, orderType: OrderType): string[];
|
|
429
|
+
export declare const legacyExchangeLimitOrderSubData: {
|
|
435
430
|
decode: (subData: string[], chainId: ChainId) => {
|
|
436
431
|
fromToken: string;
|
|
437
432
|
toToken: string;
|
|
438
433
|
amount: string;
|
|
439
434
|
};
|
|
440
435
|
};
|
|
441
|
-
export declare const
|
|
436
|
+
export declare const exchangeLimitOrderSubData: {
|
|
442
437
|
encode(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string): string[];
|
|
443
438
|
decode: (subData: string[], chainId: ChainId) => {
|
|
444
439
|
fromToken: string;
|
|
@@ -454,12 +449,12 @@ export declare const exchangeLimitOrderSubDataWithoutSubProxy: {
|
|
|
454
449
|
.----) | | | / _____ \ | |\ \----.| . \
|
|
455
450
|
|_______/ | _| /__/ \__\ | _| `._____||__|\__\
|
|
456
451
|
*/
|
|
457
|
-
export declare const
|
|
452
|
+
export declare const legacySparkLeverageManagementSubData: {
|
|
458
453
|
decode(subData: string[]): {
|
|
459
454
|
targetRatio: number;
|
|
460
455
|
};
|
|
461
456
|
};
|
|
462
|
-
export declare const
|
|
457
|
+
export declare const sparkLeverageManagementSubData: {
|
|
463
458
|
encode(targetRatio: number, ratioState: RatioState): string[];
|
|
464
459
|
decode(subData: string[]): {
|
|
465
460
|
targetRatio: number;
|