@mento-protocol/mento-sdk 2.0.0-beta.8 → 3.0.0-beta.1

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 (359) hide show
  1. package/README.md +220 -5
  2. package/dist/cache/routes.42220.d.ts +3 -0
  3. package/dist/cache/routes.42220.d.ts.map +1 -0
  4. package/dist/cache/routes.42220.js +112 -0
  5. package/dist/cache/routes.42220.js.map +1 -0
  6. package/dist/cache/tokens.11142220.d.ts +3 -0
  7. package/dist/cache/tokens.11142220.d.ts.map +1 -0
  8. package/dist/cache/tokens.11142220.js +129 -0
  9. package/dist/cache/tokens.11142220.js.map +1 -0
  10. package/dist/cache/tokens.42220.d.ts +3 -0
  11. package/dist/cache/tokens.42220.d.ts.map +1 -0
  12. package/dist/cache/tokens.42220.js +129 -0
  13. package/dist/cache/tokens.42220.js.map +1 -0
  14. package/dist/core/abis/bipoolmanager.d.ts +34 -0
  15. package/dist/core/abis/bipoolmanager.d.ts.map +1 -0
  16. package/dist/core/abis/bipoolmanager.js +72 -0
  17. package/dist/core/abis/bipoolmanager.js.map +1 -0
  18. package/dist/core/abis/broker.d.ts +2 -0
  19. package/dist/core/abis/broker.d.ts.map +1 -0
  20. package/dist/{abis → core/abis}/broker.js +3 -2
  21. package/dist/core/abis/broker.js.map +1 -0
  22. package/dist/core/abis/erc20.d.ts +2 -0
  23. package/dist/core/abis/erc20.d.ts.map +1 -0
  24. package/dist/{abis → core/abis}/erc20.js +5 -2
  25. package/dist/core/abis/erc20.js.map +1 -0
  26. package/dist/core/abis/fpmm.d.ts +34 -0
  27. package/dist/core/abis/fpmm.d.ts.map +1 -0
  28. package/dist/core/abis/fpmm.js +11 -0
  29. package/dist/core/abis/fpmm.js.map +1 -0
  30. package/dist/core/abis/fpmmFactory.d.ts +21 -0
  31. package/dist/core/abis/fpmmFactory.d.ts.map +1 -0
  32. package/dist/core/abis/fpmmFactory.js +9 -0
  33. package/dist/core/abis/fpmmFactory.js.map +1 -0
  34. package/dist/core/abis/index.d.ts +10 -0
  35. package/dist/core/abis/index.d.ts.map +1 -0
  36. package/dist/{abis → core/abis}/index.js +5 -0
  37. package/dist/core/abis/index.js.map +1 -0
  38. package/dist/core/abis/pricingmodule.d.ts +2 -0
  39. package/dist/core/abis/pricingmodule.d.ts.map +1 -0
  40. package/dist/core/abis/pricingmodule.js +6 -0
  41. package/dist/core/abis/pricingmodule.js.map +1 -0
  42. package/dist/core/abis/reserve.d.ts +2 -0
  43. package/dist/core/abis/reserve.d.ts.map +1 -0
  44. package/dist/core/abis/reserve.js +10 -0
  45. package/dist/core/abis/reserve.js.map +1 -0
  46. package/dist/core/abis/router.d.ts +2 -0
  47. package/dist/core/abis/router.d.ts.map +1 -0
  48. package/dist/core/abis/router.js +10 -0
  49. package/dist/core/abis/router.js.map +1 -0
  50. package/dist/core/abis/uniswapV3.d.ts +4 -0
  51. package/dist/core/abis/uniswapV3.d.ts.map +1 -0
  52. package/dist/{abis → core/abis}/uniswapV3.js +7 -6
  53. package/dist/core/abis/uniswapV3.js.map +1 -0
  54. package/dist/core/abis/virtualPool.d.ts +10 -0
  55. package/dist/core/abis/virtualPool.d.ts.map +1 -0
  56. package/dist/core/abis/virtualPool.js +6 -0
  57. package/dist/core/abis/virtualPool.js.map +1 -0
  58. package/dist/core/abis/virtualPoolFactory.d.ts +27 -0
  59. package/dist/core/abis/virtualPoolFactory.d.ts.map +1 -0
  60. package/dist/core/abis/virtualPoolFactory.js +9 -0
  61. package/dist/core/abis/virtualPoolFactory.js.map +1 -0
  62. package/dist/core/constants/aaveConfig.d.ts.map +1 -0
  63. package/dist/core/constants/aaveConfig.js.map +1 -0
  64. package/dist/{constants → core/constants}/addresses.d.ts +4 -5
  65. package/dist/core/constants/addresses.d.ts.map +1 -0
  66. package/dist/core/constants/addresses.js +73 -0
  67. package/dist/core/constants/addresses.js.map +1 -0
  68. package/dist/core/constants/chainId.d.ts +5 -0
  69. package/dist/core/constants/chainId.d.ts.map +1 -0
  70. package/dist/{constants → core/constants}/chainId.js +1 -1
  71. package/dist/core/constants/chainId.js.map +1 -0
  72. package/dist/core/constants/contractNames.d.ts.map +1 -0
  73. package/dist/core/constants/contractNames.js.map +1 -0
  74. package/dist/{constants → core/constants}/index.d.ts +0 -2
  75. package/dist/core/constants/index.d.ts.map +1 -0
  76. package/dist/{constants → core/constants}/index.js +0 -2
  77. package/dist/core/constants/index.js.map +1 -0
  78. package/dist/{constants → core/constants}/mentoAddresses.d.ts +2 -0
  79. package/dist/core/constants/mentoAddresses.d.ts.map +1 -0
  80. package/dist/{constants → core/constants}/mentoAddresses.js +2 -0
  81. package/dist/core/constants/mentoAddresses.js.map +1 -0
  82. package/dist/core/constants/protocolAddresses.d.ts.map +1 -0
  83. package/dist/core/constants/protocolAddresses.js.map +1 -0
  84. package/dist/core/errors/base.d.ts +8 -0
  85. package/dist/core/errors/base.d.ts.map +1 -0
  86. package/dist/core/errors/base.js +17 -0
  87. package/dist/core/errors/base.js.map +1 -0
  88. package/dist/core/errors/index.d.ts +3 -0
  89. package/dist/core/errors/index.d.ts.map +1 -0
  90. package/dist/core/errors/index.js +19 -0
  91. package/dist/core/errors/index.js.map +1 -0
  92. package/dist/core/errors/router.d.ts +8 -0
  93. package/dist/core/errors/router.d.ts.map +1 -0
  94. package/dist/core/errors/router.js +14 -0
  95. package/dist/core/errors/router.js.map +1 -0
  96. package/dist/core/types/contractAddresses.d.ts +39 -0
  97. package/dist/core/types/contractAddresses.d.ts.map +1 -0
  98. package/dist/core/types/contractAddresses.js.map +1 -0
  99. package/dist/{types → core/types}/index.d.ts +2 -1
  100. package/dist/core/types/index.d.ts.map +1 -0
  101. package/dist/{types → core/types}/index.js +2 -1
  102. package/dist/core/types/index.js.map +1 -0
  103. package/dist/core/types/pool.d.ts +35 -0
  104. package/dist/core/types/pool.d.ts.map +1 -0
  105. package/dist/core/types/pool.js +14 -0
  106. package/dist/core/types/pool.js.map +1 -0
  107. package/dist/core/types/provider.d.ts +45 -0
  108. package/dist/core/types/provider.d.ts.map +1 -0
  109. package/dist/core/types/provider.js +4 -0
  110. package/dist/core/types/provider.js.map +1 -0
  111. package/dist/core/types/route.d.ts +62 -0
  112. package/dist/core/types/route.d.ts.map +1 -0
  113. package/dist/{types/provider.js → core/types/route.js} +1 -1
  114. package/dist/core/types/route.js.map +1 -0
  115. package/dist/{types → core/types}/token.d.ts +7 -7
  116. package/dist/core/types/token.d.ts.map +1 -0
  117. package/dist/{types → core/types}/token.js.map +1 -1
  118. package/dist/index.d.ts +39 -46
  119. package/dist/index.d.ts.map +1 -1
  120. package/dist/index.js +57 -81
  121. package/dist/index.js.map +1 -1
  122. package/dist/services/index.d.ts +6 -5
  123. package/dist/services/index.d.ts.map +1 -1
  124. package/dist/services/index.js +6 -5
  125. package/dist/services/index.js.map +1 -1
  126. package/dist/services/pools/PoolService.d.ts +37 -0
  127. package/dist/services/pools/PoolService.d.ts.map +1 -0
  128. package/dist/services/pools/PoolService.js +158 -0
  129. package/dist/services/pools/PoolService.js.map +1 -0
  130. package/dist/services/pools/index.d.ts +2 -0
  131. package/dist/services/pools/index.d.ts.map +1 -0
  132. package/dist/services/pools/index.js +18 -0
  133. package/dist/services/pools/index.js.map +1 -0
  134. package/dist/services/quotes/QuoteService.d.ts +41 -0
  135. package/dist/services/quotes/QuoteService.d.ts.map +1 -0
  136. package/dist/services/quotes/QuoteService.js +61 -0
  137. package/dist/services/quotes/QuoteService.js.map +1 -0
  138. package/dist/services/quotes/index.d.ts +2 -0
  139. package/dist/services/quotes/index.d.ts.map +1 -0
  140. package/dist/services/quotes/index.js +18 -0
  141. package/dist/services/quotes/index.js.map +1 -0
  142. package/dist/services/routes/RouteService.d.ts +109 -0
  143. package/dist/services/routes/RouteService.d.ts.map +1 -0
  144. package/dist/services/routes/RouteService.js +241 -0
  145. package/dist/services/routes/RouteService.js.map +1 -0
  146. package/dist/services/routes/index.d.ts +2 -0
  147. package/dist/services/routes/index.d.ts.map +1 -0
  148. package/dist/services/routes/index.js +18 -0
  149. package/dist/services/routes/index.js.map +1 -0
  150. package/dist/services/swap/SwapService.d.ts +158 -0
  151. package/dist/services/swap/SwapService.d.ts.map +1 -0
  152. package/dist/services/swap/SwapService.js +160 -0
  153. package/dist/services/swap/SwapService.js.map +1 -0
  154. package/dist/services/swap/index.d.ts +2 -0
  155. package/dist/services/swap/index.d.ts.map +1 -0
  156. package/dist/services/swap/index.js +18 -0
  157. package/dist/services/swap/index.js.map +1 -0
  158. package/dist/services/tokens/index.d.ts +2 -0
  159. package/dist/services/tokens/index.d.ts.map +1 -0
  160. package/dist/services/tokens/index.js +18 -0
  161. package/dist/services/tokens/index.js.map +1 -0
  162. package/dist/services/tokens/supply/ISupplyCalculator.d.ts.map +1 -0
  163. package/dist/services/tokens/supply/ISupplyCalculator.js.map +1 -0
  164. package/dist/services/{supply → tokens/supply}/aaveSupplyCalculator.d.ts +4 -3
  165. package/dist/services/tokens/supply/aaveSupplyCalculator.d.ts.map +1 -0
  166. package/dist/services/{supply → tokens/supply}/aaveSupplyCalculator.js +7 -7
  167. package/dist/services/tokens/supply/aaveSupplyCalculator.js.map +1 -0
  168. package/dist/services/tokens/supply/calculatorFactory.d.ts +8 -0
  169. package/dist/services/tokens/supply/calculatorFactory.d.ts.map +1 -0
  170. package/dist/services/tokens/supply/calculatorFactory.js.map +1 -0
  171. package/dist/services/tokens/supply/defaultCalculatorFactory.d.ts +9 -0
  172. package/dist/services/tokens/supply/defaultCalculatorFactory.d.ts.map +1 -0
  173. package/dist/services/{supply → tokens/supply}/defaultCalculatorFactory.js +12 -7
  174. package/dist/services/tokens/supply/defaultCalculatorFactory.js.map +1 -0
  175. package/dist/services/tokens/supply/index.d.ts.map +1 -0
  176. package/dist/services/tokens/supply/index.js.map +1 -0
  177. package/dist/services/tokens/supply/multisigSupplyCalculator.d.ts +9 -0
  178. package/dist/services/tokens/supply/multisigSupplyCalculator.d.ts.map +1 -0
  179. package/dist/services/tokens/supply/multisigSupplyCalculator.js +33 -0
  180. package/dist/services/tokens/supply/multisigSupplyCalculator.js.map +1 -0
  181. package/dist/services/{supply → tokens/supply}/uniV3SupplyCalculator.d.ts +3 -3
  182. package/dist/services/tokens/supply/uniV3SupplyCalculator.d.ts.map +1 -0
  183. package/dist/services/{supply → tokens/supply}/uniV3SupplyCalculator.js +11 -6
  184. package/dist/services/tokens/supply/uniV3SupplyCalculator.js.map +1 -0
  185. package/dist/services/{supplyAdjustmentService.d.ts → tokens/supplyAdjustmentService.d.ts} +7 -2
  186. package/dist/services/tokens/supplyAdjustmentService.d.ts.map +1 -0
  187. package/dist/services/{supplyAdjustmentService.js → tokens/supplyAdjustmentService.js} +14 -11
  188. package/dist/services/tokens/supplyAdjustmentService.js.map +1 -0
  189. package/dist/services/tokens/tokenService.d.ts +33 -0
  190. package/dist/services/tokens/tokenService.d.ts.map +1 -0
  191. package/dist/services/tokens/tokenService.js +136 -0
  192. package/dist/services/tokens/tokenService.js.map +1 -0
  193. package/dist/utils/chainConfig.d.ts +16 -0
  194. package/dist/utils/chainConfig.d.ts.map +1 -0
  195. package/dist/utils/chainConfig.js +62 -0
  196. package/dist/utils/chainConfig.js.map +1 -0
  197. package/dist/utils/costUtils.d.ts +12 -0
  198. package/dist/utils/costUtils.d.ts.map +1 -0
  199. package/dist/utils/costUtils.js +59 -0
  200. package/dist/utils/costUtils.js.map +1 -0
  201. package/dist/utils/index.d.ts +4 -0
  202. package/dist/utils/index.d.ts.map +1 -1
  203. package/dist/utils/index.js +4 -0
  204. package/dist/utils/index.js.map +1 -1
  205. package/dist/utils/pathEncoder.d.ts +28 -0
  206. package/dist/utils/pathEncoder.d.ts.map +1 -0
  207. package/dist/utils/pathEncoder.js +57 -0
  208. package/dist/utils/pathEncoder.js.map +1 -0
  209. package/dist/utils/routeUtils.d.ts +295 -0
  210. package/dist/utils/routeUtils.d.ts.map +1 -0
  211. package/dist/utils/routeUtils.js +371 -0
  212. package/dist/utils/routeUtils.js.map +1 -0
  213. package/dist/utils/routes.d.ts +9 -0
  214. package/dist/utils/routes.d.ts.map +1 -0
  215. package/dist/utils/routes.js +49 -0
  216. package/dist/utils/routes.js.map +1 -0
  217. package/dist/utils/sortUtils.d.ts +24 -0
  218. package/dist/utils/sortUtils.d.ts.map +1 -0
  219. package/dist/utils/sortUtils.js +39 -0
  220. package/dist/utils/sortUtils.js.map +1 -0
  221. package/dist/utils/tokens.d.ts +78 -0
  222. package/dist/utils/tokens.d.ts.map +1 -0
  223. package/dist/utils/tokens.js +181 -0
  224. package/dist/utils/tokens.js.map +1 -0
  225. package/package.json +10 -23
  226. package/dist/abis/bipoolmanager.d.ts +0 -15
  227. package/dist/abis/bipoolmanager.d.ts.map +0 -1
  228. package/dist/abis/bipoolmanager.js +0 -26
  229. package/dist/abis/bipoolmanager.js.map +0 -1
  230. package/dist/abis/broker.d.ts +0 -2
  231. package/dist/abis/broker.d.ts.map +0 -1
  232. package/dist/abis/broker.js.map +0 -1
  233. package/dist/abis/erc20.d.ts +0 -2
  234. package/dist/abis/erc20.d.ts.map +0 -1
  235. package/dist/abis/erc20.js.map +0 -1
  236. package/dist/abis/index.d.ts +0 -5
  237. package/dist/abis/index.d.ts.map +0 -1
  238. package/dist/abis/index.js.map +0 -1
  239. package/dist/abis/pricingmodule.d.ts +0 -2
  240. package/dist/abis/pricingmodule.d.ts.map +0 -1
  241. package/dist/abis/pricingmodule.js +0 -5
  242. package/dist/abis/pricingmodule.js.map +0 -1
  243. package/dist/abis/reserve.d.ts +0 -2
  244. package/dist/abis/reserve.d.ts.map +0 -1
  245. package/dist/abis/reserve.js +0 -9
  246. package/dist/abis/reserve.js.map +0 -1
  247. package/dist/abis/uniswapV3.d.ts +0 -4
  248. package/dist/abis/uniswapV3.d.ts.map +0 -1
  249. package/dist/abis/uniswapV3.js.map +0 -1
  250. package/dist/adapters/implementations/ethersAdapter.d.ts +0 -9
  251. package/dist/adapters/implementations/ethersAdapter.d.ts.map +0 -1
  252. package/dist/adapters/implementations/ethersAdapter.js +0 -19
  253. package/dist/adapters/implementations/ethersAdapter.js.map +0 -1
  254. package/dist/adapters/implementations/ethersV5Adapter.d.ts +0 -9
  255. package/dist/adapters/implementations/ethersV5Adapter.d.ts.map +0 -1
  256. package/dist/adapters/implementations/ethersV5Adapter.js +0 -19
  257. package/dist/adapters/implementations/ethersV5Adapter.js.map +0 -1
  258. package/dist/adapters/implementations/viemAdapter.d.ts +0 -9
  259. package/dist/adapters/implementations/viemAdapter.d.ts.map +0 -1
  260. package/dist/adapters/implementations/viemAdapter.js +0 -26
  261. package/dist/adapters/implementations/viemAdapter.js.map +0 -1
  262. package/dist/adapters/index.d.ts +0 -5
  263. package/dist/adapters/index.d.ts.map +0 -1
  264. package/dist/adapters/index.js +0 -10
  265. package/dist/adapters/index.js.map +0 -1
  266. package/dist/adapters/proxies/ethersAdapterProxy.d.ts +0 -25
  267. package/dist/adapters/proxies/ethersAdapterProxy.d.ts.map +0 -1
  268. package/dist/adapters/proxies/ethersAdapterProxy.js +0 -71
  269. package/dist/adapters/proxies/ethersAdapterProxy.js.map +0 -1
  270. package/dist/adapters/proxies/ethersV5AdapterProxy.d.ts +0 -25
  271. package/dist/adapters/proxies/ethersV5AdapterProxy.d.ts.map +0 -1
  272. package/dist/adapters/proxies/ethersV5AdapterProxy.js +0 -71
  273. package/dist/adapters/proxies/ethersV5AdapterProxy.js.map +0 -1
  274. package/dist/adapters/proxies/viemAdapterProxy.d.ts +0 -25
  275. package/dist/adapters/proxies/viemAdapterProxy.d.ts.map +0 -1
  276. package/dist/adapters/proxies/viemAdapterProxy.js +0 -71
  277. package/dist/adapters/proxies/viemAdapterProxy.js.map +0 -1
  278. package/dist/constants/aaveConfig.d.ts.map +0 -1
  279. package/dist/constants/aaveConfig.js.map +0 -1
  280. package/dist/constants/addresses.d.ts.map +0 -1
  281. package/dist/constants/addresses.js +0 -61
  282. package/dist/constants/addresses.js.map +0 -1
  283. package/dist/constants/chainId.d.ts +0 -5
  284. package/dist/constants/chainId.d.ts.map +0 -1
  285. package/dist/constants/chainId.js.map +0 -1
  286. package/dist/constants/contractNames.d.ts.map +0 -1
  287. package/dist/constants/contractNames.js.map +0 -1
  288. package/dist/constants/index.d.ts.map +0 -1
  289. package/dist/constants/index.js.map +0 -1
  290. package/dist/constants/mentoAddresses.d.ts.map +0 -1
  291. package/dist/constants/mentoAddresses.js.map +0 -1
  292. package/dist/constants/proposalState.d.ts +0 -11
  293. package/dist/constants/proposalState.d.ts.map +0 -1
  294. package/dist/constants/proposalState.js +0 -15
  295. package/dist/constants/proposalState.js.map +0 -1
  296. package/dist/constants/protocolAddresses.d.ts.map +0 -1
  297. package/dist/constants/protocolAddresses.js.map +0 -1
  298. package/dist/constants/stableTokenMetadata.d.ts +0 -12
  299. package/dist/constants/stableTokenMetadata.d.ts.map +0 -1
  300. package/dist/constants/stableTokenMetadata.js +0 -14
  301. package/dist/constants/stableTokenMetadata.js.map +0 -1
  302. package/dist/services/collateralAssetService.d.ts +0 -8
  303. package/dist/services/collateralAssetService.d.ts.map +0 -1
  304. package/dist/services/collateralAssetService.js +0 -47
  305. package/dist/services/collateralAssetService.js.map +0 -1
  306. package/dist/services/stableTokenService.d.ts +0 -9
  307. package/dist/services/stableTokenService.d.ts.map +0 -1
  308. package/dist/services/stableTokenService.js +0 -40
  309. package/dist/services/stableTokenService.js.map +0 -1
  310. package/dist/services/supply/ISupplyCalculator.d.ts.map +0 -1
  311. package/dist/services/supply/ISupplyCalculator.js.map +0 -1
  312. package/dist/services/supply/aaveSupplyCalculator.d.ts.map +0 -1
  313. package/dist/services/supply/aaveSupplyCalculator.js.map +0 -1
  314. package/dist/services/supply/calculatorFactory.d.ts +0 -8
  315. package/dist/services/supply/calculatorFactory.d.ts.map +0 -1
  316. package/dist/services/supply/calculatorFactory.js.map +0 -1
  317. package/dist/services/supply/defaultCalculatorFactory.d.ts +0 -9
  318. package/dist/services/supply/defaultCalculatorFactory.d.ts.map +0 -1
  319. package/dist/services/supply/defaultCalculatorFactory.js.map +0 -1
  320. package/dist/services/supply/index.d.ts.map +0 -1
  321. package/dist/services/supply/index.js.map +0 -1
  322. package/dist/services/supply/multisigSupplyCalculator.d.ts +0 -9
  323. package/dist/services/supply/multisigSupplyCalculator.d.ts.map +0 -1
  324. package/dist/services/supply/multisigSupplyCalculator.js +0 -21
  325. package/dist/services/supply/multisigSupplyCalculator.js.map +0 -1
  326. package/dist/services/supply/uniV3SupplyCalculator.d.ts.map +0 -1
  327. package/dist/services/supply/uniV3SupplyCalculator.js.map +0 -1
  328. package/dist/services/supplyAdjustmentService.d.ts.map +0 -1
  329. package/dist/services/supplyAdjustmentService.js.map +0 -1
  330. package/dist/services/tokenMetadataService.d.ts +0 -8
  331. package/dist/services/tokenMetadataService.d.ts.map +0 -1
  332. package/dist/services/tokenMetadataService.js +0 -44
  333. package/dist/services/tokenMetadataService.js.map +0 -1
  334. package/dist/types/contractAddresses.d.ts +0 -23
  335. package/dist/types/contractAddresses.d.ts.map +0 -1
  336. package/dist/types/contractAddresses.js.map +0 -1
  337. package/dist/types/exchange.d.ts +0 -6
  338. package/dist/types/exchange.d.ts.map +0 -1
  339. package/dist/types/exchange.js +0 -3
  340. package/dist/types/exchange.js.map +0 -1
  341. package/dist/types/index.d.ts.map +0 -1
  342. package/dist/types/index.js.map +0 -1
  343. package/dist/types/provider.d.ts +0 -11
  344. package/dist/types/provider.d.ts.map +0 -1
  345. package/dist/types/provider.js.map +0 -1
  346. package/dist/types/token.d.ts.map +0 -1
  347. /package/dist/{constants → core/constants}/aaveConfig.d.ts +0 -0
  348. /package/dist/{constants → core/constants}/aaveConfig.js +0 -0
  349. /package/dist/{constants → core/constants}/contractNames.d.ts +0 -0
  350. /package/dist/{constants → core/constants}/contractNames.js +0 -0
  351. /package/dist/{constants → core/constants}/protocolAddresses.d.ts +0 -0
  352. /package/dist/{constants → core/constants}/protocolAddresses.js +0 -0
  353. /package/dist/{types → core/types}/contractAddresses.js +0 -0
  354. /package/dist/{types → core/types}/token.js +0 -0
  355. /package/dist/services/{supply → tokens/supply}/ISupplyCalculator.d.ts +0 -0
  356. /package/dist/services/{supply → tokens/supply}/ISupplyCalculator.js +0 -0
  357. /package/dist/services/{supply → tokens/supply}/calculatorFactory.js +0 -0
  358. /package/dist/services/{supply → tokens/supply}/index.d.ts +0 -0
  359. /package/dist/services/{supply → tokens/supply}/index.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenService.d.ts","sourceRoot":"","sources":["../../../src/services/tokens/tokenService.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAkBtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAExC,qBAAa,YAAY;IAGX,OAAO,CAAC,YAAY;IAAgB,OAAO,CAAC,OAAO;IAF/D,OAAO,CAAC,uBAAuB,CAAyB;gBAEpC,YAAY,EAAE,YAAY,EAAU,OAAO,EAAE,MAAM;IAQvE;;;;OAIG;YACW,gBAAgB;IAqC9B;;;;OAIG;YACW,cAAc;IAa5B;;;;OAIG;IACU,eAAe,CAAC,aAAa,UAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAuC1E;;;;OAIG;IACU,mBAAmB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;CA2C/D"}
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TokenService = void 0;
4
+ const abis_1 = require("../../core/abis");
5
+ const constants_1 = require("../../core/constants");
6
+ const utils_1 = require("../../utils");
7
+ const supplyAdjustmentService_1 = require("./supplyAdjustmentService");
8
+ const supply_1 = require("./supply");
9
+ class TokenService {
10
+ constructor(publicClient, chainId) {
11
+ this.publicClient = publicClient;
12
+ this.chainId = chainId;
13
+ this.supplyAdjustmentService = new supplyAdjustmentService_1.SupplyAdjustmentService(publicClient, chainId, new supply_1.DefaultCalculatorFactory());
14
+ }
15
+ /**
16
+ * Get token metadata (name, symbol, decimals)
17
+ * @param address - Token contract address
18
+ * @returns Token metadata
19
+ */
20
+ async getTokenMetadata(address) {
21
+ const [name, symbol, decimals] = await Promise.all([
22
+ (0, utils_1.retryOperation)(() => this.publicClient.readContract({
23
+ address: address,
24
+ abi: abis_1.ERC20_ABI,
25
+ functionName: 'name',
26
+ args: [],
27
+ })),
28
+ (0, utils_1.retryOperation)(() => this.publicClient.readContract({
29
+ address: address,
30
+ abi: abis_1.ERC20_ABI,
31
+ functionName: 'symbol',
32
+ args: [],
33
+ })),
34
+ (0, utils_1.retryOperation)(() => this.publicClient.readContract({
35
+ address: address,
36
+ abi: abis_1.ERC20_ABI,
37
+ functionName: 'decimals',
38
+ args: [],
39
+ })),
40
+ ]);
41
+ return {
42
+ name: name,
43
+ symbol: symbol,
44
+ decimals: Number(decimals),
45
+ };
46
+ }
47
+ /**
48
+ * Get total supply of a token
49
+ * @param address - Token contract address
50
+ * @returns Total supply as string
51
+ */
52
+ async getTotalSupply(address) {
53
+ const totalSupply = await (0, utils_1.retryOperation)(() => this.publicClient.readContract({
54
+ address: address,
55
+ abi: abis_1.ERC20_ABI,
56
+ functionName: 'totalSupply',
57
+ args: [],
58
+ }));
59
+ return totalSupply.toString();
60
+ }
61
+ /**
62
+ * Get all stable tokens from the Reserve contract
63
+ * @param includeSupply - Whether to fetch total supply and apply adjustments
64
+ * @returns Array of stable tokens
65
+ */
66
+ async getStableTokens(includeSupply = true) {
67
+ const reserveAddress = (0, constants_1.getContractAddress)(this.chainId, constants_1.RESERVE);
68
+ const tokenAddresses = (await this.publicClient.readContract({
69
+ address: reserveAddress,
70
+ abi: abis_1.RESERVE_ABI,
71
+ functionName: 'getTokens',
72
+ args: [],
73
+ }));
74
+ const tokens = [];
75
+ for (const address of tokenAddresses) {
76
+ const metadata = await this.getTokenMetadata(address);
77
+ let totalSupply = '0';
78
+ if (includeSupply) {
79
+ totalSupply = await this.getTotalSupply(address);
80
+ }
81
+ const token = {
82
+ address,
83
+ ...metadata,
84
+ totalSupply,
85
+ };
86
+ if (includeSupply) {
87
+ const adjustedSupply = await this.supplyAdjustmentService.getAdjustedSupply(token);
88
+ token.totalSupply = adjustedSupply;
89
+ }
90
+ tokens.push(token);
91
+ }
92
+ return tokens;
93
+ }
94
+ // TODO: V3 - How does USD.m fit in here?
95
+ /**
96
+ * Get all collateral assets from exchanges
97
+ * Filters tokens that are marked as collateral in the Reserve contract
98
+ * @returns Array of collateral assets
99
+ */
100
+ async getCollateralAssets() {
101
+ const biPoolManagerAddress = (0, constants_1.getContractAddress)(this.chainId, constants_1.BIPOOLMANAGER);
102
+ const reserveAddress = (0, constants_1.getContractAddress)(this.chainId, constants_1.RESERVE);
103
+ // TODO: V3 - Should instead use the factories.
104
+ // Get all exchanges to find unique token addresses
105
+ const exchanges = (await (0, utils_1.retryOperation)(() => this.publicClient.readContract({
106
+ address: biPoolManagerAddress,
107
+ abi: abis_1.BIPOOL_MANAGER_ABI,
108
+ functionName: 'getExchanges',
109
+ })));
110
+ // Extract unique token addresses from exchanges
111
+ const uniqueAddresses = new Set();
112
+ for (const exchange of exchanges) {
113
+ exchange.assets.forEach((address) => uniqueAddresses.add(address));
114
+ }
115
+ // Check which tokens are collateral assets and get their metadata
116
+ const assets = [];
117
+ for (const address of uniqueAddresses) {
118
+ const isCollateral = (await (0, utils_1.retryOperation)(() => this.publicClient.readContract({
119
+ address: reserveAddress,
120
+ abi: abis_1.RESERVE_ABI,
121
+ functionName: 'isCollateralAsset',
122
+ args: [address],
123
+ })));
124
+ if (isCollateral) {
125
+ const metadata = await this.getTokenMetadata(address);
126
+ assets.push({
127
+ address,
128
+ ...metadata,
129
+ });
130
+ }
131
+ }
132
+ return assets;
133
+ }
134
+ }
135
+ exports.TokenService = TokenService;
136
+ //# sourceMappingURL=tokenService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenService.js","sourceRoot":"","sources":["../../../src/services/tokens/tokenService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { type Chain } from 'viem/chains';
2
+ /**
3
+ * Get the default RPC URL for a given chain ID
4
+ * @param chainId - The chain ID
5
+ * @returns The default RPC URL for the chain
6
+ * @throws Error if chain ID is not supported
7
+ */
8
+ export declare function getDefaultRpcUrl(chainId: number): string;
9
+ /**
10
+ * Get the viem chain configuration for a given chain ID
11
+ * @param chainId - The chain ID
12
+ * @returns The viem chain configuration
13
+ * @throws Error if chain ID is not supported
14
+ */
15
+ export declare function getChainConfig(chainId: number): Chain;
16
+ //# sourceMappingURL=chainConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chainConfig.d.ts","sourceRoot":"","sources":["../../src/utils/chainConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,KAAK,EAAE,MAAM,aAAa,CAAA;AA2B9C;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CASxD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CASrD"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDefaultRpcUrl = getDefaultRpcUrl;
4
+ exports.getChainConfig = getChainConfig;
5
+ const chains_1 = require("viem/chains");
6
+ const viem_1 = require("viem");
7
+ const chainId_1 = require("../core/constants/chainId");
8
+ // Celo Sepolia chain definition (not available in viem/chains yet)
9
+ const celoSepolia = (0, viem_1.defineChain)({
10
+ id: 11142220,
11
+ name: 'Celo Sepolia',
12
+ nativeCurrency: {
13
+ decimals: 18,
14
+ name: 'CELO',
15
+ symbol: 'CELO',
16
+ },
17
+ rpcUrls: {
18
+ default: {
19
+ http: ['https://forno.celo-sepolia.celo-testnet.org'],
20
+ },
21
+ },
22
+ blockExplorers: {
23
+ default: {
24
+ name: 'Celo Explorer',
25
+ url: 'https://sepolia.celoscan.io',
26
+ },
27
+ },
28
+ testnet: true,
29
+ });
30
+ /**
31
+ * Get the default RPC URL for a given chain ID
32
+ * @param chainId - The chain ID
33
+ * @returns The default RPC URL for the chain
34
+ * @throws Error if chain ID is not supported
35
+ */
36
+ function getDefaultRpcUrl(chainId) {
37
+ switch (chainId) {
38
+ case chainId_1.ChainId.CELO:
39
+ return 'https://forno.celo.org';
40
+ case chainId_1.ChainId.CELO_SEPOLIA:
41
+ return 'https://forno.celo-sepolia.celo-testnet.org';
42
+ default:
43
+ throw new Error(`Unsupported chain ID: ${chainId}`);
44
+ }
45
+ }
46
+ /**
47
+ * Get the viem chain configuration for a given chain ID
48
+ * @param chainId - The chain ID
49
+ * @returns The viem chain configuration
50
+ * @throws Error if chain ID is not supported
51
+ */
52
+ function getChainConfig(chainId) {
53
+ switch (chainId) {
54
+ case chainId_1.ChainId.CELO:
55
+ return chains_1.celo;
56
+ case chainId_1.ChainId.CELO_SEPOLIA:
57
+ return celoSepolia;
58
+ default:
59
+ throw new Error(`Unsupported chain ID: ${chainId}`);
60
+ }
61
+ }
62
+ //# sourceMappingURL=chainConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chainConfig.js","sourceRoot":"","sources":["../../src/utils/chainConfig.ts"],"names":[],"mappings":";;AAiCA,4CASC;AAQD,wCASC;AA3DD,wCAA8C;AAC9C,+BAAkC;AAClC,uDAAmD;AAEnD,mEAAmE;AACnE,MAAM,WAAW,GAAG,IAAA,kBAAW,EAAC;IAC9B,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,cAAc;IACpB,cAAc,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,MAAM;KACf;IACD,OAAO,EAAE;QACP,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,6CAA6C,CAAC;SACtD;KACF;IACD,cAAc,EAAE;QACd,OAAO,EAAE;YACP,IAAI,EAAE,eAAe;YACrB,GAAG,EAAE,6BAA6B;SACnC;KACF;IACD,OAAO,EAAE,IAAI;CACd,CAAC,CAAA;AAEF;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,OAAe;IAC9C,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,iBAAO,CAAC,IAAI;YACf,OAAO,wBAAwB,CAAA;QACjC,KAAK,iBAAO,CAAC,YAAY;YACvB,OAAO,6CAA6C,CAAA;QACtD;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAA;IACvD,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,OAAe;IAC5C,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,iBAAO,CAAC,IAAI;YACf,OAAO,aAAI,CAAA;QACb,KAAK,iBAAO,CAAC,YAAY;YACvB,OAAO,WAAW,CAAA;QACpB;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAA;IACvD,CAAC;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { Pool } from '../core/types';
2
+ import type { PublicClient } from 'viem';
3
+ /**
4
+ * Calculate cost percentage for a pool based on its type
5
+ * Returns cost as a percentage (e.g., 0.5 = 0.5%)
6
+ *
7
+ * @param pool - The pool to calculate cost for
8
+ * @param publicClient - Viem public client for RPC calls
9
+ * @returns Cost percentage for the pool
10
+ */
11
+ export declare function getPoolCostPercent(pool: Pool, publicClient: PublicClient): Promise<number>;
12
+ //# sourceMappingURL=costUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"costUtils.d.ts","sourceRoot":"","sources":["../../src/utils/costUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,IAAI,EAAE,MAAM,eAAe,CAAA;AAE9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAGxC;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAQhG"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPoolCostPercent = getPoolCostPercent;
4
+ const types_1 = require("../core/types");
5
+ const abis_1 = require("../core/abis");
6
+ const virtualPool_1 = require("../core/abis/virtualPool");
7
+ /**
8
+ * Calculate cost percentage for a pool based on its type
9
+ * Returns cost as a percentage (e.g., 0.5 = 0.5%)
10
+ *
11
+ * @param pool - The pool to calculate cost for
12
+ * @param publicClient - Viem public client for RPC calls
13
+ * @returns Cost percentage for the pool
14
+ */
15
+ async function getPoolCostPercent(pool, publicClient) {
16
+ if (pool.poolType === types_1.PoolType.FPMM) {
17
+ return getFPMMCostPercent(pool.poolAddr, publicClient);
18
+ }
19
+ else if (pool.poolType === types_1.PoolType.Virtual) {
20
+ return getVirtualPoolCostPercent(pool.poolAddr, publicClient);
21
+ }
22
+ else {
23
+ throw new Error('Invalid pool type');
24
+ }
25
+ }
26
+ /**
27
+ * Calculate cost for FPMM pools
28
+ * FPMM pools use lpFee + protocolFee in basis points (10000 = 100%)
29
+ */
30
+ async function getFPMMCostPercent(poolAddress, publicClient) {
31
+ const [lpFee, protocolFee] = await Promise.all([
32
+ publicClient.readContract({
33
+ address: poolAddress,
34
+ abi: abis_1.FPMM_ABI,
35
+ functionName: 'lpFee',
36
+ }),
37
+ publicClient.readContract({
38
+ address: poolAddress,
39
+ abi: abis_1.FPMM_ABI,
40
+ functionName: 'protocolFee',
41
+ }),
42
+ ]);
43
+ // Convert from basis points to percentage
44
+ const totalBasisPoints = Number(lpFee) + Number(protocolFee);
45
+ return totalBasisPoints / 100;
46
+ }
47
+ /**
48
+ * Calculate cost for Virtual pools
49
+ */
50
+ async function getVirtualPoolCostPercent(poolAddress, publicClient) {
51
+ const protocolFee = await publicClient.readContract({
52
+ address: poolAddress,
53
+ abi: virtualPool_1.VIRTUAL_POOL_ABI,
54
+ functionName: 'protocolFee',
55
+ });
56
+ //TODO: Confirim calculation
57
+ return Number(protocolFee) / 100;
58
+ }
59
+ //# sourceMappingURL=costUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"costUtils.js","sourceRoot":"","sources":["../../src/utils/costUtils.ts"],"names":[],"mappings":";;AAaA,gDAQC;AArBD,yCAA8C;AAC9C,uCAAuC;AAEvC,0DAA2D;AAE3D;;;;;;;GAOG;AACI,KAAK,UAAU,kBAAkB,CAAC,IAAU,EAAE,YAA0B;IAC7E,IAAI,IAAI,CAAC,QAAQ,KAAK,gBAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,OAAO,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IACxD,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,gBAAQ,CAAC,OAAO,EAAE,CAAC;QAC9C,OAAO,yBAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IAC/D,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;IACtC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,kBAAkB,CAAC,WAAmB,EAAE,YAA0B;IAC/E,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC7C,YAAY,CAAC,YAAY,CAAC;YACxB,OAAO,EAAE,WAA4B;YACrC,GAAG,EAAE,eAAQ;YACb,YAAY,EAAE,OAAO;SACtB,CAAoB;QACrB,YAAY,CAAC,YAAY,CAAC;YACxB,OAAO,EAAE,WAA4B;YACrC,GAAG,EAAE,eAAQ;YACb,YAAY,EAAE,aAAa;SAC5B,CAAoB;KACtB,CAAC,CAAA;IAEF,0CAA0C;IAC1C,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;IAC5D,OAAO,gBAAgB,GAAG,GAAG,CAAA;AAC/B,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,yBAAyB,CAAC,WAAmB,EAAE,YAA0B;IACtF,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC;QAClD,OAAO,EAAE,WAA4B;QACrC,GAAG,EAAE,8BAAgB;QACrB,YAAY,EAAE,aAAa;KAC5B,CAAC,CAAA;IAEF,4BAA4B;IAC5B,OAAO,MAAM,CAAC,WAAW,CAAC,GAAG,GAAG,CAAA;AAClC,CAAC"}
@@ -1,2 +1,6 @@
1
1
  export * from './retry';
