@defisaver/automation-sdk 3.3.21-instant-twap-close-dev → 3.3.21-npm-token-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.
@@ -659,16 +659,6 @@ exports.MAINNET_BUNDLES_INFO = {
659
659
  strategyId: enums_1.Strategies.Identifiers.EoaLiquidationProtection,
660
660
  protocol: exports.PROTOCOLS.Spark,
661
661
  },
662
- [enums_1.Bundles.MainnetIds.AAVE_V3_SW_INSTANT_CLOSE]: {
663
- strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V3_SW_INSTANT_CLOSE,
664
- strategyId: enums_1.Strategies.Identifiers.InstantCloseOnPrice,
665
- protocol: exports.PROTOCOLS.AaveV3,
666
- },
667
- [enums_1.Bundles.MainnetIds.AAVE_V3_EOA_INSTANT_CLOSE]: {
668
- strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V3_EOA_INSTANT_CLOSE,
669
- strategyId: enums_1.Strategies.Identifiers.EoaInstantCloseOnPrice,
670
- protocol: exports.PROTOCOLS.AaveV3,
671
- },
672
662
  };
673
663
  exports.OPTIMISM_BUNDLES_INFO = {
674
664
  [enums_1.Bundles.OptimismIds.AAVE_V3_REPAY]: {
@@ -346,29 +346,6 @@ function parseAaveV3CloseOnPrice(position, parseData) {
346
346
  }
347
347
  return _position;
348
348
  }
349
- function parseAaveV3InstantCloseOnPrice(position, parseData) {
350
- const _position = (0, lodash_1.cloneDeep)(position);
351
- const { subStruct } = parseData.subscriptionEventData;
352
- const triggerData = triggerService.aaveV3QuotePriceRangeTrigger.decode(subStruct.triggerData);
353
- const subData = subDataService.aaveV3InstantCloseGenericSubData.decode(subStruct.subData);
354
- const { takeProfitType, stopLossType } = (0, utils_1.getStopLossAndTakeProfitTypeByCloseStrategyType)(+subData.closeType);
355
- _position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, _position.owner, AAVE_V3_MARKET_ADDRESSES[_position.chainId]);
356
- _position.strategyData.decoded.triggerData = triggerData;
357
- _position.strategyData.decoded.subData = subData;
358
- _position.specific = {
359
- collAsset: subData.collAsset,
360
- collAssetId: subData.collAssetId,
361
- debtAsset: subData.debtAsset,
362
- debtAssetId: subData.debtAssetId,
363
- baseToken: triggerData.collToken,
364
- quoteToken: triggerData.debtToken,
365
- stopLossPrice: triggerData.lowerPrice,
366
- takeProfitPrice: triggerData.upperPrice,
367
- stopLossType,
368
- takeProfitType,
369
- };
370
- return _position;
371
- }
372
349
  function parseAaveV3CollateralSwitch(position, parseData) {
373
350
  const _position = (0, lodash_1.cloneDeep)(position);
374
351
  const { subStruct } = parseData.subscriptionEventData;
@@ -1268,8 +1245,6 @@ const parsingMethodsMapping = {
1268
1245
  [enums_1.Strategies.Identifiers.EoaRepayOnPrice]: parseAaveV3LeverageManagementOnPrice,
1269
1246
  [enums_1.Strategies.Identifiers.EoaBoostOnPrice]: parseAaveV3LeverageManagementOnPrice,
1270
1247
  [enums_1.Strategies.Identifiers.EoaCloseOnPrice]: parseAaveV3CloseOnPrice,
1271
- [enums_1.Strategies.Identifiers.InstantCloseOnPrice]: parseAaveV3InstantCloseOnPrice,
1272
- [enums_1.Strategies.Identifiers.EoaInstantCloseOnPrice]: parseAaveV3InstantCloseOnPrice,
1273
1248
  [enums_1.Strategies.Identifiers.CollateralSwitch]: parseAaveV3CollateralSwitch,
1274
1249
  [enums_1.Strategies.Identifiers.LiquidationProtection]: parseAaveV3LiquidationProtection,
1275
1250
  [enums_1.Strategies.Identifiers.EoaLiquidationProtection]: parseAaveV3LiquidationProtection,
@@ -13,7 +13,6 @@ const chai_1 = require("chai");
13
13
  const enums_1 = require("../types/enums");
14
14
  require("../configuration");
15
15
  const strategiesService_1 = require("./strategiesService");
16
- const strategySubService_1 = require("./strategySubService");
17
16
  describe('Feature: strategiesService.ts', () => {
18
17
  describe('When testing strategiesService.parseStrategiesAutomatedPosition', () => __awaiter(void 0, void 0, void 0, function* () {
19
18
  // TODO: we should probably write this for every strategy?
@@ -109,65 +108,4 @@ describe('Feature: strategiesService.ts', () => {
109
108
  }));
110
109
  });
111
110
  }));
112
- describe('When parsing Aave V3 instant close bundles', () => {
113
- const owner = '0x1234567890123456789012345678901234567890';
114
- const market = '0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e';
115
- const weth = '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2';
116
- const usdc = '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48';
117
- const bundles = [
118
- ['SW', enums_1.Bundles.MainnetIds.AAVE_V3_SW_INSTANT_CLOSE, enums_1.Strategies.Identifiers.InstantCloseOnPrice],
119
- ['EOA', enums_1.Bundles.MainnetIds.AAVE_V3_EOA_INSTANT_CLOSE, enums_1.Strategies.Identifiers.EoaInstantCloseOnPrice],
120
- ];
121
- bundles.forEach(([walletType, expectedBundleId, expectedStrategyId]) => {
122
- describe(`${walletType} bundle`, () => {
123
- const [bundleId, isBundle, triggerData, subData] = strategySubService_1.aaveV3Encode.instantCloseOnPriceGeneric(expectedBundleId, weth, 0, usdc, 1, market, owner, '1000000000000000000', '10000000000000000', 1500, enums_1.CloseToAssetType.DEBT, 5000, enums_1.CloseToAssetType.COLLATERAL);
124
- const parseData = {
125
- chainId: 1,
126
- blockNumber: 1,
127
- subscriptionEventData: {
128
- subId: '1',
129
- proxy: owner,
130
- subHash: '0xhash',
131
- subStruct: {
132
- strategyOrBundleId: String(bundleId), isBundle, triggerData, subData,
133
- },
134
- },
135
- strategiesSubsData: { userProxy: owner, isEnabled: true, strategySubHash: '0xhash' },
136
- };
137
- const result = (0, strategiesService_1.parseStrategiesAutomatedPosition)(parseData);
138
- it('should identify the strategy as instant close on price', () => {
139
- (0, chai_1.expect)(result.strategy.strategyOrBundleId).to.equal(expectedBundleId);
140
- (0, chai_1.expect)(result.strategy.strategyId).to.equal(expectedStrategyId);
141
- (0, chai_1.expect)(result.protocol.id).to.equal(enums_1.ProtocolIdentifiers.StrategiesAutomation.AaveV3);
142
- });
143
- it('should decode sub data including tsi and slippage', () => {
144
- (0, chai_1.expect)(result.strategyData.decoded.subData).to.eql({
145
- collAsset: weth,
146
- collAssetId: 0,
147
- debtAsset: usdc,
148
- debtAssetId: 1,
149
- closeType: enums_1.CloseStrategyType.TAKE_PROFIT_IN_COLLATERAL_AND_STOP_LOSS_IN_DEBT,
150
- marketAddr: market,
151
- owner,
152
- tsi: '1000000000000000000',
153
- slippage: '10000000000000000',
154
- });
155
- });
156
- it('should fill specific with prices and close types', () => {
157
- (0, chai_1.expect)(result.specific).to.eql({
158
- collAsset: weth,
159
- collAssetId: 0,
160
- debtAsset: usdc,
161
- debtAssetId: 1,
162
- baseToken: weth,
163
- quoteToken: usdc,
164
- stopLossPrice: '1500',
165
- takeProfitPrice: '5000',
166
- stopLossType: enums_1.CloseToAssetType.DEBT,
167
- takeProfitType: enums_1.CloseToAssetType.COLLATERAL,
168
- });
169
- });
170
- });
171
- });
172
- });
173
111
  });
