@defisaver/automation-sdk 3.1.10 → 3.1.14-spark-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.
Files changed (72) hide show
  1. package/cjs/automation/private/StrategiesAutomation.d.ts +5 -3
  2. package/cjs/automation/private/StrategiesAutomation.js +27 -10
  3. package/cjs/automation/private/StrategiesAutomation.test.js +25 -0
  4. package/cjs/constants/index.d.ts +1 -0
  5. package/cjs/constants/index.js +352 -11
  6. package/cjs/index.d.ts +2 -1
  7. package/cjs/index.js +1 -1
  8. package/cjs/services/ethereumService.js +21 -14
  9. package/cjs/services/ethereumService.test.js +3 -0
  10. package/cjs/services/strategiesService.js +329 -54
  11. package/cjs/services/strategiesService.test.js +1 -0
  12. package/cjs/services/strategySubService.d.ts +24 -5
  13. package/cjs/services/strategySubService.js +116 -10
  14. package/cjs/services/strategySubService.test.js +1049 -173
  15. package/cjs/services/subDataService.d.ts +361 -88
  16. package/cjs/services/subDataService.js +799 -249
  17. package/cjs/services/subDataService.test.js +1287 -142
  18. package/cjs/services/triggerService.d.ts +100 -9
  19. package/cjs/services/triggerService.js +188 -19
  20. package/cjs/services/triggerService.test.js +437 -46
  21. package/cjs/services/utils.d.ts +1 -1
  22. package/cjs/services/utils.js +10 -2
  23. package/cjs/services/utils.test.js +0 -77
  24. package/cjs/types/enums.d.ts +88 -12
  25. package/cjs/types/enums.js +78 -2
  26. package/cjs/types/index.d.ts +59 -1
  27. package/esm/automation/private/StrategiesAutomation.d.ts +5 -3
  28. package/esm/automation/private/StrategiesAutomation.js +27 -10
  29. package/esm/automation/private/StrategiesAutomation.test.js +25 -0
  30. package/esm/constants/index.d.ts +1 -0
  31. package/esm/constants/index.js +351 -10
  32. package/esm/index.d.ts +2 -1
  33. package/esm/index.js +2 -2
  34. package/esm/services/ethereumService.js +21 -14
  35. package/esm/services/ethereumService.test.js +3 -0
  36. package/esm/services/strategiesService.js +330 -55
  37. package/esm/services/strategiesService.test.js +1 -0
  38. package/esm/services/strategySubService.d.ts +24 -5
  39. package/esm/services/strategySubService.js +115 -9
  40. package/esm/services/strategySubService.test.js +1052 -176
  41. package/esm/services/subDataService.d.ts +361 -88
  42. package/esm/services/subDataService.js +799 -249
  43. package/esm/services/subDataService.test.js +1288 -143
  44. package/esm/services/triggerService.d.ts +100 -9
  45. package/esm/services/triggerService.js +187 -18
  46. package/esm/services/triggerService.test.js +438 -47
  47. package/esm/services/utils.d.ts +1 -1
  48. package/esm/services/utils.js +10 -2
  49. package/esm/services/utils.test.js +1 -52
  50. package/esm/types/enums.d.ts +88 -12
  51. package/esm/types/enums.js +78 -2
  52. package/esm/types/index.d.ts +59 -1
  53. package/package.json +4 -5
  54. package/src/automation/private/StrategiesAutomation.test.ts +40 -0
  55. package/src/automation/private/StrategiesAutomation.ts +38 -15
  56. package/src/constants/index.ts +353 -11
  57. package/src/index.ts +4 -2
  58. package/src/services/ethereumService.test.ts +3 -0
  59. package/src/services/ethereumService.ts +23 -16
  60. package/src/services/strategiesService.test.ts +1 -0
  61. package/src/services/strategiesService.ts +387 -72
  62. package/src/services/strategySubService.test.ts +1330 -316
  63. package/src/services/strategySubService.ts +365 -12
  64. package/src/services/subDataService.test.ts +1413 -170
  65. package/src/services/subDataService.ts +1148 -431
  66. package/src/services/triggerService.test.ts +482 -52
  67. package/src/services/triggerService.ts +272 -27
  68. package/src/services/utils.test.ts +0 -59
  69. package/src/services/utils.ts +15 -4
  70. package/src/types/enums.ts +78 -2
  71. package/src/types/index.ts +74 -1
  72. package/umd/index.js +0 -34219
@@ -1,7 +1,7 @@
1
1
  import type Web3 from 'web3';
2
2
  import type { PastEventOptions } from 'web3-eth-contract';
3
3
  import type { Position, Interfaces, EthereumAddress, SubscriptionOptions, Contract, ParseData, BlockNumber } from '../../types';
4
- import type { StrategyModel, SubStorage } from '../../types/contracts/generated/SubStorage';
4
+ import type { StrategyModel, Subscribe, SubStorage, UpdateData } from '../../types/contracts/generated/SubStorage';
5
5
  import type { ChainId } from '../../types/enums';
6
6
  import Automation from './Automation';
