@defisaver/automation-sdk 3.3.18-audit-dev → 3.3.18-spark-eoa-v2-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 +35 -0
- package/cjs/services/ethereumService.test.js +4 -7
- package/cjs/services/strategiesService.js +40 -9
- package/cjs/services/strategySubService.d.ts +4 -0
- package/cjs/services/strategySubService.js +24 -0
- package/cjs/services/strategySubService.test.js +295 -0
- package/cjs/services/subDataService.d.ts +38 -0
- package/cjs/services/subDataService.js +76 -2
- package/cjs/services/subDataService.test.js +494 -4
- package/cjs/types/enums.d.ts +9 -2
- package/cjs/types/enums.js +7 -0
- package/esm/constants/index.js +35 -0
- package/esm/services/ethereumService.test.js +4 -7
- package/esm/services/strategiesService.js +40 -9
- package/esm/services/strategySubService.d.ts +4 -0
- package/esm/services/strategySubService.js +24 -0
- package/esm/services/strategySubService.test.js +295 -0
- package/esm/services/subDataService.d.ts +38 -0
- package/esm/services/subDataService.js +74 -0
- package/esm/services/subDataService.test.js +494 -4
- package/esm/types/enums.d.ts +9 -2
- package/esm/types/enums.js +7 -0
- package/package.json +2 -10
- package/src/constants/index.ts +35 -0
- package/src/services/ethereumService.test.ts +5 -8
- package/src/services/strategiesService.ts +43 -10
- package/src/services/strategySubService.test.ts +382 -0
- package/src/services/strategySubService.ts +87 -0
- package/src/services/subDataService.test.ts +608 -4
- package/src/services/subDataService.ts +107 -0
- package/src/types/enums.ts +7 -0
package/esm/types/enums.js
CHANGED
|
@@ -104,6 +104,7 @@ export var Strategies;
|
|
|
104
104
|
MainnetIds[MainnetIds["AAVE_V4_COLLATERAL_SWITCH"] = 154] = "AAVE_V4_COLLATERAL_SWITCH";
|
|
105
105
|
MainnetIds[MainnetIds["AAVE_V4_COLLATERAL_SWITCH_EOA"] = 155] = "AAVE_V4_COLLATERAL_SWITCH_EOA";
|
|
106
106
|
MainnetIds[MainnetIds["SPARK_COLLATERAL_SWITCH"] = 156] = "SPARK_COLLATERAL_SWITCH";
|
|
107
|
+
MainnetIds[MainnetIds["SPARK_GENERIC_FL_COLLATERAL_SWITCH"] = 167] = "SPARK_GENERIC_FL_COLLATERAL_SWITCH";
|
|
107
108
|
})(MainnetIds = Strategies.MainnetIds || (Strategies.MainnetIds = {}));
|
|
108
109
|
let OptimismIds;
|
|
109
110
|
(function (OptimismIds) {
|
|
@@ -264,6 +265,12 @@ export var Bundles;
|
|
|
264
265
|
MainnetIds[MainnetIds["MORPHO_BLUE_EOA_BOOST_ON_PRICE"] = 85] = "MORPHO_BLUE_EOA_BOOST_ON_PRICE";
|
|
265
266
|
MainnetIds[MainnetIds["MORPHO_BLUE_EOA_REPAY_ON_PRICE"] = 86] = "MORPHO_BLUE_EOA_REPAY_ON_PRICE";
|
|
266
267
|
MainnetIds[MainnetIds["MORPHO_BLUE_EOA_CLOSE"] = 87] = "MORPHO_BLUE_EOA_CLOSE";
|
|
268
|
+
MainnetIds[MainnetIds["SPARK_EOA_REPAY"] = 88] = "SPARK_EOA_REPAY";
|
|
269
|
+
MainnetIds[MainnetIds["SPARK_EOA_BOOST"] = 89] = "SPARK_EOA_BOOST";
|
|
270
|
+
MainnetIds[MainnetIds["SPARK_EOA_REPAY_ON_PRICE"] = 90] = "SPARK_EOA_REPAY_ON_PRICE";
|
|
271
|
+
MainnetIds[MainnetIds["SPARK_EOA_BOOST_ON_PRICE"] = 91] = "SPARK_EOA_BOOST_ON_PRICE";
|
|
272
|
+
MainnetIds[MainnetIds["SPARK_EOA_CLOSE"] = 92] = "SPARK_EOA_CLOSE";
|
|
273
|
+
MainnetIds[MainnetIds["SPARK_EOA_LIQUIDATION_PROTECTION"] = 93] = "SPARK_EOA_LIQUIDATION_PROTECTION";
|
|
267
274
|
})(MainnetIds = Bundles.MainnetIds || (Bundles.MainnetIds = {}));
|
|
268
275
|
let OptimismIds;
|
|
269
276
|
(function (OptimismIds) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@defisaver/automation-sdk",
|
|
3
|
-
"version": "3.3.18-
|
|
3
|
+
"version": "3.3.18-spark-eoa-v2-dev",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./cjs/index.js",
|
|
6
6
|
"module": "./esm/index.js",
|
|
@@ -22,15 +22,6 @@
|
|
|
22
22
|
"author": "DeFi Saver",
|
|
23
23
|
"repository": "https://github.com/defisaver/automation-sdk",
|
|
24
24
|
"license": "ISC",
|
|
25
|
-
"overrides": {
|
|
26
|
-
"axios": "^1.19.0",
|
|
27
|
-
"tar": "^7.5.21",
|
|
28
|
-
"ws": "^8.18.3",
|
|
29
|
-
"form-data": "^4.0.4",
|
|
30
|
-
"tough-cookie": "^4.1.3",
|
|
31
|
-
"qs": "^6.14.0",
|
|
32
|
-
"serialize-javascript": "^7.1.0"
|
|
33
|
-
},
|
|
34
25
|
"dependencies": {
|
|
35
26
|
"@defisaver/sdk": "^1.3.22",
|
|
36
27
|
"@defisaver/tokens": "^1.6.19",
|
|
@@ -53,6 +44,7 @@
|
|
|
53
44
|
"dotenv": "^16.3.1",
|
|
54
45
|
"eslint": "^8.49.0",
|
|
55
46
|
"husky": "^8.0.0",
|
|
47
|
+
"jsdoc-to-markdown": "^6.0.1",
|
|
56
48
|
"mocha": "^10.2.0",
|
|
57
49
|
"ts-node": "^10.9.1",
|
|
58
50
|
"typechain": "^8.1.0",
|
package/src/constants/index.ts
CHANGED
|
@@ -140,6 +140,11 @@ export const MAINNET_STRATEGIES_INFO: MainnetStrategiesInfo = {
|
|
|
140
140
|
strategyId: Strategies.Identifiers.CollateralSwitch,
|
|
141
141
|
protocol: PROTOCOLS.Spark,
|
|
142
142
|
},
|
|
143
|
+
[Strategies.MainnetIds.SPARK_GENERIC_FL_COLLATERAL_SWITCH]: {
|
|
144
|
+
strategyOrBundleId: Strategies.MainnetIds.SPARK_GENERIC_FL_COLLATERAL_SWITCH,
|
|
145
|
+
strategyId: Strategies.Identifiers.EoaCollateralSwitch,
|
|
146
|
+
protocol: PROTOCOLS.Spark,
|
|
147
|
+
},
|
|
143
148
|
};
|
|
144
149
|
|
|
145
150
|
export const OPTIMISM_STRATEGIES_INFO: OptimismStrategiesInfo = {
|
|
@@ -573,6 +578,31 @@ export const MAINNET_BUNDLES_INFO: MainnetBundleInfo = {
|
|
|
573
578
|
strategyId: Strategies.Identifiers.EoaCloseOnPrice,
|
|
574
579
|
protocol: PROTOCOLS.AaveV4,
|
|
575
580
|
},
|
|
581
|
+
[Bundles.MainnetIds.SPARK_EOA_REPAY]: {
|
|
582
|
+
strategyOrBundleId: Bundles.MainnetIds.SPARK_EOA_REPAY,
|
|
583
|
+
strategyId: Strategies.Identifiers.EoaRepay,
|
|
584
|
+
protocol: PROTOCOLS.Spark,
|
|
585
|
+
},
|
|
586
|
+
[Bundles.MainnetIds.SPARK_EOA_BOOST]: {
|
|
587
|
+
strategyOrBundleId: Bundles.MainnetIds.SPARK_EOA_BOOST,
|
|
588
|
+
strategyId: Strategies.Identifiers.EoaBoost,
|
|
589
|
+
protocol: PROTOCOLS.Spark,
|
|
590
|
+
},
|
|
591
|
+
[Bundles.MainnetIds.SPARK_EOA_CLOSE]: {
|
|
592
|
+
strategyOrBundleId: Bundles.MainnetIds.SPARK_EOA_CLOSE,
|
|
593
|
+
strategyId: Strategies.Identifiers.EoaCloseOnPrice,
|
|
594
|
+
protocol: PROTOCOLS.Spark,
|
|
595
|
+
},
|
|
596
|
+
[Bundles.MainnetIds.SPARK_EOA_REPAY_ON_PRICE]: {
|
|
597
|
+
strategyOrBundleId: Bundles.MainnetIds.SPARK_EOA_REPAY_ON_PRICE,
|
|
598
|
+
strategyId: Strategies.Identifiers.EoaRepayOnPrice,
|
|
599
|
+
protocol: PROTOCOLS.Spark,
|
|
600
|
+
},
|
|
601
|
+
[Bundles.MainnetIds.SPARK_EOA_BOOST_ON_PRICE]: {
|
|
602
|
+
strategyOrBundleId: Bundles.MainnetIds.SPARK_EOA_BOOST_ON_PRICE,
|
|
603
|
+
strategyId: Strategies.Identifiers.EoaBoostOnPrice,
|
|
604
|
+
protocol: PROTOCOLS.Spark,
|
|
605
|
+
},
|
|
576
606
|
[Bundles.MainnetIds.MAKER_SW_LIQUIDATION_PROTECTION]: {
|
|
577
607
|
strategyOrBundleId: Bundles.MainnetIds.MAKER_SW_LIQUIDATION_PROTECTION,
|
|
578
608
|
strategyId: Strategies.Identifiers.LiquidationProtection,
|
|
@@ -649,6 +679,11 @@ export const MAINNET_BUNDLES_INFO: MainnetBundleInfo = {
|
|
|
649
679
|
strategyId: Strategies.Identifiers.EoaCloseOnPrice,
|
|
650
680
|
protocol: PROTOCOLS.MorphoBlue,
|
|
651
681
|
},
|
|
682
|
+
[Bundles.MainnetIds.SPARK_EOA_LIQUIDATION_PROTECTION]: {
|
|
683
|
+
strategyOrBundleId: Bundles.MainnetIds.SPARK_EOA_LIQUIDATION_PROTECTION,
|
|
684
|
+
strategyId: Strategies.Identifiers.EoaLiquidationProtection,
|
|
685
|
+
protocol: PROTOCOLS.Spark,
|
|
686
|
+
},
|
|
652
687
|
};
|
|
653
688
|
|
|
654
689
|
export const OPTIMISM_BUNDLES_INFO: OptimismBundleInfo = {
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import Web3 from 'web3';
|
|
2
2
|
import { expect } from 'chai';
|
|
3
|
+
import { omit } from 'lodash';
|
|
3
4
|
import { getAssetInfo } from '@defisaver/tokens';
|
|
4
5
|
import { PastEventOptions } from 'web3-eth-contract';
|
|
5
6
|
|
|
6
7
|
import { ChainId } from '../types/enums';
|
|
7
|
-
import type { BlockNumber, Multicall } from '../types';
|
|
8
|
+
import type { BlockNumber, Multicall, PlaceholderType } from '../types';
|
|
8
9
|
import { Contract } from '../types';
|
|
9
10
|
import type { Erc20 } from '../types/contracts/generated';
|
|
10
11
|
|
|
@@ -115,7 +116,6 @@ describe('Feature: ethereumService.ts', () => {
|
|
|
115
116
|
'address': '0x5f98805A4E8be255a32880FDeC7F6728C6568bA0',
|
|
116
117
|
'blockHash': '0xb92cab2569456dbfbdb853d2c67d72c9a7580543dbcb55d483a77322b40755a4',
|
|
117
118
|
'blockNumber': 15166163,
|
|
118
|
-
'blockTimestamp': '0x62d53ad8',
|
|
119
119
|
'event': 'Transfer',
|
|
120
120
|
'id': 'log_e2258e3a',
|
|
121
121
|
'logIndex': 385,
|
|
@@ -142,7 +142,7 @@ describe('Feature: ethereumService.ts', () => {
|
|
|
142
142
|
},
|
|
143
143
|
],
|
|
144
144
|
[
|
|
145
|
-
makeErc20Contract(Web3_1, getAssetInfo('LUSD').address, ChainId.Ethereum),
|
|
145
|
+
{ ...makeErc20Contract(Web3_1, getAssetInfo('LUSD').address, ChainId.Ethereum), createdBlock: 15166163 },
|
|
146
146
|
null,
|
|
147
147
|
'Transfer',
|
|
148
148
|
{
|
|
@@ -161,7 +161,6 @@ describe('Feature: ethereumService.ts', () => {
|
|
|
161
161
|
'address': '0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1',
|
|
162
162
|
'blockHash': '0xacb0213af63b4c17c436f084a96d1ac385641a59a9a4cf014ae3337cbe545aa7',
|
|
163
163
|
'blockNumber': 5353002,
|
|
164
|
-
'blockTimestamp': '0x624c1a5b',
|
|
165
164
|
'event': 'Transfer',
|
|
166
165
|
'id': 'log_f49645b8',
|
|
167
166
|
'logIndex': 1,
|
|
@@ -207,7 +206,6 @@ describe('Feature: ethereumService.ts', () => {
|
|
|
207
206
|
'address': '0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1',
|
|
208
207
|
'blockHash': '0xacb0213af63b4c17c436f084a96d1ac385641a59a9a4cf014ae3337cbe545aa7',
|
|
209
208
|
'blockNumber': 5353002,
|
|
210
|
-
'blockTimestamp': '0x624c1a5b',
|
|
211
209
|
'event': 'Transfer',
|
|
212
210
|
'id': 'log_f49645b8',
|
|
213
211
|
'logIndex': 1,
|
|
@@ -251,9 +249,8 @@ describe('Feature: ethereumService.ts', () => {
|
|
|
251
249
|
|
|
252
250
|
examples.forEach(([expected, actual]) => {
|
|
253
251
|
it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, async () => {
|
|
254
|
-
const
|
|
255
|
-
|
|
256
|
-
expect(await getEventsFromContract(...actual)).to.eql(expected);
|
|
252
|
+
const events = await getEventsFromContract(...actual);
|
|
253
|
+
expect(events.map((event: PlaceholderType) => omit(event, 'blockTimestamp'))).to.eql(expected);
|
|
257
254
|
});
|
|
258
255
|
});
|
|
259
256
|
});
|
|
@@ -8,7 +8,7 @@ import type {
|
|
|
8
8
|
BundleInfoUnion, StrategyInfoUnion,
|
|
9
9
|
} from '../types';
|
|
10
10
|
import {
|
|
11
|
-
ChainId, ProtocolIdentifiers,
|
|
11
|
+
ChainId, ProtocolIdentifiers, Strategies,
|
|
12
12
|
} from '../types/enums';
|
|
13
13
|
|
|
14
14
|
import {
|
|
@@ -448,11 +448,17 @@ function parseAaveV3CollateralSwitch(position: Position.Automated, parseData: Pa
|
|
|
448
448
|
function parseSparkCollateralSwitch(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
449
449
|
const _position = cloneDeep(position);
|
|
450
450
|
const { subStruct } = parseData.subscriptionEventData;
|
|
451
|
+
const isEOA = _position.strategy.strategyId.includes('eoa');
|
|
451
452
|
const triggerData = triggerService.sparkQuotePriceTrigger.decode(subStruct.triggerData);
|
|
452
|
-
const subData =
|
|
453
|
+
const subData = isEOA
|
|
454
|
+
? subDataService.sparkGenericFLCollateralSwitchSubData.decode(subStruct.subData)
|
|
455
|
+
: subDataService.sparkCollateralSwitchSubData.decode(subStruct.subData);
|
|
453
456
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
454
457
|
_position.strategyData.decoded.subData = subData;
|
|
455
458
|
_position.positionId = getPositionId(_position.chainId, _position.protocol.id, _position.owner, subData.marketAddr);
|
|
459
|
+
_position.strategy.strategyId = isEOA
|
|
460
|
+
? Strategies.Identifiers.EoaCollateralSwitch
|
|
461
|
+
: Strategies.Identifiers.CollateralSwitch;
|
|
456
462
|
return _position;
|
|
457
463
|
}
|
|
458
464
|
|
|
@@ -987,16 +993,19 @@ function parseSparkLeverageManagement(position: Position.Automated, parseData: P
|
|
|
987
993
|
|
|
988
994
|
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
989
995
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
996
|
+
const isEOA = _position.strategy.strategyId.includes('eoa');
|
|
990
997
|
|
|
991
998
|
const triggerData = triggerService.sparkRatioTrigger.decode(subStruct.triggerData);
|
|
992
|
-
const subData =
|
|
999
|
+
const subData = isEOA
|
|
1000
|
+
? subDataService.sparkGenericLeverageManagementSubData.decode(subStruct.subData)
|
|
1001
|
+
: subDataService.legacySparkLeverageManagementSubData.decode(subStruct.subData);
|
|
993
1002
|
|
|
994
1003
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
995
1004
|
_position.strategyData.decoded.subData = subData;
|
|
996
1005
|
|
|
997
1006
|
_position.positionId = getPositionId(_position.chainId, _position.protocol.id, _position.owner, triggerData.market);
|
|
998
1007
|
|
|
999
|
-
const isRepay = _position.strategy.strategyId
|
|
1008
|
+
const isRepay = [Strategies.Identifiers.Repay, Strategies.Identifiers.EoaRepay].includes(_position.strategy.strategyId as Strategies.Identifiers);
|
|
1000
1009
|
|
|
1001
1010
|
if (isRepay) {
|
|
1002
1011
|
_position.specific = {
|
|
@@ -1004,7 +1013,7 @@ function parseSparkLeverageManagement(position: Position.Automated, parseData: P
|
|
|
1004
1013
|
targetRepayRatio: subData.targetRatio,
|
|
1005
1014
|
repayEnabled: isEnabled,
|
|
1006
1015
|
subId1: Number(subId),
|
|
1007
|
-
mergeWithId: Strategies.Identifiers.Boost,
|
|
1016
|
+
mergeWithId: isEOA ? Strategies.Identifiers.EoaBoost : Strategies.Identifiers.Boost,
|
|
1008
1017
|
subHashRepay: subHash,
|
|
1009
1018
|
};
|
|
1010
1019
|
} else {
|
|
@@ -1013,12 +1022,14 @@ function parseSparkLeverageManagement(position: Position.Automated, parseData: P
|
|
|
1013
1022
|
targetBoostRatio: subData.targetRatio,
|
|
1014
1023
|
boostEnabled: isEnabled,
|
|
1015
1024
|
subId2: Number(subId),
|
|
1016
|
-
mergeId: Strategies.Identifiers.Boost,
|
|
1025
|
+
mergeId: isEOA ? Strategies.Identifiers.EoaBoost : Strategies.Identifiers.Boost,
|
|
1017
1026
|
subHashBoost: subHash,
|
|
1018
1027
|
};
|
|
1019
1028
|
}
|
|
1020
1029
|
|
|
1021
|
-
_position.strategy.strategyId =
|
|
1030
|
+
_position.strategy.strategyId = isEOA
|
|
1031
|
+
? Strategies.IdOverrides.EoaLeverageManagement
|
|
1032
|
+
: Strategies.IdOverrides.LeverageManagement;
|
|
1022
1033
|
|
|
1023
1034
|
return _position;
|
|
1024
1035
|
}
|
|
@@ -1028,9 +1039,12 @@ function parseSparkLiquidationProtection(position: Position.Automated, parseData
|
|
|
1028
1039
|
|
|
1029
1040
|
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
1030
1041
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
1042
|
+
const isEOA = _position.strategy.strategyId.includes('eoa');
|
|
1031
1043
|
|
|
1032
1044
|
const triggerData = triggerService.sparkRatioTrigger.decode(subStruct.triggerData);
|
|
1033
|
-
const subData =
|
|
1045
|
+
const subData = isEOA
|
|
1046
|
+
? subDataService.sparkGenericLiquidationProtectionSubData.decode(subStruct.subData)
|
|
1047
|
+
: subDataService.sparkLiquidationProtectionSubData.decode(subStruct.subData);
|
|
1034
1048
|
|
|
1035
1049
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
1036
1050
|
_position.strategyData.decoded.subData = subData;
|
|
@@ -1045,7 +1059,9 @@ function parseSparkLiquidationProtection(position: Position.Automated, parseData
|
|
|
1045
1059
|
subHashRepay: subHash,
|
|
1046
1060
|
};
|
|
1047
1061
|
|
|
1048
|
-
_position.strategy.strategyId =
|
|
1062
|
+
_position.strategy.strategyId = isEOA
|
|
1063
|
+
? Strategies.IdOverrides.EoaLiquidationProtection
|
|
1064
|
+
: Strategies.IdOverrides.LiquidationProtection;
|
|
1049
1065
|
|
|
1050
1066
|
return _position;
|
|
1051
1067
|
}
|
|
@@ -1054,9 +1070,12 @@ function parseSparkLiquidationProtection(position: Position.Automated, parseData
|
|
|
1054
1070
|
function parseSparkLeverageManagementOnPrice(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
1055
1071
|
const _position = cloneDeep(position);
|
|
1056
1072
|
const { subStruct } = parseData.subscriptionEventData;
|
|
1073
|
+
const isEOA = _position.strategy.strategyId.includes('eoa');
|
|
1057
1074
|
|
|
1058
1075
|
const triggerData = triggerService.sparkQuotePriceTrigger.decode(subStruct.triggerData);
|
|
1059
|
-
const subData =
|
|
1076
|
+
const subData = isEOA
|
|
1077
|
+
? subDataService.sparkLeverageManagementOnPriceGenericSubData.decode(subStruct.subData)
|
|
1078
|
+
: subDataService.sparkLeverageManagementOnPriceSubData.decode(subStruct.subData);
|
|
1060
1079
|
|
|
1061
1080
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
1062
1081
|
_position.strategyData.decoded.subData = subData;
|
|
@@ -1077,6 +1096,10 @@ function parseSparkLeverageManagementOnPrice(position: Position.Automated, parse
|
|
|
1077
1096
|
ratioState: triggerData.ratioState,
|
|
1078
1097
|
};
|
|
1079
1098
|
|
|
1099
|
+
_position.strategy.strategyId = isEOA
|
|
1100
|
+
? Strategies.IdOverrides.EoaLeverageManagementOnPrice
|
|
1101
|
+
: Strategies.IdOverrides.LeverageManagementOnPrice;
|
|
1102
|
+
|
|
1080
1103
|
return _position;
|
|
1081
1104
|
}
|
|
1082
1105
|
|
|
@@ -1087,10 +1110,13 @@ function parseSparkCloseOnPrice(position: Position.Automated, parseData: ParseDa
|
|
|
1087
1110
|
const triggerData = triggerService.sparkQuotePriceRangeTrigger.decode(subStruct.triggerData);
|
|
1088
1111
|
const subData = subDataService.sparkCloseGenericSubData.decode(subStruct.subData);
|
|
1089
1112
|
|
|
1113
|
+
const isEOA = _position.strategy.strategyId.includes('eoa');
|
|
1114
|
+
|
|
1090
1115
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
1091
1116
|
_position.strategyData.decoded.subData = subData;
|
|
1092
1117
|
|
|
1093
1118
|
_position.positionId = getPositionId(_position.chainId, _position.protocol.id, _position.owner, subData.marketAddr);
|
|
1119
|
+
_position.strategy.strategyId = isEOA ? Strategies.Identifiers.EoaCloseOnPrice : Strategies.Identifiers.CloseOnPrice;
|
|
1094
1120
|
|
|
1095
1121
|
const { takeProfitType, stopLossType } = getStopLossAndTakeProfitTypeByCloseStrategyType(+subData.closeType);
|
|
1096
1122
|
|
|
@@ -1625,8 +1651,15 @@ const parsingMethodsMapping: StrategiesToProtocolVersionMapping = {
|
|
|
1625
1651
|
[Strategies.Identifiers.RepayOnPrice]: parseSparkLeverageManagementOnPrice,
|
|
1626
1652
|
[Strategies.Identifiers.BoostOnPrice]: parseSparkLeverageManagementOnPrice,
|
|
1627
1653
|
[Strategies.Identifiers.CloseOnPrice]: parseSparkCloseOnPrice,
|
|
1654
|
+
[Strategies.Identifiers.EoaRepay]: parseSparkLeverageManagement,
|
|
1655
|
+
[Strategies.Identifiers.EoaBoost]: parseSparkLeverageManagement,
|
|
1656
|
+
[Strategies.Identifiers.EoaRepayOnPrice]: parseSparkLeverageManagementOnPrice,
|
|
1657
|
+
[Strategies.Identifiers.EoaBoostOnPrice]: parseSparkLeverageManagementOnPrice,
|
|
1658
|
+
[Strategies.Identifiers.EoaCloseOnPrice]: parseSparkCloseOnPrice,
|
|
1628
1659
|
[Strategies.Identifiers.CollateralSwitch]: parseSparkCollateralSwitch,
|
|
1660
|
+
[Strategies.Identifiers.EoaCollateralSwitch]: parseSparkCollateralSwitch,
|
|
1629
1661
|
[Strategies.Identifiers.LiquidationProtection]: parseSparkLiquidationProtection,
|
|
1662
|
+
[Strategies.Identifiers.EoaLiquidationProtection]: parseSparkLiquidationProtection,
|
|
1630
1663
|
},
|
|
1631
1664
|
[ProtocolIdentifiers.StrategiesAutomation.CrvUSD]: {
|
|
1632
1665
|
[Strategies.Identifiers.Repay]: parseCrvUSDLeverageManagement,
|