@defisaver/automation-sdk 3.0.1 → 3.0.2-dev

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/esm/automation/private/LegacyAutomation.js +2 -2
  2. package/esm/automation/private/StrategiesAutomation.js +7 -1
  3. package/esm/automation/private/StrategiesAutomation.test.d.ts +1 -1
  4. package/esm/automation/private/StrategiesAutomation.test.js +500 -499
  5. package/esm/constants/index.js +10 -0
  6. package/esm/services/ethereumService.test.d.ts +1 -1
  7. package/esm/services/ethereumService.test.js +1 -0
  8. package/esm/services/strategiesService.js +37 -0
  9. package/esm/services/strategiesService.test.d.ts +1 -1
  10. package/esm/services/strategiesService.test.js +1 -0
  11. package/esm/services/strategySubService.d.ts +3 -0
  12. package/esm/services/strategySubService.js +11 -1
  13. package/esm/services/strategySubService.test.d.ts +1 -1
  14. package/esm/services/strategySubService.test.js +74 -0
  15. package/esm/services/subDataService.d.ts +12 -0
  16. package/esm/services/subDataService.js +33 -1
  17. package/esm/services/subDataService.test.d.ts +1 -1
  18. package/esm/services/subDataService.test.js +89 -0
  19. package/esm/services/triggerService.d.ts +9 -0
  20. package/esm/services/triggerService.js +17 -1
  21. package/esm/services/triggerService.test.d.ts +1 -1
  22. package/esm/services/triggerService.test.js +37 -0
  23. package/esm/services/utils.test.d.ts +1 -1
  24. package/esm/services/utils.test.js +1 -0
  25. package/esm/types/enums.d.ts +5 -2
  26. package/esm/types/enums.js +3 -0
  27. package/package.json +2 -2
  28. package/scripts/generateContractTypes.js +1 -1
  29. package/src/automation/private/LegacyAutomation.ts +2 -2
  30. package/src/automation/private/StrategiesAutomation.test.ts +503 -501
  31. package/src/automation/private/StrategiesAutomation.ts +7 -0
  32. package/src/constants/index.ts +10 -0
  33. package/src/services/ethereumService.test.ts +1 -0
  34. package/src/services/strategiesService.test.ts +1 -0
  35. package/src/services/strategiesService.ts +42 -0
  36. package/src/services/strategySubService.test.ts +90 -1
  37. package/src/services/strategySubService.ts +25 -0
  38. package/src/services/subDataService.test.ts +97 -1
  39. package/src/services/subDataService.ts +43 -0
  40. package/src/services/triggerService.test.ts +40 -0
  41. package/src/services/triggerService.ts +23 -0
  42. package/src/services/utils.test.ts +1 -0
  43. package/src/types/enums.ts +3 -0
  44. package/umd/index.js +126 -3
  45. package/.env +0 -4
  46. package/.yarn/releases/yarn-1.22.1.cjs +0 -147386
  47. package/.yarnrc.yml +0 -3
package/umd/index.js CHANGED
@@ -372,6 +372,16 @@ var MAINNET_BUNDLES_INFO = {
372
372
  strategyOrBundleId: _types_enums__WEBPACK_IMPORTED_MODULE_0__.Bundles.MainnetIds.CRVUSD_BOOST,
373
373
  strategyId: _types_enums__WEBPACK_IMPORTED_MODULE_0__.Strategies.Identifiers.Boost,
374
374
  protocol: PROTOCOLS.CrvUSD
375
+ },
376
+ [_types_enums__WEBPACK_IMPORTED_MODULE_0__.Bundles.MainnetIds.MORPHO_BLUE_REPAY]: {
377
+ strategyOrBundleId: _types_enums__WEBPACK_IMPORTED_MODULE_0__.Bundles.MainnetIds.MORPHO_BLUE_REPAY,
378
+ strategyId: _types_enums__WEBPACK_IMPORTED_MODULE_0__.Strategies.Identifiers.Repay,
379
+ protocol: PROTOCOLS.MorphoBlue
380
+ },
381
+ [_types_enums__WEBPACK_IMPORTED_MODULE_0__.Bundles.MainnetIds.MORPHO_BLUE_BOOST]: {
382
+ strategyOrBundleId: _types_enums__WEBPACK_IMPORTED_MODULE_0__.Bundles.MainnetIds.MORPHO_BLUE_BOOST,
383
+ strategyId: _types_enums__WEBPACK_IMPORTED_MODULE_0__.Strategies.Identifiers.Boost,
384
+ protocol: PROTOCOLS.MorphoBlue
375
385
  }
