@defisaver/automation-sdk 3.0.9 → 3.1.1

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 (242) hide show
  1. package/.babelrc +3 -3
  2. package/.editorconfig +9 -9
  3. package/.env.dev +4 -4
  4. package/.eslintignore +6 -7
  5. package/.eslintrc.js +39 -41
  6. package/.mocharc.json +5 -0
  7. package/.nvmrc +1 -0
  8. package/README.md +47 -41
  9. package/cjs/abis/Erc20.json +223 -0
  10. package/cjs/abis/SubStorage.json +21 -0
  11. package/cjs/abis/UniMulticall.json +17 -0
  12. package/cjs/abis/index.d.ts +9 -0
  13. package/cjs/abis/index.js +30 -0
  14. package/cjs/abis/legacy_AaveV2Subscriptions.json +8 -0
  15. package/cjs/abis/legacy_AuthCheck.json +8 -0
  16. package/cjs/abis/legacy_CompoundV2Subscriptions.json +9 -0
  17. package/cjs/abis/legacy_MakerSubscriptions.json +9 -0
  18. package/cjs/automation/private/Automation.d.ts +12 -0
  19. package/cjs/automation/private/Automation.js +42 -0
  20. package/cjs/automation/private/LegacyAutomation.d.ts +25 -0
  21. package/cjs/automation/private/LegacyAutomation.js +118 -0
  22. package/cjs/automation/private/LegacyProtocol.d.ts +22 -0
  23. package/cjs/automation/private/LegacyProtocol.js +41 -0
  24. package/cjs/automation/private/LegacyProtocol.test.d.ts +1 -0
  25. package/cjs/automation/private/LegacyProtocol.test.js +25 -0
  26. package/cjs/automation/private/Protocol.d.ts +22 -0
  27. package/cjs/automation/private/Protocol.js +41 -0
  28. package/cjs/automation/private/Protocol.test.d.ts +1 -0
  29. package/cjs/automation/private/Protocol.test.js +25 -0
  30. package/cjs/automation/private/StrategiesAutomation.d.ts +33 -0
  31. package/cjs/automation/private/StrategiesAutomation.js +181 -0
  32. package/cjs/automation/private/StrategiesAutomation.test.d.ts +1 -0
  33. package/cjs/automation/private/StrategiesAutomation.test.js +671 -0
  34. package/cjs/automation/public/ArbitrumStrategies.d.ts +5 -0
  35. package/cjs/automation/public/ArbitrumStrategies.js +13 -0
  36. package/cjs/automation/public/BaseStrategies.d.ts +5 -0
  37. package/cjs/automation/public/BaseStrategies.js +13 -0
  38. package/cjs/automation/public/EthereumStrategies.d.ts +5 -0
  39. package/cjs/automation/public/EthereumStrategies.js +13 -0
  40. package/cjs/automation/public/OptimismStrategies.d.ts +5 -0
  41. package/cjs/automation/public/OptimismStrategies.js +13 -0
  42. package/cjs/automation/public/legacy/LegacyAaveAutomation.d.ts +6 -0
  43. package/cjs/automation/public/legacy/LegacyAaveAutomation.js +20 -0
  44. package/cjs/automation/public/legacy/LegacyCompoundAutomation.d.ts +6 -0
  45. package/cjs/automation/public/legacy/LegacyCompoundAutomation.js +20 -0
  46. package/cjs/automation/public/legacy/LegacyMakerAutomation.d.ts +6 -0
  47. package/cjs/automation/public/legacy/LegacyMakerAutomation.js +20 -0
  48. package/cjs/configuration.d.ts +1 -0
  49. package/cjs/configuration.js +12 -0
  50. package/cjs/constants/index.d.ts +28 -0
  51. package/cjs/constants/index.js +474 -0
  52. package/cjs/index.d.ts +23 -0
  53. package/cjs/index.js +65 -0
  54. package/cjs/services/contractService.d.ts +12 -0
  55. package/cjs/services/contractService.js +54 -0
  56. package/cjs/services/ethereumService.d.ts +7 -0
  57. package/cjs/services/ethereumService.js +49 -0
  58. package/cjs/services/ethereumService.test.d.ts +1 -0
  59. package/cjs/services/ethereumService.test.js +242 -0
  60. package/cjs/services/strategiesService.d.ts +2 -0
  61. package/cjs/services/strategiesService.js +723 -0
  62. package/cjs/services/strategiesService.test.d.ts +1 -0
  63. package/cjs/services/strategiesService.test.js +110 -0
  64. package/cjs/services/strategySubService.d.ts +100 -0
  65. package/cjs/services/strategySubService.js +264 -0
  66. package/cjs/services/strategySubService.test.d.ts +1 -0
  67. package/cjs/services/strategySubService.test.js +934 -0
  68. package/cjs/services/subDataService.d.ts +192 -0
  69. package/cjs/services/subDataService.js +475 -0
  70. package/cjs/services/subDataService.test.d.ts +1 -0
  71. package/cjs/services/subDataService.test.js +1282 -0
  72. package/cjs/services/triggerService.d.ts +191 -0
  73. package/cjs/services/triggerService.js +367 -0
  74. package/cjs/services/triggerService.test.d.ts +1 -0
  75. package/cjs/services/triggerService.test.js +926 -0
  76. package/cjs/services/utils.d.ts +25 -0
  77. package/cjs/services/utils.js +131 -0
  78. package/cjs/services/utils.test.d.ts +1 -0
  79. package/cjs/services/utils.test.js +376 -0
  80. package/cjs/types/contracts/generated/Erc20.d.ts +53 -0
  81. package/cjs/types/contracts/generated/Erc20.js +5 -0
  82. package/cjs/types/contracts/generated/Legacy_AaveV2Subscriptions.d.ts +129 -0
  83. package/cjs/types/contracts/generated/Legacy_AaveV2Subscriptions.js +5 -0
  84. package/cjs/types/contracts/generated/Legacy_AuthCheck.d.ts +20 -0
  85. package/cjs/types/contracts/generated/Legacy_AuthCheck.js +5 -0
  86. package/cjs/types/contracts/generated/Legacy_CompoundV2Subscriptions.d.ts +128 -0
  87. package/cjs/types/contracts/generated/Legacy_CompoundV2Subscriptions.js +5 -0
  88. package/cjs/types/contracts/generated/Legacy_MakerSubscriptions.d.ts +246 -0
  89. package/cjs/types/contracts/generated/Legacy_MakerSubscriptions.js +5 -0
  90. package/cjs/types/contracts/generated/SubStorage.d.ts +114 -0
  91. package/cjs/types/contracts/generated/SubStorage.js +5 -0
  92. package/cjs/types/contracts/generated/UniMulticall.d.ts +55 -0
  93. package/cjs/types/contracts/generated/UniMulticall.js +5 -0
  94. package/cjs/types/contracts/generated/index.d.ts +7 -0
  95. package/cjs/types/contracts/generated/index.js +2 -0
  96. package/cjs/types/contracts/generated/types.d.ts +54 -0
  97. package/cjs/types/contracts/generated/types.js +2 -0
  98. package/cjs/types/enums.d.ts +181 -0
  99. package/cjs/types/enums.js +203 -0
  100. package/cjs/types/index.d.ts +224 -0
  101. package/cjs/types/index.js +2 -0
  102. package/esm/abis/Erc20.json +223 -223
  103. package/esm/abis/SubStorage.json +21 -17
  104. package/esm/abis/UniMulticall.json +17 -14
  105. package/esm/abis/index.d.ts +9 -9
  106. package/esm/abis/index.js +18 -30
  107. package/esm/abis/legacy_AaveV2Subscriptions.json +8 -8
  108. package/esm/abis/legacy_AuthCheck.json +8 -8
  109. package/esm/abis/legacy_CompoundV2Subscriptions.json +9 -9
  110. package/esm/abis/legacy_MakerSubscriptions.json +9 -9
  111. package/esm/automation/private/Automation.d.ts +12 -12
  112. package/esm/automation/private/Automation.js +39 -42
  113. package/esm/automation/private/LegacyAutomation.d.ts +25 -25
  114. package/esm/automation/private/LegacyAutomation.js +112 -118
  115. package/esm/automation/private/LegacyProtocol.d.ts +22 -22
  116. package/esm/automation/private/LegacyProtocol.js +38 -41
  117. package/esm/automation/private/LegacyProtocol.test.d.ts +1 -1
  118. package/esm/automation/private/LegacyProtocol.test.js +20 -25
  119. package/esm/automation/private/Protocol.d.ts +22 -22
  120. package/esm/automation/private/Protocol.js +38 -41
  121. package/esm/automation/private/Protocol.test.d.ts +1 -1
  122. package/esm/automation/private/Protocol.test.js +20 -25
  123. package/esm/automation/private/StrategiesAutomation.d.ts +33 -33
  124. package/esm/automation/private/StrategiesAutomation.js +175 -181
  125. package/esm/automation/private/StrategiesAutomation.test.d.ts +1 -1
  126. package/esm/automation/private/StrategiesAutomation.test.js +666 -671
  127. package/esm/automation/public/ArbitrumStrategies.d.ts +5 -5
  128. package/esm/automation/public/ArbitrumStrategies.js +7 -13
  129. package/esm/automation/public/BaseStrategies.d.ts +5 -0
  130. package/esm/automation/public/BaseStrategies.js +7 -0
  131. package/esm/automation/public/EthereumStrategies.d.ts +5 -5
  132. package/esm/automation/public/EthereumStrategies.js +7 -13
  133. package/esm/automation/public/OptimismStrategies.d.ts +5 -5
  134. package/esm/automation/public/OptimismStrategies.js +7 -13
  135. package/esm/automation/public/legacy/LegacyAaveAutomation.d.ts +6 -6
  136. package/esm/automation/public/legacy/LegacyAaveAutomation.js +14 -20
  137. package/esm/automation/public/legacy/LegacyCompoundAutomation.d.ts +6 -6
  138. package/esm/automation/public/legacy/LegacyCompoundAutomation.js +14 -20
  139. package/esm/automation/public/legacy/LegacyMakerAutomation.d.ts +6 -6
  140. package/esm/automation/public/legacy/LegacyMakerAutomation.js +14 -20
  141. package/esm/configuration.d.ts +1 -1
  142. package/esm/configuration.js +7 -12
  143. package/esm/constants/index.d.ts +28 -24
  144. package/esm/constants/index.js +468 -426
  145. package/esm/index.d.ts +23 -22
  146. package/esm/index.js +23 -63
  147. package/esm/services/contractService.d.ts +12 -12
  148. package/esm/services/contractService.js +45 -54
  149. package/esm/services/ethereumService.d.ts +7 -7
  150. package/esm/services/ethereumService.js +41 -49
  151. package/esm/services/ethereumService.test.d.ts +1 -1
  152. package/esm/services/ethereumService.test.js +237 -242
  153. package/esm/services/strategiesService.d.ts +2 -2
  154. package/esm/services/strategiesService.js +696 -722
  155. package/esm/services/strategiesService.test.d.ts +1 -1
  156. package/esm/services/strategiesService.test.js +108 -110
  157. package/esm/services/strategySubService.d.ts +100 -100
  158. package/esm/services/strategySubService.js +235 -264
  159. package/esm/services/strategySubService.test.d.ts +1 -1
  160. package/esm/services/strategySubService.test.js +906 -934
  161. package/esm/services/subDataService.d.ts +192 -192
  162. package/esm/services/subDataService.js +469 -475
  163. package/esm/services/subDataService.test.d.ts +1 -1
  164. package/esm/services/subDataService.test.js +1254 -1282
  165. package/esm/services/triggerService.d.ts +191 -191
  166. package/esm/services/triggerService.js +338 -367
  167. package/esm/services/triggerService.test.d.ts +1 -1
  168. package/esm/services/triggerService.test.js +901 -926
  169. package/esm/services/utils.d.ts +25 -25
  170. package/esm/services/utils.js +82 -131
  171. package/esm/services/utils.test.d.ts +1 -1
  172. package/esm/services/utils.test.js +348 -376
  173. package/esm/types/contracts/generated/Erc20.d.ts +53 -53
  174. package/esm/types/contracts/generated/Erc20.js +4 -5
  175. package/esm/types/contracts/generated/Legacy_AaveV2Subscriptions.d.ts +129 -129
  176. package/esm/types/contracts/generated/Legacy_AaveV2Subscriptions.js +4 -5
  177. package/esm/types/contracts/generated/Legacy_AuthCheck.d.ts +20 -20
  178. package/esm/types/contracts/generated/Legacy_AuthCheck.js +4 -5
  179. package/esm/types/contracts/generated/Legacy_CompoundV2Subscriptions.d.ts +128 -128
  180. package/esm/types/contracts/generated/Legacy_CompoundV2Subscriptions.js +4 -5
  181. package/esm/types/contracts/generated/Legacy_MakerSubscriptions.d.ts +246 -246
  182. package/esm/types/contracts/generated/Legacy_MakerSubscriptions.js +4 -5
  183. package/esm/types/contracts/generated/SubStorage.d.ts +114 -114
  184. package/esm/types/contracts/generated/SubStorage.js +4 -5
  185. package/esm/types/contracts/generated/UniMulticall.d.ts +55 -55
  186. package/esm/types/contracts/generated/UniMulticall.js +4 -5
  187. package/esm/types/contracts/generated/index.d.ts +7 -7
  188. package/esm/types/contracts/generated/index.js +1 -2
  189. package/esm/types/contracts/generated/types.d.ts +54 -54
  190. package/esm/types/contracts/generated/types.js +1 -2
  191. package/esm/types/enums.d.ts +181 -168
  192. package/esm/types/enums.js +200 -188
  193. package/esm/types/index.d.ts +224 -220
  194. package/esm/types/index.js +1 -2
  195. package/package.json +61 -71
  196. package/scripts/generateContractTypes.js +39 -39
  197. package/src/abis/Erc20.json +222 -222
  198. package/src/abis/SubStorage.json +21 -17
  199. package/src/abis/UniMulticall.json +17 -14
  200. package/src/abis/index.ts +28 -28
  201. package/src/abis/legacy_AaveV2Subscriptions.json +7 -7
  202. package/src/abis/legacy_AuthCheck.json +7 -7
  203. package/src/abis/legacy_CompoundV2Subscriptions.json +8 -8
  204. package/src/abis/legacy_MakerSubscriptions.json +8 -8
  205. package/src/automation/private/Automation.ts +44 -44
  206. package/src/automation/private/LegacyAutomation.ts +135 -135
  207. package/src/automation/private/LegacyProtocol.test.ts +23 -23
  208. package/src/automation/private/LegacyProtocol.ts +51 -51
  209. package/src/automation/private/Protocol.test.ts +23 -23
  210. package/src/automation/private/Protocol.ts +51 -51
  211. package/src/automation/private/StrategiesAutomation.test.ts +663 -663
  212. package/src/automation/private/StrategiesAutomation.ts +242 -242
  213. package/src/automation/public/ArbitrumStrategies.ts +10 -10
  214. package/src/automation/public/BaseStrategies.ts +10 -0
  215. package/src/automation/public/EthereumStrategies.ts +10 -10
  216. package/src/automation/public/OptimismStrategies.ts +10 -10
  217. package/src/automation/public/legacy/LegacyAaveAutomation.ts +20 -20
  218. package/src/automation/public/legacy/LegacyCompoundAutomation.ts +20 -20
  219. package/src/automation/public/legacy/LegacyMakerAutomation.ts +20 -20
  220. package/src/configuration.ts +8 -8
  221. package/src/constants/index.ts +492 -441
  222. package/src/index.ts +39 -38
  223. package/src/services/contractService.ts +77 -77
  224. package/src/services/ethereumService.test.ts +257 -257
  225. package/src/services/ethereumService.ts +69 -69
  226. package/src/services/strategiesService.test.ts +105 -105
  227. package/src/services/strategiesService.ts +934 -932
  228. package/src/services/strategySubService.test.ts +1119 -1119
  229. package/src/services/strategySubService.ts +518 -518
  230. package/src/services/subDataService.test.ts +1387 -1387
  231. package/src/services/subDataService.ts +644 -644
  232. package/src/services/triggerService.test.ts +1004 -1004
  233. package/src/services/triggerService.ts +449 -449
  234. package/src/services/utils.test.ts +430 -430
  235. package/src/services/utils.ts +103 -103
  236. package/src/types/enums.ts +197 -182
  237. package/src/types/index.ts +279 -273
  238. package/tsconfig.esm.json +8 -0
  239. package/tsconfig.json +22 -79
  240. package/umd/index.js +17 -133
  241. package/.tests.sh +0 -3
  242. package/webpack.umd.js +0 -52
