@defisaver/automation-sdk 2.1.3 → 2.1.5

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/.env ADDED
@@ -0,0 +1,4 @@
1
+ RPC_1=https://mainnet.infura.io/v3/a3503e4501d040cd9ea2c913c68983a1
2
+ RPC_10=https://opt-mainnet.g.alchemy.com/v2/Pwh-hdbsP7Bf0CP_UMw4_Pw-NfHhSpIA
3
+ RPC_8453=https://base-mainnet.g.alchemy.com/v2/TERsAaPNcA7sgCVHHAMBvd95UtT4wCEf
4
+ RPC_42161=https://arb-mainnet.g.alchemy.com/v2/Pwh-hdbsP7Bf0CP_UMw4_Pw-NfHhSpIA
@@ -327,6 +327,16 @@ exports.ARBITRUM_BUNDLES_INFO = {
327
327
  strategyId: enums_1.Strategies.Identifiers.CloseToCollateral,
328
328
  protocol: exports.PROTOCOLS.AaveV3,
329
329
  },
330
+ [enums_1.Bundles.ArbitrumIds.COMP_V3_SW_BOOST_BUNDLE]: {
331
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.COMP_V3_SW_BOOST_BUNDLE,
332
+ strategyId: enums_1.Strategies.Identifiers.Boost,
333
+ protocol: exports.PROTOCOLS.CompoundV3,
334
+ },
335
+ [enums_1.Bundles.ArbitrumIds.COMP_V3_SW_REPAY_BUNDLE]: {
336
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.COMP_V3_SW_REPAY_BUNDLE,
337
+ strategyId: enums_1.Strategies.Identifiers.Repay,
338
+ protocol: exports.PROTOCOLS.CompoundV3,
339
+ },
330
340
  };
331
341
  exports.BUNDLES_INFO = {
332
342
  [enums_1.ChainId.Ethereum]: exports.MAINNET_BUNDLES_INFO,
@@ -321,8 +321,11 @@ function parseCompoundV3LeverageManagement(position, parseData) {
321
321
  const _position = (0, lodash_1.cloneDeep)(position);
322
322
  const { subStruct, subId } = parseData.subscriptionEventData;
323
323
  const { isEnabled } = parseData.strategiesSubsData;
324
+ const subDataDecoder = position.chainId !== 1
325
+ ? subDataService.compoundV3L2LeverageManagementSubData
326
+ : subDataService.compoundV3LeverageManagementSubData;
324
327
  const triggerData = triggerService.compoundV3RatioTrigger.decode(subStruct.triggerData);
325
- const subData = subDataService.compoundV3LeverageManagementSubData.decode(subStruct.subData);
328
+ const subData = subDataDecoder.decode(subStruct.subData);
326
329
  _position.strategyData.decoded.triggerData = triggerData;
327
330
  _position.strategyData.decoded.subData = subData;
328
331
  _position.owner = triggerData.owner.toLowerCase();
@@ -54,6 +54,9 @@ export declare const compoundV2Encode: {
54
54
  export declare const compoundV3Encode: {
55
55
  leverageManagement(market: EthereumAddress, baseToken: EthereumAddress, triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean, isEOA: boolean): string[];
56
56
  };
57
+ export declare const compoundV3L2Encode: {
58
+ leverageManagement(market: EthereumAddress, baseToken: EthereumAddress, triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string;
59
+ };
57
60
  export declare const morphoAaveV2Encode: {
58
61
  leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
59
62
  };
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.crvUSDEncode = exports.sparkEncode = exports.exchangeEncode = exports.morphoAaveV2Encode = exports.compoundV3Encode = exports.compoundV2Encode = exports.aaveV3Encode = exports.aaveV2Encode = exports.chickenBondsEncode = exports.liquityEncode = exports.makerEncode = void 0;
29
+ exports.crvUSDEncode = exports.sparkEncode = exports.exchangeEncode = exports.morphoAaveV2Encode = exports.compoundV3L2Encode = exports.compoundV3Encode = exports.compoundV2Encode = exports.aaveV3Encode = exports.aaveV2Encode = exports.chickenBondsEncode = exports.liquityEncode = exports.makerEncode = void 0;
30
30
  const decimal_js_1 = __importDefault(require("decimal.js"));
31
31
  const tokens_1 = require("@defisaver/tokens");
32
32
  const enums_1 = require("../types/enums");
@@ -179,6 +179,11 @@ exports.compoundV3Encode = {
179
179
  return subDataService.compoundV3LeverageManagementSubData.encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA);
180
180
  },
181
181
  };
182
+ exports.compoundV3L2Encode = {
183
+ leverageManagement(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
184
+ return subDataService.compoundV3L2LeverageManagementSubData.encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
185
+ },
186
+ };
182
187
  exports.morphoAaveV2Encode = {
183
188
  leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
184
189
  return subDataService.morphoAaveV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
@@ -750,4 +750,33 @@ describe('Feature: strategySubService.ts', () => {
750
750
  });
751
751
  });
752
752
  });
