@defisaver/automation-sdk 3.0.1 → 3.0.2

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 (48) hide show
  1. package/esm/automation/private/LegacyAutomation.js +2 -2
  2. package/esm/automation/private/StrategiesAutomation.js +9 -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 +38 -1
  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 +9 -0
  32. package/src/constants/index.ts +10 -0
  33. package/src/services/ethereumService.test.ts +1 -0
  34. package/src/services/ethereumService.ts +1 -1
  35. package/src/services/strategiesService.test.ts +1 -0
  36. package/src/services/strategiesService.ts +47 -1
  37. package/src/services/strategySubService.test.ts +90 -1
  38. package/src/services/strategySubService.ts +25 -0
  39. package/src/services/subDataService.test.ts +97 -1
  40. package/src/services/subDataService.ts +43 -0
  41. package/src/services/triggerService.test.ts +40 -0
  42. package/src/services/triggerService.ts +23 -0
  43. package/src/services/utils.test.ts +1 -0
  44. package/src/types/enums.ts +3 -0
  45. package/umd/index.js +129 -4
  46. package/.env +0 -4
  47. package/.yarn/releases/yarn-1.22.1.cjs +0 -147386
  48. 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,12 @@ 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
+ // only used for backfilling, so in case options?.fromBlock in undefined
1469
+ // (just like we omit fromBlock when we call from app when not on fork), we still want to fetch events
1470
+ 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()) || _this.subStorageContract.createdBlock.toString())) {
1471
+ return [];
1472
+ }
1454
1473
  return (0,_services_ethereumService__WEBPACK_IMPORTED_MODULE_4__.getEventsFromContract)(_this.subStorageContract, _this.subStorageContractFork, event, options);
1455
1474
  })();
1456
1475
  }
@@ -1520,7 +1539,8 @@ class StrategiesAutomation extends _Automation__WEBPACK_IMPORTED_MODULE_6__["def
1520
1539
  _mergeCheck(s, current) {
1521
1540
  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
1541
  || 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());
1542
+ || 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
1543
+ || s.strategyData.decoded.triggerData.marketId.toLowerCase() === current.strategyData.decoded.triggerData.marketId.toLowerCase());
1524
1544
  }
1525
1545
  mergeSubs(_subscriptions) {
1526
1546
  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));
@@ -2209,6 +2229,45 @@ function parseCrvUSDLeverageManagement(position, parseData) {
2209
2229
  var subData = _subDataService__WEBPACK_IMPORTED_MODULE_5__.crvUSDLeverageManagementSubData.decode(subStruct.subData);
2210
2230
  _position.strategyData.decoded.triggerData = triggerData;
2211
2231
  _position.strategyData.decoded.subData = subData;
2232
+ _position.positionId = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getPositionId)(_position.chainId, _position.protocol.id, _position.owner, triggerData.controller);
2233
+ var isRepay = _position.strategy.strategyId === _types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.Repay;
2234
+ if (isRepay) {
2235
+ _position.specific = {
2236
+ triggerRepayRatio: triggerData.ratio,
2237
+ targetRepayRatio: subData.targetRatio,
2238
+ repayEnabled: isEnabled,
2239
+ subId1: Number(subId),
2240
+ subHashRepay: subHash,
2241
+ mergeWithId: _types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.Boost
2242
+ };
2243
+ } else {
2244
+ _position.specific = {
2245
+ triggerBoostRatio: triggerData.ratio,
2246
+ targetBoostRatio: subData.targetRatio,
2247
+ boostEnabled: isEnabled,
2248
+ subId2: Number(subId),
2249
+ subHashBoost: subHash,
2250
+ mergeId: _types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.Boost
2251
+ };
2252
+ }
2253
+ _position.strategy.strategyId = _types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.IdOverrides.LeverageManagement;
2254
+ return _position;
2255
+ }
2256
+ function parseMorphoBlueLeverageManagement(position, parseData) {
2257
+ var _position = (0,lodash__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(position);
2258
+ var {
2259
+ subStruct,
2260
+ subId,
2261
+ subHash
2262
+ } = parseData.subscriptionEventData;
2263
+ var {
2264
+ isEnabled
2265
+ } = parseData.strategiesSubsData;
2266
+ var triggerData = _triggerService__WEBPACK_IMPORTED_MODULE_6__.morphoBlueRatioTrigger.decode(subStruct.triggerData);
2267
+ var subData = _subDataService__WEBPACK_IMPORTED_MODULE_5__.morphoBlueLeverageManagementSubData.decode(subStruct.subData);
2268
+ _position.strategyData.decoded.triggerData = triggerData;
2269
+ _position.strategyData.decoded.subData = subData;
2270
+ _position.positionId = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getPositionId)(_position.chainId, _position.protocol.id, _position.owner, triggerData.marketId);
2212
2271
  var isRepay = _position.strategy.strategyId === _types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.Repay;
2213
2272
  if (isRepay) {
2214
2273
  _position.specific = {
@@ -2229,7 +2288,6 @@ function parseCrvUSDLeverageManagement(position, parseData) {
2229
2288
  mergeId: _types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.Boost
2230
2289
  };
2231
2290
  }
2232
- _position.positionId = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getPositionId)(_position.chainId, _position.protocol.id, _position.owner, triggerData.controller);
2233
2291
  _position.strategy.strategyId = _types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.IdOverrides.LeverageManagement;
2234
2292
  return _position;
2235
2293
  }