@@ -61,7 +61,6 @@ export declare const aaveV3Encode: {
61
61
  liquidationProtection(strategyOrBundleId: number, market: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
62
62
  leverageManagementOnPriceGeneric(strategyOrBundleId: number, price: number, ratioState: RatioState, collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, marketAddr: EthereumAddress, targetRatio: number, user: EthereumAddress): (number | boolean | string[])[];
63
63
  closeOnPriceGeneric(strategyOrBundleId: number, collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, marketAddr: EthereumAddress, user: EthereumAddress, stopLossPrice?: number, stopLossType?: CloseToAssetType, takeProfitPrice?: number, takeProfitType?: CloseToAssetType): (number | boolean | string[])[];
64
- instantCloseOnPriceGeneric(strategyOrBundleId: number, collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, marketAddr: EthereumAddress, user: EthereumAddress, tsi: string, slippage: string, stopLossPrice?: number, stopLossType?: CloseToAssetType, takeProfitPrice?: number, takeProfitType?: CloseToAssetType): (number | boolean | string[])[];
65
64
  collateralSwitch(strategyOrBundleId: number, fromAsset: EthereumAddress, fromAssetId: number, toAsset: EthereumAddress, toAssetId: number, marketAddr: EthereumAddress, amountToSwitch: string, baseTokenAddress: EthereumAddress, quoteTokenAddress: EthereumAddress, price: number, state: RatioState): (number | boolean | string[])[];
66
65
  };
67
66
  export declare const compoundV2Encode: {
@@ -190,13 +190,6 @@ exports.aaveV3Encode = {
190
190
  const triggerDataEncoded = triggerService.aaveV3QuotePriceRangeTrigger.encode(collAsset, debtAsset, stopLossPrice, takeProfitPrice);
191
191
  return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
192
192
  },
193
- instantCloseOnPriceGeneric(strategyOrBundleId, collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, user, tsi, slippage, stopLossPrice = 0, stopLossType = enums_1.CloseToAssetType.DEBT, takeProfitPrice = 0, takeProfitType = enums_1.CloseToAssetType.COLLATERAL) {
194
- const isBundle = true;
195
- const closeType = (0, utils_1.getCloseStrategyType)(stopLossPrice, stopLossType, takeProfitPrice, takeProfitType);
196
- const subDataEncoded = subDataService.aaveV3InstantCloseGenericSubData.encode(collAsset, collAssetId, debtAsset, debtAssetId, closeType, marketAddr, user, tsi, slippage);
197
- const triggerDataEncoded = triggerService.aaveV3QuotePriceRangeTrigger.encode(collAsset, debtAsset, stopLossPrice, takeProfitPrice);
198
- return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
199
- },
200
193
  collateralSwitch(strategyOrBundleId, fromAsset, fromAssetId, toAsset, toAssetId, marketAddr, amountToSwitch, baseTokenAddress, quoteTokenAddress, price, state) {
201
194
  const isBundle = false;
202
195
  const subDataEncoded = subDataService.aaveV3CollateralSwitchSubData.encode(fromAsset, fromAssetId, toAsset, toAssetId, marketAddr, amountToSwitch);
@@ -757,117 +757,6 @@ describe('Feature: strategySubService.ts', () => {
757
757
  });
758
758
  });
759
759
  });