376
386
  };
377
387
  var OPTIMISM_BUNDLES_INFO = {
@@ -499,6 +509,7 @@ var ProtocolIdentifiers;
499
509
  StrategiesAutomation["Exchange"] = "Exchange";
500
510
  StrategiesAutomation["Spark"] = "Spark";
501
511
  StrategiesAutomation["CrvUSD"] = "CurveUSD";
512
+ StrategiesAutomation["MorphoBlue"] = "MorphoBlue";
502
513
  })(StrategiesAutomation || (StrategiesAutomation = {}));
503
514
  _ProtocolIdentifiers.StrategiesAutomation = StrategiesAutomation;
504
515
  var LegacyAutomation;
@@ -610,6 +621,8 @@ var Bundles;
610
621
  MainnetIds[MainnetIds["COMP_V2_BOOST"] = 21] = "COMP_V2_BOOST";
611
622
  MainnetIds[MainnetIds["CRVUSD_REPAY"] = 26] = "CRVUSD_REPAY";
612
623
  MainnetIds[MainnetIds["CRVUSD_BOOST"] = 27] = "CRVUSD_BOOST";
624
+ MainnetIds[MainnetIds["MORPHO_BLUE_REPAY"] = 32] = "MORPHO_BLUE_REPAY";
625
+ MainnetIds[MainnetIds["MORPHO_BLUE_BOOST"] = 33] = "MORPHO_BLUE_BOOST";
613
626
  })(MainnetIds || (MainnetIds = {}));
614
627
  _Bundles.MainnetIds = MainnetIds;
615
628
  var OptimismIds;
