genius-intents 0.19.0 → 0.20.1-develop.0

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 (320) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/dist/direct-pools/fourmeme/fourmeme-direct.service.js +16 -16
  3. package/dist/direct-pools/fourmeme/fourmeme-direct.service.js.map +1 -1
  4. package/dist/direct-pools/meteora/pool-info/meteora-damm-v1-pool-info.service.d.ts +1 -1
  5. package/dist/direct-pools/meteora/pool-info/meteora-damm-v1-pool-info.service.d.ts.map +1 -1
  6. package/dist/direct-pools/meteora/pool-info/meteora-damm-v1-pool-info.service.js +9 -2
  7. package/dist/direct-pools/meteora/pool-info/meteora-damm-v1-pool-info.service.js.map +1 -1
  8. package/dist/direct-pools/meteora/pool-info/meteora-damm-v2-pool-info.service.d.ts +1 -1
  9. package/dist/direct-pools/meteora/pool-info/meteora-damm-v2-pool-info.service.d.ts.map +1 -1
  10. package/dist/direct-pools/meteora/pool-info/meteora-damm-v2-pool-info.service.js +9 -2
  11. package/dist/direct-pools/meteora/pool-info/meteora-damm-v2-pool-info.service.js.map +1 -1
  12. package/dist/direct-pools/meteora/pool-info/meteora-dbc-pool-info.service.d.ts +1 -1
  13. package/dist/direct-pools/meteora/pool-info/meteora-dbc-pool-info.service.d.ts.map +1 -1
  14. package/dist/direct-pools/meteora/pool-info/meteora-dbc-pool-info.service.js +9 -2
  15. package/dist/direct-pools/meteora/pool-info/meteora-dbc-pool-info.service.js.map +1 -1
  16. package/dist/direct-pools/meteora/pool-info/meteora-dlmm-pool-info.service.d.ts +1 -1
  17. package/dist/direct-pools/meteora/pool-info/meteora-dlmm-pool-info.service.d.ts.map +1 -1
  18. package/dist/direct-pools/meteora/pool-info/meteora-dlmm-pool-info.service.js +9 -2
  19. package/dist/direct-pools/meteora/pool-info/meteora-dlmm-pool-info.service.js.map +1 -1
  20. package/dist/direct-pools/pump-fun/pool-info/pump-fun-pool-info.service.d.ts +1 -1
  21. package/dist/direct-pools/pump-fun/pool-info/pump-fun-pool-info.service.d.ts.map +1 -1
  22. package/dist/direct-pools/pump-fun/pool-info/pump-fun-pool-info.service.js +9 -2
  23. package/dist/direct-pools/pump-fun/pool-info/pump-fun-pool-info.service.js.map +1 -1
  24. package/dist/direct-pools/pump-fun/pool-info/pump-swap-amm-pool-info.service.d.ts +1 -1
  25. package/dist/direct-pools/pump-fun/pool-info/pump-swap-amm-pool-info.service.d.ts.map +1 -1
  26. package/dist/direct-pools/pump-fun/pool-info/pump-swap-amm-pool-info.service.js +9 -2
  27. package/dist/direct-pools/pump-fun/pool-info/pump-swap-amm-pool-info.service.js.map +1 -1
  28. package/dist/direct-pools/raydium/pool-info/raydium-amm-pool-info.service.d.ts +1 -1
  29. package/dist/direct-pools/raydium/pool-info/raydium-amm-pool-info.service.d.ts.map +1 -1
  30. package/dist/direct-pools/raydium/pool-info/raydium-amm-pool-info.service.js +9 -2
  31. package/dist/direct-pools/raydium/pool-info/raydium-amm-pool-info.service.js.map +1 -1
  32. package/dist/direct-pools/raydium/pool-info/raydium-clmm-pool-info.service.d.ts +1 -1
  33. package/dist/direct-pools/raydium/pool-info/raydium-clmm-pool-info.service.d.ts.map +1 -1
  34. package/dist/direct-pools/raydium/pool-info/raydium-clmm-pool-info.service.js +9 -2
  35. package/dist/direct-pools/raydium/pool-info/raydium-clmm-pool-info.service.js.map +1 -1
  36. package/dist/direct-pools/raydium/pool-info/raydium-cpmm-pool-info.service.d.ts +1 -1
  37. package/dist/direct-pools/raydium/pool-info/raydium-cpmm-pool-info.service.d.ts.map +1 -1
  38. package/dist/direct-pools/raydium/pool-info/raydium-cpmm-pool-info.service.js +9 -2
  39. package/dist/direct-pools/raydium/pool-info/raydium-cpmm-pool-info.service.js.map +1 -1
  40. package/dist/direct-pools/raydium/pool-info/raydium-launchlab-pool-info.service.d.ts +1 -1
  41. package/dist/direct-pools/raydium/pool-info/raydium-launchlab-pool-info.service.d.ts.map +1 -1
  42. package/dist/direct-pools/raydium/pool-info/raydium-launchlab-pool-info.service.js +9 -2
  43. package/dist/direct-pools/raydium/pool-info/raydium-launchlab-pool-info.service.js.map +1 -1
  44. package/dist/direct-pools/whirlpools/pool-info/whirlpools-pool-info.service.d.ts +1 -1
  45. package/dist/direct-pools/whirlpools/pool-info/whirlpools-pool-info.service.d.ts.map +1 -1
  46. package/dist/direct-pools/whirlpools/pool-info/whirlpools-pool-info.service.js +9 -2
  47. package/dist/direct-pools/whirlpools/pool-info/whirlpools-pool-info.service.js.map +1 -1
  48. package/dist/genius-intents.d.ts.map +1 -1
  49. package/dist/genius-intents.js +3 -0
  50. package/dist/genius-intents.js.map +1 -1
  51. package/dist/index.d.ts +1 -0
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +2 -1
  54. package/dist/index.js.map +1 -1
  55. package/dist/lib/dex/algebra/algebra-dex-deployments.d.ts +3 -0
  56. package/dist/lib/dex/algebra/algebra-dex-deployments.d.ts.map +1 -0
  57. package/dist/lib/dex/algebra/algebra-dex-deployments.js +34 -0
  58. package/dist/lib/dex/algebra/algebra-dex-deployments.js.map +1 -0
  59. package/dist/lib/dex/algebra/quickswap-quoter.abi.d.ts +3 -0
  60. package/dist/lib/dex/algebra/quickswap-quoter.abi.d.ts.map +1 -0
  61. package/dist/lib/dex/algebra/quickswap-quoter.abi.js +103 -0
  62. package/dist/lib/dex/algebra/quickswap-quoter.abi.js.map +1 -0
  63. package/dist/lib/dex/fourmeme/fourmeme-v3-helper.abi.d.ts +3 -0
  64. package/dist/lib/dex/fourmeme/fourmeme-v3-helper.abi.d.ts.map +1 -0
  65. package/dist/lib/dex/fourmeme/fourmeme-v3-helper.abi.js +61 -0
  66. package/dist/lib/dex/fourmeme/fourmeme-v3-helper.abi.js.map +1 -0
  67. package/dist/lib/dex/lfj/lfj-dex-deployments.d.ts +3 -0
  68. package/dist/lib/dex/lfj/lfj-dex-deployments.d.ts.map +1 -0
  69. package/dist/lib/dex/lfj/lfj-dex-deployments.js +21 -0
  70. package/dist/lib/dex/lfj/lfj-dex-deployments.js.map +1 -0
  71. package/dist/lib/dex/lfj/lfj-quoter.abi.d.ts +3 -0
  72. package/dist/lib/dex/lfj/lfj-quoter.abi.d.ts.map +1 -0
  73. package/dist/lib/dex/lfj/lfj-quoter.abi.js +135 -0
  74. package/dist/lib/dex/lfj/lfj-quoter.abi.js.map +1 -0
  75. package/dist/lib/dex/lfj/lfj-router.abi.d.ts +3 -0
  76. package/dist/lib/dex/lfj/lfj-router.abi.d.ts.map +1 -0
  77. package/dist/lib/dex/lfj/lfj-router.abi.js +587 -0
  78. package/dist/lib/dex/lfj/lfj-router.abi.js.map +1 -0
  79. package/dist/lib/dex/pair-discovery/adapters/algebra-dex-pair-discovery.adapter.d.ts +22 -0
  80. package/dist/lib/dex/pair-discovery/adapters/algebra-dex-pair-discovery.adapter.d.ts.map +1 -0
  81. package/dist/lib/dex/pair-discovery/adapters/algebra-dex-pair-discovery.adapter.js +225 -0
  82. package/dist/lib/dex/pair-discovery/adapters/algebra-dex-pair-discovery.adapter.js.map +1 -0
  83. package/dist/lib/dex/pair-discovery/adapters/fourmeme-dex-pair-discovery.adapter.d.ts +20 -0
  84. package/dist/lib/dex/pair-discovery/adapters/fourmeme-dex-pair-discovery.adapter.d.ts.map +1 -0
  85. package/dist/lib/dex/pair-discovery/adapters/fourmeme-dex-pair-discovery.adapter.js +272 -0
  86. package/dist/lib/dex/pair-discovery/adapters/fourmeme-dex-pair-discovery.adapter.js.map +1 -0
  87. package/dist/lib/dex/pair-discovery/adapters/lfj-v3-dex-pair-doscovery.adapter.d.ts +19 -0
  88. package/dist/lib/dex/pair-discovery/adapters/lfj-v3-dex-pair-doscovery.adapter.d.ts.map +1 -0
  89. package/dist/lib/dex/pair-discovery/adapters/lfj-v3-dex-pair-doscovery.adapter.js +130 -0
  90. package/dist/lib/dex/pair-discovery/adapters/lfj-v3-dex-pair-doscovery.adapter.js.map +1 -0
  91. package/dist/lib/dex/pair-discovery/adapters/v2-dex-pair-discovery.adapter.d.ts +29 -0
  92. package/dist/lib/dex/pair-discovery/adapters/v2-dex-pair-discovery.adapter.d.ts.map +1 -0
  93. package/dist/lib/dex/pair-discovery/adapters/v2-dex-pair-discovery.adapter.js +179 -0
  94. package/dist/lib/dex/pair-discovery/adapters/v2-dex-pair-discovery.adapter.js.map +1 -0
  95. package/dist/lib/dex/pair-discovery/adapters/v3-dex-pair-discovery.adapter.d.ts +29 -0
  96. package/dist/lib/dex/pair-discovery/adapters/v3-dex-pair-discovery.adapter.d.ts.map +1 -0
  97. package/dist/lib/dex/pair-discovery/adapters/v3-dex-pair-discovery.adapter.js +345 -0
  98. package/dist/lib/dex/pair-discovery/adapters/v3-dex-pair-discovery.adapter.js.map +1 -0
  99. package/dist/lib/dex/pair-discovery/adapters/ve33-dex-pair-discovery.adapter.d.ts +36 -0
  100. package/dist/lib/dex/pair-discovery/adapters/ve33-dex-pair-discovery.adapter.d.ts.map +1 -0
  101. package/dist/lib/dex/pair-discovery/adapters/ve33-dex-pair-discovery.adapter.js +275 -0
  102. package/dist/lib/dex/pair-discovery/adapters/ve33-dex-pair-discovery.adapter.js.map +1 -0
  103. package/dist/lib/dex/pair-discovery/index.d.ts +3 -0
  104. package/dist/lib/dex/pair-discovery/index.d.ts.map +1 -0
  105. package/dist/lib/dex/pair-discovery/index.js +21 -0
  106. package/dist/lib/dex/pair-discovery/index.js.map +1 -0
  107. package/dist/lib/dex/pair-discovery/pair-discovery.service.d.ts +16 -0
  108. package/dist/lib/dex/pair-discovery/pair-discovery.service.d.ts.map +1 -0
  109. package/dist/lib/dex/pair-discovery/pair-discovery.service.js +98 -0
  110. package/dist/lib/dex/pair-discovery/pair-discovery.service.js.map +1 -0
  111. package/dist/lib/dex/pair-discovery/pair-discovery.types.d.ts +191 -0
  112. package/dist/lib/dex/pair-discovery/pair-discovery.types.d.ts.map +1 -0
  113. package/dist/lib/dex/pair-discovery/pair-discovery.types.js +3 -0
  114. package/dist/lib/dex/pair-discovery/pair-discovery.types.js.map +1 -0
  115. package/dist/lib/dex/uniswapV2/v2-dex-deployments.d.ts +5 -0
  116. package/dist/lib/dex/uniswapV2/v2-dex-deployments.d.ts.map +1 -0
  117. package/dist/lib/dex/uniswapV2/v2-dex-deployments.js +166 -0
  118. package/dist/lib/dex/uniswapV2/v2-dex-deployments.js.map +1 -0
  119. package/dist/lib/dex/uniswapv3/{v3-offchain-quoter.service.d.ts → offchain-quoter/v3-offchain-quoter.service.d.ts} +1 -1
  120. package/dist/lib/dex/uniswapv3/offchain-quoter/v3-offchain-quoter.service.d.ts.map +1 -0
  121. package/dist/lib/dex/uniswapv3/{v3-offchain-quoter.service.js → offchain-quoter/v3-offchain-quoter.service.js} +3 -3
  122. package/dist/lib/dex/uniswapv3/offchain-quoter/v3-offchain-quoter.service.js.map +1 -0
  123. package/dist/lib/dex/uniswapv3/offchain-quoter/v3-offchain-quoter.types.d.ts +162 -0
  124. package/dist/lib/dex/uniswapv3/offchain-quoter/v3-offchain-quoter.types.d.ts.map +1 -0
  125. package/dist/lib/dex/uniswapv3/offchain-quoter/v3-offchain-quoter.types.js +3 -0
  126. package/dist/lib/dex/uniswapv3/offchain-quoter/v3-offchain-quoter.types.js.map +1 -0
  127. package/dist/lib/dex/uniswapv3/ramses-quoter.abi.d.ts +3 -0
  128. package/dist/lib/dex/uniswapv3/ramses-quoter.abi.d.ts.map +1 -0
  129. package/dist/lib/dex/uniswapv3/ramses-quoter.abi.js +114 -0
  130. package/dist/lib/dex/uniswapv3/ramses-quoter.abi.js.map +1 -0
  131. package/dist/lib/dex/uniswapv3/v3-dex-deployments.d.ts +32 -0
  132. package/dist/lib/dex/uniswapv3/v3-dex-deployments.d.ts.map +1 -0
  133. package/dist/lib/dex/uniswapv3/v3-dex-deployments.js +283 -0
  134. package/dist/lib/dex/uniswapv3/v3-dex-deployments.js.map +1 -0
  135. package/dist/lib/dex/ve33/pharaoh-swap-router.abi.d.ts +3 -0
  136. package/dist/lib/dex/ve33/pharaoh-swap-router.abi.d.ts.map +1 -0
  137. package/dist/lib/dex/ve33/pharaoh-swap-router.abi.js +239 -0
  138. package/dist/lib/dex/ve33/pharaoh-swap-router.abi.js.map +1 -0
  139. package/dist/lib/dex/ve33/ve33-dex-deployments.d.ts +4 -0
  140. package/dist/lib/dex/ve33/ve33-dex-deployments.d.ts.map +1 -0
  141. package/dist/lib/dex/ve33/ve33-dex-deployments.js +34 -0
  142. package/dist/lib/dex/ve33/ve33-dex-deployments.js.map +1 -0
  143. package/dist/protocols/algebra/algebra.service.d.ts +9 -7
  144. package/dist/protocols/algebra/algebra.service.d.ts.map +1 -1
  145. package/dist/protocols/algebra/algebra.service.js +84 -113
  146. package/dist/protocols/algebra/algebra.service.js.map +1 -1
  147. package/dist/protocols/algebra/algebra.types.d.ts +30 -16
  148. package/dist/protocols/algebra/algebra.types.d.ts.map +1 -1
  149. package/dist/protocols/algebra/algebra.types.js +1 -1
  150. package/dist/protocols/algebra/algebra.types.js.map +1 -1
  151. package/dist/protocols/four-meme/four-meme.service.d.ts.map +1 -1
  152. package/dist/protocols/four-meme/four-meme.service.js +54 -59
  153. package/dist/protocols/four-meme/four-meme.service.js.map +1 -1
  154. package/dist/protocols/four-meme/four-meme.types.d.ts +2 -5
  155. package/dist/protocols/four-meme/four-meme.types.d.ts.map +1 -1
  156. package/dist/protocols/genius-bridge/genius-bridge.service.d.ts +2 -1
  157. package/dist/protocols/genius-bridge/genius-bridge.service.d.ts.map +1 -1
  158. package/dist/protocols/genius-bridge/genius-bridge.service.js.map +1 -1
  159. package/dist/protocols/genius-bridge/index.d.ts +1 -1
  160. package/dist/protocols/genius-bridge/index.d.ts.map +1 -1
  161. package/dist/protocols/lfj/index.d.ts +3 -0
  162. package/dist/protocols/lfj/index.d.ts.map +1 -0
  163. package/dist/protocols/lfj/index.js +21 -0
  164. package/dist/protocols/lfj/index.js.map +1 -0
  165. package/dist/protocols/lfj/lfj.service.d.ts +45 -0
  166. package/dist/protocols/lfj/lfj.service.d.ts.map +1 -0
  167. package/dist/protocols/lfj/lfj.service.js +324 -0
  168. package/dist/protocols/lfj/lfj.service.js.map +1 -0
  169. package/dist/protocols/lfj/lfj.types.d.ts +134 -0
  170. package/dist/protocols/lfj/lfj.types.d.ts.map +1 -0
  171. package/dist/protocols/lfj/lfj.types.js +16 -0
  172. package/dist/protocols/lfj/lfj.types.js.map +1 -0
  173. package/dist/protocols/v2-dex/index.d.ts +1 -1
  174. package/dist/protocols/v2-dex/index.d.ts.map +1 -1
  175. package/dist/protocols/v2-dex/index.js +15 -0
  176. package/dist/protocols/v2-dex/index.js.map +1 -1
  177. package/dist/protocols/v2-dex/v2-dex.service.d.ts +9 -13
  178. package/dist/protocols/v2-dex/v2-dex.service.d.ts.map +1 -1
  179. package/dist/protocols/v2-dex/v2-dex.service.js +80 -496
  180. package/dist/protocols/v2-dex/v2-dex.service.js.map +1 -1
  181. package/dist/protocols/v2-dex/v2-dex.types.d.ts +29 -30
  182. package/dist/protocols/v2-dex/v2-dex.types.d.ts.map +1 -1
  183. package/dist/protocols/v2-dex/v2-dex.types.js.map +1 -1
  184. package/dist/protocols/v3-dex/adapters/slipstream.adapter.d.ts +42 -0
  185. package/dist/protocols/v3-dex/adapters/slipstream.adapter.d.ts.map +1 -0
  186. package/dist/protocols/v3-dex/adapters/slipstream.adapter.js +185 -0
  187. package/dist/protocols/v3-dex/adapters/slipstream.adapter.js.map +1 -0
  188. package/dist/protocols/v3-dex/adapters/uniswap-fork.adapter.d.ts +40 -0
  189. package/dist/protocols/v3-dex/adapters/uniswap-fork.adapter.d.ts.map +1 -0
  190. package/dist/protocols/v3-dex/adapters/uniswap-fork.adapter.js +237 -0
  191. package/dist/protocols/v3-dex/adapters/uniswap-fork.adapter.js.map +1 -0
  192. package/dist/protocols/v3-dex/adapters/uniswap.adapter.d.ts +39 -0
  193. package/dist/protocols/v3-dex/adapters/uniswap.adapter.d.ts.map +1 -0
  194. package/dist/protocols/v3-dex/adapters/uniswap.adapter.js +226 -0
  195. package/dist/protocols/v3-dex/adapters/uniswap.adapter.js.map +1 -0
  196. package/dist/protocols/v3-dex/index.d.ts +1 -1
  197. package/dist/protocols/v3-dex/index.d.ts.map +1 -1
  198. package/dist/protocols/v3-dex/index.js +15 -0
  199. package/dist/protocols/v3-dex/index.js.map +1 -1
  200. package/dist/protocols/v3-dex/v3-dex.service.d.ts +21 -120
  201. package/dist/protocols/v3-dex/v3-dex.service.d.ts.map +1 -1
  202. package/dist/protocols/v3-dex/v3-dex.service.js +383 -1364
  203. package/dist/protocols/v3-dex/v3-dex.service.js.map +1 -1
  204. package/dist/protocols/v3-dex/v3-dex.types.d.ts +144 -374
  205. package/dist/protocols/v3-dex/v3-dex.types.d.ts.map +1 -1
  206. package/dist/protocols/v3-dex/v3-dex.types.js +10 -1
  207. package/dist/protocols/v3-dex/v3-dex.types.js.map +1 -1
  208. package/dist/protocols/ve33/adapters/blackhole.adapter.d.ts +29 -0
  209. package/dist/protocols/ve33/adapters/blackhole.adapter.d.ts.map +1 -0
  210. package/dist/protocols/ve33/adapters/blackhole.adapter.js +59 -0
  211. package/dist/protocols/ve33/adapters/blackhole.adapter.js.map +1 -0
  212. package/dist/protocols/ve33/adapters/pharaoh.adapter.d.ts +34 -0
  213. package/dist/protocols/ve33/adapters/pharaoh.adapter.d.ts.map +1 -0
  214. package/dist/protocols/ve33/adapters/pharaoh.adapter.js +51 -0
  215. package/dist/protocols/ve33/adapters/pharaoh.adapter.js.map +1 -0
  216. package/dist/protocols/ve33/adapters/solidly.adapter.d.ts +42 -0
  217. package/dist/protocols/ve33/adapters/solidly.adapter.d.ts.map +1 -0
  218. package/dist/protocols/ve33/adapters/solidly.adapter.js +63 -0
  219. package/dist/protocols/ve33/adapters/solidly.adapter.js.map +1 -0
  220. package/dist/protocols/ve33/index.d.ts +1 -1
  221. package/dist/protocols/ve33/index.d.ts.map +1 -1
  222. package/dist/protocols/ve33/index.js +15 -0
  223. package/dist/protocols/ve33/index.js.map +1 -1
  224. package/dist/protocols/ve33/ve33.service.d.ts +8 -3
  225. package/dist/protocols/ve33/ve33.service.d.ts.map +1 -1
  226. package/dist/protocols/ve33/ve33.service.js +128 -125
  227. package/dist/protocols/ve33/ve33.service.js.map +1 -1
  228. package/dist/protocols/ve33/ve33.types.d.ts +19 -33
  229. package/dist/protocols/ve33/ve33.types.d.ts.map +1 -1
  230. package/dist/protocols/ve33/ve33.types.js +6 -1
  231. package/dist/protocols/ve33/ve33.types.js.map +1 -1
  232. package/dist/token-launches/jupiter/jupiter-studio-launch.constants.d.ts +40 -0
  233. package/dist/token-launches/jupiter/jupiter-studio-launch.constants.d.ts.map +1 -0
  234. package/dist/token-launches/jupiter/jupiter-studio-launch.constants.js +43 -0
  235. package/dist/token-launches/jupiter/jupiter-studio-launch.constants.js.map +1 -0
  236. package/dist/token-launches/jupiter/jupiter-studio-launch.service.d.ts +10 -0
  237. package/dist/token-launches/jupiter/jupiter-studio-launch.service.d.ts.map +1 -0
  238. package/dist/token-launches/jupiter/jupiter-studio-launch.service.js +56 -0
  239. package/dist/token-launches/jupiter/jupiter-studio-launch.service.js.map +1 -0
  240. package/dist/token-launches/jupiter/jupiter-studio-launch.types.d.ts +49 -0
  241. package/dist/token-launches/jupiter/jupiter-studio-launch.types.d.ts.map +1 -0
  242. package/dist/token-launches/jupiter/jupiter-studio-launch.types.js +3 -0
  243. package/dist/token-launches/jupiter/jupiter-studio-launch.types.js.map +1 -0
  244. package/dist/token-launches/jupiter/jupiter-studio-launch.utils.d.ts +9 -0
  245. package/dist/token-launches/jupiter/jupiter-studio-launch.utils.d.ts.map +1 -0
  246. package/dist/token-launches/jupiter/jupiter-studio-launch.utils.js +82 -0
  247. package/dist/token-launches/jupiter/jupiter-studio-launch.utils.js.map +1 -0
  248. package/dist/token-launches/meteora/meteora-launch.constants.d.ts +11 -0
  249. package/dist/token-launches/meteora/meteora-launch.constants.d.ts.map +1 -0
  250. package/dist/token-launches/meteora/meteora-launch.constants.js +15 -0
  251. package/dist/token-launches/meteora/meteora-launch.constants.js.map +1 -0
  252. package/dist/token-launches/meteora/meteora-launch.service.d.ts +13 -0
  253. package/dist/token-launches/meteora/meteora-launch.service.d.ts.map +1 -0
  254. package/dist/token-launches/meteora/meteora-launch.service.js +64 -0
  255. package/dist/token-launches/meteora/meteora-launch.service.js.map +1 -0
  256. package/dist/token-launches/meteora/meteora-launch.types.d.ts +18 -0
  257. package/dist/token-launches/meteora/meteora-launch.types.d.ts.map +1 -0
  258. package/dist/token-launches/meteora/meteora-launch.types.js +3 -0
  259. package/dist/token-launches/meteora/meteora-launch.types.js.map +1 -0
  260. package/dist/token-launches/meteora/meteora-launch.utils.d.ts +4 -0
  261. package/dist/token-launches/meteora/meteora-launch.utils.d.ts.map +1 -0
  262. package/dist/token-launches/meteora/meteora-launch.utils.js +54 -0
  263. package/dist/token-launches/meteora/meteora-launch.utils.js.map +1 -0
  264. package/dist/token-launches/pump-fun/pump-fun-launch.service.d.ts +13 -0
  265. package/dist/token-launches/pump-fun/pump-fun-launch.service.d.ts.map +1 -0
  266. package/dist/token-launches/pump-fun/pump-fun-launch.service.js +63 -0
  267. package/dist/token-launches/pump-fun/pump-fun-launch.service.js.map +1 -0
  268. package/dist/token-launches/pump-fun/pump-fun-launch.types.d.ts +12 -0
  269. package/dist/token-launches/pump-fun/pump-fun-launch.types.d.ts.map +1 -0
  270. package/dist/token-launches/pump-fun/pump-fun-launch.types.js +3 -0
  271. package/dist/token-launches/pump-fun/pump-fun-launch.types.js.map +1 -0
  272. package/dist/token-launches/raydium-launchlab/raydium-launch.constants.d.ts +13 -0
  273. package/dist/token-launches/raydium-launchlab/raydium-launch.constants.d.ts.map +1 -0
  274. package/dist/token-launches/raydium-launchlab/raydium-launch.constants.js +18 -0
  275. package/dist/token-launches/raydium-launchlab/raydium-launch.constants.js.map +1 -0
  276. package/dist/token-launches/raydium-launchlab/raydium-launch.service.d.ts +13 -0
  277. package/dist/token-launches/raydium-launchlab/raydium-launch.service.d.ts.map +1 -0
  278. package/dist/token-launches/raydium-launchlab/raydium-launch.service.js +102 -0
  279. package/dist/token-launches/raydium-launchlab/raydium-launch.service.js.map +1 -0
  280. package/dist/token-launches/raydium-launchlab/raydium-launch.types.d.ts +57 -0
  281. package/dist/token-launches/raydium-launchlab/raydium-launch.types.d.ts.map +1 -0
  282. package/dist/token-launches/raydium-launchlab/raydium-launch.types.js +3 -0
  283. package/dist/token-launches/raydium-launchlab/raydium-launch.types.js.map +1 -0
  284. package/dist/types/enums.d.ts +4 -2
  285. package/dist/types/enums.d.ts.map +1 -1
  286. package/dist/types/enums.js +2 -0
  287. package/dist/types/enums.js.map +1 -1
  288. package/dist/types/price-params.d.ts +8 -3
  289. package/dist/types/price-params.d.ts.map +1 -1
  290. package/dist/types/price-response.d.ts +4 -3
  291. package/dist/types/price-response.d.ts.map +1 -1
  292. package/dist/types/quote-response.d.ts +4 -3
  293. package/dist/types/quote-response.d.ts.map +1 -1
  294. package/dist/utils/chainId-to-chain.d.ts +4 -0
  295. package/dist/utils/chainId-to-chain.d.ts.map +1 -0
  296. package/dist/utils/chainId-to-chain.js +44 -0
  297. package/dist/utils/chainId-to-chain.js.map +1 -0
  298. package/dist/utils/norm-dex-token.d.ts +13 -0
  299. package/dist/utils/norm-dex-token.d.ts.map +1 -0
  300. package/dist/utils/norm-dex-token.js +19 -0
  301. package/dist/utils/norm-dex-token.js.map +1 -0
  302. package/dist/utils/pair-result.d.ts +3 -0
  303. package/dist/utils/pair-result.d.ts.map +1 -0
  304. package/dist/utils/pair-result.js +11 -0
  305. package/dist/utils/pair-result.js.map +1 -0
  306. package/dist/utils/sort-addresses.d.ts +2 -1
  307. package/dist/utils/sort-addresses.d.ts.map +1 -1
  308. package/dist/utils/sort-addresses.js +3 -1
  309. package/dist/utils/sort-addresses.js.map +1 -1
  310. package/dist/utils/to-pool-key.d.ts +4 -0
  311. package/dist/utils/to-pool-key.d.ts.map +1 -0
  312. package/dist/utils/to-pool-key.js +15 -0
  313. package/dist/utils/to-pool-key.js.map +1 -0
  314. package/dist/utils/transaction-builder.util.d.ts +3 -0
  315. package/dist/utils/transaction-builder.util.d.ts.map +1 -0
  316. package/dist/utils/transaction-builder.util.js +13 -0
  317. package/dist/utils/transaction-builder.util.js.map +1 -0
  318. package/package.json +2 -2
  319. package/dist/lib/dex/uniswapv3/v3-offchain-quoter.service.d.ts.map +0 -1
  320. package/dist/lib/dex/uniswapv3/v3-offchain-quoter.service.js.map +0 -1
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.V2StyleDexService = void 0;
4
4
  const viem_1 = require("viem");
