@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.
- package/cjs/constants/index.js +20 -0
- package/cjs/services/strategiesService.test.js +29 -31
- package/cjs/types/enums.d.ts +8 -4
- package/cjs/types/enums.js +4 -0
- package/esm/constants/index.js +20 -0
- package/esm/services/strategiesService.test.js +29 -31
- package/esm/types/enums.d.ts +8 -4
- package/esm/types/enums.js +4 -0
- package/package.json +1 -1
- package/src/constants/index.ts +20 -0
- package/src/services/strategiesService.test.ts +29 -33
- package/src/types/enums.ts +4 -0
package/cjs/constants/index.js
CHANGED
|
@@ -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
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
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],
|
package/cjs/types/enums.d.ts
CHANGED
|
@@ -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",
|
package/cjs/types/enums.js
CHANGED
|
@@ -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) {
|
package/esm/constants/index.js
CHANGED
|
@@ -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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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],
|
package/esm/types/enums.d.ts
CHANGED
|
@@ -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",
|
package/esm/types/enums.js
CHANGED
|
@@ -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
package/src/constants/index.ts
CHANGED
|
@@ -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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
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
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
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]> = [
|
package/src/types/enums.ts
CHANGED
|
@@ -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 {
|