@defisaver/automation-sdk 3.1.9 → 3.1.14-spark-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 (245) hide show
  1. package/.babelrc +3 -3
  2. package/.editorconfig +9 -9
  3. package/.env.dev +4 -4
  4. package/.eslintignore +6 -6
  5. package/.eslintrc.js +39 -39
  6. package/.mocharc.json +4 -4
  7. package/.nvmrc +1 -1
  8. package/README.md +46 -46
  9. package/cjs/abis/Erc20.json +223 -223
  10. package/cjs/abis/SubStorage.json +21 -21
  11. package/cjs/abis/UniMulticall.json +17 -17
  12. package/cjs/abis/index.d.ts +9 -9
  13. package/cjs/abis/index.js +30 -30
  14. package/cjs/abis/legacy_AaveV2Subscriptions.json +8 -8
  15. package/cjs/abis/legacy_AuthCheck.json +8 -8
  16. package/cjs/abis/legacy_CompoundV2Subscriptions.json +9 -9
  17. package/cjs/abis/legacy_MakerSubscriptions.json +9 -9
  18. package/cjs/automation/private/Automation.d.ts +12 -12
  19. package/cjs/automation/private/Automation.js +42 -42
  20. package/cjs/automation/private/LegacyAutomation.d.ts +25 -25
  21. package/cjs/automation/private/LegacyAutomation.js +118 -118
  22. package/cjs/automation/private/LegacyProtocol.d.ts +22 -22
  23. package/cjs/automation/private/LegacyProtocol.js +41 -41
  24. package/cjs/automation/private/LegacyProtocol.test.d.ts +1 -1
  25. package/cjs/automation/private/LegacyProtocol.test.js +25 -25
  26. package/cjs/automation/private/Protocol.d.ts +22 -22
  27. package/cjs/automation/private/Protocol.js +41 -41
  28. package/cjs/automation/private/Protocol.test.d.ts +1 -1
  29. package/cjs/automation/private/Protocol.test.js +25 -25
  30. package/cjs/automation/private/StrategiesAutomation.d.ts +35 -33
  31. package/cjs/automation/private/StrategiesAutomation.js +198 -181
  32. package/cjs/automation/private/StrategiesAutomation.test.d.ts +1 -1
  33. package/cjs/automation/private/StrategiesAutomation.test.js +696 -671
  34. package/cjs/automation/public/ArbitrumStrategies.d.ts +5 -5
  35. package/cjs/automation/public/ArbitrumStrategies.js +13 -13
  36. package/cjs/automation/public/BaseStrategies.d.ts +5 -5
  37. package/cjs/automation/public/BaseStrategies.js +13 -13
  38. package/cjs/automation/public/EthereumStrategies.d.ts +5 -5
  39. package/cjs/automation/public/EthereumStrategies.js +13 -13
  40. package/cjs/automation/public/OptimismStrategies.d.ts +5 -5
  41. package/cjs/automation/public/OptimismStrategies.js +13 -13
  42. package/cjs/automation/public/Strategies.test.d.ts +1 -1
  43. package/cjs/automation/public/Strategies.test.js +61 -61
  44. package/cjs/automation/public/legacy/LegacyAaveAutomation.d.ts +6 -6
  45. package/cjs/automation/public/legacy/LegacyAaveAutomation.js +20 -20
  46. package/cjs/automation/public/legacy/LegacyCompoundAutomation.d.ts +6 -6
  47. package/cjs/automation/public/legacy/LegacyCompoundAutomation.js +20 -20
  48. package/cjs/automation/public/legacy/LegacyMakerAutomation.d.ts +6 -6
  49. package/cjs/automation/public/legacy/LegacyMakerAutomation.js +20 -20
  50. package/cjs/configuration.d.ts +1 -1
  51. package/cjs/configuration.js +12 -12
  52. package/cjs/constants/index.d.ts +29 -28
  53. package/cjs/constants/index.js +905 -534
  54. package/cjs/index.d.ts +24 -23
  55. package/cjs/index.js +65 -65
  56. package/cjs/services/contractService.d.ts +12 -12
  57. package/cjs/services/contractService.js +54 -54
  58. package/cjs/services/ethereumService.d.ts +7 -7
  59. package/cjs/services/ethereumService.js +56 -49
  60. package/cjs/services/ethereumService.test.d.ts +1 -1
  61. package/cjs/services/ethereumService.test.js +245 -242
  62. package/cjs/services/strategiesService.d.ts +2 -2
  63. package/cjs/services/strategiesService.js +1173 -861
  64. package/cjs/services/strategiesService.test.d.ts +1 -1
  65. package/cjs/services/strategiesService.test.js +111 -110
  66. package/cjs/services/strategySubService.d.ts +129 -107
  67. package/cjs/services/strategySubService.js +414 -300
  68. package/cjs/services/strategySubService.test.d.ts +1 -1
  69. package/cjs/services/strategySubService.test.js +1812 -936
  70. package/cjs/services/subDataService.d.ts +527 -245
  71. package/cjs/services/subDataService.js +1219 -636
  72. package/cjs/services/subDataService.test.d.ts +1 -1
  73. package/cjs/services/subDataService.test.js +2427 -1282
  74. package/cjs/services/triggerService.d.ts +325 -226
  75. package/cjs/services/triggerService.js +616 -433
  76. package/cjs/services/triggerService.test.d.ts +1 -1
  77. package/cjs/services/triggerService.test.js +1317 -926
  78. package/cjs/services/utils.d.ts +30 -30
  79. package/cjs/services/utils.js +190 -182
  80. package/cjs/services/utils.test.d.ts +1 -1
  81. package/cjs/services/utils.test.js +299 -376
  82. package/cjs/types/contracts/generated/Erc20.d.ts +53 -53
  83. package/cjs/types/contracts/generated/Erc20.js +5 -5
  84. package/cjs/types/contracts/generated/Legacy_AaveV2Subscriptions.d.ts +129 -129
  85. package/cjs/types/contracts/generated/Legacy_AaveV2Subscriptions.js +5 -5
  86. package/cjs/types/contracts/generated/Legacy_AuthCheck.d.ts +20 -20
  87. package/cjs/types/contracts/generated/Legacy_AuthCheck.js +5 -5
  88. package/cjs/types/contracts/generated/Legacy_CompoundV2Subscriptions.d.ts +128 -128
  89. package/cjs/types/contracts/generated/Legacy_CompoundV2Subscriptions.js +5 -5
  90. package/cjs/types/contracts/generated/Legacy_MakerSubscriptions.d.ts +246 -246
  91. package/cjs/types/contracts/generated/Legacy_MakerSubscriptions.js +5 -5
  92. package/cjs/types/contracts/generated/SubStorage.d.ts +114 -114
  93. package/cjs/types/contracts/generated/SubStorage.js +5 -5
  94. package/cjs/types/contracts/generated/UniMulticall.d.ts +55 -55
  95. package/cjs/types/contracts/generated/UniMulticall.js +5 -5
  96. package/cjs/types/contracts/generated/index.d.ts +7 -7
  97. package/cjs/types/contracts/generated/index.js +2 -2
  98. package/cjs/types/contracts/generated/types.d.ts +54 -54
  99. package/cjs/types/contracts/generated/types.js +2 -2
  100. package/cjs/types/enums.d.ts +302 -219
  101. package/cjs/types/enums.js +328 -245
  102. package/cjs/types/index.d.ts +306 -248
  103. package/cjs/types/index.js +2 -2
  104. package/esm/abis/Erc20.json +223 -223
  105. package/esm/abis/SubStorage.json +21 -21
  106. package/esm/abis/UniMulticall.json +17 -17
  107. package/esm/abis/index.d.ts +9 -9
  108. package/esm/abis/index.js +18 -18
  109. package/esm/abis/legacy_AaveV2Subscriptions.json +8 -8
  110. package/esm/abis/legacy_AuthCheck.json +8 -8
  111. package/esm/abis/legacy_CompoundV2Subscriptions.json +9 -9
  112. package/esm/abis/legacy_MakerSubscriptions.json +9 -9
  113. package/esm/automation/private/Automation.d.ts +12 -12
  114. package/esm/automation/private/Automation.js +39 -39
  115. package/esm/automation/private/LegacyAutomation.d.ts +25 -25
  116. package/esm/automation/private/LegacyAutomation.js +112 -112
  117. package/esm/automation/private/LegacyProtocol.d.ts +22 -22
  118. package/esm/automation/private/LegacyProtocol.js +38 -38
  119. package/esm/automation/private/LegacyProtocol.test.d.ts +1 -1
  120. package/esm/automation/private/LegacyProtocol.test.js +20 -20
  121. package/esm/automation/private/Protocol.d.ts +22 -22
  122. package/esm/automation/private/Protocol.js +38 -38
  123. package/esm/automation/private/Protocol.test.d.ts +1 -1
  124. package/esm/automation/private/Protocol.test.js +20 -20
  125. package/esm/automation/private/StrategiesAutomation.d.ts +35 -33
  126. package/esm/automation/private/StrategiesAutomation.js +192 -175
  127. package/esm/automation/private/StrategiesAutomation.test.d.ts +1 -1
  128. package/esm/automation/private/StrategiesAutomation.test.js +691 -666
  129. package/esm/automation/public/ArbitrumStrategies.d.ts +5 -5
  130. package/esm/automation/public/ArbitrumStrategies.js +7 -7
  131. package/esm/automation/public/BaseStrategies.d.ts +5 -5
  132. package/esm/automation/public/BaseStrategies.js +7 -7
  133. package/esm/automation/public/EthereumStrategies.d.ts +5 -5
  134. package/esm/automation/public/EthereumStrategies.js +7 -7
  135. package/esm/automation/public/OptimismStrategies.d.ts +5 -5
  136. package/esm/automation/public/OptimismStrategies.js +7 -7
  137. package/esm/automation/public/Strategies.test.d.ts +1 -1
  138. package/esm/automation/public/Strategies.test.js +56 -56
  139. package/esm/automation/public/legacy/LegacyAaveAutomation.d.ts +6 -6
  140. package/esm/automation/public/legacy/LegacyAaveAutomation.js +14 -14
  141. package/esm/automation/public/legacy/LegacyCompoundAutomation.d.ts +6 -6
  142. package/esm/automation/public/legacy/LegacyCompoundAutomation.js +14 -14
  143. package/esm/automation/public/legacy/LegacyMakerAutomation.d.ts +6 -6
  144. package/esm/automation/public/legacy/LegacyMakerAutomation.js +14 -14
  145. package/esm/configuration.d.ts +1 -1
  146. package/esm/configuration.js +7 -7
  147. package/esm/constants/index.d.ts +29 -28
  148. package/esm/constants/index.js +899 -528
  149. package/esm/index.d.ts +24 -23
  150. package/esm/index.js +23 -23
  151. package/esm/services/contractService.d.ts +12 -12
  152. package/esm/services/contractService.js +45 -45
  153. package/esm/services/ethereumService.d.ts +7 -7
  154. package/esm/services/ethereumService.js +48 -41
  155. package/esm/services/ethereumService.test.d.ts +1 -1
  156. package/esm/services/ethereumService.test.js +240 -237
  157. package/esm/services/strategiesService.d.ts +2 -2
  158. package/esm/services/strategiesService.js +1143 -831
  159. package/esm/services/strategiesService.test.d.ts +1 -1
  160. package/esm/services/strategiesService.test.js +109 -108
  161. package/esm/services/strategySubService.d.ts +129 -107
  162. package/esm/services/strategySubService.js +385 -271
  163. package/esm/services/strategySubService.test.d.ts +1 -1
  164. package/esm/services/strategySubService.test.js +1784 -908
  165. package/esm/services/subDataService.d.ts +527 -245
  166. package/esm/services/subDataService.js +1213 -630
  167. package/esm/services/subDataService.test.d.ts +1 -1
  168. package/esm/services/subDataService.test.js +2399 -1254
  169. package/esm/services/triggerService.d.ts +325 -226
  170. package/esm/services/triggerService.js +587 -404
  171. package/esm/services/triggerService.test.d.ts +1 -1
  172. package/esm/services/triggerService.test.js +1292 -901
  173. package/esm/services/utils.d.ts +30 -30
  174. package/esm/services/utils.js +139 -131
  175. package/esm/services/utils.test.d.ts +1 -1
  176. package/esm/services/utils.test.js +297 -348
  177. package/esm/types/contracts/generated/Erc20.d.ts +53 -53
  178. package/esm/types/contracts/generated/Erc20.js +4 -4
  179. package/esm/types/contracts/generated/Legacy_AaveV2Subscriptions.d.ts +129 -129
  180. package/esm/types/contracts/generated/Legacy_AaveV2Subscriptions.js +4 -4
  181. package/esm/types/contracts/generated/Legacy_AuthCheck.d.ts +20 -20
  182. package/esm/types/contracts/generated/Legacy_AuthCheck.js +4 -4
  183. package/esm/types/contracts/generated/Legacy_CompoundV2Subscriptions.d.ts +128 -128
  184. package/esm/types/contracts/generated/Legacy_CompoundV2Subscriptions.js +4 -4
  185. package/esm/types/contracts/generated/Legacy_MakerSubscriptions.d.ts +246 -246
  186. package/esm/types/contracts/generated/Legacy_MakerSubscriptions.js +4 -4
  187. package/esm/types/contracts/generated/SubStorage.d.ts +114 -114
  188. package/esm/types/contracts/generated/SubStorage.js +4 -4
  189. package/esm/types/contracts/generated/UniMulticall.d.ts +55 -55
  190. package/esm/types/contracts/generated/UniMulticall.js +4 -4
  191. package/esm/types/contracts/generated/index.d.ts +7 -7
  192. package/esm/types/contracts/generated/index.js +1 -1
  193. package/esm/types/contracts/generated/types.d.ts +54 -54
  194. package/esm/types/contracts/generated/types.js +1 -1
  195. package/esm/types/enums.d.ts +302 -219
  196. package/esm/types/enums.js +325 -242
  197. package/esm/types/index.d.ts +306 -248
  198. package/esm/types/index.js +1 -1
  199. package/package.json +60 -61
  200. package/scripts/generateContractTypes.js +39 -39
  201. package/src/abis/Erc20.json +222 -222
  202. package/src/abis/SubStorage.json +21 -21
  203. package/src/abis/UniMulticall.json +17 -17
  204. package/src/abis/index.ts +28 -28
  205. package/src/abis/legacy_AaveV2Subscriptions.json +7 -7
  206. package/src/abis/legacy_AuthCheck.json +7 -7
  207. package/src/abis/legacy_CompoundV2Subscriptions.json +8 -8
  208. package/src/abis/legacy_MakerSubscriptions.json +8 -8
  209. package/src/automation/private/Automation.ts +44 -44
  210. package/src/automation/private/LegacyAutomation.ts +135 -135
  211. package/src/automation/private/LegacyProtocol.test.ts +23 -23
  212. package/src/automation/private/LegacyProtocol.ts +51 -51
  213. package/src/automation/private/Protocol.test.ts +23 -23
  214. package/src/automation/private/Protocol.ts +51 -51
  215. package/src/automation/private/StrategiesAutomation.test.ts +703 -663
  216. package/src/automation/private/StrategiesAutomation.ts +265 -242
  217. package/src/automation/public/ArbitrumStrategies.ts +10 -10
  218. package/src/automation/public/BaseStrategies.ts +10 -10
  219. package/src/automation/public/EthereumStrategies.ts +10 -10
  220. package/src/automation/public/OptimismStrategies.ts +10 -10
  221. package/src/automation/public/Strategies.test.ts +49 -49
  222. package/src/automation/public/legacy/LegacyAaveAutomation.ts +20 -20
  223. package/src/automation/public/legacy/LegacyCompoundAutomation.ts +20 -20
  224. package/src/automation/public/legacy/LegacyMakerAutomation.ts +20 -20
  225. package/src/configuration.ts +8 -8
  226. package/src/constants/index.ts +935 -563
  227. package/src/index.ts +41 -39
  228. package/src/services/contractService.ts +77 -77
  229. package/src/services/ethereumService.test.ts +260 -257
  230. package/src/services/ethereumService.ts +76 -69
  231. package/src/services/strategiesService.test.ts +106 -105
  232. package/src/services/strategiesService.ts +1473 -1111
  233. package/src/services/strategySubService.test.ts +2136 -1122
  234. package/src/services/strategySubService.ts +987 -617
  235. package/src/services/subDataService.test.ts +2630 -1387
  236. package/src/services/subDataService.ts +1631 -870
  237. package/src/services/triggerService.test.ts +1434 -1004
  238. package/src/services/triggerService.ts +819 -553
  239. package/src/services/utils.test.ts +371 -430
  240. package/src/services/utils.ts +173 -162
  241. package/src/types/enums.ts +322 -239
  242. package/src/types/index.ts +385 -312
  243. package/tsconfig.esm.json +8 -8
  244. package/tsconfig.json +22 -22
  245. package/umd/index.js +0 -34103
