@steerprotocol/sdk 1.30.4 → 1.30.5

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 (355) hide show
  1. package/dist/cjs/const/amm/configs/ammConfig.js +33 -34
  2. package/dist/cjs/const/amm/configs/ammConfig.js.map +1 -1
  3. package/dist/cjs/const/amm/configs/protocols/index.js +0 -39
  4. package/dist/cjs/const/amm/configs/protocols/index.js.map +1 -1
  5. package/dist/cjs/const/stabilityVaults/index.js +1 -1
  6. package/dist/cjs/const/stabilityVaults/index.js.map +1 -1
  7. package/dist/esm/base/FeeManagerClient.js +26 -22
  8. package/dist/esm/base/FeeManagerClient.js.map +1 -1
  9. package/dist/esm/base/PoolClient.js +19 -15
  10. package/dist/esm/base/PoolClient.js.map +1 -1
  11. package/dist/esm/base/SmartRewardClient.js +10 -6
  12. package/dist/esm/base/SmartRewardClient.js.map +1 -1
  13. package/dist/esm/base/SmartRewards.js +11 -7
  14. package/dist/esm/base/SmartRewards.js.map +1 -1
  15. package/dist/esm/base/StakingClient.js +18 -14
  16. package/dist/esm/base/StakingClient.js.map +1 -1
  17. package/dist/esm/base/SubgraphClient.js +8 -4
  18. package/dist/esm/base/SubgraphClient.js.map +1 -1
  19. package/dist/esm/base/VaultClient.js +55 -37
  20. package/dist/esm/base/VaultClient.js.map +1 -1
  21. package/dist/esm/base/vault/deposit/index.js +42 -38
  22. package/dist/esm/base/vault/deposit/index.js.map +1 -1
  23. package/dist/esm/base/vault/deposit/types.js +2 -1
  24. package/dist/esm/base/vault/single-asset/calculateLimitPrice.js +39 -32
  25. package/dist/esm/base/vault/single-asset/calculateLimitPrice.js.map +1 -1
  26. package/dist/esm/base/vault/single-asset/calculateSwapAmount.js +8 -5
  27. package/dist/esm/base/vault/single-asset/calculateSwapAmount.js.map +1 -1
  28. package/dist/esm/base/vault/single-asset/estimateLpTokens.js +12 -7
  29. package/dist/esm/base/vault/single-asset/estimateLpTokens.js.map +1 -1
  30. package/dist/esm/base/vault/single-asset/index.js +32 -6
  31. package/dist/esm/base/vault/single-asset/index.js.map +1 -1
  32. package/dist/esm/base/vault/single-asset/simulateSwap.js +30 -24
  33. package/dist/esm/base/vault/single-asset/simulateSwap.js.map +1 -1
  34. package/dist/esm/base/vault/single-asset/singleAssetDeposit.js +33 -29
  35. package/dist/esm/base/vault/single-asset/singleAssetDeposit.js.map +1 -1
  36. package/dist/esm/base/vault/single-asset/types.js +5 -2
  37. package/dist/esm/base/vault/single-asset/types.js.map +1 -1
  38. package/dist/esm/base/vault/utils.js +16 -7
  39. package/dist/esm/base/vault/utils.js.map +1 -1
  40. package/dist/esm/base/vault/withdraw/index.js +10 -6
  41. package/dist/esm/base/vault/withdraw/index.js.map +1 -1
  42. package/dist/esm/base/vault/withdraw/types.js +2 -1
  43. package/dist/esm/client.js +15 -11
  44. package/dist/esm/client.js.map +1 -1
  45. package/dist/esm/const/abis/UniswapPool.js +4 -1
  46. package/dist/esm/const/abis/UniswapPool.js.map +1 -1
  47. package/dist/esm/const/abis/erc1155.js +4 -1
  48. package/dist/esm/const/abis/erc1155.js.map +1 -1
  49. package/dist/esm/const/abis/erc20.js +4 -1
  50. package/dist/esm/const/abis/erc20.js.map +1 -1
  51. package/dist/esm/const/abis/erc721.js +4 -1
  52. package/dist/esm/const/abis/erc721.js.map +1 -1
  53. package/dist/esm/const/abis/feeManager.js +4 -1
  54. package/dist/esm/const/abis/feeManager.js.map +1 -1
  55. package/dist/esm/const/abis/index.js +24 -8
  56. package/dist/esm/const/abis/index.js.map +1 -1
  57. package/dist/esm/const/abis/quoter.js +9 -6
  58. package/dist/esm/const/abis/quoter.js.map +1 -1
  59. package/dist/esm/const/abis/singleTokenDeposit.js +4 -1
  60. package/dist/esm/const/abis/singleTokenDeposit.js.map +1 -1
  61. package/dist/esm/const/abis/vaultFees.js +4 -1
  62. package/dist/esm/const/abis/vaultFees.js.map +1 -1
  63. package/dist/esm/const/amm/configs/ammConfig.js +98 -95
  64. package/dist/esm/const/amm/configs/ammConfig.js.map +1 -1
  65. package/dist/esm/const/amm/configs/protocols/aerodrome-v2.js +12 -8
  66. package/dist/esm/const/amm/configs/protocols/aerodrome-v2.js.map +1 -1
  67. package/dist/esm/const/amm/configs/protocols/aerodrome.js +12 -8
  68. package/dist/esm/const/amm/configs/protocols/aerodrome.js.map +1 -1
  69. package/dist/esm/const/amm/configs/protocols/arthswap.js +14 -10
  70. package/dist/esm/const/amm/configs/protocols/arthswap.js.map +1 -1
  71. package/dist/esm/const/amm/configs/protocols/baseswap.js +11 -7
  72. package/dist/esm/const/amm/configs/protocols/baseswap.js.map +1 -1
  73. package/dist/esm/const/amm/configs/protocols/basex.js +12 -8
  74. package/dist/esm/const/amm/configs/protocols/basex.js.map +1 -1
  75. package/dist/esm/const/amm/configs/protocols/beam.js +11 -7
  76. package/dist/esm/const/amm/configs/protocols/beam.js.map +1 -1
  77. package/dist/esm/const/amm/configs/protocols/beamswap.js +11 -7
  78. package/dist/esm/const/amm/configs/protocols/beamswap.js.map +1 -1
  79. package/dist/esm/const/amm/configs/protocols/blackhole.js +12 -8
  80. package/dist/esm/const/amm/configs/protocols/blackhole.js.map +1 -1
  81. package/dist/esm/const/amm/configs/protocols/camelot.js +17 -13
  82. package/dist/esm/const/amm/configs/protocols/camelot.js.map +1 -1
  83. package/dist/esm/const/amm/configs/protocols/crust.js +11 -7
  84. package/dist/esm/const/amm/configs/protocols/crust.js.map +1 -1
  85. package/dist/esm/const/amm/configs/protocols/cypher.js +13 -9
  86. package/dist/esm/const/amm/configs/protocols/cypher.js.map +1 -1
  87. package/dist/esm/const/amm/configs/protocols/dodo.js +11 -7
  88. package/dist/esm/const/amm/configs/protocols/dodo.js.map +1 -1
  89. package/dist/esm/const/amm/configs/protocols/dragonswap.js +11 -7
  90. package/dist/esm/const/amm/configs/protocols/dragonswap.js.map +1 -1
  91. package/dist/esm/const/amm/configs/protocols/eddy.js +11 -7
  92. package/dist/esm/const/amm/configs/protocols/eddy.js.map +1 -1
  93. package/dist/esm/const/amm/configs/protocols/equilibre.js +11 -7
  94. package/dist/esm/const/amm/configs/protocols/equilibre.js.map +1 -1
  95. package/dist/esm/const/amm/configs/protocols/fenix.js +11 -7
  96. package/dist/esm/const/amm/configs/protocols/fenix.js.map +1 -1
  97. package/dist/esm/const/amm/configs/protocols/forge.js +13 -9
  98. package/dist/esm/const/amm/configs/protocols/forge.js.map +1 -1
  99. package/dist/esm/const/amm/configs/protocols/fusionx.js +12 -8
  100. package/dist/esm/const/amm/configs/protocols/fusionx.js.map +1 -1
  101. package/dist/esm/const/amm/configs/protocols/glyph.js +13 -9
  102. package/dist/esm/const/amm/configs/protocols/glyph.js.map +1 -1
  103. package/dist/esm/const/amm/configs/protocols/henjin.js +11 -7
  104. package/dist/esm/const/amm/configs/protocols/henjin.js.map +1 -1
  105. package/dist/esm/const/amm/configs/protocols/hercules.js +11 -7
  106. package/dist/esm/const/amm/configs/protocols/hercules.js.map +1 -1
  107. package/dist/esm/const/amm/configs/protocols/horiza.js +13 -9
  108. package/dist/esm/const/amm/configs/protocols/horiza.js.map +1 -1
  109. package/dist/esm/const/amm/configs/protocols/index.js +56 -79
  110. package/dist/esm/const/amm/configs/protocols/index.js.map +1 -1
  111. package/dist/esm/const/amm/configs/protocols/katana.js +10 -6
  112. package/dist/esm/const/amm/configs/protocols/katana.js.map +1 -1
  113. package/dist/esm/const/amm/configs/protocols/katanaIntegral.js +10 -6
  114. package/dist/esm/const/amm/configs/protocols/katanaIntegral.js.map +1 -1
  115. package/dist/esm/const/amm/configs/protocols/kim.js +15 -11
  116. package/dist/esm/const/amm/configs/protocols/kim.js.map +1 -1
  117. package/dist/esm/const/amm/configs/protocols/kinetix.js +14 -10
  118. package/dist/esm/const/amm/configs/protocols/kinetix.js.map +1 -1
  119. package/dist/esm/const/amm/configs/protocols/kodiak.js +14 -10
  120. package/dist/esm/const/amm/configs/protocols/kodiak.js.map +1 -1
  121. package/dist/esm/const/amm/configs/protocols/kyo.js +12 -8
  122. package/dist/esm/const/amm/configs/protocols/kyo.js.map +1 -1
  123. package/dist/esm/const/amm/configs/protocols/linehub.js +11 -7
  124. package/dist/esm/const/amm/configs/protocols/linehub.js.map +1 -1
  125. package/dist/esm/const/amm/configs/protocols/lynex.js +13 -9
  126. package/dist/esm/const/amm/configs/protocols/lynex.js.map +1 -1
  127. package/dist/esm/const/amm/configs/protocols/machinex.js +13 -9
  128. package/dist/esm/const/amm/configs/protocols/machinex.js.map +1 -1
  129. package/dist/esm/const/amm/configs/protocols/maia.js +13 -9
  130. package/dist/esm/const/amm/configs/protocols/maia.js.map +1 -1
  131. package/dist/esm/const/amm/configs/protocols/metavault.js +16 -12
  132. package/dist/esm/const/amm/configs/protocols/metavault.js.map +1 -1
  133. package/dist/esm/const/amm/configs/protocols/nest.js +12 -8
  134. package/dist/esm/const/amm/configs/protocols/nest.js.map +1 -1
  135. package/dist/esm/const/amm/configs/protocols/novaswap.js +11 -7
  136. package/dist/esm/const/amm/configs/protocols/novaswap.js.map +1 -1
  137. package/dist/esm/const/amm/configs/protocols/ocelex.js +11 -7
  138. package/dist/esm/const/amm/configs/protocols/ocelex.js.map +1 -1
  139. package/dist/esm/const/amm/configs/protocols/pancakeswap.js +17 -13
  140. package/dist/esm/const/amm/configs/protocols/pancakeswap.js.map +1 -1
  141. package/dist/esm/const/amm/configs/protocols/poolshark.js +11 -7
  142. package/dist/esm/const/amm/configs/protocols/poolshark.js.map +1 -1
  143. package/dist/esm/const/amm/configs/protocols/quickswap-algebra.js +12 -8
  144. package/dist/esm/const/amm/configs/protocols/quickswap-algebra.js.map +1 -1
  145. package/dist/esm/const/amm/configs/protocols/quickswap-integral.js +17 -13
  146. package/dist/esm/const/amm/configs/protocols/quickswap-integral.js.map +1 -1
  147. package/dist/esm/const/amm/configs/protocols/quickswap-univ3.js +20 -16
  148. package/dist/esm/const/amm/configs/protocols/quickswap-univ3.js.map +1 -1
  149. package/dist/esm/const/amm/configs/protocols/quickswap.js +18 -14
  150. package/dist/esm/const/amm/configs/protocols/quickswap.js.map +1 -1
  151. package/dist/esm/const/amm/configs/protocols/retro.js +13 -9
  152. package/dist/esm/const/amm/configs/protocols/retro.js.map +1 -1
  153. package/dist/esm/const/amm/configs/protocols/sailor.js +11 -7
  154. package/dist/esm/const/amm/configs/protocols/sailor.js.map +1 -1
  155. package/dist/esm/const/amm/configs/protocols/shadow.js +13 -9
  156. package/dist/esm/const/amm/configs/protocols/shadow.js.map +1 -1
  157. package/dist/esm/const/amm/configs/protocols/silverswap.js +15 -11
  158. package/dist/esm/const/amm/configs/protocols/silverswap.js.map +1 -1
  159. package/dist/esm/const/amm/configs/protocols/spark-integral.js +12 -8
  160. package/dist/esm/const/amm/configs/protocols/spark-integral.js.map +1 -1
  161. package/dist/esm/const/amm/configs/protocols/spark.js +11 -7
  162. package/dist/esm/const/amm/configs/protocols/spark.js.map +1 -1
  163. package/dist/esm/const/amm/configs/protocols/spark32.js +11 -7
  164. package/dist/esm/const/amm/configs/protocols/spark32.js.map +1 -1
  165. package/dist/esm/const/amm/configs/protocols/spookyswap.js +11 -7
  166. package/dist/esm/const/amm/configs/protocols/spookyswap.js.map +1 -1
  167. package/dist/esm/const/amm/configs/protocols/stellaswap.js +13 -9
  168. package/dist/esm/const/amm/configs/protocols/stellaswap.js.map +1 -1
  169. package/dist/esm/const/amm/configs/protocols/supswap.js +11 -7
  170. package/dist/esm/const/amm/configs/protocols/supswap.js.map +1 -1
  171. package/dist/esm/const/amm/configs/protocols/sushi.js +73 -69
  172. package/dist/esm/const/amm/configs/protocols/sushi.js.map +1 -1
  173. package/dist/esm/const/amm/configs/protocols/swapmode.js +11 -7
  174. package/dist/esm/const/amm/configs/protocols/swapmode.js.map +1 -1
  175. package/dist/esm/const/amm/configs/protocols/swapsicle.js +11 -7
  176. package/dist/esm/const/amm/configs/protocols/swapsicle.js.map +1 -1
  177. package/dist/esm/const/amm/configs/protocols/thena.js +13 -9
  178. package/dist/esm/const/amm/configs/protocols/thena.js.map +1 -1
  179. package/dist/esm/const/amm/configs/protocols/thick.js +12 -8
  180. package/dist/esm/const/amm/configs/protocols/thick.js.map +1 -1
  181. package/dist/esm/const/amm/configs/protocols/thickv2.js +12 -8
  182. package/dist/esm/const/amm/configs/protocols/thickv2.js.map +1 -1
  183. package/dist/esm/const/amm/configs/protocols/thruster.js +12 -8
  184. package/dist/esm/const/amm/configs/protocols/thruster.js.map +1 -1
  185. package/dist/esm/const/amm/configs/protocols/uniswap.js +83 -79
  186. package/dist/esm/const/amm/configs/protocols/uniswap.js.map +1 -1
  187. package/dist/esm/const/amm/configs/protocols/wasabee.js +11 -7
  188. package/dist/esm/const/amm/configs/protocols/wasabee.js.map +1 -1
  189. package/dist/esm/const/amm/index.js +19 -3
  190. package/dist/esm/const/amm/index.js.map +1 -1
  191. package/dist/esm/const/amm/utils/beacon.js +76 -70
  192. package/dist/esm/const/amm/utils/beacon.js.map +1 -1
  193. package/dist/esm/const/amm/utils/contracts.js +26 -16
  194. package/dist/esm/const/amm/utils/contracts.js.map +1 -1
  195. package/dist/esm/const/amm/utils/index.js +46 -22
  196. package/dist/esm/const/amm/utils/index.js.map +1 -1
  197. package/dist/esm/const/amm/utils/protocol.js +24 -16
  198. package/dist/esm/const/amm/utils/protocol.js.map +1 -1
  199. package/dist/esm/const/api.js +7 -3
  200. package/dist/esm/const/api.js.map +1 -1
  201. package/dist/esm/const/capabilities.js +20 -15
  202. package/dist/esm/const/capabilities.js.map +1 -1
  203. package/dist/esm/const/chain.js +12 -9
  204. package/dist/esm/const/chain.js.map +1 -1
  205. package/dist/esm/const/deployments/abis.js +4 -1
  206. package/dist/esm/const/deployments/abis.js.map +1 -1
  207. package/dist/esm/const/deployments/apechain.js +4 -1
  208. package/dist/esm/const/deployments/apechain.js.map +1 -1
  209. package/dist/esm/const/deployments/arbitrum.js +4 -1
  210. package/dist/esm/const/deployments/arbitrum.js.map +1 -1
  211. package/dist/esm/const/deployments/arbitrumgoerli.js +4 -1
  212. package/dist/esm/const/deployments/arbitrumgoerli.js.map +1 -1
  213. package/dist/esm/const/deployments/astar.js +4 -1
  214. package/dist/esm/const/deployments/astar.js.map +1 -1
  215. package/dist/esm/const/deployments/astarzkevm.js +4 -1
  216. package/dist/esm/const/deployments/astarzkevm.js.map +1 -1
  217. package/dist/esm/const/deployments/avalanche.js +4 -1
  218. package/dist/esm/const/deployments/avalanche.js.map +1 -1
  219. package/dist/esm/const/deployments/bartiotest.js +4 -1
  220. package/dist/esm/const/deployments/bartiotest.js.map +1 -1
  221. package/dist/esm/const/deployments/base.js +4 -1
  222. package/dist/esm/const/deployments/base.js.map +1 -1
  223. package/dist/esm/const/deployments/bera.js +4 -1
  224. package/dist/esm/const/deployments/bera.js.map +1 -1
  225. package/dist/esm/const/deployments/berachainbartio.js +4 -1
  226. package/dist/esm/const/deployments/berachainbartio.js.map +1 -1
  227. package/dist/esm/const/deployments/blast.js +4 -1
  228. package/dist/esm/const/deployments/blast.js.map +1 -1
  229. package/dist/esm/const/deployments/bsc.js +4 -1
  230. package/dist/esm/const/deployments/bsc.js.map +1 -1
  231. package/dist/esm/const/deployments/celo.js +4 -1
  232. package/dist/esm/const/deployments/celo.js.map +1 -1
  233. package/dist/esm/const/deployments/core.js +4 -1
  234. package/dist/esm/const/deployments/core.js.map +1 -1
  235. package/dist/esm/const/deployments/eth.js +4 -1
  236. package/dist/esm/const/deployments/eth.js.map +1 -1
  237. package/dist/esm/const/deployments/evmos.js +4 -1
  238. package/dist/esm/const/deployments/evmos.js.map +1 -1
  239. package/dist/esm/const/deployments/fantom.js +4 -1
  240. package/dist/esm/const/deployments/fantom.js.map +1 -1
  241. package/dist/esm/const/deployments/filecoin.js +4 -1
  242. package/dist/esm/const/deployments/filecoin.js.map +1 -1
  243. package/dist/esm/const/deployments/flare.js +4 -1
  244. package/dist/esm/const/deployments/flare.js.map +1 -1
  245. package/dist/esm/const/deployments/goerli.js +4 -1
  246. package/dist/esm/const/deployments/goerli.js.map +1 -1
  247. package/dist/esm/const/deployments/hemi.js +4 -1
  248. package/dist/esm/const/deployments/hemi.js.map +1 -1
  249. package/dist/esm/const/deployments/hyperevm.js +4 -1
  250. package/dist/esm/const/deployments/hyperevm.js.map +1 -1
  251. package/dist/esm/const/deployments/index.js +99 -48
  252. package/dist/esm/const/deployments/index.js.map +1 -1
  253. package/dist/esm/const/deployments/katana.js +4 -1
  254. package/dist/esm/const/deployments/katana.js.map +1 -1
  255. package/dist/esm/const/deployments/kava.js +4 -1
  256. package/dist/esm/const/deployments/kava.js.map +1 -1
  257. package/dist/esm/const/deployments/linea.js +4 -1
  258. package/dist/esm/const/deployments/linea.js.map +1 -1
  259. package/dist/esm/const/deployments/localhost.js +4 -1
  260. package/dist/esm/const/deployments/localhost.js.map +1 -1
  261. package/dist/esm/const/deployments/manta.js +4 -1
  262. package/dist/esm/const/deployments/manta.js.map +1 -1
  263. package/dist/esm/const/deployments/mantle.js +4 -1
  264. package/dist/esm/const/deployments/mantle.js.map +1 -1
  265. package/dist/esm/const/deployments/metis.js +4 -1
  266. package/dist/esm/const/deployments/metis.js.map +1 -1
  267. package/dist/esm/const/deployments/mode.js +4 -1
  268. package/dist/esm/const/deployments/mode.js.map +1 -1
  269. package/dist/esm/const/deployments/moonbeam.js +4 -1
  270. package/dist/esm/const/deployments/moonbeam.js.map +1 -1
  271. package/dist/esm/const/deployments/mumbai.js +4 -1
  272. package/dist/esm/const/deployments/mumbai.js.map +1 -1
  273. package/dist/esm/const/deployments/nibiru.js +4 -1
  274. package/dist/esm/const/deployments/nibiru.js.map +1 -1
  275. package/dist/esm/const/deployments/okxtestnet.js +4 -1
  276. package/dist/esm/const/deployments/okxtestnet.js.map +1 -1
  277. package/dist/esm/const/deployments/optimism.js +4 -1
  278. package/dist/esm/const/deployments/optimism.js.map +1 -1
  279. package/dist/esm/const/deployments/optimismgoerli.js +4 -1
  280. package/dist/esm/const/deployments/optimismgoerli.js.map +1 -1
  281. package/dist/esm/const/deployments/peaq.js +4 -1
  282. package/dist/esm/const/deployments/peaq.js.map +1 -1
  283. package/dist/esm/const/deployments/polygon.js +4 -1
  284. package/dist/esm/const/deployments/polygon.js.map +1 -1
  285. package/dist/esm/const/deployments/polyzkevm.js +4 -1
  286. package/dist/esm/const/deployments/polyzkevm.js.map +1 -1
  287. package/dist/esm/const/deployments/pyzkevm.js +4 -1
  288. package/dist/esm/const/deployments/pyzkevm.js.map +1 -1
  289. package/dist/esm/const/deployments/ronin.js +4 -1
  290. package/dist/esm/const/deployments/ronin.js.map +1 -1
  291. package/dist/esm/const/deployments/rootstock.js +4 -1
  292. package/dist/esm/const/deployments/rootstock.js.map +1 -1
  293. package/dist/esm/const/deployments/saga.js +4 -1
  294. package/dist/esm/const/deployments/saga.js.map +1 -1
  295. package/dist/esm/const/deployments/scroll.js +4 -1
  296. package/dist/esm/const/deployments/scroll.js.map +1 -1
  297. package/dist/esm/const/deployments/sei.js +4 -1
  298. package/dist/esm/const/deployments/sei.js.map +1 -1
  299. package/dist/esm/const/deployments/soneium.js +4 -1
  300. package/dist/esm/const/deployments/soneium.js.map +1 -1
  301. package/dist/esm/const/deployments/sonic.js +4 -1
  302. package/dist/esm/const/deployments/sonic.js.map +1 -1
  303. package/dist/esm/const/deployments/taiko.js +4 -1
  304. package/dist/esm/const/deployments/taiko.js.map +1 -1
  305. package/dist/esm/const/deployments/tataratestnet.js +4 -1
  306. package/dist/esm/const/deployments/tataratestnet.js.map +1 -1
  307. package/dist/esm/const/deployments/telos.js +4 -1
  308. package/dist/esm/const/deployments/telos.js.map +1 -1
  309. package/dist/esm/const/deployments/thundercore.js +4 -1
  310. package/dist/esm/const/deployments/thundercore.js.map +1 -1
  311. package/dist/esm/const/deployments/uni.js +4 -1
  312. package/dist/esm/const/deployments/uni.js.map +1 -1
  313. package/dist/esm/const/deployments/xlayer.js +4 -1
  314. package/dist/esm/const/deployments/xlayer.js.map +1 -1
  315. package/dist/esm/const/deployments/zeta.js +4 -1
  316. package/dist/esm/const/deployments/zeta.js.map +1 -1
  317. package/dist/esm/const/deployments/zircuit.js +4 -1
  318. package/dist/esm/const/deployments/zircuit.js.map +1 -1
  319. package/dist/esm/const/deployments/zklinknova.js +4 -1
  320. package/dist/esm/const/deployments/zklinknova.js.map +1 -1
  321. package/dist/esm/const/index.js +28 -12
  322. package/dist/esm/const/index.js.map +1 -1
  323. package/dist/esm/const/network.js +232 -223
  324. package/dist/esm/const/network.js.map +1 -1
  325. package/dist/esm/const/protocol.js +97 -83
  326. package/dist/esm/const/protocol.js.map +1 -1
  327. package/dist/esm/const/quoter.js +53 -42
  328. package/dist/esm/const/quoter.js.map +1 -1
  329. package/dist/esm/const/stabilityVaults/index.js +17 -1
  330. package/dist/esm/const/stabilityVaults/index.js.map +1 -1
  331. package/dist/esm/const/stabilityVaults/stabilityVaultsConfig.js +15 -10
  332. package/dist/esm/const/stabilityVaults/stabilityVaultsConfig.js.map +1 -1
  333. package/dist/esm/const/subgraph.js +60 -56
  334. package/dist/esm/const/subgraph.js.map +1 -1
  335. package/dist/esm/const/thegraph.js +5 -1
  336. package/dist/esm/const/thegraph.js.map +1 -1
  337. package/dist/esm/index.js +31 -12
  338. package/dist/esm/index.js.map +1 -1
  339. package/dist/esm/scripts/processDeployments.js +15 -10
  340. package/dist/esm/scripts/processDeployments.js.map +1 -1
  341. package/dist/esm/types.js +2 -1
  342. package/dist/esm/utils/PoolQueryAdapter.js +44 -38
  343. package/dist/esm/utils/PoolQueryAdapter.js.map +1 -1
  344. package/dist/esm/utils/SubgraphVaultClient.js +10 -6
  345. package/dist/esm/utils/SubgraphVaultClient.js.map +1 -1
  346. package/dist/esm/utils/subgraph-types.js +2 -1
  347. package/dist/types/const/amm/configs/ammConfig.d.ts.map +1 -1
  348. package/dist/types/const/amm/configs/protocols/index.d.ts +0 -39
  349. package/dist/types/const/amm/configs/protocols/index.d.ts.map +1 -1
  350. package/dist/types/const/stabilityVaults/index.d.ts +1 -1
  351. package/dist/types/const/stabilityVaults/index.d.ts.map +1 -1
  352. package/package.json +1 -1
  353. package/src/const/amm/configs/ammConfig.ts +2 -3
  354. package/src/const/amm/configs/protocols/index.ts +1 -40
  355. package/src/const/stabilityVaults/index.ts +1 -1
