@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,160 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SwapService = void 0;
4
+ const viem_1 = require("viem");
5
+ const abis_1 = require("../../core/abis");
6
+ const constants_1 = require("../../core/constants");
7
+ const pathEncoder_1 = require("../../utils/pathEncoder");
8
+ /**
9
+ * Service for building token swap transactions on the Mento protocol.
10
+ * Returns transaction parameters that can be executed by any wallet.
11
+ */
12
+ class SwapService {
13
+ constructor(publicClient, chainId, routeService, quoteService) {
14
+ this.publicClient = publicClient;
15
+ this.chainId = chainId;
16
+ this.routeService = routeService;
17
+ this.quoteService = quoteService;
18
+ }
19
+ /**
20
+ * Builds a complete swap transaction including approval if needed.
21
+ * This is the recommended method for most use cases.
22
+ *
23
+ * @param tokenIn - The address of the input token
24
+ * @param tokenOut - The address of the output token
25
+ * @param amountIn - The amount of input tokens (in wei/smallest unit)
26
+ * @param recipient - The address to receive the output tokens
27
+ * @param owner - The address that owns the input tokens (needed to check allowance)
28
+ * @param options - Swap configuration options (slippage, deadline)
29
+ * @param route - Optional pre-fetched route for better performance
30
+ * @returns Combined transaction with approval (if needed) and swap params
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * const { approval, swap } = await mento.swap.buildSwapTransaction(
35
+ * cUSD,
36
+ * CELO,
37
+ * parseUnits('100', 18),
38
+ * recipientAddress,
39
+ * ownerAddress,
40
+ * { slippageTolerance: 0.5 }
41
+ * )
42
+ *
43
+ * // Execute approval if needed
44
+ * if (approval) {
45
+ * await walletClient.sendTransaction(approval)
46
+ * }
47
+ *
48
+ * // Execute swap
49
+ * await walletClient.sendTransaction(swap.params)
50
+ * ```
51
+ */
52
+ async buildSwapTransaction(tokenIn, tokenOut, amountIn, recipient, owner, options, route) {
53
+ // Build swap params first
54
+ const swap = await this.buildSwapParams(tokenIn, tokenOut, amountIn, recipient, options, route);
55
+ // Check if approval is needed
56
+ const currentAllowance = await this.getAllowance(tokenIn, owner);
57
+ const approval = currentAllowance < amountIn ? this.buildApprovalParams(tokenIn, amountIn) : null;
58
+ return { approval, swap };
59
+ }
60
+ /**
61
+ * Builds swap transaction parameters without executing the transaction.
62
+ * Does NOT check or handle token approval - use buildSwapTransaction for that.
63
+ *
64
+ * @param tokenIn - The address of the input token
65
+ * @param tokenOut - The address of the output token
66
+ * @param amountIn - The amount of input tokens (in wei/smallest unit)
67
+ * @param recipient - The address to receive the output tokens
68
+ * @param options - Swap configuration options (slippage, deadline)
69
+ * @param route - Optional pre-fetched route for better performance
70
+ * @returns Detailed swap parameters including transaction data
71
+ *
72
+ * @example
73
+ * ```typescript
74
+ * const swapDetails = await mento.swap.buildSwapParams(
75
+ * cUSD,
76
+ * CELO,
77
+ * parseUnits('100', 18),
78
+ * recipientAddress,
79
+ * { slippageTolerance: 0.5 }
80
+ * )
81
+ *
82
+ * // Execute with any wallet (assumes approval already granted)
83
+ * await walletClient.sendTransaction(swapDetails.params)
84
+ * ```
85
+ */
86
+ async buildSwapParams(tokenIn, tokenOut, amountIn, recipient, options, route) {
87
+ // Find route if not provided
88
+ if (!route) {
89
+ route = await this.routeService.findRoute(tokenIn, tokenOut);
90
+ }
91
+ const expectedAmountOut = await this.quoteService.getAmountOut(tokenIn, tokenOut, amountIn, route);
92
+ const amountOutMin = this.calculateMinAmountOut(expectedAmountOut, options.slippageTolerance);
93
+ // Set deadline (default: 20 minutes from now)
94
+ const deadline = options.deadline ?? BigInt(Math.floor(Date.now() / 1000) + 20 * 60);
95
+ const routerRoutes = (0, pathEncoder_1.encodeRoutePath)(route.path, tokenIn, tokenOut);
96
+ const routerAddress = (0, constants_1.getContractAddress)(this.chainId, 'Router');
97
+ const data = this.encodeSwapCall(amountIn, amountOutMin, routerRoutes, recipient, deadline);
98
+ return {
99
+ params: {
100
+ to: routerAddress,
101
+ data,
102
+ value: '0',
103
+ },
104
+ route,
105
+ routerRoutes,
106
+ amountIn,
107
+ amountOutMin,
108
+ expectedAmountOut,
109
+ deadline,
110
+ };
111
+ }
112
+ /**
113
+ * Builds approval transaction params for the Router to spend tokenIn
114
+ * @private
115
+ */
116
+ buildApprovalParams(tokenIn, amount) {
117
+ const routerAddress = (0, constants_1.getContractAddress)(this.chainId, 'Router');
118
+ const data = (0, viem_1.encodeFunctionData)({
119
+ abi: abis_1.ERC20_ABI,
120
+ functionName: 'approve',
121
+ args: [routerAddress, amount],
122
+ });
123
+ return { to: tokenIn, data, value: '0' };
124
+ }
125
+ /**
126
+ * Gets current allowance for the Router contract
127
+ * @private
128
+ */
129
+ async getAllowance(tokenIn, owner) {
130
+ const routerAddress = (0, constants_1.getContractAddress)(this.chainId, 'Router');
131
+ return this.publicClient.readContract({
132
+ address: tokenIn,
133
+ abi: abis_1.ERC20_ABI,
134
+ functionName: 'allowance',
135
+ args: [owner, routerAddress],
136
+ });
137
+ }
138
+ /**
139
+ * Calculates minimum output amount after applying slippage tolerance
140
+ * @private
141
+ */
142
+ calculateMinAmountOut(amountOut, slippageTolerance) {
143
+ const basisPoints = BigInt(Math.floor(slippageTolerance * 100));
144
+ const slippageMultiplier = 10000n - basisPoints;
145
+ return (amountOut * slippageMultiplier) / 10000n;
146
+ }
147
+ /**
148
+ * Encodes the swapExactTokensForTokens function call
149
+ * @private
150
+ */
151
+ encodeSwapCall(amountIn, amountOutMin, routes, recipient, deadline) {
152
+ return (0, viem_1.encodeFunctionData)({
153
+ abi: abis_1.ROUTER_ABI,
154
+ functionName: 'swapExactTokensForTokens',
155
+ args: [amountIn, amountOutMin, routes, recipient, deadline],
156
+ });
157
+ }
158
+ }
159
+ exports.SwapService = SwapService;
160
+ //# sourceMappingURL=SwapService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwapService.js","sourceRoot":"","sources":["../../../src/services/swap/SwapService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './SwapService';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/swap/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./SwapService"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/swap/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA6B"}
@@ -0,0 +1,2 @@
1
+ export * from './tokenService';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/tokens/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./tokenService"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/tokens/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA8B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ISupplyCalculator.d.ts","sourceRoot":"","sources":["../../../../src/services/tokens/supply/ISupplyCalculator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CACjD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ISupplyCalculator.js","sourceRoot":"","sources":["../../../../src/services/tokens/supply/ISupplyCalculator.ts"],"names":[],"mappings":""}
@@ -1,5 +1,5 @@
1
1
  import { ISupplyCalculator } from './ISupplyCalculator';
