@defisaver/automation-sdk 3.3.21-coll-switch-generic-dev → 3.3.22-coll-switch-generic-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.
@@ -107,6 +107,11 @@ exports.MAINNET_STRATEGIES_INFO = {
107
107
  strategyId: enums_1.Strategies.Identifiers.CollateralSwitch,
108
108
  protocol: exports.PROTOCOLS.AaveV3,
109
109
  },
110
+ [enums_1.Strategies.MainnetIds.AAVE_V3_COLLATERAL_SWITCH_EOA]: {
111
+ strategyOrBundleId: enums_1.Strategies.MainnetIds.AAVE_V3_COLLATERAL_SWITCH_EOA,
112
+ strategyId: enums_1.Strategies.Identifiers.EoaCollateralSwitch,
113
+ protocol: exports.PROTOCOLS.AaveV3,
114
+ },
110
115
  [enums_1.Strategies.MainnetIds.AAVE_V4_COLLATERAL_SWITCH]: {
111
116
  strategyOrBundleId: enums_1.Strategies.MainnetIds.AAVE_V4_COLLATERAL_SWITCH,
112
117
  strategyId: enums_1.Strategies.Identifiers.CollateralSwitch,
@@ -154,6 +159,11 @@ exports.OPTIMISM_STRATEGIES_INFO = {
154
159
  strategyId: enums_1.Strategies.Identifiers.CollateralSwitch,
155
160
  protocol: exports.PROTOCOLS.AaveV3,
156
161
  },
162
+ [enums_1.Strategies.OptimismIds.AAVE_V3_COLLATERAL_SWITCH_EOA]: {
163
+ strategyOrBundleId: enums_1.Strategies.OptimismIds.AAVE_V3_COLLATERAL_SWITCH_EOA,
164
+ strategyId: enums_1.Strategies.Identifiers.EoaCollateralSwitch,
165
+ protocol: exports.PROTOCOLS.AaveV3,
166
+ },
157
167
  [enums_1.Strategies.OptimismIds.AAVE_V3_DEBT_SWITCH]: {
158
168
  strategyOrBundleId: enums_1.Strategies.OptimismIds.AAVE_V3_DEBT_SWITCH,
159
169
  strategyId: enums_1.Strategies.Identifiers.DebtSwitch,
@@ -181,6 +191,11 @@ exports.BASE_STRATEGIES_INFO = {
181
191
  strategyId: enums_1.Strategies.Identifiers.CollateralSwitch,
182
192
  protocol: exports.PROTOCOLS.AaveV3,
183
193
  },
194
+ [enums_1.Strategies.BaseIds.AAVE_V3_COLLATERAL_SWITCH_EOA]: {
195
+ strategyOrBundleId: enums_1.Strategies.BaseIds.AAVE_V3_COLLATERAL_SWITCH_EOA,
196
+ strategyId: enums_1.Strategies.Identifiers.EoaCollateralSwitch,
197
+ protocol: exports.PROTOCOLS.AaveV3,
198
+ },
184
199
  [enums_1.Strategies.BaseIds.AAVE_V3_DEBT_SWITCH]: {
185
200
  strategyOrBundleId: enums_1.Strategies.BaseIds.AAVE_V3_DEBT_SWITCH,
186
201
  strategyId: enums_1.Strategies.Identifiers.DebtSwitch,
@@ -208,6 +223,11 @@ exports.ARBITRUM_STRATEGIES_INFO = {
208
223
  strategyId: enums_1.Strategies.Identifiers.CollateralSwitch,
209
224
  protocol: exports.PROTOCOLS.AaveV3,
210
225
  },
226
+ [enums_1.Strategies.ArbitrumIds.AAVE_V3_COLLATERAL_SWITCH_EOA]: {
227
+ strategyOrBundleId: enums_1.Strategies.ArbitrumIds.AAVE_V3_COLLATERAL_SWITCH_EOA,
228
+ strategyId: enums_1.Strategies.Identifiers.EoaCollateralSwitch,
229
+ protocol: exports.PROTOCOLS.AaveV3,
230
+ },
211
231
  [enums_1.Strategies.ArbitrumIds.AAVE_V3_DEBT_SWITCH]: {
212
232
  strategyOrBundleId: enums_1.Strategies.ArbitrumIds.AAVE_V3_DEBT_SWITCH,
213
233
  strategyId: enums_1.Strategies.Identifiers.DebtSwitch,
@@ -11,7 +11,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  const chai_1 = require("chai");
13
13
  const enums_1 = require("../types/enums");
14
- const constants_1 = require("../constants");
15
14
  require("../configuration");
16
15
  const strategiesService_1 = require("./strategiesService");
17
16
  describe('Feature: strategiesService.ts', () => {
@@ -58,37 +57,36 @@ describe('Feature: strategiesService.ts', () => {
58
57
  },
59
58
  };
60
59
  }
61
- it('decodes generic collateral switches with the user and uint16 reserve IDs', () => {
62
- const strategyId = enums_1.Strategies.MainnetIds.AAVE_V3_COLLATERAL_SWITCH;
63
- const originalInfo = constants_1.MAINNET_STRATEGIES_INFO[strategyId];
64
- const parseData = getParseData(strategyId, true);
65
- let position;
66
- constants_1.MAINNET_STRATEGIES_INFO[strategyId] = Object.assign(Object.assign({}, originalInfo), { strategyId: enums_1.Strategies.Identifiers.EoaCollateralSwitch });
67
- try {
68
- position = (0, strategiesService_1.parseStrategiesAutomatedPosition)(parseData);
69
- }
70
- finally {
71
- constants_1.MAINNET_STRATEGIES_INFO[strategyId] = originalInfo;
72
- }
73
- (0, chai_1.expect)(position).not.to.equal(null);
74
- (0, chai_1.expect)(position.protocol.id).to.equal(enums_1.ProtocolIdentifiers.StrategiesAutomation.AaveV3);
75
- (0, chai_1.expect)(position.strategy.strategyId).to.equal(enums_1.Strategies.Identifiers.EoaCollateralSwitch);
76
- (0, chai_1.expect)(position.strategy.isBundle).to.equal(false);
77
- (0, chai_1.expect)(position.strategyData.encoded).to.eql({
78
- triggerData,
79
- subData: parseData.subscriptionEventData.subStruct.subData,
80
- });
81
- (0, chai_1.expect)(position.strategyData.decoded.triggerData).to.eql({
82
- baseTokenAddress: fromAsset,
83
- quoteTokenAddress: toAsset,
84
- price: '0.1',
85
- ratioState: enums_1.RatioState.UNDER,
86
- });
87
- (0, chai_1.expect)(position.strategyData.decoded.subData).to.eql({
88
- fromAsset, fromAssetId: 256, toAsset, toAssetId: 65535, marketAddr, amountToSwitch, user,
60
+ const genericStrategies = [
61
+ [enums_1.ChainId.Ethereum, enums_1.Strategies.MainnetIds.AAVE_V3_COLLATERAL_SWITCH_EOA],
62
+ [enums_1.ChainId.Optimism, enums_1.Strategies.OptimismIds.AAVE_V3_COLLATERAL_SWITCH_EOA],
63
+ [enums_1.ChainId.Arbitrum, enums_1.Strategies.ArbitrumIds.AAVE_V3_COLLATERAL_SWITCH_EOA],
64
+ [enums_1.ChainId.Base, enums_1.Strategies.BaseIds.AAVE_V3_COLLATERAL_SWITCH_EOA],
65
+ ];
66
+ genericStrategies.forEach(([chainId, strategyId]) => {
67
+ it(`decodes generic collateral switches with the user and uint16 reserve IDs on chain ${chainId}`, () => {
68
+ const parseData = getParseData(strategyId, true, chainId);
69
+ const position = (0, strategiesService_1.parseStrategiesAutomatedPosition)(parseData);
70
+ (0, chai_1.expect)(position).not.to.equal(null);
71
+ (0, chai_1.expect)(position.protocol.id).to.equal(enums_1.ProtocolIdentifiers.StrategiesAutomation.AaveV3);
72
+ (0, chai_1.expect)(position.strategy.strategyId).to.equal(enums_1.Strategies.Identifiers.EoaCollateralSwitch);
73
+ (0, chai_1.expect)(position.strategy.isBundle).to.equal(false);
74
+ (0, chai_1.expect)(position.strategyData.encoded).to.eql({
75
+ triggerData,
76
+ subData: parseData.subscriptionEventData.subStruct.subData,
77
+ });
78
+ (0, chai_1.expect)(position.strategyData.decoded.triggerData).to.eql({
79
+ baseTokenAddress: fromAsset,
80
+ quoteTokenAddress: toAsset,
81
+ price: '0.1',
82
+ ratioState: enums_1.RatioState.UNDER,
83
+ });
84
+ (0, chai_1.expect)(position.strategyData.decoded.subData).to.eql({
85
+ fromAsset, fromAssetId: 256, toAsset, toAssetId: 65535, marketAddr, amountToSwitch, user,
86
+ });
87
+ (0, chai_1.expect)(position.owner).to.equal(proxy.toLowerCase());
88
+ (0, chai_1.expect)(position.positionId).to.equal(`${chainId}-aave__v3-${proxy.toLowerCase()}-${marketAddr.toLowerCase()}`);
89
89
  });
90
- (0, chai_1.expect)(position.owner).to.equal(proxy.toLowerCase());
91
- (0, chai_1.expect)(position.positionId).to.equal(`1-aave__v3-${proxy.toLowerCase()}-${marketAddr.toLowerCase()}`);
92
90
  });
93
91
  const legacyStrategies = [
94
92
  [enums_1.ChainId.Ethereum, enums_1.Strategies.MainnetIds.AAVE_V3_COLLATERAL_SWITCH],
@@ -93,28 +93,32 @@ export declare namespace Strategies {
93
93
  SPARK_COLLATERAL_SWITCH = 156,
94
94
  SPARK_GENERIC_FL_COLLATERAL_SWITCH = 167,
95
95
  AAVE_V3_DEBT_SWITCH = 168,
96
- AAVE_V3_DEBT_SWITCH_EOA = 169
96
+ AAVE_V3_DEBT_SWITCH_EOA = 169,
97
+ AAVE_V3_COLLATERAL_SWITCH_EOA = 170
97
98
  }
98
99
  enum OptimismIds {
99
100
  EXCHANGE_DCA = 8,
100
101
  EXCHANGE_LIMIT_ORDER = 9,
101
102
  AAVE_V3_COLLATERAL_SWITCH = 24,
102
103
  AAVE_V3_DEBT_SWITCH = 25,
103
- AAVE_V3_DEBT_SWITCH_EOA = 26
104
+ AAVE_V3_DEBT_SWITCH_EOA = 26,
105
+ AAVE_V3_COLLATERAL_SWITCH_EOA = 27
104
106
  }
105
107
  enum BaseIds {
106
108
  EXCHANGE_DCA = 8,
107
109
  EXCHANGE_LIMIT_ORDER = 9,
108
110
  AAVE_V3_COLLATERAL_SWITCH = 56,
109
111
  AAVE_V3_DEBT_SWITCH = 61,
110
- AAVE_V3_DEBT_SWITCH_EOA = 62
112
+ AAVE_V3_DEBT_SWITCH_EOA = 62,
113
+ AAVE_V3_COLLATERAL_SWITCH_EOA = 63
111
114
  }
112
115
  enum ArbitrumIds {
113
116
  EXCHANGE_DCA = 8,
114
117
  EXCHANGE_LIMIT_ORDER = 9,
115
118
  AAVE_V3_COLLATERAL_SWITCH = 50,
116
119
  AAVE_V3_DEBT_SWITCH = 55,
117
- AAVE_V3_DEBT_SWITCH_EOA = 56
120
+ AAVE_V3_DEBT_SWITCH_EOA = 56,
121
+ AAVE_V3_COLLATERAL_SWITCH_EOA = 57
118
122
  }
119
123
  enum Identifiers {
120
124
  SavingsLiqProtection = "smart-savings-liquidation-protection",
@@ -110,6 +110,7 @@ var Strategies;
110
110
  MainnetIds[MainnetIds["SPARK_GENERIC_FL_COLLATERAL_SWITCH"] = 167] = "SPARK_GENERIC_FL_COLLATERAL_SWITCH";
111
111
  MainnetIds[MainnetIds["AAVE_V3_DEBT_SWITCH"] = 168] = "AAVE_V3_DEBT_SWITCH";
112
112
  MainnetIds[MainnetIds["AAVE_V3_DEBT_SWITCH_EOA"] = 169] = "AAVE_V3_DEBT_SWITCH_EOA";
113
+ MainnetIds[MainnetIds["AAVE_V3_COLLATERAL_SWITCH_EOA"] = 170] = "AAVE_V3_COLLATERAL_SWITCH_EOA";
113
114
  })(MainnetIds = Strategies.MainnetIds || (Strategies.MainnetIds = {}));
114
115
  let OptimismIds;
115
116
  (function (OptimismIds) {
@@ -118,6 +119,7 @@ var Strategies;
118
119
  OptimismIds[OptimismIds["AAVE_V3_COLLATERAL_SWITCH"] = 24] = "AAVE_V3_COLLATERAL_SWITCH";
119
120
  OptimismIds[OptimismIds["AAVE_V3_DEBT_SWITCH"] = 25] = "AAVE_V3_DEBT_SWITCH";
120
121
  OptimismIds[OptimismIds["AAVE_V3_DEBT_SWITCH_EOA"] = 26] = "AAVE_V3_DEBT_SWITCH_EOA";
122
+ OptimismIds[OptimismIds["AAVE_V3_COLLATERAL_SWITCH_EOA"] = 27] = "AAVE_V3_COLLATERAL_SWITCH_EOA";
121
123
  })(OptimismIds = Strategies.OptimismIds || (Strategies.OptimismIds = {}));
122
124
  let BaseIds;
123
125
  (function (BaseIds) {
@@ -126,6 +128,7 @@ var Strategies;
126
128
  BaseIds[BaseIds["AAVE_V3_COLLATERAL_SWITCH"] = 56] = "AAVE_V3_COLLATERAL_SWITCH";
127
129
  BaseIds[BaseIds["AAVE_V3_DEBT_SWITCH"] = 61] = "AAVE_V3_DEBT_SWITCH";
128
130
  BaseIds[BaseIds["AAVE_V3_DEBT_SWITCH_EOA"] = 62] = "AAVE_V3_DEBT_SWITCH_EOA";
131
+ BaseIds[BaseIds["AAVE_V3_COLLATERAL_SWITCH_EOA"] = 63] = "AAVE_V3_COLLATERAL_SWITCH_EOA";
129
132
  })(BaseIds = Strategies.BaseIds || (Strategies.BaseIds = {}));
130
133
  let ArbitrumIds;
131
134
  (function (ArbitrumIds) {
@@ -134,6 +137,7 @@ var Strategies;
134
137
  ArbitrumIds[ArbitrumIds["AAVE_V3_COLLATERAL_SWITCH"] = 50] = "AAVE_V3_COLLATERAL_SWITCH";
135
138
  ArbitrumIds[ArbitrumIds["AAVE_V3_DEBT_SWITCH"] = 55] = "AAVE_V3_DEBT_SWITCH";
136
139
  ArbitrumIds[ArbitrumIds["AAVE_V3_DEBT_SWITCH_EOA"] = 56] = "AAVE_V3_DEBT_SWITCH_EOA";
140
+ ArbitrumIds[ArbitrumIds["AAVE_V3_COLLATERAL_SWITCH_EOA"] = 57] = "AAVE_V3_COLLATERAL_SWITCH_EOA";
137
141
  })(ArbitrumIds = Strategies.ArbitrumIds || (Strategies.ArbitrumIds = {}));
138
142
  let Identifiers;
139
143
  (function (Identifiers) {
@@ -101,6 +101,11 @@ export const MAINNET_STRATEGIES_INFO = {
101
101
  strategyId: Strategies.Identifiers.CollateralSwitch,
102
102
  protocol: PROTOCOLS.AaveV3,
103
103
  },
104
+ [Strategies.MainnetIds.AAVE_V3_COLLATERAL_SWITCH_EOA]: {
105
+ strategyOrBundleId: Strategies.MainnetIds.AAVE_V3_COLLATERAL_SWITCH_EOA,
106
+ strategyId: Strategies.Identifiers.EoaCollateralSwitch,
107
+ protocol: PROTOCOLS.AaveV3,
108
+ },
104
109
  [Strategies.MainnetIds.AAVE_V4_COLLATERAL_SWITCH]: {
105
110
  strategyOrBundleId: Strategies.MainnetIds.AAVE_V4_COLLATERAL_SWITCH,
106
111
  strategyId: Strategies.Identifiers.CollateralSwitch,
@@ -148,6 +153,11 @@ export const OPTIMISM_STRATEGIES_INFO = {
148
153
  strategyId: Strategies.Identifiers.CollateralSwitch,
149
154
  protocol: PROTOCOLS.AaveV3,
150
155
  },
156
+ [Strategies.OptimismIds.AAVE_V3_COLLATERAL_SWITCH_EOA]: {
157
+ strategyOrBundleId: Strategies.OptimismIds.AAVE_V3_COLLATERAL_SWITCH_EOA,
158
+ strategyId: Strategies.Identifiers.EoaCollateralSwitch,
159
+ protocol: PROTOCOLS.AaveV3,
160
+ },
151
161
  [Strategies.OptimismIds.AAVE_V3_DEBT_SWITCH]: {
152
162
  strategyOrBundleId: Strategies.OptimismIds.AAVE_V3_DEBT_SWITCH,
153
163
  strategyId: Strategies.Identifiers.DebtSwitch,
@@ -175,6 +185,11 @@ export const BASE_STRATEGIES_INFO = {
175
185
  strategyId: Strategies.Identifiers.CollateralSwitch,
176
186
  protocol: PROTOCOLS.AaveV3,
177
187
  },
188
+ [Strategies.BaseIds.AAVE_V3_COLLATERAL_SWITCH_EOA]: {
189
+ strategyOrBundleId: Strategies.BaseIds.AAVE_V3_COLLATERAL_SWITCH_EOA,
190
+ strategyId: Strategies.Identifiers.EoaCollateralSwitch,
191
+ protocol: PROTOCOLS.AaveV3,
192
+ },
178
193
  [Strategies.BaseIds.AAVE_V3_DEBT_SWITCH]: {
179
194
  strategyOrBundleId: Strategies.BaseIds.AAVE_V3_DEBT_SWITCH,
180
195
  strategyId: Strategies.Identifiers.DebtSwitch,
@@ -202,6 +217,11 @@ export const ARBITRUM_STRATEGIES_INFO = {
202
217
  strategyId: Strategies.Identifiers.CollateralSwitch,
203
218
  protocol: PROTOCOLS.AaveV3,
204
219
  },
220
+ [Strategies.ArbitrumIds.AAVE_V3_COLLATERAL_SWITCH_EOA]: {
221
+ strategyOrBundleId: Strategies.ArbitrumIds.AAVE_V3_COLLATERAL_SWITCH_EOA,
222
+ strategyId: Strategies.Identifiers.EoaCollateralSwitch,
223
+ protocol: PROTOCOLS.AaveV3,
224
+ },
205
225
  [Strategies.ArbitrumIds.AAVE_V3_DEBT_SWITCH]: {
206
226
  strategyOrBundleId: Strategies.ArbitrumIds.AAVE_V3_DEBT_SWITCH,
207
227
  strategyId: Strategies.Identifiers.DebtSwitch,
@@ -9,7 +9,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import { expect } from 'chai';
11
11
  import { ChainId, ProtocolIdentifiers, RatioState, Strategies } from '../types/enums';
12
- import { MAINNET_STRATEGIES_INFO } from '../constants';
13
12
  import '../configuration';
14
13
  import { parseStrategiesAutomatedPosition } from './strategiesService';
15
14
  describe('Feature: strategiesService.ts', () => {
@@ -56,37 +55,36 @@ describe('Feature: strategiesService.ts', () => {
56
55
  },
57
56
  };
58
57
  }
59
- it('decodes generic collateral switches with the user and uint16 reserve IDs', () => {
60
- const strategyId = Strategies.MainnetIds.AAVE_V3_COLLATERAL_SWITCH;
61
- const originalInfo = MAINNET_STRATEGIES_INFO[strategyId];
62
- const parseData = getParseData(strategyId, true);
63
- let position;
64
- MAINNET_STRATEGIES_INFO[strategyId] = Object.assign(Object.assign({}, originalInfo), { strategyId: Strategies.Identifiers.EoaCollateralSwitch });
65
- try {
66
- position = parseStrategiesAutomatedPosition(parseData);
67
- }
68
- finally {
69
- MAINNET_STRATEGIES_INFO[strategyId] = originalInfo;
70
- }
71
- expect(position).not.to.equal(null);
72
- expect(position.protocol.id).to.equal(ProtocolIdentifiers.StrategiesAutomation.AaveV3);
73
- expect(position.strategy.strategyId).to.equal(Strategies.Identifiers.EoaCollateralSwitch);
74
- expect(position.strategy.isBundle).to.equal(false);
75
- expect(position.strategyData.encoded).to.eql({
76
- triggerData,
77
- subData: parseData.subscriptionEventData.subStruct.subData,
78
- });
79
- expect(position.strategyData.decoded.triggerData).to.eql({
80
- baseTokenAddress: fromAsset,
81
- quoteTokenAddress: toAsset,
82
- price: '0.1',
83
- ratioState: RatioState.UNDER,
84
- });
85
- expect(position.strategyData.decoded.subData).to.eql({
86
- fromAsset, fromAssetId: 256, toAsset, toAssetId: 65535, marketAddr, amountToSwitch, user,
58
+ const genericStrategies = [
59
+ [ChainId.Ethereum, Strategies.MainnetIds.AAVE_V3_COLLATERAL_SWITCH_EOA],
60
+ [ChainId.Optimism, Strategies.OptimismIds.AAVE_V3_COLLATERAL_SWITCH_EOA],
61
+ [ChainId.Arbitrum, Strategies.ArbitrumIds.AAVE_V3_COLLATERAL_SWITCH_EOA],
62
+ [ChainId.Base, Strategies.BaseIds.AAVE_V3_COLLATERAL_SWITCH_EOA],
63
+ ];
64
+ genericStrategies.forEach(([chainId, strategyId]) => {
65
+ it(`decodes generic collateral switches with the user and uint16 reserve IDs on chain ${chainId}`, () => {
66
+ const parseData = getParseData(strategyId, true, chainId);
67
+ const position = parseStrategiesAutomatedPosition(parseData);
68
+ expect(position).not.to.equal(null);
69
+ expect(position.protocol.id).to.equal(ProtocolIdentifiers.StrategiesAutomation.AaveV3);
70
+ expect(position.strategy.strategyId).to.equal(Strategies.Identifiers.EoaCollateralSwitch);
71
+ expect(position.strategy.isBundle).to.equal(false);
72
+ expect(position.strategyData.encoded).to.eql({
73
+ triggerData,
74
+ subData: parseData.subscriptionEventData.subStruct.subData,
75
+ });
76
+ expect(position.strategyData.decoded.triggerData).to.eql({
77
+ baseTokenAddress: fromAsset,
78
+ quoteTokenAddress: toAsset,
79
+ price: '0.1',
80
+ ratioState: RatioState.UNDER,
81
+ });
82
+ expect(position.strategyData.decoded.subData).to.eql({
83
+ fromAsset, fromAssetId: 256, toAsset, toAssetId: 65535, marketAddr, amountToSwitch, user,
84
+ });
85
+ expect(position.owner).to.equal(proxy.toLowerCase());
86
+ expect(position.positionId).to.equal(`${chainId}-aave__v3-${proxy.toLowerCase()}-${marketAddr.toLowerCase()}`);
87
87
  });
88
- expect(position.owner).to.equal(proxy.toLowerCase());
89
- expect(position.positionId).to.equal(`1-aave__v3-${proxy.toLowerCase()}-${marketAddr.toLowerCase()}`);
90
88
  });
91
89
  const legacyStrategies = [
92
90
  [ChainId.Ethereum, Strategies.MainnetIds.AAVE_V3_COLLATERAL_SWITCH],
@@ -93,28 +93,32 @@ export declare namespace Strategies {
93
93
  SPARK_COLLATERAL_SWITCH = 156,
94
94
  SPARK_GENERIC_FL_COLLATERAL_SWITCH = 167,
95
95
  AAVE_V3_DEBT_SWITCH = 168,
96
- AAVE_V3_DEBT_SWITCH_EOA = 169
96
+ AAVE_V3_DEBT_SWITCH_EOA = 169,
97
+ AAVE_V3_COLLATERAL_SWITCH_EOA = 170
97
98
  }
98
99
  enum OptimismIds {
99
100
  EXCHANGE_DCA = 8,
100
101
  EXCHANGE_LIMIT_ORDER = 9,
101
102
  AAVE_V3_COLLATERAL_SWITCH = 24,
102
103
  AAVE_V3_DEBT_SWITCH = 25,
103
- AAVE_V3_DEBT_SWITCH_EOA = 26
104
+ AAVE_V3_DEBT_SWITCH_EOA = 26,
105
+ AAVE_V3_COLLATERAL_SWITCH_EOA = 27
104
106
  }
105
107
  enum BaseIds {
106
108
  EXCHANGE_DCA = 8,
107
109
  EXCHANGE_LIMIT_ORDER = 9,
108
110
  AAVE_V3_COLLATERAL_SWITCH = 56,
109
111
  AAVE_V3_DEBT_SWITCH = 61,
110
- AAVE_V3_DEBT_SWITCH_EOA = 62
112
+ AAVE_V3_DEBT_SWITCH_EOA = 62,
113
+ AAVE_V3_COLLATERAL_SWITCH_EOA = 63
111
114
  }
112
115
  enum ArbitrumIds {
113
116
  EXCHANGE_DCA = 8,
114
117
  EXCHANGE_LIMIT_ORDER = 9,
115
118
  AAVE_V3_COLLATERAL_SWITCH = 50,
116
119
  AAVE_V3_DEBT_SWITCH = 55,
117
- AAVE_V3_DEBT_SWITCH_EOA = 56
120
+ AAVE_V3_DEBT_SWITCH_EOA = 56,
121
+ AAVE_V3_COLLATERAL_SWITCH_EOA = 57
118
122
  }
119
123
  enum Identifiers {
120
124
  SavingsLiqProtection = "smart-savings-liquidation-protection",
@@ -107,6 +107,7 @@ export var Strategies;
107
107
  MainnetIds[MainnetIds["SPARK_GENERIC_FL_COLLATERAL_SWITCH"] = 167] = "SPARK_GENERIC_FL_COLLATERAL_SWITCH";
108
108
  MainnetIds[MainnetIds["AAVE_V3_DEBT_SWITCH"] = 168] = "AAVE_V3_DEBT_SWITCH";
109
109
  MainnetIds[MainnetIds["AAVE_V3_DEBT_SWITCH_EOA"] = 169] = "AAVE_V3_DEBT_SWITCH_EOA";
110
+ MainnetIds[MainnetIds["AAVE_V3_COLLATERAL_SWITCH_EOA"] = 170] = "AAVE_V3_COLLATERAL_SWITCH_EOA";
110
111
  })(MainnetIds = Strategies.MainnetIds || (Strategies.MainnetIds = {}));
111
112
  let OptimismIds;
112
113
  (function (OptimismIds) {
@@ -115,6 +116,7 @@ export var Strategies;
115
116
  OptimismIds[OptimismIds["AAVE_V3_COLLATERAL_SWITCH"] = 24] = "AAVE_V3_COLLATERAL_SWITCH";
116
117
  OptimismIds[OptimismIds["AAVE_V3_DEBT_SWITCH"] = 25] = "AAVE_V3_DEBT_SWITCH";
117
118
  OptimismIds[OptimismIds["AAVE_V3_DEBT_SWITCH_EOA"] = 26] = "AAVE_V3_DEBT_SWITCH_EOA";
119
+ OptimismIds[OptimismIds["AAVE_V3_COLLATERAL_SWITCH_EOA"] = 27] = "AAVE_V3_COLLATERAL_SWITCH_EOA";
118
120
  })(OptimismIds = Strategies.OptimismIds || (Strategies.OptimismIds = {}));
119
121
  let BaseIds;
120
122
  (function (BaseIds) {
@@ -123,6 +125,7 @@ export var Strategies;
123
125
  BaseIds[BaseIds["AAVE_V3_COLLATERAL_SWITCH"] = 56] = "AAVE_V3_COLLATERAL_SWITCH";
124
126
  BaseIds[BaseIds["AAVE_V3_DEBT_SWITCH"] = 61] = "AAVE_V3_DEBT_SWITCH";
125
127
  BaseIds[BaseIds["AAVE_V3_DEBT_SWITCH_EOA"] = 62] = "AAVE_V3_DEBT_SWITCH_EOA";
128
+ BaseIds[BaseIds["AAVE_V3_COLLATERAL_SWITCH_EOA"] = 63] = "AAVE_V3_COLLATERAL_SWITCH_EOA";
126
129
  })(BaseIds = Strategies.BaseIds || (Strategies.BaseIds = {}));
127
130
  let ArbitrumIds;
128
131
  (function (ArbitrumIds) {
@@ -131,6 +134,7 @@ export var Strategies;
131
134
  ArbitrumIds[ArbitrumIds["AAVE_V3_COLLATERAL_SWITCH"] = 50] = "AAVE_V3_COLLATERAL_SWITCH";
132
135
  ArbitrumIds[ArbitrumIds["AAVE_V3_DEBT_SWITCH"] = 55] = "AAVE_V3_DEBT_SWITCH";
133
136
  ArbitrumIds[ArbitrumIds["AAVE_V3_DEBT_SWITCH_EOA"] = 56] = "AAVE_V3_DEBT_SWITCH_EOA";
137
+ ArbitrumIds[ArbitrumIds["AAVE_V3_COLLATERAL_SWITCH_EOA"] = 57] = "AAVE_V3_COLLATERAL_SWITCH_EOA";
134
138
  })(ArbitrumIds = Strategies.ArbitrumIds || (Strategies.ArbitrumIds = {}));
135
139
  let Identifiers;
136
140
  (function (Identifiers) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defisaver/automation-sdk",
3
- "version": "3.3.21-coll-switch-generic-dev",
3
+ "version": "3.3.22-coll-switch-generic-dev",
4
4
  "description": "",
5
5
  "main": "./cjs/index.js",
6
6
  "module": "./esm/index.js",
@@ -125,6 +125,11 @@ export const MAINNET_STRATEGIES_INFO: MainnetStrategiesInfo = {
125
125
  strategyId: Strategies.Identifiers.CollateralSwitch,
126
126
  protocol: PROTOCOLS.AaveV3,
127
127
  },
128
+ [Strategies.MainnetIds.AAVE_V3_COLLATERAL_SWITCH_EOA]: {
129
+ strategyOrBundleId: Strategies.MainnetIds.AAVE_V3_COLLATERAL_SWITCH_EOA,
130
+ strategyId: Strategies.Identifiers.EoaCollateralSwitch,
131
+ protocol: PROTOCOLS.AaveV3,
132
+ },
128
133
  [Strategies.MainnetIds.AAVE_V4_COLLATERAL_SWITCH]: {
129
134
  strategyOrBundleId: Strategies.MainnetIds.AAVE_V4_COLLATERAL_SWITCH,
130
135
  strategyId: Strategies.Identifiers.CollateralSwitch,
@@ -173,6 +178,11 @@ export const OPTIMISM_STRATEGIES_INFO: OptimismStrategiesInfo = {
173
178
  strategyId: Strategies.Identifiers.CollateralSwitch,
174
179
  protocol: PROTOCOLS.AaveV3,
175
180
  },
181
+ [Strategies.OptimismIds.AAVE_V3_COLLATERAL_SWITCH_EOA]: {
182
+ strategyOrBundleId: Strategies.OptimismIds.AAVE_V3_COLLATERAL_SWITCH_EOA,
183
+ strategyId: Strategies.Identifiers.EoaCollateralSwitch,
184
+ protocol: PROTOCOLS.AaveV3,
185
+ },
176
186
  [Strategies.OptimismIds.AAVE_V3_DEBT_SWITCH]: {
177
187
  strategyOrBundleId: Strategies.OptimismIds.AAVE_V3_DEBT_SWITCH,
178
188
  strategyId: Strategies.Identifiers.DebtSwitch,
@@ -201,6 +211,11 @@ export const BASE_STRATEGIES_INFO: BaseStrategiesInfo = {
201
211
  strategyId: Strategies.Identifiers.CollateralSwitch,
202
212
  protocol: PROTOCOLS.AaveV3,
203
213
  },
214
+ [Strategies.BaseIds.AAVE_V3_COLLATERAL_SWITCH_EOA]: {
215
+ strategyOrBundleId: Strategies.BaseIds.AAVE_V3_COLLATERAL_SWITCH_EOA,
216
+ strategyId: Strategies.Identifiers.EoaCollateralSwitch,
217
+ protocol: PROTOCOLS.AaveV3,
218
+ },
204
219
  [Strategies.BaseIds.AAVE_V3_DEBT_SWITCH]: {
205
220
  strategyOrBundleId: Strategies.BaseIds.AAVE_V3_DEBT_SWITCH,
206
221
  strategyId: Strategies.Identifiers.DebtSwitch,
@@ -229,6 +244,11 @@ export const ARBITRUM_STRATEGIES_INFO: ArbitrumStrategiesInfo = {
229
244
  strategyId: Strategies.Identifiers.CollateralSwitch,
230
245
  protocol: PROTOCOLS.AaveV3,
231
246
  },
247
+ [Strategies.ArbitrumIds.AAVE_V3_COLLATERAL_SWITCH_EOA]: {
248
+ strategyOrBundleId: Strategies.ArbitrumIds.AAVE_V3_COLLATERAL_SWITCH_EOA,
249
+ strategyId: Strategies.Identifiers.EoaCollateralSwitch,
250
+ protocol: PROTOCOLS.AaveV3,
251
+ },
232
252
  [Strategies.ArbitrumIds.AAVE_V3_DEBT_SWITCH]: {
233
253
  strategyOrBundleId: Strategies.ArbitrumIds.AAVE_V3_DEBT_SWITCH,
234
254
  strategyId: Strategies.Identifiers.DebtSwitch,
@@ -2,7 +2,6 @@ import { expect } from 'chai';
2
2
 
3
3
  import { ChainId, ProtocolIdentifiers, RatioState, Strategies } from '../types/enums';
4
4
  import type { ParseData, Position } from '../types';
5
- import { MAINNET_STRATEGIES_INFO } from '../constants';
6
5
 
7
6
  import '../configuration';
8
7
  import { parseStrategiesAutomatedPosition } from './strategiesService';
@@ -56,40 +55,37 @@ describe('Feature: strategiesService.ts', () => {
56
55
  };
57
56
  }
58
57
 
59
- it('decodes generic collateral switches with the user and uint16 reserve IDs', () => {
60
- const strategyId = Strategies.MainnetIds.AAVE_V3_COLLATERAL_SWITCH;
61
- const originalInfo = MAINNET_STRATEGIES_INFO[strategyId];
62
- const parseData = getParseData(strategyId, true);
63
- let position: Position.Automated;
64
- MAINNET_STRATEGIES_INFO[strategyId] = {
65
- ...originalInfo,
66
- strategyId: Strategies.Identifiers.EoaCollateralSwitch,
67
- };
68
- try {
69
- position = parseStrategiesAutomatedPosition(parseData)!;
70
- } finally {
71
- MAINNET_STRATEGIES_INFO[strategyId] = originalInfo;
72
- }
58
+ const genericStrategies: Array<[ChainId, number]> = [
59
+ [ChainId.Ethereum, Strategies.MainnetIds.AAVE_V3_COLLATERAL_SWITCH_EOA],
60
+ [ChainId.Optimism, Strategies.OptimismIds.AAVE_V3_COLLATERAL_SWITCH_EOA],
61
+ [ChainId.Arbitrum, Strategies.ArbitrumIds.AAVE_V3_COLLATERAL_SWITCH_EOA],
62
+ [ChainId.Base, Strategies.BaseIds.AAVE_V3_COLLATERAL_SWITCH_EOA],
63
+ ];
64
+ genericStrategies.forEach(([chainId, strategyId]) => {
65
+ it(`decodes generic collateral switches with the user and uint16 reserve IDs on chain ${chainId}`, () => {
66
+ const parseData = getParseData(strategyId, true, chainId);
67
+ const position = parseStrategiesAutomatedPosition(parseData)!;
73
68
 
74
- expect(position).not.to.equal(null);
75
- expect(position.protocol.id).to.equal(ProtocolIdentifiers.StrategiesAutomation.AaveV3);
76
- expect(position.strategy.strategyId).to.equal(Strategies.Identifiers.EoaCollateralSwitch);
77
- expect(position.strategy.isBundle).to.equal(false);
78
- expect(position.strategyData.encoded).to.eql({
79
- triggerData,
80
- subData: parseData.subscriptionEventData.subStruct.subData,
81
- });
82
- expect(position.strategyData.decoded.triggerData).to.eql({
83
- baseTokenAddress: fromAsset,
84
- quoteTokenAddress: toAsset,
85
- price: '0.1',
86
- ratioState: RatioState.UNDER,
87
- });
88
- expect(position.strategyData.decoded.subData).to.eql({
89
- fromAsset, fromAssetId: 256, toAsset, toAssetId: 65535, marketAddr, amountToSwitch, user,
69
+ expect(position).not.to.equal(null);
70
+ expect(position.protocol.id).to.equal(ProtocolIdentifiers.StrategiesAutomation.AaveV3);
71
+ expect(position.strategy.strategyId).to.equal(Strategies.Identifiers.EoaCollateralSwitch);
72
+ expect(position.strategy.isBundle).to.equal(false);
73
+ expect(position.strategyData.encoded).to.eql({
74
+ triggerData,
75
+ subData: parseData.subscriptionEventData.subStruct.subData,
76
+ });
77
+ expect(position.strategyData.decoded.triggerData).to.eql({
78
+ baseTokenAddress: fromAsset,
79
+ quoteTokenAddress: toAsset,
80
+ price: '0.1',
81
+ ratioState: RatioState.UNDER,
82
+ });
83
+ expect(position.strategyData.decoded.subData).to.eql({
84
+ fromAsset, fromAssetId: 256, toAsset, toAssetId: 65535, marketAddr, amountToSwitch, user,
85
+ });
86
+ expect(position.owner).to.equal(proxy.toLowerCase());
87
+ expect(position.positionId).to.equal(`${chainId}-aave__v3-${proxy.toLowerCase()}-${marketAddr.toLowerCase()}`);
90
88
  });
91
- expect(position.owner).to.equal(proxy.toLowerCase());
92
- expect(position.positionId).to.equal(`1-aave__v3-${proxy.toLowerCase()}-${marketAddr.toLowerCase()}`);
93
89
  });
94
90
 
95
91
  const legacyStrategies: Array<[ChainId, number]> = [
@@ -104,6 +104,7 @@ export namespace Strategies {
104
104
  SPARK_GENERIC_FL_COLLATERAL_SWITCH = 167,
105
105
  AAVE_V3_DEBT_SWITCH = 168,
106
106
  AAVE_V3_DEBT_SWITCH_EOA = 169,
107
+ AAVE_V3_COLLATERAL_SWITCH_EOA = 170,
107
108
  }
108
109
 
109
110
  export enum OptimismIds {
@@ -112,6 +113,7 @@ export namespace Strategies {
112
113
  AAVE_V3_COLLATERAL_SWITCH = 24,
113
114
  AAVE_V3_DEBT_SWITCH = 25,
114
115
  AAVE_V3_DEBT_SWITCH_EOA = 26,
116
+ AAVE_V3_COLLATERAL_SWITCH_EOA = 27,
115
117
  }
116
118
 
117
119
  export enum BaseIds {
@@ -120,6 +122,7 @@ export namespace Strategies {
120
122
  AAVE_V3_COLLATERAL_SWITCH = 56,
121
123
  AAVE_V3_DEBT_SWITCH = 61,
122
124
  AAVE_V3_DEBT_SWITCH_EOA = 62,
125
+ AAVE_V3_COLLATERAL_SWITCH_EOA = 63,
123
126
  }
124
127
 
125
128
  export enum ArbitrumIds {
@@ -128,6 +131,7 @@ export namespace Strategies {
128
131
  AAVE_V3_COLLATERAL_SWITCH = 50,
129
132
  AAVE_V3_DEBT_SWITCH = 55,
130
133
  AAVE_V3_DEBT_SWITCH_EOA = 56,
134
+ AAVE_V3_COLLATERAL_SWITCH_EOA = 57,
131
135
  }
132
136
 
133
137
  export enum Identifiers {