@@ -1,9 +1,19 @@
1
- import { getContract } from 'viem';
2
- import { Protocol } from "./chain.js";
3
- import { getProtocolTypeByBeacon } from "./amm/utils/beacon.js";
4
- import { isAlgebraProtocol, isAlgebraIntegralProtocol, isThickV2Protocol, isShadowProtocol } from "./protocol.js";
5
- import { UniswapV3QuoterABI, QuickSwapQuoterV2, QuoterV2Thick, QuoterV2AlgebgraIntegral, QuoterV2AlgebgraIntegral21, QuoterV2Shadow } from "./abis/quoter.js";
6
- import { getProtocolContractAddresses } from './amm/index.js';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QuoterV2Factory = void 0;
4
+ exports.isUniswapQuoteParams = isUniswapQuoteParams;
5
+ exports.isAlgebraQuoteParams = isAlgebraQuoteParams;
6
+ exports.isThickQuoteParams = isThickQuoteParams;
7
+ exports.isAlgebraIntegral21QuoteParams = isAlgebraIntegral21QuoteParams;
8
+ exports.isShadowQuoteParams = isShadowQuoteParams;
9
+ exports.validateQuoteParams = validateQuoteParams;
10
+ exports.getExpectedParamType = getExpectedParamType;
11
+ const viem_1 = require("viem");
12
+ const chain_js_1 = require("./chain.js");
13
+ const beacon_js_1 = require("./amm/utils/beacon.js");
14
+ const protocol_js_1 = require("./protocol.js");
15
+ const quoter_js_1 = require("./abis/quoter.js");
16
+ const index_js_1 = require("./amm/index.js");
7
17
  /**
8
18
  * Factory class for creating QuoterV2 contract instances with the appropriate ABI
9
19
  * based on the protocol type detected from beacon names.
@@ -75,7 +85,7 @@ import { getProtocolContractAddresses } from './amm/index.js';
75
85
  * const katanaResult = await katanaQuoter.read.quoteExactInputSingle([katanaParams]);
76
86
  * ```
77
87
  */