7
7
  interface IStrategiesAutomation extends Interfaces.Automation {
@@ -17,14 +17,16 @@ export default class StrategiesAutomation extends Automation {
17
17
  constructor(args: IStrategiesAutomation);
18
18
  protected getEventFromSubStorage(event: string, options?: PastEventOptions): Promise<any[]>;
19
19
  protected getStrategiesSubs(subIds: number[], fromBlock?: BlockNumber): Promise<StrategyModel.StoredSubDataStructOutputStruct[]>;
20
- protected getSubscriptionEventsFromSubStorage(options?: PastEventOptions): Promise<any[]>;
21
- protected getUpdateDataEventsFromSubStorage(options?: PastEventOptions): Promise<any[]>;
20
+ protected getSubscriptionEventsFromSubStorage(options?: PastEventOptions): Promise<Subscribe[]>;
21
+ protected getUpdateDataEventsFromSubStorage(options?: PastEventOptions): Promise<UpdateData[]>;
22
22
  protected getParsedSubscriptions(parseData: ParseData): Position.Automated | null;
23
23
  /**
24
24
  * @description Removes expired Limit Order subscriptions
25
25
  */
26
26
  protected removeExpiredSubscriptions(subscriptions: (Position.Automated | null)[]): (Position.Automated | null)[];
27
27
  private _mergeCheck;
28
+ /** Repay/boost leverage pairs must not merge across different Aave V4 spokes. */
29
+ private _aaveV4MergeSpokesMatch;
28
30
  protected mergeSubs(_subscriptions: (Position.Automated | null)[]): Position.Automated[];
29
31
  protected _getSubscriptions(addresses?: EthereumAddress[], options?: SubscriptionOptions): Promise<(Position.Automated | null)[]>;
30
32
  getSubscriptions(options?: SubscriptionOptions): Promise<(Position.Automated | null)[]>;
@@ -13,6 +13,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  const decimal_js_1 = __importDefault(require("decimal.js"));
16
+ const es6_promise_pool_1 = __importDefault(require("es6-promise-pool"));
16
17
  const enums_1 = require("../../types/enums");
17
18
  const utils_1 = require("../../services/utils");
18
19
  const contractService_1 = require("../../services/contractService");
@@ -103,7 +104,16 @@ class StrategiesAutomation extends Automation_1.default {
103
104
  && (s.protocol.id !== enums_1.ProtocolIdentifiers.StrategiesAutomation.CrvUSD // merge only crvUSD leverage management for the same market
104
105
  || s.strategyData.decoded.subData.controller.toLowerCase() === current.strategyData.decoded.triggerData.controller.toLowerCase())
105
106
  && (s.protocol.id !== enums_1.ProtocolIdentifiers.StrategiesAutomation.MorphoBlue // merge morpho blue with the same marketId
106
- || s.strategyData.decoded.triggerData.marketId.toLowerCase() === current.strategyData.decoded.triggerData.marketId.toLowerCase());
107
+ || s.strategyData.decoded.triggerData.marketId.toLowerCase() === current.strategyData.decoded.triggerData.marketId.toLowerCase())
108
+ && (s.protocol.id !== enums_1.ProtocolIdentifiers.StrategiesAutomation.AaveV4
109
+ || this._aaveV4MergeSpokesMatch(s, current));
110
+ }
111
+ /** Repay/boost leverage pairs must not merge across different Aave V4 spokes. */
112
+ _aaveV4MergeSpokesMatch(s, current) {
113
+ var _a, _b, _c, _d, _e, _f;
114
+ const a = (_c = (_b = (_a = s.strategyData) === null || _a === void 0 ? void 0 : _a.decoded) === null || _b === void 0 ? void 0 : _b.triggerData) === null || _c === void 0 ? void 0 : _c.spoke;
115
+ const b = (_f = (_e = (_d = current.strategyData) === null || _d === void 0 ? void 0 : _d.decoded) === null || _e === void 0 ? void 0 : _e.triggerData) === null || _f === void 0 ? void 0 : _f.spoke;
116
+ return !!a && !!b && a.toLowerCase() === b.toLowerCase();
107
117
  }
108
118
  mergeSubs(_subscriptions) {
109
119
  const mergeBase = _subscriptions.filter(s => (0, utils_1.isDefined)(s) && (0, utils_1.isDefined)(s.specific.mergeWithId));
@@ -125,7 +135,6 @@ class StrategiesAutomation extends Automation_1.default {
125
135
  }
126
136
  });
127
137
  if (mergeExtension.length > 0) {
128
- console.error('Not all merge-able extensions were used', mergeExtension);
129
138
  subscriptions = [...subscriptions, ...mergeExtension.map((s) => (Object.assign(Object.assign({}, s), { subIds: [s.subId] })))];
130
139
  }
131
140
  return subscriptions;
@@ -133,10 +142,10 @@ class StrategiesAutomation extends Automation_1.default {
133
142
  _getSubscriptions(addresses, options) {
134
143
  return __awaiter(this, void 0, void 0, function* () {
135
144
  const _options = Object.assign(Object.assign({}, (0, utils_1.addToObjectIf)((0, utils_1.isDefined)(options), options)), (0, utils_1.addToObjectIf)((0, utils_1.isDefined)(addresses), { filter: { proxy: addresses } }));
136
- let subscriptionEvents = (yield this.getSubscriptionEventsFromSubStorage(_options)); // TODO PlaceholderType
145
+ let subscriptionEvents = yield this.getSubscriptionEventsFromSubStorage(_options);
137
146
  let subscriptions = [];
138
147
  if (subscriptionEvents) {
139
- let strategiesSubs = yield this.getStrategiesSubs(subscriptionEvents.map((e) => e.returnValues.subId), _options.toBlock);
148
+ let strategiesSubs = yield this.getStrategiesSubs(subscriptionEvents.map((e) => +e.returnValues.subId), _options.toBlock);
140
149
  if (_options.enabledOnly) {
141
150
  const filteredSubscriptionEvents = [];
142
151
  strategiesSubs = strategiesSubs.filter((sub, index) => {
@@ -146,20 +155,28 @@ class StrategiesAutomation extends Automation_1.default {
146
155
  });
147
156
  subscriptionEvents = filteredSubscriptionEvents;
148
157
  }
149
- subscriptions = yield Promise.all(strategiesSubs.map((sub, index) => __awaiter(this, void 0, void 0, function* () {
158
+ const replaceSubWithUpdate = (index) => __awaiter(this, void 0, void 0, function* () {
150
159
  var _a;
151
- let latestUpdate = subscriptionEvents[index].returnValues;
160
+ const sub = strategiesSubs[index];
161
+ let latestUpdate = Object.assign({}, subscriptionEvents[index].returnValues);
152
162
  if (latestUpdate.subHash !== (sub === null || sub === void 0 ? void 0 : sub.strategySubHash)) {
153
163
  const updates = yield this.getUpdateDataEventsFromSubStorage(Object.assign(Object.assign({}, (0, utils_1.addToObjectIf)(!!_options, _options)), { filter: { subId: latestUpdate.subId } }));
154
- latestUpdate = Object.assign(Object.assign({}, latestUpdate), (_a = updates === null || updates === void 0 ? void 0 : updates[updates.length - 1]) === null || _a === void 0 ? void 0 : _a.returnValues);
164
+ latestUpdate = Object.assign(Object.assign(Object.assign({}, latestUpdate), (_a = updates === null || updates === void 0 ? void 0 : updates[updates.length - 1]) === null || _a === void 0 ? void 0 : _a.returnValues), { 2: latestUpdate[2] });
155
165
  }
156
- return this.getParsedSubscriptions({
166
+ subscriptions.push(this.getParsedSubscriptions({
157
167
  chainId: this.chainId,
158
168
  blockNumber: subscriptionEvents[index].blockNumber,
159
169
  subscriptionEventData: latestUpdate,
160
170
  strategiesSubsData: sub,
161
- });
162
- })));
171
+ }));
172
+ });
173
+ // eslint-disable-next-line func-names
174
+ const pool = new es6_promise_pool_1.default(function* () {
175
+ for (let index = 0; index < strategiesSubs.length; index++) {
176
+ yield replaceSubWithUpdate(index);
177
+ }
178
+ }, 50);
179
+ yield pool.start();
163
180
  if (options === null || options === void 0 ? void 0 : options.mergeSubs) {
164
181
  subscriptions = this.mergeSubs(subscriptions);
165
182
  }
@@ -667,5 +667,30 @@ describe('Feature: StrategiesAutomation.ts', () => {
667
667
  (0, chai_1.expect)(JSON.stringify(actual)).to.equal(JSON.stringify(expected));
668
668
  }));
669
669
  });
670
+ it('Aave V4: pairs repay/boost merge only when trigger spoke matches (no cross-spoke merge)', () => {
671
+ var _a, _b, _c;
672
+ const spoke1 = '0x0000000000000000000000000000000000000a01';
673
+ const spoke2 = '0x0000000000000000000000000000000000000a02';
674
+ const base = {
675
+ isEnabled: true,
676
+ chainId: 1,
677
+ owner: '0x0000000000000000000000000000000000000b01',
678
+ protocol: { id: 'Aave__V4' },
679
+ strategy: { strategyId: 'leverage-management' },
680
+ blockNumber: 0,
681
+ subHash: '0x1',
682
+ positionId: 'test',
683
+ };
684
+ const boostSpoke1 = Object.assign(Object.assign({}, base), { subId: 1, strategyData: { decoded: { triggerData: { spoke: spoke1 }, subData: {} } }, specific: { mergeId: 'boost', subId2: 1 } });
685
+ const repaySpoke2 = Object.assign(Object.assign({}, base), { subId: 2, strategyData: { decoded: { triggerData: { spoke: spoke2 }, subData: {} } }, specific: { mergeWithId: 'boost', subId1: 2 } });
686
+ const boostSpoke2 = Object.assign(Object.assign({}, base), { subId: 3, strategyData: { decoded: { triggerData: { spoke: spoke2 }, subData: {} } }, specific: { mergeId: 'boost', subId2: 3 } });
687
+ // @ts-ignore — mergeSubs is protected; exercised here as in examples above
688
+ const merged = exampleStrategiesAutomation.mergeSubs([boostSpoke1, repaySpoke2, boostSpoke2]);
689
+ (0, chai_1.expect)(merged).to.have.length(2);
690
+ const mergedPair = merged.find((m) => { var _a; return ((_a = m.subIds) === null || _a === void 0 ? void 0 : _a.length) === 2; });
691
+ const loneBoost = merged.find((m) => { var _a; return ((_a = m.subIds) === null || _a === void 0 ? void 0 : _a.length) === 1; });
692
+ (0, chai_1.expect)((_c = (_b = (_a = mergedPair === null || mergedPair === void 0 ? void 0 : mergedPair.strategyData) === null || _a === void 0 ? void 0 : _a.decoded) === null || _b === void 0 ? void 0 : _b.triggerData) === null || _c === void 0 ? void 0 : _c.spoke).to.equal(spoke2);
693
+ (0, chai_1.expect)(loneBoost === null || loneBoost === void 0 ? void 0 : loneBoost.subId).to.equal(1);
694
+ });
670
695
  }));