753
+ describe('When testing strategySubService.compoundV3L2Encode', () => {
754
+ describe('leverageManagement()', () => {
755
+ const examples = [
756
+ [
757
+ '0x0313D212133AFab8F2b829B1066c7e43caD94e2c0213D212133AfaB8F2b829B1066C7E43cAD94E2c000000000000000016345785d8a0000000000000000000001e87f85809dc0000000000000000000018fae27693b4000000000000000000001a5e27eef13e000001',
758
+ [
759
+ web3Utils.toChecksumAddress('0x0313d212133AFaB8F2B829B1066c7E43cAd94E2c'),
760
+ web3Utils.toChecksumAddress('0x0213d212133AFaB8F2B829B1066c7E43cAd94E2c'),
761
+ 160, 220, 180, 190,
762
+ true
763
+ ],
764
+ ],
765
+ [
766
+ '0x0313D212133AFab8F2b829B1066c7e43caD94e2c0413d212133afAb8F2B829b1066C7e43cAd94e2c000000000000000016345785d8a0000000000000000000001e87f85809dc0000000000000000000018fae27693b4000000000000000000000f43fc2c04ee000000',
767
+ [
768
+ web3Utils.toChecksumAddress('0x0313d212133AFaB8F2B829B1066c7E43cAd94E2c'),
769
+ web3Utils.toChecksumAddress('0x0413d212133AFaB8F2B829B1066c7E43cAd94E2c'),
770
+ 160, 220, 180, 110,
771
+ false
772
+ ],
773
+ ],
774
+ ];
775
+ examples.forEach(([expected, actual]) => {
776
+ it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
777
+ (0, chai_1.expect)(strategySubService_1.compoundV3L2Encode.leverageManagement(...actual)).to.eql(expected);
778
+ });
779
+ });
780
+ });
781
+ });
753
782
  });
@@ -72,6 +72,12 @@ export declare const compoundV3LeverageManagementSubData: {
72
72
  targetRatio: number;
73
73
  };
74
74
  };
75
+ export declare const compoundV3L2LeverageManagementSubData: {
76
+ encode(market: EthereumAddress, baseToken: EthereumAddress, triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string;
77
+ decode(subData: string[]): {
78
+ targetRatio: number;
79
+ };
80
+ };
75
81
  export declare const morphoAaveV2LeverageManagementSubData: {
76
82
  encode(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
77
83
  decode(subData: string[]): {
@@ -3,7 +3,7 @@ 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.crvUSDLeverageManagementSubData = exports.liquityDebtInFrontRepaySubData = exports.liquityDsrSupplySubData = exports.liquityDsrPaybackSubData = exports.sparkQuotePriceSubData = exports.sparkLeverageManagementSubData = exports.exchangeLimitOrderSubData = exports.exchangeDcaSubData = exports.liquityPaybackUsingChickenBondSubData = exports.cBondsRebondSubData = exports.morphoAaveV2LeverageManagementSubData = exports.compoundV3LeverageManagementSubData = exports.compoundV2LeverageManagementSubData = exports.aaveV3QuotePriceSubData = exports.aaveV3LeverageManagementSubData = exports.aaveV2LeverageManagementSubData = exports.liquityCloseSubData = exports.liquityLeverageManagementSubData = exports.makerLeverageManagementSubData = exports.makerCloseSubData = exports.liquityRepayFromSavingsSubData = exports.makerRepayFromSavingsSubData = void 0;
6
+ exports.crvUSDLeverageManagementSubData = exports.liquityDebtInFrontRepaySubData = exports.liquityDsrSupplySubData = exports.liquityDsrPaybackSubData = exports.sparkQuotePriceSubData = exports.sparkLeverageManagementSubData = exports.exchangeLimitOrderSubData = exports.exchangeDcaSubData = exports.liquityPaybackUsingChickenBondSubData = exports.cBondsRebondSubData = exports.morphoAaveV2LeverageManagementSubData = exports.compoundV3L2LeverageManagementSubData = exports.compoundV3LeverageManagementSubData = exports.compoundV2LeverageManagementSubData = exports.aaveV3QuotePriceSubData = exports.aaveV3LeverageManagementSubData = exports.aaveV2LeverageManagementSubData = exports.liquityCloseSubData = exports.liquityLeverageManagementSubData = exports.makerLeverageManagementSubData = exports.makerCloseSubData = exports.liquityRepayFromSavingsSubData = exports.makerRepayFromSavingsSubData = void 0;
7
7
  const decimal_js_1 = __importDefault(require("decimal.js"));
8
8
  const web3_eth_abi_1 = __importDefault(require("web3-eth-abi"));
9
9
  const tokens_1 = require("@defisaver/tokens");
@@ -180,6 +180,29 @@ exports.compoundV3LeverageManagementSubData = {
180
180
  return { targetRatio };
181
181
  },
182
182
  };
183
+ exports.compoundV3L2LeverageManagementSubData = {
184
+ encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
185
+ let subInput = '0x';
186
+ subInput = subInput.concat(market.slice(2));
187
+ subInput = subInput.concat(baseToken.slice(2));
188
+ subInput = subInput.concat(new decimal_js_1.default(triggerRepayRatio).mul(1e16).toHex().slice(2)
189
+ .padStart(32, '0'));
190
+ subInput = subInput.concat(new decimal_js_1.default(triggerBoostRatio).mul(1e16).toHex().slice(2)
191
+ .padStart(32, '0'));
192
+ subInput = subInput.concat(new decimal_js_1.default(targetBoostRatio).mul(1e16).toHex().slice(2)
193
+ .padStart(32, '0'));
194
+ subInput = subInput.concat(new decimal_js_1.default(targetRepayRatio).mul(1e16).toHex().slice(2)
195
+ .padStart(32, '0'));
196
+ subInput = subInput.concat(boostEnabled ? '01' : '00');
197
+ return subInput;
198
+ },
199
+ decode(subData) {
200
+ console.log(subData);
201
+ const ratioWei = web3_eth_abi_1.default.decodeParameter('uint256', subData[3]);
202
+ const targetRatio = (0, utils_1.weiToRatioPercentage)(ratioWei);
203
+ return { targetRatio };
204
+ },
205
+ };
183
206
  exports.morphoAaveV2LeverageManagementSubData = {
184
207
  encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
185
208
  return [