@defisaver/automation-sdk 3.3.11-aave-v4-1-dev → 3.3.12-strategies-refactor-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/services/strategySubService.d.ts +5 -0
- package/cjs/services/strategySubService.js +31 -0
- package/cjs/services/subDataService.d.ts +38 -0
- package/cjs/services/subDataService.js +71 -1
- package/esm/services/strategySubService.d.ts +5 -0
- package/esm/services/strategySubService.js +31 -0
- package/esm/services/subDataService.d.ts +38 -0
- package/esm/services/subDataService.js +69 -0
- package/package.json +2 -2
- package/src/services/strategySubService.ts +78 -0
- package/src/services/subDataService.ts +87 -0
|
@@ -13,6 +13,7 @@ export declare const liquityEncode: {
|
|
|
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(triggerRepayRatio: string, triggerBoostRatio: string, targetBoostRatio: string, targetRepayRatio: string, boostEnabled: boolean): (string | boolean)[];
|
|
16
|
+
leverageManagementWithoutSubProxy(strategyOrBundleId: number, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
|
|
16
17
|
dsrPayback(proxyAddress: EthereumAddress, triggerRatio: number, targetRatio: number): (boolean | string[] | Strategies.MainnetIds)[];
|
|
17
18
|
dsrSupply(proxyAddress: EthereumAddress, triggerRatio: number, targetRatio: number): (boolean | string[] | Strategies.MainnetIds)[];
|
|
18
19
|
debtInFrontRepay(proxyAddress: EthereumAddress, debtInFrontMin: string, targetRatioIncrease: number): (boolean | string[] | Strategies.MainnetIds)[];
|
|
@@ -22,6 +23,7 @@ export declare const chickenBondsEncode: {
|
|
|
22
23
|
};
|
|
23
24
|
export declare const aaveV2Encode: {
|
|
24
25
|
leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
|
|
26
|
+
leverageManagementWithoutSubProxy(strategyOrBundleId: number, market: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
|
|
25
27
|
};
|
|
26
28
|
export declare const aaveV3Encode: {
|
|
27
29
|
leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string;
|
|
@@ -68,9 +70,11 @@ export declare const aaveV3Encode: {
|
|
|
68
70
|
};
|
|
69
71
|
export declare const compoundV2Encode: {
|
|
70
72
|
leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
|
|
73
|
+
leverageManagementWithoutSubProxy(strategyOrBundleId: number, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
|
|
71
74
|
};
|
|
72
75
|
export declare const compoundV3Encode: {
|
|
73
76
|
leverageManagement(market: EthereumAddress, baseToken: EthereumAddress, triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean, isEOA: boolean): string[];
|
|
77
|
+
leverageManagementWithoutSubProxy(strategyOrBundleId: number, market: EthereumAddress, baseToken: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
|
|
74
78
|
leverageManagementOnPrice(strategyOrBundleId: number, market: EthereumAddress, collToken: EthereumAddress, baseToken: EthereumAddress, targetRatio: number, price: number, priceState: RatioState, ratioState: RatioState, user: EthereumAddress): (number | boolean | string[])[];
|
|
75
79
|
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[])[];
|
|
76
80
|
};
|
|
@@ -83,6 +87,7 @@ export declare const morphoAaveV2Encode: {
|
|
|
83
87
|
export declare const exchangeEncode: {
|
|
84
88
|
dca(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string, timestamp: number, interval: number, network: ChainId): (boolean | string[] | Strategies.MainnetIds | Strategies.OptimismIds | Strategies.ArbitrumIds | Strategies.BaseIds)[];
|
|
85
89
|
limitOrder(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string, targetPrice: string, goodUntil: string | number, orderType: OrderType): string[];
|
|
90
|
+
limitOrderWithoutSubProxy(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)[];
|
|
86
91
|
};
|
|
87
92
|
export declare const sparkEncode: {
|
|
88
93
|
leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string;
|
|
@@ -116,6 +116,12 @@ exports.liquityEncode = {
|
|
|
116
116
|
boostEnabled,
|
|
117
117
|
];
|
|
118
118
|
},
|
|
119
|
+
leverageManagementWithoutSubProxy(strategyOrBundleId, user, ratioState, targetRatio, triggerRatio) {
|
|
120
|
+
const isBundle = true;
|
|
121
|
+
const subData = subDataService.liquityLeverageManagementSubDataWithoutSubProxy.encode(targetRatio, ratioState);
|
|
122
|
+
const triggerData = triggerService.liquityRatioTrigger.encode(user, triggerRatio, ratioState);
|
|
123
|
+
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
124
|
+
},
|
|
119
125
|
dsrPayback(proxyAddress, triggerRatio, targetRatio) {
|
|
120
126
|
(0, utils_1.requireAddress)(proxyAddress);
|
|
121
127
|
const subData = subDataService.liquityDsrPaybackSubData.encode(targetRatio);
|
|
@@ -150,6 +156,12 @@ exports.aaveV2Encode = {
|
|
|
150
156
|
leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
151
157
|
return subDataService.aaveV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
|
|
152
158
|
},
|
|
159
|
+
leverageManagementWithoutSubProxy(strategyOrBundleId, market, user, ratioState, targetRatio, triggerRatio) {
|
|
160
|
+
const isBundle = true;
|
|
161
|
+
const subData = subDataService.aaveV2LeverageManagementSubDataWithoutSubProxy.encode(targetRatio, ratioState);
|
|
162
|
+
const triggerData = triggerService.aaveV2RatioTrigger.encode(user, market, triggerRatio, ratioState);
|
|
163
|
+
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
164
|
+
},
|
|
153
165
|
};
|
|
154
166
|
exports.aaveV3Encode = {
|
|
155
167
|
leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
@@ -216,11 +228,23 @@ exports.compoundV2Encode = {
|
|
|
216
228
|
leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
217
229
|
return subDataService.compoundV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
|
|
218
230
|
},
|
|
231
|
+
leverageManagementWithoutSubProxy(strategyOrBundleId, user, ratioState, targetRatio, triggerRatio) {
|
|
232
|
+
const isBundle = true;
|
|
233
|
+
const subData = subDataService.compoundV2LeverageManagementSubDataWithoutSubProxy.encode(targetRatio, ratioState);
|
|
234
|
+
const triggerData = triggerService.compoundV2RatioTrigger.encode(user, triggerRatio, ratioState);
|
|
235
|
+
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
236
|
+
},
|
|
219
237
|
};
|
|
220
238
|
exports.compoundV3Encode = {
|
|
221
239
|
leverageManagement(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA) {
|
|
222
240
|
return subDataService.compoundV3LeverageManagementSubData.encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA);
|
|
223
241
|
},
|
|
242
|
+
leverageManagementWithoutSubProxy(strategyOrBundleId, market, baseToken, user, ratioState, targetRatio, triggerRatio) {
|
|
243
|
+
const isBundle = true;
|
|
244
|
+
const subData = subDataService.compoundV3LeverageManagementSubDataWithoutSubProxy.encode(market, baseToken, targetRatio, ratioState);
|
|
245
|
+
const triggerData = triggerService.compoundV3RatioTrigger.encode(user, market, triggerRatio, ratioState);
|
|
246
|
+
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
247
|
+
},
|
|
224
248
|
leverageManagementOnPrice(strategyOrBundleId, market, collToken, baseToken, targetRatio, price, priceState, ratioState, // REPAY for repay on price, BOOST for boost on price
|
|
225
249
|
user) {
|
|
226
250
|
const isBundle = true;
|
|
@@ -257,6 +281,13 @@ exports.exchangeEncode = {
|
|
|
257
281
|
limitOrder(fromToken, toToken, amount, targetPrice, goodUntil, orderType) {
|
|
258
282
|
return subDataService.exchangeLimitOrderSubData.encode(fromToken, toToken, amount, targetPrice, goodUntil, orderType);
|
|
259
283
|
},
|
|
284
|
+
limitOrderWithoutSubProxy(fromToken, toToken, amount, targetPrice, goodUntil, orderType, fromTokenDecimals, toTokenDecimals, network) {
|
|
285
|
+
(0, utils_1.requireAddresses)([fromToken, toToken]);
|
|
286
|
+
const subData = subDataService.exchangeLimitOrderSubDataWithoutSubProxy.encode(fromToken, toToken, amount);
|
|
287
|
+
const triggerData = triggerService.exchangeOffchainPriceTrigger.encode(targetPrice, Number(goodUntil), orderType, fromTokenDecimals, toTokenDecimals);
|
|
288
|
+
const strategyId = constants_1.STRATEGY_IDS[network].EXCHANGE_LIMIT_ORDER;
|
|
289
|
+
return [strategyId, false, triggerData, subData];
|
|
290
|
+
},
|
|
260
291
|
};
|
|
261
292
|
exports.sparkEncode = {
|
|
262
293
|
leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
@@ -89,6 +89,13 @@ export declare const liquityLeverageManagementSubData: {
|
|
|
89
89
|
targetRatio: number;
|
|
90
90
|
};
|
|
91
91
|
};
|
|
92
|
+
export declare const liquityLeverageManagementSubDataWithoutSubProxy: {
|
|
93
|
+
encode(targetRatio: number, ratioState: RatioState): string[];
|
|
94
|
+
decode(subData: string[]): {
|
|
95
|
+
targetRatio: number;
|
|
96
|
+
ratioState: RatioState;
|
|
97
|
+
};
|
|
98
|
+
};
|
|
92
99
|
export declare const liquityCloseSubData: {
|
|
93
100
|
encode(closeToAssetAddr: EthereumAddress, chainId?: ChainId, collAddr?: EthereumAddress, debtAddr?: EthereumAddress): string[];
|
|
94
101
|
decode(subData: string[]): {
|
|
@@ -177,6 +184,13 @@ export declare const aaveV2LeverageManagementSubData: {
|
|
|
177
184
|
targetRatio: number;
|
|
178
185
|
};
|
|
179
186
|
};
|
|
187
|
+
export declare const aaveV2LeverageManagementSubDataWithoutSubProxy: {
|
|
188
|
+
encode(targetRatio: number, ratioState: RatioState): string[];
|
|
189
|
+
decode(subData: string[]): {
|
|
190
|
+
targetRatio: number;
|
|
191
|
+
ratioState: RatioState;
|
|
192
|
+
};
|
|
193
|
+
};
|
|
180
194
|
/**
|
|
181
195
|
___ ___ ____ ____ _______ ____ ____ ____
|
|
182
196
|
/ \ / \ \ \ / / | ____| \ \ / / |___ \
|
|
@@ -320,6 +334,13 @@ export declare const compoundV2LeverageManagementSubData: {
|
|
|
320
334
|
targetRatio: number;
|
|
321
335
|
};
|
|
322
336
|
};
|
|
337
|
+
export declare const compoundV2LeverageManagementSubDataWithoutSubProxy: {
|
|
338
|
+
encode(targetRatio: number, ratioState: RatioState): string[];
|
|
339
|
+
decode(subData: string[]): {
|
|
340
|
+
targetRatio: number;
|
|
341
|
+
ratioState: RatioState;
|
|
342
|
+
};
|
|
343
|
+
};
|
|
323
344
|
/**
|
|
324
345
|
______ ______ .___ ___. .______ ____ ____ ____
|
|
325
346
|
/ | / __ \ | \/ | | _ \ \ \ / / |___ \
|
|
@@ -334,6 +355,15 @@ export declare const compoundV3LeverageManagementSubData: {
|
|
|
334
355
|
targetRatio: number;
|
|
335
356
|
};
|
|
336
357
|
};
|
|
358
|
+
export declare const compoundV3LeverageManagementSubDataWithoutSubProxy: {
|
|
359
|
+
encode(market: EthereumAddress, baseToken: EthereumAddress, targetRatio: number, ratioState: RatioState): string[];
|
|
360
|
+
decode(subData: string[]): {
|
|
361
|
+
market: EthereumAddress;
|
|
362
|
+
baseToken: EthereumAddress;
|
|
363
|
+
targetRatio: number;
|
|
364
|
+
ratioState: RatioState;
|
|
365
|
+
};
|
|
366
|
+
};
|
|
337
367
|
export declare const compoundV3L2LeverageManagementSubData: {
|
|
338
368
|
encode(market: EthereumAddress, baseToken: EthereumAddress, triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean, isEOA: boolean): string;
|
|
339
369
|
decode(subData: string[]): {
|
|
@@ -386,6 +416,14 @@ export declare const exchangeLimitOrderSubData: {
|
|
|
386
416
|
amount: string;
|
|
387
417
|
};
|
|
388
418
|
};
|
|
419
|
+
export declare const exchangeLimitOrderSubDataWithoutSubProxy: {
|
|
420
|
+
encode(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string): string[];
|
|
421
|
+
decode: (subData: string[], chainId: ChainId) => {
|
|
422
|
+
fromToken: string;
|
|
423
|
+
toToken: string;
|
|
424
|
+
amount: string;
|
|
425
|
+
};
|
|
426
|
+
};
|
|
389
427
|
/**
|
|
390
428
|
_______..______ ___ .______ __ ___
|
|
391
429
|
/ || _ \ / \ | _ \ | |/ /
|
|
@@ -3,7 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.morphoBlueCloseOnPriceSubData = exports.morphoBlueLeverageManagementOnPriceSubData = exports.morphoBlueLeverageManagementSubData = exports.crvUSDPaybackSubData = exports.crvUSDLeverageManagementSubData = exports.sparkLeverageManagementOnPriceSubData = exports.sparkCloseGenericSubData = exports.sparkLeverageManagementSubDataWithoutSubProxy = exports.sparkLeverageManagementSubData = exports.exchangeLimitOrderSubDataWithoutSubProxy = exports.exchangeLimitOrderSubData = exports.exchangeDcaSubData = exports.compoundV3CloseSubData = exports.compoundV3LeverageManagementOnPriceSubData = exports.compoundV3L2LeverageManagementSubData = exports.compoundV3LeverageManagementSubDataWithoutSubProxy = exports.compoundV3LeverageManagementSubData = exports.compoundV2LeverageManagementSubDataWithoutSubProxy = exports.compoundV2LeverageManagementSubData = exports.aaveV4CollateralSwitchSubData = exports.aaveV4CloseSubData = exports.aaveV4LeverageManagementOnPriceSubData = exports.aaveV4LeverageManagementSubData = exports.aaveV3LeverageManagementOnPriceSubData = exports.aaveV3QuotePriceSubData = exports.aaveV3CollateralSwitchSubData = exports.aaveV3CloseGenericSubData = exports.aaveV3LeverageManagementOnPriceGeneric = exports.aaveV3LeverageManagementSubDataWithoutSubProxy = exports.aaveV3LeverageManagementSubData = exports.aaveV2LeverageManagementSubDataWithoutSubProxy = exports.aaveV2LeverageManagementSubData = exports.liquityV2PaybackSubData = exports.liquityV2LeverageManagementOnPriceSubData = exports.liquityV2CloseSubData = exports.liquityV2LeverageManagementSubData = exports.liquityDebtInFrontRepaySubData = exports.liquityDsrSupplySubData = exports.liquityDsrPaybackSubData = exports.liquityCloseSubData = exports.liquityLeverageManagementSubDataWithoutSubProxy = exports.liquityLeverageManagementSubData = exports.liquityRepayFromSavingsSubData = exports.makerLeverageManagementWithoutSubProxy = exports.makerLeverageManagementSubData = exports.makerCloseSubData = exports.makerRepayFromSavingsSubData = exports.liquityPaybackUsingChickenBondSubData = exports.cBondsRebondSubData = exports.morphoAaveV2LeverageManagementSubData = void 0;
|
|
7
|
+
exports.fluidLeverageManagementSubData = void 0;
|
|
7
8
|
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
8
9
|
const web3_eth_abi_1 = __importDefault(require("web3-eth-abi"));
|
|
9
10
|
const web3_utils_1 = require("web3-utils");
|
|
@@ -167,6 +168,18 @@ exports.liquityLeverageManagementSubData = {
|
|
|
167
168
|
return { targetRatio };
|
|
168
169
|
},
|
|
169
170
|
};
|
|
171
|
+
exports.liquityLeverageManagementSubDataWithoutSubProxy = {
|
|
172
|
+
encode(targetRatio, ratioState) {
|
|
173
|
+
const encodedTargetRatio = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
|
|
174
|
+
const encodedRatioState = web3_eth_abi_1.default.encodeParameter('uint8', ratioState);
|
|
175
|
+
return [encodedTargetRatio, encodedRatioState];
|
|
176
|
+
},
|
|
177
|
+
decode(subData) {
|
|
178
|
+
const targetRatio = (0, utils_1.weiToRatioPercentage)(web3_eth_abi_1.default.decodeParameter('uint256', subData[0]));
|
|
179
|
+
const ratioState = web3_eth_abi_1.default.decodeParameter('uint8', subData[1]);
|
|
180
|
+
return { targetRatio, ratioState };
|
|
181
|
+
},
|
|
182
|
+
};
|
|
170
183
|
exports.liquityCloseSubData = {
|
|
171
184
|
encode(closeToAssetAddr, chainId = enums_1.ChainId.Ethereum, collAddr, debtAddr) {
|
|
172
185
|
const _collAddr = collAddr || (0, tokens_1.getAssetInfo)('WETH', chainId).address;
|
|
@@ -398,6 +411,18 @@ exports.aaveV2LeverageManagementSubData = {
|
|
|
398
411
|
return { targetRatio };
|
|
399
412
|
},
|
|
400
413
|
};
|
|
414
|
+
exports.aaveV2LeverageManagementSubDataWithoutSubProxy = {
|
|
415
|
+
encode(targetRatio, ratioState) {
|
|
416
|
+
const encodedTargetRatio = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
|
|
417
|
+
const encodedRatioState = web3_eth_abi_1.default.encodeParameter('uint8', ratioState);
|
|
418
|
+
return [encodedTargetRatio, encodedRatioState];
|
|
419
|
+
},
|
|
420
|
+
decode(subData) {
|
|
421
|
+
const targetRatio = (0, utils_1.weiToRatioPercentage)(web3_eth_abi_1.default.decodeParameter('uint256', subData[0]));
|
|
422
|
+
const ratioState = web3_eth_abi_1.default.decodeParameter('uint8', subData[1]);
|
|
423
|
+
return { targetRatio, ratioState };
|
|
424
|
+
},
|
|
425
|
+
};
|
|
401
426
|
/**
|
|
402
427
|
___ ___ ____ ____ _______ ____ ____ ____
|
|
403
428
|
/ \ / \ \ \ / / | ____| \ \ / / |___ \
|
|
@@ -752,6 +777,18 @@ exports.compoundV2LeverageManagementSubData = {
|
|
|
752
777
|
return { targetRatio };
|
|
753
778
|
},
|
|
754
779
|
};
|
|
780
|
+
exports.compoundV2LeverageManagementSubDataWithoutSubProxy = {
|
|
781
|
+
encode(targetRatio, ratioState) {
|
|
782
|
+
const encodedTargetRatio = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
|
|
783
|
+
const encodedRatioState = web3_eth_abi_1.default.encodeParameter('uint8', ratioState);
|
|
784
|
+
return [encodedTargetRatio, encodedRatioState];
|
|
785
|
+
},
|
|
786
|
+
decode(subData) {
|
|
787
|
+
const targetRatio = (0, utils_1.weiToRatioPercentage)(web3_eth_abi_1.default.decodeParameter('uint256', subData[0]));
|
|
788
|
+
const ratioState = web3_eth_abi_1.default.decodeParameter('uint8', subData[1]);
|
|
789
|
+
return { targetRatio, ratioState };
|
|
790
|
+
},
|
|
791
|
+
};
|
|
755
792
|
/**
|
|
756
793
|
______ ______ .___ ___. .______ ____ ____ ____
|
|
757
794
|
/ | / __ \ | \/ | | _ \ \ \ / / |___ \
|
|
@@ -779,6 +816,24 @@ exports.compoundV3LeverageManagementSubData = {
|
|
|
779
816
|
return { targetRatio };
|
|
780
817
|
},
|
|
781
818
|
};
|
|
819
|
+
exports.compoundV3LeverageManagementSubDataWithoutSubProxy = {
|
|
820
|
+
encode(market, baseToken, targetRatio, ratioState) {
|
|
821
|
+
const encodedMarket = web3_eth_abi_1.default.encodeParameter('address', market);
|
|
822
|
+
const encodedBaseToken = web3_eth_abi_1.default.encodeParameter('address', baseToken);
|
|
823
|
+
const encodedTargetRatio = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
|
|
824
|
+
const encodedRatioState = web3_eth_abi_1.default.encodeParameter('uint8', ratioState);
|
|
825
|
+
return [encodedMarket, encodedBaseToken, encodedTargetRatio, encodedRatioState];
|
|
826
|
+
},
|
|
827
|
+
decode(subData) {
|
|
828
|
+
const market = web3_eth_abi_1.default.decodeParameter('address', subData[0]);
|
|
829
|
+
const baseToken = web3_eth_abi_1.default.decodeParameter('address', subData[1]);
|
|
830
|
+
const targetRatio = (0, utils_1.weiToRatioPercentage)(web3_eth_abi_1.default.decodeParameter('uint256', subData[2]));
|
|
831
|
+
const ratioState = web3_eth_abi_1.default.decodeParameter('uint8', subData[3]);
|
|
832
|
+
return {
|
|
833
|
+
market, baseToken, targetRatio, ratioState,
|
|
834
|
+
};
|
|
835
|
+
},
|
|
836
|
+
};
|
|
782
837
|
exports.compoundV3L2LeverageManagementSubData = {
|
|
783
838
|
encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA) {
|
|
784
839
|
let subInput = '0x';
|
|
@@ -905,6 +960,21 @@ exports.exchangeLimitOrderSubData = {
|
|
|
905
960
|
return { fromToken, toToken, amount };
|
|
906
961
|
},
|
|
907
962
|
};
|
|
963
|
+
exports.exchangeLimitOrderSubDataWithoutSubProxy = {
|
|
964
|
+
encode(fromToken, toToken, amount) {
|
|
965
|
+
return [
|
|
966
|
+
web3_eth_abi_1.default.encodeParameter('address', fromToken),
|
|
967
|
+
web3_eth_abi_1.default.encodeParameter('address', toToken),
|
|
968
|
+
web3_eth_abi_1.default.encodeParameter('uint256', amount),
|
|
969
|
+
];
|
|
970
|
+
},
|
|
971
|
+
decode: (subData, chainId) => {
|
|
972
|
+
const fromToken = web3_eth_abi_1.default.decodeParameter('address', subData[0]).toString();
|
|
973
|
+
const toToken = web3_eth_abi_1.default.decodeParameter('address', subData[1]).toString();
|
|
974
|
+
const amount = (0, tokens_1.assetAmountInEth)(web3_eth_abi_1.default.decodeParameter('uint256', subData[2]).toString(), (0, tokens_1.getAssetInfoByAddress)(fromToken, chainId).symbol);
|
|
975
|
+
return { fromToken, toToken, amount };
|
|
976
|
+
},
|
|
977
|
+
};
|
|
908
978
|
/**
|
|
909
979
|
_______..______ ___ .______ __ ___
|
|
910
980
|
/ || _ \ / \ | _ \ | |/ /
|
|
@@ -13,6 +13,7 @@ export declare const liquityEncode: {
|
|
|
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(triggerRepayRatio: string, triggerBoostRatio: string, targetBoostRatio: string, targetRepayRatio: string, boostEnabled: boolean): (string | boolean)[];
|
|
16
|
+
leverageManagementWithoutSubProxy(strategyOrBundleId: number, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
|
|
16
17
|
dsrPayback(proxyAddress: EthereumAddress, triggerRatio: number, targetRatio: number): (boolean | string[] | Strategies.MainnetIds)[];
|
|
17
18
|
dsrSupply(proxyAddress: EthereumAddress, triggerRatio: number, targetRatio: number): (boolean | string[] | Strategies.MainnetIds)[];
|
|
18
19
|
debtInFrontRepay(proxyAddress: EthereumAddress, debtInFrontMin: string, targetRatioIncrease: number): (boolean | string[] | Strategies.MainnetIds)[];
|
|
@@ -22,6 +23,7 @@ export declare const chickenBondsEncode: {
|
|
|
22
23
|
};
|
|
23
24
|
export declare const aaveV2Encode: {
|
|
24
25
|
leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
|
|
26
|
+
leverageManagementWithoutSubProxy(strategyOrBundleId: number, market: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
|
|
25
27
|
};
|
|
26
28
|
export declare const aaveV3Encode: {
|
|
27
29
|
leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string;
|
|
@@ -68,9 +70,11 @@ export declare const aaveV3Encode: {
|
|
|
68
70
|
};
|
|
69
71
|
export declare const compoundV2Encode: {
|
|
70
72
|
leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
|
|
73
|
+
leverageManagementWithoutSubProxy(strategyOrBundleId: number, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
|
|
71
74
|
};
|
|
72
75
|
export declare const compoundV3Encode: {
|
|
73
76
|
leverageManagement(market: EthereumAddress, baseToken: EthereumAddress, triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean, isEOA: boolean): string[];
|
|
77
|
+
leverageManagementWithoutSubProxy(strategyOrBundleId: number, market: EthereumAddress, baseToken: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
|
|
74
78
|
leverageManagementOnPrice(strategyOrBundleId: number, market: EthereumAddress, collToken: EthereumAddress, baseToken: EthereumAddress, targetRatio: number, price: number, priceState: RatioState, ratioState: RatioState, user: EthereumAddress): (number | boolean | string[])[];
|
|
75
79
|
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[])[];
|
|
76
80
|
};
|
|
@@ -83,6 +87,7 @@ export declare const morphoAaveV2Encode: {
|
|
|
83
87
|
export declare const exchangeEncode: {
|
|
84
88
|
dca(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string, timestamp: number, interval: number, network: ChainId): (boolean | string[] | Strategies.MainnetIds | Strategies.OptimismIds | Strategies.ArbitrumIds | Strategies.BaseIds)[];
|
|
85
89
|
limitOrder(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string, targetPrice: string, goodUntil: string | number, orderType: OrderType): string[];
|
|
90
|
+
limitOrderWithoutSubProxy(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)[];
|
|
86
91
|
};
|
|
87
92
|
export declare const sparkEncode: {
|
|
88
93
|
leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string;
|
|
@@ -87,6 +87,12 @@ export const liquityEncode = {
|
|
|
87
87
|
boostEnabled,
|
|
88
88
|
];
|
|
89
89
|
},
|
|
90
|
+
leverageManagementWithoutSubProxy(strategyOrBundleId, user, ratioState, targetRatio, triggerRatio) {
|
|
91
|
+
const isBundle = true;
|
|
92
|
+
const subData = subDataService.liquityLeverageManagementSubDataWithoutSubProxy.encode(targetRatio, ratioState);
|
|
93
|
+
const triggerData = triggerService.liquityRatioTrigger.encode(user, triggerRatio, ratioState);
|
|
94
|
+
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
95
|
+
},
|
|
90
96
|
dsrPayback(proxyAddress, triggerRatio, targetRatio) {
|
|
91
97
|
requireAddress(proxyAddress);
|
|
92
98
|
const subData = subDataService.liquityDsrPaybackSubData.encode(targetRatio);
|
|
@@ -121,6 +127,12 @@ export const aaveV2Encode = {
|
|
|
121
127
|
leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
122
128
|
return subDataService.aaveV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
|
|
123
129
|
},
|
|
130
|
+
leverageManagementWithoutSubProxy(strategyOrBundleId, market, user, ratioState, targetRatio, triggerRatio) {
|
|
131
|
+
const isBundle = true;
|
|
132
|
+
const subData = subDataService.aaveV2LeverageManagementSubDataWithoutSubProxy.encode(targetRatio, ratioState);
|
|
133
|
+
const triggerData = triggerService.aaveV2RatioTrigger.encode(user, market, triggerRatio, ratioState);
|
|
134
|
+
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
135
|
+
},
|
|
124
136
|
};
|
|
125
137
|
export const aaveV3Encode = {
|
|
126
138
|
leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
@@ -187,11 +199,23 @@ export const compoundV2Encode = {
|
|
|
187
199
|
leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
188
200
|
return subDataService.compoundV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
|
|
189
201
|
},
|
|
202
|
+
leverageManagementWithoutSubProxy(strategyOrBundleId, user, ratioState, targetRatio, triggerRatio) {
|
|
203
|
+
const isBundle = true;
|
|
204
|
+
const subData = subDataService.compoundV2LeverageManagementSubDataWithoutSubProxy.encode(targetRatio, ratioState);
|
|
205
|
+
const triggerData = triggerService.compoundV2RatioTrigger.encode(user, triggerRatio, ratioState);
|
|
206
|
+
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
207
|
+
},
|
|
190
208
|
};
|
|
191
209
|
export const compoundV3Encode = {
|
|
192
210
|
leverageManagement(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA) {
|
|
193
211
|
return subDataService.compoundV3LeverageManagementSubData.encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA);
|
|
194
212
|
},
|
|
213
|
+
leverageManagementWithoutSubProxy(strategyOrBundleId, market, baseToken, user, ratioState, targetRatio, triggerRatio) {
|
|
214
|
+
const isBundle = true;
|
|
215
|
+
const subData = subDataService.compoundV3LeverageManagementSubDataWithoutSubProxy.encode(market, baseToken, targetRatio, ratioState);
|
|
216
|
+
const triggerData = triggerService.compoundV3RatioTrigger.encode(user, market, triggerRatio, ratioState);
|
|
217
|
+
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
218
|
+
},
|
|
195
219
|
leverageManagementOnPrice(strategyOrBundleId, market, collToken, baseToken, targetRatio, price, priceState, ratioState, // REPAY for repay on price, BOOST for boost on price
|
|
196
220
|
user) {
|
|
197
221
|
const isBundle = true;
|
|
@@ -228,6 +252,13 @@ export const exchangeEncode = {
|
|
|
228
252
|
limitOrder(fromToken, toToken, amount, targetPrice, goodUntil, orderType) {
|
|
229
253
|
return subDataService.exchangeLimitOrderSubData.encode(fromToken, toToken, amount, targetPrice, goodUntil, orderType);
|
|
230
254
|
},
|
|
255
|
+
limitOrderWithoutSubProxy(fromToken, toToken, amount, targetPrice, goodUntil, orderType, fromTokenDecimals, toTokenDecimals, network) {
|
|
256
|
+
requireAddresses([fromToken, toToken]);
|
|
257
|
+
const subData = subDataService.exchangeLimitOrderSubDataWithoutSubProxy.encode(fromToken, toToken, amount);
|
|
258
|
+
const triggerData = triggerService.exchangeOffchainPriceTrigger.encode(targetPrice, Number(goodUntil), orderType, fromTokenDecimals, toTokenDecimals);
|
|
259
|
+
const strategyId = STRATEGY_IDS[network].EXCHANGE_LIMIT_ORDER;
|
|
260
|
+
return [strategyId, false, triggerData, subData];
|
|
261
|
+
},
|
|
231
262
|
};
|
|
232
263
|
export const sparkEncode = {
|
|
233
264
|
leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
@@ -89,6 +89,13 @@ export declare const liquityLeverageManagementSubData: {
|
|
|
89
89
|
targetRatio: number;
|
|
90
90
|
};
|
|
91
91
|
};
|
|
92
|
+
export declare const liquityLeverageManagementSubDataWithoutSubProxy: {
|
|
93
|
+
encode(targetRatio: number, ratioState: RatioState): string[];
|
|
94
|
+
decode(subData: string[]): {
|
|
95
|
+
targetRatio: number;
|
|
96
|
+
ratioState: RatioState;
|
|
97
|
+
};
|
|
98
|
+
};
|
|
92
99
|
export declare const liquityCloseSubData: {
|
|
93
100
|
encode(closeToAssetAddr: EthereumAddress, chainId?: ChainId, collAddr?: EthereumAddress, debtAddr?: EthereumAddress): string[];
|
|
94
101
|
decode(subData: string[]): {
|
|
@@ -177,6 +184,13 @@ export declare const aaveV2LeverageManagementSubData: {
|
|
|
177
184
|
targetRatio: number;
|
|
178
185
|
};
|
|
179
186
|
};
|
|
187
|
+
export declare const aaveV2LeverageManagementSubDataWithoutSubProxy: {
|
|
188
|
+
encode(targetRatio: number, ratioState: RatioState): string[];
|
|
189
|
+
decode(subData: string[]): {
|
|
190
|
+
targetRatio: number;
|
|
191
|
+
ratioState: RatioState;
|
|
192
|
+
};
|
|
193
|
+
};
|
|
180
194
|
/**
|
|
181
195
|
___ ___ ____ ____ _______ ____ ____ ____
|
|
182
196
|
/ \ / \ \ \ / / | ____| \ \ / / |___ \
|
|
@@ -320,6 +334,13 @@ export declare const compoundV2LeverageManagementSubData: {
|
|
|
320
334
|
targetRatio: number;
|
|
321
335
|
};
|
|
322
336
|
};
|
|
337
|
+
export declare const compoundV2LeverageManagementSubDataWithoutSubProxy: {
|
|
338
|
+
encode(targetRatio: number, ratioState: RatioState): string[];
|
|
339
|
+
decode(subData: string[]): {
|
|
340
|
+
targetRatio: number;
|
|
341
|
+
ratioState: RatioState;
|
|
342
|
+
};
|
|
343
|
+
};
|
|
323
344
|
/**
|
|
324
345
|
______ ______ .___ ___. .______ ____ ____ ____
|
|
325
346
|
/ | / __ \ | \/ | | _ \ \ \ / / |___ \
|
|
@@ -334,6 +355,15 @@ export declare const compoundV3LeverageManagementSubData: {
|
|
|
334
355
|
targetRatio: number;
|
|
335
356
|
};
|
|
336
357
|
};
|
|
358
|
+
export declare const compoundV3LeverageManagementSubDataWithoutSubProxy: {
|
|
359
|
+
encode(market: EthereumAddress, baseToken: EthereumAddress, targetRatio: number, ratioState: RatioState): string[];
|
|
360
|
+
decode(subData: string[]): {
|
|
361
|
+
market: EthereumAddress;
|
|
362
|
+
baseToken: EthereumAddress;
|
|
363
|
+
targetRatio: number;
|
|
364
|
+
ratioState: RatioState;
|
|
365
|
+
};
|
|
366
|
+
};
|
|
337
367
|
export declare const compoundV3L2LeverageManagementSubData: {
|
|
338
368
|
encode(market: EthereumAddress, baseToken: EthereumAddress, triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean, isEOA: boolean): string;
|
|
339
369
|
decode(subData: string[]): {
|
|
@@ -386,6 +416,14 @@ export declare const exchangeLimitOrderSubData: {
|
|
|
386
416
|
amount: string;
|
|
387
417
|
};
|
|
388
418
|
};
|
|
419
|
+
export declare const exchangeLimitOrderSubDataWithoutSubProxy: {
|
|
420
|
+
encode(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string): string[];
|
|
421
|
+
decode: (subData: string[], chainId: ChainId) => {
|
|
422
|
+
fromToken: string;
|
|
423
|
+
toToken: string;
|
|
424
|
+
amount: string;
|
|
425
|
+
};
|
|
426
|
+
};
|
|
389
427
|
/**
|
|
390
428
|
_______..______ ___ .______ __ ___
|
|
391
429
|
/ || _ \ / \ | _ \ | |/ /
|
|
@@ -161,6 +161,18 @@ export const liquityLeverageManagementSubData = {
|
|
|
161
161
|
return { targetRatio };
|
|
162
162
|
},
|
|
163
163
|
};
|
|
164
|
+
export const liquityLeverageManagementSubDataWithoutSubProxy = {
|
|
165
|
+
encode(targetRatio, ratioState) {
|
|
166
|
+
const encodedTargetRatio = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
|
|
167
|
+
const encodedRatioState = AbiCoder.encodeParameter('uint8', ratioState);
|
|
168
|
+
return [encodedTargetRatio, encodedRatioState];
|
|
169
|
+
},
|
|
170
|
+
decode(subData) {
|
|
171
|
+
const targetRatio = weiToRatioPercentage(AbiCoder.decodeParameter('uint256', subData[0]));
|
|
172
|
+
const ratioState = AbiCoder.decodeParameter('uint8', subData[1]);
|
|
173
|
+
return { targetRatio, ratioState };
|
|
174
|
+
},
|
|
175
|
+
};
|
|
164
176
|
export const liquityCloseSubData = {
|
|
165
177
|
encode(closeToAssetAddr, chainId = ChainId.Ethereum, collAddr, debtAddr) {
|
|
166
178
|
const _collAddr = collAddr || getAssetInfo('WETH', chainId).address;
|
|
@@ -392,6 +404,18 @@ export const aaveV2LeverageManagementSubData = {
|
|
|
392
404
|
return { targetRatio };
|
|
393
405
|
},
|
|
394
406
|
};
|
|
407
|
+
export const aaveV2LeverageManagementSubDataWithoutSubProxy = {
|
|
408
|
+
encode(targetRatio, ratioState) {
|
|
409
|
+
const encodedTargetRatio = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
|
|
410
|
+
const encodedRatioState = AbiCoder.encodeParameter('uint8', ratioState);
|
|
411
|
+
return [encodedTargetRatio, encodedRatioState];
|
|
412
|
+
},
|
|
413
|
+
decode(subData) {
|
|
414
|
+
const targetRatio = weiToRatioPercentage(AbiCoder.decodeParameter('uint256', subData[0]));
|
|
415
|
+
const ratioState = AbiCoder.decodeParameter('uint8', subData[1]);
|
|
416
|
+
return { targetRatio, ratioState };
|
|
417
|
+
},
|
|
418
|
+
};
|
|
395
419
|
/**
|
|
396
420
|
___ ___ ____ ____ _______ ____ ____ ____
|
|
397
421
|
/ \ / \ \ \ / / | ____| \ \ / / |___ \
|
|
@@ -746,6 +770,18 @@ export const compoundV2LeverageManagementSubData = {
|
|
|
746
770
|
return { targetRatio };
|
|
747
771
|
},
|
|
748
772
|
};
|
|
773
|
+
export const compoundV2LeverageManagementSubDataWithoutSubProxy = {
|
|
774
|
+
encode(targetRatio, ratioState) {
|
|
775
|
+
const encodedTargetRatio = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
|
|
776
|
+
const encodedRatioState = AbiCoder.encodeParameter('uint8', ratioState);
|
|
777
|
+
return [encodedTargetRatio, encodedRatioState];
|
|
778
|
+
},
|
|
779
|
+
decode(subData) {
|
|
780
|
+
const targetRatio = weiToRatioPercentage(AbiCoder.decodeParameter('uint256', subData[0]));
|
|
781
|
+
const ratioState = AbiCoder.decodeParameter('uint8', subData[1]);
|
|
782
|
+
return { targetRatio, ratioState };
|
|
783
|
+
},
|
|
784
|
+
};
|
|
749
785
|
/**
|
|
750
786
|
______ ______ .___ ___. .______ ____ ____ ____
|
|
751
787
|
/ | / __ \ | \/ | | _ \ \ \ / / |___ \
|
|
@@ -773,6 +809,24 @@ export const compoundV3LeverageManagementSubData = {
|
|
|
773
809
|
return { targetRatio };
|
|
774
810
|
},
|
|
775
811
|
};
|
|
812
|
+
export const compoundV3LeverageManagementSubDataWithoutSubProxy = {
|
|
813
|
+
encode(market, baseToken, targetRatio, ratioState) {
|
|
814
|
+
const encodedMarket = AbiCoder.encodeParameter('address', market);
|
|
815
|
+
const encodedBaseToken = AbiCoder.encodeParameter('address', baseToken);
|
|
816
|
+
const encodedTargetRatio = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
|
|
817
|
+
const encodedRatioState = AbiCoder.encodeParameter('uint8', ratioState);
|
|
818
|
+
return [encodedMarket, encodedBaseToken, encodedTargetRatio, encodedRatioState];
|
|
819
|
+
},
|
|
820
|
+
decode(subData) {
|
|
821
|
+
const market = AbiCoder.decodeParameter('address', subData[0]);
|
|
822
|
+
const baseToken = AbiCoder.decodeParameter('address', subData[1]);
|
|
823
|
+
const targetRatio = weiToRatioPercentage(AbiCoder.decodeParameter('uint256', subData[2]));
|
|
824
|
+
const ratioState = AbiCoder.decodeParameter('uint8', subData[3]);
|
|
825
|
+
return {
|
|
826
|
+
market, baseToken, targetRatio, ratioState,
|
|
827
|
+
};
|
|
828
|
+
},
|
|
829
|
+
};
|
|
776
830
|
export const compoundV3L2LeverageManagementSubData = {
|
|
777
831
|
encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA) {
|
|
778
832
|
let subInput = '0x';
|
|
@@ -899,6 +953,21 @@ export const exchangeLimitOrderSubData = {
|
|
|
899
953
|
return { fromToken, toToken, amount };
|
|
900
954
|
},
|
|
901
955
|
};
|
|
956
|
+
export const exchangeLimitOrderSubDataWithoutSubProxy = {
|
|
957
|
+
encode(fromToken, toToken, amount) {
|
|
958
|
+
return [
|
|
959
|
+
AbiCoder.encodeParameter('address', fromToken),
|
|
960
|
+
AbiCoder.encodeParameter('address', toToken),
|
|
961
|
+
AbiCoder.encodeParameter('uint256', amount),
|
|
962
|
+
];
|
|
963
|
+
},
|
|
964
|
+
decode: (subData, chainId) => {
|
|
965
|
+
const fromToken = AbiCoder.decodeParameter('address', subData[0]).toString();
|
|
966
|
+
const toToken = AbiCoder.decodeParameter('address', subData[1]).toString();
|
|
967
|
+
const amount = assetAmountInEth(AbiCoder.decodeParameter('uint256', subData[2]).toString(), getAssetInfoByAddress(fromToken, chainId).symbol);
|
|
968
|
+
return { fromToken, toToken, amount };
|
|
969
|
+
},
|
|
970
|
+
};
|
|
902
971
|
/**
|
|
903
972
|
_______..______ ___ .______ __ ___
|
|
904
973
|
/ || _ \ / \ | _ \ | |/ /
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@defisaver/automation-sdk",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.12-strategies-refactor-dev",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./cjs/index.js",
|
|
6
6
|
"module": "./esm/index.js",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"repository": "https://github.com/defisaver/automation-sdk",
|
|
24
24
|
"license": "ISC",
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@defisaver/sdk": "1.3.
|
|
26
|
+
"@defisaver/sdk": "^1.3.22",
|
|
27
27
|
"@defisaver/tokens": "^1.6.19",
|
|
28
28
|
"@ethersproject/address": "^5.0.10",
|
|
29
29
|
"@ethersproject/solidity": "^5.0.9",
|
|
@@ -194,6 +194,20 @@ export const liquityEncode = {
|
|
|
194
194
|
boostEnabled,
|
|
195
195
|
];
|
|
196
196
|
},
|
|
197
|
+
leverageManagementWithoutSubProxy(
|
|
198
|
+
strategyOrBundleId: number,
|
|
199
|
+
user: EthereumAddress,
|
|
200
|
+
ratioState: RatioState,
|
|
201
|
+
targetRatio: number,
|
|
202
|
+
triggerRatio: number,
|
|
203
|
+
) {
|
|
204
|
+
const isBundle = true;
|
|
205
|
+
|
|
206
|
+
const subData = subDataService.liquityLeverageManagementSubDataWithoutSubProxy.encode(targetRatio, ratioState);
|
|
207
|
+
const triggerData = triggerService.liquityRatioTrigger.encode(user, triggerRatio, ratioState);
|
|
208
|
+
|
|
209
|
+
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
210
|
+
},
|
|
197
211
|
dsrPayback(
|
|
198
212
|
proxyAddress: EthereumAddress,
|
|
199
213
|
triggerRatio: number,
|
|
@@ -257,6 +271,21 @@ export const aaveV2Encode = {
|
|
|
257
271
|
) {
|
|
258
272
|
return subDataService.aaveV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
|
|
259
273
|
},
|
|
274
|
+
leverageManagementWithoutSubProxy(
|
|
275
|
+
strategyOrBundleId: number,
|
|
276
|
+
market: EthereumAddress,
|
|
277
|
+
user: EthereumAddress,
|
|
278
|
+
ratioState: RatioState,
|
|
279
|
+
targetRatio: number,
|
|
280
|
+
triggerRatio: number,
|
|
281
|
+
) {
|
|
282
|
+
const isBundle = true;
|
|
283
|
+
|
|
284
|
+
const subData = subDataService.aaveV2LeverageManagementSubDataWithoutSubProxy.encode(targetRatio, ratioState);
|
|
285
|
+
const triggerData = triggerService.aaveV2RatioTrigger.encode(user, market, triggerRatio, ratioState);
|
|
286
|
+
|
|
287
|
+
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
288
|
+
},
|
|
260
289
|
};
|
|
261
290
|
|
|
262
291
|
export const aaveV3Encode = {
|
|
@@ -450,6 +479,20 @@ export const compoundV2Encode = {
|
|
|
450
479
|
) {
|
|
451
480
|
return subDataService.compoundV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
|
|
452
481
|
},
|
|
482
|
+
leverageManagementWithoutSubProxy(
|
|
483
|
+
strategyOrBundleId: number,
|
|
484
|
+
user: EthereumAddress,
|
|
485
|
+
ratioState: RatioState,
|
|
486
|
+
targetRatio: number,
|
|
487
|
+
triggerRatio: number,
|
|
488
|
+
) {
|
|
489
|
+
const isBundle = true;
|
|
490
|
+
|
|
491
|
+
const subData = subDataService.compoundV2LeverageManagementSubDataWithoutSubProxy.encode(targetRatio, ratioState);
|
|
492
|
+
const triggerData = triggerService.compoundV2RatioTrigger.encode(user, triggerRatio, ratioState);
|
|
493
|
+
|
|
494
|
+
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
495
|
+
},
|
|
453
496
|
};
|
|
454
497
|
|
|
455
498
|
export const compoundV3Encode = {
|
|
@@ -465,6 +508,22 @@ export const compoundV3Encode = {
|
|
|
465
508
|
) {
|
|
466
509
|
return subDataService.compoundV3LeverageManagementSubData.encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA);
|
|
467
510
|
},
|
|
511
|
+
leverageManagementWithoutSubProxy(
|
|
512
|
+
strategyOrBundleId: number,
|
|
513
|
+
market: EthereumAddress,
|
|
514
|
+
baseToken: EthereumAddress,
|
|
515
|
+
user: EthereumAddress,
|
|
516
|
+
ratioState: RatioState,
|
|
517
|
+
targetRatio: number,
|
|
518
|
+
triggerRatio: number,
|
|
519
|
+
) {
|
|
520
|
+
const isBundle = true;
|
|
521
|
+
|
|
522
|
+
const subData = subDataService.compoundV3LeverageManagementSubDataWithoutSubProxy.encode(market, baseToken, targetRatio, ratioState);
|
|
523
|
+
const triggerData = triggerService.compoundV3RatioTrigger.encode(user, market, triggerRatio, ratioState);
|
|
524
|
+
|
|
525
|
+
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
526
|
+
},
|
|
468
527
|
leverageManagementOnPrice(
|
|
469
528
|
strategyOrBundleId: number,
|
|
470
529
|
market: EthereumAddress,
|
|
@@ -557,6 +616,25 @@ export const exchangeEncode = {
|
|
|
557
616
|
) {
|
|
558
617
|
return subDataService.exchangeLimitOrderSubData.encode(fromToken, toToken, amount, targetPrice, goodUntil, orderType);
|
|
559
618
|
},
|
|
619
|
+
limitOrderWithoutSubProxy(
|
|
620
|
+
fromToken: EthereumAddress,
|
|
621
|
+
toToken: EthereumAddress,
|
|
622
|
+
amount: string,
|
|
623
|
+
targetPrice: string,
|
|
624
|
+
goodUntil: string | number,
|
|
625
|
+
orderType: OrderType,
|
|
626
|
+
fromTokenDecimals: number,
|
|
627
|
+
toTokenDecimals: number,
|
|
628
|
+
network: ChainId,
|
|
629
|
+
) {
|
|
630
|
+
requireAddresses([fromToken, toToken]);
|
|
631
|
+
const subData = subDataService.exchangeLimitOrderSubDataWithoutSubProxy.encode(fromToken, toToken, amount);
|
|
632
|
+
const triggerData = triggerService.exchangeOffchainPriceTrigger.encode(targetPrice, Number(goodUntil), orderType, fromTokenDecimals, toTokenDecimals);
|
|
633
|
+
|
|
634
|
+
const strategyId = STRATEGY_IDS[network].EXCHANGE_LIMIT_ORDER;
|
|
635
|
+
|
|
636
|
+
return [strategyId, false, triggerData, subData];
|
|
637
|
+
},
|
|
560
638
|
};
|
|
561
639
|
|
|
562
640
|
export const sparkEncode = {
|
|
@@ -207,6 +207,22 @@ export const liquityLeverageManagementSubData = {
|
|
|
207
207
|
return { targetRatio };
|
|
208
208
|
},
|
|
209
209
|
};
|
|
210
|
+
export const liquityLeverageManagementSubDataWithoutSubProxy = {
|
|
211
|
+
encode(
|
|
212
|
+
targetRatio: number,
|
|
213
|
+
ratioState: RatioState,
|
|
214
|
+
): SubData {
|
|
215
|
+
const encodedTargetRatio = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
|
|
216
|
+
const encodedRatioState = AbiCoder.encodeParameter('uint8', ratioState);
|
|
217
|
+
return [encodedTargetRatio, encodedRatioState];
|
|
218
|
+
},
|
|
219
|
+
decode(subData: SubData): { targetRatio: number, ratioState: RatioState } {
|
|
220
|
+
const targetRatio = weiToRatioPercentage(AbiCoder.decodeParameter('uint256', subData[0]) as any as string);
|
|
221
|
+
const ratioState = AbiCoder.decodeParameter('uint8', subData[1]) as any as RatioState;
|
|
222
|
+
|
|
223
|
+
return { targetRatio, ratioState };
|
|
224
|
+
},
|
|
225
|
+
};
|
|
210
226
|
export const liquityCloseSubData = {
|
|
211
227
|
encode(
|
|
212
228
|
closeToAssetAddr: EthereumAddress,
|
|
@@ -510,6 +526,22 @@ export const aaveV2LeverageManagementSubData = {
|
|
|
510
526
|
return { targetRatio };
|
|
511
527
|
},
|
|
512
528
|
};
|
|
529
|
+
export const aaveV2LeverageManagementSubDataWithoutSubProxy = {
|
|
530
|
+
encode(
|
|
531
|
+
targetRatio: number,
|
|
532
|
+
ratioState: RatioState,
|
|
533
|
+
): SubData {
|
|
534
|
+
const encodedTargetRatio = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
|
|
535
|
+
const encodedRatioState = AbiCoder.encodeParameter('uint8', ratioState);
|
|
536
|
+
return [encodedTargetRatio, encodedRatioState];
|
|
537
|
+
},
|
|
538
|
+
decode(subData: SubData): { targetRatio: number, ratioState: RatioState } {
|
|
539
|
+
const targetRatio = weiToRatioPercentage(AbiCoder.decodeParameter('uint256', subData[0]) as any as string);
|
|
540
|
+
const ratioState = AbiCoder.decodeParameter('uint8', subData[1]) as any as RatioState;
|
|
541
|
+
|
|
542
|
+
return { targetRatio, ratioState };
|
|
543
|
+
},
|
|
544
|
+
};
|
|
513
545
|
|
|
514
546
|
/**
|
|
515
547
|
___ ___ ____ ____ _______ ____ ____ ____
|
|
@@ -997,6 +1029,22 @@ export const compoundV2LeverageManagementSubData = {
|
|
|
997
1029
|
return { targetRatio };
|
|
998
1030
|
},
|
|
999
1031
|
};
|
|
1032
|
+
export const compoundV2LeverageManagementSubDataWithoutSubProxy = {
|
|
1033
|
+
encode(
|
|
1034
|
+
targetRatio: number,
|
|
1035
|
+
ratioState: RatioState,
|
|
1036
|
+
): SubData {
|
|
1037
|
+
const encodedTargetRatio = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
|
|
1038
|
+
const encodedRatioState = AbiCoder.encodeParameter('uint8', ratioState);
|
|
1039
|
+
return [encodedTargetRatio, encodedRatioState];
|
|
1040
|
+
},
|
|
1041
|
+
decode(subData: SubData): { targetRatio: number, ratioState: RatioState } {
|
|
1042
|
+
const targetRatio = weiToRatioPercentage(AbiCoder.decodeParameter('uint256', subData[0]) as any as string);
|
|
1043
|
+
const ratioState = AbiCoder.decodeParameter('uint8', subData[1]) as any as RatioState;
|
|
1044
|
+
|
|
1045
|
+
return { targetRatio, ratioState };
|
|
1046
|
+
},
|
|
1047
|
+
};
|
|
1000
1048
|
|
|
1001
1049
|
/**
|
|
1002
1050
|
______ ______ .___ ___. .______ ____ ____ ____
|
|
@@ -1035,6 +1083,30 @@ export const compoundV3LeverageManagementSubData = {
|
|
|
1035
1083
|
return { targetRatio };
|
|
1036
1084
|
},
|
|
1037
1085
|
};
|
|
1086
|
+
export const compoundV3LeverageManagementSubDataWithoutSubProxy = {
|
|
1087
|
+
encode(
|
|
1088
|
+
market: EthereumAddress,
|
|
1089
|
+
baseToken: EthereumAddress,
|
|
1090
|
+
targetRatio: number,
|
|
1091
|
+
ratioState: RatioState,
|
|
1092
|
+
): SubData {
|
|
1093
|
+
const encodedMarket = AbiCoder.encodeParameter('address', market);
|
|
1094
|
+
const encodedBaseToken = AbiCoder.encodeParameter('address', baseToken);
|
|
1095
|
+
const encodedTargetRatio = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
|
|
1096
|
+
const encodedRatioState = AbiCoder.encodeParameter('uint8', ratioState);
|
|
1097
|
+
return [encodedMarket, encodedBaseToken, encodedTargetRatio, encodedRatioState];
|
|
1098
|
+
},
|
|
1099
|
+
decode(subData: SubData): { market: EthereumAddress, baseToken: EthereumAddress, targetRatio: number, ratioState: RatioState } {
|
|
1100
|
+
const market = AbiCoder.decodeParameter('address', subData[0]) as any as EthereumAddress;
|
|
1101
|
+
const baseToken = AbiCoder.decodeParameter('address', subData[1]) as any as EthereumAddress;
|
|
1102
|
+
const targetRatio = weiToRatioPercentage(AbiCoder.decodeParameter('uint256', subData[2]) as any as string);
|
|
1103
|
+
const ratioState = AbiCoder.decodeParameter('uint8', subData[3]) as any as RatioState;
|
|
1104
|
+
|
|
1105
|
+
return {
|
|
1106
|
+
market, baseToken, targetRatio, ratioState,
|
|
1107
|
+
};
|
|
1108
|
+
},
|
|
1109
|
+
};
|
|
1038
1110
|
export const compoundV3L2LeverageManagementSubData = {
|
|
1039
1111
|
encode(
|
|
1040
1112
|
market: EthereumAddress,
|
|
@@ -1205,6 +1277,21 @@ export const exchangeLimitOrderSubData = {
|
|
|
1205
1277
|
return { fromToken, toToken, amount };
|
|
1206
1278
|
},
|
|
1207
1279
|
};
|
|
1280
|
+
export const exchangeLimitOrderSubDataWithoutSubProxy = {
|
|
1281
|
+
encode(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string): SubData {
|
|
1282
|
+
return [
|
|
1283
|
+
AbiCoder.encodeParameter('address', fromToken),
|
|
1284
|
+
AbiCoder.encodeParameter('address', toToken),
|
|
1285
|
+
AbiCoder.encodeParameter('uint256', amount),
|
|
1286
|
+
];
|
|
1287
|
+
},
|
|
1288
|
+
decode: (subData: SubData, chainId: ChainId) => {
|
|
1289
|
+
const fromToken = AbiCoder.decodeParameter('address', subData[0])!.toString();
|
|
1290
|
+
const toToken = AbiCoder.decodeParameter('address', subData[1])!.toString();
|
|
1291
|
+
const amount = assetAmountInEth(AbiCoder.decodeParameter('uint256', subData[2])!.toString(), getAssetInfoByAddress(fromToken, chainId).symbol);
|
|
1292
|
+
return { fromToken, toToken, amount };
|
|
1293
|
+
},
|
|
1294
|
+
};
|
|
1208
1295
|
|
|
1209
1296
|
/**
|
|
1210
1297
|
_______..______ ___ .______ __ ___
|