5
5
  const v2_dex_types_1 = require("./v2-dex.types");
6
+ const v2_dex_deployments_1 = require("../../lib/dex/uniswapV2/v2-dex-deployments");
6
7
  const constants_1 = require("../../utils/constants");
7
8
  const enums_1 = require("../../types/enums");
8
9
  const erc20_abi_1 = require("../../lib/erc20/erc20.abi");
@@ -16,8 +17,8 @@ const utils_1 = require("../../utils");
16
17
  const wrapped_native_1 = require("../../utils/wrapped-native");
17
18
  const is_native_1 = require("../../utils/is-native");
18
19
  const min_amount_out_1 = require("../../utils/min-amount-out");
19
- const sort_addresses_1 = require("../../utils/sort-addresses");
20
20
  const dex_deployment_key_1 = require("../../utils/dex-deployment-key");
21
+ const chainId_to_chain_1 = require("../../utils/chainId-to-chain");
21
22
  let logger;
22
23
  /**
23
24
  * V2StyleDexService implements the IIntentProtocol interface for Uniswap V2-style DEX protocols.
@@ -51,25 +52,15 @@ class V2StyleDexService {
51
52
  * The rpc urls to utilize in order to fetch onchain data to build prices and quotes
52
53
  */
53
54
  this.rpcs = {};