78
- export class QuoterV2Factory {
88
+ class QuoterV2Factory {
79
89
  constructor(networkConfig) {
80
90
  this.networkConfig = networkConfig;
81
91
  }
@@ -127,7 +137,7 @@ export class QuoterV2Factory {
127
137
  };
128
138
  }
129
139
  // Check for Shadow protocol vaults
130
- if (isShadowProtocol(protocol)) {
140
+ if ((0, protocol_js_1.isShadowProtocol)(protocol)) {
131
141
  const p = params;
132
142
  return {
133
143
  tokenIn: p.tokenIn,
@@ -138,7 +148,7 @@ export class QuoterV2Factory {
138
148
  };
139
149
  }
140
150
  // Check for Algebra Integral vaults (older version)
141
- if (isAlgebraIntegralProtocol(protocol)) {
151
+ if ((0, protocol_js_1.isAlgebraIntegralProtocol)(protocol)) {
142
152
  const p = params;
143
153
  return {
144
154
  tokenIn: p.tokenIn,
@@ -148,7 +158,7 @@ export class QuoterV2Factory {
148
158
  };
149
159
  }
150
160
  // Check for Algebra-based protocols (QuickSwap, etc.)
151
- if (protocol && isAlgebraProtocol(protocol)) {
161
+ if (protocol && (0, protocol_js_1.isAlgebraProtocol)(protocol)) {
152
162
  const p = params;
153
163
  return {
154
164
  tokenIn: p.tokenIn,
@@ -158,7 +168,7 @@ export class QuoterV2Factory {
158
168
  };
159
169
  }
160
170
  // Check for Thick V2 protocols
161
- if (isThickV2Protocol(protocol)) {
171
+ if ((0, protocol_js_1.isThickV2Protocol)(protocol)) {
162
172
  const p = params;
163
173
  return {
164
174
  tokenIn: p.tokenIn,
@@ -192,7 +202,7 @@ export class QuoterV2Factory {
192
202
  throw new Error(`QuoterV2 address not found for protocol: ${protocol}`);
193
203
  }
194
204
  const abi = this.getQuoterAbi(protocol);
195
- return getContract({
205
+ return (0, viem_1.getContract)({
196
206
  address: quoterV2Address,
197
207
  abi,
198
208
  client
@@ -242,33 +252,33 @@ export class QuoterV2Factory {
242
252
  }
243
253
  // Check for Algebra Integral v2.1 vaults (newer version)
244
254
  if (this.isAlgebraIntegral21Vault(protocol)) {
245
- return QuoterV2AlgebgraIntegral21;
255
+ return quoter_js_1.QuoterV2AlgebgraIntegral21;
246
256
  }
247
257
  // Check for Shadow protocol vaults
248
- if (isShadowProtocol(protocol)) {
249
- return QuoterV2Shadow;
258
+ if ((0, protocol_js_1.isShadowProtocol)(protocol)) {
259
+ return quoter_js_1.QuoterV2Shadow;
250
260
  }
251
261
  // Check for Algebra Integral vaults (older version)
252
- if (isAlgebraIntegralProtocol(protocol)) {
253
- return QuoterV2AlgebgraIntegral;
262
+ if ((0, protocol_js_1.isAlgebraIntegralProtocol)(protocol)) {
263
+ return quoter_js_1.QuoterV2AlgebgraIntegral;
254
264
  }
255
265
  // Check for Lynex protocol (special case)
256
- if (protocol === Protocol.Lynex) {
266
+ if (protocol === chain_js_1.Protocol.Lynex) {
257
267
  // Note: Lynex currently uses the same ABI as QuickSwap in this implementation
258
268
  // If Lynex has a different ABI, add it to the ABIs in quoter.ts as QuoterV2Lynex
259
269
  // and import it at the top of this file
260
- return QuickSwapQuoterV2;
270
+ return quoter_js_1.QuickSwapQuoterV2;
261
271
  }
262
272
  // Check for Algebra-based protocols
263
- if (protocol && isAlgebraProtocol(protocol)) {
264
- return QuickSwapQuoterV2;
273
+ if (protocol && (0, protocol_js_1.isAlgebraProtocol)(protocol)) {
274
+ return quoter_js_1.QuickSwapQuoterV2;
265
275
  }
266
276
  // Check for Thick V2 protocols
267
- if (isThickV2Protocol(protocol)) {
268
- return QuoterV2Thick;
277
+ if ((0, protocol_js_1.isThickV2Protocol)(protocol)) {
278
+ return quoter_js_1.QuoterV2Thick;
269
279
  }
270
280
  // Default to standard Uniswap V3 QuoterV2 ABI
271
- return UniswapV3QuoterABI;
281
+ return quoter_js_1.UniswapV3QuoterABI;
272
282
  }
273
283
  /**
274
284
  * Gets the QuoterV2 address for the given protocol from the network configuration.
@@ -280,7 +290,7 @@ export class QuoterV2Factory {
280
290
  if (!protocol) {
281
291
  return undefined;
282
292
  }
283
- const contractAddresses = getProtocolContractAddresses(protocol, this.networkConfig.name, 'QuoterV2');
293
+ const contractAddresses = (0, index_js_1.getProtocolContractAddresses)(protocol, this.networkConfig.name, 'QuoterV2');
284
294
  if (!protocol || !contractAddresses) {
285
295
  return undefined;
286
296
  }
@@ -293,9 +303,10 @@ export class QuoterV2Factory {
293
303
  * @returns True if it's an Algebra Integral v2.1 vault
294
304
  */
295
305
  isAlgebraIntegral21Vault(protocol) {
296
- return protocol === Protocol.KatanaIntegral;
306
+ return protocol === chain_js_1.Protocol.KatanaIntegral;
297
307
  }
298
308
  }
309
+ exports.QuoterV2Factory = QuoterV2Factory;
299
310
  /**
300
311
  * Helper function to get QuoterV2 address for a protocol from network config.
301
312
  *
@@ -314,31 +325,31 @@ export class QuoterV2Factory {
314
325
  /**
315
326
  * Type guard to check if parameters are for Uniswap V3 style quoter
316
327
  */
317
- export function isUniswapQuoteParams(params) {
328
+ function isUniswapQuoteParams(params) {
318
329
  return 'fee' in params;
319
330
  }
320
331
  /**
321
332
  * Type guard to check if parameters are for Algebra style quoter
322
333
  */
323
- export function isAlgebraQuoteParams(params) {
334
+ function isAlgebraQuoteParams(params) {
324
335
  return 'limitSqrtPrice' in params;
325
336
  }
326
337
  /**
327
338
  * Type guard to check if parameters are for Thick V2 style quoter
328
339
  */
329
- export function isThickQuoteParams(params) {
340
+ function isThickQuoteParams(params) {
330
341
  return 'tickSpacing' in params && 'sqrtPriceLimitX96' in params;
331
342
  }
332
343
  /**
333
344
  * Type guard to check if parameters are for Algebra Integral v2.1 style quoter
334
345
  */
335
- export function isAlgebraIntegral21QuoteParams(params) {
346
+ function isAlgebraIntegral21QuoteParams(params) {
336
347
  return 'deployer' in params;
337
348
  }
338
349
  /**
339
350
  * Type guard to check if parameters are for Shadow style quoter
340
351
  */
341
- export function isShadowQuoteParams(params) {
352
+ function isShadowQuoteParams(params) {
342
353
  return 'tickSpacing' in params && 'sqrtPriceLimitX96' in params;
343
354
  }
344
355
  /**
@@ -348,7 +359,7 @@ export function isShadowQuoteParams(params) {
348
359
  * @param params - The parameters to validate
349
360
  * @throws Error if parameters don't match the expected protocol type
350
361
  */
351
- export function validateQuoteParams(protocol, params) {
362
+ function validateQuoteParams(protocol, params) {
352
363
  if (!protocol) {
353
364
  throw Error('Protocol not found');
354
365
  }
@@ -357,28 +368,28 @@ export function validateQuoteParams(protocol, params) {
357
368
  throw new Error('Missing required parameters: tokenIn, tokenOut, and amountIn are required');
358
369
  }
359
370
  // Check for Algebra Integral v2.1 vaults (newer version with deployer)
360
- if (protocol === Protocol.KatanaIntegral) {
371
+ if (protocol === chain_js_1.Protocol.KatanaIntegral) {
361
372
  if (!isAlgebraIntegral21QuoteParams(params)) {
362
373
  throw new Error('AlgebraIntegral21QuoteParams required: must include deployer field');
363
374
  }
364
375
  return;
365
376
  }
366
377
  // Check for Shadow protocol vaults
367
- if (protocol && isShadowProtocol(protocol)) {
378
+ if (protocol && (0, protocol_js_1.isShadowProtocol)(protocol)) {
368
379
  if (!isShadowQuoteParams(params) && !isThickQuoteParams(params)) {
369
380
  throw new Error('ShadowQuoteParams required: must include tickSpacing field');
370
381
  }
371
382
  return;
372
383
  }
373
384
  // Check for Thick V2 protocols
374
- if (protocol && isThickV2Protocol(protocol)) {
385
+ if (protocol && (0, protocol_js_1.isThickV2Protocol)(protocol)) {
375
386
  if (!isThickQuoteParams(params)) {
376
387
  throw new Error('ThickQuoteParams required: must include tickSpacing field');
377
388
  }
378
389
  return;
379
390
  }
380
391
  // Check for Algebra-based protocols
381
- if (protocol && isAlgebraProtocol(protocol)) {
392
+ if (protocol && (0, protocol_js_1.isAlgebraProtocol)(protocol)) {
382
393
  if (!isAlgebraQuoteParams(params)) {
383
394
  throw new Error('AlgebraQuoteParams required: limitSqrtPrice field expected');
384
395
  }
@@ -395,18 +406,18 @@ export function validateQuoteParams(protocol, params) {
395
406
  * @param beaconName - The beacon identifier
396
407
  * @returns String describing the expected parameter type
397
408
  */
398
- export function getExpectedParamType(beaconName) {
399
- const protocol = getProtocolTypeByBeacon(beaconName);
400
- if (beaconName.toLowerCase().includes('katanaintegral') || protocol === Protocol.KatanaIntegral) {
409
+ function getExpectedParamType(beaconName) {
410
+ const protocol = (0, beacon_js_1.getProtocolTypeByBeacon)(beaconName);
411
+ if (beaconName.toLowerCase().includes('katanaintegral') || protocol === chain_js_1.Protocol.KatanaIntegral) {
401
412
  return 'AlgebraIntegral21QuoteParams (requires: tokenIn, tokenOut, amountIn, deployer, limitSqrtPrice?)';
402
413
  }
403
- if (protocol && isShadowProtocol(protocol)) {
414
+ if (protocol && (0, protocol_js_1.isShadowProtocol)(protocol)) {
404
415
  return 'ShadowQuoteParams (requires: tokenIn, tokenOut, amountIn, tickSpacing, sqrtPriceLimitX96?)';
405
416
  }
406
- if (protocol && isThickV2Protocol(protocol)) {
417
+ if (protocol && (0, protocol_js_1.isThickV2Protocol)(protocol)) {
407
418
  return 'ThickQuoteParams (requires: tokenIn, tokenOut, amountIn, tickSpacing, sqrtPriceLimitX96?)';
408
419
  }
409
- if (protocol && isAlgebraProtocol(protocol)) {
420
+ if (protocol && (0, protocol_js_1.isAlgebraProtocol)(protocol)) {
410
421
  return 'AlgebraQuoteParams (requires: tokenIn, tokenOut, amountIn, limitSqrtPrice?)';
411
422
  }
412
423
  return 'UniswapQuoteParams (requires: tokenIn, tokenOut, amountIn, fee, sqrtPriceLimitX96?)';
@@ -1 +1 @@
1
- {"version":3,"file":"quoter.js","sourceRoot":"","sources":["../../../src/const/quoter.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Address, PublicClient } from 'viem';\nimport { getContract } from 'viem';\nimport { Protocol } from \"./chain.js\";\nimport { getProtocolTypeByBeacon } from \"./amm/utils/beacon.js\";\nimport { isAlgebraProtocol, isAlgebraIntegralProtocol, isThickV2Protocol, isShadowProtocol } from \"./protocol.js\";\nimport { \n UniswapV3QuoterABI, \n QuickSwapQuoterV2, \n QuoterV2Thick, \n QuoterV2AlgebgraIntegral, \n QuoterV2AlgebgraIntegral21, \n QuoterV2Shadow \n} from \"./abis/quoter.js\";\nimport { NetworkConfig } from './network.js';\nimport { getProtocolContractAddresses } from './amm/index.js';\n\n/**\n * Base interface for quote parameters\n */\nexport interface BaseQuoteParams {\n tokenIn: Address;\n tokenOut: Address;\n amountIn: bigint;\n}\n\n/**\n * Quote parameters for Uniswap V3 style quoters (fee-based)\n */\nexport interface UniswapQuoteParams extends BaseQuoteParams {\n fee: number; // uint24\n sqrtPriceLimitX96?: bigint; // uint160\n}\n\n/**\n * Quote parameters for Algebra style quoters (limit price)\n */\nexport interface AlgebraQuoteParams extends BaseQuoteParams {\n limitSqrtPrice?: bigint; // uint160\n}\n\n/**\n * Quote parameters for Thick V2 quoters (tick spacing)\n */\nexport interface ThickQuoteParams extends BaseQuoteParams {\n tickSpacing: number; // int24\n sqrtPriceLimitX96?: bigint; // uint160\n}\n\n/**\n * Quote parameters for Algebra Integral v2.1 quoters (with deployer)\n */\nexport interface AlgebraIntegral21QuoteParams extends BaseQuoteParams {\n deployer: Address;\n limitSqrtPrice?: bigint; // uint160\n}\n\n/**\n * Quote parameters for Shadow quoters (tick spacing)\n */\nexport interface ShadowQuoteParams extends BaseQuoteParams {\n tickSpacing: number; // int24\n sqrtPriceLimitX96?: bigint; // uint160\n}\n\n/**\n * Union type for all possible quote parameters\n */\nexport type QuoteParams = \n | UniswapQuoteParams \n | AlgebraQuoteParams \n | ThickQuoteParams \n | AlgebraIntegral21QuoteParams \n | ShadowQuoteParams;\n\n/**\n * Union type for all possible QuoterV2 ABIs\n */\nexport type QuoterV2ABI = \n | typeof UniswapV3QuoterABI\n | typeof QuickSwapQuoterV2\n | typeof QuoterV2Thick\n | typeof QuoterV2AlgebgraIntegral\n | typeof QuoterV2AlgebgraIntegral21\n | typeof QuoterV2Shadow;\n\n/**\n * Union type for all possible quoter function arguments\n */\nexport type QuoterFunctionArgs = \n | {\n tokenIn: Address;\n tokenOut: Address;\n amountIn: bigint;\n fee: number;\n sqrtPriceLimitX96: bigint;\n }\n | {\n tokenIn: Address;\n tokenOut: Address;\n amountIn: bigint;\n limitSqrtPrice: bigint;\n }\n | {\n tokenIn: Address;\n tokenOut: Address;\n amountIn: bigint;\n tickSpacing: number;\n sqrtPriceLimitX96: bigint;\n }\n | {\n tokenIn: Address;\n tokenOut: Address;\n deployer: Address;\n amountIn: bigint;\n limitSqrtPrice: bigint;\n };\n/**\n * Factory class for creating QuoterV2 contract instances with the appropriate ABI\n * based on the protocol type detected from beacon names.\n * \n * @example\n * ```typescript\n * import { createPublicClient, http, parseEther } from 'viem';\n * import { polygon } from 'viem/chains';\n * import { QuoterV2Factory } from './quoter.js';\n * \n * // Create a viem client\n * const client = createPublicClient({\n * chain: polygon,\n * transport: http()\n * });\n * \n * // Configure network with quoter addresses\n * const networkConfig = {\n * quoterV2: {\n * 'QuickSwap': '0x...',\n * 'Uniswap': '0x...',\n * 'ThickV2': '0x...',\n * 'Shadow': '0x...',\n * 'KatanaIntegral': '0x...'\n * }\n * };\n * \n * const factory = new QuoterV2Factory(networkConfig);\n * \n * // Example 1: Uniswap V3 style (fee-based)\n * const { quoter: uniQuoter, params: uniParams } = factory.createQuoterWithParams('uniswap', client, {\n * tokenIn: '0xA0b86a33E6f73c7C6789b65f71C1ab8EbAbD3A01',\n * tokenOut: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',\n * amountIn: parseEther('1'),\n * fee: 3000,\n * sqrtPriceLimitX96: 0n\n * });\n * \n * // Example 2: QuickSwap (Algebra style)\n * const { quoter: quickQuoter, params: quickParams } = factory.createQuoterWithParams('quickswap', client, {\n * tokenIn: '0xA0b86a33E6f73c7C6789b65f71C1ab8EbAbD3A01',\n * tokenOut: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',\n * amountIn: parseEther('1'),\n * limitSqrtPrice: 0n\n * });\n * \n * // Example 3: Thick V2 (tick spacing)\n * const { quoter: thickQuoter, params: thickParams } = factory.createQuoterWithParams('thickv2', client, {\n * tokenIn: '0xA0b86a33E6f73c7C6789b65f71C1ab8EbAbD3A01',\n * tokenOut: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',\n * amountIn: parseEther('1'),\n * tickSpacing: 60,\n * sqrtPriceLimitX96: 0n\n * });\n * \n * // Example 4: Katana Integral (with deployer)\n * const { quoter: katanaQuoter, params: katanaParams } = factory.createQuoterWithParams('katanaintegral', client, {\n * tokenIn: '0xA0b86a33E6f73c7C6789b65f71C1ab8EbAbD3A01',\n * tokenOut: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',\n * amountIn: parseEther('1'),\n * deployer: '0x...',\n * limitSqrtPrice: 0n\n * });\n * \n * // Use the quoter contracts\n * const uniResult = await uniQuoter.read.quoteExactInputSingle([uniParams]);\n * const quickResult = await quickQuoter.read.quoteExactInputSingle([quickParams]);\n * const thickResult = await thickQuoter.read.quoteExactInputSingle([thickParams]);\n * const katanaResult = await katanaQuoter.read.quoteExactInputSingle([katanaParams]);\n * ```\n */\nexport class QuoterV2Factory {\n private networkConfig: NetworkConfig;\n\n constructor(networkConfig: NetworkConfig) {\n this.networkConfig = networkConfig;\n }\n\n /**\n * Creates quote parameters for the quoteExactInputSingle function based on the protocol type.\n * \n * @param beaconName - The beacon identifier to determine the protocol type\n * @param params - The input parameters for the quote\n * @returns Formatted parameters object for the specific protocol's quoteExactInputSingle function\n * @throws Error if protocol type is not supported\n * \n * @example\n * ```typescript\n * const factory = new QuoterV2Factory(networkConfig);\n * \n * // For Uniswap V3\n * const uniParams = factory.getQuoteParams('uniswap', {\n * tokenIn: '0x...',\n * tokenOut: '0x...',\n * amountIn: parseEther('1'),\n * fee: 3000,\n * sqrtPriceLimitX96: 0n\n * });\n * \n * // For QuickSwap (Algebra)\n * const quickParams = factory.getQuoteParams('quickswap', {\n * tokenIn: '0x...',\n * tokenOut: '0x...',\n * amountIn: parseEther('1'),\n * limitSqrtPrice: 0n\n * });\n * ```\n */\n getQuoteParams(protocol: Protocol, params: QuoteParams) {\n // Validate parameters first\n validateQuoteParams(protocol, params);\n \n if (!protocol) {\n throw Error('Protocol not found');\n }\n // Check for Algebra Integral v2.1 vaults (newer version with deployer)\n if (this.isAlgebraIntegral21Vault(protocol)) {\n const p = params as AlgebraIntegral21QuoteParams;\n return {\n tokenIn: p.tokenIn,\n tokenOut: p.tokenOut,\n deployer: p.deployer,\n amountIn: p.amountIn,\n limitSqrtPrice: p.limitSqrtPrice || 0n\n };\n }\n\n // Check for Shadow protocol vaults\n if (isShadowProtocol(protocol)) {\n const p = params as ShadowQuoteParams;\n return {\n tokenIn: p.tokenIn,\n tokenOut: p.tokenOut,\n amountIn: p.amountIn,\n tickSpacing: p.tickSpacing,\n sqrtPriceLimitX96: p.sqrtPriceLimitX96 || 0n\n };\n }\n\n // Check for Algebra Integral vaults (older version)\n if (isAlgebraIntegralProtocol(protocol)) {\n const p = params as AlgebraQuoteParams;\n return {\n tokenIn: p.tokenIn,\n tokenOut: p.tokenOut,\n amountIn: p.amountIn,\n limitSqrtPrice: p.limitSqrtPrice || 0n\n };\n }\n\n // Check for Algebra-based protocols (QuickSwap, etc.)\n if (protocol && isAlgebraProtocol(protocol)) {\n const p = params as AlgebraQuoteParams;\n return {\n tokenIn: p.tokenIn,\n tokenOut: p.tokenOut,\n amountIn: p.amountIn,\n limitSqrtPrice: p.limitSqrtPrice || 0n\n };\n }\n\n // Check for Thick V2 protocols\n if (isThickV2Protocol(protocol)) {\n const p = params as ThickQuoteParams;\n return {\n tokenIn: p.tokenIn,\n tokenOut: p.tokenOut,\n amountIn: p.amountIn,\n tickSpacing: p.tickSpacing,\n sqrtPriceLimitX96: p.sqrtPriceLimitX96 || 0n\n };\n }\n\n // Default to Uniswap V3 style (fee-based)\n const p = params as UniswapQuoteParams;\n return {\n tokenIn: p.tokenIn,\n tokenOut: p.tokenOut,\n amountIn: p.amountIn,\n fee: p.fee,\n sqrtPriceLimitX96: p.sqrtPriceLimitX96 || 0n\n };\n }\n\n /**\n * Creates a QuoterV2 contract instance with the appropriate ABI for the given beacon.\n * \n * @param beaconName - The beacon identifier to determine the protocol type\n * @param client - The viem client for contract interactions\n * @returns A viem contract instance with the appropriate ABI\n * @throws Error if quoter address is not found for the protocol\n */\n createQuoterV2(protocol: Protocol, client: PublicClient) {\n const quoterV2Address = this.getQuoterV2Address(protocol);\n\n if (!quoterV2Address) {\n throw new Error(`QuoterV2 address not found for protocol: ${protocol}`);\n }\n\n const abi = this.getQuoterAbi(protocol);\n \n return getContract({\n address: quoterV2Address as Address,\n abi,\n client\n });\n }\n\n /**\n * Convenience function that creates both the quoter contract and properly formatted quote parameters.\n * \n * @param beaconName - The beacon identifier to determine the protocol type\n * @param client - The viem client for contract interactions\n * @param params - The input parameters for the quote\n * @returns Object containing the quoter contract and formatted parameters\n * @throws Error if quoter address is not found for the protocol\n * \n * @example\n * ```typescript\n * const factory = new QuoterV2Factory(networkConfig);\n * \n * const { quoter, params } = factory.createQuoterWithParams('quickswap', client, {\n * tokenIn: '0x...',\n * tokenOut: '0x...',\n * amountIn: parseEther('1'),\n * limitSqrtPrice: 0n\n * });\n * \n * // Use directly\n * const result = await quoter.read.quoteExactInputSingle([params]);\n * ```\n */\n createQuoterWithParams(protocol: Protocol, client: PublicClient, params: QuoteParams) {\n const quoter = this.createQuoterV2(protocol, client);\n const formattedParams = this.getQuoteParams(protocol, params);\n \n return {\n quoter,\n params: formattedParams\n };\n }\n\n /**\n * Gets the appropriate QuoterV2 ABI based on the beacon name and protocol.\n * \n * @param protocol - The detected protocol type\n * @returns The appropriate ABI array\n */\n public getQuoterAbi(protocol: Protocol | null): QuoterV2ABI {\n\n if (!protocol) {\n throw Error('Protocol not avaiable')\n }\n // Check for Algebra Integral v2.1 vaults (newer version)\n if (this.isAlgebraIntegral21Vault(protocol)) {\n return QuoterV2AlgebgraIntegral21;\n }\n\n // Check for Shadow protocol vaults\n if (isShadowProtocol(protocol)) {\n return QuoterV2Shadow;\n }\n\n // Check for Algebra Integral vaults (older version)\n if (isAlgebraIntegralProtocol(protocol)) {\n return QuoterV2AlgebgraIntegral;\n }\n\n // Check for Lynex protocol (special case)\n if (protocol === Protocol.Lynex) {\n // Note: Lynex currently uses the same ABI as QuickSwap in this implementation\n // If Lynex has a different ABI, add it to the ABIs in quoter.ts as QuoterV2Lynex\n // and import it at the top of this file\n return QuickSwapQuoterV2;\n }\n\n // Check for Algebra-based protocols\n if (protocol && isAlgebraProtocol(protocol)) {\n return QuickSwapQuoterV2;\n }\n\n // Check for Thick V2 protocols\n if (isThickV2Protocol(protocol)) {\n return QuoterV2Thick;\n }\n\n // Default to standard Uniswap V3 QuoterV2 ABI\n return UniswapV3QuoterABI;\n }\n\n /**\n * Gets the QuoterV2 address for the given protocol from the network configuration.\n * \n * @param protocol - The protocol type\n * @returns The quoter address or undefined if not found\n */\n public getQuoterV2Address(protocol: Protocol | null): string | undefined {\n\n if (!protocol) {\n return undefined;\n }\n const contractAddresses = getProtocolContractAddresses(protocol, this.networkConfig.name, 'QuoterV2')\n\n if (!protocol || !contractAddresses) {\n return undefined;\n }\n return contractAddresses.quoterV2Address;\n }\n\n /**\n * Checks if the beacon represents an Algebra Integral v2.1 vault.\n * \n * @param beaconName - The beacon identifier\n * @returns True if it's an Algebra Integral v2.1 vault\n */\n private isAlgebraIntegral21Vault(protocol: Protocol): boolean {\n return protocol === Protocol.KatanaIntegral;\n }\n\n \n}\n\n/**\n * Helper function to get QuoterV2 address for a protocol from network config.\n * \n * @param protocol - The protocol to get the quoter address for\n * @param networkConfig - The network configuration object\n * @returns The quoter address or undefined if not found\n * \n * @example\n * ```typescript\n * const quoterAddress = getQuoterV2Address(Protocol.QuickSwap, networkConfig);\n * if (quoterAddress) {\n * // Use the quoter address\n * }\n * ```\n */\n\n/**\n * Type guard to check if parameters are for Uniswap V3 style quoter\n */\nexport function isUniswapQuoteParams(params: QuoteParams): params is UniswapQuoteParams {\n return 'fee' in params;\n}\n\n/**\n * Type guard to check if parameters are for Algebra style quoter\n */\nexport function isAlgebraQuoteParams(params: QuoteParams): params is AlgebraQuoteParams {\n return 'limitSqrtPrice' in params ;\n}\n\n/**\n * Type guard to check if parameters are for Thick V2 style quoter\n */\nexport function isThickQuoteParams(params: QuoteParams): params is ThickQuoteParams {\n return 'tickSpacing' in params && 'sqrtPriceLimitX96' in params;\n}\n\n/**\n * Type guard to check if parameters are for Algebra Integral v2.1 style quoter\n */\nexport function isAlgebraIntegral21QuoteParams(params: QuoteParams): params is AlgebraIntegral21QuoteParams {\n return 'deployer' in params;\n}\n\n/**\n * Type guard to check if parameters are for Shadow style quoter\n */\nexport function isShadowQuoteParams(params: QuoteParams): params is ShadowQuoteParams {\n return 'tickSpacing' in params && 'sqrtPriceLimitX96' in params;\n}\n\n/**\n * Validates quote parameters based on the protocol type detected from beacon name\n * \n * @param beaconName - The beacon identifier to determine the protocol type\n * @param params - The parameters to validate\n * @throws Error if parameters don't match the expected protocol type\n */\nexport function validateQuoteParams(protocol: Protocol, params: QuoteParams): void {\n if (!protocol) {\n throw Error('Protocol not found');\n }\n \n // Validate required fields\n if (!params.tokenIn || !params.tokenOut || !params.amountIn) {\n throw new Error('Missing required parameters: tokenIn, tokenOut, and amountIn are required');\n }\n\n // Check for Algebra Integral v2.1 vaults (newer version with deployer)\n if (protocol === Protocol.KatanaIntegral) {\n if (!isAlgebraIntegral21QuoteParams(params)) {\n throw new Error('AlgebraIntegral21QuoteParams required: must include deployer field');\n }\n return;\n }\n\n // Check for Shadow protocol vaults\n if (protocol && isShadowProtocol(protocol)) {\n if (!isShadowQuoteParams(params) && !isThickQuoteParams(params)) {\n throw new Error('ShadowQuoteParams required: must include tickSpacing field');\n }\n return;\n }\n\n // Check for Thick V2 protocols\n if (protocol && isThickV2Protocol(protocol)) {\n if (!isThickQuoteParams(params)) {\n throw new Error('ThickQuoteParams required: must include tickSpacing field');\n }\n return;\n }\n\n // Check for Algebra-based protocols\n if (protocol && isAlgebraProtocol(protocol)) {\n if (!isAlgebraQuoteParams(params)) {\n throw new Error('AlgebraQuoteParams required: limitSqrtPrice field expected');\n }\n return;\n }\n\n // Default to Uniswap V3 style validation\n if (!isUniswapQuoteParams(params)) {\n throw new Error('UniswapQuoteParams required: must include fee field');\n }\n}\n\n/**\n * Gets the expected parameter type for a given beacon name\n * \n * @param beaconName - The beacon identifier\n * @returns String describing the expected parameter type\n */\nexport function getExpectedParamType(beaconName: string): string {\n const protocol = getProtocolTypeByBeacon(beaconName);\n \n if (beaconName.toLowerCase().includes('katanaintegral') || protocol === Protocol.KatanaIntegral) {\n return 'AlgebraIntegral21QuoteParams (requires: tokenIn, tokenOut, amountIn, deployer, limitSqrtPrice?)';\n }\n \n if (protocol && isShadowProtocol(protocol)) {\n return 'ShadowQuoteParams (requires: tokenIn, tokenOut, amountIn, tickSpacing, sqrtPriceLimitX96?)';\n }\n \n if (protocol && isThickV2Protocol(protocol)) {\n return 'ThickQuoteParams (requires: tokenIn, tokenOut, amountIn, tickSpacing, sqrtPriceLimitX96?)';\n }\n \n if (protocol && isAlgebraProtocol(protocol)) {\n return 'AlgebraQuoteParams (requires: tokenIn, tokenOut, amountIn, limitSqrtPrice?)';\n }\n \n return 'UniswapQuoteParams (requires: tokenIn, tokenOut, amountIn, fee, sqrtPriceLimitX96?)';\n} "]}
1
+ {"version":3,"file":"quoter.js","sourceRoot":"","sources":["../../../src/const/quoter.ts"],"names":[],"mappings":";;;AAycA,oDAEC;AAKD,oDAEC;AAKD,gDAEC;AAKD,wEAEC;AAKD,kDAEC;AASD,kDA8CC;AAQD,oDAoBC;AAzjBD,+BAAmC;AACnC,yCAAsC;AACtC,qDAAgE;AAChE,+CAAkH;AAClH,gDAO0B;AAE1B,6CAA8D;AAsG9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsEG;AACH,MAAa,eAAe;IAG1B,YAAY,aAA4B;QACtC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,cAAc,CAAC,QAAkB,EAAE,MAAmB;QACpD,4BAA4B;QAC5B,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEtC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACpC,CAAC;QACD,uEAAuE;QACvE,IAAI,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5C,MAAM,CAAC,GAAG,MAAsC,CAAC;YACjD,OAAO;gBACL,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,cAAc,EAAE,CAAC,CAAC,cAAc,IAAI,EAAE;aACvC,CAAC;QACJ,CAAC;QAED,mCAAmC;QACnC,IAAI,IAAA,8BAAgB,EAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,GAAG,MAA2B,CAAC;YACtC,OAAO;gBACL,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,IAAI,EAAE;aAC7C,CAAC;QACJ,CAAC;QAED,oDAAoD;QACpD,IAAI,IAAA,uCAAyB,EAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,MAAM,CAAC,GAAG,MAA4B,CAAC;YACvC,OAAO;gBACL,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,cAAc,EAAE,CAAC,CAAC,cAAc,IAAI,EAAE;aACvC,CAAC;QACJ,CAAC;QAED,sDAAsD;QACtD,IAAI,QAAQ,IAAI,IAAA,+BAAiB,EAAC,QAAQ,CAAC,EAAE,CAAC;YAC5C,MAAM,CAAC,GAAG,MAA4B,CAAC;YACvC,OAAO;gBACL,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,cAAc,EAAE,CAAC,CAAC,cAAc,IAAI,EAAE;aACvC,CAAC;QACJ,CAAC;QAED,+BAA+B;QAC/B,IAAI,IAAA,+BAAiB,EAAC,QAAQ,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,MAA0B,CAAC;YACrC,OAAO;gBACL,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,IAAI,EAAE;aAC7C,CAAC;QACJ,CAAC;QAED,0CAA0C;QAC1C,MAAM,CAAC,GAAG,MAA4B,CAAC;QACvC,OAAO;YACL,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,IAAI,EAAE;SAC7C,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,cAAc,CAAC,QAAkB,EAAE,MAAoB;QACrD,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAE1D,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,4CAA4C,QAAQ,EAAE,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAExC,OAAO,IAAA,kBAAW,EAAC;YACjB,OAAO,EAAE,eAA0B;YACnC,GAAG;YACH,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,sBAAsB,CAAC,QAAkB,EAAE,MAAoB,EAAE,MAAmB;QAClF,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACrD,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAE9D,OAAO;YACL,MAAM;YACN,MAAM,EAAE,eAAe;SACxB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,YAAY,CAAC,QAAyB;QAE3C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,KAAK,CAAC,uBAAuB,CAAC,CAAA;QACtC,CAAC;QACD,yDAAyD;QACzD,IAAI,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5C,OAAO,sCAA0B,CAAC;QACpC,CAAC;QAED,mCAAmC;QACnC,IAAI,IAAA,8BAAgB,EAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,0BAAc,CAAC;QACxB,CAAC;QAED,oDAAoD;QACpD,IAAI,IAAA,uCAAyB,EAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,OAAO,oCAAwB,CAAC;QAClC,CAAC;QAED,0CAA0C;QAC1C,IAAI,QAAQ,KAAK,mBAAQ,CAAC,KAAK,EAAE,CAAC;YAChC,8EAA8E;YAC9E,iFAAiF;YACjF,wCAAwC;YACxC,OAAO,6BAAiB,CAAC;QAC3B,CAAC;QAED,oCAAoC;QACpC,IAAI,QAAQ,IAAI,IAAA,+BAAiB,EAAC,QAAQ,CAAC,EAAE,CAAC;YAC5C,OAAO,6BAAiB,CAAC;QAC3B,CAAC;QAED,+BAA+B;QAC/B,IAAI,IAAA,+BAAiB,EAAC,QAAQ,CAAC,EAAE,CAAC;YAChC,OAAO,yBAAa,CAAC;QACvB,CAAC;QAED,8CAA8C;QAC9C,OAAO,8BAAkB,CAAC;IAC5B,CAAC;IAED;;;;;OAKG;IACI,kBAAkB,CAAC,QAAyB;QAEjD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,iBAAiB,GAAG,IAAA,uCAA4B,EAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QAErG,IAAI,CAAC,QAAQ,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACpC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,iBAAiB,CAAC,eAAe,CAAC;IAC3C,CAAC;IAED;;;;;OAKG;IACK,wBAAwB,CAAC,QAAkB;QACjD,OAAO,QAAQ,KAAK,mBAAQ,CAAC,cAAc,CAAC;IAC9C,CAAC;CAGF;AAzPD,0CAyPC;AAED;;;;;;;;;;;;;;GAcG;AAEH;;GAEG;AACH,SAAgB,oBAAoB,CAAC,MAAmB;IACtD,OAAO,KAAK,IAAI,MAAM,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,MAAmB;IACtD,OAAO,gBAAgB,IAAI,MAAM,CAAE;AACrC,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,MAAmB;IACpD,OAAO,aAAa,IAAI,MAAM,IAAI,mBAAmB,IAAI,MAAM,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,SAAgB,8BAA8B,CAAC,MAAmB;IAChE,OAAO,UAAU,IAAI,MAAM,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,MAAmB;IACrD,OAAO,aAAa,IAAI,MAAM,IAAI,mBAAmB,IAAI,MAAM,CAAC;AAClE,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,mBAAmB,CAAC,QAAkB,EAAE,MAAmB;IACzE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACpC,CAAC;IAED,2BAA2B;IAC3B,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAC/F,CAAC;IAED,uEAAuE;IACvE,IAAI,QAAQ,KAAK,mBAAQ,CAAC,cAAc,EAAE,CAAC;QACzC,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACxF,CAAC;QACD,OAAO;IACT,CAAC;IAED,mCAAmC;IACnC,IAAI,QAAQ,IAAI,IAAA,8BAAgB,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,CAAC;QACD,OAAO;IACT,CAAC;IAED,+BAA+B;IAC/B,IAAI,QAAQ,IAAI,IAAA,+BAAiB,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC5C,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC/E,CAAC;QACD,OAAO;IACT,CAAC;IAED,oCAAoC;IACpC,IAAI,QAAQ,IAAI,IAAA,+BAAiB,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC5C,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,CAAC;QACD,OAAO;IACT,CAAC;IAED,yCAAyC;IACzC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,UAAkB;IACrD,MAAM,QAAQ,GAAG,IAAA,mCAAuB,EAAC,UAAU,CAAC,CAAC;IAErD,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,QAAQ,KAAK,mBAAQ,CAAC,cAAc,EAAE,CAAC;QAChG,OAAO,iGAAiG,CAAC;IAC3G,CAAC;IAED,IAAI,QAAQ,IAAI,IAAA,8BAAgB,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC3C,OAAO,4FAA4F,CAAC;IACtG,CAAC;IAED,IAAI,QAAQ,IAAI,IAAA,+BAAiB,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC5C,OAAO,2FAA2F,CAAC;IACrG,CAAC;IAED,IAAI,QAAQ,IAAI,IAAA,+BAAiB,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC5C,OAAO,6EAA6E,CAAC;IACvF,CAAC;IAED,OAAO,qFAAqF,CAAC;AAC/F,CAAC","sourcesContent":["import type { Address, PublicClient } from 'viem';\nimport { getContract } from 'viem';\nimport { Protocol } from \"./chain.js\";\nimport { getProtocolTypeByBeacon } from \"./amm/utils/beacon.js\";\nimport { isAlgebraProtocol, isAlgebraIntegralProtocol, isThickV2Protocol, isShadowProtocol } from \"./protocol.js\";\nimport { \n UniswapV3QuoterABI, \n QuickSwapQuoterV2, \n QuoterV2Thick, \n QuoterV2AlgebgraIntegral, \n QuoterV2AlgebgraIntegral21, \n QuoterV2Shadow \n} from \"./abis/quoter.js\";\nimport { NetworkConfig } from './network.js';\nimport { getProtocolContractAddresses } from './amm/index.js';\n\n/**\n * Base interface for quote parameters\n */\nexport interface BaseQuoteParams {\n tokenIn: Address;\n tokenOut: Address;\n amountIn: bigint;\n}\n\n/**\n * Quote parameters for Uniswap V3 style quoters (fee-based)\n */\nexport interface UniswapQuoteParams extends BaseQuoteParams {\n fee: number; // uint24\n sqrtPriceLimitX96?: bigint; // uint160\n}\n\n/**\n * Quote parameters for Algebra style quoters (limit price)\n */\nexport interface AlgebraQuoteParams extends BaseQuoteParams {\n limitSqrtPrice?: bigint; // uint160\n}\n\n/**\n * Quote parameters for Thick V2 quoters (tick spacing)\n */\nexport interface ThickQuoteParams extends BaseQuoteParams {\n tickSpacing: number; // int24\n sqrtPriceLimitX96?: bigint; // uint160\n}\n\n/**\n * Quote parameters for Algebra Integral v2.1 quoters (with deployer)\n */\nexport interface AlgebraIntegral21QuoteParams extends BaseQuoteParams {\n deployer: Address;\n limitSqrtPrice?: bigint; // uint160\n}\n\n/**\n * Quote parameters for Shadow quoters (tick spacing)\n */\nexport interface ShadowQuoteParams extends BaseQuoteParams {\n tickSpacing: number; // int24\n sqrtPriceLimitX96?: bigint; // uint160\n}\n\n/**\n * Union type for all possible quote parameters\n */\nexport type QuoteParams = \n | UniswapQuoteParams \n | AlgebraQuoteParams \n | ThickQuoteParams \n | AlgebraIntegral21QuoteParams \n | ShadowQuoteParams;\n\n/**\n * Union type for all possible QuoterV2 ABIs\n */\nexport type QuoterV2ABI = \n | typeof UniswapV3QuoterABI\n | typeof QuickSwapQuoterV2\n | typeof QuoterV2Thick\n | typeof QuoterV2AlgebgraIntegral\n | typeof QuoterV2AlgebgraIntegral21\n | typeof QuoterV2Shadow;\n\n/**\n * Union type for all possible quoter function arguments\n */\nexport type QuoterFunctionArgs = \n | {\n tokenIn: Address;\n tokenOut: Address;\n amountIn: bigint;\n fee: number;\n sqrtPriceLimitX96: bigint;\n }\n | {\n tokenIn: Address;\n tokenOut: Address;\n amountIn: bigint;\n limitSqrtPrice: bigint;\n }\n | {\n tokenIn: Address;\n tokenOut: Address;\n amountIn: bigint;\n tickSpacing: number;\n sqrtPriceLimitX96: bigint;\n }\n | {\n tokenIn: Address;\n tokenOut: Address;\n deployer: Address;\n amountIn: bigint;\n limitSqrtPrice: bigint;\n };\n/**\n * Factory class for creating QuoterV2 contract instances with the appropriate ABI\n * based on the protocol type detected from beacon names.\n * \n * @example\n * ```typescript\n * import { createPublicClient, http, parseEther } from 'viem';\n * import { polygon } from 'viem/chains';\n * import { QuoterV2Factory } from './quoter.js';\n * \n * // Create a viem client\n * const client = createPublicClient({\n * chain: polygon,\n * transport: http()\n * });\n * \n * // Configure network with quoter addresses\n * const networkConfig = {\n * quoterV2: {\n * 'QuickSwap': '0x...',\n * 'Uniswap': '0x...',\n * 'ThickV2': '0x...',\n * 'Shadow': '0x...',\n * 'KatanaIntegral': '0x...'\n * }\n * };\n * \n * const factory = new QuoterV2Factory(networkConfig);\n * \n * // Example 1: Uniswap V3 style (fee-based)\n * const { quoter: uniQuoter, params: uniParams } = factory.createQuoterWithParams('uniswap', client, {\n * tokenIn: '0xA0b86a33E6f73c7C6789b65f71C1ab8EbAbD3A01',\n * tokenOut: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',\n * amountIn: parseEther('1'),\n * fee: 3000,\n * sqrtPriceLimitX96: 0n\n * });\n * \n * // Example 2: QuickSwap (Algebra style)\n * const { quoter: quickQuoter, params: quickParams } = factory.createQuoterWithParams('quickswap', client, {\n * tokenIn: '0xA0b86a33E6f73c7C6789b65f71C1ab8EbAbD3A01',\n * tokenOut: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',\n * amountIn: parseEther('1'),\n * limitSqrtPrice: 0n\n * });\n * \n * // Example 3: Thick V2 (tick spacing)\n * const { quoter: thickQuoter, params: thickParams } = factory.createQuoterWithParams('thickv2', client, {\n * tokenIn: '0xA0b86a33E6f73c7C6789b65f71C1ab8EbAbD3A01',\n * tokenOut: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',\n * amountIn: parseEther('1'),\n * tickSpacing: 60,\n * sqrtPriceLimitX96: 0n\n * });\n * \n * // Example 4: Katana Integral (with deployer)\n * const { quoter: katanaQuoter, params: katanaParams } = factory.createQuoterWithParams('katanaintegral', client, {\n * tokenIn: '0xA0b86a33E6f73c7C6789b65f71C1ab8EbAbD3A01',\n * tokenOut: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',\n * amountIn: parseEther('1'),\n * deployer: '0x...',\n * limitSqrtPrice: 0n\n * });\n * \n * // Use the quoter contracts\n * const uniResult = await uniQuoter.read.quoteExactInputSingle([uniParams]);\n * const quickResult = await quickQuoter.read.quoteExactInputSingle([quickParams]);\n * const thickResult = await thickQuoter.read.quoteExactInputSingle([thickParams]);\n * const katanaResult = await katanaQuoter.read.quoteExactInputSingle([katanaParams]);\n * ```\n */\nexport class QuoterV2Factory {\n private networkConfig: NetworkConfig;\n\n constructor(networkConfig: NetworkConfig) {\n this.networkConfig = networkConfig;\n }\n\n /**\n * Creates quote parameters for the quoteExactInputSingle function based on the protocol type.\n * \n * @param beaconName - The beacon identifier to determine the protocol type\n * @param params - The input parameters for the quote\n * @returns Formatted parameters object for the specific protocol's quoteExactInputSingle function\n * @throws Error if protocol type is not supported\n * \n * @example\n * ```typescript\n * const factory = new QuoterV2Factory(networkConfig);\n * \n * // For Uniswap V3\n * const uniParams = factory.getQuoteParams('uniswap', {\n * tokenIn: '0x...',\n * tokenOut: '0x...',\n * amountIn: parseEther('1'),\n * fee: 3000,\n * sqrtPriceLimitX96: 0n\n * });\n * \n * // For QuickSwap (Algebra)\n * const quickParams = factory.getQuoteParams('quickswap', {\n * tokenIn: '0x...',\n * tokenOut: '0x...',\n * amountIn: parseEther('1'),\n * limitSqrtPrice: 0n\n * });\n * ```\n */\n getQuoteParams(protocol: Protocol, params: QuoteParams) {\n // Validate parameters first\n validateQuoteParams(protocol, params);\n \n if (!protocol) {\n throw Error('Protocol not found');\n }\n // Check for Algebra Integral v2.1 vaults (newer version with deployer)\n if (this.isAlgebraIntegral21Vault(protocol)) {\n const p = params as AlgebraIntegral21QuoteParams;\n return {\n tokenIn: p.tokenIn,\n tokenOut: p.tokenOut,\n deployer: p.deployer,\n amountIn: p.amountIn,\n limitSqrtPrice: p.limitSqrtPrice || 0n\n };\n }\n\n // Check for Shadow protocol vaults\n if (isShadowProtocol(protocol)) {\n const p = params as ShadowQuoteParams;\n return {\n tokenIn: p.tokenIn,\n tokenOut: p.tokenOut,\n amountIn: p.amountIn,\n tickSpacing: p.tickSpacing,\n sqrtPriceLimitX96: p.sqrtPriceLimitX96 || 0n\n };\n }\n\n // Check for Algebra Integral vaults (older version)\n if (isAlgebraIntegralProtocol(protocol)) {\n const p = params as AlgebraQuoteParams;\n return {\n tokenIn: p.tokenIn,\n tokenOut: p.tokenOut,\n amountIn: p.amountIn,\n limitSqrtPrice: p.limitSqrtPrice || 0n\n };\n }\n\n // Check for Algebra-based protocols (QuickSwap, etc.)\n if (protocol && isAlgebraProtocol(protocol)) {\n const p = params as AlgebraQuoteParams;\n return {\n tokenIn: p.tokenIn,\n tokenOut: p.tokenOut,\n amountIn: p.amountIn,\n limitSqrtPrice: p.limitSqrtPrice || 0n\n };\n }\n\n // Check for Thick V2 protocols\n if (isThickV2Protocol(protocol)) {\n const p = params as ThickQuoteParams;\n return {\n tokenIn: p.tokenIn,\n tokenOut: p.tokenOut,\n amountIn: p.amountIn,\n tickSpacing: p.tickSpacing,\n sqrtPriceLimitX96: p.sqrtPriceLimitX96 || 0n\n };\n }\n\n // Default to Uniswap V3 style (fee-based)\n const p = params as UniswapQuoteParams;\n return {\n tokenIn: p.tokenIn,\n tokenOut: p.tokenOut,\n amountIn: p.amountIn,\n fee: p.fee,\n sqrtPriceLimitX96: p.sqrtPriceLimitX96 || 0n\n };\n }\n\n /**\n * Creates a QuoterV2 contract instance with the appropriate ABI for the given beacon.\n * \n * @param beaconName - The beacon identifier to determine the protocol type\n * @param client - The viem client for contract interactions\n * @returns A viem contract instance with the appropriate ABI\n * @throws Error if quoter address is not found for the protocol\n */\n createQuoterV2(protocol: Protocol, client: PublicClient) {\n const quoterV2Address = this.getQuoterV2Address(protocol);\n\n if (!quoterV2Address) {\n throw new Error(`QuoterV2 address not found for protocol: ${protocol}`);\n }\n\n const abi = this.getQuoterAbi(protocol);\n \n return getContract({\n address: quoterV2Address as Address,\n abi,\n client\n });\n }\n\n /**\n * Convenience function that creates both the quoter contract and properly formatted quote parameters.\n * \n * @param beaconName - The beacon identifier to determine the protocol type\n * @param client - The viem client for contract interactions\n * @param params - The input parameters for the quote\n * @returns Object containing the quoter contract and formatted parameters\n * @throws Error if quoter address is not found for the protocol\n * \n * @example\n * ```typescript\n * const factory = new QuoterV2Factory(networkConfig);\n * \n * const { quoter, params } = factory.createQuoterWithParams('quickswap', client, {\n * tokenIn: '0x...',\n * tokenOut: '0x...',\n * amountIn: parseEther('1'),\n * limitSqrtPrice: 0n\n * });\n * \n * // Use directly\n * const result = await quoter.read.quoteExactInputSingle([params]);\n * ```\n */\n createQuoterWithParams(protocol: Protocol, client: PublicClient, params: QuoteParams) {\n const quoter = this.createQuoterV2(protocol, client);\n const formattedParams = this.getQuoteParams(protocol, params);\n \n return {\n quoter,\n params: formattedParams\n };\n }\n\n /**\n * Gets the appropriate QuoterV2 ABI based on the beacon name and protocol.\n * \n * @param protocol - The detected protocol type\n * @returns The appropriate ABI array\n */\n public getQuoterAbi(protocol: Protocol | null): QuoterV2ABI {\n\n if (!protocol) {\n throw Error('Protocol not avaiable')\n }\n // Check for Algebra Integral v2.1 vaults (newer version)\n if (this.isAlgebraIntegral21Vault(protocol)) {\n return QuoterV2AlgebgraIntegral21;\n }\n\n // Check for Shadow protocol vaults\n if (isShadowProtocol(protocol)) {\n return QuoterV2Shadow;\n }\n\n // Check for Algebra Integral vaults (older version)\n if (isAlgebraIntegralProtocol(protocol)) {\n return QuoterV2AlgebgraIntegral;\n }\n\n // Check for Lynex protocol (special case)\n if (protocol === Protocol.Lynex) {\n // Note: Lynex currently uses the same ABI as QuickSwap in this implementation\n // If Lynex has a different ABI, add it to the ABIs in quoter.ts as QuoterV2Lynex\n // and import it at the top of this file\n return QuickSwapQuoterV2;\n }\n\n // Check for Algebra-based protocols\n if (protocol && isAlgebraProtocol(protocol)) {\n return QuickSwapQuoterV2;\n }\n\n // Check for Thick V2 protocols\n if (isThickV2Protocol(protocol)) {\n return QuoterV2Thick;\n }\n\n // Default to standard Uniswap V3 QuoterV2 ABI\n return UniswapV3QuoterABI;\n }\n\n /**\n * Gets the QuoterV2 address for the given protocol from the network configuration.\n * \n * @param protocol - The protocol type\n * @returns The quoter address or undefined if not found\n */\n public getQuoterV2Address(protocol: Protocol | null): string | undefined {\n\n if (!protocol) {\n return undefined;\n }\n const contractAddresses = getProtocolContractAddresses(protocol, this.networkConfig.name, 'QuoterV2')\n\n if (!protocol || !contractAddresses) {\n return undefined;\n }\n return contractAddresses.quoterV2Address;\n }\n\n /**\n * Checks if the beacon represents an Algebra Integral v2.1 vault.\n * \n * @param beaconName - The beacon identifier\n * @returns True if it's an Algebra Integral v2.1 vault\n */\n private isAlgebraIntegral21Vault(protocol: Protocol): boolean {\n return protocol === Protocol.KatanaIntegral;\n }\n\n \n}\n\n/**\n * Helper function to get QuoterV2 address for a protocol from network config.\n * \n * @param protocol - The protocol to get the quoter address for\n * @param networkConfig - The network configuration object\n * @returns The quoter address or undefined if not found\n * \n * @example\n * ```typescript\n * const quoterAddress = getQuoterV2Address(Protocol.QuickSwap, networkConfig);\n * if (quoterAddress) {\n * // Use the quoter address\n * }\n * ```\n */\n\n/**\n * Type guard to check if parameters are for Uniswap V3 style quoter\n */\nexport function isUniswapQuoteParams(params: QuoteParams): params is UniswapQuoteParams {\n return 'fee' in params;\n}\n\n/**\n * Type guard to check if parameters are for Algebra style quoter\n */\nexport function isAlgebraQuoteParams(params: QuoteParams): params is AlgebraQuoteParams {\n return 'limitSqrtPrice' in params ;\n}\n\n/**\n * Type guard to check if parameters are for Thick V2 style quoter\n */\nexport function isThickQuoteParams(params: QuoteParams): params is ThickQuoteParams {\n return 'tickSpacing' in params && 'sqrtPriceLimitX96' in params;\n}\n\n/**\n * Type guard to check if parameters are for Algebra Integral v2.1 style quoter\n */\nexport function isAlgebraIntegral21QuoteParams(params: QuoteParams): params is AlgebraIntegral21QuoteParams {\n return 'deployer' in params;\n}\n\n/**\n * Type guard to check if parameters are for Shadow style quoter\n */\nexport function isShadowQuoteParams(params: QuoteParams): params is ShadowQuoteParams {\n return 'tickSpacing' in params && 'sqrtPriceLimitX96' in params;\n}\n\n/**\n * Validates quote parameters based on the protocol type detected from beacon name\n * \n * @param beaconName - The beacon identifier to determine the protocol type\n * @param params - The parameters to validate\n * @throws Error if parameters don't match the expected protocol type\n */\nexport function validateQuoteParams(protocol: Protocol, params: QuoteParams): void {\n if (!protocol) {\n throw Error('Protocol not found');\n }\n \n // Validate required fields\n if (!params.tokenIn || !params.tokenOut || !params.amountIn) {\n throw new Error('Missing required parameters: tokenIn, tokenOut, and amountIn are required');\n }\n\n // Check for Algebra Integral v2.1 vaults (newer version with deployer)\n if (protocol === Protocol.KatanaIntegral) {\n if (!isAlgebraIntegral21QuoteParams(params)) {\n throw new Error('AlgebraIntegral21QuoteParams required: must include deployer field');\n }\n return;\n }\n\n // Check for Shadow protocol vaults\n if (protocol && isShadowProtocol(protocol)) {\n if (!isShadowQuoteParams(params) && !isThickQuoteParams(params)) {\n throw new Error('ShadowQuoteParams required: must include tickSpacing field');\n }\n return;\n }\n\n // Check for Thick V2 protocols\n if (protocol && isThickV2Protocol(protocol)) {\n if (!isThickQuoteParams(params)) {\n throw new Error('ThickQuoteParams required: must include tickSpacing field');\n }\n return;\n }\n\n // Check for Algebra-based protocols\n if (protocol && isAlgebraProtocol(protocol)) {\n if (!isAlgebraQuoteParams(params)) {\n throw new Error('AlgebraQuoteParams required: limitSqrtPrice field expected');\n }\n return;\n }\n\n // Default to Uniswap V3 style validation\n if (!isUniswapQuoteParams(params)) {\n throw new Error('UniswapQuoteParams required: must include fee field');\n }\n}\n\n/**\n * Gets the expected parameter type for a given beacon name\n * \n * @param beaconName - The beacon identifier\n * @returns String describing the expected parameter type\n */\nexport function getExpectedParamType(beaconName: string): string {\n const protocol = getProtocolTypeByBeacon(beaconName);\n \n if (beaconName.toLowerCase().includes('katanaintegral') || protocol === Protocol.KatanaIntegral) {\n return 'AlgebraIntegral21QuoteParams (requires: tokenIn, tokenOut, amountIn, deployer, limitSqrtPrice?)';\n }\n \n if (protocol && isShadowProtocol(protocol)) {\n return 'ShadowQuoteParams (requires: tokenIn, tokenOut, amountIn, tickSpacing, sqrtPriceLimitX96?)';\n }\n \n if (protocol && isThickV2Protocol(protocol)) {\n return 'ThickQuoteParams (requires: tokenIn, tokenOut, amountIn, tickSpacing, sqrtPriceLimitX96?)';\n }\n \n if (protocol && isAlgebraProtocol(protocol)) {\n return 'AlgebraQuoteParams (requires: tokenIn, tokenOut, amountIn, limitSqrtPrice?)';\n }\n \n return 'UniswapQuoteParams (requires: tokenIn, tokenOut, amountIn, fee, sqrtPriceLimitX96?)';\n} "]}
@@ -1,2 +1,18 @@
1
- export * from './stabilityVaultsConfig';
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("./stabilityVaultsConfig.js"), exports);
2
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/const/stabilityVaults/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC","sourcesContent":["export * from './stabilityVaultsConfig';\n\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/const/stabilityVaults/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C","sourcesContent":["export * from './stabilityVaultsConfig.js';\n\n"]}
@@ -1,14 +1,19 @@
1
- import { Chain } from '../chain.js';
2
- export const stabilityVaultsConfig = {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.stabilityVaultsConfig = void 0;
4
+ exports.getStabilityVaultsPeripheryAddress = getStabilityVaultsPeripheryAddress;
5
+ exports.getStabilityVaultsSubgraphUrl = getStabilityVaultsSubgraphUrl;
6
+ const chain_js_1 = require("../chain.js");
7
+ exports.stabilityVaultsConfig = {
3
8
  beaconContract: 'TestStabilityVault',
4
9
  beaconContractSaga: 'StabilityTest',
5
10
  peripheryAddress: {
6
- [Chain.Arbitrum]: '0xAc9d57AdaDC3593A8BB66729C7d2436dA8A13E7d',
7
- [Chain.Saga]: '0x2292d6ad79e932ae80ee6e03607341301705742d',
11
+ [chain_js_1.Chain.Arbitrum]: '0xAc9d57AdaDC3593A8BB66729C7d2436dA8A13E7d',
12
+ [chain_js_1.Chain.Saga]: '0x2292d6ad79e932ae80ee6e03607341301705742d',
8
13
  },
9
14
  subgraphUrl: {
10
- [Chain.Arbitrum]: 'https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-arbitrum/preprod/gn',
11
- [Chain.Saga]: 'https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-saga-evm-stability/prod/gn',
15
+ [chain_js_1.Chain.Arbitrum]: 'https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-arbitrum/preprod/gn',
16
+ [chain_js_1.Chain.Saga]: 'https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-saga-evm-stability/prod/gn',
12
17
  },
13
18
  };
14
19
  /**
@@ -16,15 +21,15 @@ export const stabilityVaultsConfig = {
16
21
  * @param chainId - The chain ID to lookup
17
22
  * @returns The periphery address for the chain, or undefined if not configured
18
23
  */
19
- export function getStabilityVaultsPeripheryAddress(chain) {
20
- return stabilityVaultsConfig.peripheryAddress[chain];
24
+ function getStabilityVaultsPeripheryAddress(chain) {
25
+ return exports.stabilityVaultsConfig.peripheryAddress[chain];
21
26
  }
22
27
  /**
23
28
  * Get the subgraph URL for a specific chain
24
29
  * @param chainId - The chain ID to lookup
25
30
  * @returns The subgraph URL for the chain, or undefined if not configured
26
31
  */
27
- export function getStabilityVaultsSubgraphUrl(chain) {
28
- return stabilityVaultsConfig.subgraphUrl[chain];
32
+ function getStabilityVaultsSubgraphUrl(chain) {
33
+ return exports.stabilityVaultsConfig.subgraphUrl[chain];
29
34
  }
30
35
  //# sourceMappingURL=stabilityVaultsConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stabilityVaultsConfig.js","sourceRoot":"","sources":["../../../../src/const/stabilityVaults/stabilityVaultsConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAUpC,MAAM,CAAC,MAAM,qBAAqB,GAAuB;IACvD,cAAc,EAAE,oBAAoB;IACpC,kBAAkB,EAAE,eAAe;IACnC,gBAAgB,EAAE;QAChB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,4CAA4C;QAC9D,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,4CAA4C;KAC3D;IACD,WAAW,EAAE;QACX,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,gIAAgI;QAClJ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,0HAA0H;KACzI;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,kCAAkC,CAAC,KAAY;IAC7D,OAAO,qBAAqB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAAC,KAAY;IACxD,OAAO,qBAAqB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC","sourcesContent":["import { Chain } from '../chain.js';\n\nexport interface StabilityVaultInfo {\n beaconContract: string;\n peripheryAddress: Partial<{ [chain in Chain]: string }>;\n subgraphUrl: Partial<{ [chain in Chain]: string }>;\n beaconContractSaga?: string;\n}\n\n\nexport const stabilityVaultsConfig: StabilityVaultInfo = {\n beaconContract: 'TestStabilityVault',\n beaconContractSaga: 'StabilityTest',\n peripheryAddress: {\n [Chain.Arbitrum]: '0xAc9d57AdaDC3593A8BB66729C7d2436dA8A13E7d',\n [Chain.Saga]: '0x2292d6ad79e932ae80ee6e03607341301705742d',\n },\n subgraphUrl: {\n [Chain.Arbitrum]: 'https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-arbitrum/preprod/gn',\n [Chain.Saga]: 'https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-saga-evm-stability/prod/gn',\n },\n};\n\n/**\n * Get the periphery address for a specific chain\n * @param chainId - The chain ID to lookup\n * @returns The periphery address for the chain, or undefined if not configured\n */\nexport function getStabilityVaultsPeripheryAddress(chain: Chain): string | undefined {\n return stabilityVaultsConfig.peripheryAddress[chain];\n}\n\n/**\n * Get the subgraph URL for a specific chain\n * @param chainId - The chain ID to lookup\n * @returns The subgraph URL for the chain, or undefined if not configured\n */\nexport function getStabilityVaultsSubgraphUrl(chain: Chain): string | undefined {\n return stabilityVaultsConfig.subgraphUrl[chain];\n}\n\n"]}
1
+ {"version":3,"file":"stabilityVaultsConfig.js","sourceRoot":"","sources":["../../../../src/const/stabilityVaults/stabilityVaultsConfig.ts"],"names":[],"mappings":";;;AA4BA,gFAEC;AAOD,sEAEC;AAvCD,0CAAoC;AAUvB,QAAA,qBAAqB,GAAuB;IACvD,cAAc,EAAE,oBAAoB;IACpC,kBAAkB,EAAE,eAAe;IACnC,gBAAgB,EAAE;QAChB,CAAC,gBAAK,CAAC,QAAQ,CAAC,EAAE,4CAA4C;QAC9D,CAAC,gBAAK,CAAC,IAAI,CAAC,EAAE,4CAA4C;KAC3D;IACD,WAAW,EAAE;QACX,CAAC,gBAAK,CAAC,QAAQ,CAAC,EAAE,gIAAgI;QAClJ,CAAC,gBAAK,CAAC,IAAI,CAAC,EAAE,0HAA0H;KACzI;CACF,CAAC;AAEF;;;;GAIG;AACH,SAAgB,kCAAkC,CAAC,KAAY;IAC7D,OAAO,6BAAqB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,SAAgB,6BAA6B,CAAC,KAAY;IACxD,OAAO,6BAAqB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC","sourcesContent":["import { Chain } from '../chain.js';\n\nexport interface StabilityVaultInfo {\n beaconContract: string;\n peripheryAddress: Partial<{ [chain in Chain]: string }>;\n subgraphUrl: Partial<{ [chain in Chain]: string }>;\n beaconContractSaga?: string;\n}\n\n\nexport const stabilityVaultsConfig: StabilityVaultInfo = {\n beaconContract: 'TestStabilityVault',\n beaconContractSaga: 'StabilityTest',\n peripheryAddress: {\n [Chain.Arbitrum]: '0xAc9d57AdaDC3593A8BB66729C7d2436dA8A13E7d',\n [Chain.Saga]: '0x2292d6ad79e932ae80ee6e03607341301705742d',\n },\n subgraphUrl: {\n [Chain.Arbitrum]: 'https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-arbitrum/preprod/gn',\n [Chain.Saga]: 'https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-saga-evm-stability/prod/gn',\n },\n};\n\n/**\n * Get the periphery address for a specific chain\n * @param chainId - The chain ID to lookup\n * @returns The periphery address for the chain, or undefined if not configured\n */\nexport function getStabilityVaultsPeripheryAddress(chain: Chain): string | undefined {\n return stabilityVaultsConfig.peripheryAddress[chain];\n}\n\n/**\n * Get the subgraph URL for a specific chain\n * @param chainId - The chain ID to lookup\n * @returns The subgraph URL for the chain, or undefined if not configured\n */\nexport function getStabilityVaultsSubgraphUrl(chain: Chain): string | undefined {\n return stabilityVaultsConfig.subgraphUrl[chain];\n}\n\n"]}
@@ -1,63 +1,67 @@
1
- import { Chain, ChainId } from "./chain.js";
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.steerSubgraphConfig = exports.deprecatedBundlesURL = void 0;
4
+ exports.getSubgraphUrlByChainId = getSubgraphUrlByChainId;
5
+ const chain_js_1 = require("./chain.js");
2
6
  /**
3
7
  * URL for accessing deprecated bundle information
4
8
  */
5
- export const deprecatedBundlesURL = "https://api.steer.finance/deprecated-bundles";
9
+ exports.deprecatedBundlesURL = "https://api.steer.finance/deprecated-bundles";
6
10
  /**
7
11
  * Configuration mapping of supported chains to their respective subgraph endpoints.
8
12
  * Each chain has a dedicated subgraph URL for querying protocol data.
9
13
  * Updated each chains for ormi and thegraph
10
14
  */
11
- export const steerSubgraphConfig = {
12
- [Chain.Polygon]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-polygon/prod/gn",
13
- [Chain.BSC]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/GLDP56fPGDz3MtmhtfTkz5CxWiqiNLACVrsJ9RqQeL4U",
14
- [Chain.Optimism]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/GgW1EwNARL3dyo3acQ3VhraQQ66MHT7QnYuGcQc5geDG",
15
- [Chain.Arbitrum]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-arbitrum/prod/gn",
16
- [Chain.Evmos]: "https://subgraph.satsuma-prod.com/769a117cc018/steer/steer-protocol-evmos/api",
17
- [Chain.Thundercore]: "https://subgraph.steer.finance/thundercore/subgraphs/name/steerprotocol/steer-thundercore",
18
- [Chain.Metis]: "https://api.metis.0xgraph.xyz/api/public/b88b5696-b69d-46be-b212-5c55a9b1492f/subgraphs/steer-protocol-metis/prod/gn",
19
- [Chain.Base]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-base/prod/gn",
20
- [Chain.Avalanche]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/GZotTj3rQJ8ZqVyodtK8TcnKcUxMgeF7mCJHGPYbu8dA",
21
- [Chain.PolygonzkEVM]: "https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-polygon-zkevm/prod/gn",
22
- [Chain.Celo]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/BPaFHyfVrhv3pdjGodpQcWggAg1Bcrvc9SFc2t2BXeho",
23
- [Chain.Kava]: "https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-kava/prod/gn",
24
- [Chain.Linea]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-linea/prod/gn",
25
- [Chain.Scroll]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/822PfgbgBzC98Huwf37uxvF9YGZMA5nDeETpstkR55Sn",
26
- [Chain.Manta]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-manta/prod/gn",
27
- [Chain.Astar]: "https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-astar/prod/gn",
28
- [Chain.Fantom]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/9uyX2WDuaxmcYh11ehUhU68M9uSCp5FXVQV2w4LqbpbV",
29
- [Chain.OkxTestnet]: "https://subgraph.steer.finance/steer-x1-testnet/subgraphs/name/steerprotocol/steer-okxtestnet",
30
- [Chain.Mantle]: "https://subgraph-api.mantle.xyz/subgraphs/name/steerprotocol/steer-protocol-mantle",
31
- [Chain.AstarZkevm]: "https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-astar-zkevm/1.1.1/gn",
32
- [Chain.Blast]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-blast/prod/gn",
33
- [Chain.Mode]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-mode/prod/gn",
34
- [Chain.Telos]: "https://telos.api.ormilabs.com/api/public/39892398-bfdd-48ac-b776-77ad8a5b4b9e/subgraphs/steer-protocol-telos/prod/gn",
35
- [Chain.XLayer]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/8gCrUHrVS9rHwvDPLTn4Wz6od68ULb7azYuQz25JjRK3",
36
- [Chain.Taiko]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-taiko/prod/gn",
37
- [Chain.Rootstock]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/H3pANqbMVTiFCUXHjXYr2mHbXvn5my5o66Gxbwcg7Aqm",
38
- [Chain.ZklinkNova]: "https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-zklink-nova/1.0.1/gn",
39
- [Chain.Flare]: "https://api.goldsky.com/api/public/project_cm2k9xbkz4qg901vs51bm5uau/subgraphs/steer-protocol-flare/prod/gn",
40
- [Chain.BeraChainBartio]: 'https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-berachain-bartio/prod/gn',
41
- [Chain.Filecoin]: 'https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-filecoin/prod/gn',
42
- [Chain.Apechain]: 'https://apeapi.0xgraph.xyz/api/public/4ea21b03-9850-4796-8068-ec71bbe022db/subgraphs/steer-protocol-apechain/prod/gn',
43
- [Chain.Zircuit]: 'https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-zircuit/prod/gn',
44
- [Chain.Moonbeam]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/4D2pLLQuGsAkdZAUgqxxnk4Mcu3aMjEV1HJ2F63kC7w6',
45
- [Chain.Sei]: 'https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-sei/prod/gn',
46
- [Chain.Sonic]: 'https://api.0xgraph.xyz/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-sonic/prod/gn',
47
- [Chain.Zeta]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/HFH41DyzAXxYmT5eszVWn2T7UxViMroPJ4XJV8vhDGNN',
48
- [Chain.Mainnet]: 'https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-mainnet/prod/gn',
49
- [Chain.Soneium]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/8gCrUHrVS9rHwvDPLTn4Wz6od68ULb7azYuQz25JjRK3',
50
- [Chain.Bera]: 'https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-bera/prod/gn',
51
- [Chain.Unichain]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/EoLK36f26Dr7maXyNKxJmEBJkoYVCMh1d4ENtT5hJgyB',
52
- [Chain.Hemi]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/2eACJtEGuELqN5roUiHG1jqmCpXt5aimcc8xZdvtMv4z',
53
- [Chain.TataraTestnet]: 'https://api.studio.thegraph.com/query/78728/steer-protocol-tatara-testnet/version/latest',
54
- [Chain.Core]: 'https://thegraph.coredao.org/subgraphs/name/steer-protocol-core',
55
- [Chain.Peaq]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/45pjWAnAXULpS6UDajzCtLcZYuohwuMm4UuSDjegMKAT',
56
- [Chain.Katana]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/D6CST1Az8c8KvMf8ktcEcWds89YVQxbKG6v8yo7FAzzM',
57
- [Chain.Ronin]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/793Lz5oiK51wdm9kCLtHqunkAPk2qjg7denpCrHqrLcA',
58
- [Chain.Saga]: 'https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-saga-evm/prod/gn',
59
- [Chain.Nibiru]: 'https://app.sentio.xyz//api/v1/graphql/rakesh/steer-protocol-nibiru',
60
- [Chain.Hyperevm]: 'https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-hyperevm/prod/gn'
15
+ exports.steerSubgraphConfig = {
16
+ [chain_js_1.Chain.Polygon]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-polygon/prod/gn",
17
+ [chain_js_1.Chain.BSC]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/GLDP56fPGDz3MtmhtfTkz5CxWiqiNLACVrsJ9RqQeL4U",
18
+ [chain_js_1.Chain.Optimism]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/GgW1EwNARL3dyo3acQ3VhraQQ66MHT7QnYuGcQc5geDG",
19
+ [chain_js_1.Chain.Arbitrum]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-arbitrum/prod/gn",
20
+ [chain_js_1.Chain.Evmos]: "https://subgraph.satsuma-prod.com/769a117cc018/steer/steer-protocol-evmos/api",
21
+ [chain_js_1.Chain.Thundercore]: "https://subgraph.steer.finance/thundercore/subgraphs/name/steerprotocol/steer-thundercore",
22
+ [chain_js_1.Chain.Metis]: "https://api.metis.0xgraph.xyz/api/public/b88b5696-b69d-46be-b212-5c55a9b1492f/subgraphs/steer-protocol-metis/prod/gn",
23
+ [chain_js_1.Chain.Base]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-base/prod/gn",
24
+ [chain_js_1.Chain.Avalanche]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/GZotTj3rQJ8ZqVyodtK8TcnKcUxMgeF7mCJHGPYbu8dA",
25
+ [chain_js_1.Chain.PolygonzkEVM]: "https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-polygon-zkevm/prod/gn",
26
+ [chain_js_1.Chain.Celo]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/BPaFHyfVrhv3pdjGodpQcWggAg1Bcrvc9SFc2t2BXeho",
27
+ [chain_js_1.Chain.Kava]: "https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-kava/prod/gn",
28
+ [chain_js_1.Chain.Linea]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-linea/prod/gn",
29
+ [chain_js_1.Chain.Scroll]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/822PfgbgBzC98Huwf37uxvF9YGZMA5nDeETpstkR55Sn",
30
+ [chain_js_1.Chain.Manta]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-manta/prod/gn",
31
+ [chain_js_1.Chain.Astar]: "https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-astar/prod/gn",
32
+ [chain_js_1.Chain.Fantom]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/9uyX2WDuaxmcYh11ehUhU68M9uSCp5FXVQV2w4LqbpbV",
33
+ [chain_js_1.Chain.OkxTestnet]: "https://subgraph.steer.finance/steer-x1-testnet/subgraphs/name/steerprotocol/steer-okxtestnet",
34
+ [chain_js_1.Chain.Mantle]: "https://subgraph-api.mantle.xyz/subgraphs/name/steerprotocol/steer-protocol-mantle",
35
+ [chain_js_1.Chain.AstarZkevm]: "https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-astar-zkevm/1.1.1/gn",
36
+ [chain_js_1.Chain.Blast]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-blast/prod/gn",
37
+ [chain_js_1.Chain.Mode]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-mode/prod/gn",
38
+ [chain_js_1.Chain.Telos]: "https://telos.api.ormilabs.com/api/public/39892398-bfdd-48ac-b776-77ad8a5b4b9e/subgraphs/steer-protocol-telos/prod/gn",
39
+ [chain_js_1.Chain.XLayer]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/8gCrUHrVS9rHwvDPLTn4Wz6od68ULb7azYuQz25JjRK3",
40
+ [chain_js_1.Chain.Taiko]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-taiko/prod/gn",
41
+ [chain_js_1.Chain.Rootstock]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/H3pANqbMVTiFCUXHjXYr2mHbXvn5my5o66Gxbwcg7Aqm",
42
+ [chain_js_1.Chain.ZklinkNova]: "https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-zklink-nova/1.0.1/gn",
43
+ [chain_js_1.Chain.Flare]: "https://api.goldsky.com/api/public/project_cm2k9xbkz4qg901vs51bm5uau/subgraphs/steer-protocol-flare/prod/gn",
44
+ [chain_js_1.Chain.BeraChainBartio]: 'https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-berachain-bartio/prod/gn',
45
+ [chain_js_1.Chain.Filecoin]: 'https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-filecoin/prod/gn',
46
+ [chain_js_1.Chain.Apechain]: 'https://apeapi.0xgraph.xyz/api/public/4ea21b03-9850-4796-8068-ec71bbe022db/subgraphs/steer-protocol-apechain/prod/gn',
47
+ [chain_js_1.Chain.Zircuit]: 'https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-zircuit/prod/gn',
48
+ [chain_js_1.Chain.Moonbeam]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/4D2pLLQuGsAkdZAUgqxxnk4Mcu3aMjEV1HJ2F63kC7w6',
49
+ [chain_js_1.Chain.Sei]: 'https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-sei/prod/gn',
50
+ [chain_js_1.Chain.Sonic]: 'https://api.0xgraph.xyz/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-sonic/prod/gn',
51
+ [chain_js_1.Chain.Zeta]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/HFH41DyzAXxYmT5eszVWn2T7UxViMroPJ4XJV8vhDGNN',
52
+ [chain_js_1.Chain.Mainnet]: 'https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-mainnet/prod/gn',
53
+ [chain_js_1.Chain.Soneium]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/8gCrUHrVS9rHwvDPLTn4Wz6od68ULb7azYuQz25JjRK3',
54
+ [chain_js_1.Chain.Bera]: 'https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-bera/prod/gn',
55
+ [chain_js_1.Chain.Unichain]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/EoLK36f26Dr7maXyNKxJmEBJkoYVCMh1d4ENtT5hJgyB',
56
+ [chain_js_1.Chain.Hemi]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/2eACJtEGuELqN5roUiHG1jqmCpXt5aimcc8xZdvtMv4z',
57
+ [chain_js_1.Chain.TataraTestnet]: 'https://api.studio.thegraph.com/query/78728/steer-protocol-tatara-testnet/version/latest',
58
+ [chain_js_1.Chain.Core]: 'https://thegraph.coredao.org/subgraphs/name/steer-protocol-core',
59
+ [chain_js_1.Chain.Peaq]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/45pjWAnAXULpS6UDajzCtLcZYuohwuMm4UuSDjegMKAT',
60
+ [chain_js_1.Chain.Katana]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/D6CST1Az8c8KvMf8ktcEcWds89YVQxbKG6v8yo7FAzzM',
61
+ [chain_js_1.Chain.Ronin]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/793Lz5oiK51wdm9kCLtHqunkAPk2qjg7denpCrHqrLcA',
62
+ [chain_js_1.Chain.Saga]: 'https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-saga-evm/prod/gn',
63
+ [chain_js_1.Chain.Nibiru]: 'https://app.sentio.xyz//api/v1/graphql/rakesh/steer-protocol-nibiru',
64
+ [chain_js_1.Chain.Hyperevm]: 'https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-hyperevm/prod/gn'
61
65
  };
62
66
  /**
63
67
  * Retrieves the subgraph URL for a given chain ID.
@@ -70,16 +74,16 @@ export const steerSubgraphConfig = {
70
74
  * // Returns the Ethereum mainnet subgraph URL
71
75
  * ```
72
76
  */
73
- export function getSubgraphUrlByChainId(chainId) {
77
+ function getSubgraphUrlByChainId(chainId) {
74
78
  // Convert chainId to Chain enum value using ChainId enum
75
- const [chainName] = Object.entries(ChainId).find(([, id]) => Number(id) === chainId) || [];
79
+ const [chainName] = Object.entries(chain_js_1.ChainId).find(([, id]) => Number(id) === chainId) || [];
76
80
  if (!chainName)
77
81
  return undefined;
78
82
  // Get the Chain enum value
79
- const chain = Chain[chainName];
83
+ const chain = chain_js_1.Chain[chainName];
80
84
  if (!chain)
81
85
  return undefined;
82
86
  // Return the subgraph URL from steerSubgraphConfig
83
- return steerSubgraphConfig[chain];
87
+ return exports.steerSubgraphConfig[chain];
84
88
  }
85
89
  //# sourceMappingURL=subgraph.js.map