@@ -2295,6 +2353,10 @@ var parsingMethodsMapping = {
2295
2353
  [_types_enums__WEBPACK_IMPORTED_MODULE_3__.ProtocolIdentifiers.StrategiesAutomation.CrvUSD]: {
2296
2354
  [_types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.Repay]: parseCrvUSDLeverageManagement,
2297
2355
  [_types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.Boost]: parseCrvUSDLeverageManagement
2356
+ },
2357
+ [_types_enums__WEBPACK_IMPORTED_MODULE_3__.ProtocolIdentifiers.StrategiesAutomation.MorphoBlue]: {
2358
+ [_types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.Repay]: parseMorphoBlueLeverageManagement,
2359
+ [_types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.Boost]: parseMorphoBlueLeverageManagement
2298
2360
  }
2299
2361
  };
2300
2362
  function getParsingMethod(id, strategy) {
@@ -19582,6 +19644,7 @@ __webpack_require__.r(__webpack_exports__);
19582
19644
  /* harmony export */ makerLeverageManagementSubData: () => (/* binding */ makerLeverageManagementSubData),
19583
19645
  /* harmony export */ makerRepayFromSavingsSubData: () => (/* binding */ makerRepayFromSavingsSubData),
19584
19646
  /* harmony export */ morphoAaveV2LeverageManagementSubData: () => (/* binding */ morphoAaveV2LeverageManagementSubData),
19647
+ /* harmony export */ morphoBlueLeverageManagementSubData: () => (/* binding */ morphoBlueLeverageManagementSubData),
19585
19648
  /* harmony export */ sparkLeverageManagementSubData: () => (/* binding */ sparkLeverageManagementSubData),
19586
19649
  /* harmony export */ sparkQuotePriceSubData: () => (/* binding */ sparkQuotePriceSubData)
19587
19650
  /* harmony export */ });
@@ -19997,6 +20060,38 @@ var crvUSDLeverageManagementSubData = {
19997
20060
  };
19998
20061
  }
19999
20062
  };
20063
+ var morphoBlueLeverageManagementSubData = {
20064
+ encode: (loanToken, collToken, oracle, irm, lltv, ratioState, targetRatio, user) => {
20065
+ var loanTokenEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', loanToken);
20066
+ var collTokenEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', collToken);
20067
+ var oracleEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', oracle);
20068
+ var irmEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', irm);
20069
+ var lltvEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint256', lltv);
20070
+ var ratioStateEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint8', ratioState);
20071
+ var targetRatioEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('uint256', (0,_utils__WEBPACK_IMPORTED_MODULE_6__.ratioPercentageToWei)(targetRatio));
20072
+ var userEncoded = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().encodeParameter('address', user);
20073
+ return [loanTokenEncoded, collTokenEncoded, oracleEncoded, irmEncoded, lltvEncoded, ratioStateEncoded, targetRatioEncoded, userEncoded];
20074
+ },
20075
+ decode: subData => {
20076
+ var loanToken = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('address', subData[0]);
20077
+ var collToken = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('address', subData[1]);
20078
+ var oracle = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('address', subData[2]);
20079
+ var irm = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('address', subData[3]);
20080
+ var lltv = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('uint256', subData[4]);
20081
+ var weiRatio = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('uint256', subData[6]);
20082
+ var user = web3_eth_abi__WEBPACK_IMPORTED_MODULE_1___default().decodeParameter('address', subData[7]);
20083
+ var targetRatio = (0,_utils__WEBPACK_IMPORTED_MODULE_6__.weiToRatioPercentage)(weiRatio);
20084
+ return {
20085
+ loanToken,
20086
+ collToken,
20087
+ oracle,
20088
+ irm,
20089
+ lltv,
20090
+ user,
20091
+ targetRatio
20092
+ };
20093
+ }
20094
+ };
20000
20095
 