55
+ /**
56
+ * The supported chains for the protocol
57
+ */
58
+ this.chains = v2_dex_deployments_1.uniV2SupportedChains;
54
59
  /**
55
60
  * Optional external _rpcs keyed by network/chain id
56
61
  * If not provided for a network, on-chain calls for that network will be skipped with a descriptive error.
57
62
  */
58
63
  this._rpcs = {};
59
- /**
60
- * The supported chains for the protocol
61
- */
62
- this.chains = [
63
- enums_1.ChainIdEnum.ETHEREUM,
64
- enums_1.ChainIdEnum.BSC,
65
- enums_1.ChainIdEnum.POLYGON,
66
- enums_1.ChainIdEnum.AVALANCHE,
67
- enums_1.ChainIdEnum.ARBITRUM,
68
- enums_1.ChainIdEnum.OPTIMISM,
69
- enums_1.ChainIdEnum.BASE,
70
- enums_1.ChainIdEnum.POLYGON,
71
- enums_1.ChainIdEnum.HYPEREVM,
72
- ];
73
64
  if (config?.debug) {
74
65
  logger_1.LoggerFactory.configure(logger_1.LoggerFactory.createConsoleLogger({ level: logger_1.LogLevelEnum.DEBUG }));
75
66
  }
@@ -78,7 +69,7 @@ class V2StyleDexService {
78
69
  logger_1.LoggerFactory.configure(config.logger);
79
70
  }