@@ -1170,8 +1183,8 @@ class LegacyAutomation extends _Automation__WEBPACK_IMPORTED_MODULE_4__["default
1170
1183
  getParsedSubscriptions(addresses, options) {
1171
1184
  var _this4 = this;
1172
1185
  return _asyncToGenerator(function* () {
1173
- // Legacy automation was disabled on block 18213086
1174
- if (!(options !== null && options !== void 0 && options.fromBlock) || (options === null || options === void 0 ? void 0 : options.fromBlock) === 'latest' || (options === null || options === void 0 ? void 0 : options.fromBlock) === 'pending' || options !== null && options !== void 0 && options.fromBlock && new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(options === null || options === void 0 ? void 0 : options.fromBlock.toString()).lt(18213086)) {
1186
+ var legacyAutomationSunset = 18213086;
1187
+ if (!(options !== null && options !== void 0 && options.fromBlock) || (options === null || options === void 0 ? void 0 : options.fromBlock) === 'latest' || (options === null || options === void 0 ? void 0 : options.fromBlock) === 'pending' || options !== null && options !== void 0 && options.fromBlock && new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(options === null || options === void 0 ? void 0 : options.fromBlock.toString()).gte(legacyAutomationSunset)) {
1175
1188
  return [];
1176
1189
  }
1177
1190
  var subscriptions = yield _this4._getSubscriptions(addresses, options);
@@ -1451,6 +1464,10 @@ class StrategiesAutomation extends _Automation__WEBPACK_IMPORTED_MODULE_6__["def
1451
1464
  getEventFromSubStorage(event, options) {
1452
1465
  var _this = this;
1453
1466
  return _asyncToGenerator(function* () {
1467
+ var _options$fromBlock;
1468
+ if (new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(_this.subStorageContract.createdBlock.toString()).gt((options === null || options === void 0 ? void 0 : (_options$fromBlock = options.fromBlock) === null || _options$fromBlock === void 0 ? void 0 : _options$fromBlock.toString()) || 0)) {
1469
+ return [];
1470
+ }
1454
1471
  return (0,_services_ethereumService__WEBPACK_IMPORTED_MODULE_4__.getEventsFromContract)(_this.subStorageContract, _this.subStorageContractFork, event, options);
1455
1472
  })();
1456
1473
  }
@@ -1520,7 +1537,8 @@ class StrategiesAutomation extends _Automation__WEBPACK_IMPORTED_MODULE_6__["def
1520
1537
  _mergeCheck(s, current) {
1521
1538
  return s.owner === current.owner && s.strategy.strategyId === current.strategy.strategyId && s.protocol.id === current.protocol.id && s.specific.mergeId === current.specific.mergeWithId && (s.protocol.id !== _types_enums__WEBPACK_IMPORTED_MODULE_1__.ProtocolIdentifiers.StrategiesAutomation.MakerDAO // reflexer needs to get added if we have it
1522
1539
  || s.strategyData.decoded.subData.vaultId === current.strategyData.decoded.triggerData.vaultId) && (s.protocol.id !== _types_enums__WEBPACK_IMPORTED_MODULE_1__.ProtocolIdentifiers.StrategiesAutomation.CrvUSD // merge only crvUSD leverage management for the same market
1523
- || s.strategyData.decoded.subData.controller.toLowerCase() === current.strategyData.decoded.triggerData.controller.toLowerCase());
1540
+ || s.strategyData.decoded.subData.controller.toLowerCase() === current.strategyData.decoded.triggerData.controller.toLowerCase()) && (s.protocol.id !== _types_enums__WEBPACK_IMPORTED_MODULE_1__.ProtocolIdentifiers.StrategiesAutomation.MorphoBlue // merge morpho blue with the same marketId
1541
+ || s.strategyData.decoded.triggerData.marketId.toLowerCase() === current.strategyData.decoded.triggerData.marketId.toLowerCase());
1524
1542
  }
1525
1543
  mergeSubs(_subscriptions) {
1526
1544
  var mergeBase = _subscriptions.filter(s => (0,_services_utils__WEBPACK_IMPORTED_MODULE_2__.isDefined)(s) && (0,_services_utils__WEBPACK_IMPORTED_MODULE_2__.isDefined)(s.specific.mergeWithId));
@@ -2233,6 +2251,44 @@ function parseCrvUSDLeverageManagement(position, parseData) {
2233
2251
  _position.strategy.strategyId = _types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.IdOverrides.LeverageManagement;
2234
2252
  return _position;
2235
2253
  }
2254
+ function parseMorphoBlueLeverageManagement(position, parseData) {
2255
+ var _position = (0,lodash__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(position);
2256
+ var {
2257
+ subStruct,
2258
+ subId,
2259
+ subHash
2260
+ } = parseData.subscriptionEventData;
2261
+ var {
2262
+ isEnabled
2263
+ } = parseData.strategiesSubsData;
2264
+ var triggerData = _triggerService__WEBPACK_IMPORTED_MODULE_6__.morphoBlueRatioTrigger.decode(subStruct.triggerData);
2265
+ var subData = _subDataService__WEBPACK_IMPORTED_MODULE_5__.morphoBlueLeverageManagementSubData.decode(subStruct.subData);
2266
+ _position.strategyData.decoded.triggerData = triggerData;
2267
+ _position.strategyData.decoded.subData = subData;
2268
+ var isRepay = _position.strategy.strategyId === _types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.Repay;
2269
+ if (isRepay) {
2270
+ _position.specific = {
2271
+ triggerRepayRatio: triggerData.ratio,
2272
+ targetRepayRatio: subData.targetRatio,
2273
+ repayEnabled: isEnabled,
2274
+ subId1: Number(subId),
2275
+ subHashRepay: subHash,
2276
+ mergeWithId: _types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.Boost
2277
+ };
2278
+ } else {
2279
+ _position.specific = {
2280
+ triggerBoostRatio: triggerData.ratio,
2281
+ targetBoostRatio: subData.targetRatio,
2282
+ boostEnabled: isEnabled,
2283
+ subId2: Number(subId),
2284
+ subHashBoost: subHash,
2285
+ mergeId: _types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.Boost
2286
+ };
2287
+ }
2288
+ _position.positionId = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getPositionId)(_position.chainId, _position.protocol.id, _position.owner, triggerData.marketId);
2289
+ _position.strategy.strategyId = _types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.IdOverrides.LeverageManagement;
2290
+ return _position;
2291
+ }
2236
2292
  var parsingMethodsMapping = {
2237
2293
  [_types_enums__WEBPACK_IMPORTED_MODULE_3__.ProtocolIdentifiers.StrategiesAutomation.MakerDAO]: {
2238
2294
  [_types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.SavingsLiqProtection]: parseMakerSavingsLiqProtection,
@@ -2295,6 +2351,10 @@ var parsingMethodsMapping = {
2295
2351
  [_types_enums__WEBPACK_IMPORTED_MODULE_3__.ProtocolIdentifiers.StrategiesAutomation.CrvUSD]: {
2296
2352
  [_types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.Repay]: parseCrvUSDLeverageManagement,
2297
2353
  [_types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.Boost]: parseCrvUSDLeverageManagement
2354
+ },
2355
+ [_types_enums__WEBPACK_IMPORTED_MODULE_3__.ProtocolIdentifiers.StrategiesAutomation.MorphoBlue]: {
2356
+ [_types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.Repay]: parseMorphoBlueLeverageManagement,
2357
+ [_types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.Boost]: parseMorphoBlueLeverageManagement
2298
2358
  }
2299
2359
  };
2300
2360
  function getParsingMethod(id, strategy) {
@@ -19582,6 +19642,7 @@ __webpack_require__.r(__webpack_exports__);
19582
19642
  /* harmony export */ makerLeverageManagementSubData: () => (/* binding */ makerLeverageManagementSubData),
19583
19643
  /* harmony export */ makerRepayFromSavingsSubData: () => (/* binding */ makerRepayFromSavingsSubData),
19584
19644
  /* harmony export */ morphoAaveV2LeverageManagementSubData: () => (/* binding */ morphoAaveV2LeverageManagementSubData),
19645
+ /* harmony export */ morphoBlueLeverageManagementSubData: () => (/* binding */ morphoBlueLeverageManagementSubData),
19585
19646
  /* harmony export */ sparkLeverageManagementSubData: () => (/* binding */ sparkLeverageManagementSubData),
19586
19647
  /* harmony export */ sparkQuotePriceSubData: () => (/* binding */ sparkQuotePriceSubData)
19587
19648
  /* harmony export */ });
@@ -19997,6 +20058,38 @@ var crvUSDLeverageManagementSubData = {
19997
20058
  };
19998
20059
  }
19999
20060
  };
20061
+ var morphoBlueLeverageManagementSubData = {
20062
+ encode: (loanToken, collToken, oracle, irm, lltv, ratioState, targetRatio, user) => {
20063
+ var loanTokenEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', loanToken);
20064
+ var collTokenEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', collToken);
20065
+ var oracleEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', oracle);
20066
+ var irmEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', irm);
20067
+ var lltvEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint256', lltv);
20068
+ var ratioStateEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint8', ratioState);
20069
+ var targetRatioEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint256', (0,_utils__WEBPACK_IMPORTED_MODULE_6__.ratioPercentageToWei)(targetRatio));
20070
+ var userEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', user);
20071
+ return [loanTokenEncoded, collTokenEncoded, oracleEncoded, irmEncoded, lltvEncoded, ratioStateEncoded, targetRatioEncoded, userEncoded];
20072
+ },
20073
+ decode: subData => {
20074
+ var loanToken = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('address', subData[0]);
20075
+ var collToken = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('address', subData[1]);
20076
+ var oracle = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('address', subData[2]);
20077
+ var irm = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('address', subData[3]);
20078
+ var lltv = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('uint256', subData[4]);
20079
+ var weiRatio = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('uint256', subData[6]);
20080
+ var user = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('address', subData[7]);
20081
+ var targetRatio = (0,_utils__WEBPACK_IMPORTED_MODULE_6__.weiToRatioPercentage)(weiRatio);
20082
+ return {
20083
+ loanToken,
20084
+ collToken,
20085
+ oracle,
20086
+ irm,
20087
+ lltv,
20088
+ user,
20089
+ targetRatio
20090
+ };
20091
+ }
20092
+ };
20000
20093
 
20001
20094
  /***/ }),
20002
20095
  /* 31 */
@@ -33065,6 +33158,7 @@ __webpack_require__.r(__webpack_exports__);
33065
33158
  /* harmony export */ liquityRatioTrigger: () => (/* binding */ liquityRatioTrigger),
33066
33159
  /* harmony export */ makerRatioTrigger: () => (/* binding */ makerRatioTrigger),
33067
33160
  /* harmony export */ morphoAaveV2RatioTrigger: () => (/* binding */ morphoAaveV2RatioTrigger),
33161
+ /* harmony export */ morphoBlueRatioTrigger: () => (/* binding */ morphoBlueRatioTrigger),
33068
33162
  /* harmony export */ sparkQuotePriceTrigger: () => (/* binding */ sparkQuotePriceTrigger),
33069
33163
  /* harmony export */ sparkRatioTrigger: () => (/* binding */ sparkRatioTrigger),
33070
33164
  /* harmony export */ trailingStopTrigger: () => (/* binding */ trailingStopTrigger)
@@ -33397,6 +33491,23 @@ var crvUSDRatioTrigger = {
33397
33491
  };
33398
33492
  }
33399
33493
  };
33494
+ var morphoBlueRatioTrigger = {
33495
+ encode(marketId,
33496
+ // bytes32
33497
+ owner, ratioPercentage, ratioState) {
33498
+ var ratioWei = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.ratioPercentageToWei)(ratioPercentage);
33499
+ return [web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().encodeParameters(['bytes32', 'address', 'uint256', 'uint8'], [marketId, owner, ratioWei, ratioState])];
33500
+ },
33501
+ decode(triggerData) {
33502
+ var decodedData = web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().decodeParameters(['bytes32', 'address', 'uint256', 'uint8'], triggerData[0]);
33503
+ return {
33504
+ marketId: decodedData[0],
33505
+ owner: decodedData[1],
33506
+ ratio: (0,_utils__WEBPACK_IMPORTED_MODULE_4__.weiToRatioPercentage)(decodedData[2]),
33507
+ ratioState: Number(decodedData[3])
33508
+ };
33509
+ }
33510
+ };
33400
33511
 
33401
33512
  /***/ }),