2
+ export * from './chainConfig';
3
+ export * from './routes';
4
+ export * from './sortUtils';
5
+ export * from './pathEncoder';
2
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA"}
@@ -15,4 +15,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./retry"), exports);
18
+ __exportStar(require("./chainConfig"), exports);
19
+ __exportStar(require("./routes"), exports);
20
+ __exportStar(require("./sortUtils"), exports);
21
+ __exportStar(require("./pathEncoder"), exports);
18
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,gDAA6B;AAC7B,2CAAwB;AACxB,8CAA2B;AAC3B,gDAA6B"}
@@ -0,0 +1,28 @@
1
+ import { Address } from 'viem';
2
+ import { Pool } from '../core/types';
3
+ /**
4
+ * Route structure expected by the Router contract's getAmountsOut and swapTokensForTokens functions
5
+ */
6
+ export interface RouterRoute {
7
+ from: Address;
8
+ to: Address;
9
+ factory: Address;
10
+ }
11
+ /**
12
+ * Converts a route path to the format expected by the Router contract.
13
+ * Used by both QuoteService (getAmountsOut) and SwapService (swapTokensForTokens).
14
+ *
15
+ * @param path - The route path (array of pools)
16
+ * @param tokenIn - The input token address (determines swap direction)
17
+ * @param _tokenOut - The output token address (unused but kept for API clarity)
18
+ * @returns Array of RouterRoute objects for the contract call
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * const route = await routeService.findRoute(cUSD, CELO)
23
+ * const routerRoutes = encodeRoutePath(route.path, cUSD, CELO)
24
+ * // routerRoutes can now be passed to Router.getAmountsOut or Router.swapTokensForTokens
25
+ * ```
26
+ */
27
+ export declare function encodeRoutePath(path: Pool[], tokenIn: Address, _tokenOut: Address): RouterRoute[];
28
+ //# sourceMappingURL=pathEncoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathEncoder.d.ts","sourceRoot":"","sources":["../../src/utils/pathEncoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAEpC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAA;IACb,EAAE,EAAE,OAAO,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,WAAW,EAAE,CA4CjG"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.encodeRoutePath = encodeRoutePath;
4
+ /**
5
+ * Converts a route path to the format expected by the Router contract.
6
+ * Used by both QuoteService (getAmountsOut) and SwapService (swapTokensForTokens).
7
+ *
8
+ * @param path - The route path (array of pools)
9
+ * @param tokenIn - The input token address (determines swap direction)
10
+ * @param _tokenOut - The output token address (unused but kept for API clarity)
11
+ * @returns Array of RouterRoute objects for the contract call
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * const route = await routeService.findRoute(cUSD, CELO)
16
+ * const routerRoutes = encodeRoutePath(route.path, cUSD, CELO)
17
+ * // routerRoutes can now be passed to Router.getAmountsOut or Router.swapTokensForTokens
18
+ * ```
19
+ */
20
+ function encodeRoutePath(path, tokenIn, _tokenOut) {
21
+ const routes = [];
22
+ const tokenInLower = tokenIn.toLowerCase();
23
+ // Check if we need to reverse the path
24
+ // The path is stored in canonical order, but we may need to traverse it backwards
25
+ const firstPool = path[0];
26
+ const startsWithTokenIn = firstPool.token0.toLowerCase() === tokenInLower || firstPool.token1.toLowerCase() === tokenInLower;
27
+ // If tokenIn isn't in the first pool, reverse the path
28
+ const orderedPath = startsWithTokenIn ? path : [...path].reverse();
29
+ let currentTokenIn = tokenInLower;
30
+ for (const pool of orderedPath) {
31
+ const token0 = pool.token0.toLowerCase();
32
+ const token1 = pool.token1.toLowerCase();
33
+ // Determine direction: which token is the input for this hop?
34
+ let from;
35
+ let to;
36
+ if (currentTokenIn === token0) {
37
+ from = pool.token0;
38
+ to = pool.token1;
39
+ }
40
+ else if (currentTokenIn === token1) {
41
+ from = pool.token1;
42
+ to = pool.token0;
43
+ }
44
+ else {
45
+ throw new Error(`Token ${currentTokenIn} not found in pool ${pool.poolAddr}`);
46
+ }
47
+ routes.push({
48
+ from,
49
+ to,
50
+ factory: pool.factoryAddr,
51
+ });
52
+ // The output of this hop becomes the input of the next hop
53
+ currentTokenIn = to.toLowerCase();
54
+ }
55
+ return routes;
56
+ }
57
+ //# sourceMappingURL=pathEncoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathEncoder.js","sourceRoot":"","sources":["../../src/utils/pathEncoder.ts"],"names":[],"mappings":";;AA4BA,0CA4CC;AA5DD;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,eAAe,CAAC,IAAY,EAAE,OAAgB,EAAE,SAAkB;IAChF,MAAM,MAAM,GAAkB,EAAE,CAAA;IAChC,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;IAE1C,uCAAuC;IACvC,kFAAkF;IAClF,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IACzB,MAAM,iBAAiB,GACrB,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,YAAY,IAAI,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,YAAY,CAAA;IAEpG,uDAAuD;IACvD,MAAM,WAAW,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,CAAA;IAElE,IAAI,cAAc,GAAG,YAAY,CAAA;IAEjC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA;QAExC,8DAA8D;QAC9D,IAAI,IAAa,CAAA;QACjB,IAAI,EAAW,CAAA;QAEf,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;YAC9B,IAAI,GAAG,IAAI,CAAC,MAAiB,CAAA;YAC7B,EAAE,GAAG,IAAI,CAAC,MAAiB,CAAA;QAC7B,CAAC;aAAM,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;YACrC,IAAI,GAAG,IAAI,CAAC,MAAiB,CAAA;YAC7B,EAAE,GAAG,IAAI,CAAC,MAAiB,CAAA;QAC7B,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,SAAS,cAAc,sBAAsB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC/E,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,EAAE;YACF,OAAO,EAAE,IAAI,CAAC,WAAsB;SACrC,CAAC,CAAA;QAEF,2DAA2D;QAC3D,cAAc,GAAG,EAAE,CAAC,WAAW,EAAE,CAAA;IACnC,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}