80
71
  logger = logger_1.LoggerFactory.getLogger();
81
- if (config?.rpcs && config?.uniV2ChainConfigs) {
72
+ if (config?.rpcs) {
82
73
  this.rpcs = {};
83
74
  this._rpcs = {};
84
75
  for (const [chainIdStr, rpc] of Object.entries(config.rpcs)) {
@@ -92,7 +83,11 @@ class V2StyleDexService {
92
83
  logger.warn(`No RPC URL found for chainId ${chainId}, skipping client creation`);
93
84
  continue;
94
85
  }
95
- const chainConfig = config.uniV2ChainConfigs[chainId];
86
+ const chainConfig = chainId_to_chain_1.chainIdToChain[chainId];
87
+ if (!chainConfig) {
88
+ logger.warn(`No chain config found for chainId ${chainId}, skipping client creation`);
89
+ continue;
90
+ }
96
91
  this._rpcs[chainId] = (0, viem_1.createPublicClient)({
97
92
  chain: chainConfig,
98
93
  transport: (0, viem_1.http)(rpc),
@@ -116,7 +111,7 @@ class V2StyleDexService {
116
111
  return true;
117
112
  }
118
113
  async fetchPrice(params) {
119
- const { networkIn, networkOut, amountIn, tokenIn, tokenOut, slippage, overrideParamsV2Dex } = params;
114
+ const { networkIn, networkOut, amountIn, tokenIn, tokenOut, slippage, overrideParamsV2Dex: overrides, } = params;
120
115
  try {
121
116
  if (networkIn !== networkOut) {
122
117
  throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, 'V2StyleDexService only supports same-network swaps.');
@@ -129,20 +124,6 @@ class V2StyleDexService {
129
124
  if (!deployments.length) {
130
125
  throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, `No V2-style deployments configured for network ${networkIn}.`);
131
126
  }
132
- // Optional native-liquidity sanity check (mirror of V3 behavior)
133
- if (overrideParamsV2Dex &&
134
- overrideParamsV2Dex.nativePrice &&
135
- overrideParamsV2Dex.tokenInPrice &&
136
- overrideParamsV2Dex.tokenInDecimals) {
137
- await this._validateNativeLiquidityV2({
138
- tokenIn: tokenIn,
139
- networkIn: networkIn,
140
- dexes: deployments.map(d => d.dex),
141
- nativePrice: overrideParamsV2Dex.nativePrice,
142
- tokenInPrice: overrideParamsV2Dex.tokenInPrice,
143
- tokenInDecimals: overrideParamsV2Dex.tokenInDecimals,
144
- });
145
- }
146
127
  const initialPath = [(0, viem_1.getAddress)(tokenIn), (0, viem_1.getAddress)(tokenOut)];
147
128
  const formattedPath = this._validatePath(networkIn, initialPath);
148
129
  const path = [formattedPath.tokenIn, formattedPath.tokenOut];
@@ -153,76 +134,30 @@ class V2StyleDexService {
153
134
  if (amountInBig <= 0n) {
154
135
  throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, 'amountIn must be greater than zero');
155
136
  }
156
- // EARLY RETURN: if caller provided pair + amountOutMin + dex, trust and short-circuit like V3
157
- if (overrideParamsV2Dex?.pair &&
158
- overrideParamsV2Dex?.amountOutMin &&
159
- overrideParamsV2Dex?.dex !== undefined) {
160
- // route using the router from the matching dex deployment
161
- const chosenRouter = deployments.find(d => d.dex === overrideParamsV2Dex.dex)?.router;
162
- if (!chosenRouter) {
163
- throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, `No router found for dex ${overrideParamsV2Dex.dex} on chainId ${networkIn}`);
164
- }
165
- const uniV2PriceResponse = {
166
- dex: (0, dex_deployment_key_1.dexDeploymentKey)({
167
- dex: overrideParamsV2Dex.dex,
168
- router: (0, viem_1.getAddress)(chosenRouter),
169
- network: networkIn,
170
- }),
171
- route: [(0, viem_1.getAddress)(path[0]), (0, viem_1.getAddress)(path[1])],
172
- router: (0, viem_1.getAddress)(chosenRouter),
173
- slippage,
174
- expectedAmountOut: overrideParamsV2Dex.amountOutMin,
175
- minAmountOut: overrideParamsV2Dex.amountOutMin,
176
- };
177
- return {
178
- amountIn: amountInBig.toString(),
179
- amountOut: overrideParamsV2Dex.amountOutMin,
180
- protocol: this.protocol,
181
- networkIn,
182
- networkOut,
183
- tokenIn,
184
- tokenOut,
185
- slippage,
186
- protocolResponse: uniV2PriceResponse,
187
- };
137
+ const overrideCandidate = overrides?.pairCandidate;
138
+ const overrideKey = overrideCandidate?.key;
139
+ const overridePair = overrideCandidate?.pair;
140
+ const overrideAmountOutMin = overrideCandidate?.amountOutMin;
141
+ const useFastRoute = overridePair && overrideKey && overrideAmountOutMin;
142
+ const overrideDex = overrideKey
143
+ ? overrideKey.split(':')[0]
144
+ : undefined;
145
+ if (!overrideDex) {
146
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, 'Invalid override key');
188
147
  }
189
- // FAST PATH: if a specific pair was supplied, quote directly from that pair's reserves
190
- if (overrideParamsV2Dex?.pair) {
191
- const fast = await this._fetchKnownPairPriceV2({
192
- network: networkIn,
193
- tokenInForQuote: (0, viem_1.getAddress)(path[0]),
194
- tokenOutForQuote: (0, viem_1.getAddress)(path[1]),
195
- amountInBI: amountInBig,
196
- pair: (0, viem_1.getAddress)(overrideParamsV2Dex.pair),
197
- });
198
- const slippageNum = Number(slippage ?? 0);
199
- const minAmountOut = (0, min_amount_out_1.calculateMinAmountOut)({
200
- amountOut: fast.amountOut.toString(),
201
- slippage: slippageNum,
202
- });
203
- const uniV2PriceResponse = {
204
- dex: (0, dex_deployment_key_1.dexDeploymentKey)({
205
- dex: (0, dex_deployment_key_1.dexFromDeploymentKey)(fast.payload.dex),
206
- router: fast.payload.router,
207
- network: networkIn,
208
- }),
209
- route: [(0, viem_1.getAddress)(path[0]), (0, viem_1.getAddress)(path[1])],
210
- router: fast.payload.router,
211
- slippage,
212
- expectedAmountOut: fast.amountOut.toString(),
213
- minAmountOut,
214
- };
215
- return {
216
- amountIn: amountInBig.toString(),
217
- amountOut: fast.amountOut.toString(),
218
- protocol: this.protocol,
148
+ if (useFastRoute) {
149
+ return this._buildFastRoutePriceResponse({
219
150
  networkIn,
220
151
  networkOut,
221
152
  tokenIn,
222
153
  tokenOut,
154
+ amountIn,
223
155
  slippage,
224
- protocolResponse: uniV2PriceResponse,
225
- };
156
+ deployments,
157
+ overrideDex,
158
+ overrideAmountOutMin: overrideAmountOutMin,
159
+ overridePair: overridePair,
160
+ });
226
161
  }
227
162
  // === Original discovery logic ===
228
163
  let best;
@@ -263,6 +198,7 @@ class V2StyleDexService {
263
198
  router: routerAddr,
264
199
  factory: dep.factory ? (0, viem_1.getAddress)(dep.factory) : undefined,
265
200
  amountOut,
201
+ pair: undefined,
266
202
  };
267
203
  }
268
204
  });
@@ -360,6 +296,7 @@ class V2StyleDexService {
360
296
  router: routerAddr,
361
297
  factory: factoryDeployment,
362
298
  amountOut,
299
+ pair: pair.pair,
363
300
  };
364
301
  }
365
302
  }
@@ -388,6 +325,7 @@ class V2StyleDexService {
388
325
  slippage,
389
326
  expectedAmountOut: best.amountOut.toString(),
390
327
  minAmountOut,
328
+ pair: best.pair,
391
329
  };
392
330
  const response = {
393
331
  amountIn: amountInBig.toString(),
@@ -403,14 +341,10 @@ class V2StyleDexService {
403
341
  return response;
404
342
  }
405
343
  catch (error) {
406
- const formattedError = (0, utils_1.createErrorMessage)(error, this.protocol);
407
- throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.PRICE_NOT_FOUND, formattedError, { cause: error });
344
+ const errorMessage = error?.message || String(error);
345
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.PRICE_NOT_FOUND, errorMessage);
408
346
  }
409
347
  }
