@mento-protocol/mento-sdk 3.2.2-beta1 → 3.2.3

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 (397) hide show
  1. package/dist/cjs/ChainClient.d.ts +9 -0
  2. package/dist/cjs/ChainClient.js +58 -0
  3. package/dist/cjs/TestChainClient.d.ts +7 -0
  4. package/dist/cjs/TestChainClient.js +41 -0
  5. package/dist/cjs/constants/addresses.d.ts +4 -0
  6. package/dist/cjs/constants/addresses.js +59 -0
  7. package/dist/cjs/constants/currencies.d.ts +5 -0
  8. package/dist/cjs/constants/currencies.js +29 -0
  9. package/dist/cjs/constants/index.d.ts +4 -0
  10. package/dist/{services/borrow → cjs/constants}/index.js +4 -4
  11. package/dist/cjs/constants/tokens.11142220.d.ts +2 -0
  12. package/dist/cjs/constants/tokens.11142220.js +128 -0
  13. package/dist/cjs/constants/tokens.42220.d.ts +2 -0
  14. package/dist/cjs/constants/tokens.42220.js +128 -0
  15. package/dist/cjs/constants/tokens.d.ts +65 -0
  16. package/dist/cjs/constants/tokens.js +170 -0
  17. package/dist/cjs/constants/tradablePairs.11142220.d.ts +2 -0
  18. package/dist/cjs/constants/tradablePairs.11142220.js +7391 -0
  19. package/dist/cjs/constants/tradablePairs.42220.d.ts +2 -0
  20. package/dist/cjs/constants/tradablePairs.42220.js +7391 -0
  21. package/dist/cjs/constants/tradablePairs.d.ts +16 -0
  22. package/dist/cjs/constants/tradablePairs.js +53 -0
  23. package/dist/cjs/enums/chainId.d.ts +4 -0
  24. package/dist/{core/constants → cjs/enums}/chainId.js +1 -4
  25. package/dist/cjs/enums/index.d.ts +3 -0
  26. package/dist/{services/liquidity → cjs/enums}/index.js +3 -2
  27. package/dist/cjs/enums/proposalState.d.ts +10 -0
  28. package/dist/cjs/enums/proposalState.js +14 -0
  29. package/dist/cjs/enums/tradingMode.d.ts +17 -0
  30. package/dist/cjs/enums/tradingMode.js +21 -0
  31. package/dist/cjs/governance.d.ts +62 -0
  32. package/dist/cjs/governance.js +151 -0
  33. package/dist/cjs/index.d.ts +7 -0
  34. package/dist/{core/constants → cjs}/index.js +7 -6
  35. package/dist/cjs/interfaces/IChainClient.d.ts +6 -0
  36. package/dist/{core/types/route.js → cjs/interfaces/IChainClient.js} +0 -1
  37. package/dist/cjs/interfaces/index.d.ts +4 -0
  38. package/dist/{core/errors → cjs/interfaces}/index.js +4 -4
  39. package/dist/cjs/interfaces/tradingLimit.d.ts +7 -0
  40. package/dist/{core/types/token.js → cjs/interfaces/tradingLimit.js} +0 -1
  41. package/dist/cjs/interfaces/tradingLimitsConfig.d.ts +10 -0
  42. package/dist/{core/types/borrow.js → cjs/interfaces/tradingLimitsConfig.js} +0 -1
  43. package/dist/cjs/interfaces/tradingLimitsState.d.ts +9 -0
  44. package/dist/{core/types/provider.js → cjs/interfaces/tradingLimitsState.js} +0 -1
  45. package/dist/cjs/limits.d.ts +33 -0
  46. package/dist/cjs/limits.js +130 -0
  47. package/dist/cjs/mento.d.ts +287 -0
  48. package/dist/cjs/mento.js +699 -0
  49. package/dist/{utils → cjs}/routeUtils.d.ts +93 -84
  50. package/dist/{utils → cjs}/routeUtils.js +124 -123
  51. package/dist/cjs/types/contractAddressMap.d.ts +4 -0
  52. package/dist/cjs/types/contractAddressMap.js +2 -0
  53. package/dist/cjs/types/contractAddresses.d.ts +23 -0
  54. package/dist/cjs/types/contractAddresses.js +2 -0
  55. package/dist/cjs/types/index.d.ts +2 -0
  56. package/dist/{services/pools → cjs/types}/index.js +2 -2
  57. package/dist/cjs/utils.d.ts +80 -0
  58. package/dist/cjs/utils.js +177 -0
  59. package/dist/esm/ChainClient.d.ts +9 -0
  60. package/dist/esm/ChainClient.js +54 -0
  61. package/dist/esm/TestChainClient.d.ts +7 -0
  62. package/dist/esm/TestChainClient.js +37 -0
  63. package/dist/esm/constants/addresses.d.ts +4 -0
  64. package/dist/esm/constants/addresses.js +55 -0
  65. package/dist/esm/constants/currencies.d.ts +5 -0
  66. package/dist/esm/constants/currencies.js +26 -0
  67. package/dist/esm/constants/index.d.ts +4 -0
  68. package/dist/esm/constants/index.js +4 -0
  69. package/dist/esm/constants/tokens.11142220.d.ts +2 -0
  70. package/dist/esm/constants/tokens.11142220.js +125 -0
  71. package/dist/esm/constants/tokens.42220.d.ts +2 -0
  72. package/dist/esm/constants/tokens.42220.js +125 -0
  73. package/dist/esm/constants/tokens.d.ts +65 -0
  74. package/dist/esm/constants/tokens.js +142 -0
  75. package/dist/esm/constants/tradablePairs.11142220.d.ts +2 -0
  76. package/dist/esm/constants/tradablePairs.11142220.js +7388 -0
  77. package/dist/esm/constants/tradablePairs.42220.d.ts +2 -0
  78. package/dist/esm/constants/tradablePairs.42220.js +7388 -0
  79. package/dist/esm/constants/tradablePairs.d.ts +16 -0
  80. package/dist/esm/constants/tradablePairs.js +26 -0
  81. package/dist/esm/enums/chainId.d.ts +4 -0
  82. package/dist/esm/{core/constants → enums}/chainId.js +0 -2
  83. package/dist/esm/enums/index.d.ts +3 -0
  84. package/dist/esm/enums/index.js +3 -0
  85. package/dist/esm/enums/proposalState.d.ts +10 -0
  86. package/dist/esm/enums/proposalState.js +11 -0
  87. package/dist/esm/enums/tradingMode.d.ts +17 -0
  88. package/dist/esm/enums/tradingMode.js +18 -0
  89. package/dist/esm/governance.d.ts +62 -0
  90. package/dist/esm/governance.js +147 -0
  91. package/dist/esm/index.d.ts +7 -0
  92. package/dist/esm/index.js +6 -138
  93. package/dist/esm/interfaces/IChainClient.d.ts +6 -0
  94. package/dist/esm/interfaces/index.d.ts +4 -0
  95. package/dist/esm/interfaces/index.js +4 -0
  96. package/dist/esm/interfaces/tradingLimit.d.ts +7 -0
  97. package/dist/esm/interfaces/tradingLimitsConfig.d.ts +10 -0
  98. package/dist/esm/interfaces/tradingLimitsState.d.ts +9 -0
  99. package/dist/esm/limits.d.ts +33 -0
  100. package/dist/esm/limits.js +123 -0
  101. package/dist/esm/mento.d.ts +287 -0
  102. package/dist/esm/mento.js +671 -0
  103. package/dist/esm/routeUtils.d.ts +304 -0
  104. package/dist/esm/{utils/routeUtils.js → routeUtils.js} +116 -115
  105. package/dist/esm/types/contractAddressMap.d.ts +4 -0
  106. package/dist/esm/types/contractAddresses.d.ts +23 -0
  107. package/dist/esm/types/index.d.ts +2 -0
  108. package/dist/esm/types/index.js +2 -0
  109. package/dist/esm/utils.d.ts +80 -0
  110. package/dist/esm/utils.js +162 -0
  111. package/package.json +1 -1
  112. package/dist/cache/routes.d.ts +0 -13
  113. package/dist/cache/routes.js +0 -13733
  114. package/dist/cache/tokens.d.ts +0 -68
  115. package/dist/cache/tokens.js +0 -446
  116. package/dist/core/abis/activePool.d.ts +0 -2
  117. package/dist/core/abis/activePool.js +0 -14
  118. package/dist/core/abis/addressesRegistry.d.ts +0 -2
  119. package/dist/core/abis/addressesRegistry.js +0 -26
  120. package/dist/core/abis/bipoolmanager.d.ts +0 -34
  121. package/dist/core/abis/bipoolmanager.js +0 -72
  122. package/dist/core/abis/borrowerOperations.d.ts +0 -9
  123. package/dist/core/abis/borrowerOperations.js +0 -89
  124. package/dist/core/abis/breakerbox.d.ts +0 -13
  125. package/dist/core/abis/breakerbox.js +0 -8
  126. package/dist/core/abis/broker.d.ts +0 -2
  127. package/dist/core/abis/broker.js +0 -9
  128. package/dist/core/abis/erc20.d.ts +0 -9
  129. package/dist/core/abis/erc20.js +0 -21
  130. package/dist/core/abis/fpmm.d.ts +0 -270
  131. package/dist/core/abis/fpmm.js +0 -49
  132. package/dist/core/abis/fpmmFactory.d.ts +0 -85
  133. package/dist/core/abis/fpmmFactory.js +0 -26
  134. package/dist/core/abis/hintHelpers.d.ts +0 -2
  135. package/dist/core/abis/hintHelpers.js +0 -14
  136. package/dist/core/abis/index.d.ts +0 -22
  137. package/dist/core/abis/index.js +0 -38
  138. package/dist/core/abis/liquidityStrategy.d.ts +0 -132
  139. package/dist/core/abis/liquidityStrategy.js +0 -10
  140. package/dist/core/abis/multiTroveGetter.d.ts +0 -8
  141. package/dist/core/abis/multiTroveGetter.js +0 -15
  142. package/dist/core/abis/priceFeed.d.ts +0 -7
  143. package/dist/core/abis/priceFeed.js +0 -16
  144. package/dist/core/abis/pricingmodule.d.ts +0 -2
  145. package/dist/core/abis/pricingmodule.js +0 -6
  146. package/dist/core/abis/reserve.d.ts +0 -3
  147. package/dist/core/abis/reserve.js +0 -18
  148. package/dist/core/abis/router.d.ts +0 -521
  149. package/dist/core/abis/router.js +0 -45
  150. package/dist/core/abis/sortedTroves.d.ts +0 -2
  151. package/dist/core/abis/sortedTroves.js +0 -15
  152. package/dist/core/abis/systemParams.d.ts +0 -2
  153. package/dist/core/abis/systemParams.js +0 -14
  154. package/dist/core/abis/troveManager.d.ts +0 -2
  155. package/dist/core/abis/troveManager.js +0 -27
  156. package/dist/core/abis/troveNFT.d.ts +0 -2
  157. package/dist/core/abis/troveNFT.js +0 -9
  158. package/dist/core/abis/virtualPool.d.ts +0 -50
  159. package/dist/core/abis/virtualPool.js +0 -11
  160. package/dist/core/abis/virtualPoolFactory.d.ts +0 -59
  161. package/dist/core/abis/virtualPoolFactory.js +0 -17
  162. package/dist/core/constants/addresses.d.ts +0 -18
  163. package/dist/core/constants/addresses.js +0 -113
  164. package/dist/core/constants/borrowConstants.d.ts +0 -10
  165. package/dist/core/constants/borrowConstants.js +0 -16
  166. package/dist/core/constants/borrowRegistries.d.ts +0 -7
  167. package/dist/core/constants/borrowRegistries.js +0 -30
  168. package/dist/core/constants/chainId.d.ts +0 -7
  169. package/dist/core/constants/contractNames.d.ts +0 -21
  170. package/dist/core/constants/contractNames.js +0 -24
  171. package/dist/core/constants/index.d.ts +0 -6
  172. package/dist/core/errors/base.d.ts +0 -8
  173. package/dist/core/errors/base.js +0 -17
  174. package/dist/core/errors/index.d.ts +0 -4
  175. package/dist/core/errors/oracle.d.ts +0 -9
  176. package/dist/core/errors/oracle.js +0 -15
  177. package/dist/core/errors/router.d.ts +0 -14
  178. package/dist/core/errors/router.js +0 -24
  179. package/dist/core/types/borrow.d.ts +0 -87
  180. package/dist/core/types/contractAddresses.d.ts +0 -42
  181. package/dist/core/types/contractAddresses.js +0 -3
  182. package/dist/core/types/index.d.ts +0 -10
  183. package/dist/core/types/index.js +0 -26
  184. package/dist/core/types/liquidity.d.ts +0 -194
  185. package/dist/core/types/liquidity.js +0 -3
  186. package/dist/core/types/pool.d.ts +0 -208
  187. package/dist/core/types/pool.js +0 -14
  188. package/dist/core/types/provider.d.ts +0 -45
  189. package/dist/core/types/route.d.ts +0 -62
  190. package/dist/core/types/token.d.ts +0 -21
  191. package/dist/core/types/tradingLimits.d.ts +0 -91
  192. package/dist/core/types/tradingLimits.js +0 -3
  193. package/dist/core/types/tradingMode.d.ts +0 -24
  194. package/dist/core/types/tradingMode.js +0 -31
  195. package/dist/core/types/transaction.d.ts +0 -45
  196. package/dist/core/types/transaction.js +0 -3
  197. package/dist/esm/cache/routes.js +0 -13728
  198. package/dist/esm/cache/tokens.js +0 -438
  199. package/dist/esm/core/abis/activePool.js +0 -10
  200. package/dist/esm/core/abis/addressesRegistry.js +0 -22
  201. package/dist/esm/core/abis/bipoolmanager.js +0 -68
  202. package/dist/esm/core/abis/borrowerOperations.js +0 -85
  203. package/dist/esm/core/abis/breakerbox.js +0 -4
  204. package/dist/esm/core/abis/broker.js +0 -5
  205. package/dist/esm/core/abis/erc20.js +0 -17
  206. package/dist/esm/core/abis/fpmm.js +0 -45
  207. package/dist/esm/core/abis/fpmmFactory.js +0 -22
  208. package/dist/esm/core/abis/hintHelpers.js +0 -10
  209. package/dist/esm/core/abis/index.js +0 -21
  210. package/dist/esm/core/abis/liquidityStrategy.js +0 -6
  211. package/dist/esm/core/abis/multiTroveGetter.js +0 -11
  212. package/dist/esm/core/abis/priceFeed.js +0 -12
  213. package/dist/esm/core/abis/pricingmodule.js +0 -2
  214. package/dist/esm/core/abis/reserve.js +0 -14
  215. package/dist/esm/core/abis/router.js +0 -41
  216. package/dist/esm/core/abis/sortedTroves.js +0 -11
  217. package/dist/esm/core/abis/systemParams.js +0 -10
  218. package/dist/esm/core/abis/troveManager.js +0 -23
  219. package/dist/esm/core/abis/troveNFT.js +0 -5
  220. package/dist/esm/core/abis/virtualPool.js +0 -7
  221. package/dist/esm/core/abis/virtualPoolFactory.js +0 -13
  222. package/dist/esm/core/constants/addresses.js +0 -107
  223. package/dist/esm/core/constants/borrowConstants.js +0 -12
  224. package/dist/esm/core/constants/borrowRegistries.js +0 -25
  225. package/dist/esm/core/constants/contractNames.js +0 -20
  226. package/dist/esm/core/constants/index.js +0 -5
  227. package/dist/esm/core/errors/base.js +0 -12
  228. package/dist/esm/core/errors/index.js +0 -3
  229. package/dist/esm/core/errors/oracle.js +0 -10
  230. package/dist/esm/core/errors/router.js +0 -18
  231. package/dist/esm/core/types/index.js +0 -9
  232. package/dist/esm/core/types/pool.js +0 -10
  233. package/dist/esm/core/types/tradingLimits.js +0 -1
  234. package/dist/esm/core/types/tradingMode.js +0 -26
  235. package/dist/esm/core/types/transaction.js +0 -1
  236. package/dist/esm/package.json +0 -1
  237. package/dist/esm/services/borrow/BorrowService.js +0 -455
  238. package/dist/esm/services/borrow/borrowHelpers.js +0 -3
  239. package/dist/esm/services/borrow/borrowMath.js +0 -127
  240. package/dist/esm/services/borrow/index.js +0 -3
  241. package/dist/esm/services/borrow/internal/borrowApprovalService.js +0 -48
  242. package/dist/esm/services/borrow/internal/borrowContextStore.js +0 -35
  243. package/dist/esm/services/borrow/internal/borrowErc20.js +0 -38
  244. package/dist/esm/services/borrow/internal/borrowHints.js +0 -27
  245. package/dist/esm/services/borrow/internal/borrowPositionParser.js +0 -82
  246. package/dist/esm/services/borrow/internal/borrowReadService.js +0 -271
  247. package/dist/esm/services/borrow/internal/borrowRegistryReader.js +0 -108
  248. package/dist/esm/services/borrow/internal/borrowTransactionService.js +0 -271
  249. package/dist/esm/services/borrow/internal/borrowTypes.js +0 -1
  250. package/dist/esm/services/borrow/internal/borrowValidation.js +0 -89
  251. package/dist/esm/services/index.js +0 -8
  252. package/dist/esm/services/liquidity/LiquidityService.js +0 -163
  253. package/dist/esm/services/liquidity/basicLiquidity.js +0 -162
  254. package/dist/esm/services/liquidity/index.js +0 -1
  255. package/dist/esm/services/liquidity/liquidityHelpers.js +0 -95
  256. package/dist/esm/services/liquidity/rebalance.js +0 -59
  257. package/dist/esm/services/liquidity/zapHelpers.js +0 -120
  258. package/dist/esm/services/liquidity/zapIn.js +0 -112
  259. package/dist/esm/services/liquidity/zapOut.js +0 -248
  260. package/dist/esm/services/pools/PoolService.js +0 -204
  261. package/dist/esm/services/pools/index.js +0 -1
  262. package/dist/esm/services/pools/poolDetails.js +0 -209
  263. package/dist/esm/services/pools/poolDiscovery.js +0 -112
  264. package/dist/esm/services/pools/rebalancePreview.js +0 -181
  265. package/dist/esm/services/quotes/QuoteService.js +0 -85
  266. package/dist/esm/services/quotes/index.js +0 -1
  267. package/dist/esm/services/routes/RouteService.js +0 -268
  268. package/dist/esm/services/routes/index.js +0 -1
  269. package/dist/esm/services/swap/SwapService.js +0 -247
  270. package/dist/esm/services/swap/index.js +0 -1
  271. package/dist/esm/services/tokens/index.js +0 -1
  272. package/dist/esm/services/tokens/tokenService.js +0 -285
  273. package/dist/esm/services/trading/TradingLimitsService.js +0 -154
  274. package/dist/esm/services/trading/TradingService.js +0 -196
  275. package/dist/esm/services/trading/index.js +0 -2
  276. package/dist/esm/utils/chainConfig.js +0 -118
  277. package/dist/esm/utils/costUtils.js +0 -56
  278. package/dist/esm/utils/deadline.js +0 -22
  279. package/dist/esm/utils/index.js +0 -9
  280. package/dist/esm/utils/multicall.js +0 -47
  281. package/dist/esm/utils/pathEncoder.js +0 -69
  282. package/dist/esm/utils/rateFeed.js +0 -23
  283. package/dist/esm/utils/retry.js +0 -24
  284. package/dist/esm/utils/routes.js +0 -2
  285. package/dist/esm/utils/sortUtils.js +0 -33
  286. package/dist/esm/utils/tokens.js +0 -2
  287. package/dist/esm/utils/tradingLimits.js +0 -163
  288. package/dist/esm/utils/validation.js +0 -30
  289. package/dist/index.d.ts +0 -101
  290. package/dist/index.js +0 -158
  291. package/dist/services/borrow/BorrowService.d.ts +0 -381
  292. package/dist/services/borrow/BorrowService.js +0 -460
  293. package/dist/services/borrow/borrowHelpers.d.ts +0 -4
  294. package/dist/services/borrow/borrowHelpers.js +0 -13
  295. package/dist/services/borrow/borrowMath.d.ts +0 -21
  296. package/dist/services/borrow/borrowMath.js +0 -137
  297. package/dist/services/borrow/index.d.ts +0 -4
  298. package/dist/services/borrow/internal/borrowApprovalService.d.ts +0 -14
  299. package/dist/services/borrow/internal/borrowApprovalService.js +0 -53
  300. package/dist/services/borrow/internal/borrowContextStore.d.ts +0 -11
  301. package/dist/services/borrow/internal/borrowContextStore.js +0 -40
  302. package/dist/services/borrow/internal/borrowErc20.d.ts +0 -5
  303. package/dist/services/borrow/internal/borrowErc20.js +0 -43
  304. package/dist/services/borrow/internal/borrowHints.d.ts +0 -7
  305. package/dist/services/borrow/internal/borrowHints.js +0 -31
  306. package/dist/services/borrow/internal/borrowPositionParser.d.ts +0 -4
  307. package/dist/services/borrow/internal/borrowPositionParser.js +0 -87
  308. package/dist/services/borrow/internal/borrowReadService.d.ts +0 -31
  309. package/dist/services/borrow/internal/borrowReadService.js +0 -276
  310. package/dist/services/borrow/internal/borrowRegistryReader.d.ts +0 -5
  311. package/dist/services/borrow/internal/borrowRegistryReader.js +0 -113
  312. package/dist/services/borrow/internal/borrowTransactionService.d.ts +0 -23
  313. package/dist/services/borrow/internal/borrowTransactionService.js +0 -276
  314. package/dist/services/borrow/internal/borrowTypes.d.ts +0 -15
  315. package/dist/services/borrow/internal/borrowTypes.js +0 -3
  316. package/dist/services/borrow/internal/borrowValidation.d.ts +0 -14
  317. package/dist/services/borrow/internal/borrowValidation.js +0 -104
  318. package/dist/services/index.d.ts +0 -9
  319. package/dist/services/index.js +0 -25
  320. package/dist/services/liquidity/LiquidityService.d.ts +0 -139
  321. package/dist/services/liquidity/LiquidityService.js +0 -168
  322. package/dist/services/liquidity/basicLiquidity.d.ts +0 -11
  323. package/dist/services/liquidity/basicLiquidity.js +0 -172
  324. package/dist/services/liquidity/index.d.ts +0 -2
  325. package/dist/services/liquidity/liquidityHelpers.d.ts +0 -19
  326. package/dist/services/liquidity/liquidityHelpers.js +0 -104
  327. package/dist/services/liquidity/rebalance.d.ts +0 -6
  328. package/dist/services/liquidity/rebalance.js +0 -64
  329. package/dist/services/liquidity/zapHelpers.d.ts +0 -66
  330. package/dist/services/liquidity/zapHelpers.js +0 -129
  331. package/dist/services/liquidity/zapIn.d.ts +0 -18
  332. package/dist/services/liquidity/zapIn.js +0 -119
  333. package/dist/services/liquidity/zapOut.d.ts +0 -9
  334. package/dist/services/liquidity/zapOut.js +0 -255
  335. package/dist/services/pools/PoolService.d.ts +0 -69
  336. package/dist/services/pools/PoolService.js +0 -209
  337. package/dist/services/pools/index.d.ts +0 -2
  338. package/dist/services/pools/poolDetails.d.ts +0 -13
  339. package/dist/services/pools/poolDetails.js +0 -216
  340. package/dist/services/pools/poolDiscovery.d.ts +0 -12
  341. package/dist/services/pools/poolDiscovery.js +0 -117
  342. package/dist/services/pools/rebalancePreview.d.ts +0 -5
  343. package/dist/services/pools/rebalancePreview.js +0 -186
  344. package/dist/services/quotes/QuoteService.d.ts +0 -51
  345. package/dist/services/quotes/QuoteService.js +0 -91
  346. package/dist/services/quotes/index.d.ts +0 -2
  347. package/dist/services/quotes/index.js +0 -18
  348. package/dist/services/routes/RouteService.d.ts +0 -117
  349. package/dist/services/routes/RouteService.js +0 -306
  350. package/dist/services/routes/index.d.ts +0 -2
  351. package/dist/services/routes/index.js +0 -18
  352. package/dist/services/swap/SwapService.d.ts +0 -198
  353. package/dist/services/swap/SwapService.js +0 -252
  354. package/dist/services/swap/index.d.ts +0 -2
  355. package/dist/services/swap/index.js +0 -18
  356. package/dist/services/tokens/index.d.ts +0 -2
  357. package/dist/services/tokens/index.js +0 -18
  358. package/dist/services/tokens/tokenService.d.ts +0 -55
  359. package/dist/services/tokens/tokenService.js +0 -290
  360. package/dist/services/trading/TradingLimitsService.d.ts +0 -38
  361. package/dist/services/trading/TradingLimitsService.js +0 -159
  362. package/dist/services/trading/TradingService.d.ts +0 -113
  363. package/dist/services/trading/TradingService.js +0 -201
  364. package/dist/services/trading/index.d.ts +0 -3
  365. package/dist/services/trading/index.js +0 -19
  366. package/dist/utils/chainConfig.d.ts +0 -16
  367. package/dist/utils/chainConfig.js +0 -123
  368. package/dist/utils/costUtils.d.ts +0 -12
  369. package/dist/utils/costUtils.js +0 -60
  370. package/dist/utils/deadline.d.ts +0 -21
  371. package/dist/utils/deadline.js +0 -26
  372. package/dist/utils/index.d.ts +0 -10
  373. package/dist/utils/index.js +0 -26
  374. package/dist/utils/multicall.d.ts +0 -30
  375. package/dist/utils/multicall.js +0 -52
  376. package/dist/utils/pathEncoder.d.ts +0 -34
  377. package/dist/utils/pathEncoder.js +0 -73
  378. package/dist/utils/rateFeed.d.ts +0 -18
  379. package/dist/utils/rateFeed.js +0 -27
  380. package/dist/utils/retry.d.ts +0 -12
  381. package/dist/utils/retry.js +0 -28
  382. package/dist/utils/routes.d.ts +0 -3
  383. package/dist/utils/routes.js +0 -8
  384. package/dist/utils/sortUtils.d.ts +0 -24
  385. package/dist/utils/sortUtils.js +0 -39
  386. package/dist/utils/tokens.d.ts +0 -2
  387. package/dist/utils/tokens.js +0 -13
  388. package/dist/utils/tradingLimits.d.ts +0 -41
  389. package/dist/utils/tradingLimits.js +0 -171
  390. package/dist/utils/validation.d.ts +0 -19
  391. package/dist/utils/validation.js +0 -34
  392. /package/dist/esm/{core/types/borrow.js → interfaces/IChainClient.js} +0 -0
  393. /package/dist/esm/{core/types/contractAddresses.js → interfaces/tradingLimit.js} +0 -0
  394. /package/dist/esm/{core/types/liquidity.js → interfaces/tradingLimitsConfig.js} +0 -0
  395. /package/dist/esm/{core/types/provider.js → interfaces/tradingLimitsState.js} +0 -0
  396. /package/dist/esm/{core/types/route.js → types/contractAddressMap.js} +0 -0
  397. /package/dist/esm/{core/types/token.js → types/contractAddresses.js} +0 -0
