@defisaver/automation-sdk 3.0.8 → 3.0.9-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.
@@ -12,6 +12,10 @@
12
12
  "42161": {
13
13
  "createdBlock": 19126047,
14
14
  "address": "0x24ab68395660b910BfBF1cc88BaA316BA06354eE"
15
+ },
16
+ "8453": {
17
+ "createdBlock": 3655577,
18
+ "address": "0x44e98bB58d725F2eF93a195F518b335dCB784c78"
15
19
  }
16
20
  }
17
21
  }
@@ -9,6 +9,9 @@
9
9
  },
10
10
  "42161": {
11
11
  "address": "0x1F98415757620B543A52E61c46B32eB19261F984"
12
+ },
13
+ "8453": {
14
+ "address": "0x091e99cb1C49331a94dD62755D168E941AbD0693"
12
15
  }
13
16
  }
14
17
  }
@@ -0,0 +1,5 @@
1
+ import type { Interfaces } from '../../types';
2
+ import StrategiesAutomation from '../private/StrategiesAutomation';
3
+ export default class BaseStrategies extends StrategiesAutomation {
4
+ constructor(args: Interfaces.Automation);
5
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const StrategiesAutomation_1 = __importDefault(require("../private/StrategiesAutomation"));
7
+ const enums_1 = require("../../types/enums");
8
+ class BaseStrategies extends StrategiesAutomation_1.default {
9
+ constructor(args) {
10
+ super(Object.assign(Object.assign({}, args), { chainId: enums_1.ChainId.Base }));
11
+ }
12
+ }
13
+ exports.default = BaseStrategies;
@@ -1,4 +1,4 @@
1
- import type { ArbitrumBundleInfo, ArbitrumStrategiesInfo, BundlesInfo, EthereumAddress, Interfaces, MainnetBundleInfo, MainnetStrategiesInfo, OptimismBundleInfo, OptimismStrategiesInfo, StrategiesInfo } from '../types';
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
4
  export declare const AAVE_V3_VARIABLE_BORROW_RATE = 2;
@@ -6,19 +6,23 @@ export declare const PROTOCOLS: Record<keyof typeof ProtocolIdentifiers.Strategi
6
6
  export declare const LEGACY_PROTOCOLS: Record<keyof typeof ProtocolIdentifiers.LegacyAutomation, Interfaces.LegacyProtocol>;
7
7
  export declare const MAINNET_STRATEGIES_INFO: MainnetStrategiesInfo;
8
8
  export declare const OPTIMISM_STRATEGIES_INFO: OptimismStrategiesInfo;
9
+ export declare const BASE_STRATEGIES_INFO: BaseStrategiesInfo;
9
10
  export declare const ARBITRUM_STRATEGIES_INFO: ArbitrumStrategiesInfo;
10
11
  export declare const STRATEGIES_INFO: StrategiesInfo;
11
12
  export declare const STRATEGY_IDS: {
12
13
  1: typeof Strategies.MainnetIds;
13
14
  10: typeof Strategies.OptimismIds;
14
15
  42161: typeof Strategies.ArbitrumIds;
16
+ 8453: typeof Strategies.BaseIds;
15
17
  };
16
18
  export declare const MAINNET_BUNDLES_INFO: MainnetBundleInfo;
17
19
  export declare const OPTIMISM_BUNDLES_INFO: OptimismBundleInfo;
20
+ export declare const BASE_BUNDLES_INFO: BaseBundleInfo;
18
21
  export declare const ARBITRUM_BUNDLES_INFO: ArbitrumBundleInfo;
19
22
  export declare const BUNDLES_INFO: BundlesInfo;
20
23
  export declare const BUNDLE_IDS: {
21
24
  1: typeof Bundles.MainnetIds;
22
25
  10: typeof Bundles.OptimismIds;
23
26
  42161: typeof Bundles.ArbitrumIds;
27
+ 8453: typeof Bundles.BaseIds;
24
28
  };
@@ -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.BUNDLE_IDS = exports.BUNDLES_INFO = exports.ARBITRUM_BUNDLES_INFO = exports.OPTIMISM_BUNDLES_INFO = exports.MAINNET_BUNDLES_INFO = exports.STRATEGY_IDS = exports.STRATEGIES_INFO = exports.ARBITRUM_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.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"));
@@ -119,6 +119,18 @@ exports.OPTIMISM_STRATEGIES_INFO = {
119
119
  protocol: exports.PROTOCOLS.AaveV3,
120
120
  },
121
121
  };