410
- /**
411
- * Build an executable quote (tx data + approval info).
412
- * Uses `_decideUniV2SwapMethodWithOverride` to select the correct router method (fee-on-transfer safe).
413
- */
414
348
  async fetchQuote(params) {
415
349
  const { from, receiver, tokenIn, tokenOut, amountIn, networkIn, networkOut, slippage, overrideParamsV2Dex, } = params;
416
350
  if (!from || !receiver) {
@@ -428,21 +362,6 @@ class V2StyleDexService {
428
362
  throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, `No V2-style deployments configured for network ${networkIn}.`);
429
363
  }
430
364
  try {
431
- // Optional native-liquidity sanity check (mirror of V3 behavior)
432
- if (overrideParamsV2Dex &&
433
- overrideParamsV2Dex.nativePrice &&
434
- overrideParamsV2Dex.tokenInPrice &&
435
- overrideParamsV2Dex.tokenInDecimals) {
436
- console.log(`WARNING: SHOULD NOT BE LOGGING IN PROD CODE`);
437
- await this._validateNativeLiquidityV2({
438
- tokenIn: tokenIn,
439
- networkIn: networkIn,
440
- dexes: deployments.map(d => d.dex),
441
- nativePrice: overrideParamsV2Dex.nativePrice,
442
- tokenInPrice: overrideParamsV2Dex.tokenInPrice,
443
- tokenInDecimals: overrideParamsV2Dex.tokenInDecimals,
444
- });
445
- }
446
365
  const formattedTokens = this._validatePath(networkIn, [
447
366
  (0, viem_1.getAddress)(tokenIn),
448
367
  (0, viem_1.getAddress)(tokenOut),
@@ -484,6 +403,11 @@ class V2StyleDexService {
484
403
  const isNativeTokenOut = (0, is_native_1.isNative)(tokenOut);
485
404
  const bestFactory = (0, viem_1.getAddress)(bestDeployment.factory);
486
405
  const minAmountOut = priceResponse.protocolResponse.minAmountOut;
406
+ const overrideCandidate = overrideParamsV2Dex?.pairCandidate;
407
+ const overridePair = overrideCandidate?.pair;
408
+ if (!overridePair) {
409
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, 'Override pair is required for quote building.');
410
+ }
487
411
  const functionDetails = await this._decideUniV2SwapMethodWithOverride({
488
412
  factoryAddress: bestFactory,
489
413
  tokenIn: path[0],
@@ -491,7 +415,7 @@ class V2StyleDexService {
491
415
  amountIn: amountInBig,
492
416
  provider,
493
417
  isNative: isNativeTokenIn,
494
- overridePair: overrideParamsV2Dex?.pair,
418
+ overridePair,
495
419
  });
496
420
  const value = isNativeTokenIn ? amountInBig : BigInt(0);
497
421
  const fn = this._selectSwapFunction({
@@ -572,217 +496,6 @@ class V2StyleDexService {
572
496
  throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.QUOTE_NOT_FOUND, formattedError, { cause: error });
573
497
  }
574
498
  }
575
- // NEW: Fast-quote for a known V2 pair using on-chain reserves (Uniswap V2 formula)
576
- async _fetchKnownPairPriceV2(params) {
577
- const { network, tokenInForQuote, tokenOutForQuote, amountInBI, pair } = params;
578
- const client = this._rpcs[network];
579
- if (!client) {
580
- throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, `No RPC client configured for chainId ${network}`);
581
- }
582
- const { token0, token1, deployment } = await this._resolveV2PairDeploymentFast(network, pair);
583
- // Validate direction
584
- const inLower = (0, viem_1.getAddress)(tokenInForQuote).toLowerCase();
585
- const outLower = (0, viem_1.getAddress)(tokenOutForQuote).toLowerCase();
586
- const t0 = token0.toLowerCase();
587
- const t1 = token1.toLowerCase();
588
- const directionValid = (inLower === t0 && outLower === t1) || (inLower === t1 && outLower === t0);
589
- if (!directionValid) {
590
- throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, `Supplied pair/token direction mismatch. Pair ${pair} tokens are ${token0}/${token1}; received ${tokenInForQuote}/${tokenOutForQuote}`);
591
- }
592
- // Read reserves
593
- const [r0, r1] = (await client.readContract({
594
- address: pair,
595
- abi: uniswapV2_pair_abi_1.uniswapV2PairAbi,
596
- functionName: 'getReserves',
597
- }));
598
- const [reserveIn, reserveOut] = token0.toLowerCase() === inLower ? [r0, r1] : [r1, r0];
599
- if (reserveIn === 0n || reserveOut === 0n) {
600
- throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.PRICE_NOT_FOUND, `No liquidity in supplied pair ${pair}`);
601
- }
602
- // Uniswap V2 0.30% fee
603
- const amountInWithFee = amountInBI * 997n;
604
- const numerator = amountInWithFee * reserveOut;
605
- const denominator = reserveIn * 1000n + amountInWithFee;
606
- if (denominator === 0n) {
607
- throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.PRICE_NOT_FOUND, `Invalid reserves math for pair ${pair}`);
608
- }
609
- const amountOut = numerator / denominator;
610
- const dexKey = (0, dex_deployment_key_1.dexDeploymentKey)({
611
- dex: deployment.dex,
612
- router: deployment.router,
613
- network,
614
- });
615
- return {
616
- amountOut,
617
- payload: {
618
- dex: dexKey,
619
- router: deployment.router,
620
- method: 'Pair.getReserves',
621
- amountOut: amountOut.toString(),
622
- notes: `Known pair fast path (${pair}).`,
623
- },
624
- };
625
- }
626
- // NEW: Resolve V2 pair -> tokens/factory/deployment in O(1) calls
627
- async _resolveV2PairDeploymentFast(network, pair) {
628
- const client = this._rpcs[network];
629
- if (!client) {
630
- throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, `No RPC client configured for chainId ${network}`);
631
- }
632
- const [t0, t1, fac] = (await client.multicall({
633
- allowFailure: false,
634
- contracts: [
635
- { address: pair, abi: uniswapV2_pair_abi_1.uniswapV2PairAbi, functionName: 'token0' },
636
- { address: pair, abi: uniswapV2_pair_abi_1.uniswapV2PairAbi, functionName: 'token1' },
637
- { address: pair, abi: uniswapV2_pair_abi_1.uniswapV2PairAbi, functionName: 'factory' },
638
- ],
639
- }));
640
- if (t0.status !== 'success' || t1.status !== 'success' || fac.status !== 'success') {
641
- throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, `Failed to read pair data from ${pair} on chain ${network}`);
642
- }
643
- const token0 = (0, viem_1.getAddress)(t0.result);
644
- const token1 = (0, viem_1.getAddress)(t1.result);
645
- const factory = (0, viem_1.getAddress)(fac.result);
646
- const deployments = V2StyleDexService.deployments[network] ?? [];
647
- const matched = deployments.find(d => d.factory?.toLowerCase() === factory.toLowerCase());
648
- if (!matched) {
649
- throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, `Pair ${pair} factory ${factory} does not match any configured V2 deployments on chain ${network}`);
650
- }
651
- return {
652
- token0,
653
- token1,
654
- factory,
655
- deployment: {
656
- dex: matched.dex,
657
- router: (0, viem_1.getAddress)(matched.router),
658
- factory: (0, viem_1.getAddress)(matched.factory),
659
- // if your deployment type carries initCodeHash, surface it here for diagnostics
660
- initCodeHash: matched?.initHash,
661
- },
662
- };
663
- }
664
- // NEW: Native-liquidity validation for V2 (mirror of V3 behavior)
665
- async _validateNativeLiquidityV2(params) {
666
- const { tokenIn, networkIn, dexes, nativePrice, tokenInPrice, tokenInDecimals } = params;
667
- // Stable & wrapped native mappings must exist in your constants (same as V3)
668
- const stable = constants_1.networkStablecoins[networkIn];
669
- if (!stable) {
670
- throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, `No stablecoin mapping for chainId ${networkIn}`);
671
- }
672
- const usdcEntry = stable.usdc;
673
- const usdtEntry = stable.usdt;
674
- const wrappedNative = wrapped_native_1.wrappedNativeTokens[networkIn];
675
- const tokenInAddr = (0, viem_1.getAddress)(tokenIn);
676
- const baseTokenAddrs = [wrappedNative, usdcEntry?.address, usdtEntry?.address]
677
- .filter((a) => !!a)
678
- .filter(a => !(0, is_native_1.isNative)(a))
679
- .map(a => (0, viem_1.getAddress)(a))
680
- .filter(a => a !== tokenInAddr);
681
- if (baseTokenAddrs.length === 0) {
682
- throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, `No valid base tokens (WETH/USDC/USDT) for liquidity check on chainId ${networkIn}`);
683
- }
684
- const deployments = (V2StyleDexService.deployments[networkIn] ?? []).filter(d => dexes.includes(d.dex));
685
- if (!deployments.length) {
686
- throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, `No V2-style deployments configured for network ${networkIn} (requested: ${dexes.join(', ')})`);
687
- }
688
- const client = this._rpcs[networkIn];
689
- if (!client) {
690
- throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, `No RPC client configured for chainId ${networkIn}`);
691
- }
692
- const isWrappedNative = (addr) => !!wrappedNative &&
693
- (0, viem_1.getAddress)(addr).toLowerCase() === (0, viem_1.getAddress)(wrappedNative).toLowerCase();
694
- const stableAddrLower = new Set([
695
- usdcEntry?.address ? (0, viem_1.getAddress)(usdcEntry.address).toLowerCase() : '',
696
- usdtEntry?.address ? (0, viem_1.getAddress)(usdtEntry.address).toLowerCase() : '',
697
- ].filter(Boolean));
698
- const isStable = (addr) => stableAddrLower.has(addr.toLowerCase());
699
- const getBaseDecimals = (base) => {
700
- const lower = base.toLowerCase();
701
- if (usdcEntry && (0, viem_1.getAddress)(usdcEntry.address).toLowerCase() === lower)
702
- return usdcEntry.decimals;
703
- if (usdtEntry && (0, viem_1.getAddress)(usdtEntry.address).toLowerCase() === lower)
704
- return usdtEntry.decimals;
705
- if (isWrappedNative(base))
706
- return 18;
707
- return 18;
708
- };
709
- const getBasePriceUSD = (base) => (isStable(base) ? 1 : nativePrice);
710
- const candidates = [];
711
- for (const d of deployments) {
712
- const initCodeHash = d?.initHash;
713
- if (!initCodeHash) {
714
- // cannot construct deterministic pair addr without init code hash
715
- continue;
716
- }
717
- for (const base of baseTokenAddrs) {
718
- const [token0, token1] = (0, sort_addresses_1.sortAddresses)(tokenInAddr, base);
719
- const pairAddr = this._computeV2PairAddress({
720
- factory: (0, viem_1.getAddress)(d.factory),
721
- initCodeHash,
722
- tokenA: token0,
723
- tokenB: token1,
724
- });
725
- candidates.push({ pair: (0, viem_1.getAddress)(pairAddr), baseToken: (0, viem_1.getAddress)(base), dex: d.dex });
726
- }
727
- }
728
- if (!candidates.length) {
729
- throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, `No candidate V2 pairs could be constructed for chainId ${networkIn}`);
730
- }
731
- // Read reserves for all candidates
732
- const contracts = candidates.map(c => ({
733
- address: c.pair,
734
- abi: uniswapV2_pair_abi_1.uniswapV2PairAbi,
735
- functionName: 'getReserves',
736
- args: [],
737
- }));
738
- const reservesResults = await client.multicall({
739
- allowFailure: true,
740
- contracts,
741
- });
742
- const tvls = [];
743
- for (let i = 0; i < candidates.length; i++) {
744
- const cand = candidates[i];
745
- const res = reservesResults[i];
746
- if (!res || res.status !== 'success' || !cand)
747
- continue;
748
- const [r0, r1] = res.result;
749
- // Need to know token0 order to map reserves; fetch token0 for this pair
750
- const token0Addr = (await client.readContract({
751
- address: cand.pair,
752
- abi: uniswapV2_pair_abi_1.uniswapV2PairAbi,
753
- functionName: 'token0',
754
- }));
755
- const token0Lower = (0, viem_1.getAddress)(token0Addr).toLowerCase();
756
- const isTokenInToken0 = token0Lower === (0, viem_1.getAddress)(tokenInAddr).toLowerCase();
757
- const reserveIn = isTokenInToken0 ? r0 : r1;
758
- const reserveBase = isTokenInToken0 ? r1 : r0;
759
- const tokenInAmt = Number(reserveIn) / 10 ** tokenInDecimals;
760
- const baseAmt = Number(reserveBase) / 10 ** getBaseDecimals(cand.baseToken);
761
- const usdValue = tokenInAmt * tokenInPrice + baseAmt * getBasePriceUSD(cand.baseToken);
762
- tvls.push({
763
- pair: cand.pair,
764
- baseToken: cand.baseToken,
765
- usdValue,
766
- baseIsNative: isWrappedNative(cand.baseToken) ?? false,
767
- });
768
- }
769
- if (!tvls.length) {
770
- throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.PRICE_NOT_FOUND, `No liquidity detected for ${tokenIn} on chainId ${networkIn} across requested dexes: ${dexes.join(', ')}`);
771
- }
772
- tvls.sort((a, b) => b.usdValue - a.usdValue);
773
- const top = tvls[0];
774
- if (!top) {
775
- throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.PRICE_NOT_FOUND, `No liquidity detected for ${tokenIn} on chainId ${networkIn} across requested dexes: ${dexes.join(', ')}`);
776
- }
777
- if (isStable(top.baseToken)) {
778
- throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.PRICE_NOT_FOUND, `Most liquid pool for ${tokenIn} on chain ${networkIn} is against a stablecoin, not native.`);
779
- }
780
- if (!top.baseIsNative) {
781
- throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.PRICE_NOT_FOUND, `Most liquid pool for ${tokenIn} is not against the native token.`);
782
- }
783
- // success
784
- return;
785
- }
786
499
  _selectSwapFunction(params) {
787
500
  const { deployment, decision, isNativeIn, isNativeOut, network } = params;
788
501
  const isAvaxEdgecase = this._isAvaxEdgecase(deployment, network);
@@ -856,6 +569,40 @@ class V2StyleDexService {
856
569
  return { decision: 'supportingFeeOnTransfer', reason: 'erc20 input' };
857
570
  }
858
571
  }