2
- import { ProviderAdapter } from '../../types';
2
+ import type { PublicClient } from 'viem';
3
3
  /**
4
4
  * Calculates the amount of tokens supplied to AAVE protocol.
5
5
  *
@@ -8,9 +8,10 @@ import { ProviderAdapter } from '../../types';
8
8
  * amount of the original token supplied to the protocol.
9
9
  */
10
10
  export declare class AAVESupplyCalculator implements ISupplyCalculator {
11
- private readonly provider;
11
+ private readonly publicClient;
12
+ private readonly chainId;
12
13
  private holderAddresses;
13
- constructor(provider: ProviderAdapter, holderAddresses: string[]);
14
+ constructor(publicClient: PublicClient, chainId: number, holderAddresses: string[]);
14
15
  /**
15
16
  * Gets the balance of the corresponding aToken for the specified token address that is held by the holder addresses.
16
17
  * @param tokenAddress - The address of the token to get the balance for.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aaveSupplyCalculator.d.ts","sourceRoot":"","sources":["../../../../src/services/tokens/supply/aaveSupplyCalculator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAGvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAExC;;;;;;GAMG;AACH,qBAAa,oBAAqB,YAAW,iBAAiB;IAE1D,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,eAAe;gBAFN,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACxB,eAAe,EAAE,MAAM,EAAE;IAGnC;;;;OAIG;IACG,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAyBvD"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AAVESupplyCalculator = void 0;
4
- const abis_1 = require("../../abis");
5
- const constants_1 = require("../../constants");
4
+ const abis_1 = require("../../../core/abis");
5
+ const constants_1 = require("../../../core/constants");
6
6
  /**
7
7
  * Calculates the amount of tokens supplied to AAVE protocol.
8
8
  *
@@ -11,8 +11,9 @@ const constants_1 = require("../../constants");
11
11
  * amount of the original token supplied to the protocol.
12
12
  */
13
13
  class AAVESupplyCalculator {
14
- constructor(provider, holderAddresses) {
15
- this.provider = provider;
14
+ constructor(publicClient, chainId, holderAddresses) {
15
+ this.publicClient = publicClient;
16
+ this.chainId = chainId;
16
17
  this.holderAddresses = holderAddresses;
17
18
  }
18
19
  /**
@@ -21,8 +22,7 @@ class AAVESupplyCalculator {
21
22
  * @returns The balance of the corresponding aToken.
22
23
  */
23
24
  async getAmount(tokenAddress) {
24
- const chainId = await this.provider.getChainId();
25
- const chainMappings = constants_1.AAVE_TOKEN_MAPPINGS[chainId];
25
+ const chainMappings = constants_1.AAVE_TOKEN_MAPPINGS[this.chainId];
26
26
  if (!chainMappings) {
27
27
  return 0n; // No mappings for this chain, return 0
28
28
  }
@@ -31,7 +31,7 @@ class AAVESupplyCalculator {
31
31
  return 0n; // No aToken mapping for this token, return 0
32
32
  }
33
33
  const balances = await Promise.all(this.holderAddresses.map(async (holderAddress) => {
34
- const balance = (await this.provider.readContract({
34
+ const balance = (await this.publicClient.readContract({
35
35
  address: aTokenAddress,
36
36
  abi: abis_1.ERC20_ABI,
37
37
  functionName: 'balanceOf',
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aaveSupplyCalculator.js","sourceRoot":"","sources":["../../../../src/services/tokens/supply/aaveSupplyCalculator.ts"],"names":[],"mappings":";;;AACA,6CAA8C;AAC9C,uDAA6D;AAG7D;;;;;;GAMG;AACH,MAAa,oBAAoB;IAC/B,YACmB,YAA0B,EAC1B,OAAe,EACxB,eAAyB;QAFhB,iBAAY,GAAZ,YAAY,CAAc;QAC1B,YAAO,GAAP,OAAO,CAAQ;QACxB,oBAAe,GAAf,eAAe,CAAU;IAChC,CAAC;IAEJ;;;;OAIG;IACH,KAAK,CAAC,SAAS,CAAC,YAAoB;QAClC,MAAM,aAAa,GAAG,+BAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACvD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,EAAE,CAAA,CAAC,uCAAuC;QACnD,CAAC;QACD,MAAM,aAAa,GAAG,aAAa,CAAC,YAAY,CAAC,CAAA;QACjD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,EAAE,CAAA,CAAC,6CAA6C;QACzD,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE;YAC/C,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;gBACpD,OAAO,EAAE,aAA8B;gBACvC,GAAG,EAAE,gBAAS;gBACd,YAAY,EAAE,WAAW;gBACzB,IAAI,EAAE,CAAC,aAAa,CAAC;aACtB,CAAC,CAAW,CAAA;YAEb,OAAO,OAAO,CAAA;QAChB,CAAC,CAAC,CACH,CAAA;QAED,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,EAAE,EAAE,CAAC,CAAA;IAC7D,CAAC;CACF;AArCD,oDAqCC"}
@@ -0,0 +1,8 @@
1
+ import { ISupplyCalculator } from './ISupplyCalculator';
2
+ import type { PublicClient } from 'viem';
3
+ export interface CalculatorFactory {
4
+ createUniV3Calculator(publicClient: PublicClient): ISupplyCalculator;
5
+ createAAVECalculator(publicClient: PublicClient, chainId: number): ISupplyCalculator;
6
+ createMultisigCalculator(publicClient: PublicClient): ISupplyCalculator;
7
+ }
8
+ //# sourceMappingURL=calculatorFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculatorFactory.d.ts","sourceRoot":"","sources":["../../../../src/services/tokens/supply/calculatorFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAExC,MAAM,WAAW,iBAAiB;IAChC,qBAAqB,CACnB,YAAY,EAAE,YAAY,GACzB,iBAAiB,CAAA;IACpB,oBAAoB,CAClB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,GACd,iBAAiB,CAAA;IACpB,wBAAwB,CACtB,YAAY,EAAE,YAAY,GACzB,iBAAiB,CAAA;CACrB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculatorFactory.js","sourceRoot":"","sources":["../../../../src/services/tokens/supply/calculatorFactory.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { CalculatorFactory } from './calculatorFactory';
2
+ import { ISupplyCalculator } from './ISupplyCalculator';
3
+ import type { PublicClient } from 'viem';
4
+ export declare class DefaultCalculatorFactory implements CalculatorFactory {
5
+ createUniV3Calculator(publicClient: PublicClient): ISupplyCalculator;
6
+ createAAVECalculator(publicClient: PublicClient, chainId: number): ISupplyCalculator;
7
+ createMultisigCalculator(publicClient: PublicClient): ISupplyCalculator;
8
+ }
9
+ //# sourceMappingURL=defaultCalculatorFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultCalculatorFactory.d.ts","sourceRoot":"","sources":["../../../../src/services/tokens/supply/defaultCalculatorFactory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAGvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAExC,qBAAa,wBAAyB,YAAW,iBAAiB;IAChE,qBAAqB,CAAC,YAAY,EAAE,YAAY,GAAG,iBAAiB;IASpE,oBAAoB,CAClB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,GACd,iBAAiB;IAOpB,wBAAwB,CAAC,YAAY,EAAE,YAAY,GAAG,iBAAiB;CAQxE"}
@@ -1,22 +1,27 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DefaultCalculatorFactory = void 0;
4
- const constants_1 = require("../../constants");
4
+ const constants_1 = require("../../../core/constants");
5
5
  const aaveSupplyCalculator_1 = require("./aaveSupplyCalculator");
6
6
  const uniV3SupplyCalculator_1 = require("./uniV3SupplyCalculator");
7
7
  const multisigSupplyCalculator_1 = require("./multisigSupplyCalculator");
8
8
  class DefaultCalculatorFactory {
9
- createUniV3Calculator(provider) {
10
- return new uniV3SupplyCalculator_1.UniV3SupplyCalculator(provider, constants_1.PROTOCOL_ADDRESSES.UNIV3_POSITION_MANAGER, constants_1.PROTOCOL_ADDRESSES.UNIV3_FACTORY, constants_1.MENTO_ADDRESSES.PROTOCOL_MULTISIG);
9
+ createUniV3Calculator(publicClient) {
10
+ return new uniV3SupplyCalculator_1.UniV3SupplyCalculator(publicClient, constants_1.PROTOCOL_ADDRESSES.UNIV3_POSITION_MANAGER, constants_1.PROTOCOL_ADDRESSES.UNIV3_FACTORY, constants_1.MENTO_ADDRESSES.PROTOCOL_MULTISIG);
11
11
  }
12
- createAAVECalculator(provider) {
13
- return new aaveSupplyCalculator_1.AAVESupplyCalculator(provider, [
12
+ createAAVECalculator(publicClient, chainId) {
13
+ return new aaveSupplyCalculator_1.AAVESupplyCalculator(publicClient, chainId, [
14
14
  constants_1.MENTO_ADDRESSES.OPERATIONAL_WALLET,
15
15
  constants_1.MENTO_ADDRESSES.PROTOCOL_MULTISIG,
16
16
  ]);
17
17
  }
18
- createMultisigCalculator(provider) {
19
- return new multisigSupplyCalculator_1.MultisigSupplyCalculator(provider, constants_1.MENTO_ADDRESSES.PROTOCOL_MULTISIG);
18
+ createMultisigCalculator(publicClient) {
19
+ return new multisigSupplyCalculator_1.MultisigSupplyCalculator(publicClient, [
20
+ constants_1.MENTO_ADDRESSES.PROTOCOL_MULTISIG,
21
+ constants_1.MENTO_ADDRESSES.OPERATIONAL_WALLET,
22
+ constants_1.MENTO_ADDRESSES.OPERATIONAL_WALLET_2,
23
+ constants_1.MENTO_ADDRESSES.REBALANCER_BOT,
24
+ ]);
20
25
  }
21
26
  }
22
27
  exports.DefaultCalculatorFactory = DefaultCalculatorFactory;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultCalculatorFactory.js","sourceRoot":"","sources":["../../../../src/services/tokens/supply/defaultCalculatorFactory.ts"],"names":[],"mappings":";;;AAAA,uDAA6E;AAC7E,iEAA6D;AAG7D,mEAA+D;AAC/D,yEAAqE;AAGrE,MAAa,wBAAwB;IACnC,qBAAqB,CAAC,YAA0B;QAC9C,OAAO,IAAI,6CAAqB,CAC9B,YAAY,EACZ,8BAAkB,CAAC,sBAAsB,EACzC,8BAAkB,CAAC,aAAa,EAChC,2BAAe,CAAC,iBAAiB,CAClC,CAAA;IACH,CAAC;IAED,oBAAoB,CAClB,YAA0B,EAC1B,OAAe;QAEf,OAAO,IAAI,2CAAoB,CAAC,YAAY,EAAE,OAAO,EAAE;YACrD,2BAAe,CAAC,kBAAkB;YAClC,2BAAe,CAAC,iBAAiB;SAClC,CAAC,CAAA;IACJ,CAAC;IAED,wBAAwB,CAAC,YAA0B;QACjD,OAAO,IAAI,mDAAwB,CAAC,YAAY,EAAE;YAChD,2BAAe,CAAC,iBAAiB;YACjC,2BAAe,CAAC,kBAAkB;YAClC,2BAAe,CAAC,oBAAoB;YACpC,2BAAe,CAAC,cAAc;SAC/B,CAAC,CAAA;IACJ,CAAC;CACF;AA5BD,4DA4BC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/tokens/supply/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/tokens/supply/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAuC;AACvC,6DAA0C;AAC1C,sDAAmC;AACnC,yDAAsC;AACtC,sDAAmC;AACnC,6DAA0C"}
@@ -0,0 +1,9 @@
1
+ import { ISupplyCalculator } from './ISupplyCalculator';
2
+ import type { PublicClient } from 'viem';
3
+ export declare class MultisigSupplyCalculator implements ISupplyCalculator {
4
+ private publicClient;
5
+ private multisigAddresses;
6
+ constructor(publicClient: PublicClient, multisigAddresses: string[]);
7
+ getAmount(tokenAddress: string): Promise<bigint>;
8
+ }
9
+ //# sourceMappingURL=multisigSupplyCalculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multisigSupplyCalculator.d.ts","sourceRoot":"","sources":["../../../../src/services/tokens/supply/multisigSupplyCalculator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAExC,qBAAa,wBAAyB,YAAW,iBAAiB;IAE9D,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,iBAAiB;gBADjB,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE,MAAM,EAAE;IAG/B,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAuBvD"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MultisigSupplyCalculator = void 0;
4
+ const abis_1 = require("../../../core/abis");
5
+ class MultisigSupplyCalculator {
6
+ constructor(publicClient, multisigAddresses) {
7
+ this.publicClient = publicClient;
8
+ this.multisigAddresses = multisigAddresses;
9
+ }
10
+ async getAmount(tokenAddress) {
11
+ const balancePromises = this.multisigAddresses.map(async (multisigAddress) => {
12
+ try {
13
+ const balance = (await this.publicClient.readContract({
14
+ address: tokenAddress,
15
+ abi: abis_1.ERC20_ABI,
16
+ functionName: 'balanceOf',
17
+ args: [multisigAddress],
18
+ }));
19
+ return balance;
20
+ }
21
+ catch (error) {
22
+ // TODO: Failures are silent here which could lead to
23
+ // incorrect supply calculations. This will be addressed
24
+ // in the V2 release.
25
+ return BigInt(0);
26
+ }
27
+ });
28
+ const balances = await Promise.all(balancePromises);
29
+ return balances.reduce((sum, balance) => sum + balance, BigInt(0));
30
+ }
31
+ }
32
+ exports.MultisigSupplyCalculator = MultisigSupplyCalculator;
33
+ //# sourceMappingURL=multisigSupplyCalculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multisigSupplyCalculator.js","sourceRoot":"","sources":["../../../../src/services/tokens/supply/multisigSupplyCalculator.ts"],"names":[],"mappings":";;;AAAA,6CAA8C;AAI9C,MAAa,wBAAwB;IACnC,YACU,YAA0B,EAC1B,iBAA2B;QAD3B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,sBAAiB,GAAjB,iBAAiB,CAAU;IAClC,CAAC;IAEJ,KAAK,CAAC,SAAS,CAAC,YAAoB;QAClC,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAChD,KAAK,EAAE,eAAe,EAAE,EAAE;YACxB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;oBACpD,OAAO,EAAE,YAA6B;oBACtC,GAAG,EAAE,gBAAS;oBACd,YAAY,EAAE,WAAW;oBACzB,IAAI,EAAE,CAAC,eAAe,CAAC;iBACxB,CAAC,CAAW,CAAA;gBACb,OAAO,OAAO,CAAA;YAChB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,qDAAqD;gBACrD,8DAA8D;gBAC9D,2BAA2B;gBAC3B,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;YAClB,CAAC;QACH,CAAC,CACF,CAAA;QAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;QACnD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IACpE,CAAC;CACF;AA7BD,4DA6BC"}
@@ -1,13 +1,13 @@
1
- import { ProviderAdapter } from '../../types';
2
1
  import { ISupplyCalculator } from './ISupplyCalculator';
2
+ import type { PublicClient } from 'viem';
3
3
  export declare class UniV3SupplyCalculator implements ISupplyCalculator {
4
- private provider;
4
+ private publicClient;
5
5
  private positionManagerAddress;
6
6
  private factoryAddress;
7
7
  private governanceAddress;
8
8
  private readonly decimalsCache;
9
9
  private readonly poolCache;
10
- constructor(provider: ProviderAdapter, positionManagerAddress: string, factoryAddress: string, governanceAddress: string);
10
+ constructor(publicClient: PublicClient, positionManagerAddress: string, factoryAddress: string, governanceAddress: string);
11
11
  getAmount(tokenAddress: string): Promise<bigint>;
12
12
  private normalizeNumberString;
13
13
  private calculatePositionAmount;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uniV3SupplyCalculator.d.ts","sourceRoot":"","sources":["../../../../src/services/tokens/supply/uniV3SupplyCalculator.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAGvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAKxC,qBAAa,qBAAsB,YAAW,iBAAiB;IAK3D,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,sBAAsB;IAC9B,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,iBAAiB;IAP3B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiC;IAC/D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiC;gBAGjD,YAAY,EAAE,YAAY,EAC1B,sBAAsB,EAAE,MAAM,EAC9B,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,MAAM;IAG7B,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA+CtD,OAAO,CAAC,qBAAqB;YAYf,uBAAuB;YAkCvB,oBAAoB;YAqEpB,mBAAmB;YAoCnB,cAAc;YAqBd,gBAAgB;YAuBhB,YAAY;IAc1B,OAAO,CAAC,gBAAgB;CAgDzB"}
@@ -4,14 +4,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.UniV3SupplyCalculator = void 0;
7
- const abis_1 = require("../../abis");
7
+ const abis_1 = require("../../../core/abis");
8
8
  const bignumber_js_1 = __importDefault(require("bignumber.js"));
9
- const utils_1 = require("../../utils");
9
+ const utils_1 = require("../../../utils");
10
10
  const BATCH_SIZE = 5;
11
11
  const BATCH_DELAY = 100;
12
12
  class UniV3SupplyCalculator {
13
- constructor(provider, positionManagerAddress, factoryAddress, governanceAddress) {
14
- this.provider = provider;
13
+ constructor(publicClient, positionManagerAddress, factoryAddress, governanceAddress) {
14
+ this.publicClient = publicClient;
15
15
  this.positionManagerAddress = positionManagerAddress;
16
16
  this.factoryAddress = factoryAddress;
17
17
  this.governanceAddress = governanceAddress;
@@ -187,8 +187,13 @@ class UniV3SupplyCalculator {
187
187
  return 18;
188
188
  }
189
189
  }
190
- readContract(options) {
191
- return this.provider.readContract(options);
190
+ async readContract(options) {
191
+ return this.publicClient.readContract({
192
+ address: options.address,
193
+ abi: options.abi,
194
+ functionName: options.functionName,
195
+ args: options.args || [],
196
+ });
192
197
  }
193
198
  calculateAmounts(liquidity, currentTick, tickLower, tickUpper, sqrtPrice) {
194
199
  try {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uniV3SupplyCalculator.js","sourceRoot":"","sources":["../../../../src/services/tokens/supply/uniV3SupplyCalculator.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,13 @@
1
- import { ProviderAdapter, StableToken } from '../types';
1
+ import { StableToken } from '../../core/types';
2
2
  import { CalculatorFactory } from './supply/calculatorFactory';
3
+ import type { PublicClient } from 'viem';
3
4
  export declare class SupplyAdjustmentService {
4
5
  private readonly config;
5
- constructor(provider: ProviderAdapter, calculatorFactory: CalculatorFactory);
6
+ STABLE_TOKEN_SYMBOLS: {
7
+ readonly cUSD: "cUSD";
8
+ readonly cEUR: "cEUR";
9
+ };
10
+ constructor(publicClient: PublicClient, chainId: number, calculatorFactory: CalculatorFactory);
6
11
  private initializeConfig;
7
12
  /**
8
13
  * Get the adjusted supply of a stable token
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supplyAdjustmentService.d.ts","sourceRoot":"","sources":["../../../src/services/tokens/supplyAdjustmentService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAqB,MAAM,kBAAkB,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAExC,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IAEpD,oBAAoB;;;MAGV;gBAGR,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,iBAAiB,EAAE,iBAAiB;IAYtC,OAAO,CAAC,gBAAgB;IAqBxB;;;;OAIG;IACG,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;CAa7D"}
@@ -1,26 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SupplyAdjustmentService = void 0;
4
- const constants_1 = require("../constants");
5
4
  class SupplyAdjustmentService {
6
- constructor(provider, calculatorFactory) {
7
- if (!provider)
8
- throw new Error('Provider is required');
5
+ constructor(publicClient, chainId, calculatorFactory) {
6
+ this.STABLE_TOKEN_SYMBOLS = {
7
+ cUSD: 'cUSD',
8
+ cEUR: 'cEUR',
9
+ };
10
+ if (!publicClient)
11
+ throw new Error('PublicClient is required');
9
12
  if (!calculatorFactory)
10
13
  throw new Error('Calculator factory is required');
11
- this.config = this.initializeConfig(provider, calculatorFactory);
14
+ this.config = this.initializeConfig(publicClient, chainId, calculatorFactory);
12
15
  }
13
- initializeConfig(provider, factory) {
14
- const uniV3Calculator = factory.createUniV3Calculator(provider);
15
- const aaveCalculator = factory.createAAVECalculator(provider);
16
- const multisigCalculator = factory.createMultisigCalculator(provider);
16
+ initializeConfig(publicClient, chainId, factory) {
17
+ const uniV3Calculator = factory.createUniV3Calculator(publicClient);
18
+ const aaveCalculator = factory.createAAVECalculator(publicClient, chainId);
19
+ const multisigCalculator = factory.createMultisigCalculator(publicClient);
17
20
  return Object.freeze({
18
- [constants_1.STABLE_TOKEN_SYMBOLS.cUSD]: Object.freeze([
21
+ [this.STABLE_TOKEN_SYMBOLS.cUSD]: Object.freeze([
19
22
  { calculator: uniV3Calculator },
20
23
  { calculator: multisigCalculator },
21
24
  { calculator: aaveCalculator },
22
25
  ]),
23
- [constants_1.STABLE_TOKEN_SYMBOLS.cEUR]: Object.freeze([
26
+ [this.STABLE_TOKEN_SYMBOLS.cEUR]: Object.freeze([
24
27
  { calculator: aaveCalculator },
25
28
  ]),
26
29
  });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supplyAdjustmentService.js","sourceRoot":"","sources":["../../../src/services/tokens/supplyAdjustmentService.ts"],"names":[],"mappings":";;;AAIA,MAAa,uBAAuB;IAQlC,YACE,YAA0B,EAC1B,OAAe,EACf,iBAAoC;QARtC,yBAAoB,GAAG;YACrB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM;SACJ,CAAA;QAOR,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAC9D,IAAI,CAAC,iBAAiB;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QAEzE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CACjC,YAAY,EACZ,OAAO,EACP,iBAAiB,CAClB,CAAA;IACH,CAAC;IAEO,gBAAgB,CACtB,YAA0B,EAC1B,OAAe,EACf,OAA0B;QAE1B,MAAM,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAA;QACnE,MAAM,cAAc,GAAG,OAAO,CAAC,oBAAoB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAC1E,MAAM,kBAAkB,GAAG,OAAO,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAA;QAEzE,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;gBAC9C,EAAE,UAAU,EAAE,eAAe,EAAE;gBAC/B,EAAE,UAAU,EAAE,kBAAkB,EAAE;gBAClC,EAAE,UAAU,EAAE,cAAc,EAAE;aAC/B,CAAC;YACF,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;gBAC9C,EAAE,UAAU,EAAE,cAAc,EAAE;aAC/B,CAAC;SACH,CAAC,CAAA;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iBAAiB,CAAC,KAAkB;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC7C,IAAI,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC,WAAW,CAAA;QAE1C,IAAI,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAEtC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACnE,MAAM,IAAI,MAAM,CAAA;QAClB,CAAC;QAED,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAA;IAC1B,CAAC;CACF;AA9DD,0DA8DC"}
@@ -0,0 +1,33 @@
1
+ import { StableToken, CollateralAsset } from '../../core/types';
2
+ import type { PublicClient } from 'viem';
3
+ export declare class TokenService {
4
+ private publicClient;
5
+ private chainId;
6
+ private supplyAdjustmentService;
7
+ constructor(publicClient: PublicClient, chainId: number);
8
+ /**
9
+ * Get token metadata (name, symbol, decimals)
10
+ * @param address - Token contract address
11
+ * @returns Token metadata
12
+ */
13
+ private getTokenMetadata;
14
+ /**
15
+ * Get total supply of a token
16
+ * @param address - Token contract address
17
+ * @returns Total supply as string
18
+ */
19
+ private getTotalSupply;
20
+ /**
21
+ * Get all stable tokens from the Reserve contract
22
+ * @param includeSupply - Whether to fetch total supply and apply adjustments
23
+ * @returns Array of stable tokens
24
+ */
25
+ getStableTokens(includeSupply?: boolean): Promise<StableToken[]>;
26
+ /**
27
+ * Get all collateral assets from exchanges
28
+ * Filters tokens that are marked as collateral in the Reserve contract
29
+ * @returns Array of collateral assets
30
+ */
31
+ getCollateralAssets(): Promise<CollateralAsset[]>;
32
+ }
33
+ //# sourceMappingURL=tokenService.d.ts.map