@mento-protocol/mento-sdk 3.0.0-beta.3 → 3.0.0-beta.31

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 (371) hide show
  1. package/README.md +132 -275
  2. package/dist/cache/routes.d.ts +13 -0
  3. package/dist/cache/routes.d.ts.map +1 -0
  4. package/dist/cache/routes.js +11483 -0
  5. package/dist/cache/routes.js.map +1 -0
  6. package/dist/cache/tokens.d.ts +67 -0
  7. package/dist/cache/tokens.d.ts.map +1 -0
  8. package/dist/cache/tokens.js +379 -0
  9. package/dist/cache/tokens.js.map +1 -0
  10. package/dist/core/abis/activePool.d.ts +2 -0
  11. package/dist/core/abis/activePool.d.ts.map +1 -0
  12. package/dist/core/abis/activePool.js +14 -0
  13. package/dist/core/abis/activePool.js.map +1 -0
  14. package/dist/core/abis/addressesRegistry.d.ts +2 -0
  15. package/dist/core/abis/addressesRegistry.d.ts.map +1 -0
  16. package/dist/core/abis/addressesRegistry.js +26 -0
  17. package/dist/core/abis/addressesRegistry.js.map +1 -0
  18. package/dist/core/abis/borrowerOperations.d.ts +9 -0
  19. package/dist/core/abis/borrowerOperations.d.ts.map +1 -0
  20. package/dist/core/abis/borrowerOperations.js +89 -0
  21. package/dist/core/abis/borrowerOperations.js.map +1 -0
  22. package/dist/core/abis/breakerbox.d.ts +13 -0
  23. package/dist/core/abis/breakerbox.d.ts.map +1 -0
  24. package/dist/core/abis/breakerbox.js +8 -0
  25. package/dist/core/abis/breakerbox.js.map +1 -0
  26. package/dist/core/abis/erc20.d.ts +7 -0
  27. package/dist/core/abis/erc20.d.ts.map +1 -1
  28. package/dist/core/abis/erc20.js +7 -0
  29. package/dist/core/abis/erc20.js.map +1 -1
  30. package/dist/core/abis/fpmm.d.ts +236 -0
  31. package/dist/core/abis/fpmm.d.ts.map +1 -1
  32. package/dist/core/abis/fpmm.js +38 -0
  33. package/dist/core/abis/fpmm.js.map +1 -1
  34. package/dist/core/abis/fpmmFactory.d.ts +64 -0
  35. package/dist/core/abis/fpmmFactory.d.ts.map +1 -1
  36. package/dist/core/abis/fpmmFactory.js +17 -0
  37. package/dist/core/abis/fpmmFactory.js.map +1 -1
  38. package/dist/core/abis/hintHelpers.d.ts +2 -0
  39. package/dist/core/abis/hintHelpers.d.ts.map +1 -0
  40. package/dist/core/abis/hintHelpers.js +14 -0
  41. package/dist/core/abis/hintHelpers.js.map +1 -0
  42. package/dist/core/abis/index.d.ts +12 -1
  43. package/dist/core/abis/index.d.ts.map +1 -1
  44. package/dist/core/abis/index.js +12 -1
  45. package/dist/core/abis/index.js.map +1 -1
  46. package/dist/core/abis/multiTroveGetter.d.ts +8 -0
  47. package/dist/core/abis/multiTroveGetter.d.ts.map +1 -0
  48. package/dist/core/abis/multiTroveGetter.js +15 -0
  49. package/dist/core/abis/multiTroveGetter.js.map +1 -0
  50. package/dist/core/abis/priceFeed.d.ts +7 -0
  51. package/dist/core/abis/priceFeed.d.ts.map +1 -0
  52. package/dist/core/abis/priceFeed.js +16 -0
  53. package/dist/core/abis/priceFeed.js.map +1 -0
  54. package/dist/core/abis/router.d.ts +520 -1
  55. package/dist/core/abis/router.d.ts.map +1 -1
  56. package/dist/core/abis/router.js +35 -0
  57. package/dist/core/abis/router.js.map +1 -1
  58. package/dist/core/abis/sortedTroves.d.ts +2 -0
  59. package/dist/core/abis/sortedTroves.d.ts.map +1 -0
  60. package/dist/core/abis/sortedTroves.js +15 -0
  61. package/dist/core/abis/sortedTroves.js.map +1 -0
  62. package/dist/core/abis/systemParams.d.ts +2 -0
  63. package/dist/core/abis/systemParams.d.ts.map +1 -0
  64. package/dist/core/abis/systemParams.js +14 -0
  65. package/dist/core/abis/systemParams.js.map +1 -0
  66. package/dist/core/abis/troveManager.d.ts +2 -0
  67. package/dist/core/abis/troveManager.d.ts.map +1 -0
  68. package/dist/core/abis/troveManager.js +27 -0
  69. package/dist/core/abis/troveManager.js.map +1 -0
  70. package/dist/core/abis/troveNFT.d.ts +2 -0
  71. package/dist/core/abis/troveNFT.d.ts.map +1 -0
  72. package/dist/core/abis/troveNFT.js +9 -0
  73. package/dist/core/abis/troveNFT.js.map +1 -0
  74. package/dist/core/abis/virtualPool.d.ts +40 -0
  75. package/dist/core/abis/virtualPool.d.ts.map +1 -1
  76. package/dist/core/abis/virtualPool.js +6 -1
  77. package/dist/core/abis/virtualPool.js.map +1 -1
  78. package/dist/core/abis/virtualPoolFactory.d.ts +32 -0
  79. package/dist/core/abis/virtualPoolFactory.d.ts.map +1 -1
  80. package/dist/core/abis/virtualPoolFactory.js +8 -0
  81. package/dist/core/abis/virtualPoolFactory.js.map +1 -1
  82. package/dist/core/constants/addresses.d.ts.map +1 -1
  83. package/dist/core/constants/addresses.js +12 -4
  84. package/dist/core/constants/addresses.js.map +1 -1
  85. package/dist/core/constants/borrowConstants.d.ts +10 -0
  86. package/dist/core/constants/borrowConstants.d.ts.map +1 -0
  87. package/dist/core/constants/borrowConstants.js +16 -0
  88. package/dist/core/constants/borrowConstants.js.map +1 -0
  89. package/dist/core/constants/borrowRegistries.d.ts +7 -0
  90. package/dist/core/constants/borrowRegistries.d.ts.map +1 -0
  91. package/dist/core/constants/borrowRegistries.js +30 -0
  92. package/dist/core/constants/borrowRegistries.js.map +1 -0
  93. package/dist/core/constants/index.d.ts +2 -3
  94. package/dist/core/constants/index.d.ts.map +1 -1
  95. package/dist/core/constants/index.js +2 -3
  96. package/dist/core/constants/index.js.map +1 -1
  97. package/dist/core/errors/index.d.ts +1 -0
  98. package/dist/core/errors/index.d.ts.map +1 -1
  99. package/dist/core/errors/index.js +1 -0
  100. package/dist/core/errors/index.js.map +1 -1
  101. package/dist/core/errors/oracle.d.ts +9 -0
  102. package/dist/core/errors/oracle.d.ts.map +1 -0
  103. package/dist/core/errors/oracle.js +15 -0
  104. package/dist/core/errors/oracle.js.map +1 -0
  105. package/dist/core/errors/router.d.ts +6 -0
  106. package/dist/core/errors/router.d.ts.map +1 -1
  107. package/dist/core/errors/router.js +11 -1
  108. package/dist/core/errors/router.js.map +1 -1
  109. package/dist/core/types/borrow.d.ts +87 -0
  110. package/dist/core/types/borrow.d.ts.map +1 -0
  111. package/dist/{services/tokens/supply/ISupplyCalculator.js → core/types/borrow.js} +1 -1
  112. package/dist/core/types/borrow.js.map +1 -0
  113. package/dist/core/types/contractAddresses.d.ts +2 -0
  114. package/dist/core/types/contractAddresses.d.ts.map +1 -1
  115. package/dist/core/types/index.d.ts +5 -1
  116. package/dist/core/types/index.d.ts.map +1 -1
  117. package/dist/core/types/index.js +5 -1
  118. package/dist/core/types/index.js.map +1 -1
  119. package/dist/core/types/liquidity.d.ts +117 -0
  120. package/dist/core/types/liquidity.d.ts.map +1 -0
  121. package/dist/{services/tokens/supply/calculatorFactory.js → core/types/liquidity.js} +1 -1
  122. package/dist/core/types/liquidity.js.map +1 -0
  123. package/dist/core/types/pool.d.ts +110 -0
  124. package/dist/core/types/pool.d.ts.map +1 -1
  125. package/dist/core/types/provider.d.ts.map +1 -1
  126. package/dist/core/types/provider.js +0 -1
  127. package/dist/core/types/provider.js.map +1 -1
  128. package/dist/core/types/route.d.ts +3 -3
  129. package/dist/core/types/route.d.ts.map +1 -1
  130. package/dist/core/types/token.d.ts +13 -17
  131. package/dist/core/types/token.d.ts.map +1 -1
  132. package/dist/core/types/tradingLimits.d.ts +91 -0
  133. package/dist/core/types/tradingLimits.d.ts.map +1 -0
  134. package/dist/core/types/tradingLimits.js +3 -0
  135. package/dist/core/types/tradingLimits.js.map +1 -0
  136. package/dist/core/types/tradingMode.d.ts +24 -0
  137. package/dist/core/types/tradingMode.d.ts.map +1 -0
  138. package/dist/core/types/tradingMode.js +31 -0
  139. package/dist/core/types/tradingMode.js.map +1 -0
  140. package/dist/core/types/transaction.d.ts +45 -0
  141. package/dist/core/types/transaction.d.ts.map +1 -0
  142. package/dist/core/types/transaction.js +3 -0
  143. package/dist/core/types/transaction.js.map +1 -0
  144. package/dist/index.d.ts +35 -5
  145. package/dist/index.d.ts.map +1 -1
  146. package/dist/index.js +57 -14
  147. package/dist/index.js.map +1 -1
  148. package/dist/services/borrow/BorrowService.d.ts +54 -0
  149. package/dist/services/borrow/BorrowService.d.ts.map +1 -0
  150. package/dist/services/borrow/BorrowService.js +129 -0
  151. package/dist/services/borrow/BorrowService.js.map +1 -0
  152. package/dist/services/borrow/borrowHelpers.d.ts +4 -0
  153. package/dist/services/borrow/borrowHelpers.d.ts.map +1 -0
  154. package/dist/services/borrow/borrowHelpers.js +13 -0
  155. package/dist/services/borrow/borrowHelpers.js.map +1 -0
  156. package/dist/services/borrow/borrowMath.d.ts +13 -0
  157. package/dist/services/borrow/borrowMath.d.ts.map +1 -0
  158. package/dist/services/borrow/borrowMath.js +129 -0
  159. package/dist/services/borrow/borrowMath.js.map +1 -0
  160. package/dist/services/borrow/index.d.ts +2 -0
  161. package/dist/services/borrow/index.d.ts.map +1 -0
  162. package/dist/services/{tokens/supply → borrow}/index.js +1 -6
  163. package/dist/services/borrow/index.js.map +1 -0
  164. package/dist/services/borrow/internal/borrowApprovalService.d.ts +14 -0
  165. package/dist/services/borrow/internal/borrowApprovalService.d.ts.map +1 -0
  166. package/dist/services/borrow/internal/borrowApprovalService.js +53 -0
  167. package/dist/services/borrow/internal/borrowApprovalService.js.map +1 -0
  168. package/dist/services/borrow/internal/borrowContextStore.d.ts +11 -0
  169. package/dist/services/borrow/internal/borrowContextStore.d.ts.map +1 -0
  170. package/dist/services/borrow/internal/borrowContextStore.js +40 -0
  171. package/dist/services/borrow/internal/borrowContextStore.js.map +1 -0
  172. package/dist/services/borrow/internal/borrowErc20.d.ts +5 -0
  173. package/dist/services/borrow/internal/borrowErc20.d.ts.map +1 -0
  174. package/dist/services/borrow/internal/borrowErc20.js +43 -0
  175. package/dist/services/borrow/internal/borrowErc20.js.map +1 -0
  176. package/dist/services/borrow/internal/borrowHints.d.ts +7 -0
  177. package/dist/services/borrow/internal/borrowHints.d.ts.map +1 -0
  178. package/dist/services/borrow/internal/borrowHints.js +31 -0
  179. package/dist/services/borrow/internal/borrowHints.js.map +1 -0
  180. package/dist/services/borrow/internal/borrowPositionParser.d.ts +4 -0
  181. package/dist/services/borrow/internal/borrowPositionParser.d.ts.map +1 -0
  182. package/dist/services/borrow/internal/borrowPositionParser.js +87 -0
  183. package/dist/services/borrow/internal/borrowPositionParser.js.map +1 -0
  184. package/dist/services/borrow/internal/borrowReadService.d.ts +28 -0
  185. package/dist/services/borrow/internal/borrowReadService.d.ts.map +1 -0
  186. package/dist/services/borrow/internal/borrowReadService.js +218 -0
  187. package/dist/services/borrow/internal/borrowReadService.js.map +1 -0
  188. package/dist/services/borrow/internal/borrowRegistryReader.d.ts +5 -0
  189. package/dist/services/borrow/internal/borrowRegistryReader.d.ts.map +1 -0
  190. package/dist/services/borrow/internal/borrowRegistryReader.js +96 -0
  191. package/dist/services/borrow/internal/borrowRegistryReader.js.map +1 -0
  192. package/dist/services/borrow/internal/borrowTransactionService.d.ts +23 -0
  193. package/dist/services/borrow/internal/borrowTransactionService.d.ts.map +1 -0
  194. package/dist/services/borrow/internal/borrowTransactionService.js +276 -0
  195. package/dist/services/borrow/internal/borrowTransactionService.js.map +1 -0
  196. package/dist/services/borrow/internal/borrowTypes.d.ts +15 -0
  197. package/dist/services/borrow/internal/borrowTypes.d.ts.map +1 -0
  198. package/dist/services/borrow/internal/borrowTypes.js +3 -0
  199. package/dist/services/borrow/internal/borrowTypes.js.map +1 -0
  200. package/dist/services/borrow/internal/borrowValidation.d.ts +13 -0
  201. package/dist/services/borrow/internal/borrowValidation.d.ts.map +1 -0
  202. package/dist/services/borrow/internal/borrowValidation.js +96 -0
  203. package/dist/services/borrow/internal/borrowValidation.js.map +1 -0
  204. package/dist/services/index.d.ts +2 -2
  205. package/dist/services/index.d.ts.map +1 -1
  206. package/dist/services/index.js +2 -2
  207. package/dist/services/index.js.map +1 -1
  208. package/dist/services/liquidity/LiquidityService.d.ts +154 -0
  209. package/dist/services/liquidity/LiquidityService.d.ts.map +1 -0
  210. package/dist/services/liquidity/LiquidityService.js +184 -0
  211. package/dist/services/liquidity/LiquidityService.js.map +1 -0
  212. package/dist/services/liquidity/basicLiquidity.d.ts +11 -0
  213. package/dist/services/liquidity/basicLiquidity.d.ts.map +1 -0
  214. package/dist/services/liquidity/basicLiquidity.js +172 -0
  215. package/dist/services/liquidity/basicLiquidity.js.map +1 -0
  216. package/dist/services/liquidity/index.d.ts +2 -0
  217. package/dist/services/liquidity/index.d.ts.map +1 -0
  218. package/dist/services/liquidity/index.js +18 -0
  219. package/dist/services/liquidity/index.js.map +1 -0
  220. package/dist/services/liquidity/liquidityHelpers.d.ts +13 -0
  221. package/dist/services/liquidity/liquidityHelpers.d.ts.map +1 -0
  222. package/dist/services/liquidity/liquidityHelpers.js +74 -0
  223. package/dist/services/liquidity/liquidityHelpers.js.map +1 -0
  224. package/dist/services/liquidity/zapHelpers.d.ts +66 -0
  225. package/dist/services/liquidity/zapHelpers.d.ts.map +1 -0
  226. package/dist/services/liquidity/zapHelpers.js +133 -0
  227. package/dist/services/liquidity/zapHelpers.js.map +1 -0
  228. package/dist/services/liquidity/zapIn.d.ts +17 -0
  229. package/dist/services/liquidity/zapIn.d.ts.map +1 -0
  230. package/dist/services/liquidity/zapIn.js +125 -0
  231. package/dist/services/liquidity/zapIn.js.map +1 -0
  232. package/dist/services/liquidity/zapOut.d.ts +17 -0
  233. package/dist/services/liquidity/zapOut.d.ts.map +1 -0
  234. package/dist/services/liquidity/zapOut.js +242 -0
  235. package/dist/services/liquidity/zapOut.js.map +1 -0
  236. package/dist/services/pools/PoolService.d.ts +35 -10
  237. package/dist/services/pools/PoolService.d.ts.map +1 -1
  238. package/dist/services/pools/PoolService.js +61 -112
  239. package/dist/services/pools/PoolService.js.map +1 -1
  240. package/dist/services/pools/poolDetails.d.ts +11 -0
  241. package/dist/services/pools/poolDetails.d.ts.map +1 -0
  242. package/dist/services/pools/poolDetails.js +151 -0
  243. package/dist/services/pools/poolDetails.js.map +1 -0
  244. package/dist/services/pools/poolDiscovery.d.ts +12 -0
  245. package/dist/services/pools/poolDiscovery.d.ts.map +1 -0
  246. package/dist/services/pools/poolDiscovery.js +114 -0
  247. package/dist/services/pools/poolDiscovery.js.map +1 -0
  248. package/dist/services/quotes/QuoteService.d.ts +21 -12
  249. package/dist/services/quotes/QuoteService.d.ts.map +1 -1
  250. package/dist/services/quotes/QuoteService.js +44 -17
  251. package/dist/services/quotes/QuoteService.js.map +1 -1
  252. package/dist/services/routes/RouteService.d.ts +3 -3
  253. package/dist/services/routes/RouteService.d.ts.map +1 -1
  254. package/dist/services/routes/RouteService.js +3 -6
  255. package/dist/services/routes/RouteService.js.map +1 -1
  256. package/dist/services/swap/SwapService.d.ts +23 -19
  257. package/dist/services/swap/SwapService.d.ts.map +1 -1
  258. package/dist/services/swap/SwapService.js +42 -17
  259. package/dist/services/swap/SwapService.js.map +1 -1
  260. package/dist/services/tokens/tokenService.d.ts +3 -3
  261. package/dist/services/tokens/tokenService.d.ts.map +1 -1
  262. package/dist/services/tokens/tokenService.js +26 -37
  263. package/dist/services/tokens/tokenService.js.map +1 -1
  264. package/dist/services/trading/TradingLimitsService.d.ts +38 -0
  265. package/dist/services/trading/TradingLimitsService.d.ts.map +1 -0
  266. package/dist/services/trading/TradingLimitsService.js +157 -0
  267. package/dist/services/trading/TradingLimitsService.js.map +1 -0
  268. package/dist/services/trading/TradingService.d.ts +110 -0
  269. package/dist/services/trading/TradingService.d.ts.map +1 -0
  270. package/dist/services/trading/TradingService.js +162 -0
  271. package/dist/services/trading/TradingService.js.map +1 -0
  272. package/dist/services/trading/index.d.ts +3 -0
  273. package/dist/services/trading/index.d.ts.map +1 -0
  274. package/dist/services/trading/index.js +19 -0
  275. package/dist/services/trading/index.js.map +1 -0
  276. package/dist/utils/costUtils.js +4 -4
  277. package/dist/utils/costUtils.js.map +1 -1
  278. package/dist/utils/deadline.d.ts +21 -0
  279. package/dist/utils/deadline.d.ts.map +1 -0
  280. package/dist/utils/deadline.js +26 -0
  281. package/dist/utils/deadline.js.map +1 -0
  282. package/dist/utils/index.d.ts +3 -0
  283. package/dist/utils/index.d.ts.map +1 -1
  284. package/dist/utils/index.js +3 -0
  285. package/dist/utils/index.js.map +1 -1
  286. package/dist/utils/pathEncoder.d.ts +8 -2
  287. package/dist/utils/pathEncoder.d.ts.map +1 -1
  288. package/dist/utils/pathEncoder.js +19 -3
  289. package/dist/utils/pathEncoder.js.map +1 -1
  290. package/dist/utils/rateFeed.d.ts +18 -0
  291. package/dist/utils/rateFeed.d.ts.map +1 -0
  292. package/dist/utils/rateFeed.js +27 -0
  293. package/dist/utils/rateFeed.js.map +1 -0
  294. package/dist/utils/routeUtils.d.ts +53 -53
  295. package/dist/utils/routeUtils.d.ts.map +1 -1
  296. package/dist/utils/routeUtils.js +41 -41
  297. package/dist/utils/routeUtils.js.map +1 -1
  298. package/dist/utils/routes.d.ts +2 -8
  299. package/dist/utils/routes.d.ts.map +1 -1
  300. package/dist/utils/routes.js +5 -46
  301. package/dist/utils/routes.js.map +1 -1
  302. package/dist/utils/tokens.d.ts +1 -62
  303. package/dist/utils/tokens.d.ts.map +1 -1
  304. package/dist/utils/tokens.js +10 -163
  305. package/dist/utils/tokens.js.map +1 -1
  306. package/dist/utils/tradingLimits.d.ts +41 -0
  307. package/dist/utils/tradingLimits.d.ts.map +1 -0
  308. package/dist/utils/tradingLimits.js +171 -0
  309. package/dist/utils/tradingLimits.js.map +1 -0
  310. package/dist/utils/validation.d.ts +19 -0
  311. package/dist/utils/validation.d.ts.map +1 -0
  312. package/dist/utils/validation.js +34 -0
  313. package/dist/utils/validation.js.map +1 -0
  314. package/package.json +6 -6
  315. package/dist/cache/routes.42220.d.ts +0 -3
  316. package/dist/cache/routes.42220.d.ts.map +0 -1
  317. package/dist/cache/routes.42220.js +0 -112
  318. package/dist/cache/routes.42220.js.map +0 -1
  319. package/dist/cache/tokens.11142220.d.ts +0 -3
  320. package/dist/cache/tokens.11142220.d.ts.map +0 -1
  321. package/dist/cache/tokens.11142220.js +0 -129
  322. package/dist/cache/tokens.11142220.js.map +0 -1
  323. package/dist/cache/tokens.42220.d.ts +0 -3
  324. package/dist/cache/tokens.42220.d.ts.map +0 -1
  325. package/dist/cache/tokens.42220.js +0 -129
  326. package/dist/cache/tokens.42220.js.map +0 -1
  327. package/dist/core/abis/uniswapV3.d.ts +0 -4
  328. package/dist/core/abis/uniswapV3.d.ts.map +0 -1
  329. package/dist/core/abis/uniswapV3.js +0 -16
  330. package/dist/core/abis/uniswapV3.js.map +0 -1
  331. package/dist/core/constants/aaveConfig.d.ts +0 -7
  332. package/dist/core/constants/aaveConfig.d.ts.map +0 -1
  333. package/dist/core/constants/aaveConfig.js +0 -22
  334. package/dist/core/constants/aaveConfig.js.map +0 -1
  335. package/dist/core/constants/mentoAddresses.d.ts +0 -7
  336. package/dist/core/constants/mentoAddresses.d.ts.map +0 -1
  337. package/dist/core/constants/mentoAddresses.js +0 -10
  338. package/dist/core/constants/mentoAddresses.js.map +0 -1
  339. package/dist/core/constants/protocolAddresses.d.ts +0 -5
  340. package/dist/core/constants/protocolAddresses.d.ts.map +0 -1
  341. package/dist/core/constants/protocolAddresses.js +0 -8
  342. package/dist/core/constants/protocolAddresses.js.map +0 -1
  343. package/dist/services/tokens/supply/ISupplyCalculator.d.ts +0 -14
  344. package/dist/services/tokens/supply/ISupplyCalculator.d.ts.map +0 -1
  345. package/dist/services/tokens/supply/ISupplyCalculator.js.map +0 -1
  346. package/dist/services/tokens/supply/aaveSupplyCalculator.d.ts +0 -22
  347. package/dist/services/tokens/supply/aaveSupplyCalculator.d.ts.map +0 -1
  348. package/dist/services/tokens/supply/aaveSupplyCalculator.js +0 -46
  349. package/dist/services/tokens/supply/aaveSupplyCalculator.js.map +0 -1
  350. package/dist/services/tokens/supply/calculatorFactory.d.ts +0 -8
  351. package/dist/services/tokens/supply/calculatorFactory.d.ts.map +0 -1
  352. package/dist/services/tokens/supply/calculatorFactory.js.map +0 -1
  353. package/dist/services/tokens/supply/defaultCalculatorFactory.d.ts +0 -9
  354. package/dist/services/tokens/supply/defaultCalculatorFactory.d.ts.map +0 -1
  355. package/dist/services/tokens/supply/defaultCalculatorFactory.js +0 -28
  356. package/dist/services/tokens/supply/defaultCalculatorFactory.js.map +0 -1
  357. package/dist/services/tokens/supply/index.d.ts +0 -7
  358. package/dist/services/tokens/supply/index.d.ts.map +0 -1
  359. package/dist/services/tokens/supply/index.js.map +0 -1
  360. package/dist/services/tokens/supply/multisigSupplyCalculator.d.ts +0 -9
  361. package/dist/services/tokens/supply/multisigSupplyCalculator.d.ts.map +0 -1
  362. package/dist/services/tokens/supply/multisigSupplyCalculator.js +0 -33
  363. package/dist/services/tokens/supply/multisigSupplyCalculator.js.map +0 -1
  364. package/dist/services/tokens/supply/uniV3SupplyCalculator.d.ts +0 -21
  365. package/dist/services/tokens/supply/uniV3SupplyCalculator.d.ts.map +0 -1
  366. package/dist/services/tokens/supply/uniV3SupplyCalculator.js +0 -238
  367. package/dist/services/tokens/supply/uniV3SupplyCalculator.js.map +0 -1
  368. package/dist/services/tokens/supplyAdjustmentService.d.ts +0 -19
  369. package/dist/services/tokens/supplyAdjustmentService.d.ts.map +0 -1
  370. package/dist/services/tokens/supplyAdjustmentService.js +0 -49
  371. package/dist/services/tokens/supplyAdjustmentService.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,9 +1,13 @@