671
696
  });
@@ -1,6 +1,7 @@
1
1
  import type { ArbitrumBundleInfo, ArbitrumStrategiesInfo, BundlesInfo, EthereumAddress, Interfaces, MainnetBundleInfo, MainnetStrategiesInfo, OptimismBundleInfo, OptimismStrategiesInfo, BaseBundleInfo, BaseStrategiesInfo, StrategiesInfo } from '../types';
2
2
  import { ProtocolIdentifiers, Strategies, Bundles } from '../types/enums';
3
3
  export declare const ZERO_ADDRESS: EthereumAddress;
4
+ export declare const EMPTY_SLOT: string;
4
5
  export declare const AAVE_V3_VARIABLE_BORROW_RATE = 2;
5
6
  export declare const PROTOCOLS: Record<keyof typeof ProtocolIdentifiers.StrategiesAutomation, Interfaces.Protocol>;
6
7
  export declare const LEGACY_PROTOCOLS: Record<keyof typeof ProtocolIdentifiers.LegacyAutomation, Interfaces.LegacyProtocol>;
@@ -3,12 +3,13 @@ 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.BUNDLE_IDS = exports.BUNDLES_INFO = exports.ARBITRUM_BUNDLES_INFO = exports.BASE_BUNDLES_INFO = exports.OPTIMISM_BUNDLES_INFO = exports.MAINNET_BUNDLES_INFO = exports.STRATEGY_IDS = exports.STRATEGIES_INFO = exports.ARBITRUM_STRATEGIES_INFO = exports.BASE_STRATEGIES_INFO = exports.OPTIMISM_STRATEGIES_INFO = exports.MAINNET_STRATEGIES_INFO = exports.LEGACY_PROTOCOLS = exports.PROTOCOLS = exports.AAVE_V3_VARIABLE_BORROW_RATE = exports.ZERO_ADDRESS = void 0;
6
+ exports.BUNDLE_IDS = exports.BUNDLES_INFO = exports.ARBITRUM_BUNDLES_INFO = exports.BASE_BUNDLES_INFO = exports.OPTIMISM_BUNDLES_INFO = exports.MAINNET_BUNDLES_INFO = exports.STRATEGY_IDS = exports.STRATEGIES_INFO = exports.ARBITRUM_STRATEGIES_INFO = exports.BASE_STRATEGIES_INFO = exports.OPTIMISM_STRATEGIES_INFO = exports.MAINNET_STRATEGIES_INFO = exports.LEGACY_PROTOCOLS = exports.PROTOCOLS = exports.AAVE_V3_VARIABLE_BORROW_RATE = exports.EMPTY_SLOT = exports.ZERO_ADDRESS = void 0;
7
7
  const enums_1 = require("../types/enums");
8
8
  const Protocol_1 = __importDefault(require("../automation/private/Protocol"));
9
9
  const LegacyProtocol_1 = __importDefault(require("../automation/private/LegacyProtocol"));
10
10
  // General
11
11
  exports.ZERO_ADDRESS = '0x0000000000000000000000000000000000000000';
12
+ exports.EMPTY_SLOT = '0x0000000000000000000000000000000000000000000000000000000000000000';
12
13
  exports.AAVE_V3_VARIABLE_BORROW_RATE = 2;