33402
33513
  /* 322 */
@@ -33468,6 +33579,7 @@ __webpack_require__.r(__webpack_exports__);
33468
33579
  /* harmony export */ liquityEncode: () => (/* binding */ liquityEncode),
33469
33580
  /* harmony export */ makerEncode: () => (/* binding */ makerEncode),
33470
33581
  /* harmony export */ morphoAaveV2Encode: () => (/* binding */ morphoAaveV2Encode),
33582
+ /* harmony export */ morphoBlueEncode: () => (/* binding */ morphoBlueEncode),
33471
33583
  /* harmony export */ sparkEncode: () => (/* binding */ sparkEncode)
33472
33584
  /* harmony export */ });
33473
33585
  /* harmony import */ var decimal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
@@ -33718,6 +33830,17 @@ var crvUSDEncode = {
33718
33830
  return [strategyOrBundleId, isBundle, triggerData, subData];
33719
33831
  }
33720
33832
  };
33833
+ var morphoBlueEncode = {
33834
+ leverageManagement(marketId, loanToken, collToken, oracle, irm, lltv, ratioState, targetRatio, triggerRatio, user) {
33835
+ var subData = _subDataService__WEBPACK_IMPORTED_MODULE_4__.morphoBlueLeverageManagementSubData.encode(loanToken, collToken, oracle, irm, lltv, ratioState, targetRatio, user);
33836
+ var triggerData = _triggerService__WEBPACK_IMPORTED_MODULE_5__.morphoBlueRatioTrigger.encode(marketId, user, triggerRatio, ratioState);
33837
+
33838
+ // over is boost, under is repay
33839
+ var strategyOrBundleId = ratioState === _types_enums__WEBPACK_IMPORTED_MODULE_2__.RatioState.OVER ? _types_enums__WEBPACK_IMPORTED_MODULE_2__.Bundles.MainnetIds.MORPHO_BLUE_BOOST : _types_enums__WEBPACK_IMPORTED_MODULE_2__.Bundles.MainnetIds.MORPHO_BLUE_REPAY;
33840
+ var isBundle = true;
33841
+ return [strategyOrBundleId, isBundle, triggerData, subData];
33842
+ }
33843
+ };
33721
33844
 
33722
33845
  /***/ })
33723
33846
  /******/ ]);
package/.env DELETED
@@ -1,4 +0,0 @@
1
- RPC_1=
2
- RPC_10=
3
- RPC_8453=
4
- RPC_42161=