1
+ import { type PublicClient } from 'viem';
1
2
  import { ContractAddresses } from './core/types';
2
3
  import { TokenService } from './services/tokens';
3
4
  import { PoolService } from './services/pools';
4
5
  import { RouteService } from './services/routes';
5
6
  import { QuoteService } from './services/quotes';
6
7
  import { SwapService } from './services/swap';
8
+ import { TradingService } from './services/trading';
9
+ import { LiquidityService } from './services/liquidity';
10
+ import { BorrowService } from './services/borrow';
7
11
  /**
8
12
  * @class Mento
9
13
  * @description The main class for the Mento SDK. Initializes a viem PublicClient internally
@@ -12,6 +16,8 @@ import { SwapService } from './services/swap';
12
16
  * const mento = await Mento.create(ChainId.CELO);
13
17
  * // or with custom RPC URL
14
18
  * const mento = await Mento.create(ChainId.CELO, 'https://custom-rpc-url.com');
19
+ * // or with an existing viem PublicClient
20
+ * const mento = await Mento.create(ChainId.CELO, myPublicClient);
15
21
  *
16
22
  * // Get all stable tokens
17
23
  * const stableTokens = await mento.tokens.getStableTokens();
@@ -23,13 +29,32 @@ import { SwapService } from './services/swap';
23
29
  * const pools = await mento.pools.getPools();
24
30
  *
25
31
  * // Find a route between tokens
26
- * const route = await mento.routes.findRoute(cUSD, CELO);
32
+ * const route = await mento.routes.findRoute(USDm, CELO);
27
33
  *
28
34
  * // Get a quote for a swap
29
- * const amountOut = await mento.quotes.getAmountOut(cUSD, CELO, amountIn);
35
+ * const amountOut = await mento.quotes.getAmountOut(USDm, CELO, amountIn);
30
36
  *
31
37
  * // Build swap parameters
32
- * const swapDetails = await mento.swap.buildSwapParams(cUSD, CELO, amountIn, { slippageTolerance: 0.5 });
38
+ * const swapDetails = await mento.swap.buildSwapParams(USDm, CELO, amountIn, recipient, { slippageTolerance: 0.5, deadline: deadlineFromMinutes(5) });
39
+ *
40
+ * // Check if a pair is tradable (circuit breaker check)
41
+ * const isTradable = await mento.trading.isPairTradable(USDm, CELO);
42
+ *
43
+ * // Get trading limits for a pool
44
+ * const limits = await mento.trading.getPoolTradingLimits(pool);
45
+ *
46
+ * // Get full tradability status (circuit breaker + limits)
47
+ * const status = await mento.trading.getPoolTradabilityStatus(pool);
48
+ *
49
+ * // Add liquidity to a pool
50
+ * const { approval0, approval1, addLiquidity } = await mento.liquidity.buildAddLiquidityTransaction(
51
+ * poolAddress, amount0, amount1, recipient, owner, { slippageTolerance: 0.5, deadline: deadlineFromMinutes(5) }
52
+ * );
53
+ *
54
+ * // Add liquidity using a single token (zap in)
55
+ * const { approval, zapIn } = await mento.liquidity.buildZapInTransaction(
56
+ * poolAddress, tokenIn, amountIn, 0.5, recipient, owner, { slippageTolerance: 0.5, deadline: deadlineFromMinutes(5) }
57
+ * );
33
58
  */
