@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.
@@ -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.fluidLeverageManagementSubData = exports.morphoBlueCloseOnPriceSubData = exports.morphoBlueLeverageManagementOnPriceSubData = exports.morphoBlueLeverageManagementSubData = exports.crvUSDPaybackSubData = exports.crvUSDLeverageManagementSubData = exports.sparkLeverageManagementOnPriceSubData = exports.sparkCloseGenericSubData = exports.sparkLeverageManagementSubDataWithoutSubProxy = exports.sparkLeverageManagementSubData = exports.exchangeLimitOrderSubData = exports.exchangeDcaSubData = exports.compoundV3CloseSubData = exports.compoundV3LeverageManagementOnPriceSubData = exports.compoundV3L2LeverageManagementSubData = exports.compoundV3LeverageManagementSubData = 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.aaveV2LeverageManagementSubData = exports.liquityV2PaybackSubData = exports.liquityV2LeverageManagementOnPriceSubData = exports.liquityV2CloseSubData = exports.liquityV2LeverageManagementSubData = exports.liquityDebtInFrontRepaySubData = exports.liquityDsrSupplySubData = exports.liquityDsrPaybackSubData = exports.liquityCloseSubData = exports.liquityLeverageManagementSubData = exports.liquityRepayFromSavingsSubData = exports.makerLeverageManagementWithoutSubProxy = exports.makerLeverageManagementSubData = exports.makerCloseSubData = exports.makerRepayFromSavingsSubData = exports.liquityPaybackUsingChickenBondSubData = exports.cBondsRebondSubData = exports.morphoAaveV2LeverageManagementSubData = void 0;
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.11-aave-v4-1-dev",
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.21-aave-v4-dev",
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
  _______..______ ___ .______ __ ___