@mento-protocol/mento-sdk 3.2.2 → 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
@@ -0,0 +1,304 @@
1
+ import { TradablePairWithSpread } from './constants';
2
+ import { Address } from './interfaces';
3
+ import { TradablePair, TradablePairID } from './mento';
4
+ type TokenSymbol = string;
5
+ interface ExchangeDetails {
6
+ providerAddr: Address;
7
+ id: string;
8
+ assets: [Address, Address];
9
+ }
10
+ /**
11
+ * =============================================================================
12
+ * ROUTE GENERATION UTILITIES
13
+ * =============================================================================
14
+ *
15
+ * Utilities for generating optimal trading routes in the Mento protocol.
16
+ *
17
+ * The main workflow is:
18
+ *
19
+ * 1. Build connectivity structures from direct trading pairs
20
+ * 2. Generate all possible routes (direct + two-hop)
21
+ * 3. Select optimal routes using spread data or heuristics
22
+ *
23
+ * ALGORITHM OVERVIEW:
24
+ * - Creates a graph where tokens are nodes and direct exchanges are edges
25
+ * - Uses graph traversal to find two-hop routes through intermediate tokens
26
+ * - Optimizes route selection based on spread costs when available
27
+ * - Falls back to heuristics (prefer direct routes, major stablecoins)
28
+ * =============================================================================
29
+ */
30
+ /**
31
+ * Connectivity data structure that represents the token graph connecting all tokens.
32
+ * Helps to efficiently answer: "How can I trade from token A to token B?"
33
+ *
34
+ * CONCRETE EXAMPLE:
35
+ * Given these direct trading pairs:
36
+ * - cUSD ↔ CELO (direct exchange exists)
37
+ * - CELO ↔ cEUR (direct exchange exists)
38
+ * - cUSD ↔ cREAL (direct exchange exists)
39
+ *
40
+ * How route finding works:
41
+ * - Direct route: cUSD → cEUR? Check token graph: cUSD connects to [CELO, cREAL], none is cEUR → No direct route
42
+ * - Two-hop route: cUSD → ? → cEUR?
43
+ * - cUSD connects to CELO, CELO connects to cEUR → Found route: cUSD → CELO → cEUR
44
+ * - cUSD connects to cREAL, cREAL connects to [cUSD] → No route via cREAL
45
+ *
46
+ * The "connectivity" part means we can quickly traverse the network of
47
+ * token connections to find all possible trading paths.
48
+ */
49
+ export interface ConnectivityData {
50
+ /** Maps token address to symbol for efficient lookups
51
+ *
52
+ * ```
53
+ * '0x765D...' → 'cUSD'
54
+ * '0x471E...' → 'CELO'
55
+ * '0xD876...' → 'cEUR'
56
+ * ```
57
+ */
58
+ addrToSymbol: Map<Address, TokenSymbol>;
59
+ /** Adjacency list mapping which tokens connect to which
60
+ * Used for finding two-hop routes by traversing token → neighbor → neighbor.
61
+ *
62
+ * Example for a cUSD => cEUR swap: First we find cUSD → [CELO, cKES, ...]
63
+ * Then we find CELO → [cUSD, cEUR, ...] = found route via cUSD → CELO → cEUR
64
+ *
65
+ * ```
66
+ * 'cUSD_addr' → Set(['CELO_addr', 'cKES_addr']) // cUSD connects to CELO and cKES
67
+ * 'CELO_addr' → Set(['cUSD_addr', 'cEUR_addr']) // CELO connects to cUSD and cEUR
68
+ * 'cEUR_addr' → Set(['CELO_addr']) // cEUR connects to CELO
69
+ * 'cKES_addr' → Set(['cUSD_addr']) // cKES connects to cUSD
70
+ * ```
71
+ */
72
+ tokenGraph: Map<Address, Set<Address>>;
73
+ /** Maps sorted token address pairs to their direct exchange hop details
74
+ * ```
75
+ * 'CELO_addr-cEUR_addr' → { exchange details for CELO ↔ cEUR }
76
+ * 'CELO_addr-cUSD_addr' → { exchange details for CELO ↔ cUSD }
77
+ * 'cUSD_addr-cKES_addr' → { exchange details for cUSD ↔ cKES }
78
+ * ```
79
+ */
80
+ directPathMap: Map<TradablePairID, ExchangeDetails>;
81
+ /** Original direct trading pairs from mento.getDirectPairs() for reference */
82
+ directPairs: TradablePair[];
83
+ }
84
+ /**
85
+ * Builds the connectivity data structures needed for route generation.
86
+ *
87
+ * Transforms a list of direct trading pairs into our ConnectivityData
88
+ * that allow us to quickly find trading routes.
89
+ *
90
+ * **Construction Process:**
91
+ *
92
+ * ```
93
+ * Input: TradablePairs = [
94
+ * { id: 'cUSD-CELO', assets: [cUSD, CELO], path: [exchange1_CELO_cUSD] },
95
+ * { id: 'CELO-cEUR', assets: [CELO, cEUR], path: [exchange2_CELO_cEUR] }
96
+ * ]
97
+ *
98
+ * Step 1 - Build addrToSymbol map:
99
+ * cUSD.address → 'cUSD'
100
+ * CELO.address → 'CELO'
101
+ * cEUR.address → 'cEUR'
102
+ *
103
+ * Step 2 - Build directPathMap (sorted alphabetically for consistency):
104
+ * 'CELO_addr-cEUR_addr' → exchange2_CELO_cEUR
105
+ * 'CELO_addr-cUSD_addr' → exchange1_CELO_cUSD
106
+ *
107
+ * Step 3 - Build bidirectional tokenGraph:
108
+ * cUSD.address → Set([CELO.address])
109
+ * CELO.address → Set([cUSD.address, cEUR.address])
110
+ * cEUR.address → Set([CELO.address])
111
+ * ```
112
+ *
113
+ * **Result**: We can now efficiently answer:
114
+ * - "What's the symbol for address X?" → addrToSymbol.get(addr)
115
+ * - "What exchange connects tokens X and Y?" → directPathMap.get(sortedAddressPairKey)
116
+ * - "What tokens can I reach from token X?" → tokenGraph.get(X)
117
+ *
118
+ * @param directPairs - Array of direct trading pairs
119
+ * @returns Connectivity data structure for efficient route generation
120
+ *
121
+ * @example
122
+ * ```typescript
123
+ * const directPairs = [
124
+ * { id: 'cUSD-CELO', assets: [cUSD, CELO], path: [exchange1] },
125
+ * { id: 'CELO-cEUR', assets: [CELO, cEUR], path: [exchange2] }
126
+ * ]
127
+ *
128
+ * const connectivityData = buildConnectivityStructures(directPairs)
129
+ *
130
+ * // Now we can efficiently find routes:
131
+ * // 1. Check if cUSD connects to anything: connectivityData.tokenGraph.get(cUSD.address) → [CELO.address]
132
+ * // 2. Check if CELO connects to cEUR: connectivityData.tokenGraph.get(CELO.address) → [cUSD.address, cEUR.address] ✓
133
+ * // 3. Get exchange details: connectivityData.directPathMap.get('CELO_addr-cEUR_addr') → exchange2_CELO_cEUR
134
+ * // Result: Found route cUSD → CELO → cEUR with exchange details
135
+ * ```
136
+ */
137
+ export declare function buildConnectivityStructures(directPairs: TradablePair[]): ConnectivityData;
138
+ /**
139
+ * Generates all possible routes (direct + two-hop) using connectivity data.
140
+ *
141
+ * This function implements a route discovery algorithm that:
142
+ *
143
+ * 1. **Adds all direct pairs** (single-hop routes)
144
+ * 2. **Discovers two-hop routes** using graph traversal:
145
+ * - For each token A, find its neighbors (tokens directly connected)
146
+ * - For each neighbor B, find B's neighbors
147
+ * - If B connects to token C (C ≠ A), then A->B->C is a valid route
148
+ *
149
+ * **Route Deduplication**: Multiple routes between the same token pair
150
+ * are collected in arrays, allowing the selection algorithm to choose
151
+ * the best one based on spread data or heuristics.
152
+ *
153
+ * **Canonical Pair IDs**: All pairs use alphabetically sorted symbols
154
+ * (e.g., 'cEUR-cUSD' not 'cUSD-cEUR') for consistent identification.
155
+ *
156
+ * @param connectivityData - The connectivity data from buildConnectivityStructures()
157
+ * @returns Map of pair ID -> array of possible routes for that pair
158
+ *
159
+ * @example
160
+ * ```typescript
161
+ * // Given direct pairs: cUSD-CELO, CELO-cEUR, cUSD-USDC
162
+ * const allRoutes = generateAllRoutes(connectivityData)
163
+ *
164
+ * // Results might include:
165
+ * // 'cUSD-CELO' -> [{ path: [cUSD->CELO] }] // direct route
166
+ * // 'cEUR-cUSD' -> [
167
+ * // { path: [cUSD->USDC, USDC->cEUR] } // two-hop via USDC
168
+ * // { path: [cUSD->CELO, CELO->cEUR] } // two-hop via CELO
169
+ * // ]
170
+ * ```
171
+ */
172
+ export declare function generateAllRoutes(connectivityData: ConnectivityData): Map<TradablePairID, TradablePair[]>;
173
+ /**
174
+ * Creates a two-hop tradable pair if valid exchange hops exist.
175
+ *
176
+ * 1. **Validates tokens exist** in the asset map
177
+ * 2. **Finds exchange hops** for both segments of the route
178
+ * 3. **Creates canonical pair structure** with sorted symbols
179
+ *
180
+ * **Route Structure**: The resulting pair represents trading from start->end
181
+ * via intermediate token, but the assets are ordered alphabetically by symbol
182
+ * for consistency (canonical form).
183
+ *
184
+ * **Path Representation**: The path array contains the actual exchange hops
185
+ * needed to execute the trade, preserving the routing information.
186
+ *
187
+ * @param startToken - Starting token address
188
+ * @param intermediate - Intermediate token address for routing
189
+ * @param end - Destination token address
190
+ * @param assetMap - Map of token address -> Asset details
191
+ * @param directPathMap - Map of token pairs -> exchange hop details
192
+ * @returns Route if valid route exists, null otherwise
193
+ *
194
+ * @example
195
+ * ```typescript
196
+ * // Create route: cUSD -> CELO -> cEUR
197
+ * const pair = createTwoHopPair(
198
+ * '0x765D...', // cUSD address
199
+ * '0x471E...', // CELO address
200
+ * '0xD876...', // cEUR address
201
+ * addrToSymbol,
202
+ * directPathMap
203
+ * )
204
+ *
205
+ * // Result:
206
+ * // {
207
+ * // id: 'cEUR-cUSD', // alphabetical order
208
+ * // assets: [cEUR, cUSD], // alphabetical order
209
+ * // path: [ // actual routing path
210
+ * // { cUSD->CELO exchange },
211
+ * // { CELO->cEUR exchange }
212
+ * // ]
213
+ * // }
214
+ * ```
215
+ */
216
+ export declare function createTwoHopPair(startToken: Address, intermediateToken: Address, endToken: Address, addrToSymbol: Map<Address, TokenSymbol>, directPathMap: Map<string, {
217
+ providerAddr: Address;
218
+ id: string;
219
+ assets: [Address, Address];
220
+ }>): TradablePair | null;
221
+ /**
222
+ * Selects optimal routes from all candidates based on spread data or heuristics.
223
+ *
224
+ * This is the route optimization engine that implements the following logic:
225
+ *
226
+ * **For Single Route**: Use it directly (no optimization needed)
227
+ *
228
+ * **For Multiple Routes**:
229
+ * - If `returnAllRoutes=true`: Return all routes (used for cache generation)
230
+ * - If `returnAllRoutes=false`: Apply optimization to select the best route
231
+ *
232
+ * **Route Selection Strategy**: Delegates to `selectBestRoute()` which uses
233
+ * a multi-tier approach prioritizing cost efficiency and reliability.
234
+ *
235
+ * @param allRoutes - Map of pair ID -> array of possible routes
236
+ * @param returnAllRoutes - Whether to return all routes or optimize selection
237
+ * @param assetMap - Asset map for token symbol lookups during optimization
238
+ * @returns Array of selected optimal routes
239
+ *
240
+ * @example
241
+ * ```typescript
242
+ * // Multiple routes for cUSD-cEUR pair
243
+ * const candidates = new Map([
244
+ * ['cEUR-cUSD', [
245
+ * { path: [cUSD->CELO->cEUR], spreadData: { totalSpreadPercent: 0.5 } },
246
+ * { path: [cUSD->cREAL->cEUR], spreadData: { totalSpreadPercent: 0.3 } },
247
+ * { path: [cUSD->cEUR] } // direct route, no spread data
248
+ * ]]
249
+ * ])
250
+ *
251
+ * const optimal = selectOptimalRoutes(candidates, false, assetMap)
252
+ * // Returns the cUSD->cREAL->cEUR route (lowest spread: 0.3%)
253
+ * ```
254
+ */
255
+ export declare function selectOptimalRoutes(allRoutes: Map<TradablePairID, TradablePair[]>, returnAllRoutes: boolean, addrToSymbol: Map<Address, TokenSymbol>): (TradablePair | TradablePairWithSpread)[];
256
+ /**
257
+ * Selects the best route from candidates using spread data or fallback heuristics.
258
+ *
259
+ * This function implements a sophisticated route selection algorithm with
260
+ * multiple optimization tiers:
261
+ *
262
+ * **Tier 1 - Spread-Based Optimization** (Preferred):
263
+ * - Use routes with spread data (actual cost information)
264
+ * - Select route with lowest `totalSpreadPercent`
265
+ * - This provides the most cost-efficient trading
266
+ *
267
+ * **Tier 2 - Direct Route Preference** (Fallback):
268
+ * - If no spread data available, prefer direct (single-hop) routes
269
+ * - Direct routes have lower execution risk and gas costs
270
+ *
271
+ * **Tier 3 - Major Stablecoin Preference** (Final Fallback):
272
+ * - For two-hop routes, prefer those going through major stablecoins
273
+ * - Major FX currencies like cUSD and cEUR typically have better liquidity
274
+ *
275
+ * **Tier 4 - First Available** (Last Resort):
276
+ * - If no other heuristics apply, use the first route found
277
+ *
278
+ * @param candidates - Array of possible routes for the same token pair
279
+ * @param assetMap - Asset map for token symbol lookups
280
+ * @returns The optimal route selected using the tier system
281
+ *
282
+ * @example
283
+ * ```typescript
284
+ * const candidates = [
285
+ * { path: [A->B->C], spreadData: { totalSpreadPercent: 0.8 } },
286
+ * { path: [A->D->C], spreadData: { totalSpreadPercent: 0.4 } }, // Winner: lowest spread
287
+ * { path: [A->C] }, // direct route, no spread data
288
+ * ]
289
+ *
290
+ * const best = selectBestRoute(candidates, assetMap)
291
+ * // Returns the A->D->C route (0.4% spread)
292
+ * ```
293
+ */
294
+ export declare function selectBestRoute(candidates: TradablePair[], addrToSymbol: Map<Address, TokenSymbol>): TradablePair | TradablePairWithSpread;
295
+ /**
296
+ * Extracts the intermediate token address from a two-hop route.
297
+ * In a two-hop route A->B->C, this function finds token B (the intermediate).
298
+ */
299
+ export declare function getIntermediateToken(route: TradablePair): Address | undefined;
300
+ /**
301
+ * Type guard to check if a Route has spread data.
302
+ */
303
+ export declare function hasSpreadData(pair: TradablePair | TradablePairWithSpread): pair is TradablePairWithSpread;
304
+ export {};