572
+ _buildFastRoutePriceResponse(params) {
573
+ const { networkIn, networkOut, tokenIn, tokenOut, amountIn, slippage, deployments, overrideDex, overrideAmountOutMin, overridePair, } = params;
574
+ // route using the router from the matching dex deployment
575
+ const chosenRouter = deployments.find(d => d.dex === overrideDex)?.router;
576
+ if (!chosenRouter) {
577
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, `No router found for dex ${overrideDex} on chainId ${networkIn}`);
578
+ }
579
+ const amountInBig = BigInt(amountIn);
580
+ const path = [(0, viem_1.getAddress)(tokenIn), (0, viem_1.getAddress)(tokenOut)];
581
+ const uniV2PriceResponse = {
582
+ dex: (0, dex_deployment_key_1.dexDeploymentKey)({
583
+ dex: overrideDex,
584
+ router: (0, viem_1.getAddress)(chosenRouter),
585
+ network: networkIn,
586
+ }),
587
+ route: [(0, viem_1.getAddress)(path[0]), (0, viem_1.getAddress)(path[1])],
588
+ router: (0, viem_1.getAddress)(chosenRouter),
589
+ slippage,
590
+ expectedAmountOut: overrideAmountOutMin,
591
+ minAmountOut: overrideAmountOutMin,
592
+ pair: (0, viem_1.getAddress)(overridePair),
593
+ };
594
+ return {
595
+ amountIn: amountInBig.toString(),
596
+ amountOut: overrideAmountOutMin,
597
+ protocol: this.protocol,
598
+ networkIn,
599
+ networkOut,
600
+ tokenIn,
601
+ tokenOut,
602
+ slippage,
603
+ protocolResponse: uniV2PriceResponse,
604
+ };
605
+ }
859
606
  _mergeDeployments(base, extras) {
860
607
  const norm = (addr) => (0, viem_1.getAddress)(addr);
861
608
  // Work on normalized copies
@@ -933,23 +680,6 @@ class V2StyleDexService {
933
680
  tokenOut,
934
681
  };
935
682
  }