760
- describe('instantCloseOnPriceGeneric()', () => {
761
- const examples = [
762
- // Stop loss only (to debt)
763
- [
764
- [
765
- enums_1.Bundles.MainnetIds.AAVE_V3_EOA_INSTANT_CLOSE,
766
- true,
767
- ['0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000022ecb25c000000000000000000000000000000000000000000000000000000000000000000'],
768
- [
769
- '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
770
- '0x0000000000000000000000000000000000000000000000000000000000000000',
771
- '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
772
- '0x0000000000000000000000000000000000000000000000000000000000000001',
773
- '0x0000000000000000000000000000000000000000000000000000000000000003',
774
- '0x0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e',
775
- '0x0000000000000000000000001234567890123456789012345678901234567890',
776
- '0x0000000000000000000000000000000000000000000000000de0b6b3a7640000',
777
- '0x000000000000000000000000000000000000000000000000002386f26fc10000',
778
- ],
779
- ],
780
- [
781
- enums_1.Bundles.MainnetIds.AAVE_V3_EOA_INSTANT_CLOSE,
782
- web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('WETH', enums_1.ChainId.Ethereum).address),
783
- 0,
784
- web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('USDC', enums_1.ChainId.Ethereum).address),
785
- 1,
786
- web3Utils.toChecksumAddress('0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e'),
787
- web3Utils.toChecksumAddress('0x1234567890123456789012345678901234567890'),
788
- '1000000000000000000',
789
- '10000000000000000',
790
- 1500,
791
- enums_1.CloseToAssetType.DEBT,
792
- 0,
793
- enums_1.CloseToAssetType.COLLATERAL, // takeProfitType (not used since price is 0)
794
- ]
795
- ],
796
- // Take profit only (to collateral), zero tsi and slippage
797
- [
798
- [
799
- enums_1.Bundles.MainnetIds.AAVE_V3_EOA_INSTANT_CLOSE,
800
- true,
801
- ['0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000746a528800'],
802
- [
803
- '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
804
- '0x0000000000000000000000000000000000000000000000000000000000000000',
805
- '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
806
- '0x0000000000000000000000000000000000000000000000000000000000000001',
807
- '0x0000000000000000000000000000000000000000000000000000000000000000',
808
- '0x0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e',
809
- '0x0000000000000000000000001234567890123456789012345678901234567890',
810
- '0x0000000000000000000000000000000000000000000000000000000000000000',
811
- '0x0000000000000000000000000000000000000000000000000000000000000000',
812
- ],
813
- ],
814
- [
815
- enums_1.Bundles.MainnetIds.AAVE_V3_EOA_INSTANT_CLOSE,
816
- web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('WETH', enums_1.ChainId.Ethereum).address),
817
- 0,
818
- web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('USDC', enums_1.ChainId.Ethereum).address),
819
- 1,
820
- web3Utils.toChecksumAddress('0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e'),
821
- web3Utils.toChecksumAddress('0x1234567890123456789012345678901234567890'),
822
- '0',
823
- '0',
824
- 0,
825
- enums_1.CloseToAssetType.DEBT,
826
- 5000,
827
- enums_1.CloseToAssetType.COLLATERAL, // takeProfitType
828
- ]
829
- ],
830
- // Take profit (to debt) and stop loss (to collateral)
831
- [
832
- [
833
- enums_1.Bundles.MainnetIds.AAVE_V3_EOA_INSTANT_CLOSE,
834
- true,
835
- ['0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000022ecb25c000000000000000000000000000000000000000000000000000000005d21dba000'],
836
- [
837
- '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
838
- '0x0000000000000000000000000000000000000000000000000000000000000000',
839
- '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
840
- '0x0000000000000000000000000000000000000000000000000000000000000001',
841
- '0x0000000000000000000000000000000000000000000000000000000000000007',
842
- '0x0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e',
843
- '0x0000000000000000000000001234567890123456789012345678901234567890',
844
- '0x00000000000000000000000000000000000000000000000000b1a2bc2ec50000',
845
- '0x0000000000000000000000000000000000000000000000000011c37937e08000',
846
- ],
847
- ],
848
- [
849
- enums_1.Bundles.MainnetIds.AAVE_V3_EOA_INSTANT_CLOSE,
850
- web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('WETH', enums_1.ChainId.Ethereum).address),
851
- 0,
852
- web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('USDC', enums_1.ChainId.Ethereum).address),
853
- 1,
854
- web3Utils.toChecksumAddress('0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e'),
855
- web3Utils.toChecksumAddress('0x1234567890123456789012345678901234567890'),
856
- '50000000000000000',
857
- '5000000000000000',
858
- 1500,
859
- enums_1.CloseToAssetType.COLLATERAL,
860
- 4000,
861
- enums_1.CloseToAssetType.DEBT, // takeProfitType
862
- ]
863
- ],
864
- ];
865
- examples.forEach(([expected, actual]) => {
866
- it(`Given ${JSON.stringify(actual)} should return expected value: ${JSON.stringify(expected)}`, () => {
867
- (0, chai_1.expect)(strategySubService_1.aaveV3Encode.instantCloseOnPriceGeneric(...actual)).to.eql(expected);
868
- });
869
- });
870
- });
871
760
  describe('collateralSwitch()', () => {
872
761
  const examples = [
873
762
  // WETH -> USDC, price 100000, state UNDER
@@ -248,20 +248,6 @@ export declare const aaveV3CloseGenericSubData: {
248
248
  owner: EthereumAddress;
249
249
  };
250
250
  };
251
- export declare const aaveV3InstantCloseGenericSubData: {
252
- encode(collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, closeType: CloseStrategyType, marketAddr: EthereumAddress, user: EthereumAddress, tsi: string, slippage: string): string[];
253
- decode(subData: string[]): {
254
- collAsset: EthereumAddress;
255
- collAssetId: number;
256
- debtAsset: EthereumAddress;
257
- debtAssetId: number;
258
- closeType: CloseStrategyType;
259
- marketAddr: EthereumAddress;
260
- owner: EthereumAddress;
261
- tsi: string;
262
- slippage: string;
263
- };
264
- };
265
251
  export declare const aaveV3CollateralSwitchSubData: {
266
252
  encode(fromAsset: EthereumAddress, fromAssetId: number, toAsset: EthereumAddress, toAssetId: number, marketAddr: EthereumAddress, amountToSwitch: string, useOnBehalf?: boolean): string[];
267
253
  decode(subData: string[]): {
@@ -3,8 +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.sparkCloseGenericSubData = exports.sparkGenericLiquidationProtectionSubData = exports.sparkGenericLeverageManagementSubData = exports.sparkLiquidationProtectionSubData = exports.sparkLeverageManagementSubData = exports.legacySparkLeverageManagementSubData = exports.exchangeLimitOrderSubData = exports.legacyExchangeLimitOrderSubData = exports.exchangeDcaSubData = exports.compoundV3CloseSubData = exports.compoundV3LeverageManagementOnPriceSubData = exports.compoundV3LiquidationProtectionSubData = exports.compoundV3LeverageManagementSubData = exports.compoundV2LeverageManagementSubData = exports.legacyCompoundV2LeverageManagementSubData = exports.aaveV4CollateralSwitchSubData = exports.aaveV4CloseSubData = exports.aaveV4LeverageManagementOnPriceSubData = exports.aaveV4LiquidationProtectionSubData = exports.aaveV4LeverageManagementSubData = exports.aaveV3LeverageManagementOnPriceSubData = exports.aaveV3QuotePriceSubData = exports.aaveV3CollateralSwitchSubData = exports.aaveV3InstantCloseGenericSubData = exports.aaveV3CloseGenericSubData = exports.aaveV3LeverageManagementOnPriceGeneric = exports.aaveV3LiquidationProtectionSubData = exports.aaveV3LeverageManagementSubData = exports.legacyAaveV3LeverageManagementSubData = exports.aaveV2LeverageManagementSubData = exports.legacyAaveV2LeverageManagementSubData = exports.liquityV2PaybackSubData = exports.liquityV2LeverageManagementOnPriceSubData = exports.liquityV2CloseSubData = exports.liquityV2LeverageManagementSubData = exports.liquityDebtInFrontRepaySubData = exports.liquityDsrSupplySubData = exports.liquityDsrPaybackSubData = exports.liquityCloseSubData = exports.liquityLeverageManagementSubData = exports.legacyLiquityLeverageManagementSubData = exports.liquityRepayFromSavingsSubData = exports.makerLiquidationProtectionSubData = exports.makerLeverageManagementSubData = exports.legacyMakerLeverageManagementSubData = exports.makerCloseSubData = exports.makerRepayFromSavingsSubData = exports.liquityPaybackUsingChickenBondSubData = exports.cBondsRebondSubData = exports.morphoAaveV2LeverageManagementSubData = void 0;
7
- exports.fluidLiquidationProtectionSubData = exports.fluidLeverageManagementSubData = exports.morphoBlueCloseOnPriceSubData = exports.morphoBlueLeverageManagementOnPriceSubData = exports.morphoBlueLiquidationProtectionSubData = exports.morphoBlueLeverageManagementSubData = exports.crvUSDPaybackSubData = exports.crvUSDLeverageManagementSubData = exports.sparkGenericFLCollateralSwitchSubData = exports.sparkCollateralSwitchSubData = exports.sparkLeverageManagementOnPriceGenericSubData = exports.sparkLeverageManagementOnPriceSubData = void 0;
6
+ exports.sparkLeverageManagementOnPriceSubData = exports.sparkCloseGenericSubData = exports.sparkGenericLiquidationProtectionSubData = exports.sparkGenericLeverageManagementSubData = exports.sparkLiquidationProtectionSubData = exports.sparkLeverageManagementSubData = exports.legacySparkLeverageManagementSubData = exports.exchangeLimitOrderSubData = exports.legacyExchangeLimitOrderSubData = exports.exchangeDcaSubData = exports.compoundV3CloseSubData = exports.compoundV3LeverageManagementOnPriceSubData = exports.compoundV3LiquidationProtectionSubData = exports.compoundV3LeverageManagementSubData = exports.compoundV2LeverageManagementSubData = exports.legacyCompoundV2LeverageManagementSubData = exports.aaveV4CollateralSwitchSubData = exports.aaveV4CloseSubData = exports.aaveV4LeverageManagementOnPriceSubData = exports.aaveV4LiquidationProtectionSubData = exports.aaveV4LeverageManagementSubData = exports.aaveV3LeverageManagementOnPriceSubData = exports.aaveV3QuotePriceSubData = exports.aaveV3CollateralSwitchSubData = exports.aaveV3CloseGenericSubData = exports.aaveV3LeverageManagementOnPriceGeneric = exports.aaveV3LiquidationProtectionSubData = exports.aaveV3LeverageManagementSubData = exports.legacyAaveV3LeverageManagementSubData = exports.aaveV2LeverageManagementSubData = exports.legacyAaveV2LeverageManagementSubData = exports.liquityV2PaybackSubData = exports.liquityV2LeverageManagementOnPriceSubData = exports.liquityV2CloseSubData = exports.liquityV2LeverageManagementSubData = exports.liquityDebtInFrontRepaySubData = exports.liquityDsrSupplySubData = exports.liquityDsrPaybackSubData = exports.liquityCloseSubData = exports.liquityLeverageManagementSubData = exports.legacyLiquityLeverageManagementSubData = exports.liquityRepayFromSavingsSubData = exports.makerLiquidationProtectionSubData = exports.makerLeverageManagementSubData = exports.legacyMakerLeverageManagementSubData = exports.makerCloseSubData = exports.makerRepayFromSavingsSubData = exports.liquityPaybackUsingChickenBondSubData = exports.cBondsRebondSubData = exports.morphoAaveV2LeverageManagementSubData = void 0;
7
+ exports.fluidLiquidationProtectionSubData = exports.fluidLeverageManagementSubData = exports.morphoBlueCloseOnPriceSubData = exports.morphoBlueLeverageManagementOnPriceSubData = exports.morphoBlueLiquidationProtectionSubData = exports.morphoBlueLeverageManagementSubData = exports.crvUSDPaybackSubData = exports.crvUSDLeverageManagementSubData = exports.sparkGenericFLCollateralSwitchSubData = exports.sparkCollateralSwitchSubData = exports.sparkLeverageManagementOnPriceGenericSubData = void 0;
8
8
  const decimal_js_1 = __importDefault(require("decimal.js"));
9
9
  const web3_eth_abi_1 = __importDefault(require("web3-eth-abi"));
10
10
  const web3_utils_1 = require("web3-utils");
@@ -518,44 +518,6 @@ exports.aaveV3CloseGenericSubData = {
518
518
  };
519
519
  },
520
520
  };
521
- exports.aaveV3InstantCloseGenericSubData = {
522
- encode(collAsset, collAssetId, debtAsset, debtAssetId, closeType, marketAddr, user, tsi, slippage) {
523
- const encodedColl = web3_eth_abi_1.default.encodeParameter('address', collAsset);
524
- const encodedCollId = web3_eth_abi_1.default.encodeParameter('uint16', collAssetId);
525
- const encodedDebt = web3_eth_abi_1.default.encodeParameter('address', debtAsset);
526
- const encodedDebtId = web3_eth_abi_1.default.encodeParameter('uint16', debtAssetId);
527
- const encodedCloseType = web3_eth_abi_1.default.encodeParameter('uint8', closeType);
528
- const encodedMarket = web3_eth_abi_1.default.encodeParameter('address', marketAddr);
529
- const encodedUser = web3_eth_abi_1.default.encodeParameter('address', user);
530
- const encodedTsi = web3_eth_abi_1.default.encodeParameter('uint256', tsi);
531
- const encodedSlippage = web3_eth_abi_1.default.encodeParameter('uint256', slippage);
532
- return [
533
- encodedColl,
534
- encodedCollId,
535
- encodedDebt,
536
- encodedDebtId,
537
- encodedCloseType,
538
- encodedMarket,
539
- encodedUser,
540
- encodedTsi,
541
- encodedSlippage,
542
- ];
543
- },
544
- decode(subData) {
545
- const collAsset = web3_eth_abi_1.default.decodeParameter('address', subData[0]);
546
- const collAssetId = Number(web3_eth_abi_1.default.decodeParameter('uint16', subData[1]));
547
- const debtAsset = web3_eth_abi_1.default.decodeParameter('address', subData[2]);
548
- const debtAssetId = Number(web3_eth_abi_1.default.decodeParameter('uint16', subData[3]));
549
- const closeType = Number(web3_eth_abi_1.default.decodeParameter('uint8', subData[4]));
550
- const marketAddr = web3_eth_abi_1.default.decodeParameter('address', subData[5]);
551
- const owner = web3_eth_abi_1.default.decodeParameter('address', subData[6]);
552
- const tsi = web3_eth_abi_1.default.decodeParameter('uint256', subData[7]);
553
- const slippage = web3_eth_abi_1.default.decodeParameter('uint256', subData[8]);
554
- return {
555
- collAsset, collAssetId, debtAsset, debtAssetId, closeType, marketAddr, owner, tsi, slippage,
556
- };
557
- },
558
- };
559
521
  exports.aaveV3CollateralSwitchSubData = {
560
522
  encode(fromAsset, fromAssetId, toAsset, toAssetId, marketAddr, amountToSwitch, useOnBehalf = false) {
561
523
  const encodedFromAsset = web3_eth_abi_1.default.encodeParameter('address', fromAsset);
@@ -2281,76 +2281,6 @@ describe('Feature: subDataService.ts', () => {
2281
2281
  });
2282
2282
  });
2283
2283
  });