20001
20096
  /***/ }),
20002
20097
  /* 31 */
@@ -33065,6 +33160,7 @@ __webpack_require__.r(__webpack_exports__);
33065
33160
  /* harmony export */ liquityRatioTrigger: () => (/* binding */ liquityRatioTrigger),
33066
33161
  /* harmony export */ makerRatioTrigger: () => (/* binding */ makerRatioTrigger),
33067
33162
  /* harmony export */ morphoAaveV2RatioTrigger: () => (/* binding */ morphoAaveV2RatioTrigger),
33163
+ /* harmony export */ morphoBlueRatioTrigger: () => (/* binding */ morphoBlueRatioTrigger),
33068
33164
  /* harmony export */ sparkQuotePriceTrigger: () => (/* binding */ sparkQuotePriceTrigger),
33069
33165
  /* harmony export */ sparkRatioTrigger: () => (/* binding */ sparkRatioTrigger),
33070
33166
  /* harmony export */ trailingStopTrigger: () => (/* binding */ trailingStopTrigger)
@@ -33397,6 +33493,23 @@ var crvUSDRatioTrigger = {
33397
33493
  };
33398
33494
  }
33399
33495
  };
33496
+ var morphoBlueRatioTrigger = {
33497
+ encode(marketId,
33498
+ // bytes32
33499
+ owner, ratioPercentage, ratioState) {
33500
+ var ratioWei = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.ratioPercentageToWei)(ratioPercentage);
33501
+ return [web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().encodeParameters(['bytes32', 'address', 'uint256', 'uint8'], [marketId, owner, ratioWei, ratioState])];
33502
+ },
33503
+ decode(triggerData) {
33504
+ var decodedData = web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().decodeParameters(['bytes32', 'address', 'uint256', 'uint8'], triggerData[0]);
33505
+ return {
33506
+ marketId: decodedData[0],
33507
+ owner: decodedData[1],
33508
+ ratio: (0,_utils__WEBPACK_IMPORTED_MODULE_4__.weiToRatioPercentage)(decodedData[2]),
33509
+ ratioState: Number(decodedData[3])
33510
+ };
33511
+ }
33512
+ };
33400
33513
 
33401
33514
  /***/ }),
33402
33515
  /* 322 */
@@ -33468,6 +33581,7 @@ __webpack_require__.r(__webpack_exports__);
33468
33581
  /* harmony export */ liquityEncode: () => (/* binding */ liquityEncode),
33469
33582
  /* harmony export */ makerEncode: () => (/* binding */ makerEncode),
33470
33583
  /* harmony export */ morphoAaveV2Encode: () => (/* binding */ morphoAaveV2Encode),
33584
+ /* harmony export */ morphoBlueEncode: () => (/* binding */ morphoBlueEncode),
33471
33585
  /* harmony export */ sparkEncode: () => (/* binding */ sparkEncode)
33472
33586
  /* harmony export */ });
33473
33587
  /* harmony import */ var decimal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
@@ -33718,6 +33832,17 @@ var crvUSDEncode = {
33718
33832
  return [strategyOrBundleId, isBundle, triggerData, subData];
33719
33833
  }
33720
33834
  };
33835
+ var morphoBlueEncode = {
33836
+ leverageManagement(marketId, loanToken, collToken, oracle, irm, lltv, ratioState, targetRatio, triggerRatio, user) {
33837
+ var subData = _subDataService__WEBPACK_IMPORTED_MODULE_4__.morphoBlueLeverageManagementSubData.encode(loanToken, collToken, oracle, irm, lltv, ratioState, targetRatio, user);
33838
+ var triggerData = _triggerService__WEBPACK_IMPORTED_MODULE_5__.morphoBlueRatioTrigger.encode(marketId, user, triggerRatio, ratioState);
33839
+
33840
+ // over is boost, under is repay
33841
+ 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;
33842
+ var isBundle = true;
33843
+ return [strategyOrBundleId, isBundle, triggerData, subData];
33844
+ }
33845
+ };
33721
33846
 
33722
33847
  /***/ })
33723
33848
  /******/ ]);
package/.env DELETED
@@ -1,4 +0,0 @@
1
- RPC_1=
2
- RPC_10=
3
- RPC_8453=
4
- RPC_42161=