936
- _computeV2PairAddress(params) {
937
- const { factory, initCodeHash, tokenA, tokenB } = params;
938
- const [token0, token1] = (0, sort_addresses_1.sortAddresses)(tokenA, tokenB);
939
- // from (factory) as bytes
940
- const from = (0, viem_1.toBytes)((0, viem_1.getAddress)(factory));
941
- // salt = keccak256(abi.encodePacked(address, address))
942
- const saltHex = (0, viem_1.keccak256)((0, viem_1.encodePacked)(['address', 'address'], [token0, token1]));
943
- const salt = (0, viem_1.toBytes)(saltHex);
944
- // init code hash (pair creation code hash) as bytes
945
- const bytecodeHash = (0, viem_1.toBytes)(initCodeHash);
946
- // keccak256( 0xff ++ factory ++ salt ++ init_code_hash )
947
- const create2Input = (0, viem_1.concat)([(0, viem_1.toBytes)('0xff'), from, salt, bytecodeHash]);
948
- const create2Hash = (0, viem_1.keccak256)(create2Input);
949
- // Take the last 20 bytes, then checksum it to an Address
950
- const pair = (0, viem_1.getAddress)((0, viem_1.slice)(create2Hash, 12)); // drop first 12 bytes -> 20 bytes left
951
- return pair;
952
- }
953
683
  _getRouterAbi(dex, network) {
954
684
  if (this._isAvaxEdgecase(dex, network))
955
685
  return avax_uniswapv2_router_abi_1.avaxUniswapV2RouterAbi;
@@ -959,154 +689,8 @@ class V2StyleDexService {
959
689
  }
960
690
  }
961
691
  exports.V2StyleDexService = V2StyleDexService;