34
59
  export declare class Mento {
35
60
  private chainId;
@@ -38,14 +63,18 @@ export declare class Mento {
38
63
  routes: RouteService;
39
64
  quotes: QuoteService;
40
65
  swap: SwapService;
66
+ trading: TradingService;
67
+ liquidity: LiquidityService;
68
+ borrow: BorrowService;
41
69
  private constructor();
42
70
  /**
43
71
  * Create a new Mento SDK instance
44
72
  * @param chainId - The chain ID (e.g., ChainId.CELO, ChainId.CELO_SEPOLIA)
45
- * @param rpcUrl - Optional RPC URL. If not provided, uses default for the chain
73
+ * @param rpcUrlOrClient - Optional RPC URL string or an existing viem PublicClient.
74
+ * If not provided, uses the default RPC URL for the chain.
46
75
  * @returns A new Mento instance
47
76
  */
48
- static create(chainId: number, rpcUrl?: string): Promise<Mento>;
77
+ static create(chainId: number, rpcUrlOrClient?: string | PublicClient): Promise<Mento>;
49
78
  /**
50
79
  * Get the address of a contract for the current chain
51
80
  * @param contractName - The contract name
@@ -54,6 +83,7 @@ export declare class Mento {
54
83
  getContractAddress(contractName: keyof ContractAddresses): string;
55
84
  }
56
85
  export * from './core/constants';
86
+ export * from './core/errors';
57
87
  export * from './core/types';
58
88
  export * from './core/abis';
59
89
  export * from './services';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAIhD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,KAAK;IAEd,OAAO,CAAC,OAAO;IACR,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,WAAW;IAN1B,OAAO;IASP;;;;;OAKG;WACiB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAoB5E;;;;OAIG;IACI,kBAAkB,CAAC,YAAY,EAAE,MAAM,iBAAiB,GAAG,MAAM;CAGzE;AAED,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,YAAY,EAAE,MAAM,MAAM,CAAA;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAIhD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,qBAAa,KAAK;IAEd,OAAO,CAAC,OAAO;IACR,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,cAAc;IACvB,SAAS,EAAE,gBAAgB;IAC3B,MAAM,EAAE,aAAa;IAT9B,OAAO;IAYP;;;;;;OAMG;WACiB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;IA4CnG;;;;OAIG;IACI,kBAAkB,CAAC,YAAY,EAAE,MAAM,iBAAiB,GAAG,MAAM;CAGzE;AAED,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA"}
package/dist/index.js CHANGED
@@ -16,6 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.Mento = void 0;
18
18
  const viem_1 = require("viem");
19
+ const chainId_1 = require("./core/constants/chainId");
19
20
  const addresses_1 = require("./core/constants/addresses");
20
21
  const chainConfig_1 = require("./utils/chainConfig");
21
22
  const tokens_1 = require("./services/tokens");
@@ -23,6 +24,9 @@ const pools_1 = require("./services/pools");
23
24
  const routes_1 = require("./services/routes");
24
25
  const quotes_1 = require("./services/quotes");
25
26
  const swap_1 = require("./services/swap");
27
+ const trading_1 = require("./services/trading");
28
+ const liquidity_1 = require("./services/liquidity");
29
+ const borrow_1 = require("./services/borrow");
26
30
  /**
27
31
  * @class Mento
28
32
  * @description The main class for the Mento SDK. Initializes a viem PublicClient internally
@@ -31,6 +35,8 @@ const swap_1 = require("./services/swap");
31
35
  * const mento = await Mento.create(ChainId.CELO);
32
36
  * // or with custom RPC URL
33
37
  * const mento = await Mento.create(ChainId.CELO, 'https://custom-rpc-url.com');
38
+ * // or with an existing viem PublicClient
39
+ * const mento = await Mento.create(ChainId.CELO, myPublicClient);
34
40
  *
35
41
  * // Get all stable tokens
36
42
  * const stableTokens = await mento.tokens.getStableTokens();
@@ -42,44 +48,80 @@ const swap_1 = require("./services/swap");
42
48
  * const pools = await mento.pools.getPools();
43
49
  *
44
50
  * // Find a route between tokens
45
- * const route = await mento.routes.findRoute(cUSD, CELO);
51
+ * const route = await mento.routes.findRoute(USDm, CELO);
46
52
  *
47
53
  * // Get a quote for a swap
48
- * const amountOut = await mento.quotes.getAmountOut(cUSD, CELO, amountIn);
54
+ * const amountOut = await mento.quotes.getAmountOut(USDm, CELO, amountIn);
49
55
  *
50
56
  * // Build swap parameters
51
- * const swapDetails = await mento.swap.buildSwapParams(cUSD, CELO, amountIn, { slippageTolerance: 0.5 });
57
+ * const swapDetails = await mento.swap.buildSwapParams(USDm, CELO, amountIn, recipient, { slippageTolerance: 0.5, deadline: deadlineFromMinutes(5) });
58
+ *
59
+ * // Check if a pair is tradable (circuit breaker check)
60
+ * const isTradable = await mento.trading.isPairTradable(USDm, CELO);
61
+ *
62
+ * // Get trading limits for a pool
63
+ * const limits = await mento.trading.getPoolTradingLimits(pool);
64
+ *
65
+ * // Get full tradability status (circuit breaker + limits)
66
+ * const status = await mento.trading.getPoolTradabilityStatus(pool);
67
+ *
68
+ * // Add liquidity to a pool
69
+ * const { approval0, approval1, addLiquidity } = await mento.liquidity.buildAddLiquidityTransaction(
70
+ * poolAddress, amount0, amount1, recipient, owner, { slippageTolerance: 0.5, deadline: deadlineFromMinutes(5) }
71
+ * );
72
+ *
73
+ * // Add liquidity using a single token (zap in)
74
+ * const { approval, zapIn } = await mento.liquidity.buildZapInTransaction(
75
+ * poolAddress, tokenIn, amountIn, 0.5, recipient, owner, { slippageTolerance: 0.5, deadline: deadlineFromMinutes(5) }
76
+ * );
52
77
  */
53
78
  class Mento {
54
- constructor(chainId, tokens, pools, routes, quotes, swap) {
79
+ constructor(chainId, tokens, pools, routes, quotes, swap, trading, liquidity, borrow) {
55
80
  this.chainId = chainId;
56
81
  this.tokens = tokens;
57
82
  this.pools = pools;
58
83
  this.routes = routes;
59
84
  this.quotes = quotes;
60
85
  this.swap = swap;
86
+ this.trading = trading;
87
+ this.liquidity = liquidity;
88
+ this.borrow = borrow;
61
89
  }
62
90
  /**
63
91
  * Create a new Mento SDK instance
64
92
  * @param chainId - The chain ID (e.g., ChainId.CELO, ChainId.CELO_SEPOLIA)
65
- * @param rpcUrl - Optional RPC URL. If not provided, uses default for the chain
93
+ * @param rpcUrlOrClient - Optional RPC URL string or an existing viem PublicClient.
94
+ * If not provided, uses the default RPC URL for the chain.
66
95
  * @returns A new Mento instance
67
96
  */
68
- static async create(chainId, rpcUrl) {
69
- // Use provided RPC URL or default for the chain
70
- const transport = (0, viem_1.http)(rpcUrl || (0, chainConfig_1.getDefaultRpcUrl)(chainId));
71
- // Create viem PublicClient
72
- const publicClient = (0, viem_1.createPublicClient)({
73
- chain: (0, chainConfig_1.getChainConfig)(chainId),
74
- transport,
75
- });
97
+ static async create(chainId, rpcUrlOrClient) {
98
+ // Validate chainId is supported
99
+ const supportedChainIds = Object.values(chainId_1.ChainId).filter((v) => typeof v === 'number');
100
+ if (!supportedChainIds.includes(chainId)) {
101
+ throw new Error(`ChainId ${chainId} is not supported. ` +
102
+ `Supported chains: ${supportedChainIds.map((id) => `${id} (${chainId_1.ChainId[id]})`).join(', ')}`);
103
+ }
104
+ let publicClient;
105
+ if (rpcUrlOrClient && typeof rpcUrlOrClient !== 'string') {
106
+ publicClient = rpcUrlOrClient;
107
+ }
108
+ else {
109
+ const transport = (0, viem_1.http)(rpcUrlOrClient || (0, chainConfig_1.getDefaultRpcUrl)(chainId));
110
+ publicClient = (0, viem_1.createPublicClient)({
111
+ chain: (0, chainConfig_1.getChainConfig)(chainId),
112
+ transport,
113
+ });
114
+ }
76
115
  const tokenService = new tokens_1.TokenService(publicClient, chainId);
77
116
  const poolService = new pools_1.PoolService(publicClient, chainId);
78
117
  const routeService = new routes_1.RouteService(publicClient, chainId, poolService);
79
118
  const quoteService = new quotes_1.QuoteService(publicClient, chainId, routeService);
80
119
  const swapService = new swap_1.SwapService(publicClient, chainId, routeService, quoteService);
120
+ const tradingService = new trading_1.TradingService(publicClient, chainId, routeService);
121
+ const liquidityService = new liquidity_1.LiquidityService(publicClient, chainId, poolService, routeService);
122
+ const borrowService = new borrow_1.BorrowService(publicClient, chainId);
81
123
  // Return new mento
82
- return new Mento(chainId, tokenService, poolService, routeService, quoteService, swapService);
124
+ return new Mento(chainId, tokenService, poolService, routeService, quoteService, swapService, tradingService, liquidityService, borrowService);
83
125
  }
84
126
  /**
85
127
  * Get the address of a contract for the current chain
@@ -92,6 +134,7 @@ class Mento {
92
134
  }
93
135
  exports.Mento = Mento;
94
136
  __exportStar(require("./core/constants"), exports);
137
+ __exportStar(require("./core/errors"), exports);
95
138
  __exportStar(require("./core/types"), exports);
96
139
  __exportStar(require("./core/abis"), exports);
97
140
  __exportStar(require("./services"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+BAAkE;AAGlE,0DAA+D;AAC/D,qDAAsE;AACtE,8CAAgD;AAChD,4CAA8C;AAC9C,8CAAgD;AAChD,8CAAgD;AAChD,0CAA6C;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAa,KAAK;IAChB,YACU,OAAe,EAChB,MAAoB,EACpB,KAAkB,EAClB,MAAoB,EACpB,MAAoB,EACpB,IAAiB;QALhB,YAAO,GAAP,OAAO,CAAQ;QAChB,WAAM,GAAN,MAAM,CAAc;QACpB,UAAK,GAAL,KAAK,CAAa;QAClB,WAAM,GAAN,MAAM,CAAc;QACpB,WAAM,GAAN,MAAM,CAAc;QACpB,SAAI,GAAJ,IAAI,CAAa;IACvB,CAAC;IAEJ;;;;;OAKG;IACI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,MAAe;QACzD,gDAAgD;QAChD,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC,MAAM,IAAI,IAAA,8BAAgB,EAAC,OAAO,CAAC,CAAC,CAAA;QAE3D,2BAA2B;QAC3B,MAAM,YAAY,GAAG,IAAA,yBAAkB,EAAC;YACtC,KAAK,EAAE,IAAA,4BAAc,EAAC,OAAO,CAAC;YAC9B,SAAS;SACV,CAAC,CAAA;QAEF,MAAM,YAAY,GAAG,IAAI,qBAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAC5D,MAAM,WAAW,GAAG,IAAI,mBAAW,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAC1D,MAAM,YAAY,GAAG,IAAI,qBAAY,CAAC,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;QACzE,MAAM,YAAY,GAAG,IAAI,qBAAY,CAAC,YAAY,EAAE,OAAO,EAAE,YAAY,CAAC,CAAA;QAC1E,MAAM,WAAW,GAAG,IAAI,kBAAW,CAAC,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAA;QAEtF,mBAAmB;QACnB,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,CAAC,CAAA;IAC/F,CAAC;IAED;;;;OAIG;IACI,kBAAkB,CAAC,YAAqC;QAC7D,OAAO,IAAA,8BAAkB,EAAC,IAAI,CAAC,OAAkB,EAAE,YAAY,CAAC,CAAA;IAClE,CAAC;CACF;AA5CD,sBA4CC;AAED,mDAAgC;AAChC,+CAA4B;AAC5B,8CAA2B;AAC3B,6CAA0B;AAC1B,0CAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { PublicClient } from 'viem';
2
+ import { AdjustTroveParams, BorrowPosition, CallParams, InterestRateBracket, OpenTroveParams, SystemParams } from '../../core/types';
3
+ export declare class BorrowService {
4
+ private contextStore;
5
+ private txService;
6
+ private approvalService;
7
+ private readService;
8
+ constructor(publicClient: PublicClient, chainId: number);
9
+ buildOpenTroveTransaction(debtTokenSymbol: string, params: OpenTroveParams): Promise<CallParams>;
10
+ buildAdjustTroveTransaction(debtTokenSymbol: string, params: AdjustTroveParams): Promise<CallParams>;
11
+ buildAdjustZombieTroveTransaction(debtTokenSymbol: string, params: AdjustTroveParams): Promise<CallParams>;
12
+ buildCloseTroveTransaction(debtTokenSymbol: string, troveId: string): Promise<CallParams>;
13
+ buildAddCollTransaction(debtTokenSymbol: string, troveId: string, amount: bigint): Promise<CallParams>;
14
+ buildWithdrawCollTransaction(debtTokenSymbol: string, troveId: string, amount: bigint): Promise<CallParams>;
15
+ buildBorrowMoreTransaction(debtTokenSymbol: string, troveId: string, amount: bigint, maxFee: bigint): Promise<CallParams>;
16
+ buildRepayDebtTransaction(debtTokenSymbol: string, troveId: string, amount: bigint): Promise<CallParams>;
17
+ buildAdjustInterestRateTransaction(debtTokenSymbol: string, troveId: string, newRate: bigint, maxFee: bigint): Promise<CallParams>;
18
+ buildClaimCollateralTransaction(debtTokenSymbol: string): Promise<CallParams>;
19
+ buildSetBatchManagerTransaction(debtTokenSymbol: string, troveId: string, manager: string, maxFee: bigint): Promise<CallParams>;
20
+ buildRemoveFromBatchTransaction(debtTokenSymbol: string, troveId: string, newRate: bigint, maxFee: bigint): Promise<CallParams>;
21
+ buildSwitchBatchManagerTransaction(debtTokenSymbol: string, troveId: string, newManager: string, maxFee: bigint): Promise<CallParams>;
22
+ buildSetInterestDelegateTransaction(debtTokenSymbol: string, troveId: string, delegate: string, minRate: bigint, maxRate: bigint, newRate: bigint, maxFee: bigint, minChangePeriod: bigint): Promise<CallParams>;
23
+ buildRemoveInterestDelegateTransaction(debtTokenSymbol: string, troveId: string): Promise<CallParams>;
24
+ buildCollateralApprovalParams(debtTokenSymbol: string, amount: bigint): Promise<CallParams>;
25
+ buildDebtApprovalParams(debtTokenSymbol: string, spender: string, amount: bigint): Promise<CallParams>;
26
+ buildGasCompensationApprovalParams(debtTokenSymbol: string, amount?: bigint): Promise<CallParams>;
27
+ getCollateralAllowance(debtTokenSymbol: string, owner: string): Promise<bigint>;
28
+ getDebtAllowance(debtTokenSymbol: string, owner: string, spender: string): Promise<bigint>;
29
+ getGasTokenAllowance(debtTokenSymbol: string, owner: string): Promise<bigint>;
30
+ getTroveData(debtTokenSymbol: string, troveId: string): Promise<BorrowPosition>;
31
+ getUserTroves(debtTokenSymbol: string, owner: string): Promise<BorrowPosition[]>;
32
+ getCollateralPrice(debtTokenSymbol: string): Promise<bigint>;
33
+ getSystemParams(debtTokenSymbol: string): Promise<SystemParams>;
34
+ isSystemShutDown(debtTokenSymbol: string): Promise<boolean>;
35
+ getBranchStats(debtTokenSymbol: string): Promise<{
36
+ totalColl: bigint;
37
+ totalDebt: bigint;
38
+ }>;
39
+ getInterestRateBrackets(debtTokenSymbol: string): Promise<InterestRateBracket[]>;
40
+ getAverageInterestRate(debtTokenSymbol: string): Promise<bigint>;
41
+ getBatchManagerInfo(debtTokenSymbol: string, address: string): Promise<{
42
+ minRate: bigint;
43
+ maxRate: bigint;
44
+ minChangePeriod: bigint;
45
+ } | null>;
46
+ predictOpenTroveUpfrontFee(debtTokenSymbol: string, amount: bigint, rate: bigint): Promise<bigint>;
47
+ predictAdjustUpfrontFee(debtTokenSymbol: string, troveId: string, debtIncrease: bigint): Promise<bigint>;
48
+ predictAdjustInterestRateUpfrontFee(debtTokenSymbol: string, troveId: string, newRate: bigint): Promise<bigint>;
49
+ predictJoinBatchUpfrontFee(debtTokenSymbol: string, troveId: string, batchAddress: string): Promise<bigint>;
50
+ getNextOwnerIndex(debtTokenSymbol: string, owner: string): Promise<number>;
51
+ private withContext;
52
+ private ensureInitialized;
53
+ }
54
+ //# sourceMappingURL=BorrowService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BorrowService.d.ts","sourceRoot":"","sources":["../../../src/services/borrow/BorrowService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BorrowService = void 0;
4
+ const borrowApprovalService_1 = require("./internal/borrowApprovalService");
5
+ const borrowContextStore_1 = require("./internal/borrowContextStore");
6
+ const borrowReadService_1 = require("./internal/borrowReadService");
7
+ const borrowTransactionService_1 = require("./internal/borrowTransactionService");
8
+ class BorrowService {
9
+ constructor(publicClient, chainId) {
10
+ this.contextStore = new borrowContextStore_1.BorrowContextStore(publicClient, chainId);
11
+ this.txService = new borrowTransactionService_1.BorrowTransactionService(publicClient);
12
+ this.approvalService = new borrowApprovalService_1.BorrowApprovalService(publicClient);
13
+ this.readService = new borrowReadService_1.BorrowReadService(publicClient);
14
+ }
15
+ buildOpenTroveTransaction(debtTokenSymbol, params) {
16
+ return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildOpenTroveTransaction(ctx, params));
17
+ }
18
+ buildAdjustTroveTransaction(debtTokenSymbol, params) {
19
+ return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildAdjustTroveTransaction(ctx, params));
20
+ }
21
+ buildAdjustZombieTroveTransaction(debtTokenSymbol, params) {
22
+ return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildAdjustZombieTroveTransaction(ctx, params));
23
+ }
24
+ buildCloseTroveTransaction(debtTokenSymbol, troveId) {
25
+ return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildCloseTroveTransaction(ctx, troveId));
26
+ }
27
+ buildAddCollTransaction(debtTokenSymbol, troveId, amount) {
28
+ return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildAddCollTransaction(ctx, troveId, amount));
29
+ }
30
+ buildWithdrawCollTransaction(debtTokenSymbol, troveId, amount) {
31
+ return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildWithdrawCollTransaction(ctx, troveId, amount));
32
+ }
33
+ buildBorrowMoreTransaction(debtTokenSymbol, troveId, amount, maxFee) {
34
+ return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildBorrowMoreTransaction(ctx, troveId, amount, maxFee));
35
+ }
36
+ buildRepayDebtTransaction(debtTokenSymbol, troveId, amount) {
37
+ return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildRepayDebtTransaction(ctx, troveId, amount));
38
+ }
39
+ buildAdjustInterestRateTransaction(debtTokenSymbol, troveId, newRate, maxFee) {
40
+ return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildAdjustInterestRateTransaction(ctx, troveId, newRate, maxFee));
41
+ }
42
+ buildClaimCollateralTransaction(debtTokenSymbol) {
43
+ return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildClaimCollateralTransaction(ctx));
44
+ }
45
+ buildSetBatchManagerTransaction(debtTokenSymbol, troveId, manager, maxFee) {
46
+ return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildSetBatchManagerTransaction(ctx, troveId, manager, maxFee));
47
+ }
48
+ buildRemoveFromBatchTransaction(debtTokenSymbol, troveId, newRate, maxFee) {
49
+ return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildRemoveFromBatchTransaction(ctx, troveId, newRate, maxFee));
50
+ }
51
+ buildSwitchBatchManagerTransaction(debtTokenSymbol, troveId, newManager, maxFee) {
52
+ return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildSwitchBatchManagerTransaction(ctx, troveId, newManager, maxFee));
53
+ }
54
+ buildSetInterestDelegateTransaction(debtTokenSymbol, troveId, delegate, minRate, maxRate, newRate, maxFee, minChangePeriod) {
55
+ return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildSetInterestDelegateTransaction(ctx, troveId, delegate, minRate, maxRate, newRate, maxFee, minChangePeriod));
56
+ }
57
+ buildRemoveInterestDelegateTransaction(debtTokenSymbol, troveId) {
58
+ return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildRemoveInterestDelegateTransaction(ctx, troveId));
59
+ }
60
+ buildCollateralApprovalParams(debtTokenSymbol, amount) {
61
+ return this.withContext(debtTokenSymbol, (ctx) => this.approvalService.buildCollateralApprovalParams(ctx, amount));
62
+ }
63
+ buildDebtApprovalParams(debtTokenSymbol, spender, amount) {
64
+ return this.withContext(debtTokenSymbol, (ctx) => this.approvalService.buildDebtApprovalParams(ctx, spender, amount));
65
+ }
66
+ buildGasCompensationApprovalParams(debtTokenSymbol, amount) {
67
+ return this.withContext(debtTokenSymbol, (ctx) => this.approvalService.buildGasCompensationApprovalParams(ctx, amount));
68
+ }
69
+ getCollateralAllowance(debtTokenSymbol, owner) {
70
+ return this.withContext(debtTokenSymbol, (ctx) => this.approvalService.getCollateralAllowance(ctx, owner));
71
+ }
72
+ getDebtAllowance(debtTokenSymbol, owner, spender) {
73
+ return this.withContext(debtTokenSymbol, (ctx) => this.approvalService.getDebtAllowance(ctx, owner, spender));
74
+ }
75
+ getGasTokenAllowance(debtTokenSymbol, owner) {
76
+ return this.withContext(debtTokenSymbol, (ctx) => this.approvalService.getGasTokenAllowance(ctx, owner));
77
+ }
78
+ getTroveData(debtTokenSymbol, troveId) {
79
+ return this.withContext(debtTokenSymbol, (ctx) => this.readService.getTroveData(ctx, troveId));
80
+ }
81
+ getUserTroves(debtTokenSymbol, owner) {
82
+ return this.withContext(debtTokenSymbol, (ctx) => this.readService.getUserTroves(ctx, owner));
83
+ }
84
+ getCollateralPrice(debtTokenSymbol) {
85
+ return this.withContext(debtTokenSymbol, (ctx) => this.readService.getCollateralPrice(ctx));
86
+ }
87
+ getSystemParams(debtTokenSymbol) {
88
+ return this.withContext(debtTokenSymbol, (ctx) => ({ ...ctx.systemParams }));
89
+ }
90
+ isSystemShutDown(debtTokenSymbol) {
91
+ return this.withContext(debtTokenSymbol, (ctx) => this.readService.isSystemShutDown(ctx));
92
+ }
93
+ getBranchStats(debtTokenSymbol) {
94
+ return this.withContext(debtTokenSymbol, (ctx) => this.readService.getBranchStats(ctx));
95
+ }
96
+ getInterestRateBrackets(debtTokenSymbol) {
97
+ return this.withContext(debtTokenSymbol, (ctx) => this.readService.getInterestRateBrackets(ctx));
98
+ }
99
+ getAverageInterestRate(debtTokenSymbol) {
100
+ return this.withContext(debtTokenSymbol, (ctx) => this.readService.getAverageInterestRate(ctx));
101
+ }
102
+ getBatchManagerInfo(debtTokenSymbol, address) {
103
+ return this.withContext(debtTokenSymbol, (ctx) => this.readService.getBatchManagerInfo(ctx, address));
104
+ }
105
+ predictOpenTroveUpfrontFee(debtTokenSymbol, amount, rate) {
106
+ return this.withContext(debtTokenSymbol, (ctx) => this.readService.predictOpenTroveUpfrontFee(ctx, amount, rate));
107
+ }
108
+ predictAdjustUpfrontFee(debtTokenSymbol, troveId, debtIncrease) {
109
+ return this.withContext(debtTokenSymbol, (ctx) => this.readService.predictAdjustUpfrontFee(ctx, troveId, debtIncrease));
110
+ }
111
+ predictAdjustInterestRateUpfrontFee(debtTokenSymbol, troveId, newRate) {
112
+ return this.withContext(debtTokenSymbol, (ctx) => this.readService.predictAdjustInterestRateUpfrontFee(ctx, troveId, newRate));
113
+ }
114
+ predictJoinBatchUpfrontFee(debtTokenSymbol, troveId, batchAddress) {
115
+ return this.withContext(debtTokenSymbol, (ctx) => this.readService.predictJoinBatchUpfrontFee(ctx, troveId, batchAddress));
116
+ }
117
+ getNextOwnerIndex(debtTokenSymbol, owner) {
118
+ return this.withContext(debtTokenSymbol, (ctx) => this.readService.getNextOwnerIndex(ctx, owner));
119
+ }
120
+ async withContext(debtTokenSymbol, callback) {
121
+ const ctx = await this.ensureInitialized(debtTokenSymbol);
122
+ return callback(ctx);
123
+ }
124
+ ensureInitialized(debtTokenSymbol) {
125
+ return this.contextStore.ensureInitialized(debtTokenSymbol);
126
+ }
127
+ }
128
+ exports.BorrowService = BorrowService;
129
+ //# sourceMappingURL=BorrowService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BorrowService.js","sourceRoot":"","sources":["../../../src/services/borrow/BorrowService.ts"],"names":[],"mappings":";;;AASA,4EAAwE;AACxE,sEAAkE;AAClE,oEAAgE;AAChE,kFAA8E;AAG9E,MAAa,aAAa;IAMxB,YACE,YAA0B,EAC1B,OAAe;QAEf,IAAI,CAAC,YAAY,GAAG,IAAI,uCAAkB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QACjE,IAAI,CAAC,SAAS,GAAG,IAAI,mDAAwB,CAAC,YAAY,CAAC,CAAA;QAC3D,IAAI,CAAC,eAAe,GAAG,IAAI,6CAAqB,CAAC,YAAY,CAAC,CAAA;QAC9D,IAAI,CAAC,WAAW,GAAG,IAAI,qCAAiB,CAAC,YAAY,CAAC,CAAA;IACxD,CAAC;IAED,yBAAyB,CAAC,eAAuB,EAAE,MAAuB;QACxE,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;IAC1G,CAAC;IAED,2BAA2B,CAAC,eAAuB,EAAE,MAAyB;QAC5E,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;IAC5G,CAAC;IAED,iCAAiC,CAC/B,eAAuB,EACvB,MAAyB;QAEzB,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAC/C,IAAI,CAAC,SAAS,CAAC,iCAAiC,CAAC,GAAG,EAAE,MAAM,CAAC,CAC9D,CAAA;IACH,CAAC;IAED,0BAA0B,CAAC,eAAuB,EAAE,OAAe;QACjE,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;IAC5G,CAAC;IAED,uBAAuB,CACrB,eAAuB,EACvB,OAAe,EACf,MAAc;QAEd,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAC/C,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAC7D,CAAA;IACH,CAAC;IAED,4BAA4B,CAC1B,eAAuB,EACvB,OAAe,EACf,MAAc;QAEd,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAC/C,IAAI,CAAC,SAAS,CAAC,4BAA4B,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAClE,CAAA;IACH,CAAC;IAED,0BAA0B,CACxB,eAAuB,EACvB,OAAe,EACf,MAAc,EACd,MAAc;QAEd,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAC/C,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CACxE,CAAA;IACH,CAAC;IAED,yBAAyB,CACvB,eAAuB,EACvB,OAAe,EACf,MAAc;QAEd,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAC/C,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAC/D,CAAA;IACH,CAAC;IAED,kCAAkC,CAChC,eAAuB,EACvB,OAAe,EACf,OAAe,EACf,MAAc;QAEd,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAC/C,IAAI,CAAC,SAAS,CAAC,kCAAkC,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CACjF,CAAA;IACH,CAAC;IAED,+BAA+B,CAAC,eAAuB;QACrD,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,+BAA+B,CAAC,GAAG,CAAC,CAAC,CAAA;IACxG,CAAC;IAED,+BAA+B,CAC7B,eAAuB,EACvB,OAAe,EACf,OAAe,EACf,MAAc;QAEd,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAC/C,IAAI,CAAC,SAAS,CAAC,+BAA+B,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAC9E,CAAA;IACH,CAAC;IAED,+BAA+B,CAC7B,eAAuB,EACvB,OAAe,EACf,OAAe,EACf,MAAc;QAEd,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAC/C,IAAI,CAAC,SAAS,CAAC,+BAA+B,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAC9E,CAAA;IACH,CAAC;IAED,kCAAkC,CAChC,eAAuB,EACvB,OAAe,EACf,UAAkB,EAClB,MAAc;QAEd,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAC/C,IAAI,CAAC,SAAS,CAAC,kCAAkC,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CACpF,CAAA;IACH,CAAC;IAED,mCAAmC,CACjC,eAAuB,EACvB,OAAe,EACf,QAAgB,EAChB,OAAe,EACf,OAAe,EACf,OAAe,EACf,MAAc,EACd,eAAuB;QAEvB,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAC/C,IAAI,CAAC,SAAS,CAAC,mCAAmC,CAChD,GAAG,EACH,OAAO,EACP,QAAQ,EACR,OAAO,EACP,OAAO,EACP,OAAO,EACP,MAAM,EACN,eAAe,CAChB,CACF,CAAA;IACH,CAAC;IAED,sCAAsC,CACpC,eAAuB,EACvB,OAAe;QAEf,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAC/C,IAAI,CAAC,SAAS,CAAC,sCAAsC,CAAC,GAAG,EAAE,OAAO,CAAC,CACpE,CAAA;IACH,CAAC;IAED,6BAA6B,CAAC,eAAuB,EAAE,MAAc;QACnE,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAC/C,IAAI,CAAC,eAAe,CAAC,6BAA6B,CAAC,GAAG,EAAE,MAAM,CAAC,CAChE,CAAA;IACH,CAAC;IAED,uBAAuB,CACrB,eAAuB,EACvB,OAAe,EACf,MAAc;QAEd,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAC/C,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CACnE,CAAA;IACH,CAAC;IAED,kCAAkC,CAChC,eAAuB,EACvB,MAAe;QAEf,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAC/C,IAAI,CAAC,eAAe,CAAC,kCAAkC,CAAC,GAAG,EAAE,MAAM,CAAC,CACrE,CAAA;IACH,CAAC;IAED,sBAAsB,CAAC,eAAuB,EAAE,KAAa;QAC3D,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;IAC5G,CAAC;IAED,gBAAgB,CAAC,eAAuB,EAAE,KAAa,EAAE,OAAe;QACtE,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAC/C,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAC3D,CAAA;IACH,CAAC;IAED,oBAAoB,CAAC,eAAuB,EAAE,KAAa;QACzD,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;IAC1G,CAAC;IAED,YAAY,CAAC,eAAuB,EAAE,OAAe;QACnD,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;IAChG,CAAC;IAED,aAAa,CAAC,eAAuB,EAAE,KAAa;QAClD,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;IAC/F,CAAC;IAED,kBAAkB,CAAC,eAAuB;QACxC,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAA;IAC7F,CAAC;IAED,eAAe,CAAC,eAAuB;QACrC,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAA;IAC9E,CAAC;IAED,gBAAgB,CAAC,eAAuB;QACtC,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAA;IAC3F,CAAC;IAED,cAAc,CAAC,eAAuB;QACpC,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAA;IACzF,CAAC;IAED,uBAAuB,CAAC,eAAuB;QAC7C,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAA;IAClG,CAAC;IAED,sBAAsB,CAAC,eAAuB;QAC5C,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAA;IACjG,CAAC;IAED,mBAAmB,CACjB,eAAuB,EACvB,OAAe;QAEf,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;IACvG,CAAC;IAED,0BAA0B,CACxB,eAAuB,EACvB,MAAc,EACd,IAAY;QAEZ,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAC/C,IAAI,CAAC,WAAW,CAAC,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAC/D,CAAA;IACH,CAAC;IAED,uBAAuB,CACrB,eAAuB,EACvB,OAAe,EACf,YAAoB;QAEpB,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAC/C,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,CACrE,CAAA;IACH,CAAC;IAED,mCAAmC,CACjC,eAAuB,EACvB,OAAe,EACf,OAAe;QAEf,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAC/C,IAAI,CAAC,WAAW,CAAC,mCAAmC,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAC5E,CAAA;IACH,CAAC;IAED,0BAA0B,CACxB,eAAuB,EACvB,OAAe,EACf,YAAoB;QAEpB,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAC/C,IAAI,CAAC,WAAW,CAAC,0BAA0B,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,CACxE,CAAA;IACH,CAAC;IAED,iBAAiB,CAAC,eAAuB,EAAE,KAAa;QACtD,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;IACnG,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,eAAuB,EACvB,QAAoD;QAEpD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAA;QACzD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAA;IACtB,CAAC;IAEO,iBAAiB,CAAC,eAAuB;QAC/C,OAAO,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAA;IAC7D,CAAC;CACF;AApSD,sCAoSC"}
@@ -0,0 +1,4 @@
1
+ export { resolveAddressesFromRegistry, readSystemParams, } from './internal/borrowRegistryReader';
2
+ export { buildErc20ApprovalParams as buildCollateralApprovalParams, readErc20Allowance as getCollateralAllowance, } from './internal/borrowErc20';
3
+ export { mapTroveStatus, parseBorrowPosition } from './internal/borrowPositionParser';
4
+ //# sourceMappingURL=borrowHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"borrowHelpers.d.ts","sourceRoot":"","sources":["../../../src/services/borrow/borrowHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,gBAAgB,GACjB,MAAM,iCAAiC,CAAA;AAExC,OAAO,EACL,wBAAwB,IAAI,6BAA6B,EACzD,kBAAkB,IAAI,sBAAsB,GAC7C,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAA"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseBorrowPosition = exports.mapTroveStatus = exports.getCollateralAllowance = exports.buildCollateralApprovalParams = exports.readSystemParams = exports.resolveAddressesFromRegistry = void 0;
4
+ var borrowRegistryReader_1 = require("./internal/borrowRegistryReader");
5
+ Object.defineProperty(exports, "resolveAddressesFromRegistry", { enumerable: true, get: function () { return borrowRegistryReader_1.resolveAddressesFromRegistry; } });
6
+ Object.defineProperty(exports, "readSystemParams", { enumerable: true, get: function () { return borrowRegistryReader_1.readSystemParams; } });
7
+ var borrowErc20_1 = require("./internal/borrowErc20");
8
+ Object.defineProperty(exports, "buildCollateralApprovalParams", { enumerable: true, get: function () { return borrowErc20_1.buildErc20ApprovalParams; } });
9
+ Object.defineProperty(exports, "getCollateralAllowance", { enumerable: true, get: function () { return borrowErc20_1.readErc20Allowance; } });
10
+ var borrowPositionParser_1 = require("./internal/borrowPositionParser");
11
+ Object.defineProperty(exports, "mapTroveStatus", { enumerable: true, get: function () { return borrowPositionParser_1.mapTroveStatus; } });
12
+ Object.defineProperty(exports, "parseBorrowPosition", { enumerable: true, get: function () { return borrowPositionParser_1.parseBorrowPosition; } });
13
+ //# sourceMappingURL=borrowHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"borrowHelpers.js","sourceRoot":"","sources":["../../../src/services/borrow/borrowHelpers.ts"],"names":[],"mappings":";;;AAAA,wEAGwC;AAFtC,oIAAA,4BAA4B,OAAA;AAC5B,wHAAA,gBAAgB,OAAA;AAGlB,sDAG+B;AAF7B,4HAAA,wBAAwB,OAAiC;AACzD,qHAAA,kBAAkB,OAA0B;AAG9C,wEAAqF;AAA5E,sHAAA,cAAc,OAAA;AAAE,2HAAA,mBAAmB,OAAA"}
@@ -0,0 +1,13 @@
1
+ import type { LoanDetails, RiskLevel } from '../../core/types';
2
+ export declare function getLtv(collateral: bigint, debt: bigint, collPrice: bigint): bigint | null;
3
+ export declare function getLiquidationPrice(collateral: bigint, debt: bigint, mcr: bigint): bigint | null;
4
+ export declare function getLiquidationRisk(ltv: bigint, maxLtv: bigint): RiskLevel;
5
+ export declare function getRedemptionRisk(debtInFront: bigint, totalDebt: bigint): RiskLevel | null;
6
+ export declare function calculateMaxDebt(collateralUsd: bigint, maxLtv: bigint): bigint;
7
+ export declare function calculateDebtSuggestions(maxDebt: bigint, minDebt: bigint): {
8
+ amount: bigint;
9
+ ltv: bigint;
10
+ risk: RiskLevel;
11
+ }[];
12
+ export declare function getLoanDetails(collateral: bigint | null, debt: bigint | null, interestRate: bigint | null, collPrice: bigint | null, mcr: bigint): LoanDetails;
13
+ //# sourceMappingURL=borrowMath.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"borrowMath.d.ts","sourceRoot":"","sources":["../../../src/services/borrow/borrowMath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAc9D,wBAAgB,MAAM,CACpB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CAIf;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GACV,MAAM,GAAG,IAAI,CAKf;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAOzE;AAED,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,SAAS,GAAG,IAAI,CAOlB;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,EAAE,CAmCpD;AAED,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,GAAG,EAAE,MAAM,GACV,WAAW,CAyDb"}
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getLtv = getLtv;
4
+ exports.getLiquidationPrice = getLiquidationPrice;
5
+ exports.getLiquidationRisk = getLiquidationRisk;
6
+ exports.getRedemptionRisk = getRedemptionRisk;
7
+ exports.calculateMaxDebt = calculateMaxDebt;
8
+ exports.calculateDebtSuggestions = calculateDebtSuggestions;
9
+ exports.getLoanDetails = getLoanDetails;
10
+ const constants_1 = require("../../core/constants");
11
+ const DECIMAL_PRECISION = 10n ** 18n;
12
+ const THOUSAND = 1000n;
13
+ const NORMALIZED_MAX_LTV = DECIMAL_PRECISION;
14
+ const DEBT_SUGGESTION_RATIOS = [300n, 600n, 800n];
15
+ function getLtv(collateral, debt, collPrice) {
16
+ const collateralUsd = (collateral * collPrice) / DECIMAL_PRECISION;
17
+ if (collateralUsd === 0n)
18
+ return null;
19
+ return (debt * DECIMAL_PRECISION) / collateralUsd;
20
+ }
21
+ function getLiquidationPrice(collateral, debt, mcr) {
22
+ if (collateral <= 0n || debt <= 0n)
23
+ return null;
24
+ if (mcr <= DECIMAL_PRECISION)
25
+ return null;
26
+ // liquidationPrice = (debt * mcr) / collateral
27
+ return (debt * mcr) / collateral;
28
+ }
29
+ function getLiquidationRisk(ltv, maxLtv) {
30
+ if (maxLtv <= 0n)
31
+ return 'low';
32
+ // Compare using cross-multiplication to avoid floor-division drift.
33
+ if (ltv * THOUSAND > maxLtv * constants_1.LTV_RISK_HIGH)
34
+ return 'high';
35
+ if (ltv * THOUSAND > maxLtv * constants_1.LTV_RISK_MEDIUM)
36
+ return 'medium';
37
+ return 'low';
38
+ }
39
+ function getRedemptionRisk(debtInFront, totalDebt) {
40
+ if (totalDebt === 0n)
41
+ return null;
42
+ // Compare using cross-multiplication to avoid floor-division drift.
43
+ if (debtInFront * THOUSAND > totalDebt * constants_1.REDEMPTION_RISK_LOW)
44
+ return 'low';
45
+ if (debtInFront * THOUSAND > totalDebt * constants_1.REDEMPTION_RISK_MEDIUM)
46
+ return 'medium';
47
+ return 'high';
48
+ }
49
+ function calculateMaxDebt(collateralUsd, maxLtv) {
50
+ return (collateralUsd * maxLtv) / DECIMAL_PRECISION;
51
+ }
52
+ function calculateDebtSuggestions(maxDebt, minDebt) {
53
+ if (maxDebt <= 0n)
54
+ return [];
55
+ const suggestions = [];
56
+ for (let i = 0; i < DEBT_SUGGESTION_RATIOS.length; i++) {
57
+ let amount = (maxDebt * DEBT_SUGGESTION_RATIOS[i]) / THOUSAND;
58
+ // Mirror frontend behavior:
59
+ // - First suggestion is clamped up to minDebt.
60
+ // - Later suggestions below minDebt are omitted.
61
+ if (amount < minDebt) {
62
+ if (i === 0) {
63
+ amount = minDebt;
64
+ }
65
+ else {
66
+ continue;
67
+ }
68
+ }
69
+ // ltv relative to maxLtv (normalized to 1e18 where 1e18 === maxLtv)
70
+ const ltv = (amount * DECIMAL_PRECISION) / maxDebt;
71
+ // Hide suggestions that exceed maxLtv.
72
+ if (ltv > NORMALIZED_MAX_LTV) {
73
+ continue;
74
+ }
75
+ suggestions.push({
76
+ amount,
77
+ ltv,
78
+ risk: getLiquidationRisk(ltv, NORMALIZED_MAX_LTV),
79
+ });
80
+ }
81
+ return suggestions;
82
+ }
83
+ function getLoanDetails(collateral, debt, interestRate, collPrice, mcr) {
84
+ // maxLtv = 1 / MCR (MCR is e.g. 1.1e18 meaning 110%)
85
+ const maxLtv = (DECIMAL_PRECISION * DECIMAL_PRECISION) / mcr;
86
+ // maxLtvAllowed = maxLtv * MAX_LTV_ALLOWED_RATIO / 1000
87
+ const maxLtvAllowed = (maxLtv * constants_1.MAX_LTV_ALLOWED_RATIO) / THOUSAND;
88
+ const collateralUsd = collateral !== null && collPrice !== null
89
+ ? (collateral * collPrice) / DECIMAL_PRECISION
90
+ : null;
91
+ const ltv = debt !== null && collateralUsd !== null && collateralUsd > 0n
92
+ ? (debt * DECIMAL_PRECISION) / collateralUsd
93
+ : collateral !== null && collateral < 0n
94
+ ? DECIMAL_PRECISION
95
+ : null;
96
+ const status = ltv === null
97
+ ? null
98
+ : collateral !== null && (collateral < 0n || ltv > DECIMAL_PRECISION)
99
+ ? 'underwater'
100
+ : ltv > maxLtv
101
+ ? 'liquidatable'
102
+ : ltv > maxLtvAllowed
103
+ ? 'at-risk'
104
+ : 'healthy';
105
+ const maxDebt = collateralUsd !== null ? calculateMaxDebt(collateralUsd, maxLtv) : null;
106
+ const maxDebtAllowed = collateralUsd !== null && collateralUsd > 0n
107
+ ? (collateralUsd * maxLtvAllowed) / DECIMAL_PRECISION
108
+ : null;
109
+ const liquidationRisk = ltv !== null ? getLiquidationRisk(ltv, maxLtv) : null;
110
+ const liquidationPrice = collateral !== null && debt !== null && collateral > 0n
111
+ ? getLiquidationPrice(collateral, debt, mcr)
112
+ : null;
113
+ return {
114
+ collateral,
115
+ collateralUsd,
116
+ collPrice,
117
+ debt,
118
+ interestRate,
119
+ ltv,
120
+ maxLtv,
121
+ maxLtvAllowed,
122
+ liquidationPrice,
123
+ liquidationRisk,
124
+ maxDebt,
125
+ maxDebtAllowed,
126
+ status,
127
+ };
128
+ }
129
+ //# sourceMappingURL=borrowMath.js.map