122
+ exports.BASE_STRATEGIES_INFO = {
123
+ [enums_1.Strategies.BaseIds.EXCHANGE_DCA]: {
124
+ strategyOrBundleId: enums_1.Strategies.BaseIds.EXCHANGE_DCA,
125
+ strategyId: enums_1.Strategies.Identifiers.Dca,
126
+ protocol: exports.PROTOCOLS.Exchange,
127
+ },
128
+ [enums_1.Strategies.BaseIds.EXCHANGE_LIMIT_ORDER]: {
129
+ strategyOrBundleId: enums_1.Strategies.BaseIds.EXCHANGE_LIMIT_ORDER,
130
+ strategyId: enums_1.Strategies.Identifiers.LimitOrder,
131
+ protocol: exports.PROTOCOLS.Exchange,
132
+ },
133
+ };
122
134
  exports.ARBITRUM_STRATEGIES_INFO = {
123
135
  [enums_1.Strategies.ArbitrumIds.EXCHANGE_DCA]: {
124
136
  strategyOrBundleId: enums_1.Strategies.ArbitrumIds.EXCHANGE_DCA,
@@ -140,11 +152,13 @@ exports.STRATEGIES_INFO = {
140
152
  [enums_1.ChainId.Ethereum]: exports.MAINNET_STRATEGIES_INFO,
141
153
  [enums_1.ChainId.Optimism]: exports.OPTIMISM_STRATEGIES_INFO,
142
154
  [enums_1.ChainId.Arbitrum]: exports.ARBITRUM_STRATEGIES_INFO,
155
+ [enums_1.ChainId.Base]: exports.BASE_STRATEGIES_INFO,
143
156
  };
144
157
  exports.STRATEGY_IDS = {
145
158
  [enums_1.ChainId.Ethereum]: enums_1.Strategies.MainnetIds,
146
159
  [enums_1.ChainId.Optimism]: enums_1.Strategies.OptimismIds,
147
160
  [enums_1.ChainId.Arbitrum]: enums_1.Strategies.ArbitrumIds,
161
+ [enums_1.ChainId.Base]: enums_1.Strategies.BaseIds,
148
162
  };
149
163
  // Bundles info
150
164
  exports.MAINNET_BUNDLES_INFO = {
@@ -377,6 +391,38 @@ exports.OPTIMISM_BUNDLES_INFO = {
377
391
  protocol: exports.PROTOCOLS.AaveV3,
378
392
  },
379
393
  };
394
+ exports.BASE_BUNDLES_INFO = {
395
+ [enums_1.Bundles.BaseIds.AAVE_V3_REPAY]: {
396
+ strategyOrBundleId: enums_1.Bundles.BaseIds.AAVE_V3_REPAY,
397
+ strategyId: enums_1.Strategies.Identifiers.Repay,
398
+ protocol: exports.PROTOCOLS.AaveV3,
399
+ },
400
+ [enums_1.Bundles.BaseIds.AAVE_V3_BOOST]: {
401
+ strategyOrBundleId: enums_1.Bundles.BaseIds.AAVE_V3_BOOST,
402
+ strategyId: enums_1.Strategies.Identifiers.Boost,
403
+ protocol: exports.PROTOCOLS.AaveV3,
404
+ },
405
+ [enums_1.Bundles.BaseIds.AAVE_V3_CLOSE_TO_DEBT]: {
406
+ strategyOrBundleId: enums_1.Bundles.BaseIds.AAVE_V3_CLOSE_TO_DEBT,
407
+ strategyId: enums_1.Strategies.Identifiers.CloseToDebt,
408
+ protocol: exports.PROTOCOLS.AaveV3,
409
+ },
410
+ [enums_1.Bundles.BaseIds.AAVE_V3_CLOSE_TO_COLLATERAL]: {
411
+ strategyOrBundleId: enums_1.Bundles.BaseIds.AAVE_V3_CLOSE_TO_COLLATERAL,
412
+ strategyId: enums_1.Strategies.Identifiers.CloseToCollateral,
413
+ protocol: exports.PROTOCOLS.AaveV3,
414
+ },
415
+ [enums_1.Bundles.BaseIds.COMP_V3_SW_BOOST_BUNDLE]: {
416
+ strategyOrBundleId: enums_1.Bundles.BaseIds.COMP_V3_SW_BOOST_BUNDLE,
417
+ strategyId: enums_1.Strategies.Identifiers.Boost,
418
+ protocol: exports.PROTOCOLS.CompoundV3,
419
+ },
420
+ [enums_1.Bundles.BaseIds.COMP_V3_SW_REPAY_BUNDLE]: {
421
+ strategyOrBundleId: enums_1.Bundles.BaseIds.COMP_V3_SW_REPAY_BUNDLE,
422
+ strategyId: enums_1.Strategies.Identifiers.Repay,
423
+ protocol: exports.PROTOCOLS.CompoundV3,
424
+ },
425
+ };
380
426
  exports.ARBITRUM_BUNDLES_INFO = {
381
427
  [enums_1.Bundles.ArbitrumIds.AAVE_V3_REPAY]: {
382
428
  strategyOrBundleId: enums_1.Bundles.ArbitrumIds.AAVE_V3_REPAY,
@@ -418,9 +464,11 @@ exports.BUNDLES_INFO = {
418
464
  [enums_1.ChainId.Ethereum]: exports.MAINNET_BUNDLES_INFO,
419
465
  [enums_1.ChainId.Optimism]: exports.OPTIMISM_BUNDLES_INFO,
420
466
  [enums_1.ChainId.Arbitrum]: exports.ARBITRUM_BUNDLES_INFO,
467
+ [enums_1.ChainId.Base]: exports.BASE_BUNDLES_INFO,
421
468
  };
422
469
  exports.BUNDLE_IDS = {
423
470
  [enums_1.ChainId.Ethereum]: enums_1.Bundles.MainnetIds,
424
471
  [enums_1.ChainId.Optimism]: enums_1.Bundles.OptimismIds,
425
472
  [enums_1.ChainId.Arbitrum]: enums_1.Bundles.ArbitrumIds,
473
+ [enums_1.ChainId.Base]: enums_1.Bundles.BaseIds,
426
474
  };
package/esm/index.d.ts CHANGED
@@ -5,6 +5,7 @@ import LegacyCompoundAutomation from './automation/public/legacy/LegacyCompoundA
5
5
  import EthereumStrategies from './automation/public/EthereumStrategies';
6
6
  import OptimismStrategies from './automation/public/OptimismStrategies';
7
7
  import ArbitrumStrategies from './automation/public/ArbitrumStrategies';
8
+ import BaseStrategies from './automation/public/BaseStrategies';
8
9
  import * as triggerService from './services/triggerService';
9
10
  import * as subDataService from './services/subDataService';
10
11
  import * as strategySubService from './services/strategySubService';
@@ -18,5 +19,5 @@ declare const utils: {
18
19
  compareSubHashes: typeof compareSubHashes;
19
20
  encodeSubId: typeof encodeSubId;
20
21
  };
21
- export { LegacyMakerAutomation, LegacyAaveAutomation, LegacyCompoundAutomation, EthereumStrategies, OptimismStrategies, ArbitrumStrategies, triggerService, subDataService, strategySubService, utils, enums, constants, strategiesService, };
22
+ export { LegacyMakerAutomation, LegacyAaveAutomation, LegacyCompoundAutomation, EthereumStrategies, OptimismStrategies, ArbitrumStrategies, BaseStrategies, triggerService, subDataService, strategySubService, utils, enums, constants, strategiesService, };
22
23
  export type { types };
package/esm/index.js CHANGED
@@ -30,7 +30,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
30
30
  return (mod && mod.__esModule) ? mod : { "default": mod };
31
31
  };
32
32
  Object.defineProperty(exports, "__esModule", { value: true });
33
- exports.strategiesService = exports.constants = exports.enums = exports.utils = exports.strategySubService = exports.subDataService = exports.triggerService = exports.ArbitrumStrategies = exports.OptimismStrategies = exports.EthereumStrategies = exports.LegacyCompoundAutomation = exports.LegacyAaveAutomation = exports.LegacyMakerAutomation = void 0;
33
+ exports.strategiesService = exports.constants = exports.enums = exports.utils = exports.strategySubService = exports.subDataService = exports.triggerService = exports.BaseStrategies = exports.ArbitrumStrategies = exports.OptimismStrategies = exports.EthereumStrategies = exports.LegacyCompoundAutomation = exports.LegacyAaveAutomation = exports.LegacyMakerAutomation = void 0;
34
34
  require("./configuration");
35
35
  const LegacyMakerAutomation_1 = __importDefault(require("./automation/public/legacy/LegacyMakerAutomation"));
36
36
  exports.LegacyMakerAutomation = LegacyMakerAutomation_1.default;
@@ -44,6 +44,8 @@ const OptimismStrategies_1 = __importDefault(require("./automation/public/Optimi
44
44
  exports.OptimismStrategies = OptimismStrategies_1.default;
45
45
  const ArbitrumStrategies_1 = __importDefault(require("./automation/public/ArbitrumStrategies"));
46
46
  exports.ArbitrumStrategies = ArbitrumStrategies_1.default;
47
+ const BaseStrategies_1 = __importDefault(require("./automation/public/BaseStrategies"));
48
+ exports.BaseStrategies = BaseStrategies_1.default;
47
49
  const triggerService = __importStar(require("./services/triggerService"));
48
50
  exports.triggerService = triggerService;
49
51
  const subDataService = __importStar(require("./services/subDataService"));
@@ -38,6 +38,7 @@ const AAVE_V3_MARKET_ADDRESSES = {
38
38
  [enums_1.ChainId.Ethereum]: '0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e',
39
39
  [enums_1.ChainId.Optimism]: '0xa97684ead0e402dC232d5A977953DF7ECBaB3CDb',
40
40
  [enums_1.ChainId.Arbitrum]: '0xa97684ead0e402dC232d5A977953DF7ECBaB3CDb',
41
+ [enums_1.ChainId.Base]: '0xe20fCBdBfFC4Dd138cE8b2E6FBb6CB49777ad64D',
41
42
  };
42
43
  function parseMakerSavingsLiqProtection(position, parseData) {
43
44
  const _position = (0, lodash_1.cloneDeep)(position);
@@ -2,7 +2,7 @@ import type { OrderType } from '../types/enums';
2
2
  import { Bundles, ChainId, RatioState, Strategies } from '../types/enums';
3
3
  import type { EthereumAddress, StrategyOrBundleIds } from '../types';
4
4
  export declare const makerEncode: {
5
- repayFromSavings(bundleId: StrategyOrBundleIds, vaultId: number, triggerRepayRatio: number, targetRepayRatio: number, isBundle?: boolean, chainId?: ChainId, daiAddr?: EthereumAddress, mcdCdpManagerAddr?: EthereumAddress): (boolean | string[] | Strategies.MainnetIds | Strategies.OptimismIds | Strategies.ArbitrumIds | Bundles.MainnetIds | Bundles.OptimismIds | Bundles.ArbitrumIds)[];
5
+ repayFromSavings(bundleId: StrategyOrBundleIds, vaultId: number, triggerRepayRatio: number, targetRepayRatio: number, isBundle?: boolean, chainId?: ChainId, daiAddr?: EthereumAddress, mcdCdpManagerAddr?: EthereumAddress): (boolean | string[] | Strategies.MainnetIds | Strategies.OptimismIds | Strategies.ArbitrumIds | Strategies.BaseIds | Bundles.MainnetIds | Bundles.OptimismIds | Bundles.ArbitrumIds | Bundles.BaseIds)[];
6
6
  closeOnPrice(vaultId: number, ratioState: RatioState, price: string, closeToAssetAddr: EthereumAddress, chainlinkCollAddress: EthereumAddress, chainId?: ChainId, daiAddr?: EthereumAddress, mcdCdpManagerAddr?: EthereumAddress): (boolean | string[] | Strategies.MainnetIds)[];
7
7
  trailingStop(vaultId: number, triggerPercentage: number, closeToAssetAddr: EthereumAddress, chainlinkCollAddress: EthereumAddress, roundId: number, chainId?: ChainId, daiAddr?: EthereumAddress, mcdCdpManagerAddr?: EthereumAddress): (boolean | string[] | Strategies.MainnetIds)[];
8
8
  leverageManagement(vaultId: number, triggerRepayRatio: string, triggerBoostRatio: string, targetBoostRatio: string, targetRepayRatio: string, boostEnabled: boolean): (string | number | boolean)[];
@@ -74,7 +74,7 @@ export declare const morphoAaveV2Encode: {
74
74
  leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
75
75
  };
76
76
  export declare const exchangeEncode: {
77
- dca(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string, timestamp: number, interval: number, network: ChainId): (boolean | string[] | Strategies.MainnetIds | Strategies.OptimismIds | Strategies.ArbitrumIds)[];
77
+ dca(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string, timestamp: number, interval: number, network: ChainId): (boolean | string[] | Strategies.MainnetIds | Strategies.OptimismIds | Strategies.ArbitrumIds | Strategies.BaseIds)[];
78
78
  limitOrder(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string, targetPrice: string, goodUntil: string | number, orderType: OrderType): string[];
79
79
  };
80
80
  export declare const sparkEncode: {
@@ -1,7 +1,8 @@
1
1
  export declare enum ChainId {
2
2
  Ethereum = 1,
3
3
  Optimism = 10,
4
- Arbitrum = 42161
4
+ Arbitrum = 42161,
5
+ Base = 8453
5
6
  }
6
7
  export declare enum RatioState {
7
8
  OVER = 0,
@@ -67,6 +68,10 @@ export declare namespace Strategies {
67
68
  EXCHANGE_LIMIT_ORDER = 9,
68
69
  AAVE_V3_OPEN_ORDER_FROM_DEBT = 12
69
70
  }
71
+ enum BaseIds {
72
+ EXCHANGE_DCA = 8,
73
+ EXCHANGE_LIMIT_ORDER = 9
74
+ }
70
75
  enum ArbitrumIds {
71
76
  EXCHANGE_DCA = 8,
72
77
  EXCHANGE_LIMIT_ORDER = 9,
@@ -156,6 +161,14 @@ export declare namespace Bundles {
156
161
  AAVE_V3_CLOSE_TO_COLLATERAL = 3,
157
162
  AAVE_V3_OPEN_ORDER_FROM_COLLATERAL = 4
158
163
  }
164
+ enum BaseIds {
165
+ AAVE_V3_REPAY = 0,
166
+ AAVE_V3_BOOST = 1,
167
+ AAVE_V3_CLOSE_TO_DEBT = 2,
168
+ AAVE_V3_CLOSE_TO_COLLATERAL = 3,
169
+ COMP_V3_SW_REPAY_BUNDLE = 4,
170
+ COMP_V3_SW_BOOST_BUNDLE = 5
171
+ }
159
172
  enum ArbitrumIds {
160
173
  AAVE_V3_REPAY = 0,
161
174
  AAVE_V3_BOOST = 1,
@@ -6,6 +6,7 @@ var ChainId;
6
6
  ChainId[ChainId["Ethereum"] = 1] = "Ethereum";
7
7
  ChainId[ChainId["Optimism"] = 10] = "Optimism";
8
8
  ChainId[ChainId["Arbitrum"] = 42161] = "Arbitrum";
9
+ ChainId[ChainId["Base"] = 8453] = "Base";
9
10
  })(ChainId = exports.ChainId || (exports.ChainId = {}));
10
11
  var RatioState;
11
12
  (function (RatioState) {
@@ -80,6 +81,11 @@ var Strategies;
80
81
  OptimismIds[OptimismIds["EXCHANGE_LIMIT_ORDER"] = 9] = "EXCHANGE_LIMIT_ORDER";
81
82
  OptimismIds[OptimismIds["AAVE_V3_OPEN_ORDER_FROM_DEBT"] = 12] = "AAVE_V3_OPEN_ORDER_FROM_DEBT";
82
83
  })(OptimismIds = Strategies.OptimismIds || (Strategies.OptimismIds = {}));
84
+ let BaseIds;
85
+ (function (BaseIds) {
86
+ BaseIds[BaseIds["EXCHANGE_DCA"] = 8] = "EXCHANGE_DCA";
87
+ BaseIds[BaseIds["EXCHANGE_LIMIT_ORDER"] = 9] = "EXCHANGE_LIMIT_ORDER";
88
+ })(BaseIds = Strategies.BaseIds || (Strategies.BaseIds = {}));
83
89
  let ArbitrumIds;
84
90
  (function (ArbitrumIds) {
85
91
  ArbitrumIds[ArbitrumIds["EXCHANGE_DCA"] = 8] = "EXCHANGE_DCA";
@@ -175,6 +181,15 @@ var Bundles;
175
181
  OptimismIds[OptimismIds["AAVE_V3_CLOSE_TO_COLLATERAL"] = 3] = "AAVE_V3_CLOSE_TO_COLLATERAL";
176
182
  OptimismIds[OptimismIds["AAVE_V3_OPEN_ORDER_FROM_COLLATERAL"] = 4] = "AAVE_V3_OPEN_ORDER_FROM_COLLATERAL";
177
183
  })(OptimismIds = Bundles.OptimismIds || (Bundles.OptimismIds = {}));
184
+ let BaseIds;
185
+ (function (BaseIds) {
186
+ BaseIds[BaseIds["AAVE_V3_REPAY"] = 0] = "AAVE_V3_REPAY";
187
+ BaseIds[BaseIds["AAVE_V3_BOOST"] = 1] = "AAVE_V3_BOOST";
188
+ BaseIds[BaseIds["AAVE_V3_CLOSE_TO_DEBT"] = 2] = "AAVE_V3_CLOSE_TO_DEBT";
189
+ BaseIds[BaseIds["AAVE_V3_CLOSE_TO_COLLATERAL"] = 3] = "AAVE_V3_CLOSE_TO_COLLATERAL";
190
+ BaseIds[BaseIds["COMP_V3_SW_REPAY_BUNDLE"] = 4] = "COMP_V3_SW_REPAY_BUNDLE";
191
+ BaseIds[BaseIds["COMP_V3_SW_BOOST_BUNDLE"] = 5] = "COMP_V3_SW_BOOST_BUNDLE";
192
+ })(BaseIds = Bundles.BaseIds || (Bundles.BaseIds = {}));
178
193
  let ArbitrumIds;
179
194
  (function (ArbitrumIds) {
180
195
  ArbitrumIds[ArbitrumIds["AAVE_V3_REPAY"] = 0] = "AAVE_V3_REPAY";
@@ -188,23 +188,27 @@ type StrategyInfo<T extends number> = Record<T, Strategy<T>>;
188
188
  export type MainnetStrategiesInfo = StrategyInfo<Strategies.MainnetIds>;
189
189
  export type OptimismStrategiesInfo = StrategyInfo<Strategies.OptimismIds>;
190
190
  export type ArbitrumStrategiesInfo = StrategyInfo<Strategies.ArbitrumIds>;
191
- export type StrategyInfoUnion = MainnetStrategiesInfo | OptimismStrategiesInfo | ArbitrumStrategiesInfo;
191
+ export type BaseStrategiesInfo = StrategyInfo<Strategies.BaseIds>;
192
+ export type StrategyInfoUnion = MainnetStrategiesInfo | OptimismStrategiesInfo | ArbitrumStrategiesInfo | BaseStrategiesInfo;
192
193
  type BundleInfo<T extends number> = Record<T, BundleOrStrategy<T>>;
193
194
  export type MainnetBundleInfo = BundleInfo<Bundles.MainnetIds>;
194
195
  export type OptimismBundleInfo = BundleInfo<Bundles.OptimismIds>;
195
196
  export type ArbitrumBundleInfo = BundleInfo<Bundles.ArbitrumIds>;
196
- export type BundleInfoUnion = MainnetBundleInfo | OptimismBundleInfo | ArbitrumBundleInfo;
197
+ export type BaseBundleInfo = BundleInfo<Bundles.BaseIds>;
198
+ export type BundleInfoUnion = MainnetBundleInfo | OptimismBundleInfo | ArbitrumBundleInfo | BaseBundleInfo;
197
199
  export interface StrategiesInfo {
198
200
  [ChainId.Ethereum]: MainnetStrategiesInfo;
199
201
  [ChainId.Optimism]: OptimismStrategiesInfo;
200
202
  [ChainId.Arbitrum]: ArbitrumStrategiesInfo;
203
+ [ChainId.Base]: BaseStrategiesInfo;
201
204
  }
202
205
  export interface BundlesInfo {
203
206
  [ChainId.Ethereum]: MainnetBundleInfo;
204
207
  [ChainId.Optimism]: OptimismBundleInfo;
205
208
  [ChainId.Arbitrum]: ArbitrumBundleInfo;
209
+ [ChainId.Base]: BaseBundleInfo;
206
210
  }
207
- export type StrategyOrBundleIds = typeof Strategies.MainnetIds[keyof typeof Strategies.MainnetIds] | typeof Strategies.OptimismIds[keyof typeof Strategies.OptimismIds] | typeof Strategies.ArbitrumIds[keyof typeof Strategies.ArbitrumIds] | typeof Bundles.MainnetIds[keyof typeof Bundles.MainnetIds] | typeof Bundles.OptimismIds[keyof typeof Bundles.OptimismIds] | typeof Bundles.ArbitrumIds[keyof typeof Bundles.ArbitrumIds];
211
+ export type StrategyOrBundleIds = typeof Strategies.MainnetIds[keyof typeof Strategies.MainnetIds] | typeof Strategies.OptimismIds[keyof typeof Strategies.OptimismIds] | typeof Strategies.ArbitrumIds[keyof typeof Strategies.ArbitrumIds] | typeof Strategies.BaseIds[keyof typeof Strategies.BaseIds] | typeof Bundles.MainnetIds[keyof typeof Bundles.MainnetIds] | typeof Bundles.OptimismIds[keyof typeof Bundles.OptimismIds] | typeof Bundles.ArbitrumIds[keyof typeof Bundles.ArbitrumIds] | typeof Bundles.BaseIds[keyof typeof Bundles.BaseIds];
208
212
  export interface ParseData {
209
213
  chainId: ChainId;
210
214
  blockNumber: BlockNumber;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defisaver/automation-sdk",
3
- "version": "3.0.8",
3
+ "version": "3.0.9-dev",
4
4
  "description": "",
5
5
  "main": "./umd/index.js",
6
6
  "module": "./esm/index.js",
@@ -12,6 +12,10 @@
12
12
  "42161": {
13
13
  "createdBlock": 19126047,
14
14
  "address": "0x24ab68395660b910BfBF1cc88BaA316BA06354eE"
15
+ },
16
+ "8453": {
17
+ "createdBlock": 3655577,
18
+ "address": "0x44e98bB58d725F2eF93a195F518b335dCB784c78"
15
19
  }
16
20
  }
17
21
  }
@@ -9,6 +9,9 @@
9
9
  },
10
10
  "42161": {
11
11
  "address": "0x1F98415757620B543A52E61c46B32eB19261F984"
12
+ },
13
+ "8453": {
14
+ "address": "0x091e99cb1C49331a94dD62755D168E941AbD0693"
12
15
  }
13
16
  }
14
17
  }
@@ -0,0 +1,10 @@
1
+ import type { Interfaces } from '../../types';
2
+
3
+ import StrategiesAutomation from '../private/StrategiesAutomation';
4
+ import { ChainId } from '../../types/enums';
5
+
6
+ export default class BaseStrategies extends StrategiesAutomation {
7
+ constructor(args: Interfaces.Automation) {
8
+ super({ ...args, chainId: ChainId.Base });
9
+ }
10
+ }
@@ -1,5 +1,5 @@
1
1
  import type {
2
- ArbitrumBundleInfo, ArbitrumStrategiesInfo, BundlesInfo, EthereumAddress, Interfaces, MainnetBundleInfo, MainnetStrategiesInfo, OptimismBundleInfo, OptimismStrategiesInfo, StrategiesInfo,
2
+ ArbitrumBundleInfo, ArbitrumStrategiesInfo, BundlesInfo, EthereumAddress, Interfaces, MainnetBundleInfo, MainnetStrategiesInfo, OptimismBundleInfo, OptimismStrategiesInfo, BaseBundleInfo, BaseStrategiesInfo, StrategiesInfo,
3
3
  } from '../types';
4
4
 
5
5
  import {
@@ -127,6 +127,19 @@ export const OPTIMISM_STRATEGIES_INFO: OptimismStrategiesInfo = {
127
127
  },
128
128
  };
129
129
 
130
+ export const BASE_STRATEGIES_INFO: BaseStrategiesInfo = {
131
+ [Strategies.BaseIds.EXCHANGE_DCA]: {
132
+ strategyOrBundleId: Strategies.BaseIds.EXCHANGE_DCA,
133
+ strategyId: Strategies.Identifiers.Dca,
134
+ protocol: PROTOCOLS.Exchange,
135
+ },
136
+ [Strategies.BaseIds.EXCHANGE_LIMIT_ORDER]: {
137
+ strategyOrBundleId: Strategies.BaseIds.EXCHANGE_LIMIT_ORDER,
138
+ strategyId: Strategies.Identifiers.LimitOrder,
139
+ protocol: PROTOCOLS.Exchange,
140
+ },
141
+ };
142
+
130
143
  export const ARBITRUM_STRATEGIES_INFO: ArbitrumStrategiesInfo = {
131
144
  [Strategies.ArbitrumIds.EXCHANGE_DCA]: {
132
145
  strategyOrBundleId: Strategies.ArbitrumIds.EXCHANGE_DCA,
@@ -149,12 +162,14 @@ export const STRATEGIES_INFO: StrategiesInfo = {
149
162
  [ChainId.Ethereum]: MAINNET_STRATEGIES_INFO,
150
163
  [ChainId.Optimism]: OPTIMISM_STRATEGIES_INFO,
151
164
  [ChainId.Arbitrum]: ARBITRUM_STRATEGIES_INFO,
165
+ [ChainId.Base]: BASE_STRATEGIES_INFO,
152
166
  };
153
167
 
154
168
  export const STRATEGY_IDS = {
155
169
  [ChainId.Ethereum]: Strategies.MainnetIds,
156
170
  [ChainId.Optimism]: Strategies.OptimismIds,
157
171
  [ChainId.Arbitrum]: Strategies.ArbitrumIds,
172
+ [ChainId.Base]: Strategies.BaseIds,
158
173
  };
159
174
 
160
175
  // Bundles info
@@ -390,6 +405,39 @@ export const OPTIMISM_BUNDLES_INFO: OptimismBundleInfo = {
390
405
  },
391
406
  };
392
407
 
408
+ export const BASE_BUNDLES_INFO: BaseBundleInfo = {
409
+ [Bundles.BaseIds.AAVE_V3_REPAY]: {
410
+ strategyOrBundleId: Bundles.BaseIds.AAVE_V3_REPAY,
411
+ strategyId: Strategies.Identifiers.Repay,
412
+ protocol: PROTOCOLS.AaveV3,
413
+ },
414
+ [Bundles.BaseIds.AAVE_V3_BOOST]: {
415
+ strategyOrBundleId: Bundles.BaseIds.AAVE_V3_BOOST,
416
+ strategyId: Strategies.Identifiers.Boost,
417
+ protocol: PROTOCOLS.AaveV3,
418
+ },
419
+ [Bundles.BaseIds.AAVE_V3_CLOSE_TO_DEBT]: {
420
+ strategyOrBundleId: Bundles.BaseIds.AAVE_V3_CLOSE_TO_DEBT,
421
+ strategyId: Strategies.Identifiers.CloseToDebt,
422
+ protocol: PROTOCOLS.AaveV3,
423
+ },
424
+ [Bundles.BaseIds.AAVE_V3_CLOSE_TO_COLLATERAL]: {
425
+ strategyOrBundleId: Bundles.BaseIds.AAVE_V3_CLOSE_TO_COLLATERAL,
426
+ strategyId: Strategies.Identifiers.CloseToCollateral,
427
+ protocol: PROTOCOLS.AaveV3,
428
+ },
429
+ [Bundles.BaseIds.COMP_V3_SW_BOOST_BUNDLE]: {
430
+ strategyOrBundleId: Bundles.BaseIds.COMP_V3_SW_BOOST_BUNDLE,
431
+ strategyId: Strategies.Identifiers.Boost,
432
+ protocol: PROTOCOLS.CompoundV3,
433
+ },
434
+ [Bundles.BaseIds.COMP_V3_SW_REPAY_BUNDLE]: {
435
+ strategyOrBundleId: Bundles.BaseIds.COMP_V3_SW_REPAY_BUNDLE,
436
+ strategyId: Strategies.Identifiers.Repay,
437
+ protocol: PROTOCOLS.CompoundV3,
438
+ },
439
+ };
440
+
393
441
  export const ARBITRUM_BUNDLES_INFO: ArbitrumBundleInfo = {
394
442
  [Bundles.ArbitrumIds.AAVE_V3_REPAY]: {
395
443
  strategyOrBundleId: Bundles.ArbitrumIds.AAVE_V3_REPAY,
@@ -432,10 +480,13 @@ export const BUNDLES_INFO: BundlesInfo = {
432
480
  [ChainId.Ethereum]: MAINNET_BUNDLES_INFO,
433
481
  [ChainId.Optimism]: OPTIMISM_BUNDLES_INFO,
434
482
  [ChainId.Arbitrum]: ARBITRUM_BUNDLES_INFO,
483
+ [ChainId.Base]: BASE_BUNDLES_INFO,
435
484
  };
436
485
 
437
486
  export const BUNDLE_IDS = {
438
487
  [ChainId.Ethereum]: Bundles.MainnetIds,
439
488
  [ChainId.Optimism]: Bundles.OptimismIds,
440
489
  [ChainId.Arbitrum]: Bundles.ArbitrumIds,
490
+ [ChainId.Base]: Bundles.BaseIds,
491
+
441
492
  };
package/src/index.ts CHANGED
@@ -12,6 +12,7 @@ import LegacyCompoundAutomation from './automation/public/legacy/LegacyCompoundA
12
12
  import EthereumStrategies from './automation/public/EthereumStrategies';
13
13
  import OptimismStrategies from './automation/public/OptimismStrategies';
14
14
  import ArbitrumStrategies from './automation/public/ArbitrumStrategies';
15
+ import BaseStrategies from './automation/public/BaseStrategies';
15
16
 
16
17
  import * as triggerService from './services/triggerService';
17
18
  import * as subDataService from './services/subDataService';
@@ -30,7 +31,7 @@ const utils = {
30
31
 
31
32
  export {
32
33
  LegacyMakerAutomation, LegacyAaveAutomation, LegacyCompoundAutomation,
33
- EthereumStrategies, OptimismStrategies, ArbitrumStrategies,
34
+ EthereumStrategies, OptimismStrategies, ArbitrumStrategies, BaseStrategies,
34
35
  triggerService, subDataService, strategySubService, utils,
35
36
  enums, constants, strategiesService,
36
37
  };
@@ -22,6 +22,8 @@ const AAVE_V3_MARKET_ADDRESSES = {
22
22
  [ChainId.Ethereum]: '0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e',
23
23
  [ChainId.Optimism]: '0xa97684ead0e402dC232d5A977953DF7ECBaB3CDb',
24
24
  [ChainId.Arbitrum]: '0xa97684ead0e402dC232d5A977953DF7ECBaB3CDb',
25
+ [ChainId.Base]: '0xe20fCBdBfFC4Dd138cE8b2E6FBb6CB49777ad64D',
26
+
25
27
  };
26
28
 
27
29
  function parseMakerSavingsLiqProtection(position: Position.Automated, parseData: ParseData): Position.Automated {
@@ -2,6 +2,7 @@ export enum ChainId {
2
2
  Ethereum = 1,
3
3
  Optimism = 10,
4
4
  Arbitrum = 42161,
5
+ Base = 8453,
5
6
  }
6
7
 
7
8
  export enum RatioState {
@@ -75,6 +76,11 @@ export namespace Strategies {
75
76
  AAVE_V3_OPEN_ORDER_FROM_DEBT = 12,
76
77
  }
77
78
 
79
+ export enum BaseIds {
80
+ EXCHANGE_DCA = 8,
81
+ EXCHANGE_LIMIT_ORDER = 9,
82
+ }
83
+
78
84
  export enum ArbitrumIds {
79
85
  EXCHANGE_DCA = 8,
80
86
  EXCHANGE_LIMIT_ORDER = 9,
@@ -168,6 +174,15 @@ export namespace Bundles {
168
174
  AAVE_V3_OPEN_ORDER_FROM_COLLATERAL = 4,
169
175
  }
170
176
 
177
+ export enum BaseIds {
178
+ AAVE_V3_REPAY = 0,
179
+ AAVE_V3_BOOST = 1,
180
+ AAVE_V3_CLOSE_TO_DEBT = 2,
181
+ AAVE_V3_CLOSE_TO_COLLATERAL = 3,
182
+ COMP_V3_SW_REPAY_BUNDLE = 4,
183
+ COMP_V3_SW_BOOST_BUNDLE = 5,
184
+ }
185
+
171
186
  export enum ArbitrumIds {
172
187
  AAVE_V3_REPAY = 0,
173
188
  AAVE_V3_BOOST = 1,
@@ -229,33 +229,39 @@ type StrategyInfo<T extends number> = Record<T, Strategy<T>>;
229
229
  export type MainnetStrategiesInfo = StrategyInfo<Strategies.MainnetIds>;
230
230
  export type OptimismStrategiesInfo = StrategyInfo<Strategies.OptimismIds>;
231
231
  export type ArbitrumStrategiesInfo = StrategyInfo<Strategies.ArbitrumIds>;
232
- export type StrategyInfoUnion = MainnetStrategiesInfo | OptimismStrategiesInfo | ArbitrumStrategiesInfo;
232
+ export type BaseStrategiesInfo = StrategyInfo<Strategies.BaseIds>;
233
+ export type StrategyInfoUnion = MainnetStrategiesInfo | OptimismStrategiesInfo | ArbitrumStrategiesInfo | BaseStrategiesInfo;
233
234
 
234
235
  type BundleInfo<T extends number> = Record<T, BundleOrStrategy<T>>;
235
236
  export type MainnetBundleInfo = BundleInfo<Bundles.MainnetIds>;
236
237
  export type OptimismBundleInfo = BundleInfo<Bundles.OptimismIds>;
237
238
  export type ArbitrumBundleInfo = BundleInfo<Bundles.ArbitrumIds>;
238
- export type BundleInfoUnion = MainnetBundleInfo | OptimismBundleInfo | ArbitrumBundleInfo;
239
+ export type BaseBundleInfo = BundleInfo<Bundles.BaseIds>;
240
+ export type BundleInfoUnion = MainnetBundleInfo | OptimismBundleInfo | ArbitrumBundleInfo | BaseBundleInfo;
239
241
 
240
242
  export interface StrategiesInfo {
241
243
  [ChainId.Ethereum]: MainnetStrategiesInfo,
242
244
  [ChainId.Optimism]: OptimismStrategiesInfo,
243
- [ChainId.Arbitrum]: ArbitrumStrategiesInfo
245
+ [ChainId.Arbitrum]: ArbitrumStrategiesInfo,
246
+ [ChainId.Base]: BaseStrategiesInfo,
244
247
  }
245
248
 
246
249
  export interface BundlesInfo {
247
250
  [ChainId.Ethereum]: MainnetBundleInfo,
248
251
  [ChainId.Optimism]: OptimismBundleInfo,
249
- [ChainId.Arbitrum]: ArbitrumBundleInfo
252
+ [ChainId.Arbitrum]: ArbitrumBundleInfo,
253
+ [ChainId.Base]: BaseBundleInfo,
250
254
  }
251
255
 
252
256
  export type StrategyOrBundleIds =
253
257
  typeof Strategies.MainnetIds[keyof typeof Strategies.MainnetIds]
254
258
  | typeof Strategies.OptimismIds[keyof typeof Strategies.OptimismIds]
255
259
  | typeof Strategies.ArbitrumIds[keyof typeof Strategies.ArbitrumIds]
260
+ | typeof Strategies.BaseIds[keyof typeof Strategies.BaseIds]
256
261
  | typeof Bundles.MainnetIds[keyof typeof Bundles.MainnetIds]
257
262
  | typeof Bundles.OptimismIds[keyof typeof Bundles.OptimismIds]
258
- | typeof Bundles.ArbitrumIds[keyof typeof Bundles.ArbitrumIds];
263
+ | typeof Bundles.ArbitrumIds[keyof typeof Bundles.ArbitrumIds]
264
+ | typeof Bundles.BaseIds[keyof typeof Bundles.BaseIds];
259
265
 
260
266
  export interface ParseData {
261
267
  chainId: ChainId,