@@ -1,300 +1,414 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.liquityV2Encode = exports.morphoBlueEncode = exports.crvUSDEncode = exports.sparkEncode = exports.exchangeEncode = exports.morphoAaveV2Encode = exports.compoundV3L2Encode = exports.compoundV3Encode = exports.compoundV2Encode = exports.aaveV3Encode = exports.aaveV2Encode = exports.chickenBondsEncode = exports.liquityEncode = exports.makerEncode = void 0;
30
- const decimal_js_1 = __importDefault(require("decimal.js"));
31
- const tokens_1 = require("@defisaver/tokens");
32
- const enums_1 = require("../types/enums");
33
- const constants_1 = require("../constants");
34
- const subDataService = __importStar(require("./subDataService"));
35
- const triggerService = __importStar(require("./triggerService"));
36
- const utils_1 = require("./utils");
37
- exports.makerEncode = {
38
- repayFromSavings(bundleId, vaultId, triggerRepayRatio, targetRepayRatio, isBundle = true, chainId = enums_1.ChainId.Ethereum, daiAddr, mcdCdpManagerAddr) {
39
- const subData = subDataService.makerRepayFromSavingsSubData.encode(vaultId, targetRepayRatio, chainId, daiAddr, mcdCdpManagerAddr);
40
- const triggerData = triggerService.makerRatioTrigger.encode(vaultId, triggerRepayRatio, enums_1.RatioState.UNDER);
41
- return [bundleId, isBundle, triggerData, subData];
42
- },
43
- closeOnPrice(vaultId, ratioState, price, closeToAssetAddr, chainlinkCollAddress, chainId = enums_1.ChainId.Ethereum, daiAddr, mcdCdpManagerAddr) {
44
- (0, utils_1.requireAddresses)([closeToAssetAddr, chainlinkCollAddress]);
45
- const subData = subDataService.makerCloseSubData.encode(vaultId, closeToAssetAddr, chainId, daiAddr, mcdCdpManagerAddr);
46
- const triggerData = triggerService.chainlinkPriceTrigger.encode(chainlinkCollAddress, price, ratioState);
47
- const strategyOrBundleId = (0, utils_1.compareAddresses)(closeToAssetAddr, (0, tokens_1.getAssetInfo)('DAI', chainId).address)
48
- ? enums_1.Strategies.MainnetIds.MAKER_CLOSE_ON_PRICE_TO_DAI
49
- : enums_1.Strategies.MainnetIds.MAKER_CLOSE_ON_PRICE_TO_COLL;
50
- const isBundle = false;
51
- return [strategyOrBundleId, isBundle, triggerData, subData];
52
- },
53
- trailingStop(vaultId, triggerPercentage, closeToAssetAddr, chainlinkCollAddress, roundId, chainId = enums_1.ChainId.Ethereum, daiAddr, mcdCdpManagerAddr) {
54
- (0, utils_1.requireAddresses)([closeToAssetAddr, chainlinkCollAddress]);
55
- const subData = subDataService.makerCloseSubData.encode(vaultId, closeToAssetAddr, chainId, daiAddr, mcdCdpManagerAddr);
56
- const triggerData = triggerService.trailingStopTrigger.encode(chainlinkCollAddress, triggerPercentage, roundId);
57
- const strategyOrBundleId = (0, utils_1.compareAddresses)(closeToAssetAddr, (0, tokens_1.getAssetInfo)('DAI', chainId).address)
58
- ? enums_1.Strategies.MainnetIds.MAKER_TRAILING_STOP_LOSS_TO_DAI
59
- : enums_1.Strategies.MainnetIds.MAKER_TRAILING_STOP_LOSS_TO_COLL;
60
- const isBundle = false;
61
- return [strategyOrBundleId, isBundle, triggerData, subData];
62
- },
63
- leverageManagement(vaultId, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
64
- return [
65
- vaultId,
66
- new decimal_js_1.default(triggerRepayRatio).mul(1e16).toString(),
67
- new decimal_js_1.default(triggerBoostRatio).mul(1e16).toString(),
68
- new decimal_js_1.default(targetBoostRatio).mul(1e16).toString(),
69
- new decimal_js_1.default(targetRepayRatio).mul(1e16).toString(),
70
- boostEnabled,
71
- ];
72
- },
73
- };
74
- exports.liquityEncode = {
75
- closeOnPrice(priceOverOrUnder, price, closeToAssetAddr, chainlinkCollAddress, chainId = enums_1.ChainId.Ethereum, collAddr, debtAddr) {
76
- (0, utils_1.requireAddresses)([closeToAssetAddr, chainlinkCollAddress]);
77
- const subData = subDataService.liquityCloseSubData.encode(closeToAssetAddr, chainId, collAddr, debtAddr);
78
- const triggerData = triggerService.chainlinkPriceTrigger.encode(chainlinkCollAddress, price, priceOverOrUnder);
79
- const strategyOrBundleId = enums_1.Strategies.MainnetIds.LIQUITY_CLOSE_ON_PRICE_TO_COLL;
80
- const isBundle = false;
81
- return [strategyOrBundleId, isBundle, triggerData, subData];
82
- },
83
- trailingStop(triggerPercentage, closeToAssetAddr, chainlinkCollAddress, roundId, chainId = enums_1.ChainId.Ethereum, collAddr, debtAddr) {
84
- (0, utils_1.requireAddresses)([closeToAssetAddr, chainlinkCollAddress]);
85
- const subData = subDataService.liquityCloseSubData.encode(closeToAssetAddr, chainId, collAddr, debtAddr);
86
- const triggerData = triggerService.trailingStopTrigger.encode(chainlinkCollAddress, triggerPercentage, roundId);
87
- const strategyOrBundleId = enums_1.Strategies.MainnetIds.LIQUITY_TRAILING_STOP_LOSS_TO_COLL;
88
- const isBundle = false;
89
- return [strategyOrBundleId, isBundle, triggerData, subData];
90
- },
91
- paybackFromChickenBondStrategySub(proxyAddress, ratio, sourceId, sourceType, ratioState = enums_1.RatioState.UNDER) {
92
- (0, utils_1.requireAddress)(proxyAddress);
93
- const subData = subDataService.liquityPaybackUsingChickenBondSubData.encode(sourceId, sourceType);
94
- const triggerData = triggerService.liquityRatioTrigger.encode(proxyAddress, ratio, ratioState);
95
- const strategyId = enums_1.Bundles.MainnetIds.LIQUITY_PAYBACK_USING_CHICKEN_BOND;
96
- const isBundle = true;
97
- return [strategyId, isBundle, triggerData, subData];
98
- },
99
- leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
100
- return [
101
- new decimal_js_1.default(triggerRepayRatio).mul(1e16).toString(),
102
- new decimal_js_1.default(triggerBoostRatio).mul(1e16).toString(),
103
- new decimal_js_1.default(targetBoostRatio).mul(1e16).toString(),
104
- new decimal_js_1.default(targetRepayRatio).mul(1e16).toString(),
105
- boostEnabled,
106
- ];
107
- },
108
- dsrPayback(proxyAddress, triggerRatio, targetRatio) {
109
- (0, utils_1.requireAddress)(proxyAddress);
110
- const subData = subDataService.liquityDsrPaybackSubData.encode(targetRatio);
111
- const triggerData = triggerService.liquityRatioTrigger.encode(proxyAddress, triggerRatio, enums_1.RatioState.UNDER);
112
- const strategyOrBundleId = enums_1.Strategies.MainnetIds.LIQUITY_DSR_PAYBACK;
113
- const isBundle = false;
114
- return [strategyOrBundleId, isBundle, triggerData, subData];
115
- },
116
- dsrSupply(proxyAddress, triggerRatio, targetRatio) {
117
- (0, utils_1.requireAddress)(proxyAddress);
118
- const subData = subDataService.liquityDsrSupplySubData.encode(targetRatio);
119
- const triggerData = triggerService.liquityRatioTrigger.encode(proxyAddress, triggerRatio, enums_1.RatioState.UNDER);
120
- const strategyOrBundleId = enums_1.Strategies.MainnetIds.LIQUITY_DSR_SUPPLY;
121
- const isBundle = false;
122
- return [strategyOrBundleId, isBundle, triggerData, subData];
123
- },
124
- debtInFrontRepay(proxyAddress, debtInFrontMin, targetRatioIncrease) {
125
- (0, utils_1.requireAddress)(proxyAddress);
126
- const subData = subDataService.liquityDebtInFrontRepaySubData.encode(targetRatioIncrease);
127
- const triggerData = triggerService.liquityDebtInFrontWithLimitTrigger.encode(proxyAddress, debtInFrontMin);
128
- const strategyOrBundleId = enums_1.Strategies.MainnetIds.LIQUITY_DEBT_IN_FRONT_REPAY;
129
- const isBundle = false;
130
- return [strategyOrBundleId, isBundle, triggerData, subData];
131
- },
132
- };
133
- exports.chickenBondsEncode = {
134
- rebond(bondId) {
135
- return subDataService.cBondsRebondSubData.encode(bondId);
136
- },
137
- };
138
- exports.aaveV2Encode = {
139
- leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
140
- return subDataService.aaveV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
141
- },
142
- };
143
- exports.aaveV3Encode = {
144
- leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
145
- let subInput = '0x';
146
- subInput = subInput.concat(new decimal_js_1.default(triggerRepayRatio).mul(1e16).toHex().slice(2)
147
- .padStart(32, '0'));
148
- subInput = subInput.concat(new decimal_js_1.default(triggerBoostRatio).mul(1e16).toHex().slice(2)
149
- .padStart(32, '0'));
150
- subInput = subInput.concat(new decimal_js_1.default(targetBoostRatio).mul(1e16).toHex().slice(2)
151
- .padStart(32, '0'));
152
- subInput = subInput.concat(new decimal_js_1.default(targetRepayRatio).mul(1e16).toHex().slice(2)
153
- .padStart(32, '0'));
154
- subInput = subInput.concat(boostEnabled ? '01' : '00');
155
- return subInput;
156
- },
157
- closeToAsset(strategyOrBundleId, isBundle = true, triggerData, subData) {
158
- const { collAsset, collAssetId, debtAsset, debtAssetId, } = subData;
159
- const subDataEncoded = subDataService.aaveV3QuotePriceSubData.encode(collAsset, collAssetId, debtAsset, debtAssetId);
160
- const { baseTokenAddress, quoteTokenAddress, price, ratioState, } = triggerData;
161
- const triggerDataEncoded = triggerService.aaveV3QuotePriceTrigger.encode(baseTokenAddress, quoteTokenAddress, price, ratioState);
162
- return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
163
- },
164
- closeToAssetWithMaximumGasPrice(strategyOrBundleId, isBundle = true, triggerData, subData) {
165
- const { collAsset, collAssetId, debtAsset, debtAssetId, } = subData;
166
- const subDataEncoded = subDataService.aaveV3QuotePriceSubData.encode(collAsset, collAssetId, debtAsset, debtAssetId);
167
- const { baseTokenAddress, quoteTokenAddress, price, maximumGasPrice, ratioState, } = triggerData;
168
- const triggerDataEncoded = triggerService.aaveV3QuotePriceWithMaximumGasPriceTrigger.encode(baseTokenAddress, quoteTokenAddress, price, ratioState, maximumGasPrice);
169
- return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
170
- },
171
- leverageManagementOnPrice(strategyOrBundleId, isBundle = true, triggerData, subData) {
172
- const { collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio, } = subData;
173
- const subDataEncoded = subDataService.aaveV3LeverageManagementOnPriceSubData.encode(collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio);
174
- const { baseTokenAddress, quoteTokenAddress, price, state, } = triggerData;
175
- const triggerDataEncoded = triggerService.aaveV3QuotePriceTrigger.encode(baseTokenAddress, quoteTokenAddress, price, state);
176
- return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
177
- },
178
- };
179
- exports.compoundV2Encode = {
180
- leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
181
- return subDataService.compoundV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
182
- },
183
- };
184
- exports.compoundV3Encode = {
185
- leverageManagement(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA) {
186
- return subDataService.compoundV3LeverageManagementSubData.encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA);
187
- },
188
- };
189
- exports.compoundV3L2Encode = {
190
- leverageManagement(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
191
- return subDataService.compoundV3L2LeverageManagementSubData.encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
192
- },
193
- };
194
- exports.morphoAaveV2Encode = {
195
- leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
196
- return subDataService.morphoAaveV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
197
- },
198
- };
199
- exports.exchangeEncode = {
200
- dca(fromToken, toToken, amount, timestamp, interval, network) {
201
- (0, utils_1.requireAddresses)([fromToken, toToken]);
202
- const subData = subDataService.exchangeDcaSubData.encode(fromToken, toToken, amount, interval);
203
- const triggerData = triggerService.exchangeTimestampTrigger.encode(timestamp, interval);
204
- const strategyId = constants_1.STRATEGY_IDS[network].EXCHANGE_DCA;
205
- return [strategyId, false, triggerData, subData];
206
- },
207
- limitOrder(fromToken, toToken, amount, targetPrice, goodUntil, orderType) {
208
- return subDataService.exchangeLimitOrderSubData.encode(fromToken, toToken, amount, targetPrice, goodUntil, orderType);
209
- },
210
- };
211
- exports.sparkEncode = {
212
- leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
213
- let subInput = '0x';
214
- subInput = subInput.concat(new decimal_js_1.default(triggerRepayRatio).mul(1e16).toHex().slice(2)
215
- .padStart(32, '0'));
216
- subInput = subInput.concat(new decimal_js_1.default(triggerBoostRatio).mul(1e16).toHex().slice(2)
217
- .padStart(32, '0'));
218
- subInput = subInput.concat(new decimal_js_1.default(targetBoostRatio).mul(1e16).toHex().slice(2)
219
- .padStart(32, '0'));
220
- subInput = subInput.concat(new decimal_js_1.default(targetRepayRatio).mul(1e16).toHex().slice(2)
221
- .padStart(32, '0'));
222
- subInput = subInput.concat(boostEnabled ? '01' : '00');
223
- return subInput;
224
- },
225
- closeToAsset(strategyOrBundleId, isBundle = true, triggerData, subData) {
226
- const { collAsset, collAssetId, debtAsset, debtAssetId, } = subData;
227
- const subDataEncoded = subDataService.sparkQuotePriceSubData.encode(collAsset, collAssetId, debtAsset, debtAssetId);
228
- const { baseTokenAddress, quoteTokenAddress, price, ratioState, } = triggerData;
229
- const triggerDataEncoded = triggerService.sparkQuotePriceTrigger.encode(baseTokenAddress, quoteTokenAddress, price, ratioState);
230
- return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
231
- },
232
- };
233
- exports.crvUSDEncode = {
234
- leverageManagement(owner, controllerAddr, ratioState, targetRatio, triggerRatio, collTokenAddr, crvUSDAddr) {
235
- const subData = subDataService.crvUSDLeverageManagementSubData.encode(controllerAddr, ratioState, targetRatio, collTokenAddr, crvUSDAddr);
236
- const triggerData = triggerService.crvUSDRatioTrigger.encode(owner, controllerAddr, triggerRatio, ratioState);
237
- // over is boost, under is repay
238
- const strategyOrBundleId = ratioState === enums_1.RatioState.OVER ? enums_1.Bundles.MainnetIds.CRVUSD_BOOST : enums_1.Bundles.MainnetIds.CRVUSD_REPAY;
239
- const isBundle = true;
240
- return [strategyOrBundleId, isBundle, triggerData, subData];
241
- },
242
- payback(proxyAddress, addressToPullTokensFrom, positionOwner, paybackAmount, crvUSDAddr, controllerAddr, minHealthRatio) {
243
- const subData = subDataService.crvUSDPaybackSubData.encode(controllerAddr, addressToPullTokensFrom, positionOwner, paybackAmount, crvUSDAddr);
244
- const triggerData = triggerService.crvUsdHealthRatioTrigger.encode(proxyAddress, controllerAddr, minHealthRatio);
245
- const strategyId = enums_1.Strategies.MainnetIds.CURVEUSD_PAYBACK;
246
- const isBundle = false;
247
- return [strategyId, isBundle, triggerData, subData];
248
- },
249
- };
250
- exports.morphoBlueEncode = {
251
- leverageManagement(marketId, loanToken, collToken, oracle, irm, lltv, ratioState, targetRatio, triggerRatio, user, isEOA, network) {
252
- const subData = subDataService.morphoBlueLeverageManagementSubData.encode(loanToken, collToken, oracle, irm, lltv, ratioState, targetRatio, user, isEOA);
253
- const triggerData = triggerService.morphoBlueRatioTrigger.encode(marketId, user, triggerRatio, ratioState);
254
- // over is boost, under is repay
255
- const isBoost = ratioState === enums_1.RatioState.OVER;
256
- let strategyOrBundleId;
257
- if (network === enums_1.ChainId.Base) {
258
- return [isBoost ? enums_1.Bundles.BaseIds.MORPHO_BLUE_BOOST : enums_1.Bundles.BaseIds.MORPHO_BLUE_REPAY, true, triggerData, subData];
259
- }
260
- if (isBoost)
261
- strategyOrBundleId = isEOA ? enums_1.Bundles.MainnetIds.MORPHO_BLUE_EOA_BOOST : enums_1.Bundles.MainnetIds.MORPHO_BLUE_BOOST;
262
- else
263
- strategyOrBundleId = isEOA ? enums_1.Bundles.MainnetIds.MORPHO_BLUE_EOA_REPAY : enums_1.Bundles.MainnetIds.MORPHO_BLUE_REPAY;
264
- const isBundle = true;
265
- return [strategyOrBundleId, isBundle, triggerData, subData];
266
- },
267
- leverageManagementOnPrice(strategyOrBundleId, isBundle = true, loanToken, collToken, oracle, irm, lltv, user, targetRatio, price, priceState) {
268
- const subData = subDataService.morphoBlueLeverageManagementOnPriceSubData.encode(loanToken, collToken, oracle, irm, lltv, targetRatio, user);
269
- const triggerData = triggerService.morphoBluePriceTrigger.encode(oracle, collToken, loanToken, price, priceState);
270
- return [strategyOrBundleId, isBundle, triggerData, subData];
271
- },
272
- };
273
- exports.liquityV2Encode = {
274
- leverageManagement(market, troveId, collToken, boldToken, ratioState, targetRatio, triggerRatio, strategyOrBundleId) {
275
- const isBundle = true;
276
- const subData = subDataService.liquityV2LeverageManagementSubData.encode(market, troveId, collToken, boldToken, ratioState, targetRatio);
277
- const triggerData = triggerService.liquityV2RatioTrigger.encode(market, troveId, triggerRatio, ratioState);
278
- return [strategyOrBundleId, isBundle, triggerData, subData];
279
- },
280
- closeOnPrice(strategyOrBundleId, market, troveId, collToken, boldToken, stopLossPrice = 0, stopLossType = enums_1.CloseToAssetType.DEBT, takeProfitPrice = 0, takeProfitType = enums_1.CloseToAssetType.COLLATERAL) {
281
- const isBundle = true;
282
- const closeType = (0, utils_1.getCloseStrategyType)(stopLossPrice, stopLossType, takeProfitPrice, takeProfitType);
283
- const subData = subDataService.liquityV2CloseSubData.encode(market, troveId, collToken, boldToken, closeType);
284
- const triggerData = triggerService.closePriceTrigger.encode(collToken, stopLossPrice, takeProfitPrice);
285
- return [strategyOrBundleId, isBundle, triggerData, subData];
286
- },
287
- leverageManagementOnPrice(strategyOrBundleId, market, price, state, troveId, collToken, boldToken, targetRatio, isRepayOnPrice) {
288
- const subDataEncoded = subDataService.liquityV2LeverageManagementOnPriceSubData.encode(market, troveId, collToken, boldToken, targetRatio, isRepayOnPrice);
289
- const triggerDataEncoded = triggerService.liquityV2QuotePriceTrigger.encode(market, price, state);
290
- const isBundle = true;
291
- return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
292
- },
293
- payback(market, troveId, boldToken, targetRatio, ratioState, triggerRatio) {
294
- const strategyId = enums_1.Strategies.MainnetIds.LIQUITY_V2_PAYBACK;
295
- const isBundle = false;
296
- const subData = subDataService.liquityV2PaybackSubData.encode(market, troveId, boldToken, targetRatio, ratioState);
297
- const triggerData = triggerService.liquityV2RatioTrigger.encode(market, troveId, triggerRatio, ratioState);
298
- return [strategyId, isBundle, triggerData, subData];
299
- },
300
- };
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.aaveV4Encode = exports.fluidEncode = exports.liquityV2Encode = exports.morphoBlueEncode = exports.crvUSDEncode = exports.sparkEncode = exports.exchangeEncode = exports.morphoAaveV2Encode = exports.compoundV3L2Encode = exports.compoundV3Encode = exports.compoundV2Encode = exports.aaveV3Encode = exports.aaveV2Encode = exports.chickenBondsEncode = exports.liquityEncode = exports.makerEncode = void 0;
30
+ const decimal_js_1 = __importDefault(require("decimal.js"));
31
+ const tokens_1 = require("@defisaver/tokens");
32
+ const enums_1 = require("../types/enums");
33
+ const constants_1 = require("../constants");
34
+ const subDataService = __importStar(require("./subDataService"));
35
+ const triggerService = __importStar(require("./triggerService"));
36
+ const utils_1 = require("./utils");
37
+ exports.makerEncode = {
38
+ repayFromSavings(bundleId, vaultId, triggerRepayRatio, targetRepayRatio, isBundle = true, chainId = enums_1.ChainId.Ethereum, daiAddr, mcdCdpManagerAddr) {
39
+ const subData = subDataService.makerRepayFromSavingsSubData.encode(vaultId, targetRepayRatio, chainId, daiAddr, mcdCdpManagerAddr);
40
+ const triggerData = triggerService.makerRatioTrigger.encode(vaultId, triggerRepayRatio, enums_1.RatioState.UNDER);
41
+ return [bundleId, isBundle, triggerData, subData];
42
+ },
43
+ closeOnPrice(vaultId, ratioState, price, closeToAssetAddr, chainlinkCollAddress, chainId = enums_1.ChainId.Ethereum, daiAddr, mcdCdpManagerAddr) {
44
+ (0, utils_1.requireAddresses)([closeToAssetAddr, chainlinkCollAddress]);
45
+ const subData = subDataService.makerCloseSubData.encode(vaultId, closeToAssetAddr, chainId, daiAddr, mcdCdpManagerAddr);
46
+ const triggerData = triggerService.chainlinkPriceTrigger.encode(chainlinkCollAddress, price, ratioState);
47
+ const strategyOrBundleId = (0, utils_1.compareAddresses)(closeToAssetAddr, (0, tokens_1.getAssetInfo)('DAI', chainId).address)
48
+ ? enums_1.Strategies.MainnetIds.MAKER_CLOSE_ON_PRICE_TO_DAI
49
+ : enums_1.Strategies.MainnetIds.MAKER_CLOSE_ON_PRICE_TO_COLL;
50
+ const isBundle = false;
51
+ return [strategyOrBundleId, isBundle, triggerData, subData];
52
+ },
53
+ trailingStop(vaultId, triggerPercentage, closeToAssetAddr, chainlinkCollAddress, roundId, chainId = enums_1.ChainId.Ethereum, daiAddr, mcdCdpManagerAddr) {
54
+ (0, utils_1.requireAddresses)([closeToAssetAddr, chainlinkCollAddress]);
55
+ const subData = subDataService.makerCloseSubData.encode(vaultId, closeToAssetAddr, chainId, daiAddr, mcdCdpManagerAddr);
56
+ const triggerData = triggerService.trailingStopTrigger.encode(chainlinkCollAddress, triggerPercentage, roundId);
57
+ const strategyOrBundleId = (0, utils_1.compareAddresses)(closeToAssetAddr, (0, tokens_1.getAssetInfo)('DAI', chainId).address)
58
+ ? enums_1.Strategies.MainnetIds.MAKER_TRAILING_STOP_LOSS_TO_DAI
59
+ : enums_1.Strategies.MainnetIds.MAKER_TRAILING_STOP_LOSS_TO_COLL;
60
+ const isBundle = false;
61
+ return [strategyOrBundleId, isBundle, triggerData, subData];
62
+ },
63
+ leverageManagement(vaultId, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
64
+ return [
65
+ vaultId,
66
+ new decimal_js_1.default(triggerRepayRatio).mul(1e16).toString(),
67
+ new decimal_js_1.default(triggerBoostRatio).mul(1e16).toString(),
68
+ new decimal_js_1.default(targetBoostRatio).mul(1e16).toString(),
69
+ new decimal_js_1.default(targetRepayRatio).mul(1e16).toString(),
70
+ boostEnabled,
71
+ ];
72
+ },
73
+ leverageManagementWithoutSubProxy(vaultId, triggerRatio, targetRatio, ratioState, isBoost, daiAddr) {
74
+ const bundleId = isBoost ? enums_1.Bundles.MainnetIds.MAKER_BOOST : enums_1.Bundles.MainnetIds.MAKER_REPAY;
75
+ const triggerData = triggerService.makerRatioTrigger.encode(vaultId, triggerRatio, ratioState);
76
+ const subData = subDataService.makerLeverageManagementWithoutSubProxy.encode(vaultId, targetRatio, daiAddr);
77
+ return [
78
+ bundleId,
79
+ true,
80
+ triggerData,
81
+ subData,
82
+ ];
83
+ },
84
+ };
85
+ exports.liquityEncode = {
86
+ closeOnPrice(priceOverOrUnder, price, closeToAssetAddr, chainlinkCollAddress, chainId = enums_1.ChainId.Ethereum, collAddr, debtAddr) {
87
+ (0, utils_1.requireAddresses)([closeToAssetAddr, chainlinkCollAddress]);
88
+ const subData = subDataService.liquityCloseSubData.encode(closeToAssetAddr, chainId, collAddr, debtAddr);
89
+ const triggerData = triggerService.chainlinkPriceTrigger.encode(chainlinkCollAddress, price, priceOverOrUnder);
90
+ const strategyOrBundleId = enums_1.Strategies.MainnetIds.LIQUITY_CLOSE_ON_PRICE_TO_COLL;
91
+ const isBundle = false;
92
+ return [strategyOrBundleId, isBundle, triggerData, subData];
93
+ },
94
+ trailingStop(triggerPercentage, closeToAssetAddr, chainlinkCollAddress, roundId, chainId = enums_1.ChainId.Ethereum, collAddr, debtAddr) {
95
+ (0, utils_1.requireAddresses)([closeToAssetAddr, chainlinkCollAddress]);
96
+ const subData = subDataService.liquityCloseSubData.encode(closeToAssetAddr, chainId, collAddr, debtAddr);
97
+ const triggerData = triggerService.trailingStopTrigger.encode(chainlinkCollAddress, triggerPercentage, roundId);
98
+ const strategyOrBundleId = enums_1.Strategies.MainnetIds.LIQUITY_TRAILING_STOP_LOSS_TO_COLL;
99
+ const isBundle = false;
100
+ return [strategyOrBundleId, isBundle, triggerData, subData];
101
+ },
102
+ paybackFromChickenBondStrategySub(proxyAddress, ratio, sourceId, sourceType, ratioState = enums_1.RatioState.UNDER) {
103
+ (0, utils_1.requireAddress)(proxyAddress);
104
+ const subData = subDataService.liquityPaybackUsingChickenBondSubData.encode(sourceId, sourceType);
105
+ const triggerData = triggerService.liquityRatioTrigger.encode(proxyAddress, ratio, ratioState);
106
+ const strategyId = enums_1.Bundles.MainnetIds.LIQUITY_PAYBACK_USING_CHICKEN_BOND;
107
+ const isBundle = true;
108
+ return [strategyId, isBundle, triggerData, subData];
109
+ },
110
+ leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
111
+ return [
112
+ new decimal_js_1.default(triggerRepayRatio).mul(1e16).toString(),
113
+ new decimal_js_1.default(triggerBoostRatio).mul(1e16).toString(),
114
+ new decimal_js_1.default(targetBoostRatio).mul(1e16).toString(),
115
+ new decimal_js_1.default(targetRepayRatio).mul(1e16).toString(),
116
+ boostEnabled,
117
+ ];
118
+ },
119
+ dsrPayback(proxyAddress, triggerRatio, targetRatio) {
120
+ (0, utils_1.requireAddress)(proxyAddress);
121
+ const subData = subDataService.liquityDsrPaybackSubData.encode(targetRatio);
122
+ const triggerData = triggerService.liquityRatioTrigger.encode(proxyAddress, triggerRatio, enums_1.RatioState.UNDER);
123
+ const strategyOrBundleId = enums_1.Strategies.MainnetIds.LIQUITY_DSR_PAYBACK;
124
+ const isBundle = false;
125
+ return [strategyOrBundleId, isBundle, triggerData, subData];
126
+ },
127
+ dsrSupply(proxyAddress, triggerRatio, targetRatio) {
128
+ (0, utils_1.requireAddress)(proxyAddress);
129
+ const subData = subDataService.liquityDsrSupplySubData.encode(targetRatio);
130
+ const triggerData = triggerService.liquityRatioTrigger.encode(proxyAddress, triggerRatio, enums_1.RatioState.UNDER);
131
+ const strategyOrBundleId = enums_1.Strategies.MainnetIds.LIQUITY_DSR_SUPPLY;
132
+ const isBundle = false;
133
+ return [strategyOrBundleId, isBundle, triggerData, subData];
134
+ },
135
+ debtInFrontRepay(proxyAddress, debtInFrontMin, targetRatioIncrease) {
136
+ (0, utils_1.requireAddress)(proxyAddress);
137
+ const subData = subDataService.liquityDebtInFrontRepaySubData.encode(targetRatioIncrease);
138
+ const triggerData = triggerService.liquityDebtInFrontWithLimitTrigger.encode(proxyAddress, debtInFrontMin);
139
+ const strategyOrBundleId = enums_1.Strategies.MainnetIds.LIQUITY_DEBT_IN_FRONT_REPAY;
140
+ const isBundle = false;
141
+ return [strategyOrBundleId, isBundle, triggerData, subData];
142
+ },
143
+ };
144
+ exports.chickenBondsEncode = {
145
+ rebond(bondId) {
146
+ return subDataService.cBondsRebondSubData.encode(bondId);
147
+ },
148
+ };
149
+ exports.aaveV2Encode = {
150
+ leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
151
+ return subDataService.aaveV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
152
+ },
153
+ };
154
+ exports.aaveV3Encode = {
155
+ leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
156
+ let subInput = '0x';
157
+ subInput = subInput.concat(new decimal_js_1.default(triggerRepayRatio).mul(1e16).toHex().slice(2)
158
+ .padStart(32, '0'));
159
+ subInput = subInput.concat(new decimal_js_1.default(triggerBoostRatio).mul(1e16).toHex().slice(2)
160
+ .padStart(32, '0'));
161
+ subInput = subInput.concat(new decimal_js_1.default(targetBoostRatio).mul(1e16).toHex().slice(2)
162
+ .padStart(32, '0'));
163
+ subInput = subInput.concat(new decimal_js_1.default(targetRepayRatio).mul(1e16).toHex().slice(2)
164
+ .padStart(32, '0'));
165
+ subInput = subInput.concat(boostEnabled ? '01' : '00');
166
+ return subInput;
167
+ },
168
+ closeToAsset(strategyOrBundleId, isBundle = true, triggerData, subData) {
169
+ const { collAsset, collAssetId, debtAsset, debtAssetId, } = subData;
170
+ const subDataEncoded = subDataService.aaveV3QuotePriceSubData.encode(collAsset, collAssetId, debtAsset, debtAssetId);
171
+ const { baseTokenAddress, quoteTokenAddress, price, ratioState, } = triggerData;
172
+ const triggerDataEncoded = triggerService.aaveV3QuotePriceTrigger.encode(baseTokenAddress, quoteTokenAddress, price, ratioState);
173
+ return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
174
+ },
175
+ closeToAssetWithMaximumGasPrice(strategyOrBundleId, isBundle = true, triggerData, subData) {
176
+ const { collAsset, collAssetId, debtAsset, debtAssetId, } = subData;
177
+ const subDataEncoded = subDataService.aaveV3QuotePriceSubData.encode(collAsset, collAssetId, debtAsset, debtAssetId);
178
+ const { baseTokenAddress, quoteTokenAddress, price, maximumGasPrice, ratioState, } = triggerData;
179
+ const triggerDataEncoded = triggerService.aaveV3QuotePriceWithMaximumGasPriceTrigger.encode(baseTokenAddress, quoteTokenAddress, price, ratioState, maximumGasPrice);
180
+ return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
181
+ },
182
+ leverageManagementOnPrice(strategyOrBundleId, isBundle = true, triggerData, subData) {
183
+ const { collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio, } = subData;
184
+ const subDataEncoded = subDataService.aaveV3LeverageManagementOnPriceSubData.encode(collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio);
185
+ const { baseTokenAddress, quoteTokenAddress, price, state, } = triggerData;
186
+ const triggerDataEncoded = triggerService.aaveV3QuotePriceTrigger.encode(baseTokenAddress, quoteTokenAddress, price, state);
187
+ return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
188
+ },
189
+ leverageManagementWithoutSubProxy(strategyOrBundleId, market, user, ratioState, targetRatio, triggerRatio, isGeneric = false) {
190
+ const isBundle = true;
191
+ const subData = subDataService.aaveV3LeverageManagementSubDataWithoutSubProxy.encode(targetRatio, ratioState, market, user, isGeneric);
192
+ const triggerData = triggerService.aaveV3RatioTrigger.encode(user, market, triggerRatio, ratioState);
193
+ return [strategyOrBundleId, isBundle, triggerData, subData];
194
+ },
195
+ leverageManagementOnPriceGeneric(strategyOrBundleId, price, ratioState, collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio, user) {
196
+ const isBundle = true;
197
+ const subDataEncoded = subDataService.aaveV3LeverageManagementOnPriceGeneric.encode(collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio, user);
198
+ const triggerDataEncoded = triggerService.aaveV3QuotePriceTrigger.encode(collAsset, debtAsset, price, ratioState);
199
+ return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
200
+ },
201
+ closeOnPriceGeneric(strategyOrBundleId, collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, user, stopLossPrice = 0, stopLossType = enums_1.CloseToAssetType.DEBT, takeProfitPrice = 0, takeProfitType = enums_1.CloseToAssetType.COLLATERAL) {
202
+ const isBundle = true;
203
+ const closeType = (0, utils_1.getCloseStrategyType)(stopLossPrice, stopLossType, takeProfitPrice, takeProfitType);
204
+ const subDataEncoded = subDataService.aaveV3CloseGenericSubData.encode(collAsset, collAssetId, debtAsset, debtAssetId, closeType, marketAddr, user);
205
+ const triggerDataEncoded = triggerService.aaveV3QuotePriceRangeTrigger.encode(collAsset, debtAsset, stopLossPrice, takeProfitPrice);
206
+ return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
207
+ },
208
+ collateralSwitch(strategyOrBundleId, fromAsset, fromAssetId, toAsset, toAssetId, marketAddr, amountToSwitch, baseTokenAddress, quoteTokenAddress, price, state) {
209
+ const isBundle = false;
210
+ const subDataEncoded = subDataService.aaveV3CollateralSwitchSubData.encode(fromAsset, fromAssetId, toAsset, toAssetId, marketAddr, amountToSwitch);
211
+ const triggerDataEncoded = triggerService.aaveV3QuotePriceTrigger.encode(baseTokenAddress, quoteTokenAddress, price, state);
212
+ return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
213
+ },
214
+ };
215
+ exports.compoundV2Encode = {
216
+ leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
217
+ return subDataService.compoundV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
218
+ },
219
+ };
220
+ exports.compoundV3Encode = {
221
+ leverageManagement(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA) {
222
+ return subDataService.compoundV3LeverageManagementSubData.encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA);
223
+ },
224
+ leverageManagementOnPrice(strategyOrBundleId, market, collToken, baseToken, targetRatio, price, priceState, ratioState, // REPAY for repay on price, BOOST for boost on price
225
+ user) {
226
+ const isBundle = true;
227
+ const subDataEncoded = subDataService.compoundV3LeverageManagementOnPriceSubData.encode(market, collToken, baseToken, targetRatio, ratioState, user);
228
+ const triggerDataEncoded = triggerService.compoundV3PriceTrigger.encode(market, collToken, user, price, priceState);
229
+ return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
230
+ },
231
+ closeOnPrice(strategyOrBundleId, market, collToken, baseToken, stopLossPrice = 0, stopLossType = enums_1.CloseToAssetType.DEBT, takeProfitPrice = 0, takeProfitType = enums_1.CloseToAssetType.COLLATERAL, user) {
232
+ const isBundle = true;
233
+ const closeType = (0, utils_1.getCloseStrategyType)(stopLossPrice, stopLossType, takeProfitPrice, takeProfitType);
234
+ const subDataEncoded = subDataService.compoundV3CloseSubData.encode(market, collToken, baseToken, closeType, user);
235
+ const triggerDataEncoded = triggerService.compoundV3PriceRangeTrigger.encode(market, collToken, stopLossPrice, takeProfitPrice);
236
+ return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
237
+ },
238
+ };
239
+ exports.compoundV3L2Encode = {
240
+ leverageManagement(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA = false) {
241
+ return subDataService.compoundV3L2LeverageManagementSubData.encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA);
242
+ },
243
+ };
244
+ exports.morphoAaveV2Encode = {
245
+ leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
246
+ return subDataService.morphoAaveV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
247
+ },
248
+ };
249
+ exports.exchangeEncode = {
250
+ dca(fromToken, toToken, amount, timestamp, interval, network) {
251
+ (0, utils_1.requireAddresses)([fromToken, toToken]);
252
+ const subData = subDataService.exchangeDcaSubData.encode(fromToken, toToken, amount, interval);
253
+ const triggerData = triggerService.exchangeTimestampTrigger.encode(timestamp, interval);
254
+ const strategyId = constants_1.STRATEGY_IDS[network].EXCHANGE_DCA;
255
+ return [strategyId, false, triggerData, subData];
256
+ },
257
+ limitOrder(fromToken, toToken, amount, targetPrice, goodUntil, orderType) {
258
+ return subDataService.exchangeLimitOrderSubData.encode(fromToken, toToken, amount, targetPrice, goodUntil, orderType);
259
+ },
260
+ };
261
+ exports.sparkEncode = {
262
+ leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
263
+ let subInput = '0x';
264
+ subInput = subInput.concat(new decimal_js_1.default(triggerRepayRatio).mul(1e16).toHex().slice(2)
265
+ .padStart(32, '0'));
266
+ subInput = subInput.concat(new decimal_js_1.default(triggerBoostRatio).mul(1e16).toHex().slice(2)
267
+ .padStart(32, '0'));
268
+ subInput = subInput.concat(new decimal_js_1.default(targetBoostRatio).mul(1e16).toHex().slice(2)
269
+ .padStart(32, '0'));
270
+ subInput = subInput.concat(new decimal_js_1.default(targetRepayRatio).mul(1e16).toHex().slice(2)
271
+ .padStart(32, '0'));
272
+ subInput = subInput.concat(boostEnabled ? '01' : '00');
273
+ return subInput;
274
+ },
275
+ leverageManagementOnPrice(strategyOrBundleId, isBundle = true, triggerData, subData) {
276
+ const { collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio, } = subData;
277
+ const subDataEncoded = subDataService.sparkLeverageManagementOnPriceSubData.encode(collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio);
278
+ const { baseTokenAddr, quoteTokenAddr, price, ratioState, } = triggerData;
279
+ const triggerDataEncoded = triggerService.sparkQuotePriceTrigger.encode(baseTokenAddr, quoteTokenAddr, price, ratioState);
280
+ return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
281
+ },
282
+ closeOnPriceGeneric(strategyOrBundleId, collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, user, stopLossPrice = 0, stopLossType = enums_1.CloseToAssetType.DEBT, takeProfitPrice = 0, takeProfitType = enums_1.CloseToAssetType.COLLATERAL) {
283
+ const isBundle = true;
284
+ const closeType = (0, utils_1.getCloseStrategyType)(stopLossPrice, stopLossType, takeProfitPrice, takeProfitType);
285
+ const subDataEncoded = subDataService.sparkCloseGenericSubData.encode(collAsset, collAssetId, debtAsset, debtAssetId, closeType, marketAddr, user);
286
+ const triggerDataEncoded = triggerService.sparkQuotePriceRangeTrigger.encode(collAsset, debtAsset, stopLossPrice, takeProfitPrice);
287
+ return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
288
+ },
289
+ leverageManagementWithoutSubProxy(strategyOrBundleId, market, user, ratioState, targetRatio, triggerRatio) {
290
+ const isBundle = true;
291
+ const subData = subDataService.sparkLeverageManagementSubDataWithoutSubProxy.encode(targetRatio, ratioState);
292
+ const triggerData = triggerService.sparkRatioTrigger.encode(user, market, triggerRatio, ratioState);
293
+ return [strategyOrBundleId, isBundle, triggerData, subData];
294
+ },
295
+ collateralSwitch(strategyOrBundleId, fromAsset, fromAssetId, toAsset, toAssetId, marketAddr, amountToSwitch, baseTokenAddress, quoteTokenAddress, price, state) {
296
+ const isBundle = false;
297
+ const subDataEncoded = subDataService.sparkCollateralSwitchSubData.encode(fromAsset, fromAssetId, toAsset, toAssetId, marketAddr, amountToSwitch);
298
+ const triggerDataEncoded = triggerService.sparkQuotePriceTrigger.encode(baseTokenAddress, quoteTokenAddress, price, state);
299
+ return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
300
+ },
301
+ };
302
+ exports.crvUSDEncode = {
303
+ leverageManagement(owner, controllerAddr, ratioState, targetRatio, triggerRatio, collTokenAddr, crvUSDAddr) {
304
+ const subData = subDataService.crvUSDLeverageManagementSubData.encode(controllerAddr, ratioState, targetRatio, collTokenAddr, crvUSDAddr);
305
+ const triggerData = triggerService.crvUSDRatioTrigger.encode(owner, controllerAddr, triggerRatio, ratioState);
306
+ // over is boost, under is repay
307
+ const strategyOrBundleId = ratioState === enums_1.RatioState.OVER ? enums_1.Bundles.MainnetIds.CRVUSD_BOOST : enums_1.Bundles.MainnetIds.CRVUSD_REPAY;
308
+ const isBundle = true;
309
+ return [strategyOrBundleId, isBundle, triggerData, subData];
310
+ },
311
+ payback(proxyAddress, addressToPullTokensFrom, positionOwner, paybackAmount, crvUSDAddr, controllerAddr, minHealthRatio) {
312
+ const subData = subDataService.crvUSDPaybackSubData.encode(controllerAddr, addressToPullTokensFrom, positionOwner, paybackAmount, crvUSDAddr);
313
+ const triggerData = triggerService.crvUsdHealthRatioTrigger.encode(proxyAddress, controllerAddr, minHealthRatio);
314
+ const strategyId = enums_1.Strategies.MainnetIds.CURVEUSD_PAYBACK;
315
+ const isBundle = false;
316
+ return [strategyId, isBundle, triggerData, subData];
317
+ },
318
+ };
319
+ exports.morphoBlueEncode = {
320
+ leverageManagement(marketId, loanToken, collToken, oracle, irm, lltv, ratioState, targetRatio, triggerRatio, user, isEOA, network) {
321
+ const subData = subDataService.morphoBlueLeverageManagementSubData.encode(loanToken, collToken, oracle, irm, lltv, ratioState, targetRatio, user, isEOA);
322
+ const triggerData = triggerService.morphoBlueRatioTrigger.encode(marketId, user, triggerRatio, ratioState);
323
+ // over is boost, under is repay
324
+ const isBoost = ratioState === enums_1.RatioState.OVER;
325
+ let strategyOrBundleId;
326
+ if (network === enums_1.ChainId.Base) {
327
+ return [isBoost ? enums_1.Bundles.BaseIds.MORPHO_BLUE_BOOST : enums_1.Bundles.BaseIds.MORPHO_BLUE_REPAY, true, triggerData, subData];
328
+ }
329
+ const bundlesIds = network === enums_1.ChainId.Arbitrum ? enums_1.Bundles.ArbitrumIds : enums_1.Bundles.MainnetIds;
330
+ if (isBoost)
331
+ strategyOrBundleId = isEOA ? bundlesIds.MORPHO_BLUE_EOA_BOOST : bundlesIds.MORPHO_BLUE_BOOST;
332
+ else
333
+ strategyOrBundleId = isEOA ? bundlesIds.MORPHO_BLUE_EOA_REPAY : bundlesIds.MORPHO_BLUE_REPAY;
334
+ const isBundle = true;
335
+ return [strategyOrBundleId, isBundle, triggerData, subData];
336
+ },
337
+ leverageManagementOnPrice(strategyOrBundleId, isBundle = true, loanToken, collToken, oracle, irm, lltv, user, targetRatio, price, priceState) {
338
+ const subData = subDataService.morphoBlueLeverageManagementOnPriceSubData.encode(loanToken, collToken, oracle, irm, lltv, targetRatio, user);
339
+ const triggerData = triggerService.morphoBluePriceTrigger.encode(oracle, collToken, loanToken, price, priceState);
340
+ return [strategyOrBundleId, isBundle, triggerData, subData];
341
+ },
342
+ closeOnPrice(strategyOrBundleId, loanToken, collToken, oracle, irm, lltv, user, stopLossPrice = 0, stopLossType = enums_1.CloseToAssetType.DEBT, takeProfitPrice = 0, takeProfitType = enums_1.CloseToAssetType.COLLATERAL) {
343
+ const isBundle = true;
344
+ const closeType = (0, utils_1.getCloseStrategyType)(stopLossPrice, stopLossType, takeProfitPrice, takeProfitType);
345
+ const subDataEncoded = subDataService.morphoBlueCloseOnPriceSubData.encode(loanToken, collToken, oracle, irm, lltv, user, closeType);
346
+ const triggerDataEncoded = triggerService.morphoBluePriceRangeTrigger.encode(oracle, collToken, loanToken, stopLossPrice, takeProfitPrice);
347
+ return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
348
+ },
349
+ };
350
+ exports.liquityV2Encode = {
351
+ leverageManagement(market, troveId, collToken, boldToken, ratioState, targetRatio, triggerRatio, strategyOrBundleId) {
352
+ const isBundle = true;
353
+ const subData = subDataService.liquityV2LeverageManagementSubData.encode(market, troveId, collToken, boldToken, ratioState, targetRatio);
354
+ const triggerData = triggerService.liquityV2RatioTrigger.encode(market, troveId, triggerRatio, ratioState);
355
+ return [strategyOrBundleId, isBundle, triggerData, subData];
356
+ },
357
+ closeOnPrice(strategyOrBundleId, market, troveId, collToken, boldToken, stopLossPrice = 0, stopLossType = enums_1.CloseToAssetType.DEBT, takeProfitPrice = 0, takeProfitType = enums_1.CloseToAssetType.COLLATERAL) {
358
+ const isBundle = true;
359
+ const closeType = (0, utils_1.getCloseStrategyType)(stopLossPrice, stopLossType, takeProfitPrice, takeProfitType);
360
+ const subData = subDataService.liquityV2CloseSubData.encode(market, troveId, collToken, boldToken, closeType);
361
+ const triggerData = triggerService.closePriceTrigger.encode(collToken, stopLossPrice, takeProfitPrice);
362
+ return [strategyOrBundleId, isBundle, triggerData, subData];
363
+ },
364
+ leverageManagementOnPrice(strategyOrBundleId, market, price, state, troveId, collToken, boldToken, targetRatio, isRepayOnPrice) {
365
+ const subDataEncoded = subDataService.liquityV2LeverageManagementOnPriceSubData.encode(market, troveId, collToken, boldToken, targetRatio, isRepayOnPrice);
366
+ const triggerDataEncoded = triggerService.liquityV2QuotePriceTrigger.encode(market, price, state);
367
+ const isBundle = true;
368
+ return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
369
+ },
370
+ payback(market, troveId, boldToken, targetRatio, ratioState, triggerRatio) {
371
+ const strategyId = enums_1.Strategies.MainnetIds.LIQUITY_V2_PAYBACK;
372
+ const isBundle = false;
373
+ const subData = subDataService.liquityV2PaybackSubData.encode(market, troveId, boldToken, targetRatio, ratioState);
374
+ const triggerData = triggerService.liquityV2RatioTrigger.encode(market, troveId, triggerRatio, ratioState);
375
+ return [strategyId, isBundle, triggerData, subData];
376
+ },
377
+ };
378
+ exports.fluidEncode = {
379
+ leverageManagement(nftId, vault, ratioState, targetRatio, triggerRatio, strategyOrBundleId) {
380
+ const isBundle = true;
381
+ const subData = subDataService.fluidLeverageManagementSubData.encode(nftId, vault, ratioState, targetRatio);
382
+ const triggerData = triggerService.fluidRatioTrigger.encode(nftId, triggerRatio, ratioState);
383
+ return [strategyOrBundleId, isBundle, triggerData, subData];
384
+ },
385
+ };
386
+ exports.aaveV4Encode = {
387
+ leverageManagement(strategyOrBundleId, owner, spoke, ratioState, targetRatio, triggerRatio) {
388
+ const isBundle = true;
389
+ const subData = subDataService.aaveV4LeverageManagementSubData.encode(spoke, owner, ratioState, targetRatio);
390
+ const triggerData = triggerService.aaveV4RatioTrigger.encode(owner, spoke, triggerRatio, ratioState);
391
+ return [strategyOrBundleId, isBundle, triggerData, subData];
392
+ },
393
+ leverageManagementOnPrice(strategyOrBundleId, owner, spoke, collAsset, collAssetId, debtAsset, debtAssetId, targetRatio, price, priceState, ratioState) {
394
+ const isBundle = true;
395
+ const subData = subDataService.aaveV4LeverageManagementOnPriceSubData.encode(spoke, owner, collAsset, collAssetId, debtAsset, debtAssetId, ratioState, targetRatio);
396
+ const triggerData = triggerService.aaveV4QuotePriceTrigger.encode(spoke, collAssetId, debtAssetId, price, priceState);
397
+ return [strategyOrBundleId, isBundle, triggerData, subData];
398
+ },
399
+ closeOnPrice(strategyOrBundleId, owner, spoke, collAsset, collAssetId, debtAsset, debtAssetId, stopLossPrice = '0', stopLossType = enums_1.CloseToAssetType.DEBT, takeProfitPrice = '0', takeProfitType = enums_1.CloseToAssetType.COLLATERAL) {
400
+ const isBundle = true;
401
+ const closeType = (0, utils_1.getCloseStrategyType)(stopLossPrice, stopLossType, takeProfitPrice, takeProfitType);
402
+ const subData = subDataService.aaveV4CloseSubData.encode(spoke, owner, collAsset, collAssetId, debtAsset, debtAssetId, closeType);
403
+ const triggerData = triggerService.aaveV4QuotePriceRangeTrigger.encode(spoke, collAssetId, debtAssetId, stopLossPrice, takeProfitPrice);
404
+ return [strategyOrBundleId, isBundle, triggerData, subData];
405
+ },
406
+ collateralSwitch(strategyOrBundleId, owner, spoke, fromAsset, fromAssetId, toAsset, toAssetId, amountToSwitch, price, ratioState) {
407
+ const isBundle = false;
408
+ const subData = subDataService.aaveV4CollateralSwitchSubData.encode(spoke, owner, fromAsset, fromAssetId, toAsset, toAssetId, amountToSwitch);
409
+ const triggerData = triggerService.aaveV4QuotePriceTrigger.encode(spoke, fromAssetId, // baseTokenId
410
+ toAssetId, // quoteTokenId
411
+ price, ratioState);
412
+ return [strategyOrBundleId, isBundle, triggerData, subData];
413
+ },
414
+ };