962
- V2StyleDexService.deployments = {
963
- [enums_1.ChainIdEnum.ETHEREUM]: [
964
- {
965
- dex: v2_dex_types_1.UniswapV2StyleDexEnum.UNISWAP_V2,
966
- router: '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D',
967
- factory: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',
968
- initHash: '0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f',
969
- },
970
- {
971
- dex: v2_dex_types_1.UniswapV2StyleDexEnum.SUSHISWAP_V2,
972
- router: '0xd9e1ce17f2641f24ae83637ab66a2cca9c378b9f',
973
- factory: '0xc0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac',
974
- initHash: '0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303',
975
- },
976
- {
977
- dex: v2_dex_types_1.UniswapV2StyleDexEnum.PANCAKESWAP_V2,
978
- router: '0xEfF92A263d31888d860bD50809A8D171709b7b1c',
979
- factory: '0x1097053Fd2ea711dad45caCcc45EfF7548fCB362',
980
- initHash: '0x00fb7f630766e6a796048ea87d01acd3068e8ff67d078148a3fa3f4a84f69bd5',
981
- },
982
- ],
983
- [enums_1.ChainIdEnum.BSC]: [
984
- {
985
- dex: v2_dex_types_1.UniswapV2StyleDexEnum.PANCAKESWAP_V2,
986
- router: '0x10ED43C718714eb63d5aA57B78B54704E256024E',
987
- factory: '0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73',
988
- initHash: '0x00fb7f630766e6a796048ea87d01acd3068e8ff67d078148a3fa3f4a84f69bd5',
989
- },
990
- {
991
- dex: v2_dex_types_1.UniswapV2StyleDexEnum.UNISWAP_V2,
992
- router: '0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24',
993
- factory: '0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6',
994
- initHash: '0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f',
995
- },
996
- {
997
- dex: v2_dex_types_1.UniswapV2StyleDexEnum.SUSHISWAP_V2,
998
- router: '0x1b02da8cb0d097eb8d57a175b88c7d8b47997506',
999
- factory: '0xc35dadb65012ec5796536bd9864ed8773abc74c4',
1000
- initHash: '0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303',
1001
- },
1002
- ],
1003
- [enums_1.ChainIdEnum.POLYGON]: [
1004
- {
1005
- dex: v2_dex_types_1.UniswapV2StyleDexEnum.QUICKSWAP_V2,
1006
- router: '0xa5E0829CaCEd8fFDD4De3c43696c57F7D7A678ff',
1007
- factory: '0x5757371414417b8C6CAad45bAeF941aBc7d3Ab32',
1008
- initHash: '0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f',
1009
- },
1010
- {
1011
- dex: v2_dex_types_1.UniswapV2StyleDexEnum.UNISWAP_V2,
1012
- router: '0xedf6066a2b290C185783862C7F4776A2C8077AD1',
1013
- factory: '0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C',
1014
- initHash: '0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f',
1015
- },
1016
- {
1017
- dex: v2_dex_types_1.UniswapV2StyleDexEnum.SUSHISWAP_V2,
1018
- router: '0x1b02da8cb0d097eb8d57a175b88c7d8b47997506',
1019
- factory: '0xc35dadb65012ec5796536bd9864ed8773abc74c4',
1020
- initHash: '0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303',
1021
- },
1022
- ],
1023
- [enums_1.ChainIdEnum.AVALANCHE]: [
1024
- {
1025
- dex: v2_dex_types_1.UniswapV2StyleDexEnum.TRADERJOE_V2,
1026
- router: '0x60aE616a2155Ee3d9A68541Ba4544862310933d4',
1027
- factory: '0x9Ad6C38BE94206cA50bb0d90783181662f0Cfa10',
1028
- initHash: '0x0bbca9af0511ad1a1da383135cf3a8d2ac620e549ef9f6ae3a4c33c2fed0af91',
1029
- },
1030
- {
1031
- dex: v2_dex_types_1.UniswapV2StyleDexEnum.SUSHISWAP_V2,
1032
- router: '0x1b02da8cb0d097eb8d57a175b88c7d8b47997506',
1033
- factory: '0xc35dadb65012ec5796536bd9864ed8773abc74c4',
1034
- initHash: '0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303',
1035
- },
1036
- {
1037
- dex: v2_dex_types_1.UniswapV2StyleDexEnum.UNISWAP_V2,
1038
- router: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',
1039
- factory: '0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C',
1040
- initHash: '0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f',
1041
- },
1042
- {
1043
- dex: v2_dex_types_1.UniswapV2StyleDexEnum.PANGOLIN_V2,
1044
- router: '0xE54Ca86531e17Ef3616d22Ca28b0D458b6C89106',
1045
- factory: '0xefa94DE7a4656D787667C749f7E1223D71E9FD88',
1046
- initHash: '0x40231f6b438bce0797c9ada29b718a87ea0a5cea3fe9a771abdd76bd41a3e545',
1047
- },
1048
- ],
1049
- [enums_1.ChainIdEnum.ARBITRUM]: [
1050
- {
1051
- dex: v2_dex_types_1.UniswapV2StyleDexEnum.SUSHISWAP_V2,
1052
- router: '0x1b02da8cb0d097eb8d57a175b88c7d8b47997506',
1053
- factory: '0xc35dadb65012ec5796536bd9864ed8773abc74c4',
1054
- initHash: '0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303',
1055
- },
1056
- {
1057
- dex: v2_dex_types_1.UniswapV2StyleDexEnum.UNISWAP_V2,
1058
- router: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',
1059
- factory: '0xf1D7CC64Fb4452F05c498126312eBE29f30Fbcf9',
1060
- initHash: '0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f',
1061
- },
1062
- {
1063
- dex: v2_dex_types_1.UniswapV2StyleDexEnum.PANCAKESWAP_V2,
1064
- router: '0x10ED43C718714eb63d5aA57B78B54704E256024E',
1065
- factory: '0x02a84c1b3BBD7401a5f7fa98a384EBC70bB5749E',
1066
- initHash: '0x00fb7f630766e6a796048ea87d01acd3068e8ff67d078148a3fa3f4a84f69bd5',
1067
- },
1068
- ],
1069
- [enums_1.ChainIdEnum.OPTIMISM]: [
1070
- {
1071
- dex: v2_dex_types_1.UniswapV2StyleDexEnum.SUSHISWAP_V2,
1072
- router: '0x2abf469074dc0b54d793850807e6eb5faf2625b1',
1073
- factory: '0xfbc12984689e5f15626bad03ad60160fe98b303c',
1074
- initHash: '0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303',
1075
- },
1076
- {
1077
- dex: v2_dex_types_1.UniswapV2StyleDexEnum.UNISWAP_V2,
1078
- router: '0x4A7b5Da61326A6379179b40d00F57E5bbDC962c2',
1079
- factory: '0x0c3c1c532F1e39EdF36BE9Fe0bE1410313E074Bf',
1080
- initHash: '0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f',
1081
- },
1082
- ],
1083
- [enums_1.ChainIdEnum.BASE]: [
1084
- {
1085
- dex: v2_dex_types_1.UniswapV2StyleDexEnum.SUSHISWAP_V2,
1086
- router: '0x6bded42c6da8fbf0d2ba55b2fa120c5e0c8d7891',
1087
- factory: '0x71524b4f93c58fcbf659783284e38825f0622859',
1088
- initHash: '0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303',
1089
- },
1090
- {
1091
- dex: v2_dex_types_1.UniswapV2StyleDexEnum.UNISWAP_V2,
1092
- router: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',
1093
- factory: '0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6',
1094
- initHash: '0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f',
1095
- },
1096
- {
1097
- dex: v2_dex_types_1.UniswapV2StyleDexEnum.PANCAKESWAP_V2,
1098
- router: '0x8cFe327CEc66d1C090Dd72bd0FF11d690C33a2Eb',
1099
- factory: '0x02a84c1b3BBD7401a5f7fa98a384EBC70bB5749E',
1100
- initHash: '0x00fb7f630766e6a796048ea87d01acd3068e8ff67d078148a3fa3f4a84f69bd5',
1101
- },
1102
- ],
1103
- [enums_1.ChainIdEnum.HYPEREVM]: [
1104
- {
1105
- dex: v2_dex_types_1.UniswapV2StyleDexEnum.HYPERSWAP_V2,
1106
- router: '0xb4a9C4e6Ea8E2191d2FA5B380452a634Fb21240A',
1107
- factory: '0x724412C00059bf7d6ee7d4a1d0D5cd4de3ea1C48',
1108
- initHash: '0xc83d9df19c8c8a0a1229bd3122cbb86fd8ff56f79cc6781c15999d39425466e9',
1109
- },
1110
- ],
1111
- };
692
+ /**
693
+ * The deployments of V2-style DEXes on various chains
694
+ */
695
+ V2StyleDexService.deployments = v2_dex_deployments_1.uniV2DexDeployments;
1112
696
  //# sourceMappingURL=v2-dex.service.js.map