13
14
  exports.PROTOCOLS = (() => {
14
15
  const protocolsMapping = {};
@@ -101,6 +102,26 @@ exports.MAINNET_STRATEGIES_INFO = {
101
102
  strategyId: enums_1.Strategies.Identifiers.Payback,
102
103
  protocol: exports.PROTOCOLS.LiquityV2,
103
104
  },
105
+ [enums_1.Strategies.MainnetIds.AAVE_V3_COLLATERAL_SWITCH]: {
106
+ strategyOrBundleId: enums_1.Strategies.MainnetIds.AAVE_V3_COLLATERAL_SWITCH,
107
+ strategyId: enums_1.Strategies.Identifiers.CollateralSwitch,
108
+ protocol: exports.PROTOCOLS.AaveV3,
109
+ },
110
+ [enums_1.Strategies.MainnetIds.AAVE_V4_COLLATERAL_SWITCH]: {
111
+ strategyOrBundleId: enums_1.Strategies.MainnetIds.AAVE_V4_COLLATERAL_SWITCH,
112
+ strategyId: enums_1.Strategies.Identifiers.CollateralSwitch,
113
+ protocol: exports.PROTOCOLS.AaveV4,
114
+ },
115
+ [enums_1.Strategies.MainnetIds.AAVE_V4_COLLATERAL_SWITCH_EOA]: {
116
+ strategyOrBundleId: enums_1.Strategies.MainnetIds.AAVE_V4_COLLATERAL_SWITCH_EOA,
117
+ strategyId: enums_1.Strategies.Identifiers.EoaCollateralSwitch,
118
+ protocol: exports.PROTOCOLS.AaveV4,
119
+ },
120
+ [enums_1.Strategies.MainnetIds.SPARK_COLLATERAL_SWITCH]: {
121
+ strategyOrBundleId: enums_1.Strategies.MainnetIds.SPARK_COLLATERAL_SWITCH,
122
+ strategyId: enums_1.Strategies.Identifiers.CollateralSwitch,
123
+ protocol: exports.PROTOCOLS.Spark,
124
+ },
104
125
  };
105
126
  exports.OPTIMISM_STRATEGIES_INFO = {
106
127
  [enums_1.Strategies.OptimismIds.EXCHANGE_DCA]: {
@@ -113,6 +134,11 @@ exports.OPTIMISM_STRATEGIES_INFO = {
113
134
  strategyId: enums_1.Strategies.Identifiers.LimitOrder,
114
135
  protocol: exports.PROTOCOLS.Exchange,
115
136
  },
137
+ [enums_1.Strategies.OptimismIds.AAVE_V3_COLLATERAL_SWITCH]: {
138
+ strategyOrBundleId: enums_1.Strategies.OptimismIds.AAVE_V3_COLLATERAL_SWITCH,
139
+ strategyId: enums_1.Strategies.Identifiers.CollateralSwitch,
140
+ protocol: exports.PROTOCOLS.AaveV3,
141
+ },
116
142
  };
117
143
  exports.BASE_STRATEGIES_INFO = {
118
144
  [enums_1.Strategies.BaseIds.EXCHANGE_DCA]: {
@@ -125,6 +151,11 @@ exports.BASE_STRATEGIES_INFO = {
125
151
  strategyId: enums_1.Strategies.Identifiers.LimitOrder,
126
152
  protocol: exports.PROTOCOLS.Exchange,
127
153
  },
154
+ [enums_1.Strategies.BaseIds.AAVE_V3_COLLATERAL_SWITCH]: {
155
+ strategyOrBundleId: enums_1.Strategies.BaseIds.AAVE_V3_COLLATERAL_SWITCH,
156
+ strategyId: enums_1.Strategies.Identifiers.CollateralSwitch,
157
+ protocol: exports.PROTOCOLS.AaveV3,
158
+ },
128
159
  };
129
160
  exports.ARBITRUM_STRATEGIES_INFO = {
130
161
  [enums_1.Strategies.ArbitrumIds.EXCHANGE_DCA]: {
@@ -137,6 +168,11 @@ exports.ARBITRUM_STRATEGIES_INFO = {
137
168
  strategyId: enums_1.Strategies.Identifiers.LimitOrder,
138
169
  protocol: exports.PROTOCOLS.Exchange,
139
170
  },
171
+ [enums_1.Strategies.ArbitrumIds.AAVE_V3_COLLATERAL_SWITCH]: {
172
+ strategyOrBundleId: enums_1.Strategies.ArbitrumIds.AAVE_V3_COLLATERAL_SWITCH,
173
+ strategyId: enums_1.Strategies.Identifiers.CollateralSwitch,
174
+ protocol: exports.PROTOCOLS.AaveV3,
175
+ },
140
176
  };
141
177
  exports.STRATEGIES_INFO = {
142
178
  [enums_1.ChainId.Ethereum]: exports.MAINNET_STRATEGIES_INFO,
@@ -288,16 +324,6 @@ exports.MAINNET_BUNDLES_INFO = {
288
324
  strategyId: enums_1.Strategies.Identifiers.Boost,
289
325
  protocol: exports.PROTOCOLS.Spark,
290
326
  },
291
- [enums_1.Bundles.MainnetIds.SPARK_CLOSE_TO_DEBT]: {
292
- strategyOrBundleId: enums_1.Bundles.MainnetIds.SPARK_CLOSE_TO_DEBT,
293
- strategyId: enums_1.Strategies.Identifiers.CloseToDebt,
294
- protocol: exports.PROTOCOLS.Spark,
295
- },
296
- [enums_1.Bundles.MainnetIds.SPARK_CLOSE_TO_COLLATERAL]: {
297
- strategyOrBundleId: enums_1.Bundles.MainnetIds.SPARK_CLOSE_TO_COLLATERAL,
298
- strategyId: enums_1.Strategies.Identifiers.CloseToCollateral,
299
- protocol: exports.PROTOCOLS.Spark,
300
- },
301
327
  [enums_1.Bundles.MainnetIds.AAVE_V2_REPAY]: {
302
328
  strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V2_REPAY,
303
329
  strategyId: enums_1.Strategies.Identifiers.Repay,
@@ -398,6 +424,131 @@ exports.MAINNET_BUNDLES_INFO = {
398
424
  strategyId: enums_1.Strategies.Identifiers.Boost,
399
425
  protocol: exports.PROTOCOLS.FluidT1,
400
426
  },
427
+ [enums_1.Bundles.MainnetIds.COMP_V3_SW_REPAY_ON_PRICE]: {
428
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.COMP_V3_SW_REPAY_ON_PRICE,
429
+ strategyId: enums_1.Strategies.Identifiers.RepayOnPrice,
430
+ protocol: exports.PROTOCOLS.CompoundV3,
431
+ },
432
+ [enums_1.Bundles.MainnetIds.COMP_V3_SW_BOOST_ON_PRICE]: {
433
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.COMP_V3_SW_BOOST_ON_PRICE,
434
+ strategyId: enums_1.Strategies.Identifiers.BoostOnPrice,
435
+ protocol: exports.PROTOCOLS.CompoundV3,
436
+ },
437
+ [enums_1.Bundles.MainnetIds.COMP_V3_SW_CLOSE]: {
438
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.COMP_V3_SW_CLOSE,
439
+ strategyId: enums_1.Strategies.Identifiers.CloseOnPrice,
440
+ protocol: exports.PROTOCOLS.CompoundV3,
441
+ },
442
+ [enums_1.Bundles.MainnetIds.COMP_V3_EOA_REPAY_ON_PRICE]: {
443
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.COMP_V3_EOA_REPAY_ON_PRICE,
444
+ strategyId: enums_1.Strategies.Identifiers.EoaRepayOnPrice,
445
+ protocol: exports.PROTOCOLS.CompoundV3,
446
+ },
447
+ [enums_1.Bundles.MainnetIds.COMP_V3_EOA_BOOST_ON_PRICE]: {
448
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.COMP_V3_EOA_BOOST_ON_PRICE,
449
+ strategyId: enums_1.Strategies.Identifiers.EoaBoostOnPrice,
450
+ protocol: exports.PROTOCOLS.CompoundV3,
451
+ },
452
+ [enums_1.Bundles.MainnetIds.COMP_V3_EOA_CLOSE]: {
453
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.COMP_V3_EOA_CLOSE,
454
+ strategyId: enums_1.Strategies.Identifiers.EoaCloseOnPrice,
455
+ protocol: exports.PROTOCOLS.CompoundV3,
456
+ },
457
+ [enums_1.Bundles.MainnetIds.AAVE_V3_EOA_REPAY]: {
458
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V3_EOA_REPAY,
459
+ strategyId: enums_1.Strategies.Identifiers.EoaRepay,
460
+ protocol: exports.PROTOCOLS.AaveV3,
461
+ },
462
+ [enums_1.Bundles.MainnetIds.AAVE_V3_EOA_BOOST]: {
463
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V3_EOA_BOOST,
464
+ strategyId: enums_1.Strategies.Identifiers.EoaBoost,
465
+ protocol: exports.PROTOCOLS.AaveV3,
466
+ },
467
+ [enums_1.Bundles.MainnetIds.AAVE_V3_EOA_REPAY_ON_PRICE]: {
468
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V3_EOA_REPAY_ON_PRICE,
469
+ strategyId: enums_1.Strategies.Identifiers.EoaRepayOnPrice,
470
+ protocol: exports.PROTOCOLS.AaveV3,
471
+ },
472
+ [enums_1.Bundles.MainnetIds.AAVE_V3_EOA_BOOST_ON_PRICE]: {
473
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V3_EOA_BOOST_ON_PRICE,
474
+ strategyId: enums_1.Strategies.Identifiers.EoaBoostOnPrice,
475
+ protocol: exports.PROTOCOLS.AaveV3,
476
+ },
477
+ [enums_1.Bundles.MainnetIds.AAVE_V3_EOA_CLOSE]: {
478
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
479
+ strategyId: enums_1.Strategies.Identifiers.EoaCloseOnPrice,
480
+ protocol: exports.PROTOCOLS.AaveV3,
481
+ },
482
+ [enums_1.Bundles.MainnetIds.SPARK_CLOSE]: {
483
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.SPARK_CLOSE,
484
+ strategyId: enums_1.Strategies.Identifiers.CloseOnPrice,
485
+ protocol: exports.PROTOCOLS.Spark,
486
+ },
487
+ [enums_1.Bundles.MainnetIds.MORPHO_BLUE_CLOSE]: {
488
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.MORPHO_BLUE_CLOSE,
489
+ strategyId: enums_1.Strategies.Identifiers.CloseOnPrice,
490
+ protocol: exports.PROTOCOLS.MorphoBlue,
491
+ },
492
+ [enums_1.Bundles.MainnetIds.SPARK_REPAY_ON_PRICE]: {
493
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.SPARK_REPAY_ON_PRICE,
494
+ strategyId: enums_1.Strategies.Identifiers.RepayOnPrice,
495
+ protocol: exports.PROTOCOLS.Spark,
496
+ },
497
+ [enums_1.Bundles.MainnetIds.SPARK_BOOST_ON_PRICE]: {
498
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.SPARK_BOOST_ON_PRICE,
499
+ strategyId: enums_1.Strategies.Identifiers.BoostOnPrice,
500
+ protocol: exports.PROTOCOLS.Spark,
501
+ },
502
+ [enums_1.Bundles.MainnetIds.AAVE_V4_REPAY]: {
503
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V4_REPAY,
504
+ strategyId: enums_1.Strategies.Identifiers.Repay,
505
+ protocol: exports.PROTOCOLS.AaveV4,
506
+ },
507
+ [enums_1.Bundles.MainnetIds.AAVE_V4_BOOST]: {
508
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V4_BOOST,
509
+ strategyId: enums_1.Strategies.Identifiers.Boost,
510
+ protocol: exports.PROTOCOLS.AaveV4,
511
+ },
512
+ [enums_1.Bundles.MainnetIds.AAVE_V4_REPAY_ON_PRICE]: {
513
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V4_REPAY_ON_PRICE,
514
+ strategyId: enums_1.Strategies.Identifiers.RepayOnPrice,
515
+ protocol: exports.PROTOCOLS.AaveV4,
516
+ },
517
+ [enums_1.Bundles.MainnetIds.AAVE_V4_BOOST_ON_PRICE]: {
518
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V4_BOOST_ON_PRICE,
519
+ strategyId: enums_1.Strategies.Identifiers.BoostOnPrice,
520
+ protocol: exports.PROTOCOLS.AaveV4,
521
+ },
522
+ [enums_1.Bundles.MainnetIds.AAVE_V4_CLOSE]: {
523
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V4_CLOSE,
524
+ strategyId: enums_1.Strategies.Identifiers.CloseOnPrice,
525
+ protocol: exports.PROTOCOLS.AaveV4,
526
+ },
527
+ [enums_1.Bundles.MainnetIds.AAVE_V4_EOA_REPAY]: {
528
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V4_EOA_REPAY,
529
+ strategyId: enums_1.Strategies.Identifiers.EoaRepay,
530
+ protocol: exports.PROTOCOLS.AaveV4,
531
+ },
532
+ [enums_1.Bundles.MainnetIds.AAVE_V4_EOA_BOOST]: {
533
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V4_EOA_BOOST,
534
+ strategyId: enums_1.Strategies.Identifiers.EoaBoost,
535
+ protocol: exports.PROTOCOLS.AaveV4,
536
+ },
537
+ [enums_1.Bundles.MainnetIds.AAVE_V4_EOA_REPAY_ON_PRICE]: {
538
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V4_EOA_REPAY_ON_PRICE,
539
+ strategyId: enums_1.Strategies.Identifiers.EoaRepayOnPrice,
540
+ protocol: exports.PROTOCOLS.AaveV4,
541
+ },
542
+ [enums_1.Bundles.MainnetIds.AAVE_V4_EOA_BOOST_ON_PRICE]: {
543
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V4_EOA_BOOST_ON_PRICE,
544
+ strategyId: enums_1.Strategies.Identifiers.EoaBoostOnPrice,
545
+ protocol: exports.PROTOCOLS.AaveV4,
546
+ },
547
+ [enums_1.Bundles.MainnetIds.AAVE_V4_EOA_CLOSE]: {
548
+ strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V4_EOA_CLOSE,
549
+ strategyId: enums_1.Strategies.Identifiers.EoaCloseOnPrice,
550
+ protocol: exports.PROTOCOLS.AaveV4,
551
+ },
401
552
  };
402
553
  exports.OPTIMISM_BUNDLES_INFO = {
403
554
  [enums_1.Bundles.OptimismIds.AAVE_V3_REPAY]: {
@@ -430,6 +581,31 @@ exports.OPTIMISM_BUNDLES_INFO = {
430
581
  strategyId: enums_1.Strategies.Identifiers.RepayOnPrice,
431
582
  protocol: exports.PROTOCOLS.AaveV3,
432
583
  },
584
+ [enums_1.Bundles.OptimismIds.AAVE_V3_EOA_REPAY]: {
585
+ strategyOrBundleId: enums_1.Bundles.OptimismIds.AAVE_V3_EOA_REPAY,
586
+ strategyId: enums_1.Strategies.Identifiers.EoaRepay,
587
+ protocol: exports.PROTOCOLS.AaveV3,
588
+ },
589
+ [enums_1.Bundles.OptimismIds.AAVE_V3_EOA_BOOST]: {
590
+ strategyOrBundleId: enums_1.Bundles.OptimismIds.AAVE_V3_EOA_BOOST,
591
+ strategyId: enums_1.Strategies.Identifiers.EoaBoost,
592
+ protocol: exports.PROTOCOLS.AaveV3,
593
+ },
594
+ [enums_1.Bundles.OptimismIds.AAVE_V3_EOA_REPAY_ON_PRICE]: {
595
+ strategyOrBundleId: enums_1.Bundles.OptimismIds.AAVE_V3_EOA_REPAY_ON_PRICE,
596
+ strategyId: enums_1.Strategies.Identifiers.EoaRepayOnPrice,
597
+ protocol: exports.PROTOCOLS.AaveV3,
598
+ },
599
+ [enums_1.Bundles.OptimismIds.AAVE_V3_EOA_BOOST_ON_PRICE]: {
600
+ strategyOrBundleId: enums_1.Bundles.OptimismIds.AAVE_V3_EOA_BOOST_ON_PRICE,
601
+ strategyId: enums_1.Strategies.Identifiers.EoaBoostOnPrice,
602
+ protocol: exports.PROTOCOLS.AaveV3,
603
+ },
604
+ [enums_1.Bundles.OptimismIds.AAVE_V3_EOA_CLOSE]: {
605
+ strategyOrBundleId: enums_1.Bundles.OptimismIds.AAVE_V3_EOA_CLOSE,
606
+ strategyId: enums_1.Strategies.Identifiers.EoaCloseOnPrice,
607
+ protocol: exports.PROTOCOLS.AaveV3,
608
+ },
433
609
  };
434
610
  exports.BASE_BUNDLES_INFO = {
435
611
  [enums_1.Bundles.BaseIds.AAVE_V3_REPAY]: {
@@ -497,6 +673,76 @@ exports.BASE_BUNDLES_INFO = {
497
673
  strategyId: enums_1.Strategies.Identifiers.Boost,
498
674
  protocol: exports.PROTOCOLS.FluidT1,
499
675
  },
676
+ [enums_1.Bundles.BaseIds.COMP_V3_SW_REPAY_ON_PRICE]: {
677
+ strategyOrBundleId: enums_1.Bundles.BaseIds.COMP_V3_SW_REPAY_ON_PRICE,
678
+ strategyId: enums_1.Strategies.Identifiers.RepayOnPrice,
679
+ protocol: exports.PROTOCOLS.CompoundV3,
680
+ },
681
+ [enums_1.Bundles.BaseIds.COMP_V3_SW_BOOST_ON_PRICE]: {
682
+ strategyOrBundleId: enums_1.Bundles.BaseIds.COMP_V3_SW_BOOST_ON_PRICE,
683
+ strategyId: enums_1.Strategies.Identifiers.BoostOnPrice,
684
+ protocol: exports.PROTOCOLS.CompoundV3,
685
+ },
686
+ [enums_1.Bundles.BaseIds.COMP_V3_SW_CLOSE]: {
687
+ strategyOrBundleId: enums_1.Bundles.BaseIds.COMP_V3_SW_CLOSE,
688
+ strategyId: enums_1.Strategies.Identifiers.CloseOnPrice,
689
+ protocol: exports.PROTOCOLS.CompoundV3,
690
+ },
691
+ [enums_1.Bundles.BaseIds.COMP_V3_EOA_REPAY_ON_PRICE]: {
692
+ strategyOrBundleId: enums_1.Bundles.BaseIds.COMP_V3_EOA_REPAY_ON_PRICE,
693
+ strategyId: enums_1.Strategies.Identifiers.EoaRepayOnPrice,
694
+ protocol: exports.PROTOCOLS.CompoundV3,
695
+ },
696
+ [enums_1.Bundles.BaseIds.COMP_V3_EOA_BOOST_ON_PRICE]: {
697
+ strategyOrBundleId: enums_1.Bundles.BaseIds.COMP_V3_EOA_BOOST_ON_PRICE,
698
+ strategyId: enums_1.Strategies.Identifiers.EoaBoostOnPrice,
699
+ protocol: exports.PROTOCOLS.CompoundV3,
700
+ },
701
+ [enums_1.Bundles.BaseIds.COMP_V3_EOA_CLOSE]: {
702
+ strategyOrBundleId: enums_1.Bundles.BaseIds.COMP_V3_EOA_CLOSE,
703
+ strategyId: enums_1.Strategies.Identifiers.EoaCloseOnPrice,
704
+ protocol: exports.PROTOCOLS.CompoundV3,
705
+ },
706
+ [enums_1.Bundles.BaseIds.COMP_V3_EOA_REPAY]: {
707
+ strategyOrBundleId: enums_1.Bundles.BaseIds.COMP_V3_EOA_REPAY,
708
+ strategyId: enums_1.Strategies.Identifiers.EoaRepay,
709
+ protocol: exports.PROTOCOLS.CompoundV3,
710
+ },
711
+ [enums_1.Bundles.BaseIds.COMP_V3_EOA_BOOST]: {
712
+ strategyOrBundleId: enums_1.Bundles.BaseIds.COMP_V3_EOA_BOOST,
713
+ strategyId: enums_1.Strategies.Identifiers.EoaBoost,
714
+ protocol: exports.PROTOCOLS.CompoundV3,
715
+ },
716
+ [enums_1.Bundles.BaseIds.AAVE_V3_EOA_REPAY]: {
717
+ strategyOrBundleId: enums_1.Bundles.BaseIds.AAVE_V3_EOA_REPAY,
718
+ strategyId: enums_1.Strategies.Identifiers.EoaRepay,
719
+ protocol: exports.PROTOCOLS.AaveV3,
720
+ },
721
+ [enums_1.Bundles.BaseIds.AAVE_V3_EOA_BOOST]: {
722
+ strategyOrBundleId: enums_1.Bundles.BaseIds.AAVE_V3_EOA_BOOST,
723
+ strategyId: enums_1.Strategies.Identifiers.EoaBoost,
724
+ protocol: exports.PROTOCOLS.AaveV3,
725
+ },
726
+ [enums_1.Bundles.BaseIds.AAVE_V3_EOA_REPAY_ON_PRICE]: {
727
+ strategyOrBundleId: enums_1.Bundles.BaseIds.AAVE_V3_EOA_REPAY_ON_PRICE,
728
+ strategyId: enums_1.Strategies.Identifiers.EoaRepayOnPrice,
729
+ protocol: exports.PROTOCOLS.AaveV3,
730
+ },
731
+ [enums_1.Bundles.BaseIds.AAVE_V3_EOA_BOOST_ON_PRICE]: {
732
+ strategyOrBundleId: enums_1.Bundles.BaseIds.AAVE_V3_EOA_BOOST_ON_PRICE,
733
+ strategyId: enums_1.Strategies.Identifiers.EoaBoostOnPrice,
734
+ protocol: exports.PROTOCOLS.AaveV3,
735
+ },
736
+ [enums_1.Bundles.BaseIds.AAVE_V3_EOA_CLOSE]: {
737
+ strategyOrBundleId: enums_1.Bundles.BaseIds.AAVE_V3_EOA_CLOSE,
738
+ strategyId: enums_1.Strategies.Identifiers.EoaCloseOnPrice,
739
+ protocol: exports.PROTOCOLS.AaveV3,
740
+ },
741
+ [enums_1.Bundles.BaseIds.MORPHO_BLUE_CLOSE]: {
742
+ strategyOrBundleId: enums_1.Bundles.BaseIds.MORPHO_BLUE_CLOSE,
743
+ strategyId: enums_1.Strategies.Identifiers.CloseOnPrice,
744
+ protocol: exports.PROTOCOLS.MorphoBlue,
745
+ },
500
746
  };
501
747
  exports.ARBITRUM_BUNDLES_INFO = {
502
748
  [enums_1.Bundles.ArbitrumIds.AAVE_V3_REPAY]: {
@@ -549,6 +795,101 @@ exports.ARBITRUM_BUNDLES_INFO = {
549
795
  strategyId: enums_1.Strategies.Identifiers.Boost,
550
796
  protocol: exports.PROTOCOLS.FluidT1,
551
797
  },
798
+ [enums_1.Bundles.ArbitrumIds.COMP_V3_SW_REPAY_ON_PRICE]: {
799
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.COMP_V3_SW_REPAY_ON_PRICE,
800
+ strategyId: enums_1.Strategies.Identifiers.RepayOnPrice,
801
+ protocol: exports.PROTOCOLS.CompoundV3,
802
+ },
803
+ [enums_1.Bundles.ArbitrumIds.COMP_V3_SW_BOOST_ON_PRICE]: {
804
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.COMP_V3_SW_BOOST_ON_PRICE,
805
+ strategyId: enums_1.Strategies.Identifiers.BoostOnPrice,
806
+ protocol: exports.PROTOCOLS.CompoundV3,
807
+ },
808
+ [enums_1.Bundles.ArbitrumIds.COMP_V3_SW_CLOSE]: {
809
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.COMP_V3_SW_CLOSE,
810
+ strategyId: enums_1.Strategies.Identifiers.CloseOnPrice,
811
+ protocol: exports.PROTOCOLS.CompoundV3,
812
+ },
813
+ [enums_1.Bundles.ArbitrumIds.COMP_V3_EOA_REPAY_ON_PRICE]: {
814
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.COMP_V3_EOA_REPAY_ON_PRICE,
815
+ strategyId: enums_1.Strategies.Identifiers.EoaRepayOnPrice,
816
+ protocol: exports.PROTOCOLS.CompoundV3,
817
+ },
818
+ [enums_1.Bundles.ArbitrumIds.COMP_V3_EOA_BOOST_ON_PRICE]: {
819
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.COMP_V3_EOA_BOOST_ON_PRICE,
820
+ strategyId: enums_1.Strategies.Identifiers.EoaBoostOnPrice,
821
+ protocol: exports.PROTOCOLS.CompoundV3,
822
+ },
823
+ [enums_1.Bundles.ArbitrumIds.COMP_V3_EOA_CLOSE]: {
824
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.COMP_V3_EOA_CLOSE,
825
+ strategyId: enums_1.Strategies.Identifiers.EoaCloseOnPrice,
826
+ protocol: exports.PROTOCOLS.CompoundV3,
827
+ },
828
+ [enums_1.Bundles.ArbitrumIds.COMP_V3_EOA_REPAY]: {
829
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.COMP_V3_EOA_REPAY,
830
+ strategyId: enums_1.Strategies.Identifiers.EoaRepay,
831
+ protocol: exports.PROTOCOLS.CompoundV3,
832
+ },
833
+ [enums_1.Bundles.ArbitrumIds.COMP_V3_EOA_BOOST]: {
834
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.COMP_V3_EOA_BOOST,
835
+ strategyId: enums_1.Strategies.Identifiers.EoaBoost,
836
+ protocol: exports.PROTOCOLS.CompoundV3,
837
+ },
838
+ [enums_1.Bundles.ArbitrumIds.AAVE_V3_EOA_REPAY]: {
839
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.AAVE_V3_EOA_REPAY,
840
+ strategyId: enums_1.Strategies.Identifiers.EoaRepay,
841
+ protocol: exports.PROTOCOLS.AaveV3,
842
+ },
843
+ [enums_1.Bundles.ArbitrumIds.AAVE_V3_EOA_BOOST]: {
844
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.AAVE_V3_EOA_BOOST,
845
+ strategyId: enums_1.Strategies.Identifiers.EoaBoost,
846
+ protocol: exports.PROTOCOLS.AaveV3,
847
+ },
848
+ [enums_1.Bundles.ArbitrumIds.AAVE_V3_EOA_REPAY_ON_PRICE]: {
849
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.AAVE_V3_EOA_REPAY_ON_PRICE,
850
+ strategyId: enums_1.Strategies.Identifiers.EoaRepayOnPrice,
851
+ protocol: exports.PROTOCOLS.AaveV3,
852
+ },
853
+ [enums_1.Bundles.ArbitrumIds.AAVE_V3_EOA_BOOST_ON_PRICE]: {
854
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.AAVE_V3_EOA_BOOST_ON_PRICE,
855
+ strategyId: enums_1.Strategies.Identifiers.EoaBoostOnPrice,
856
+ protocol: exports.PROTOCOLS.AaveV3,
857
+ },
858
+ [enums_1.Bundles.ArbitrumIds.AAVE_V3_EOA_CLOSE]: {
859
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.AAVE_V3_EOA_CLOSE,
860
+ strategyId: enums_1.Strategies.Identifiers.EoaCloseOnPrice,
861
+ protocol: exports.PROTOCOLS.AaveV3,
862
+ },
863
+ [enums_1.Bundles.ArbitrumIds.MORPHO_BLUE_REPAY]: {
864
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.MORPHO_BLUE_REPAY,
865
+ strategyId: enums_1.Strategies.Identifiers.Repay,
866
+ protocol: exports.PROTOCOLS.MorphoBlue,
867
+ },
868
+ [enums_1.Bundles.ArbitrumIds.MORPHO_BLUE_BOOST]: {
869
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.MORPHO_BLUE_BOOST,
870
+ strategyId: enums_1.Strategies.Identifiers.Boost,
871
+ protocol: exports.PROTOCOLS.MorphoBlue,
872
+ },
873
+ [enums_1.Bundles.ArbitrumIds.MORPHO_BLUE_BOOST_ON_PRICE]: {
874
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.MORPHO_BLUE_BOOST_ON_PRICE,
875
+ strategyId: enums_1.Strategies.Identifiers.BoostOnPrice,
876
+ protocol: exports.PROTOCOLS.MorphoBlue,
877
+ },
878
+ [enums_1.Bundles.ArbitrumIds.MORPHO_BLUE_EOA_REPAY]: {
879
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.MORPHO_BLUE_EOA_REPAY,
880
+ strategyId: enums_1.Strategies.Identifiers.EoaRepay,
881
+ protocol: exports.PROTOCOLS.MorphoBlue,
882
+ },
883
+ [enums_1.Bundles.ArbitrumIds.MORPHO_BLUE_EOA_BOOST]: {
884
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.MORPHO_BLUE_EOA_BOOST,
885
+ strategyId: enums_1.Strategies.Identifiers.EoaBoost,
886
+ protocol: exports.PROTOCOLS.MorphoBlue,
887
+ },
888
+ [enums_1.Bundles.ArbitrumIds.MORPHO_BLUE_CLOSE]: {
889
+ strategyOrBundleId: enums_1.Bundles.ArbitrumIds.MORPHO_BLUE_CLOSE,
890
+ strategyId: enums_1.Strategies.Identifiers.CloseOnPrice,
891
+ protocol: exports.PROTOCOLS.MorphoBlue,
892
+ },
552
893
  };
553
894
  exports.BUNDLES_INFO = {
554
895
  [enums_1.ChainId.Ethereum]: exports.MAINNET_BUNDLES_INFO,
package/cjs/index.d.ts CHANGED
@@ -13,11 +13,12 @@ import * as strategiesService from './services/strategiesService';
13
13
  import * as constants from './constants';
14
14
  import * as enums from './types/enums';
15
15
  import type * as types from './types';
16
- import { getRatioStateInfoForAaveCloseStrategy, compareSubHashes, encodeSubId } from './services/utils';
16
+ import { getRatioStateInfoForAaveCloseStrategy, compareSubHashes, encodeSubId, getCloseStrategyType } from './services/utils';
17
17
  declare const utils: {
18
18
  getRatioStateInfoForAaveCloseStrategy: typeof getRatioStateInfoForAaveCloseStrategy;
19
19
  compareSubHashes: typeof compareSubHashes;
20
20
  encodeSubId: typeof encodeSubId;
21
+ getCloseStrategyType: typeof getCloseStrategyType;
21
22
  };
22
23
  export { LegacyMakerAutomation, LegacyAaveAutomation, LegacyCompoundAutomation, EthereumStrategies, OptimismStrategies, ArbitrumStrategies, BaseStrategies, triggerService, subDataService, strategySubService, utils, enums, constants, strategiesService, };
23
24
  export type { types };
package/cjs/index.js CHANGED
@@ -60,6 +60,6 @@ const enums = __importStar(require("./types/enums"));
60
60
  exports.enums = enums;
61
61
  const utils_1 = require("./services/utils");
62
62
  const utils = {
63
- getRatioStateInfoForAaveCloseStrategy: utils_1.getRatioStateInfoForAaveCloseStrategy, compareSubHashes: utils_1.compareSubHashes, encodeSubId: utils_1.encodeSubId,
63
+ getRatioStateInfoForAaveCloseStrategy: utils_1.getRatioStateInfoForAaveCloseStrategy, compareSubHashes: utils_1.compareSubHashes, encodeSubId: utils_1.encodeSubId, getCloseStrategyType: utils_1.getCloseStrategyType,
64
64
  };
65
65
  exports.utils = utils;
@@ -19,20 +19,27 @@ const utils_1 = require("./utils");
19
19
  function multicall(web3, chainId, calls, block = 'latest') {
20
20
  return __awaiter(this, void 0, void 0, function* () {
21
21
  const multicallContract = (0, contractService_1.makeUniMulticallContract)(web3, chainId).contract;
22
- const formattedCalls = calls.map((call) => ({
23
- callData: web3_eth_abi_1.default.encodeFunctionCall(call.abiItem, call.params),
24
- target: call.target || '0x0',
25
- gasLimit: call.gasLimit || 1e6,
26
- }));
27
- const callResult = yield multicallContract.methods.multicall(formattedCalls.filter(item => item.target !== '0x0')).call({}, block);
28
- let formattedResult = [];
29
- callResult.returnData.forEach(([success, gasUsed, result], i) => {
30
- const formattedRes = (result !== '0x'
31
- ? web3_eth_abi_1.default.decodeParameters(calls[i].abiItem.outputs, result)
32
- : undefined);
33
- formattedResult = [...formattedResult, formattedRes];
34
- });
35
- return formattedResult;
22
+ const MAX_CALLS_PER_BATCH = 1000;
23
+ const allResults = [];
24
+ // Process each chunk
25
+ for (let i = 0; i < calls.length; i += MAX_CALLS_PER_BATCH) {
26
+ const chunk = calls.slice(i, i + MAX_CALLS_PER_BATCH);
27
+ const formattedCalls = chunk.map((call) => ({
28
+ callData: web3_eth_abi_1.default.encodeFunctionCall(call.abiItem, call.params),
29
+ target: call.target || '0x0',
30
+ gasLimit: call.gasLimit || 1e6,
31
+ }));
32
+ const callResult = yield multicallContract.methods.multicall(formattedCalls).call({}, block);
33
+ let formattedResult = [];
34
+ callResult.returnData.forEach(([success, , result], j) => {
35
+ const formattedRes = (success && result !== '0x'
36
+ ? web3_eth_abi_1.default.decodeParameters(chunk[j].abiItem.outputs, result)
37
+ : undefined);
38
+ formattedResult = [...formattedResult, formattedRes];
39
+ });
40
+ allResults.push(...formattedResult);
41
+ }
42
+ return allResults;
36
43
  });
37
44
  }
38
45
  exports.multicall = multicall;