2284
- describe("When testing subDataService.aaveV3InstantCloseGenericSubData", () => {
2285
- const WETH = web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('WETH', enums_1.ChainId.Ethereum).address);
2286
- const USDC = web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('USDC', enums_1.ChainId.Ethereum).address);
2287
- const MARKET = web3Utils.toChecksumAddress('0x87870Bca3F3fD6335C3F4ce8392D69d0B4161d39');
2288
- const USER = web3Utils.toChecksumAddress('0x1234567890123456789012345678901234567890');
2289
- const examples = [
2290
- // TAKE_PROFIT_IN_COLLATERAL, zero tsi and slippage
2291
- [
2292
- [
2293
- '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
2294
- '0x0000000000000000000000000000000000000000000000000000000000000000',
2295
- '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
2296
- '0x0000000000000000000000000000000000000000000000000000000000000001',
2297
- '0x0000000000000000000000000000000000000000000000000000000000000000',
2298
- '0x00000000000000000000000087870bca3f3fd6335c3f4ce8392d69d0b4161d39',
2299
- '0x0000000000000000000000001234567890123456789012345678901234567890',
2300
- '0x0000000000000000000000000000000000000000000000000000000000000000',
2301
- '0x0000000000000000000000000000000000000000000000000000000000000000',
2302
- ],
2303
- [WETH, 0, USDC, 1, enums_1.CloseStrategyType.TAKE_PROFIT_IN_COLLATERAL, MARKET, USER, '0', '0'],
2304
- ],
2305
- // STOP_LOSS_IN_DEBT
2306
- [
2307
- [
2308
- '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
2309
- '0x0000000000000000000000000000000000000000000000000000000000000000',
2310
- '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
2311
- '0x0000000000000000000000000000000000000000000000000000000000000001',
2312
- '0x0000000000000000000000000000000000000000000000000000000000000003',
2313
- '0x00000000000000000000000087870bca3f3fd6335c3f4ce8392d69d0b4161d39',
2314
- '0x0000000000000000000000001234567890123456789012345678901234567890',
2315
- '0x0000000000000000000000000000000000000000000000000de0b6b3a7640000',
2316
- '0x000000000000000000000000000000000000000000000000002386f26fc10000',
2317
- ],
2318
- [WETH, 0, USDC, 1, enums_1.CloseStrategyType.STOP_LOSS_IN_DEBT, MARKET, USER, '1000000000000000000', '10000000000000000'],
2319
- ],
2320
- // TAKE_PROFIT_IN_DEBT_AND_STOP_LOSS_IN_COLLATERAL, asset ids above uint8 range
2321
- [
2322
- [
2323
- '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
2324
- '0x000000000000000000000000000000000000000000000000000000000000012c',
2325
- '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
2326
- '0x0000000000000000000000000000000000000000000000000000000000000190',
2327
- '0x0000000000000000000000000000000000000000000000000000000000000007',
2328
- '0x00000000000000000000000087870bca3f3fd6335c3f4ce8392d69d0b4161d39',
2329
- '0x0000000000000000000000001234567890123456789012345678901234567890',
2330
- '0x00000000000000000000000000000000000000000000000000b1a2bc2ec50000',
2331
- '0x0000000000000000000000000000000000000000000000000011c37937e08000',
2332
- ],
2333
- [WETH, 300, USDC, 400, enums_1.CloseStrategyType.TAKE_PROFIT_IN_DEBT_AND_STOP_LOSS_IN_COLLATERAL, MARKET, USER, '50000000000000000', '5000000000000000'],
2334
- ],
2335
- ];
2336
- describe("encode()", () => {
2337
- examples.forEach(([expected, actual]) => {
2338
- it(`Given ${JSON.stringify(actual)} should return expected value: ${JSON.stringify(expected)}`, () => {
2339
- (0, chai_1.expect)(subDataService.aaveV3InstantCloseGenericSubData.encode(...actual)).to.eql(expected);
2340
- });
2341
- });
2342
- });
2343
- describe("decode()", () => {
2344
- examples.forEach(([encoded, [collAsset, collAssetId, debtAsset, debtAssetId, closeType, marketAddr, user, tsi, slippage]]) => {
2345
- const expected = {
2346
- collAsset, collAssetId, debtAsset, debtAssetId, closeType, marketAddr, owner: user, tsi, slippage,
2347
- };
2348
- it(`Given ${JSON.stringify(encoded)} should return expected value: ${JSON.stringify(expected)}`, () => {
2349
- (0, chai_1.expect)(subDataService.aaveV3InstantCloseGenericSubData.decode(encoded)).to.eql(expected);
2350
- });
2351
- });
2352
- });
2353
- });
2354
2284
  describe('When testing subDataService.sparkLeverageManagementOnPriceSubData', () => {
2355
2285
  describe('encode()', () => {
2356
2286
  const examples = [
@@ -124,8 +124,6 @@ export declare namespace Strategies {
124
124
  CloseOnPriceToColl = "close-on-price-to-collateral",
125
125
  CloseOnPrice = "close-on-price",
126
126
  EoaCloseOnPrice = "eoa-close-on-price",
127
- InstantCloseOnPrice = "instant-close-on-price",
128
- EoaInstantCloseOnPrice = "eoa-instant-close-on-price",
129
127
  TrailingStopToColl = "trailing-stop-to-collateral",
130
128
  TrailingStopToDebt = "trailing-stop-to-debt",
131
129
  Rebond = "rebond",
@@ -252,9 +250,7 @@ export declare namespace Bundles {
252
250
  SPARK_EOA_REPAY_ON_PRICE = 90,
253
251
  SPARK_EOA_BOOST_ON_PRICE = 91,
254
252
  SPARK_EOA_CLOSE = 92,
255
- SPARK_EOA_LIQUIDATION_PROTECTION = 93,
256
- AAVE_V3_SW_INSTANT_CLOSE = 94,
257
- AAVE_V3_EOA_INSTANT_CLOSE = 95
253
+ SPARK_EOA_LIQUIDATION_PROTECTION = 93
258
254
  }
259
255
  enum OptimismIds {
260
256
  AAVE_V3_REPAY = 0,
@@ -144,8 +144,6 @@ var Strategies;
144
144
  Identifiers["CloseOnPriceToColl"] = "close-on-price-to-collateral";
145
145
  Identifiers["CloseOnPrice"] = "close-on-price";
146
146
  Identifiers["EoaCloseOnPrice"] = "eoa-close-on-price";
147
- Identifiers["InstantCloseOnPrice"] = "instant-close-on-price";
148
- Identifiers["EoaInstantCloseOnPrice"] = "eoa-instant-close-on-price";
149
147
  Identifiers["TrailingStopToColl"] = "trailing-stop-to-collateral";
150
148
  Identifiers["TrailingStopToDebt"] = "trailing-stop-to-debt";
151
149
  Identifiers["Rebond"] = "rebond";
@@ -276,8 +274,6 @@ var Bundles;
276
274
  MainnetIds[MainnetIds["SPARK_EOA_BOOST_ON_PRICE"] = 91] = "SPARK_EOA_BOOST_ON_PRICE";
277
275
  MainnetIds[MainnetIds["SPARK_EOA_CLOSE"] = 92] = "SPARK_EOA_CLOSE";
278
276
  MainnetIds[MainnetIds["SPARK_EOA_LIQUIDATION_PROTECTION"] = 93] = "SPARK_EOA_LIQUIDATION_PROTECTION";
279
- MainnetIds[MainnetIds["AAVE_V3_SW_INSTANT_CLOSE"] = 94] = "AAVE_V3_SW_INSTANT_CLOSE";
280
- MainnetIds[MainnetIds["AAVE_V3_EOA_INSTANT_CLOSE"] = 95] = "AAVE_V3_EOA_INSTANT_CLOSE";
281
277
  })(MainnetIds = Bundles.MainnetIds || (Bundles.MainnetIds = {}));
282
278
  let OptimismIds;
283
279
  (function (OptimismIds) {
@@ -653,16 +653,6 @@ export const MAINNET_BUNDLES_INFO = {
653
653
  strategyId: Strategies.Identifiers.EoaLiquidationProtection,
654
654
  protocol: PROTOCOLS.Spark,
655
655
  },
656
- [Bundles.MainnetIds.AAVE_V3_SW_INSTANT_CLOSE]: {
657
- strategyOrBundleId: Bundles.MainnetIds.AAVE_V3_SW_INSTANT_CLOSE,
658
- strategyId: Strategies.Identifiers.InstantCloseOnPrice,
659
- protocol: PROTOCOLS.AaveV3,
660
- },
661
- [Bundles.MainnetIds.AAVE_V3_EOA_INSTANT_CLOSE]: {
662
- strategyOrBundleId: Bundles.MainnetIds.AAVE_V3_EOA_INSTANT_CLOSE,
663
- strategyId: Strategies.Identifiers.EoaInstantCloseOnPrice,
664
- protocol: PROTOCOLS.AaveV3,
665
- },
666
656
  };
667
657
  export const OPTIMISM_BUNDLES_INFO = {
668
658
  [Bundles.OptimismIds.AAVE_V3_REPAY]: {
@@ -317,29 +317,6 @@ function parseAaveV3CloseOnPrice(position, parseData) {
317
317
  }
318
318
  return _position;
319
319
  }
320
- function parseAaveV3InstantCloseOnPrice(position, parseData) {
321
- const _position = cloneDeep(position);
322
- const { subStruct } = parseData.subscriptionEventData;
323
- const triggerData = triggerService.aaveV3QuotePriceRangeTrigger.decode(subStruct.triggerData);
324
- const subData = subDataService.aaveV3InstantCloseGenericSubData.decode(subStruct.subData);
325
- const { takeProfitType, stopLossType } = getStopLossAndTakeProfitTypeByCloseStrategyType(+subData.closeType);
326
- _position.positionId = getPositionId(_position.chainId, _position.protocol.id, _position.owner, AAVE_V3_MARKET_ADDRESSES[_position.chainId]);
327
- _position.strategyData.decoded.triggerData = triggerData;
328
- _position.strategyData.decoded.subData = subData;
329
- _position.specific = {
330
- collAsset: subData.collAsset,
331
- collAssetId: subData.collAssetId,
332
- debtAsset: subData.debtAsset,
333
- debtAssetId: subData.debtAssetId,
334
- baseToken: triggerData.collToken,
335
- quoteToken: triggerData.debtToken,
336
- stopLossPrice: triggerData.lowerPrice,
337
- takeProfitPrice: triggerData.upperPrice,
338
- stopLossType,
339
- takeProfitType,
340
- };
341
- return _position;
342
- }
343
320
  function parseAaveV3CollateralSwitch(position, parseData) {
344
321
  const _position = cloneDeep(position);
345
322
  const { subStruct } = parseData.subscriptionEventData;
@@ -1239,8 +1216,6 @@ const parsingMethodsMapping = {
1239
1216
  [Strategies.Identifiers.EoaRepayOnPrice]: parseAaveV3LeverageManagementOnPrice,
1240
1217
  [Strategies.Identifiers.EoaBoostOnPrice]: parseAaveV3LeverageManagementOnPrice,
1241
1218
  [Strategies.Identifiers.EoaCloseOnPrice]: parseAaveV3CloseOnPrice,
1242
- [Strategies.Identifiers.InstantCloseOnPrice]: parseAaveV3InstantCloseOnPrice,
1243
- [Strategies.Identifiers.EoaInstantCloseOnPrice]: parseAaveV3InstantCloseOnPrice,
1244
1219
  [Strategies.Identifiers.CollateralSwitch]: parseAaveV3CollateralSwitch,
1245
1220
  [Strategies.Identifiers.LiquidationProtection]: parseAaveV3LiquidationProtection,
1246
1221
  [Strategies.Identifiers.EoaLiquidationProtection]: parseAaveV3LiquidationProtection,
@@ -8,10 +8,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { expect } from 'chai';
11
- import { Bundles, CloseStrategyType, CloseToAssetType, ProtocolIdentifiers, Strategies, } from '../types/enums';
11
+ import { ProtocolIdentifiers, Strategies } from '../types/enums';
12
12
  import '../configuration';
13
13
  import { parseStrategiesAutomatedPosition } from './strategiesService';
14
- import { aaveV3Encode } from './strategySubService';
15
14
  describe('Feature: strategiesService.ts', () => {
16
15
  describe('When testing strategiesService.parseStrategiesAutomatedPosition', () => __awaiter(void 0, void 0, void 0, function* () {
17
16
  // TODO: we should probably write this for every strategy?
@@ -107,65 +106,4 @@ describe('Feature: strategiesService.ts', () => {
107
106
  }));
108
107
  });
109
108
  }));
110
- describe('When parsing Aave V3 instant close bundles', () => {
111
- const owner = '0x1234567890123456789012345678901234567890';
112
- const market = '0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e';
113
- const weth = '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2';
114
- const usdc = '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48';
115
- const bundles = [
116
- ['SW', Bundles.MainnetIds.AAVE_V3_SW_INSTANT_CLOSE, Strategies.Identifiers.InstantCloseOnPrice],
117
- ['EOA', Bundles.MainnetIds.AAVE_V3_EOA_INSTANT_CLOSE, Strategies.Identifiers.EoaInstantCloseOnPrice],
118
- ];
119
- bundles.forEach(([walletType, expectedBundleId, expectedStrategyId]) => {
120
- describe(`${walletType} bundle`, () => {
121
- const [bundleId, isBundle, triggerData, subData] = aaveV3Encode.instantCloseOnPriceGeneric(expectedBundleId, weth, 0, usdc, 1, market, owner, '1000000000000000000', '10000000000000000', 1500, CloseToAssetType.DEBT, 5000, CloseToAssetType.COLLATERAL);
122
- const parseData = {
123
- chainId: 1,
124
- blockNumber: 1,
125
- subscriptionEventData: {
126
- subId: '1',
127
- proxy: owner,
128
- subHash: '0xhash',
129
- subStruct: {
130
- strategyOrBundleId: String(bundleId), isBundle, triggerData, subData,
131
- },
132
- },
133
- strategiesSubsData: { userProxy: owner, isEnabled: true, strategySubHash: '0xhash' },
134
- };
135
- const result = parseStrategiesAutomatedPosition(parseData);
136
- it('should identify the strategy as instant close on price', () => {
137
- expect(result.strategy.strategyOrBundleId).to.equal(expectedBundleId);
138
- expect(result.strategy.strategyId).to.equal(expectedStrategyId);
139
- expect(result.protocol.id).to.equal(ProtocolIdentifiers.StrategiesAutomation.AaveV3);
140
- });
141
- it('should decode sub data including tsi and slippage', () => {
142
- expect(result.strategyData.decoded.subData).to.eql({
143
- collAsset: weth,
144
- collAssetId: 0,
145
- debtAsset: usdc,
146
- debtAssetId: 1,
147
- closeType: CloseStrategyType.TAKE_PROFIT_IN_COLLATERAL_AND_STOP_LOSS_IN_DEBT,
148
- marketAddr: market,
149
- owner,
150
- tsi: '1000000000000000000',
151
- slippage: '10000000000000000',
152
- });
153
- });
154
- it('should fill specific with prices and close types', () => {
155
- expect(result.specific).to.eql({
156
- collAsset: weth,
157
- collAssetId: 0,
158
- debtAsset: usdc,
159
- debtAssetId: 1,
160
- baseToken: weth,
161
- quoteToken: usdc,
162
- stopLossPrice: '1500',
163
- takeProfitPrice: '5000',
164
- stopLossType: CloseToAssetType.DEBT,
165
- takeProfitType: CloseToAssetType.COLLATERAL,
166
- });
167
- });
168
- });
169
- });
170
- });
171
109
  });
@@ -61,7 +61,6 @@ export declare const aaveV3Encode: {
61
61
  liquidationProtection(strategyOrBundleId: number, market: EthereumAddress, user: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number): (number | boolean | string[])[];
62
62
  leverageManagementOnPriceGeneric(strategyOrBundleId: number, price: number, ratioState: RatioState, collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, marketAddr: EthereumAddress, targetRatio: number, user: EthereumAddress): (number | boolean | string[])[];
63
63
  closeOnPriceGeneric(strategyOrBundleId: number, collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, marketAddr: EthereumAddress, user: EthereumAddress, stopLossPrice?: number, stopLossType?: CloseToAssetType, takeProfitPrice?: number, takeProfitType?: CloseToAssetType): (number | boolean | string[])[];
64
- instantCloseOnPriceGeneric(strategyOrBundleId: number, collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, marketAddr: EthereumAddress, user: EthereumAddress, tsi: string, slippage: string, stopLossPrice?: number, stopLossType?: CloseToAssetType, takeProfitPrice?: number, takeProfitType?: CloseToAssetType): (number | boolean | string[])[];
65
64
  collateralSwitch(strategyOrBundleId: number, fromAsset: EthereumAddress, fromAssetId: number, toAsset: EthereumAddress, toAssetId: number, marketAddr: EthereumAddress, amountToSwitch: string, baseTokenAddress: EthereumAddress, quoteTokenAddress: EthereumAddress, price: number, state: RatioState): (number | boolean | string[])[];
66
65
  };
67
66
  export declare const compoundV2Encode: {