@@ -1,38 +0,0 @@
1
- import { encodeFunctionData } from 'viem';
2
- import { ERC20_ABI } from '../../../core/abis';
3
- import { validateAddress } from '../../../utils/validation';
4
- const ZERO_VALUE = '0';
5
- function requireBigInt(value, fieldName) {
6
- if (typeof value !== 'bigint') {
7
- throw new Error(`${fieldName} must be a bigint`);
8
- }
9
- if (value < 0n) {
10
- throw new Error(`${fieldName} cannot be negative`);
11
- }
12
- return value;
13
- }
14
- export function buildErc20ApprovalParams(token, spender, amount) {
15
- validateAddress(token, 'token');
16
- validateAddress(spender, 'spender');
17
- if (amount < 0n) {
18
- throw new Error('Approval amount cannot be negative');
19
- }
20
- const data = encodeFunctionData({
21
- abi: ERC20_ABI,
22
- functionName: 'approve',
23
- args: [spender, amount],
24
- });
25
- return { to: token, data, value: ZERO_VALUE };
26
- }
27
- export async function readErc20Allowance(publicClient, token, owner, spender) {
28
- validateAddress(token, 'token');
29
- validateAddress(owner, 'owner');
30
- validateAddress(spender, 'spender');
31
- const allowanceRaw = await publicClient.readContract({
32
- address: token,
33
- abi: ERC20_ABI,
34
- functionName: 'allowance',
35
- args: [owner, spender],
36
- });
37
- return requireBigInt(allowanceRaw, 'allowance');
38
- }
@@ -1,27 +0,0 @@
1
- import { HINT_HELPERS_ABI, SORTED_TROVES_ABI } from '../../../core/abis';
2
- import { COLL_INDEX } from '../../../core/constants';
3
- import { ceilSqrt, requireNonNegativeBigInt } from './borrowValidation';
4
- export async function getTroveOperationHints(publicClient, ctx, interestRate) {
5
- const annualInterestRate = requireNonNegativeBigInt(interestRate, 'interestRate');
6
- const troveCount = (await publicClient.readContract({
7
- address: ctx.addresses.sortedTroves,
8
- abi: SORTED_TROVES_ABI,
9
- functionName: 'getSize',
10
- args: [],
11
- }));
12
- const sqrtCount = ceilSqrt(troveCount);
13
- const numTrials = 10n * (sqrtCount > 0n ? sqrtCount : 1n);
14
- const [approxHint] = (await publicClient.readContract({
15
- address: ctx.addresses.hintHelpers,
16
- abi: HINT_HELPERS_ABI,
17
- functionName: 'getApproxHint',
18
- args: [COLL_INDEX, annualInterestRate, numTrials, 42n],
19
- }));
20
- const [upperHint, lowerHint] = (await publicClient.readContract({
21
- address: ctx.addresses.sortedTroves,
22
- abi: SORTED_TROVES_ABI,
23
- functionName: 'findInsertPosition',
24
- args: [annualInterestRate, approxHint, approxHint],
25
- }));
26
- return { upper: upperHint, lower: lowerHint };
27
- }
@@ -1,82 +0,0 @@
1
- import { zeroAddress } from 'viem';
2
- import { validateAddress } from '../../../utils/validation';
3
- const MAX_SAFE_INTEGER_BIGINT = BigInt(Number.MAX_SAFE_INTEGER);
4
- function requireAddress(value, fieldName) {
5
- if (typeof value !== 'string') {
6
- throw new Error(`${fieldName} must be a string address`);
7
- }
8
- validateAddress(value, fieldName);
9
- return value;
10
- }
11
- function requireBigInt(value, fieldName) {
12
- if (typeof value !== 'bigint') {
13
- throw new Error(`${fieldName} must be a bigint`);
14
- }
15
- if (value < 0n) {
16
- throw new Error(`${fieldName} cannot be negative`);
17
- }
18
- return value;
19
- }
20
- function requireNonNegativeInteger(value, fieldName) {
21
- if (typeof value === 'bigint') {
22
- if (value < 0n) {
23
- throw new Error(`${fieldName} cannot be negative`);
24
- }
25
- if (value > MAX_SAFE_INTEGER_BIGINT) {
26
- throw new Error(`${fieldName} exceeds Number.MAX_SAFE_INTEGER`);
27
- }
28
- return Number(value);
29
- }
30
- if (typeof value === 'number') {
31
- if (!Number.isSafeInteger(value)) {
32
- throw new Error(`${fieldName} must be a safe integer`);
33
- }
34
- if (value < 0) {
35
- throw new Error(`${fieldName} cannot be negative`);
36
- }
37
- return value;
38
- }
39
- throw new Error(`${fieldName} must be a number or bigint`);
40
- }
41
- export function mapTroveStatus(statusNum) {
42
- if (!Number.isSafeInteger(statusNum) || statusNum < 0) {
43
- throw new Error(`Invalid trove status: ${statusNum}`);
44
- }
45
- switch (statusNum) {
46
- case 0:
47
- return 'nonExistent';
48
- case 1:
49
- return 'active';
50
- case 2:
51
- return 'closedByOwner';
52
- case 3:
53
- return 'closedByLiquidation';
54
- case 4:
55
- return 'zombie';
56
- default:
57
- throw new Error(`Unknown trove status: ${statusNum}`);
58
- }
59
- }
60
- export function parseBorrowPosition(troveId, latestData, trovesData) {
61
- if (typeof troveId !== 'string' || troveId.length === 0) {
62
- throw new Error('troveId must be a non-empty string');
63
- }
64
- const latest = latestData;
65
- const trove = trovesData;
66
- const interestBatchManager = requireAddress(trove.interestBatchManager, 'trovesData.interestBatchManager');
67
- return {
68
- troveId,
69
- collateral: requireBigInt(latest.entireColl, 'latestData.entireColl'),
70
- debt: requireBigInt(latest.entireDebt, 'latestData.entireDebt'),
71
- annualInterestRate: requireBigInt(latest.annualInterestRate, 'latestData.annualInterestRate'),
72
- status: mapTroveStatus(requireNonNegativeInteger(trove.status, 'trovesData.status')),
73
- interestBatchManager: interestBatchManager.toLowerCase() === zeroAddress ? null : interestBatchManager,
74
- lastDebtUpdateTime: requireNonNegativeInteger(trove.lastDebtUpdateTime, 'trovesData.lastDebtUpdateTime'),
75
- lastInterestRateAdjTime: requireNonNegativeInteger(latest.lastInterestRateAdjTime, 'latestData.lastInterestRateAdjTime'),
76
- redistBoldDebtGain: requireBigInt(latest.redistBoldDebtGain, 'latestData.redistBoldDebtGain'),
77
- redistCollGain: requireBigInt(latest.redistCollGain, 'latestData.redistCollGain'),
78
- accruedInterest: requireBigInt(latest.accruedInterest, 'latestData.accruedInterest'),
79
- recordedDebt: requireBigInt(latest.recordedDebt, 'latestData.recordedDebt'),
80
- accruedBatchManagementFee: requireBigInt(latest.accruedBatchManagementFee, 'latestData.accruedBatchManagementFee'),
81
- };
82
- }
@@ -1,271 +0,0 @@
1
- import { BORROWER_OPERATIONS_ABI, HINT_HELPERS_ABI, MULTI_TROVE_GETTER_ABI, PRICE_FEED_ABI, TROVE_MANAGER_ABI, TROVE_NFT_ABI, } from '../../../core/abis';
2
- import { COLL_INDEX } from '../../../core/constants';
3
- import { multicall } from '../../../utils/multicall';
4
- import { parseBorrowPosition } from './borrowPositionParser';
5
- import { deriveTroveId, formatTroveId, MAX_SAFE_INTEGER_BIGINT, parseTroveId, requireAddress, requireNonNegativeBigInt, } from './borrowValidation';
6
- const TROVE_ID_BATCH_SIZE = 64;
7
- const TROVE_OWNER_BATCH_SIZE = 64;
8
- const TROVE_DETAIL_BATCH_SIZE = 64;
9
- const OWNER_INDEX_PROBE_BATCH_SIZE = 64;
10
- export class BorrowReadService {
11
- constructor(publicClient) {
12
- this.publicClient = publicClient;
13
- }
14
- async getTroveData(ctx, troveId) {
15
- const parsedTroveId = parseTroveId(troveId);
16
- const [latestData, trovesData] = await this.readContractsInChunks([
17
- {
18
- address: ctx.addresses.troveManager,
19
- abi: TROVE_MANAGER_ABI,
20
- functionName: 'getLatestTroveData',
21
- args: [parsedTroveId],
22
- },
23
- {
24
- address: ctx.addresses.troveManager,
25
- abi: TROVE_MANAGER_ABI,
26
- functionName: 'Troves',
27
- args: [parsedTroveId],
28
- },
29
- ], 2);
30
- return parseBorrowPosition(formatTroveId(parsedTroveId), latestData, trovesData);
31
- }
32
- async getUserTroves(ctx, owner) {
33
- const ownerAddress = requireAddress(owner, 'owner');
34
- const ownedTroveCount = await this.getOwnedTroveCount(ctx, ownerAddress);
35
- if (ownedTroveCount === 0) {
36
- return [];
37
- }
38
- const troveCount = (await this.publicClient.readContract({
39
- address: ctx.addresses.troveManager,
40
- abi: TROVE_MANAGER_ABI,
41
- functionName: 'getTroveIdsCount',
42
- args: [],
43
- }));
44
- if (troveCount === 0n) {
45
- return [];
46
- }
47
- const troveIdContracts = [];
48
- for (let i = 0n; i < troveCount; i++) {
49
- troveIdContracts.push({
50
- address: ctx.addresses.troveManager,
51
- abi: TROVE_MANAGER_ABI,
52
- functionName: 'getTroveFromTroveIdsArray',
53
- args: [i],
54
- });
55
- }
56
- const troveIds = (await this.readContractsInChunks(troveIdContracts, TROVE_ID_BATCH_SIZE)).map((troveId) => troveId);
57
- const ownerContracts = troveIds.map((troveId) => ({
58
- address: ctx.addresses.troveNFT,
59
- abi: TROVE_NFT_ABI,
60
- functionName: 'ownerOf',
61
- args: [troveId],
62
- }));
63
- const troveOwners = await this.readContractsInChunks(ownerContracts, TROVE_OWNER_BATCH_SIZE);
64
- const matchedTroveIds = troveIds.filter((troveId, index) => troveOwners[index].toLowerCase() === ownerAddress.toLowerCase());
65
- if (matchedTroveIds.length === 0) {
66
- return [];
67
- }
68
- const troveDetailContracts = matchedTroveIds.flatMap((troveId) => ([
69
- {
70
- address: ctx.addresses.troveManager,
71
- abi: TROVE_MANAGER_ABI,
72
- functionName: 'getLatestTroveData',
73
- args: [troveId],
74
- },
75
- {
76
- address: ctx.addresses.troveManager,
77
- abi: TROVE_MANAGER_ABI,
78
- functionName: 'Troves',
79
- args: [troveId],
80
- },
81
- ]));
82
- const detailResults = await this.readContractsInChunks(troveDetailContracts, TROVE_DETAIL_BATCH_SIZE * 2);
83
- return matchedTroveIds.map((troveId, index) => {
84
- const offset = index * 2;
85
- return parseBorrowPosition(formatTroveId(troveId), detailResults[offset], detailResults[offset + 1]);
86
- });
87
- }
88
- async getCollateralPrice(ctx) {
89
- return (await this.publicClient.readContract({
90
- address: ctx.addresses.priceFeed,
91
- abi: PRICE_FEED_ABI,
92
- functionName: 'fetchPrice',
93
- args: [],
94
- }));
95
- }
96
- async isSystemShutDown(ctx) {
97
- return (await this.publicClient.readContract({
98
- address: ctx.addresses.borrowerOperations,
99
- abi: BORROWER_OPERATIONS_ABI,
100
- functionName: 'hasBeenShutDown',
101
- args: [],
102
- }));
103
- }
104
- async getBranchStats(ctx) {
105
- const [totalColl, totalDebt] = await Promise.all([
106
- this.publicClient.readContract({
107
- address: ctx.addresses.borrowerOperations,
108
- abi: BORROWER_OPERATIONS_ABI,
109
- functionName: 'getEntireBranchColl',
110
- args: [],
111
- }),
112
- this.publicClient.readContract({
113
- address: ctx.addresses.borrowerOperations,
114
- abi: BORROWER_OPERATIONS_ABI,
115
- functionName: 'getEntireBranchDebt',
116
- args: [],
117
- }),
118
- ]);
119
- return { totalColl: totalColl, totalDebt: totalDebt };
120
- }
121
- async getInterestRateBrackets(ctx) {
122
- const result = (await this.publicClient.readContract({
123
- address: ctx.addresses.multiTroveGetter,
124
- abi: MULTI_TROVE_GETTER_ABI,
125
- functionName: 'getDebtPerInterestRateAscending',
126
- args: [COLL_INDEX, 0n, 500n],
127
- }));
128
- const entries = result[0] ?? [];
129
- const grouped = new Map();
130
- for (const item of entries) {
131
- const rate = requireNonNegativeBigInt(item.interestRate, 'interestRate');
132
- const debt = requireNonNegativeBigInt(item.debt, 'debt');
133
- const key = rate.toString();
134
- grouped.set(key, (grouped.get(key) ?? 0n) + debt);
135
- }
136
- return Array.from(grouped.entries())
137
- .map(([rate, totalDebt]) => ({
138
- rate: BigInt(rate),
139
- totalDebt,
140
- }))
141
- .sort((a, b) => (a.rate < b.rate ? -1 : a.rate > b.rate ? 1 : 0));
142
- }
143
- async getAverageInterestRate(ctx) {
144
- const brackets = await this.getInterestRateBrackets(ctx);
145
- if (brackets.length === 0)
146
- return 0n;
147
- let weightedRateSum = 0n;
148
- let totalDebt = 0n;
149
- for (const bracket of brackets) {
150
- weightedRateSum += bracket.rate * bracket.totalDebt;
151
- totalDebt += bracket.totalDebt;
152
- }
153
- return totalDebt === 0n ? 0n : weightedRateSum / totalDebt;
154
- }
155
- async getBatchManagerInfo(ctx, address) {
156
- const batchManagerAddress = requireAddress(address, 'address');
157
- const exists = (await this.publicClient.readContract({
158
- address: ctx.addresses.borrowerOperations,
159
- abi: BORROWER_OPERATIONS_ABI,
160
- functionName: 'checkBatchManagerExists',
161
- args: [batchManagerAddress],
162
- }));
163
- if (!exists)
164
- return null;
165
- const manager = (await this.publicClient.readContract({
166
- address: ctx.addresses.borrowerOperations,
167
- abi: BORROWER_OPERATIONS_ABI,
168
- functionName: 'getInterestBatchManager',
169
- args: [batchManagerAddress],
170
- }));
171
- return {
172
- minRate: requireNonNegativeBigInt(manager.minInterestRate, 'minInterestRate'),
173
- maxRate: requireNonNegativeBigInt(manager.maxInterestRate, 'maxInterestRate'),
174
- minChangePeriod: requireNonNegativeBigInt(manager.minInterestRateChangePeriod, 'minInterestRateChangePeriod'),
175
- };
176
- }
177
- async predictOpenTroveUpfrontFee(ctx, amount, rate) {
178
- const borrowedAmount = requireNonNegativeBigInt(amount, 'amount');
179
- const annualInterestRate = requireNonNegativeBigInt(rate, 'rate');
180
- return (await this.publicClient.readContract({
181
- address: ctx.addresses.hintHelpers,
182
- abi: HINT_HELPERS_ABI,
183
- functionName: 'predictOpenTroveUpfrontFee',
184
- args: [COLL_INDEX, borrowedAmount, annualInterestRate],
185
- }));
186
- }
187
- async predictAdjustUpfrontFee(ctx, troveId, debtIncrease) {
188
- const parsedTroveId = parseTroveId(troveId);
189
- const debtIncreaseAmount = requireNonNegativeBigInt(debtIncrease, 'debtIncrease');
190
- return (await this.publicClient.readContract({
191
- address: ctx.addresses.hintHelpers,
192
- abi: HINT_HELPERS_ABI,
193
- functionName: 'predictAdjustTroveUpfrontFee',
194
- args: [COLL_INDEX, parsedTroveId, debtIncreaseAmount],
195
- }));
196
- }
197
- async predictAdjustInterestRateUpfrontFee(ctx, troveId, newRate) {
198
- const parsedTroveId = parseTroveId(troveId);
199
- const newAnnualInterestRate = requireNonNegativeBigInt(newRate, 'newRate');
200
- return (await this.publicClient.readContract({
201
- address: ctx.addresses.hintHelpers,
202
- abi: HINT_HELPERS_ABI,
203
- functionName: 'predictAdjustInterestRateUpfrontFee',
204
- args: [COLL_INDEX, parsedTroveId, newAnnualInterestRate],
205
- }));
206
- }
207
- async predictJoinBatchUpfrontFee(ctx, troveId, batchAddress) {
208
- const parsedTroveId = parseTroveId(troveId);
209
- const managerAddress = requireAddress(batchAddress, 'batchAddress');
210
- return (await this.publicClient.readContract({
211
- address: ctx.addresses.hintHelpers,
212
- abi: HINT_HELPERS_ABI,
213
- functionName: 'predictJoinBatchInterestRateUpfrontFee',
214
- args: [COLL_INDEX, parsedTroveId, managerAddress],
215
- }));
216
- }
217
- async getOwnedTroveCount(ctx, owner) {
218
- const ownerAddress = requireAddress(owner, 'owner');
219
- const ownerTroveCount = (await this.publicClient.readContract({
220
- address: ctx.addresses.troveNFT,
221
- abi: TROVE_NFT_ABI,
222
- functionName: 'balanceOf',
223
- args: [ownerAddress],
224
- }));
225
- if (ownerTroveCount > MAX_SAFE_INTEGER_BIGINT) {
226
- throw new Error('Owner trove count exceeds Number.MAX_SAFE_INTEGER');
227
- }
228
- return Number(ownerTroveCount);
229
- }
230
- async findNextAvailableOwnerIndex(ctx, owner, opener) {
231
- const ownerAddress = requireAddress(owner, 'owner');
232
- const openerAddress = requireAddress(opener, 'opener');
233
- let candidateIndex = await this.getOwnedTroveCount(ctx, ownerAddress);
234
- while (candidateIndex <= Number.MAX_SAFE_INTEGER) {
235
- const batchIndices = Array.from({ length: Math.min(OWNER_INDEX_PROBE_BATCH_SIZE, Number.MAX_SAFE_INTEGER - candidateIndex + 1) }, (_, offset) => candidateIndex + offset);
236
- const statusContracts = batchIndices.map((ownerIndex) => ({
237
- address: ctx.addresses.troveManager,
238
- abi: TROVE_MANAGER_ABI,
239
- functionName: 'getTroveStatus',
240
- args: [deriveTroveId(openerAddress, ownerAddress, ownerIndex)],
241
- }));
242
- const statuses = await this.readContractsInChunks(statusContracts, OWNER_INDEX_PROBE_BATCH_SIZE);
243
- const availableOffset = statuses.findIndex((status) => status === 0 || status === 0n);
244
- if (availableOffset !== -1) {
245
- return batchIndices[availableOffset];
246
- }
247
- candidateIndex += batchIndices.length;
248
- }
249
- throw new Error('Next available owner index exceeds Number.MAX_SAFE_INTEGER');
250
- }
251
- async getNextOwnerIndex(ctx, owner) {
252
- return this.getOwnedTroveCount(ctx, owner);
253
- }
254
- async readContractsInChunks(contracts, chunkSize) {
255
- if (contracts.length === 0) {
256
- return [];
257
- }
258
- const results = [];
259
- for (let index = 0; index < contracts.length; index += chunkSize) {
260
- const chunk = contracts.slice(index, index + chunkSize);
261
- const chunkResults = await multicall(this.publicClient, chunk, { allowFailure: false });
262
- for (const result of chunkResults) {
263
- if (result.status === 'failure') {
264
- throw result.error;
265
- }
266
- results.push(result.result);
267
- }
268
- }
269
- return results;
270
- }
271
- }
@@ -1,108 +0,0 @@
1
- import { ADDRESSES_REGISTRY_ABI, BORROWER_OPERATIONS_ABI, SYSTEM_PARAMS_ABI, } from '../../../core/abis';
2
- import { multicall } from '../../../utils/multicall';
3
- import { validateAddress } from '../../../utils/validation';
4
- function readNoArgsContract(publicClient, address, abi, functionName) {
5
- const readContract = publicClient.readContract;
6
- return readContract({ address, abi, functionName, args: [] });
7
- }
8
- async function readNoArgsContracts(publicClient, contracts) {
9
- if (contracts.length === 0) {
10
- return [];
11
- }
12
- const results = await multicall(publicClient, contracts.map((contract) => ({
13
- ...contract,
14
- abi: contract.abi,
15
- args: [],
16
- })), { allowFailure: false });
17
- return results.map((result) => {
18
- if (result.status === 'failure') {
19
- throw result.error;
20
- }
21
- return result.result;
22
- });
23
- }
24
- function requireAddress(value, fieldName) {
25
- if (typeof value !== 'string') {
26
- throw new Error(`${fieldName} must be a string address`);
27
- }
28
- validateAddress(value, fieldName);
29
- return value;
30
- }
31
- function requireBigInt(value, fieldName) {
32
- if (typeof value !== 'bigint') {
33
- throw new Error(`${fieldName} must be a bigint`);
34
- }
35
- if (value < 0n) {
36
- throw new Error(`${fieldName} cannot be negative`);
37
- }
38
- return value;
39
- }
40
- export async function resolveAddressesFromRegistry(publicClient, registryAddress) {
41
- validateAddress(registryAddress, 'registryAddress');
42
- const registry = registryAddress;
43
- const [borrowerOperationsRaw, troveManagerRaw, sortedTrovesRaw, activePoolRaw, defaultPoolRaw, hintHelpersRaw, multiTroveGetterRaw, collTokenRaw, debtTokenRaw, troveNFTRaw, metadataNFTRaw, stabilityPoolRaw, priceFeedRaw, collSurplusPoolRaw, interestRouterRaw, collateralRegistryRaw, gasTokenRaw, gasPoolAddressRaw, liquidityStrategyRaw,] = await readNoArgsContracts(publicClient, [
44
- { address: registry, abi: ADDRESSES_REGISTRY_ABI, functionName: 'borrowerOperations' },
45
- { address: registry, abi: ADDRESSES_REGISTRY_ABI, functionName: 'troveManager' },
46
- { address: registry, abi: ADDRESSES_REGISTRY_ABI, functionName: 'sortedTroves' },
47
- { address: registry, abi: ADDRESSES_REGISTRY_ABI, functionName: 'activePool' },
48
- { address: registry, abi: ADDRESSES_REGISTRY_ABI, functionName: 'defaultPool' },
49
- { address: registry, abi: ADDRESSES_REGISTRY_ABI, functionName: 'hintHelpers' },
50
- { address: registry, abi: ADDRESSES_REGISTRY_ABI, functionName: 'multiTroveGetter' },
51
- { address: registry, abi: ADDRESSES_REGISTRY_ABI, functionName: 'collToken' },
52
- { address: registry, abi: ADDRESSES_REGISTRY_ABI, functionName: 'boldToken' },
53
- { address: registry, abi: ADDRESSES_REGISTRY_ABI, functionName: 'troveNFT' },
54
- { address: registry, abi: ADDRESSES_REGISTRY_ABI, functionName: 'metadataNFT' },
55
- { address: registry, abi: ADDRESSES_REGISTRY_ABI, functionName: 'stabilityPool' },
56
- { address: registry, abi: ADDRESSES_REGISTRY_ABI, functionName: 'priceFeed' },
57
- { address: registry, abi: ADDRESSES_REGISTRY_ABI, functionName: 'collSurplusPool' },
58
- { address: registry, abi: ADDRESSES_REGISTRY_ABI, functionName: 'interestRouter' },
59
- { address: registry, abi: ADDRESSES_REGISTRY_ABI, functionName: 'collateralRegistry' },
60
- { address: registry, abi: ADDRESSES_REGISTRY_ABI, functionName: 'gasToken' },
61
- { address: registry, abi: ADDRESSES_REGISTRY_ABI, functionName: 'gasPoolAddress' },
62
- { address: registry, abi: ADDRESSES_REGISTRY_ABI, functionName: 'liquidityStrategy' },
63
- ]);
64
- return {
65
- borrowerOperations: requireAddress(borrowerOperationsRaw, 'borrowerOperations'),
66
- troveManager: requireAddress(troveManagerRaw, 'troveManager'),
67
- sortedTroves: requireAddress(sortedTrovesRaw, 'sortedTroves'),
68
- activePool: requireAddress(activePoolRaw, 'activePool'),
69
- defaultPool: requireAddress(defaultPoolRaw, 'defaultPool'),
70
- hintHelpers: requireAddress(hintHelpersRaw, 'hintHelpers'),
71
- multiTroveGetter: requireAddress(multiTroveGetterRaw, 'multiTroveGetter'),
72
- collToken: requireAddress(collTokenRaw, 'collToken'),
73
- debtToken: requireAddress(debtTokenRaw, 'debtToken'),
74
- troveNFT: requireAddress(troveNFTRaw, 'troveNFT'),
75
- metadataNFT: requireAddress(metadataNFTRaw, 'metadataNFT'),
76
- stabilityPool: requireAddress(stabilityPoolRaw, 'stabilityPool'),
77
- priceFeed: requireAddress(priceFeedRaw, 'priceFeed'),
78
- collSurplusPool: requireAddress(collSurplusPoolRaw, 'collSurplusPool'),
79
- interestRouter: requireAddress(interestRouterRaw, 'interestRouter'),
80
- collateralRegistry: requireAddress(collateralRegistryRaw, 'collateralRegistry'),
81
- gasToken: requireAddress(gasTokenRaw, 'gasToken'),
82
- gasPoolAddress: requireAddress(gasPoolAddressRaw, 'gasPoolAddress'),
83
- liquidityStrategy: requireAddress(liquidityStrategyRaw, 'liquidityStrategy'),
84
- };
85
- }
86
- export async function readSystemParams(publicClient, borrowerOperations) {
87
- validateAddress(borrowerOperations, 'borrowerOperations');
88
- const systemParamsAddressRaw = await readNoArgsContract(publicClient, borrowerOperations, BORROWER_OPERATIONS_ABI, 'systemParams');
89
- const systemParamsAddress = requireAddress(systemParamsAddressRaw, 'systemParamsAddress');
90
- const [ccrRaw, mcrRaw, scrRaw, bcrRaw, minDebtRaw, ethGasCompensationRaw, minAnnualInterestRateRaw,] = await readNoArgsContracts(publicClient, [
91
- { address: systemParamsAddress, abi: SYSTEM_PARAMS_ABI, functionName: 'CCR' },
92
- { address: systemParamsAddress, abi: SYSTEM_PARAMS_ABI, functionName: 'MCR' },
93
- { address: systemParamsAddress, abi: SYSTEM_PARAMS_ABI, functionName: 'SCR' },
94
- { address: systemParamsAddress, abi: SYSTEM_PARAMS_ABI, functionName: 'BCR' },
95
- { address: systemParamsAddress, abi: SYSTEM_PARAMS_ABI, functionName: 'MIN_DEBT' },
96
- { address: systemParamsAddress, abi: SYSTEM_PARAMS_ABI, functionName: 'ETH_GAS_COMPENSATION' },
97
- { address: systemParamsAddress, abi: SYSTEM_PARAMS_ABI, functionName: 'MIN_ANNUAL_INTEREST_RATE' },
98
- ]);
99
- return {
100
- mcr: requireBigInt(mcrRaw, 'MCR'),
101
- ccr: requireBigInt(ccrRaw, 'CCR'),
102
- scr: requireBigInt(scrRaw, 'SCR'),
103
- bcr: requireBigInt(bcrRaw, 'BCR'),
104
- minDebt: requireBigInt(minDebtRaw, 'MIN_DEBT'),
105
- ethGasCompensation: requireBigInt(ethGasCompensationRaw, 'ETH_GAS_COMPENSATION'),
106
- minAnnualInterestRate: requireBigInt(minAnnualInterestRateRaw, 'MIN_ANNUAL_INTEREST_RATE'),
107
- };
108
- }