@defisaver/automation-sdk 3.0.9 → 3.1.1-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 (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 +484 -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 +758 -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 +103 -0
  65. package/cjs/services/strategySubService.js +277 -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 +201 -0
  69. package/cjs/services/subDataService.js +499 -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 +200 -0
  73. package/cjs/services/triggerService.js +382 -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 +192 -0
  99. package/cjs/types/enums.js +216 -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 +478 -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 +731 -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 +103 -100
  158. package/esm/services/strategySubService.js +248 -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 +201 -192
  162. package/esm/services/subDataService.js +493 -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 +200 -191
  166. package/esm/services/triggerService.js +353 -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 +192 -168
  192. package/esm/types/enums.js +213 -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 +502 -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 +979 -932
  228. package/src/services/strategySubService.test.ts +1119 -1119
  229. package/src/services/strategySubService.ts +542 -518
  230. package/src/services/subDataService.test.ts +1387 -1387
  231. package/src/services/subDataService.ts +681 -645
  232. package/src/services/triggerService.test.ts +1004 -1004
  233. package/src/services/triggerService.ts +472 -449
  234. package/src/services/utils.test.ts +430 -430
  235. package/src/services/utils.ts +103 -103
  236. package/src/types/enums.ts +210 -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,200 @@
1
+ import type { EthereumAddress } from '../types';
2
+ import type { RatioState, OrderType } from '../types/enums';
3
+ export declare const chainlinkPriceTrigger: {
4
+ encode(tokenAddr: EthereumAddress, price: string, state: RatioState): string[];
5
+ decode(triggerData: string[]): {
6
+ price: string;
7
+ state: RatioState;
8
+ tokenAddr: EthereumAddress;
9
+ };
10
+ };
11
+ export declare const trailingStopTrigger: {
12
+ encode(tokenAddr: EthereumAddress, percentage: number, roundId: number): string[];
13
+ decode(triggerData: string[]): {
14
+ triggerPercentage: number;
15
+ tokenAddr: EthereumAddress;
16
+ roundId: string;
17
+ };
18
+ };
19
+ export declare const makerRatioTrigger: {
20
+ encode(vaultId: number, ratioPercentage: number, ratioState: RatioState): string[];
21
+ decode(triggerData: string[]): {
22
+ vaultId: number;
23
+ ratioState: number;
24
+ ratio: number;
25
+ };
26
+ };
27
+ export declare const aaveV3RatioTrigger: {
28
+ encode(owner: EthereumAddress, market: EthereumAddress, ratioPercentage: number, ratioState: RatioState): string[];
29
+ decode(triggerData: string[]): {
30
+ owner: any;
31
+ market: any;
32
+ ratio: number;
33
+ ratioState: number;
34
+ };
35
+ };
36
+ export declare const morphoAaveV2RatioTrigger: {
37
+ encode(owner: EthereumAddress, ratioPercentage: number, ratioState: RatioState): string[];
38
+ decode(triggerData: string[]): {
39
+ owner: any;
40
+ ratio: number;
41
+ ratioState: number;
42
+ };
43
+ };
44
+ export declare const aaveV3QuotePriceTrigger: {
45
+ encode(baseTokenAddress: EthereumAddress, quoteTokenAddress: EthereumAddress, price: number, ratioState: RatioState): string[];
46
+ decode(triggerData: string[]): {
47
+ baseTokenAddress: EthereumAddress;
48
+ quoteTokenAddress: EthereumAddress;
49
+ price: string;
50
+ ratioState: RatioState;
51
+ };
52
+ };
53
+ export declare const aaveV3QuotePriceWithMaximumGasPriceTrigger: {
54
+ encode(baseTokenAddress: EthereumAddress, quoteTokenAddress: EthereumAddress, price: number, ratioState: RatioState, maximumGasPriceInGwei?: number): string[];
55
+ decode(triggerData: string[]): {
56
+ baseTokenAddress: EthereumAddress;
57
+ quoteTokenAddress: EthereumAddress;
58
+ price: string;
59
+ ratioState: RatioState;
60
+ maximumGasPrice: string;
61
+ };
62
+ };
63
+ export declare const compoundV2RatioTrigger: {
64
+ encode(owner: EthereumAddress, ratioPercentage: number, ratioState: RatioState): string[];
65
+ decode(triggerData: string[]): {
66
+ owner: EthereumAddress;
67
+ ratioState: RatioState;
68
+ ratio: number;
69
+ };
70
+ };
71
+ export declare const liquityRatioTrigger: {
72
+ encode(owner: EthereumAddress, ratioPercentage: number, ratioState: RatioState): string[];
73
+ decode(triggerData: string[]): {
74
+ owner: EthereumAddress;
75
+ ratioState: RatioState;
76
+ ratio: number;
77
+ };
78
+ };
79
+ export declare const liquityDebtInFrontTrigger: {
80
+ encode(owner: EthereumAddress, debtInFrontMin: string): string[];
81
+ decode(triggerData: string[]): {
82
+ owner: EthereumAddress;
83
+ debtInFrontMin: string;
84
+ };
85
+ };
86
+ export declare const liquityDebtInFrontWithLimitTrigger: {
87
+ encode(owner: EthereumAddress, debtInFrontMin: string): string[];
88
+ decode(triggerData: string[]): {
89
+ owner: EthereumAddress;
90
+ debtInFrontMin: string;
91
+ };
92
+ };
93
+ export declare const aaveV2RatioTrigger: {
94
+ encode(owner: EthereumAddress, market: EthereumAddress, ratioPercentage: number, ratioState: RatioState): string[];
95
+ decode(triggerData: string[]): {
96
+ owner: EthereumAddress;
97
+ market: EthereumAddress;
98
+ ratioState: RatioState;
99
+ ratio: number;
100
+ };
101
+ };
102
+ export declare const cBondsRebondTrigger: {
103
+ encode(bondId: number | string): string[];
104
+ decode(triggerData: string[]): {
105
+ bondId: string;
106
+ };
107
+ };
108
+ export declare const compoundV3RatioTrigger: {
109
+ encode(owner: EthereumAddress, market: EthereumAddress, ratioPercentage: number, ratioState: RatioState): string[];
110
+ decode(triggerData: string[]): {
111
+ owner: EthereumAddress;
112
+ market: EthereumAddress;
113
+ ratioState: RatioState;
114
+ ratio: number;
115
+ };
116
+ };
117
+ export declare const exchangeTimestampTrigger: {
118
+ encode(timestamp: number, interval: number): string[];
119
+ decode(triggerData: string[]): {
120
+ timestamp: number;
121
+ interval: number;
122
+ };
123
+ };
124
+ export declare const exchangeOffchainPriceTrigger: {
125
+ encode(targetPrice: string, goodUntil: number, orderType: OrderType, fromTokenDecimals: number, toTokenDecimals: number): string[];
126
+ decode(triggerData: string[], fromTokenDecimals: number, toTokenDecimals: number): {
127
+ orderType: OrderType;
128
+ targetPrice: string;
129
+ goodUntil: any;
130
+ };
131
+ };
132
+ export declare const sparkRatioTrigger: {
133
+ encode(owner: EthereumAddress, market: EthereumAddress, ratioPercentage: number, ratioState: RatioState): string[];
134
+ decode(triggerData: string[]): {
135
+ owner: any;
136
+ market: any;
137
+ ratio: number;
138
+ ratioState: number;
139
+ };
140
+ };
141
+ export declare const sparkQuotePriceTrigger: {
142
+ encode(baseTokenAddress: EthereumAddress, quoteTokenAddress: EthereumAddress, price: number, ratioState: RatioState): string[];
143
+ decode(triggerData: string[]): {
144
+ baseTokenAddress: EthereumAddress;
145
+ quoteTokenAddress: EthereumAddress;
146
+ price: string;
147
+ ratioState: RatioState;
148
+ };
149
+ };
150
+ export declare const curveUsdBorrowRateTrigger: {
151
+ encode(market: EthereumAddress, targetRate: string, rateState: RatioState): string[];
152
+ decode(triggerData: string[]): {
153
+ market: EthereumAddress;
154
+ targetRate: string;
155
+ rateState: RatioState;
156
+ };
157
+ };
158
+ export declare const curveUsdSoftLiquidationTrigger: {
159
+ encode(market: EthereumAddress, owner: EthereumAddress, percentage: string): string[];
160
+ decode(triggerData: string[]): {
161
+ market: EthereumAddress;
162
+ owner: EthereumAddress;
163
+ percentage: string;
164
+ };
165
+ };
166
+ export declare const crvUSDRatioTrigger: {
167
+ encode(owner: EthereumAddress, controller: EthereumAddress, ratioPercentage: number, ratioState: RatioState): string[];
168
+ decode(triggerData: string[]): {
169
+ owner: string;
170
+ controller: string;
171
+ ratio: number;
172
+ ratioState: number;
173
+ };
174
+ };
175
+ export declare const crvUsdHealthRatioTrigger: {
176
+ encode(owner: EthereumAddress, controller: EthereumAddress, ratioPercentage: number): string[];
177
+ decode(triggerData: string[]): {
178
+ owner: string;
179
+ controller: string;
180
+ ratio: number;
181
+ };
182
+ };
183
+ export declare const morphoBlueRatioTrigger: {
184
+ encode(marketId: string, owner: EthereumAddress, ratioPercentage: number, ratioState: RatioState): string[];
185
+ decode(triggerData: string[]): {
186
+ marketId: string;
187
+ owner: string;
188
+ ratio: number;
189
+ ratioState: number;
190
+ };
191
+ };
192
+ export declare const liquityV2RatioTrigger: {
193
+ encode(market: EthereumAddress, troveId: string, ratioPercentage: number, ratioState: RatioState): string[];
194
+ decode(triggerData: string[]): {
195
+ market: string;
196
+ troveId: string;
197
+ ratio: number;
198
+ ratioState: number;
199
+ };
200
+ };
@@ -0,0 +1,382 @@
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.liquityV2RatioTrigger = exports.morphoBlueRatioTrigger = exports.crvUsdHealthRatioTrigger = exports.crvUSDRatioTrigger = exports.curveUsdSoftLiquidationTrigger = exports.curveUsdBorrowRateTrigger = exports.sparkQuotePriceTrigger = exports.sparkRatioTrigger = exports.exchangeOffchainPriceTrigger = exports.exchangeTimestampTrigger = exports.compoundV3RatioTrigger = exports.cBondsRebondTrigger = exports.aaveV2RatioTrigger = exports.liquityDebtInFrontWithLimitTrigger = exports.liquityDebtInFrontTrigger = exports.liquityRatioTrigger = exports.compoundV2RatioTrigger = exports.aaveV3QuotePriceWithMaximumGasPriceTrigger = exports.aaveV3QuotePriceTrigger = exports.morphoAaveV2RatioTrigger = exports.aaveV3RatioTrigger = exports.makerRatioTrigger = exports.trailingStopTrigger = exports.chainlinkPriceTrigger = void 0;
30
+ const decimal_js_1 = __importDefault(require("decimal.js"));
31
+ const tokens_1 = require("@defisaver/tokens");
32
+ const web3_eth_abi_1 = __importDefault(require("web3-eth-abi"));
33
+ const web3Utils = __importStar(require("web3-utils"));
34
+ const utils_1 = require("./utils");
35
+ exports.chainlinkPriceTrigger = {
36
+ encode(tokenAddr, price, state) {
37
+ const _price = new decimal_js_1.default(price).mul(1e8).floor().toString();
38
+ return [web3_eth_abi_1.default.encodeParameters(['address', 'uint256', 'uint8'], [tokenAddr, _price, state])];
39
+ },
40
+ decode(triggerData) {
41
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'uint256', 'uint8'], triggerData[0]);
42
+ return { tokenAddr: decodedData[0], price: new decimal_js_1.default(decodedData[1]).div(1e8).toString(), state: +decodedData[2] };
43
+ },
44
+ };
45
+ exports.trailingStopTrigger = {
46
+ encode(tokenAddr, percentage, roundId) {
47
+ const _percentage = new decimal_js_1.default(percentage).mul(1e8).toString();
48
+ return [web3_eth_abi_1.default.encodeParameters(['address', 'uint256', 'uint80'], [tokenAddr, _percentage, roundId])];
49
+ },
50
+ decode(triggerData) {
51
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'uint256', 'uint80'], triggerData[0]);
52
+ const triggerPercentage = new decimal_js_1.default(decodedData[1]).div(1e8).toNumber();
53
+ return { tokenAddr: decodedData[0], triggerPercentage, roundId: decodedData[2] };
54
+ },
55
+ };
56
+ exports.makerRatioTrigger = {
57
+ encode(vaultId, ratioPercentage, ratioState) {
58
+ const ratioWei = (0, utils_1.ratioPercentageToWei)(ratioPercentage);
59
+ return [web3_eth_abi_1.default.encodeParameters(['uint256', 'uint256', 'uint8'], [vaultId, ratioWei, ratioState])];
60
+ },
61
+ decode(triggerData) {
62
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['uint256', 'uint256', 'uint8'], triggerData[0]);
63
+ return { vaultId: +decodedData[0], ratio: (0, utils_1.weiToRatioPercentage)(decodedData[1]), ratioState: +decodedData[2] };
64
+ },
65
+ };
66
+ exports.aaveV3RatioTrigger = {
67
+ encode(owner, market, ratioPercentage, ratioState) {
68
+ const ratioWei = (0, utils_1.ratioPercentageToWei)(ratioPercentage);
69
+ return [web3_eth_abi_1.default.encodeParameters(['address', 'address', 'uint256', 'uint8'], [owner, market, ratioWei, ratioState])];
70
+ },
71
+ decode(triggerData) {
72
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'address', 'uint256', 'uint8'], triggerData[0]);
73
+ return {
74
+ owner: decodedData[0],
75
+ market: decodedData[1],
76
+ ratio: (0, utils_1.weiToRatioPercentage)(decodedData[2]),
77
+ ratioState: Number(decodedData[3]),
78
+ };
79
+ },
80
+ };
81
+ exports.morphoAaveV2RatioTrigger = {
82
+ encode(owner, ratioPercentage, ratioState) {
83
+ const ratioWei = new decimal_js_1.default(ratioPercentage).mul(1e16).toString();
84
+ return [web3_eth_abi_1.default.encodeParameters(['address', 'uint128', 'uint8'], [owner, ratioWei, ratioState])];
85
+ },
86
+ decode(triggerData) {
87
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'uint128', 'uint8'], triggerData[0]);
88
+ return {
89
+ owner: decodedData[0],
90
+ ratio: new decimal_js_1.default(decodedData[1]).div(1e16).toNumber(),
91
+ ratioState: Number(decodedData[2]),
92
+ };
93
+ },
94
+ };
95
+ exports.aaveV3QuotePriceTrigger = {
96
+ encode(baseTokenAddress, quoteTokenAddress, price, ratioState) {
97
+ // Price is always in 8 decimals
98
+ const _price = new decimal_js_1.default(price.toString()).mul(Math.pow(10, 8)).floor().toString();
99
+ return [web3_eth_abi_1.default.encodeParameters(['address', 'address', 'uint256', 'uint8'], [baseTokenAddress, quoteTokenAddress, _price, ratioState])];
100
+ },
101
+ decode(triggerData) {
102
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'address', 'uint256', 'uint8'], triggerData[0]);
103
+ // Price is always in 8 decimals
104
+ const price = new decimal_js_1.default(decodedData[2]).div(Math.pow(10, 8)).toDP(8).toString();
105
+ return {
106
+ price,
107
+ baseTokenAddress: decodedData[0],
108
+ quoteTokenAddress: decodedData[1],
109
+ ratioState: +decodedData[3],
110
+ };
111
+ },
112
+ };
113
+ exports.aaveV3QuotePriceWithMaximumGasPriceTrigger = {
114
+ encode(baseTokenAddress, quoteTokenAddress, price, ratioState, maximumGasPriceInGwei) {
115
+ // Price is always in 8 decimals
116
+ const _price = new decimal_js_1.default(price.toString()).mul(Math.pow(10, 8)).floor().toString();
117
+ const _maximumGasPrice = maximumGasPriceInGwei
118
+ ? new decimal_js_1.default(maximumGasPriceInGwei.toString()).mul(Math.pow(10, 9)).floor().toString() // We convert it to WEI
119
+ : tokens_1.MAXUINT; // If undefined than set to MAXUINT
120
+ return [
121
+ web3_eth_abi_1.default.encodeParameters(['address', 'address', 'uint256', 'uint8'], [baseTokenAddress, quoteTokenAddress, _price, ratioState]),
122
+ web3_eth_abi_1.default.encodeParameters(['uint256'], [_maximumGasPrice]),
123
+ ];
124
+ },
125
+ decode(triggerData) {
126
+ const decodedPriceTrigger = web3_eth_abi_1.default.decodeParameters(['address', 'address', 'uint256', 'uint8'], triggerData[0]);
127
+ const decodedMaximumGasPriceTrigger = web3_eth_abi_1.default.decodeParameters(['uint256'], triggerData[1]);
128
+ // Price is always in 8 decimals
129
+ const price = new decimal_js_1.default(decodedPriceTrigger[2]).div(Math.pow(10, 8)).toDP(8).toString();
130
+ const maximumGasPrice = new decimal_js_1.default(decodedMaximumGasPriceTrigger[0]).div(Math.pow(10, 9)).toDP(9).toString();
131
+ return {
132
+ baseTokenAddress: decodedPriceTrigger[0],
133
+ quoteTokenAddress: decodedPriceTrigger[1],
134
+ price,
135
+ ratioState: +decodedPriceTrigger[3],
136
+ maximumGasPrice,
137
+ };
138
+ },
139
+ };
140
+ exports.compoundV2RatioTrigger = {
141
+ encode(owner, ratioPercentage, ratioState) {
142
+ const ratioWei = (0, utils_1.ratioPercentageToWei)(ratioPercentage);
143
+ return [web3_eth_abi_1.default.encodeParameters(['address', 'uint256', 'uint8'], [owner, ratioWei, ratioState])];
144
+ },
145
+ decode(triggerData) {
146
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'uint256', 'uint8'], triggerData[0]);
147
+ return {
148
+ owner: decodedData[0],
149
+ ratio: (0, utils_1.weiToRatioPercentage)(decodedData[1]),
150
+ ratioState: +decodedData[2],
151
+ };
152
+ },
153
+ };
154
+ exports.liquityRatioTrigger = {
155
+ encode(owner, ratioPercentage, ratioState) {
156
+ const ratioWei = (0, utils_1.ratioPercentageToWei)(ratioPercentage);
157
+ return [web3_eth_abi_1.default.encodeParameters(['address', 'uint256', 'uint8'], [owner, ratioWei, ratioState])];
158
+ },
159
+ decode(triggerData) {
160
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'uint256', 'uint8'], triggerData[0]);
161
+ return {
162
+ owner: decodedData[0],
163
+ ratio: (0, utils_1.weiToRatioPercentage)(decodedData[1]),
164
+ ratioState: +decodedData[2],
165
+ };
166
+ },
167
+ };
168
+ exports.liquityDebtInFrontTrigger = {
169
+ encode(owner, debtInFrontMin) {
170
+ const debtInFrontMinWei = web3Utils.toWei(new decimal_js_1.default(debtInFrontMin).toString(), 'ether');
171
+ return [web3_eth_abi_1.default.encodeParameters(['address', 'uint256'], [owner, debtInFrontMinWei])];
172
+ },
173
+ decode(triggerData) {
174
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'uint256'], triggerData[0]);
175
+ return {
176
+ owner: decodedData[0],
177
+ debtInFrontMin: new decimal_js_1.default(decodedData[1]).div(Math.pow(10, 18)).toString(),
178
+ };
179
+ },
180
+ };
181
+ exports.liquityDebtInFrontWithLimitTrigger = exports.liquityDebtInFrontTrigger;
182
+ exports.aaveV2RatioTrigger = {
183
+ encode(owner, market, ratioPercentage, ratioState) {
184
+ const ratioWei = (0, utils_1.ratioPercentageToWei)(ratioPercentage);
185
+ return [web3_eth_abi_1.default.encodeParameters(['address', 'address', 'uint256', 'uint8'], [owner, market, ratioWei, ratioState])];
186
+ },
187
+ decode(triggerData) {
188
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'address', 'uint256', 'uint8'], triggerData[0]);
189
+ return {
190
+ owner: decodedData[0],
191
+ market: decodedData[1],
192
+ ratio: (0, utils_1.weiToRatioPercentage)(decodedData[2]),
193
+ ratioState: +decodedData[3],
194
+ };
195
+ },
196
+ };
197
+ exports.cBondsRebondTrigger = {
198
+ encode(bondId) {
199
+ return [web3_eth_abi_1.default.encodeParameters(['uint256'], [bondId])];
200
+ },
201
+ decode(triggerData) {
202
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['uint256'], triggerData[0]);
203
+ return { bondId: decodedData[0] };
204
+ },
205
+ };
206
+ exports.compoundV3RatioTrigger = {
207
+ encode(owner, market, ratioPercentage, ratioState) {
208
+ const ratioWei = (0, utils_1.ratioPercentageToWei)(ratioPercentage);
209
+ return [web3_eth_abi_1.default.encodeParameters(['address', 'address', 'uint256', 'uint8'], [owner, market, ratioWei, ratioState])];
210
+ },
211
+ decode(triggerData) {
212
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'address', 'uint256', 'uint8'], triggerData[0]);
213
+ return {
214
+ owner: decodedData[0],
215
+ market: decodedData[1],
216
+ ratio: (0, utils_1.weiToRatioPercentage)(decodedData[2]),
217
+ ratioState: +decodedData[3],
218
+ };
219
+ },
220
+ };
221
+ exports.exchangeTimestampTrigger = {
222
+ encode(timestamp, interval) {
223
+ const timestampWei = new decimal_js_1.default(timestamp).toString();
224
+ const intervalWei = new decimal_js_1.default(interval).toString();
225
+ return [web3_eth_abi_1.default.encodeParameters(['uint256', 'uint256'], [timestampWei, intervalWei])];
226
+ },
227
+ decode(triggerData) {
228
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['uint256', 'uint256'], triggerData[0]);
229
+ return {
230
+ timestamp: Number(decodedData[0]),
231
+ interval: Number(decodedData[1]),
232
+ };
233
+ },
234
+ };
235
+ exports.exchangeOffchainPriceTrigger = {
236
+ encode(targetPrice, goodUntil, orderType, fromTokenDecimals, toTokenDecimals) {
237
+ const decimals = new decimal_js_1.default(toTokenDecimals).plus(18).minus(fromTokenDecimals).toNumber();
238
+ const price = new decimal_js_1.default(targetPrice.toString()).mul(Math.pow(10, decimals)).floor().toString();
239
+ return [web3_eth_abi_1.default.encodeParameters(['uint256', 'uint256', 'uint8'], [price, goodUntil, orderType])];
240
+ },
241
+ decode(triggerData, fromTokenDecimals, toTokenDecimals) {
242
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['uint256', 'uint256', 'uint8'], triggerData[0]);
243
+ const decimals = new decimal_js_1.default(toTokenDecimals).plus(18).minus(fromTokenDecimals).toString();
244
+ const price = new decimal_js_1.default(decodedData[0]).div(new decimal_js_1.default(10).pow(decimals)).toDP(fromTokenDecimals).toString();
245
+ return {
246
+ targetPrice: price,
247
+ goodUntil: +decodedData[1],
248
+ orderType: +decodedData[2],
249
+ };
250
+ },
251
+ };
252
+ exports.sparkRatioTrigger = {
253
+ encode(owner, market, ratioPercentage, ratioState) {
254
+ const ratioWei = (0, utils_1.ratioPercentageToWei)(ratioPercentage);
255
+ return [web3_eth_abi_1.default.encodeParameters(['address', 'address', 'uint256', 'uint8'], [owner, market, ratioWei, ratioState])];
256
+ },
257
+ decode(triggerData) {
258
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'address', 'uint256', 'uint8'], triggerData[0]);
259
+ return {
260
+ owner: decodedData[0],
261
+ market: decodedData[1],
262
+ ratio: (0, utils_1.weiToRatioPercentage)(decodedData[2]),
263
+ ratioState: Number(decodedData[3]),
264
+ };
265
+ },
266
+ };
267
+ exports.sparkQuotePriceTrigger = {
268
+ encode(baseTokenAddress, quoteTokenAddress, price, ratioState) {
269
+ // Price is always in 8 decimals
270
+ const _price = new decimal_js_1.default(price.toString()).mul(Math.pow(10, 8)).floor().toString();
271
+ return [web3_eth_abi_1.default.encodeParameters(['address', 'address', 'uint256', 'uint8'], [baseTokenAddress, quoteTokenAddress, _price, ratioState])];
272
+ },
273
+ decode(triggerData) {
274
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'address', 'uint256', 'uint8'], triggerData[0]);
275
+ // Price is always in 8 decimals
276
+ const price = new decimal_js_1.default(decodedData[2]).div(Math.pow(10, 8)).toDP(8).toString();
277
+ return {
278
+ price,
279
+ baseTokenAddress: decodedData[0],
280
+ quoteTokenAddress: decodedData[1],
281
+ ratioState: +decodedData[3],
282
+ };
283
+ },
284
+ };
285
+ exports.curveUsdBorrowRateTrigger = {
286
+ encode(market, targetRate, rateState) {
287
+ // the form is x = (e**(rate*365*86400))-1 where x*100 is number in %
288
+ // we reverse engineer that so we can calculate rate = ln(y/100 + 1) / 365*86400 where y is input in %
289
+ const rate = new decimal_js_1.default(new decimal_js_1.default(new decimal_js_1.default(targetRate).div(100)).plus(1)).ln().div(365).div(86400)
290
+ .toString();
291
+ const rateWei = new decimal_js_1.default(rate).mul(Math.pow(10, 18)).floor().toString(); // 18 decimals
292
+ return [web3_eth_abi_1.default.encodeParameters(['address', 'uint256', 'uint8'], [market, rateWei, rateState])];
293
+ },
294
+ decode(triggerData) {
295
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'uint256', 'uint8'], triggerData[0]);
296
+ const rateEth = web3Utils.fromWei(decodedData[1], 'ether');
297
+ // the form is x = (e**(rate*365*86400))-1 where x*100 is number in %
298
+ const exponentRate = new decimal_js_1.default(rateEth).mul(365).mul(86400);
299
+ const targetRate = new decimal_js_1.default(new decimal_js_1.default(2.718281828459).pow(exponentRate).minus(1)).mul(100)
300
+ .toString();
301
+ return {
302
+ market: decodedData[0],
303
+ targetRate,
304
+ rateState: +decodedData[2],
305
+ };
306
+ },
307
+ };
308
+ exports.curveUsdSoftLiquidationTrigger = {
309
+ encode(market, owner, percentage) {
310
+ // 100% = 1e18 => 1% = 1e16
311
+ const _percentage = new decimal_js_1.default(percentage).mul(Math.pow(10, 16)).floor().toString();
312
+ return [web3_eth_abi_1.default.encodeParameters(['address', 'address', 'uint256'], [market, owner, _percentage])];
313
+ },
314
+ decode(triggerData) {
315
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'address', 'uint256'], triggerData[0]);
316
+ return {
317
+ market: decodedData[0],
318
+ owner: decodedData[1],
319
+ percentage: new decimal_js_1.default(decodedData[2]).div(Math.pow(10, 16)).toString(),
320
+ };
321
+ },
322
+ };
323
+ exports.crvUSDRatioTrigger = {
324
+ encode(owner, controller, ratioPercentage, ratioState) {
325
+ const ratioWei = (0, utils_1.ratioPercentageToWei)(ratioPercentage);
326
+ return [web3_eth_abi_1.default.encodeParameters(['address', 'address', 'uint256', 'uint8'], [owner, controller, ratioWei, ratioState])];
327
+ },
328
+ decode(triggerData) {
329
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'address', 'uint256', 'uint8'], triggerData[0]);
330
+ return {
331
+ owner: decodedData[0],
332
+ controller: decodedData[1],
333
+ ratio: (0, utils_1.weiToRatioPercentage)(decodedData[2]),
334
+ ratioState: Number(decodedData[3]),
335
+ };
336
+ },
337
+ };
338
+ exports.crvUsdHealthRatioTrigger = {
339
+ encode(owner, controller, ratioPercentage) {
340
+ const ratioWei = (0, utils_1.ratioPercentageToWei)(ratioPercentage);
341
+ return [web3_eth_abi_1.default.encodeParameters(['address', 'address', 'uint256'], [owner, controller, ratioWei])];
342
+ },
343
+ decode(triggerData) {
344
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'address', 'uint256'], triggerData[0]);
345
+ return {
346
+ owner: decodedData[0],
347
+ controller: decodedData[1],
348
+ ratio: (0, utils_1.weiToRatioPercentage)(decodedData[2]),
349
+ };
350
+ },
351
+ };
352
+ exports.morphoBlueRatioTrigger = {
353
+ encode(marketId, // bytes32
354
+ owner, ratioPercentage, ratioState) {
355
+ const ratioWei = (0, utils_1.ratioPercentageToWei)(ratioPercentage);
356
+ return [web3_eth_abi_1.default.encodeParameters(['bytes32', 'address', 'uint256', 'uint8'], [marketId, owner, ratioWei, ratioState])];
357
+ },
358
+ decode(triggerData) {
359
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['bytes32', 'address', 'uint256', 'uint8'], triggerData[0]);
360
+ return {
361
+ marketId: decodedData[0],
362
+ owner: decodedData[1],
363
+ ratio: (0, utils_1.weiToRatioPercentage)(decodedData[2]),
364
+ ratioState: Number(decodedData[3]),
365
+ };
366
+ },
367
+ };
368
+ exports.liquityV2RatioTrigger = {
369
+ encode(market, troveId, ratioPercentage, ratioState) {
370
+ const ratioWei = (0, utils_1.ratioPercentageToWei)(ratioPercentage);
371
+ return [web3_eth_abi_1.default.encodeParameters(['address', 'uint256', 'uint256', 'uint8'], [market, troveId, ratioWei, ratioState])];
372
+ },
373
+ decode(triggerData) {
374
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'uint256', 'uint256', 'uint8'], triggerData[0]);
375
+ return {
376
+ market: decodedData[0],
377
+ troveId: decodedData[1],
378
+ ratio: (0, utils_1.weiToRatioPercentage)(decodedData[2]),
379
+ ratioState: Number(decodedData[3]),
380
+ };
381
+ },
382
+ };
@@ -0,0 +1 @@
1
+ import '../configuration';