@@ -0,0 +1 @@
1
+ import '../configuration';
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const chai_1 = require("chai");
13
+ const enums_1 = require("../types/enums");
14
+ require("../configuration");
15
+ const strategiesService_1 = require("./strategiesService");
16
+ describe('Feature: strategiesService.ts', () => {
17
+ describe('When testing strategiesService.parseStrategiesAutomatedPosition', () => __awaiter(void 0, void 0, void 0, function* () {
18
+ // TODO: we should probably write this for every strategy?
19
+ const examples = [
20
+ [
21
+ {
22
+ isEnabled: true,
23
+ chainId: 1,
24
+ positionId: '1-aave__v3-0x9cb7e19861665366011899d74e75d4f2a419aeed-0x2f39d218133afab8f2b819b1066c7e434ad94e9e',
25
+ subHash: '0xafa4d200be62f171b57b1ae0f4e8348d1ac3f6d0812ad6da74a2adae8037dde1',
26
+ blockNumber: 18015756,
27
+ subId: 379,
28
+ owner: '0x9cb7e19861665366011899d74e75d4f2a419aeed',
29
+ protocol: {
30
+ id: enums_1.ProtocolIdentifiers.StrategiesAutomation.AaveV3,
31
+ name: 'Aave',
32
+ slug: 'aave',
33
+ version: 'V3',
34
+ fullName: 'Aave V3'
35
+ },
36
+ strategy: {
37
+ isBundle: true,
38
+ strategyOrBundleId: 8,
39
+ strategyId: enums_1.Strategies.IdOverrides.LeverageManagement,
40
+ protocol: {
41
+ id: enums_1.ProtocolIdentifiers.StrategiesAutomation.AaveV3,
42
+ name: 'Aave',
43
+ slug: 'aave',
44
+ version: 'V3',
45
+ fullName: 'Aave V3'
46
+ }
47
+ },
48
+ strategyData: {
49
+ encoded: {
50
+ triggerData: [
51
+ '0x0000000000000000000000009cb7e19861665366011899d74e75d4f2a419aeed0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e00000000000000000000000000000000000000000000000019ac8532c27900000000000000000000000000000000000000000000000000000000000000000001',
52
+ ],
53
+ subData: [
54
+ '0x0000000000000000000000000000000000000000000000001bc16d674ec80000',
55
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
56
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
57
+ '0x0000000000000000000000000000000000000000000000000000000000000000'
58
+ ]
59
+ },
60
+ decoded: {
61
+ triggerData: {
62
+ owner: '0x9cB7E19861665366011899d74E75d4F2A419aEeD',
63
+ market: '0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e',
64
+ ratio: 185,
65
+ ratioState: 1
66
+ },
67
+ subData: { targetRatio: 200 }
68
+ }
69
+ },
70
+ specific: {
71
+ triggerRepayRatio: 185,
72
+ targetRepayRatio: 200,
73
+ repayEnabled: true,
74
+ subId1: 379,
75
+ mergeWithId: enums_1.Strategies.Identifiers.Boost,
76
+ }
77
+ },
78
+ {
79
+ chainId: 1,
80
+ blockNumber: 18015756,
81
+ subscriptionEventData: {
82
+ subId: '379',
83
+ proxy: '0x9cb7e19861665366011899d74e75d4f2a419aeed',
84
+ subHash: '0xafa4d200be62f171b57b1ae0f4e8348d1ac3f6d0812ad6da74a2adae8037dde1',
85
+ // @ts-ignore
86
+ subStruct: {
87
+ strategyOrBundleId: '8',
88
+ isBundle: true,
89
+ triggerData: ['0x0000000000000000000000009cb7e19861665366011899d74e75d4f2a419aeed0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e00000000000000000000000000000000000000000000000019ac8532c27900000000000000000000000000000000000000000000000000000000000000000001'],
90
+ subData: [
91
+ '0x0000000000000000000000000000000000000000000000001bc16d674ec80000', '0x0000000000000000000000000000000000000000000000000000000000000001',
92
+ '0x0000000000000000000000000000000000000000000000000000000000000001', '0x0000000000000000000000000000000000000000000000000000000000000000',
93
+ ],
94
+ }
95
+ },
96
+ strategiesSubsData: {
97
+ userProxy: '0x9cb7e19861665366011899d74e75d4f2a419aeed',
98
+ isEnabled: true,
99
+ strategySubHash: '0xafa4d200be62f171b57b1ae0f4e8348d1ac3f6d0812ad6da74a2adae8037dde1'
100
+ }
101
+ },
102
+ ],
103
+ ];
104
+ examples.forEach(([expected, actual]) => {
105
+ it(`Given ${JSON.stringify(actual)} should return expected value: ${JSON.stringify(expected)}`, () => __awaiter(void 0, void 0, void 0, function* () {
106
+ (0, chai_1.expect)((0, strategiesService_1.parseStrategiesAutomatedPosition)(actual)).to.eql(expected);
107
+ }));
108
+ });
109
+ }));
110
+ });
@@ -0,0 +1,100 @@
1
+ import type { OrderType } from '../types/enums';
2
+ import { Bundles, ChainId, RatioState, Strategies } from '../types/enums';
3
+ import type { EthereumAddress, StrategyOrBundleIds } from '../types';
4
+ export declare const makerEncode: {
5
+ repayFromSavings(bundleId: StrategyOrBundleIds, vaultId: number, triggerRepayRatio: number, targetRepayRatio: number, isBundle?: boolean, chainId?: ChainId, daiAddr?: EthereumAddress, mcdCdpManagerAddr?: EthereumAddress): (boolean | string[] | Strategies.MainnetIds | Strategies.OptimismIds | Strategies.ArbitrumIds | Strategies.BaseIds | Bundles.MainnetIds | Bundles.OptimismIds | Bundles.ArbitrumIds | Bundles.BaseIds)[];
6
+ closeOnPrice(vaultId: number, ratioState: RatioState, price: string, closeToAssetAddr: EthereumAddress, chainlinkCollAddress: EthereumAddress, chainId?: ChainId, daiAddr?: EthereumAddress, mcdCdpManagerAddr?: EthereumAddress): (boolean | string[] | Strategies.MainnetIds)[];
7
+ trailingStop(vaultId: number, triggerPercentage: number, closeToAssetAddr: EthereumAddress, chainlinkCollAddress: EthereumAddress, roundId: number, chainId?: ChainId, daiAddr?: EthereumAddress, mcdCdpManagerAddr?: EthereumAddress): (boolean | string[] | Strategies.MainnetIds)[];
8
+ leverageManagement(vaultId: number, triggerRepayRatio: string, triggerBoostRatio: string, targetBoostRatio: string, targetRepayRatio: string, boostEnabled: boolean): (string | number | boolean)[];
9
+ };
10
+ export declare const liquityEncode: {
11
+ closeOnPrice(priceOverOrUnder: RatioState, price: string, closeToAssetAddr: EthereumAddress, chainlinkCollAddress: EthereumAddress, chainId?: ChainId, collAddr?: EthereumAddress, debtAddr?: EthereumAddress): (boolean | string[] | Strategies.MainnetIds)[];
12
+ trailingStop(triggerPercentage: number, closeToAssetAddr: EthereumAddress, chainlinkCollAddress: EthereumAddress, roundId: number, chainId?: ChainId, collAddr?: EthereumAddress, debtAddr?: EthereumAddress): (boolean | string[] | Strategies.MainnetIds)[];
13
+ paybackFromChickenBondStrategySub(proxyAddress: EthereumAddress, ratio: number, sourceId: string, sourceType: number, ratioState?: RatioState): (boolean | string[] | Bundles.MainnetIds)[];
14
+ leverageManagement(triggerRepayRatio: string, triggerBoostRatio: string, targetBoostRatio: string, targetRepayRatio: string, boostEnabled: boolean): (string | boolean)[];
15
+ dsrPayback(proxyAddress: EthereumAddress, triggerRatio: number, targetRatio: number): (boolean | string[] | Strategies.MainnetIds)[];
16
+ dsrSupply(proxyAddress: EthereumAddress, triggerRatio: number, targetRatio: number): (boolean | string[] | Strategies.MainnetIds)[];
17
+ debtInFrontRepay(proxyAddress: EthereumAddress, debtInFrontMin: string, targetRatioIncrease: number): (boolean | string[] | Strategies.MainnetIds)[];
18
+ };
19
+ export declare const chickenBondsEncode: {
20
+ rebond(bondId: number): string[];
21
+ };
22
+ export declare const aaveV2Encode: {
23
+ leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
24
+ };
25
+ export declare const aaveV3Encode: {
26
+ leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string;
27
+ closeToAsset(strategyOrBundleId: number, isBundle: boolean | undefined, triggerData: {
28
+ baseTokenAddress: EthereumAddress;
29
+ quoteTokenAddress: EthereumAddress;
30
+ price: number;
31
+ ratioState: RatioState;
32
+ }, subData: {
33
+ collAsset: EthereumAddress;
34
+ collAssetId: number;
35
+ debtAsset: EthereumAddress;
36
+ debtAssetId: number;
37
+ }): (number | boolean | string[])[];
38
+ closeToAssetWithMaximumGasPrice(strategyOrBundleId: number, isBundle: boolean | undefined, triggerData: {
39
+ baseTokenAddress: EthereumAddress;
40
+ quoteTokenAddress: EthereumAddress;
41
+ price: number;
42
+ ratioState: RatioState;
43
+ maximumGasPrice: number;
44
+ }, subData: {
45
+ collAsset: EthereumAddress;
46
+ collAssetId: number;
47
+ debtAsset: EthereumAddress;
48
+ debtAssetId: number;
49
+ }): (number | boolean | string[])[];
50
+ openOrder(strategyOrBundleId: number, isBundle: boolean | undefined, triggerData: {
51
+ baseTokenAddress: EthereumAddress;
52
+ quoteTokenAddress: EthereumAddress;
53
+ price: number;
54
+ state: RatioState.UNDER;
55
+ }, subData: {
56
+ collAsset: EthereumAddress;
57
+ collAssetId: number;
58
+ debtAsset: EthereumAddress;
59
+ debtAssetId: number;
60
+ marketAddr: EthereumAddress;
61
+ targetRatio: number;
62
+ }): (number | boolean | string[])[];
63
+ };
64
+ export declare const compoundV2Encode: {
65
+ leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
66
+ };
67
+ export declare const compoundV3Encode: {
68
+ leverageManagement(market: EthereumAddress, baseToken: EthereumAddress, triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean, isEOA: boolean): string[];
69
+ };
70
+ export declare const compoundV3L2Encode: {
71
+ leverageManagement(market: EthereumAddress, baseToken: EthereumAddress, triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string;
72
+ };
73
+ export declare const morphoAaveV2Encode: {
74
+ leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
75
+ };
76
+ export declare const exchangeEncode: {
77
+ dca(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string, timestamp: number, interval: number, network: ChainId): (boolean | string[] | Strategies.MainnetIds | Strategies.OptimismIds | Strategies.ArbitrumIds | Strategies.BaseIds)[];
78
+ limitOrder(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string, targetPrice: string, goodUntil: string | number, orderType: OrderType): string[];
79
+ };
80
+ export declare const sparkEncode: {
81
+ leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string;
82
+ closeToAsset(strategyOrBundleId: number, isBundle: boolean | undefined, triggerData: {
83
+ baseTokenAddress: EthereumAddress;
84
+ quoteTokenAddress: EthereumAddress;
85
+ price: number;
86
+ ratioState: RatioState;
87
+ }, subData: {
88
+ collAsset: EthereumAddress;
89
+ collAssetId: number;
90
+ debtAsset: EthereumAddress;
91
+ debtAssetId: number;
92
+ }): (number | boolean | string[])[];
93
+ };
94
+ export declare const crvUSDEncode: {
95
+ leverageManagement(owner: EthereumAddress, controllerAddr: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number, collTokenAddr: EthereumAddress, crvUSDAddr: EthereumAddress): (boolean | string[] | Bundles.MainnetIds)[];
96
+ payback(proxyAddress: EthereumAddress, addressToPullTokensFrom: EthereumAddress, positionOwner: EthereumAddress, paybackAmount: string, crvUSDAddr: EthereumAddress, controllerAddr: EthereumAddress, minHealthRatio: number): (boolean | string[] | Strategies.MainnetIds)[];
97
+ };
98
+ export declare const morphoBlueEncode: {
99
+ leverageManagement(marketId: string, loanToken: EthereumAddress, collToken: EthereumAddress, oracle: EthereumAddress, irm: EthereumAddress, lltv: string, ratioState: RatioState, targetRatio: number, triggerRatio: number, user: EthereumAddress, isEOA: boolean): (boolean | string[] | Bundles.MainnetIds)[];
100
+ };
@@ -0,0 +1,264 @@
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.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
+ openOrder(strategyOrBundleId, isBundle = true, triggerData, subData) {
172
+ const { collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio, } = subData;
173
+ const subDataEncoded = subDataService.aaveV3OpenOrderSubData.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) {
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 (isBoost)
258
+ strategyOrBundleId = isEOA ? enums_1.Bundles.MainnetIds.MORPHO_BLUE_EOA_BOOST : enums_1.Bundles.MainnetIds.MORPHO_BLUE_BOOST;
259
+ else
260
+ strategyOrBundleId = isEOA ? enums_1.Bundles.MainnetIds.MORPHO_BLUE_EOA_REPAY : enums_1.Bundles.MainnetIds.MORPHO_BLUE_REPAY;
261
+ const isBundle = true;
262
+ return [strategyOrBundleId, isBundle, triggerData, subData];
263
+ },
264
+ };
@@ -0,0 +1 @@
1
+ import '../configuration';