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

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 +14 -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 +31 -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 +29 -3
  145. package/dist/index.d.ts.map +1 -1
  146. package/dist/index.js +42 -5
  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 -109
  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 -5
  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 +36 -15
  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/README.md CHANGED
@@ -1,348 +1,205 @@
1
1
  # Mento SDK
2
2
 
3
- A TypeScript SDK for interacting with the Mento protocol. This SDK provides a simple interface to interact with Mento's smart contracts, supporting both Ethers.js and Viem providers.
3
+ A TypeScript SDK for interacting with the [Mento Protocol](https://www.mento.org/) on Celo. Provides a simple interface for token swaps, liquidity management, borrowing, and trading status queries.
4
4
 
5
5
  ## Installation
6
6
 
7
7
  ```bash
8
- npm install @mento/sdk
8
+ npm install @mento-protocol/mento-sdk viem
9
9
  # or
10
- yarn add @mento/sdk
11
- # or
12
- pnpm add @mento/sdk
10
+ pnpm add @mento-protocol/mento-sdk viem
13
11
  ```
14
12
 
15
- ## Quick Start
16
-
17
- ### Initialize with Viem
18
-
19
- ```typescript
20
- import { createPublicClient, http } from 'viem'
21
- import { celo } from 'viem/chains'
22
- import { Mento } from '@mento/sdk'
23
-
24
- // Create Viem client
25
- const provider = createPublicClient({
26
- chain: celo,
27
- transport: http(),
28
- })
13
+ `viem` is a peer dependency required for blockchain interactions.
29
14
 
30
- // Initialize Mento SDK
31
- const mento = new Mento({ provider })
32
-
33
- // Use the SDK
34
- const stableTokens = await mento.tokens.getStableTokens()
35
- console.log('Stable Tokens:', stableTokens)
36
- ```
37
-
38
- ### Initialize with Ethers.js
15
+ ## Quick Start
39
16
 
40
17
  ```typescript
41
- import { JsonRpcProvider } from 'ethers'
42
- import { Mento } from '@mento/sdk'
43
-
44
- // Create Ethers provider
45
- const provider = new JsonRpcProvider('YOUR_RPC_URL')
46
-
47
- // Initialize Mento SDK
48
- const mento = new Mento({ provider })
49
-
50
- // Use the SDK
51
- const collateralAssets = await mento.collateral.getCollateralAssets()
52
- console.log('Collateral Assets:', collateralAssets)
53
- ```
54
-
55
- ## Development Setup
56
-
57
- ### Project Setup
58
-
59
- 1. Clone the repository
60
-
61
- ```bash
62
- git clone git@github.com:mento-protocol/mento-sdk.git
63
- cd mento-sdk
64
- ```
65
-
66
- 2. Install dependencies
18
+ import { Mento, ChainId, deadlineFromMinutes } from '@mento-protocol/mento-sdk'
19
+ import { parseUnits } from 'viem'
67
20
 
68
- ```bash
69
- pnpm install
70
- ```
71
-
72
- ### Development Workflow
73
-
74
- #### Build
75
-
76
- ```bash
77
- pnpm build
78
- ```
79
-
80
- #### Running Tests
81
-
82
- ```bash
83
- # Run all tests
84
- pnpm test
85
- ```
21
+ // Initialize the SDK (uses default public RPC)
22
+ const mento = await Mento.create(ChainId.CELO)
86
23
 
87
- ### Project Structure
24
+ // Or with a custom RPC URL
25
+ const mento = await Mento.create(ChainId.CELO, 'https://your-rpc-url.com')
88
26
 
89
- ```bash
90
- ├── src/
91
- │ ├── abis/ # Contract ABIs
92
- │ ├── adapters/ # Provider adapters (Ethers, Viem)
93
- │ ├── constants/ # Constants and addresses
94
- │ ├── services/ # Core services
95
- │ ├── types/ # TypeScript type definitions
96
- | ├── utils/ # Utility functions
97
- │ └── index.ts # Main entry point
98
- ├── tests/
99
- │ ├── unit/ # Unit tests
100
- │ └── integration/ # Integration tests
27
+ // Or with an existing viem PublicClient
28
+ const mento = await Mento.create(ChainId.CELO, yourPublicClient)
101
29
  ```
102
30
 
103
- ## Features
31
+ ## Services
104
32
 
105
- ### Read Operations
33
+ The SDK is organized into service namespaces:
106
34
 
107
- #### Stable Tokens
35
+ | Service | Description |
36
+ |---------|-------------|
37
+ | `mento.tokens` | Query stable tokens and collateral assets |
38
+ | `mento.pools` | Discover and inspect liquidity pools |
39
+ | `mento.routes` | Find trading routes (direct and multi-hop) |
40
+ | `mento.quotes` | Get expected swap output amounts |
41
+ | `mento.swap` | Build swap transactions with approvals |
42
+ | `mento.trading` | Check circuit breakers and trading limits |
43
+ | `mento.liquidity` | Add/remove liquidity, zap in/out |
44
+ | `mento.borrow` | Open, adjust, and close troves |
108
45
 
109
- Query Mento stable tokens:
46
+ ## Token Queries
110
47
 
111
48
  ```typescript
112
- // Get all stable tokens
113
- const tokens = await mento.tokens.getStableTokens()
114
- ```
115
-
116
- #### Collateral Assets
117
-
118
- Retrieve collateral assets:
49
+ // Get all Mento stable tokens
50
+ const stableTokens = await mento.tokens.getStableTokens()
119
51
 
120
- ```typescript
121
52
  // Get all collateral assets
122
- const assets = await mento.collateral.getCollateralAssets()
53
+ const collateral = await mento.tokens.getCollateralAssets()
123
54
  ```
124
55
 
125
- #### Exchanges
126
-
127
- Query exchanges and tradable pairs:
56
+ ## Swaps
128
57
 
129
58
  ```typescript
130
- // Get all exchanges
131
- const exchanges = await mento.exchanges.getExchanges()
132
-
133
- // Get tradable pairs (includes multi-hop routes)
134
- const pairs = await mento.exchanges.getTradablePairs()
135
-
136
- // Find specific pair
137
- const pair = await mento.exchanges.findPairForTokens(
138
- tokenInAddress,
139
- tokenOutAddress
59
+ const USDm = '0x765DE816845861e75A25fCA122bb6898B8B1282a'
60
+ const CELO = '0x471EcE3750Da237f93B8E339c536989b8978a438'
61
+
62
+ // Get a quote
63
+ const amountIn = parseUnits('100', 18)
64
+ const expectedOut = await mento.quotes.getAmountOut(USDm, CELO, amountIn)
65
+
66
+ // Build a swap transaction (includes approval if needed)
67
+ const { approval, swap } = await mento.swap.buildSwapTransaction(
68
+ USDm,
69
+ CELO,
70
+ amountIn,
71
+ recipientAddress,
72
+ ownerAddress,
73
+ { slippageTolerance: 0.5, deadline: deadlineFromMinutes(5) }
140
74
  )
141
- ```
142
-
143
- ### Write Operations
144
-
145
- The SDK supports write transactions for submitting state-changing operations to the blockchain. Write operations require a signer (Ethers) or wallet client (Viem).
146
-
147
- #### Setup for Write Operations
148
-
149
- **With Viem:**
150
-
151
- ```typescript
152
- import { createPublicClient, createWalletClient, http } from 'viem'
153
- import { privateKeyToAccount } from 'viem/accounts'
154
- import { celo } from 'viem/chains'
155
- import { Mento } from '@mento/sdk'
156
-
157
- // Create account from private key
158
- const account = privateKeyToAccount('0x...')
159
-
160
- // Create public and wallet clients
161
- const publicClient = createPublicClient({
162
- chain: celo,
163
- transport: http('https://forno.celo.org'),
164
- })
165
-
166
- const walletClient = createWalletClient({
167
- account,
168
- chain: celo,
169
- transport: http('https://forno.celo.org'),
170
- })
171
75
 
172
- // Initialize SDK with write support
173
- const mento = await Mento.create({
174
- provider: publicClient,
175
- signer: walletClient, // Add wallet client for write operations
176
- })
76
+ // Execute with any viem wallet client
77
+ if (approval) {
78
+ await walletClient.sendTransaction(approval)
79
+ }
80
+ await walletClient.sendTransaction(swap.params)
177
81
  ```
178
82
 
179
- **With Ethers v6:**
83
+ ## Routes
180
84
 
181
85
  ```typescript
182
- import { JsonRpcProvider, Wallet } from 'ethers'
183
- import { Mento } from '@mento/sdk'
86
+ // Find a route between two tokens
87
+ const route = await mento.routes.findRoute(USDm, CELO)
88
+ console.log(`Hops: ${route.path.length}`)
184
89
 
185
- // Create provider and signer
186
- const provider = new JsonRpcProvider('https://forno.celo.org')
187
- const signer = new Wallet('0x...', provider)
90
+ // Get all tradable routes (uses pre-generated cache by default)
91
+ const routes = await mento.routes.getRoutes()
188
92
 
189
- // Initialize SDK with write support
190
- const mento = await Mento.create({
191
- provider,
192
- signer, // Add signer for write operations
193
- })
93
+ // Generate fresh routes from blockchain
94
+ const freshRoutes = await mento.routes.getRoutes({ cached: false })
194
95
  ```
195
96
 
196
- #### Token Approval
197
-
198
- Approve tokens for Mento protocol interactions:
97
+ ## Trading Status
199
98
 
200
99
  ```typescript
201
- // Get the adapter (provider-agnostic)
202
- const adapter = mento.getAdapter()
203
-
204
- // Approve USDC for Mento Broker
205
- const tx = await adapter.writeContract({
206
- address: '0x765DE816845861e75A25fCA122bb6898B8B1282a', // USDC on Celo
207
- abi: ['function approve(address spender, uint256 amount) returns (bool)'],
208
- functionName: 'approve',
209
- args: [
210
- '0x...', // Spender address (e.g., Mento Broker)
211
- 1000000n, // Amount (1 USDC with 6 decimals)
212
- ],
213
- })
100
+ // Check if a pair is tradable (circuit breaker check)
101
+ const isTradable = await mento.trading.isPairTradable(USDm, CELO)
214
102
 
215
- console.log('Transaction hash:', tx.hash)
216
- console.log('From:', tx.from)
217
- console.log('To:', tx.to)
103
+ // Get full tradability status for a pool
104
+ const pools = await mento.pools.getPools()
105
+ const status = await mento.trading.getPoolTradabilityStatus(pools[0])
218
106
 
219
- // Wait for confirmation
220
- const receipt = await tx.wait()
221
- console.log('Transaction confirmed in block:', receipt.blockNumber)
222
- console.log('Status:', receipt.status) // 'success' or 'failed'
107
+ if (!status.circuitBreakerOk) {
108
+ console.log('Trading suspended by circuit breaker')
109
+ } else if (!status.limitsOk) {
110
+ console.log('Trading limit reached')
111
+ }
223
112
  ```
224
113
 
225
- #### Transaction Status Tracking
226
-
227
- Monitor transaction status and confirmations:
114
+ ## Liquidity
228
115
 
229
116
  ```typescript
230
- // Submit transaction
231
- const tx = await adapter.writeContract({...})
117
+ // Add liquidity to a pool
118
+ const addTx = await mento.liquidity.buildAddLiquidityTransaction(
119
+ poolAddress, tokenA, amountA, tokenB, amountB,
120
+ recipient, owner,
121
+ { slippageTolerance: 0.5, deadline: deadlineFromMinutes(5) }
122
+ )
232
123
 
233
- // Check if transaction is mined (returns null if pending)
234
- const receipt = await tx.getReceipt()
235
- if (receipt) {
236
- console.log('Transaction mined!', receipt.blockNumber)
237
- }
124
+ // Zap in with a single token
125
+ const zapTx = await mento.liquidity.buildZapInTransaction(
126
+ poolAddress, tokenIn, amountIn, 0.5, // split ratio
127
+ recipient, owner,
128
+ { slippageTolerance: 0.5, deadline: deadlineFromMinutes(5) }
129
+ )
238
130
 
239
- // Wait for specific number of confirmations
240
- const confirmedReceipt = await tx.wait(3) // Wait for 3 confirmations
241
- console.log('Transaction confirmed after 3 blocks')
131
+ // Get LP token balance
132
+ const balance = await mento.liquidity.getLPTokenBalance(poolAddress, owner)
242
133
  ```
243
134
 
244
- #### Gas Estimation
245
-
246
- Estimate gas before submitting transactions:
135
+ ## Borrowing
247
136
 
248
137
  ```typescript
249
- // Estimate gas for an approval
250
- const estimatedGas = await adapter.estimateGas({
251
- address: '0x765DE816845861e75A25fCA122bb6898B8B1282a',
252
- abi: ['function approve(address spender, uint256 amount) returns (bool)'],
253
- functionName: 'approve',
254
- args: ['0x...', 1000000n],
138
+ import { parseUnits } from 'viem'
139
+
140
+ // Open a trove (borrow against collateral)
141
+ const openTx = await mento.borrow.buildOpenTroveTransaction('USDm', {
142
+ owner: ownerAddress,
143
+ ownerIndex: 0,
144
+ collAmount: parseUnits('10', 18),
145
+ boldAmount: parseUnits('1000', 18),
146
+ annualInterestRate: parseUnits('0.05', 18), // 5%
147
+ maxUpfrontFee: parseUnits('100', 18),
255
148
  })
256
149
 
257
- console.log('Estimated gas:', estimatedGas) // Returns BigInt
258
- ```
150
+ // Get trove data
151
+ const trove = await mento.borrow.getTroveData('USDm', troveId)
259
152
 
260
- #### Custom Gas Parameters
153
+ // Get system parameters
154
+ const params = await mento.borrow.getSystemParams('USDm')
261
155
 
262
- Customize gas parameters for transactions:
156
+ // Predict upfront fee before opening
157
+ const fee = await mento.borrow.predictOpenTroveUpfrontFee(
158
+ 'USDm',
159
+ parseUnits('1000', 18),
160
+ parseUnits('0.05', 18)
161
+ )
162
+ ```
263
163
 
264
- ```typescript
265
- // Legacy gas price (Type 0/1 transactions)
266
- const tx = await adapter.writeContract({
267
- address: '0x...',
268
- abi: [...],
269
- functionName: 'approve',
270
- args: [...],
271
- gasLimit: 100000n, // Custom gas limit
272
- gasPrice: 5000000000n, // 5 gwei
273
- })
164
+ ## Supported Chains
274
165
 
275
- // EIP-1559 (Type 2 transactions)
276
- const tx = await adapter.writeContract({
277
- address: '0x...',
278
- abi: [...],
279
- functionName: 'approve',
280
- args: [...],
281
- gasLimit: 100000n,
282
- maxFeePerGas: 10000000000n, // 10 gwei max
283
- maxPriorityFeePerGas: 2000000000n, // 2 gwei priority
284
- })
166
+ | Chain | Chain ID | Constant |
167
+ |-------|----------|----------|
168
+ | Celo Mainnet | 42220 | `ChainId.CELO` |
169
+ | Celo Sepolia | 11142220 | `ChainId.CELO_SEPOLIA` |
285
170
 
286
- // Custom nonce (for transaction ordering)
287
- const tx = await adapter.writeContract({
288
- address: '0x...',
289
- abi: [...],
290
- functionName: 'approve',
291
- args: [...],
292
- nonce: 42n, // Explicit nonce
293
- })
294
- ```
171
+ ## Development
172
+
173
+ ```bash
174
+ # Install dependencies
175
+ pnpm install
295
176
 
296
- #### Error Handling
177
+ # Build
178
+ pnpm build
297
179
 
298
- The SDK provides detailed error information:
180
+ # Run tests
181
+ pnpm test
299
182
 
300
- ```typescript
301
- import { ValidationError, ExecutionError, NetworkError } from '@mento/sdk'
302
-
303
- try {
304
- const tx = await adapter.writeContract({...})
305
- const receipt = await tx.wait()
306
- } catch (error) {
307
- if (error instanceof ValidationError) {
308
- // Pre-submission validation errors (no gas cost)
309
- console.error('Invalid parameters:', error.message)
310
- } else if (error instanceof ExecutionError) {
311
- // Transaction reverted on-chain (gas was consumed)
312
- console.error('Transaction failed:', error.message)
313
- console.error('Revert reason:', error.revertReason)
314
- } else if (error instanceof NetworkError) {
315
- // RPC/network errors
316
- console.error('Network error:', error.message)
317
- if (error.retry) {
318
- console.log('This error is retryable')
319
- }
320
- }
321
- }
183
+ # Lint
184
+ pnpm lint
322
185
  ```
323
186
 
324
- #### Utility Methods
325
-
326
- Additional helper methods for write operations:
187
+ ### Cache Generation
327
188
 
328
- ```typescript
329
- // Get signer/wallet address
330
- const address = await adapter.getSignerAddress()
331
- console.log('Wallet address:', address)
189
+ The SDK ships with pre-generated route and token caches for fast startup:
332
190
 
333
- // Get current nonce
334
- const nonce = await adapter.getTransactionCount(address)
335
- console.log('Next nonce:', nonce)
191
+ ```bash
192
+ pnpm cacheRoutes
193
+ pnpm cacheTokens
336
194
  ```
337
195
 
338
- ## Contributing
196
+ Override RPC URLs via environment variables:
339
197
 
340
- Contributions are welcome! Please read our contributing guidelines for details.
198
+ ```bash
199
+ CELO_RPC_URL=https://your-rpc.com pnpm cacheRoutes
200
+ CELO_SEPOLIA_RPC_URL=https://your-sepolia-rpc.com pnpm cacheTokens
201
+ ```
341
202
 
342
203
  ## License
343
204
 
344
205
  MIT
345
-
346
- ---
347
-
348
- For more detailed documentation and examples, visit our [documentation site](https://docs.mento.org).
@@ -0,0 +1,13 @@
1
+ import type { RouteWithCost } from '../core/types';
2
+ /**
3
+ * Cached routes indexed by chain ID
4
+ * Routes that don't exist for a chain will return an empty array
5
+ */
6
+ export declare const cachedRoutes: Record<number, RouteWithCost[]>;
7
+ /**
8
+ * Get cached routes for a specific chain
9
+ * @param chainId - The chain ID
10
+ * @returns The cached routes array, or empty array if not available
11
+ */
12
+ export declare function getCachedRoutes(chainId: number): RouteWithCost[];
13
+ //# sourceMappingURL=routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/cache/routes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAElD;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAusWxD,CAAA;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE,CAEhE"}