@steerprotocol/sdk 1.30.4 → 1.30.6

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 +2 -2
  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 +1 @@
1
- {"version":3,"file":"StakingClient.js","sourceRoot":"","sources":["../../../src/base/StakingClient.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Address, Hash, PublicClient, WalletClient } from 'viem';\nimport { SteerResponse } from '../types.js';\nimport { SubgraphClient } from './SubgraphClient.js';\nimport { VaultWithdrawClient } from './vault/withdraw/index.js';\nimport { StakingProtocol, isValidStakingProtocol, normalizeProtocol } from '../const/protocol.js';\nimport { Decimal } from 'decimal.js';\n\n// Interfaces for staking pool data from API\nexport interface StakingPool {\n allSymbols?: string\n rewardToken: Address\n rewardTokenDetail?: Reward\n rewardTokenA: Address\n rewardTokenADetail: Reward\n rewardTokenB?: Address\n rewardTokenBDetail?: Reward\n dailyEmissionRewardA: number\n dailyEmissionRewardB?: number\n chainId: number\n stakingPool: string\n stakingToken: string\n protocol: string\n staking: Staking\n reward: Reward\n isSteerVault: boolean\n beaconName?: string\n vaultTokens?: VaultTokens\n periodFinish: string\n isDualFactory?: boolean\n feeTier?: string\n rewardsDuration: string\n strategyId?:string\n isActive?:boolean\n postGeneratedTotalStaked?:number\n postGeneratedApr?: number\n stakedAmount?:bigint,\n locked?:boolean\n}\n\n\nexport interface VaultTokens {\n token0: Token0\n token1: Token1\n}\n\nexport interface Token0 {\n name: string\n address: Address\n symbol: string\n}\n\nexport interface Token1 {\n name: string\n address: Address\n symbol: string\n}\n\nexport interface Reward {\n symbol: string\n name: string\n address: Address,\n decimals: number\n}\n\nexport interface Staking {\n symbol: string\n name: string\n address: Address\n decimals: number\n}\n\nexport interface StakingPoolFilter {\n chainId?: number;\n protocol?: StakingProtocol;\n isLive?: boolean;\n includeExpired?: boolean;\n minDailyEmissionA?: number;\n minDailyEmissionB?: number;\n isDualRewards?: boolean;\n}\n\n// Interfaces for contract parameters\nexport interface StakeParams {\n stakingPool: Address;\n amount: bigint;\n}\n\nexport interface WithdrawParams {\n stakingPool: Address;\n amount: bigint;\n}\n\nexport interface GetRewardParams {\n stakingPool: Address;\n}\n\nexport interface TokenValueParams {\n stakingPool: StakingPool;\n amount: bigint;\n token0UsdPrice: number;\n token1UsdPrice: number;\n}\n\nexport interface TokenValueResponse {\n totalValueUsd: number;\n token0Value?: number;\n token1Value?: number;\n tokenValue?: number;\n}\n\n// Add type definition for raw pool data\ninterface RawStakingPool {\n allSymbols?: string\n rewardToken: Address\n rewardTokenDetail?: Reward\n rewardTokenA: Address\n rewardTokenADetail: Reward\n rewardTokenB?: Address\n rewardTokenBDetail?: Reward\n dailyEmissionRewardA: number\n dailyEmissionRewardB?: number\n chainId: number\n stakingPool: string\n stakingToken: string\n protocol: StakingProtocol\n staking: Staking\n reward: Reward\n isSteerVault: boolean\n beaconName?: string\n vaultTokens?: VaultTokens\n periodFinish: string\n isDualFactory?: boolean\n feeTier?: string\n rewardsDuration: string\n strategyId?:string\n isActive?:boolean\n postGeneratedTotalStaked?:number\n postGeneratedApr?: number\n stakedAmount?:bigint,\n locked?:boolean\n}\n\n// ABIs for staking contracts\nconst SINGLE_REWARD_ABI = [\n {\n \"inputs\": [],\n \"name\": \"lastTimeRewardApplicable\",\n \"outputs\": [{\"type\": \"uint256\"}],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [{\"type\": \"address\"}],\n \"name\": \"earned\",\n \"outputs\": [{\"type\": \"uint256\"}],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"totalSupply\",\n \"outputs\": [{\"type\": \"uint256\"}],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [{\"type\": \"address\"}],\n \"name\": \"balanceOf\",\n \"outputs\": [{\"type\": \"uint256\"}],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [{\"type\": \"uint256\"}],\n \"name\": \"stake\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [{\"type\": \"uint256\"}],\n \"name\": \"withdraw\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getReward\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"exit\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }\n] as const;\n\nconst DUAL_REWARD_ABI = [\n ...SINGLE_REWARD_ABI,\n {\n \"inputs\": [{\"type\": \"address\"}],\n \"name\": \"earnedA\",\n \"outputs\": [{\"type\": \"uint256\"}],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [{\"type\": \"address\"}],\n \"name\": \"earnedB\",\n \"outputs\": [{\"type\": \"uint256\"}],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }\n] as const;\n\nconst ERC20_ABI = [\n {\n \"inputs\": [],\n \"name\": \"decimals\",\n \"outputs\": [{\"type\": \"uint8\"}],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }\n] as const;\n\nexport class StakingClient extends SubgraphClient {\n protected readonly publicClient: PublicClient;\n protected readonly walletClient: WalletClient;\n private readonly stakingPoolsEndpoint = 'https://9i52h964s3.execute-api.us-east-1.amazonaws.com/dev/staking-pools';\n private readonly withdrawClient: VaultWithdrawClient;\n\n constructor(client: PublicClient & WalletClient) {\n super(client);\n this.publicClient = client;\n this.walletClient = client;\n this.withdrawClient = new VaultWithdrawClient(client, client);\n }\n\n /**\n * Fetches and filters staking pools based on provided criteria\n * @param filter Optional filter object to filter the pools\n */\n public async getStakingPools(\n filter?: StakingPoolFilter\n ): Promise<SteerResponse<StakingPool[]>> {\n try {\n const response = await fetch(this.stakingPoolsEndpoint);\n if (!response.ok) {\n throw new Error('Failed to fetch staking pools');\n }\n\n const rawPools: RawStakingPool[] = (await response.json()).pools;\n\n // Convert and validate protocols in the response\n let pools: StakingPool[] = rawPools\n .filter((pool) => isValidStakingProtocol(pool.protocol))\n .map((pool) => ({\n ...pool,\n protocol: normalizeProtocol(pool.protocol)\n }));\n\n // Apply filters if provided\n if (filter) {\n pools = this.filterPools(pools, filter);\n }\n\n return {\n data: pools,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Gets only currently active staking pools\n * @param chainId Optional chain ID to filter pools\n * @param protocol Optional protocol name to filter pools\n */\n public async getLiveStakingPools(chainId?: number, protocol?: StakingProtocol): Promise<SteerResponse<StakingPool[]>> {\n return this.getStakingPools({\n chainId,\n protocol,\n isLive: true,\n includeExpired: false\n });\n }\n\n /**\n * Gets all dual rewards staking pools\n * @param chainId Optional chain ID to filter pools\n * @param protocol Optional protocol name to filter pools\n * @param isLive Optional flag to only get live pools\n */\n public async getDualRewardsStakingPools(\n chainId?: number,\n protocol?: StakingProtocol,\n isLive?: boolean\n ): Promise<SteerResponse<StakingPool[]>> {\n return this.getStakingPools({\n chainId,\n protocol,\n isLive,\n isDualRewards: true\n });\n }\n\n /**\n * Gets high yield staking pools based on minimum daily emissions\n * @param minDailyEmissionA Minimum daily emission for reward A\n * @param minDailyEmissionB Optional minimum daily emission for reward B\n * @param chainId Optional chain ID to filter pools\n */\n public async getHighYieldStakingPools(\n minDailyEmissionA: number,\n minDailyEmissionB?: number,\n chainId?: number\n ): Promise<SteerResponse<StakingPool[]>> {\n return this.getStakingPools({\n chainId,\n minDailyEmissionA,\n minDailyEmissionB,\n isLive: true\n });\n }\n\n /**\n * Internal helper to filter pools based on criteria\n */\n private filterPools(pools: StakingPool[], filter: StakingPoolFilter): StakingPool[] {\n return pools.filter(pool => {\n // Chain ID filter\n if (filter.chainId !== undefined && pool.chainId !== filter.chainId) {\n return false;\n }\n\n // Protocol filter\n if (filter.protocol !== undefined && pool.protocol !== filter.protocol) {\n return false;\n }\n\n // Dual rewards filter\n if (filter.isDualRewards !== undefined && pool.isDualFactory !== filter.isDualRewards) {\n return false;\n }\n\n // Daily emission filters\n if (filter.minDailyEmissionA !== undefined && pool.dailyEmissionRewardA < filter.minDailyEmissionA) {\n return false;\n }\n if (filter.minDailyEmissionB !== undefined && pool.dailyEmissionRewardB !== undefined && pool.dailyEmissionRewardB < filter.minDailyEmissionB) {\n return false;\n }\n\n // Live/Expired filter\n if (filter.isLive !== undefined) {\n const now = Math.floor(Date.now() / 1000);\n const periodFinish = parseInt(pool.periodFinish);\n const isPoolLive = periodFinish > now;\n\n if (filter.isLive && !isPoolLive) {\n return false;\n }\n\n if (!filter.includeExpired && !isPoolLive) {\n return false;\n }\n }\n\n return true;\n });\n }\n\n /**\n * Stakes tokens in a staking pool\n * @param params The staking parameters\n */\n public async stake(params: StakeParams): Promise<SteerResponse<Hash>> {\n try {\n const account = await this.walletClient.getAddresses();\n if (!account[0]) throw new Error('No account found');\n\n const { request } = await this.publicClient.simulateContract({\n address: params.stakingPool,\n abi: SINGLE_REWARD_ABI,\n functionName: 'stake',\n args: [params.amount],\n account: account[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Withdraws tokens from a staking pool\n * @param params The withdrawal parameters\n */\n public async withdraw(params: WithdrawParams): Promise<SteerResponse<Hash>> {\n try {\n const account = await this.walletClient.getAddresses();\n if (!account[0]) throw new Error('No account found');\n\n const { request } = await this.publicClient.simulateContract({\n address: params.stakingPool,\n abi: SINGLE_REWARD_ABI,\n functionName: 'withdraw',\n args: [params.amount],\n account: account[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Claims rewards from a staking pool\n * @param params The reward claim parameters\n */\n public async getReward(params: GetRewardParams): Promise<SteerResponse<Hash>> {\n try {\n const account = await this.walletClient.getAddresses();\n if (!account[0]) throw new Error('No account found');\n\n const { request } = await this.publicClient.simulateContract({\n address: params.stakingPool,\n abi: SINGLE_REWARD_ABI,\n functionName: 'getReward',\n args: [],\n account: account[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Gets the earned rewards for an account in a staking pool\n * @param stakingPool The staking pool address\n * @param account The account to check rewards for\n */\n public async earned(stakingPool: Address, account: Address): Promise<SteerResponse<{ rewardA: bigint; rewardB?: bigint }>> {\n try {\n // First try to read as single reward\n try {\n const reward = await this.publicClient.readContract({\n address: stakingPool,\n abi: SINGLE_REWARD_ABI,\n functionName: 'earned',\n args: [account],\n });\n\n return {\n data: { rewardA: reward },\n status: 200,\n success: true,\n };\n } catch {\n // If single reward fails, try dual rewards\n const [rewardA, rewardB] = await Promise.all([\n this.publicClient.readContract({\n address: stakingPool,\n abi: DUAL_REWARD_ABI,\n functionName: 'earnedA',\n args: [account],\n }),\n this.publicClient.readContract({\n address: stakingPool,\n abi: DUAL_REWARD_ABI,\n functionName: 'earnedB',\n args: [account],\n }),\n ]);\n\n return {\n data: { rewardA, rewardB },\n status: 200,\n success: true,\n };\n }\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Gets the total supply of staked tokens in a pool\n * @param stakingPool The staking pool address\n */\n public async totalSupply(stakingPool: Address): Promise<SteerResponse<bigint>> {\n try {\n const totalSupply = await this.publicClient.readContract({\n address: stakingPool,\n abi: SINGLE_REWARD_ABI,\n functionName: 'totalSupply',\n });\n\n return {\n data: totalSupply,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Gets the staked balance of an account in a pool\n * @param stakingPool The staking pool address\n * @param account The account to check balance for\n */\n public async balanceOf(stakingPool: Address, account: Address): Promise<SteerResponse<bigint>> {\n try {\n const balance = await this.publicClient.readContract({\n address: stakingPool,\n abi: SINGLE_REWARD_ABI,\n functionName: 'balanceOf',\n args: [account],\n });\n\n return {\n data: balance,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Calculates the APR for a staking pool\n * @param pool The staking pool data\n * @param rewardTokenPriceUSD The price of the reward token in USD\n * @param totalStakedUSD The total value staked in USD\n */\n public calculateAPR(\n pool: StakingPool,\n rewardTokenPriceUSD: number,\n totalStakedUSD: number\n ): number {\n if (totalStakedUSD === 0) {\n return 0;\n }\n\n const dailyRewardUSD = pool.dailyEmissionRewardA * rewardTokenPriceUSD;\n let apr = (dailyRewardUSD * 365 * 100) / totalStakedUSD;\n\n if (pool.isDualFactory && pool.dailyEmissionRewardB) {\n const dailyRewardBUSD = pool.dailyEmissionRewardB * rewardTokenPriceUSD;\n apr += (dailyRewardBUSD * 365 * 100) / totalStakedUSD;\n }\n\n return apr;\n }\n\n /**\n * Calculates the USD value of tokens in a staking pool\n * Handles both regular staking pools and Steer vaults\n * @param params Parameters for token value calculation\n */\n public async getSteerLpTokenValue(params: TokenValueParams): Promise<SteerResponse<TokenValueResponse>> {\n try {\n // First, get the staking pool details\n const pool = params.stakingPool;\n \n const chainId = await this.publicClient.getChainId();\n if (chainId !== pool.chainId) {\n throw new Error(`Chain ID mismatch| expected ${pool.chainId} but got ${chainId}`);\n }\n\n // Handle Steer vault staking pools\n if (pool.isSteerVault && pool.staking) {\n if (!pool.vaultTokens) {\n throw new Error('Vault tokens information not found');\n }\n\n // Get underlying token amounts from LP token\n const tokensResponse = await this.withdrawClient.getTokensFromLp(\n pool.staking.address,\n params.amount\n );\n\n if (!tokensResponse.success || !tokensResponse.data) {\n throw new Error('Failed to get token amounts from LP');\n }\n\n // Get decimals for both tokens\n const [token0Decimals, token1Decimals] = await Promise.all([\n this.publicClient.readContract({\n address: pool.vaultTokens.token0.address,\n abi: ERC20_ABI,\n functionName: 'decimals'\n }),\n this.publicClient.readContract({\n address: pool.vaultTokens.token1.address,\n abi: ERC20_ABI,\n functionName: 'decimals'\n })\n ]);\n\n // Use Decimal.js for precise calculations\n const token0Amount = new Decimal(tokensResponse.data.token0Val.toString())\n .div(new Decimal(10).pow(token0Decimals))\n .mul(params.token0UsdPrice);\n\n const token1Amount = new Decimal(tokensResponse.data.token1Val.toString())\n .div(new Decimal(10).pow(token1Decimals))\n .mul(params.token1UsdPrice);\n\n const totalValueUsd = token0Amount.plus(token1Amount).toNumber();\n const token0ValueUsd = token0Amount.toNumber();\n const token1ValueUsd = token1Amount.toNumber();\n\n return {\n data: {\n totalValueUsd,\n token0Value: token0ValueUsd,\n token1Value: token1ValueUsd\n },\n status: 200,\n success: true\n };\n }\n\n // Handle regular staking pools (non-Steer vault)\n const stakingDecimals = await this.publicClient.readContract({\n address: pool.staking.address,\n abi: ERC20_ABI,\n functionName: 'decimals'\n });\n\n const tokenValueUsd = new Decimal(params.amount.toString())\n .div(new Decimal(10).pow(stakingDecimals))\n .mul(params.token0UsdPrice)\n .toNumber();\n\n return {\n data: {\n totalValueUsd: tokenValueUsd,\n tokenValue: tokenValueUsd\n },\n status: 200,\n success: true\n };\n\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred'\n };\n }\n }\n\n /**\n * Gets the total staking amount in USD for a pool\n * @param stakingPool The staking pool\n * @param token0UsdPrice Price of token0 in USD\n * @param token1UsdPrice Price of token1 in USD (required for Steer vaults)\n */\n public async getTotalStakingAmountInUsd(\n stakingPool: StakingPool,\n token0UsdPrice: number,\n token1UsdPrice?: number\n ): Promise<SteerResponse<number>> {\n try {\n // Get total supply\n const totalSupplyResponse = await this.totalSupply(stakingPool.stakingPool as `0x${string}`);\n if (!totalSupplyResponse.success || !totalSupplyResponse.data) {\n throw new Error('Failed to get total supply');\n }\n\n // Get value using getSteerLpTokenValue\n const valueResponse = await this.getSteerLpTokenValue({\n stakingPool,\n amount: totalSupplyResponse.data,\n token0UsdPrice,\n token1UsdPrice: token1UsdPrice || token0UsdPrice\n });\n\n if (!valueResponse.success || !valueResponse.data) {\n throw new Error('Failed to calculate token value');\n }\n\n return {\n data: valueResponse.data.totalValueUsd,\n status: 200,\n success: true\n };\n\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred'\n };\n }\n }\n\n /**\n * Prepares the transaction data for staking tokens without executing it\n * @param params The staking parameters\n */\n public async prepareStakeTx(params: StakeParams): Promise<SteerResponse<{\n address: Address;\n abi: {\n type: string;\n inputs: {\n name: string;\n internalType: string;\n type: string;\n }[];\n name: string;\n outputs: never[];\n stateMutability: string;\n }[];\n functionName: string;\n args: readonly [bigint];\n }>> {\n try {\n\n return {\n data: {\n address: params.stakingPool,\n abi: [{\n type: 'function',\n inputs: [\n { name: 'amount', internalType: 'uint256', type: 'uint256' }\n ],\n name: 'stake',\n outputs: [],\n stateMutability: 'nonpayable'\n }],\n functionName: 'stake',\n args: [params.amount] as const\n },\n status: 200,\n success: true\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred'\n };\n }\n }\n\n /**\n * Prepares the transaction data for withdrawing tokens without executing it\n * @param params The withdrawal parameters\n */\n public async prepareWithdrawTx(params: WithdrawParams): Promise<SteerResponse<{\n address: Address;\n abi: {\n type: string;\n inputs: {\n name: string;\n internalType: string;\n type: string;\n }[];\n name: string;\n outputs: never[];\n stateMutability: string;\n }[];\n functionName: string;\n args: readonly [bigint];\n }>> {\n try {\n\n return {\n data: {\n address: params.stakingPool,\n abi: [{\n type: 'function',\n inputs: [\n { name: 'amount', internalType: 'uint256', type: 'uint256' }\n ],\n name: 'withdraw',\n outputs: [],\n stateMutability: 'nonpayable'\n }],\n functionName: 'withdraw',\n args: [params.amount] as const\n },\n status: 200,\n success: true\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred'\n };\n }\n }\n\n /**\n * Prepares the transaction data for claiming rewards without executing it\n * @param params The reward claim parameters\n */\n public async prepareGetRewardTx(params: GetRewardParams): Promise<SteerResponse<{\n address: Address;\n abi: {\n type: string;\n inputs: {\n name: string;\n internalType: string;\n type: string;\n }[];\n name: string;\n outputs: never[];\n stateMutability: string;\n }[];\n functionName: string;\n args: readonly [];\n }>> {\n try {\n\n return {\n data: {\n address: params.stakingPool,\n abi: [{\n type: 'function',\n inputs: [],\n name: 'getReward',\n outputs: [],\n stateMutability: 'nonpayable'\n }],\n functionName: 'getReward',\n args: [] as const\n },\n status: 200,\n success: true\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred'\n };\n }\n }\n} "]}
1
+ {"version":3,"file":"StakingClient.js","sourceRoot":"","sources":["../../../src/base/StakingClient.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Address, Hash, PublicClient, WalletClient } from 'viem';\nimport { SteerResponse } from '../types.js';\nimport { SubgraphClient } from './SubgraphClient.js';\nimport { VaultWithdrawClient } from './vault/withdraw/index.js';\nimport { StakingProtocol, isValidStakingProtocol, normalizeProtocol } from '../const/protocol.js';\nimport { Decimal } from 'decimal.js';\n\n// Interfaces for staking pool data from API\nexport interface StakingPool {\n allSymbols?: string\n rewardToken: Address\n rewardTokenDetail?: Reward\n rewardTokenA: Address\n rewardTokenADetail: Reward\n rewardTokenB?: Address\n rewardTokenBDetail?: Reward\n dailyEmissionRewardA: number\n dailyEmissionRewardB?: number\n chainId: number\n stakingPool: string\n stakingToken: string\n protocol: string\n staking: Staking\n reward: Reward\n isSteerVault: boolean\n beaconName?: string\n vaultTokens?: VaultTokens\n periodFinish: string\n isDualFactory?: boolean\n feeTier?: string\n rewardsDuration: string\n strategyId?:string\n isActive?:boolean\n postGeneratedTotalStaked?:number\n postGeneratedApr?: number\n stakedAmount?:bigint,\n locked?:boolean\n}\n\n\nexport interface VaultTokens {\n token0: Token0\n token1: Token1\n}\n\nexport interface Token0 {\n name: string\n address: Address\n symbol: string\n}\n\nexport interface Token1 {\n name: string\n address: Address\n symbol: string\n}\n\nexport interface Reward {\n symbol: string\n name: string\n address: Address,\n decimals: number\n}\n\nexport interface Staking {\n symbol: string\n name: string\n address: Address\n decimals: number\n}\n\nexport interface StakingPoolFilter {\n chainId?: number;\n protocol?: StakingProtocol;\n isLive?: boolean;\n includeExpired?: boolean;\n minDailyEmissionA?: number;\n minDailyEmissionB?: number;\n isDualRewards?: boolean;\n}\n\n// Interfaces for contract parameters\nexport interface StakeParams {\n stakingPool: Address;\n amount: bigint;\n}\n\nexport interface WithdrawParams {\n stakingPool: Address;\n amount: bigint;\n}\n\nexport interface GetRewardParams {\n stakingPool: Address;\n}\n\nexport interface TokenValueParams {\n stakingPool: StakingPool;\n amount: bigint;\n token0UsdPrice: number;\n token1UsdPrice: number;\n}\n\nexport interface TokenValueResponse {\n totalValueUsd: number;\n token0Value?: number;\n token1Value?: number;\n tokenValue?: number;\n}\n\n// Add type definition for raw pool data\ninterface RawStakingPool {\n allSymbols?: string\n rewardToken: Address\n rewardTokenDetail?: Reward\n rewardTokenA: Address\n rewardTokenADetail: Reward\n rewardTokenB?: Address\n rewardTokenBDetail?: Reward\n dailyEmissionRewardA: number\n dailyEmissionRewardB?: number\n chainId: number\n stakingPool: string\n stakingToken: string\n protocol: StakingProtocol\n staking: Staking\n reward: Reward\n isSteerVault: boolean\n beaconName?: string\n vaultTokens?: VaultTokens\n periodFinish: string\n isDualFactory?: boolean\n feeTier?: string\n rewardsDuration: string\n strategyId?:string\n isActive?:boolean\n postGeneratedTotalStaked?:number\n postGeneratedApr?: number\n stakedAmount?:bigint,\n locked?:boolean\n}\n\n// ABIs for staking contracts\nconst SINGLE_REWARD_ABI = [\n {\n \"inputs\": [],\n \"name\": \"lastTimeRewardApplicable\",\n \"outputs\": [{\"type\": \"uint256\"}],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [{\"type\": \"address\"}],\n \"name\": \"earned\",\n \"outputs\": [{\"type\": \"uint256\"}],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"totalSupply\",\n \"outputs\": [{\"type\": \"uint256\"}],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [{\"type\": \"address\"}],\n \"name\": \"balanceOf\",\n \"outputs\": [{\"type\": \"uint256\"}],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [{\"type\": \"uint256\"}],\n \"name\": \"stake\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [{\"type\": \"uint256\"}],\n \"name\": \"withdraw\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getReward\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"exit\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }\n] as const;\n\nconst DUAL_REWARD_ABI = [\n ...SINGLE_REWARD_ABI,\n {\n \"inputs\": [{\"type\": \"address\"}],\n \"name\": \"earnedA\",\n \"outputs\": [{\"type\": \"uint256\"}],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [{\"type\": \"address\"}],\n \"name\": \"earnedB\",\n \"outputs\": [{\"type\": \"uint256\"}],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }\n] as const;\n\nconst ERC20_ABI = [\n {\n \"inputs\": [],\n \"name\": \"decimals\",\n \"outputs\": [{\"type\": \"uint8\"}],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }\n] as const;\n\nexport class StakingClient extends SubgraphClient {\n protected readonly publicClient: PublicClient;\n protected readonly walletClient: WalletClient;\n private readonly stakingPoolsEndpoint = 'https://9i52h964s3.execute-api.us-east-1.amazonaws.com/dev/staking-pools';\n private readonly withdrawClient: VaultWithdrawClient;\n\n constructor(client: PublicClient & WalletClient) {\n super(client);\n this.publicClient = client;\n this.walletClient = client;\n this.withdrawClient = new VaultWithdrawClient(client, client);\n }\n\n /**\n * Fetches and filters staking pools based on provided criteria\n * @param filter Optional filter object to filter the pools\n */\n public async getStakingPools(\n filter?: StakingPoolFilter\n ): Promise<SteerResponse<StakingPool[]>> {\n try {\n const response = await fetch(this.stakingPoolsEndpoint);\n if (!response.ok) {\n throw new Error('Failed to fetch staking pools');\n }\n\n const rawPools: RawStakingPool[] = (await response.json()).pools;\n\n // Convert and validate protocols in the response\n let pools: StakingPool[] = rawPools\n .filter((pool) => isValidStakingProtocol(pool.protocol))\n .map((pool) => ({\n ...pool,\n protocol: normalizeProtocol(pool.protocol)\n }));\n\n // Apply filters if provided\n if (filter) {\n pools = this.filterPools(pools, filter);\n }\n\n return {\n data: pools,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Gets only currently active staking pools\n * @param chainId Optional chain ID to filter pools\n * @param protocol Optional protocol name to filter pools\n */\n public async getLiveStakingPools(chainId?: number, protocol?: StakingProtocol): Promise<SteerResponse<StakingPool[]>> {\n return this.getStakingPools({\n chainId,\n protocol,\n isLive: true,\n includeExpired: false\n });\n }\n\n /**\n * Gets all dual rewards staking pools\n * @param chainId Optional chain ID to filter pools\n * @param protocol Optional protocol name to filter pools\n * @param isLive Optional flag to only get live pools\n */\n public async getDualRewardsStakingPools(\n chainId?: number,\n protocol?: StakingProtocol,\n isLive?: boolean\n ): Promise<SteerResponse<StakingPool[]>> {\n return this.getStakingPools({\n chainId,\n protocol,\n isLive,\n isDualRewards: true\n });\n }\n\n /**\n * Gets high yield staking pools based on minimum daily emissions\n * @param minDailyEmissionA Minimum daily emission for reward A\n * @param minDailyEmissionB Optional minimum daily emission for reward B\n * @param chainId Optional chain ID to filter pools\n */\n public async getHighYieldStakingPools(\n minDailyEmissionA: number,\n minDailyEmissionB?: number,\n chainId?: number\n ): Promise<SteerResponse<StakingPool[]>> {\n return this.getStakingPools({\n chainId,\n minDailyEmissionA,\n minDailyEmissionB,\n isLive: true\n });\n }\n\n /**\n * Internal helper to filter pools based on criteria\n */\n private filterPools(pools: StakingPool[], filter: StakingPoolFilter): StakingPool[] {\n return pools.filter(pool => {\n // Chain ID filter\n if (filter.chainId !== undefined && pool.chainId !== filter.chainId) {\n return false;\n }\n\n // Protocol filter\n if (filter.protocol !== undefined && pool.protocol !== filter.protocol) {\n return false;\n }\n\n // Dual rewards filter\n if (filter.isDualRewards !== undefined && pool.isDualFactory !== filter.isDualRewards) {\n return false;\n }\n\n // Daily emission filters\n if (filter.minDailyEmissionA !== undefined && pool.dailyEmissionRewardA < filter.minDailyEmissionA) {\n return false;\n }\n if (filter.minDailyEmissionB !== undefined && pool.dailyEmissionRewardB !== undefined && pool.dailyEmissionRewardB < filter.minDailyEmissionB) {\n return false;\n }\n\n // Live/Expired filter\n if (filter.isLive !== undefined) {\n const now = Math.floor(Date.now() / 1000);\n const periodFinish = parseInt(pool.periodFinish);\n const isPoolLive = periodFinish > now;\n\n if (filter.isLive && !isPoolLive) {\n return false;\n }\n\n if (!filter.includeExpired && !isPoolLive) {\n return false;\n }\n }\n\n return true;\n });\n }\n\n /**\n * Stakes tokens in a staking pool\n * @param params The staking parameters\n */\n public async stake(params: StakeParams): Promise<SteerResponse<Hash>> {\n try {\n const account = await this.walletClient.getAddresses();\n if (!account[0]) throw new Error('No account found');\n\n const { request } = await this.publicClient.simulateContract({\n address: params.stakingPool,\n abi: SINGLE_REWARD_ABI,\n functionName: 'stake',\n args: [params.amount],\n account: account[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Withdraws tokens from a staking pool\n * @param params The withdrawal parameters\n */\n public async withdraw(params: WithdrawParams): Promise<SteerResponse<Hash>> {\n try {\n const account = await this.walletClient.getAddresses();\n if (!account[0]) throw new Error('No account found');\n\n const { request } = await this.publicClient.simulateContract({\n address: params.stakingPool,\n abi: SINGLE_REWARD_ABI,\n functionName: 'withdraw',\n args: [params.amount],\n account: account[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Claims rewards from a staking pool\n * @param params The reward claim parameters\n */\n public async getReward(params: GetRewardParams): Promise<SteerResponse<Hash>> {\n try {\n const account = await this.walletClient.getAddresses();\n if (!account[0]) throw new Error('No account found');\n\n const { request } = await this.publicClient.simulateContract({\n address: params.stakingPool,\n abi: SINGLE_REWARD_ABI,\n functionName: 'getReward',\n args: [],\n account: account[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Gets the earned rewards for an account in a staking pool\n * @param stakingPool The staking pool address\n * @param account The account to check rewards for\n */\n public async earned(stakingPool: Address, account: Address): Promise<SteerResponse<{ rewardA: bigint; rewardB?: bigint }>> {\n try {\n // First try to read as single reward\n try {\n const reward = await this.publicClient.readContract({\n address: stakingPool,\n abi: SINGLE_REWARD_ABI,\n functionName: 'earned',\n args: [account],\n });\n\n return {\n data: { rewardA: reward },\n status: 200,\n success: true,\n };\n } catch {\n // If single reward fails, try dual rewards\n const [rewardA, rewardB] = await Promise.all([\n this.publicClient.readContract({\n address: stakingPool,\n abi: DUAL_REWARD_ABI,\n functionName: 'earnedA',\n args: [account],\n }),\n this.publicClient.readContract({\n address: stakingPool,\n abi: DUAL_REWARD_ABI,\n functionName: 'earnedB',\n args: [account],\n }),\n ]);\n\n return {\n data: { rewardA, rewardB },\n status: 200,\n success: true,\n };\n }\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Gets the total supply of staked tokens in a pool\n * @param stakingPool The staking pool address\n */\n public async totalSupply(stakingPool: Address): Promise<SteerResponse<bigint>> {\n try {\n const totalSupply = await this.publicClient.readContract({\n address: stakingPool,\n abi: SINGLE_REWARD_ABI,\n functionName: 'totalSupply',\n });\n\n return {\n data: totalSupply,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Gets the staked balance of an account in a pool\n * @param stakingPool The staking pool address\n * @param account The account to check balance for\n */\n public async balanceOf(stakingPool: Address, account: Address): Promise<SteerResponse<bigint>> {\n try {\n const balance = await this.publicClient.readContract({\n address: stakingPool,\n abi: SINGLE_REWARD_ABI,\n functionName: 'balanceOf',\n args: [account],\n });\n\n return {\n data: balance,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Calculates the APR for a staking pool\n * @param pool The staking pool data\n * @param rewardTokenPriceUSD The price of the reward token in USD\n * @param totalStakedUSD The total value staked in USD\n */\n public calculateAPR(\n pool: StakingPool,\n rewardTokenPriceUSD: number,\n totalStakedUSD: number\n ): number {\n if (totalStakedUSD === 0) {\n return 0;\n }\n\n const dailyRewardUSD = pool.dailyEmissionRewardA * rewardTokenPriceUSD;\n let apr = (dailyRewardUSD * 365 * 100) / totalStakedUSD;\n\n if (pool.isDualFactory && pool.dailyEmissionRewardB) {\n const dailyRewardBUSD = pool.dailyEmissionRewardB * rewardTokenPriceUSD;\n apr += (dailyRewardBUSD * 365 * 100) / totalStakedUSD;\n }\n\n return apr;\n }\n\n /**\n * Calculates the USD value of tokens in a staking pool\n * Handles both regular staking pools and Steer vaults\n * @param params Parameters for token value calculation\n */\n public async getSteerLpTokenValue(params: TokenValueParams): Promise<SteerResponse<TokenValueResponse>> {\n try {\n // First, get the staking pool details\n const pool = params.stakingPool;\n \n const chainId = await this.publicClient.getChainId();\n if (chainId !== pool.chainId) {\n throw new Error(`Chain ID mismatch| expected ${pool.chainId} but got ${chainId}`);\n }\n\n // Handle Steer vault staking pools\n if (pool.isSteerVault && pool.staking) {\n if (!pool.vaultTokens) {\n throw new Error('Vault tokens information not found');\n }\n\n // Get underlying token amounts from LP token\n const tokensResponse = await this.withdrawClient.getTokensFromLp(\n pool.staking.address,\n params.amount\n );\n\n if (!tokensResponse.success || !tokensResponse.data) {\n throw new Error('Failed to get token amounts from LP');\n }\n\n // Get decimals for both tokens\n const [token0Decimals, token1Decimals] = await Promise.all([\n this.publicClient.readContract({\n address: pool.vaultTokens.token0.address,\n abi: ERC20_ABI,\n functionName: 'decimals'\n }),\n this.publicClient.readContract({\n address: pool.vaultTokens.token1.address,\n abi: ERC20_ABI,\n functionName: 'decimals'\n })\n ]);\n\n // Use Decimal.js for precise calculations\n const token0Amount = new Decimal(tokensResponse.data.token0Val.toString())\n .div(new Decimal(10).pow(token0Decimals))\n .mul(params.token0UsdPrice);\n\n const token1Amount = new Decimal(tokensResponse.data.token1Val.toString())\n .div(new Decimal(10).pow(token1Decimals))\n .mul(params.token1UsdPrice);\n\n const totalValueUsd = token0Amount.plus(token1Amount).toNumber();\n const token0ValueUsd = token0Amount.toNumber();\n const token1ValueUsd = token1Amount.toNumber();\n\n return {\n data: {\n totalValueUsd,\n token0Value: token0ValueUsd,\n token1Value: token1ValueUsd\n },\n status: 200,\n success: true\n };\n }\n\n // Handle regular staking pools (non-Steer vault)\n const stakingDecimals = await this.publicClient.readContract({\n address: pool.staking.address,\n abi: ERC20_ABI,\n functionName: 'decimals'\n });\n\n const tokenValueUsd = new Decimal(params.amount.toString())\n .div(new Decimal(10).pow(stakingDecimals))\n .mul(params.token0UsdPrice)\n .toNumber();\n\n return {\n data: {\n totalValueUsd: tokenValueUsd,\n tokenValue: tokenValueUsd\n },\n status: 200,\n success: true\n };\n\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred'\n };\n }\n }\n\n /**\n * Gets the total staking amount in USD for a pool\n * @param stakingPool The staking pool\n * @param token0UsdPrice Price of token0 in USD\n * @param token1UsdPrice Price of token1 in USD (required for Steer vaults)\n */\n public async getTotalStakingAmountInUsd(\n stakingPool: StakingPool,\n token0UsdPrice: number,\n token1UsdPrice?: number\n ): Promise<SteerResponse<number>> {\n try {\n // Get total supply\n const totalSupplyResponse = await this.totalSupply(stakingPool.stakingPool as `0x${string}`);\n if (!totalSupplyResponse.success || !totalSupplyResponse.data) {\n throw new Error('Failed to get total supply');\n }\n\n // Get value using getSteerLpTokenValue\n const valueResponse = await this.getSteerLpTokenValue({\n stakingPool,\n amount: totalSupplyResponse.data,\n token0UsdPrice,\n token1UsdPrice: token1UsdPrice || token0UsdPrice\n });\n\n if (!valueResponse.success || !valueResponse.data) {\n throw new Error('Failed to calculate token value');\n }\n\n return {\n data: valueResponse.data.totalValueUsd,\n status: 200,\n success: true\n };\n\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred'\n };\n }\n }\n\n /**\n * Prepares the transaction data for staking tokens without executing it\n * @param params The staking parameters\n */\n public async prepareStakeTx(params: StakeParams): Promise<SteerResponse<{\n address: Address;\n abi: {\n type: string;\n inputs: {\n name: string;\n internalType: string;\n type: string;\n }[];\n name: string;\n outputs: never[];\n stateMutability: string;\n }[];\n functionName: string;\n args: readonly [bigint];\n }>> {\n try {\n\n return {\n data: {\n address: params.stakingPool,\n abi: [{\n type: 'function',\n inputs: [\n { name: 'amount', internalType: 'uint256', type: 'uint256' }\n ],\n name: 'stake',\n outputs: [],\n stateMutability: 'nonpayable'\n }],\n functionName: 'stake',\n args: [params.amount] as const\n },\n status: 200,\n success: true\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred'\n };\n }\n }\n\n /**\n * Prepares the transaction data for withdrawing tokens without executing it\n * @param params The withdrawal parameters\n */\n public async prepareWithdrawTx(params: WithdrawParams): Promise<SteerResponse<{\n address: Address;\n abi: {\n type: string;\n inputs: {\n name: string;\n internalType: string;\n type: string;\n }[];\n name: string;\n outputs: never[];\n stateMutability: string;\n }[];\n functionName: string;\n args: readonly [bigint];\n }>> {\n try {\n\n return {\n data: {\n address: params.stakingPool,\n abi: [{\n type: 'function',\n inputs: [\n { name: 'amount', internalType: 'uint256', type: 'uint256' }\n ],\n name: 'withdraw',\n outputs: [],\n stateMutability: 'nonpayable'\n }],\n functionName: 'withdraw',\n args: [params.amount] as const\n },\n status: 200,\n success: true\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred'\n };\n }\n }\n\n /**\n * Prepares the transaction data for claiming rewards without executing it\n * @param params The reward claim parameters\n */\n public async prepareGetRewardTx(params: GetRewardParams): Promise<SteerResponse<{\n address: Address;\n abi: {\n type: string;\n inputs: {\n name: string;\n internalType: string;\n type: string;\n }[];\n name: string;\n outputs: never[];\n stateMutability: string;\n }[];\n functionName: string;\n args: readonly [];\n }>> {\n try {\n\n return {\n data: {\n address: params.stakingPool,\n abi: [{\n type: 'function',\n inputs: [],\n name: 'getReward',\n outputs: [],\n stateMutability: 'nonpayable'\n }],\n functionName: 'getReward',\n args: [] as const\n },\n status: 200,\n success: true\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred'\n };\n }\n }\n} "]}
@@ -1,5 +1,8 @@
1
- import { getSubgraphUrlByChainId } from '../const/index.js';
2
- export class SubgraphClient {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SubgraphClient = void 0;
4
+ const index_js_1 = require("../const/index.js");
5
+ class SubgraphClient {
3
6
  constructor(client) {
4
7
  this.client = client;
5
8
  }
@@ -57,7 +60,7 @@ export class SubgraphClient {
57
60
  * @returns The subgraph URL or undefined if not found
58
61
  */
59
62
  getSubgraphUrl(chainId) {
60
- const subgraphUrl = getSubgraphUrlByChainId(chainId);
63
+ const subgraphUrl = (0, index_js_1.getSubgraphUrlByChainId)(chainId);
61
64
  if (!subgraphUrl) {
62
65
  throw new Error(`No subgraph URL found for chain ID ${chainId}`);
63
66
  }
@@ -69,7 +72,8 @@ export class SubgraphClient {
69
72
  * @returns boolean indicating if the chain is supported
70
73
  */
71
74
  supportsChain(chainId) {
72
- return getSubgraphUrlByChainId(chainId) !== undefined;
75
+ return (0, index_js_1.getSubgraphUrlByChainId)(chainId) !== undefined;
73
76
  }
74
77
  }
78
+ exports.SubgraphClient = SubgraphClient;
75
79
  //# sourceMappingURL=SubgraphClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SubgraphClient.js","sourceRoot":"","sources":["../../../src/base/SubgraphClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,OAAgB,cAAc;IAGlC,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACO,KAAK,CAAC,oBAAoB,CAClC,KAAa,EACb,SAAmC;QAEnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QAE5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE;gBACxC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,KAAK;oBACL,SAAS;iBACV,CAAC;aACH,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAErC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5C,CAAC;YAED,OAAO;gBACL,IAAI,EAAE,MAAM,CAAC,IAAS;gBACtB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,IAAI,EAAE,IAAS;gBACf,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB;aACzE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;OAIG;IACO,cAAc,CAAC,OAAe;QAEtC,MAAM,WAAW,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACI,aAAa,CAAC,OAAe;QAClC,OAAO,uBAAuB,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC;IACxD,CAAC;CACF","sourcesContent":["import type { Client } from 'viem';\nimport { SteerResponse } from '../types.js';\nimport { getSubgraphUrlByChainId } from '../const/index.js';\n\nexport abstract class SubgraphClient {\n protected readonly client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * Executes a GraphQL query against the subgraph\n * @param query The GraphQL query string\n * @param variables Optional variables for the query\n * @returns Promise with the query result\n */\n protected async executeSubgraphQuery<T>(\n query: string,\n variables?: Record<string, unknown>\n ): Promise<SteerResponse<T>> {\n const chainId = await this.client.chain?.id;\n \n if (!chainId) {\n throw new Error('No active chain found');\n }\n\n const subgraphUrl = this.getSubgraphUrl(chainId);\n if (!subgraphUrl) {\n throw new Error(`No subgraph URL found for chain ID ${chainId}`);\n }\n\n try {\n const response = await fetch(subgraphUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n query,\n variables,\n }),\n });\n\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n\n const result = await response.json();\n\n if (result.errors) {\n throw new Error(result.errors[0].message);\n }\n\n return {\n data: result.data as T,\n status: response.status,\n success: true,\n };\n } catch (error) {\n return {\n data: null as T,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Gets the subgraph URL for a given chain ID\n * @param chainId The chain ID to get the subgraph URL for\n * @returns The subgraph URL or undefined if not found\n */\n protected getSubgraphUrl(chainId: number): string | undefined {\n\n const subgraphUrl = getSubgraphUrlByChainId(chainId);\n if (!subgraphUrl) {\n throw new Error(`No subgraph URL found for chain ID ${chainId}`);\n }\n\n return subgraphUrl;\n }\n\n /**\n * Checks if a chain is supported by checking if it has a subgraph URL\n * @param chainId The chain ID to check\n * @returns boolean indicating if the chain is supported\n */\n public supportsChain(chainId: number): boolean {\n return getSubgraphUrlByChainId(chainId) !== undefined;\n }\n} "]}
1
+ {"version":3,"file":"SubgraphClient.js","sourceRoot":"","sources":["../../../src/base/SubgraphClient.ts"],"names":[],"mappings":";;;AAEA,gDAA4D;AAE5D,MAAsB,cAAc;IAGlC,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACO,KAAK,CAAC,oBAAoB,CAClC,KAAa,EACb,SAAmC;QAEnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QAE5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE;gBACxC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,KAAK;oBACL,SAAS;iBACV,CAAC;aACH,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAErC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5C,CAAC;YAED,OAAO;gBACL,IAAI,EAAE,MAAM,CAAC,IAAS;gBACtB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,IAAI,EAAE,IAAS;gBACf,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB;aACzE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;OAIG;IACO,cAAc,CAAC,OAAe;QAEtC,MAAM,WAAW,GAAG,IAAA,kCAAuB,EAAC,OAAO,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACI,aAAa,CAAC,OAAe;QAClC,OAAO,IAAA,kCAAuB,EAAC,OAAO,CAAC,KAAK,SAAS,CAAC;IACxD,CAAC;CACF;AAxFD,wCAwFC","sourcesContent":["import type { Client } from 'viem';\nimport { SteerResponse } from '../types.js';\nimport { getSubgraphUrlByChainId } from '../const/index.js';\n\nexport abstract class SubgraphClient {\n protected readonly client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * Executes a GraphQL query against the subgraph\n * @param query The GraphQL query string\n * @param variables Optional variables for the query\n * @returns Promise with the query result\n */\n protected async executeSubgraphQuery<T>(\n query: string,\n variables?: Record<string, unknown>\n ): Promise<SteerResponse<T>> {\n const chainId = await this.client.chain?.id;\n \n if (!chainId) {\n throw new Error('No active chain found');\n }\n\n const subgraphUrl = this.getSubgraphUrl(chainId);\n if (!subgraphUrl) {\n throw new Error(`No subgraph URL found for chain ID ${chainId}`);\n }\n\n try {\n const response = await fetch(subgraphUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n query,\n variables,\n }),\n });\n\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n\n const result = await response.json();\n\n if (result.errors) {\n throw new Error(result.errors[0].message);\n }\n\n return {\n data: result.data as T,\n status: response.status,\n success: true,\n };\n } catch (error) {\n return {\n data: null as T,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Gets the subgraph URL for a given chain ID\n * @param chainId The chain ID to get the subgraph URL for\n * @returns The subgraph URL or undefined if not found\n */\n protected getSubgraphUrl(chainId: number): string | undefined {\n\n const subgraphUrl = getSubgraphUrlByChainId(chainId);\n if (!subgraphUrl) {\n throw new Error(`No subgraph URL found for chain ID ${chainId}`);\n }\n\n return subgraphUrl;\n }\n\n /**\n * Checks if a chain is supported by checking if it has a subgraph URL\n * @param chainId The chain ID to check\n * @returns boolean indicating if the chain is supported\n */\n public supportsChain(chainId: number): boolean {\n return getSubgraphUrlByChainId(chainId) !== undefined;\n }\n} "]}
@@ -1,18 +1,35 @@
1
- import { createClient } from '@steerprotocol/api-sdk';
2
- import { chainIdToName, getBeaconNameByProtocol, getProtocolTypeByBeacon } from '../const/index.js';
3
- import { getAmmConfig } from '../const/amm/configs/ammConfig.js';
4
- import { getProtocolsForChainId } from '../const/amm/utils/protocol.js';
5
- import { ChainId, MultiPositionManagers, Protocol } from '../const/chain.js';
6
- import { steerSubgraphConfig } from '../const/subgraph.js';
7
- import { SubgraphVaultClient } from '../utils/SubgraphVaultClient.js';
8
- import { getApiUrl } from '../const/api.js';
9
- import { abis } from '../const/deployments/abis.js';
10
- import { SubgraphClient } from './SubgraphClient.js';
11
- import { VaultDepositClient } from './vault/deposit/index.js';
12
- import { SingleAssetDepositClient } from './vault/single-asset/index.js';
13
- import { VaultWithdrawClient } from './vault/withdraw/index.js';
14
- export * from "./vault/single-asset/index.js";
15
- const VAULT_ABI = abis.QuickSwapUniv3MultiPositionLiquidityManager;
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
+ exports.VaultClient = void 0;
18
+ const api_sdk_1 = require("@steerprotocol/api-sdk");
19
+ const index_js_1 = require("../const/index.js");
20
+ const ammConfig_js_1 = require("../const/amm/configs/ammConfig.js");
21
+ const protocol_js_1 = require("../const/amm/utils/protocol.js");
22
+ const chain_js_1 = require("../const/chain.js");
23
+ const subgraph_js_1 = require("../const/subgraph.js");
24
+ const SubgraphVaultClient_js_1 = require("../utils/SubgraphVaultClient.js");
25
+ const api_js_1 = require("../const/api.js");
26
+ const abis_js_1 = require("../const/deployments/abis.js");
27
+ const SubgraphClient_js_1 = require("./SubgraphClient.js");
28
+ const index_js_2 = require("./vault/deposit/index.js");
29
+ const index_js_3 = require("./vault/single-asset/index.js");
30
+ const index_js_4 = require("./vault/withdraw/index.js");
31
+ __exportStar(require("./vault/single-asset/index.js"), exports);
32
+ const VAULT_ABI = abis_js_1.abis.QuickSwapUniv3MultiPositionLiquidityManager;
16
33
  // Custom ABI for reward functions
17
34
  const REWARD_FUNCTIONS_ABI = [
18
35
  {
@@ -124,7 +141,7 @@ const REWARD_FUNCTIONS_ABI = [
124
141
  *
125
142
  * @group Client
126
143
  */
127
- export class VaultClient extends SubgraphClient {
144
+ class VaultClient extends SubgraphClient_js_1.SubgraphClient {
128
145
  /**
129
146
  * Creates a new instance of VaultClient
130
147
  * @param publicClient - The public client for reading from the blockchain
@@ -136,14 +153,14 @@ export class VaultClient extends SubgraphClient {
136
153
  constructor(publicClient, walletClient, environment, version = 'v1', subgraphStudioKey) {
137
154
  const combinedClient = publicClient;
138
155
  super(combinedClient);
139
- const apiUrl = getApiUrl(environment, version);
140
- this.apiClient = createClient(apiUrl);
156
+ const apiUrl = (0, api_js_1.getApiUrl)(environment, version);
157
+ this.apiClient = (0, api_sdk_1.createClient)(apiUrl);
141
158
  this.publicClient = publicClient;
142
159
  this.walletClient = walletClient;
143
- this.depositClient = new VaultDepositClient(publicClient, walletClient);
144
- this.withdrawClient = new VaultWithdrawClient(publicClient, walletClient);
145
- this.singleAssetDepositClient = new SingleAssetDepositClient(publicClient, walletClient);
146
- this.subgraphVaultClient = new SubgraphVaultClient();
160
+ this.depositClient = new index_js_2.VaultDepositClient(publicClient, walletClient);
161
+ this.withdrawClient = new index_js_4.VaultWithdrawClient(publicClient, walletClient);
162
+ this.singleAssetDepositClient = new index_js_3.SingleAssetDepositClient(publicClient, walletClient);
163
+ this.subgraphVaultClient = new SubgraphVaultClient_js_1.SubgraphVaultClient();
147
164
  this.subgraphStudioKey = subgraphStudioKey || '';
148
165
  }
149
166
  normalizeProtocolValue(value) {
@@ -154,7 +171,7 @@ export class VaultClient extends SubgraphClient {
154
171
  return null;
155
172
  }
156
173
  const normalizedProtocol = this.normalizeProtocolValue(protocol);
157
- const matchedProtocol = Object.values(Protocol).find(protocolValue => this.normalizeProtocolValue(protocolValue) === normalizedProtocol);
174
+ const matchedProtocol = Object.values(chain_js_1.Protocol).find(protocolValue => this.normalizeProtocolValue(protocolValue) === normalizedProtocol);
158
175
  return matchedProtocol || null;
159
176
  }
160
177
  getProtocolBeaconNames(protocol) {
@@ -162,7 +179,7 @@ export class VaultClient extends SubgraphClient {
162
179
  if (!resolvedProtocol) {
163
180
  return [];
164
181
  }
165
- const protocolConfig = getAmmConfig(this.subgraphStudioKey)[resolvedProtocol];
182
+ const protocolConfig = (0, ammConfig_js_1.getAmmConfig)(this.subgraphStudioKey)[resolvedProtocol];
166
183
  const beaconNames = [];
167
184
  if (protocolConfig?.beaconContract) {
168
185
  beaconNames.push(protocolConfig.beaconContract);
@@ -170,10 +187,10 @@ export class VaultClient extends SubgraphClient {
170
187
  if (protocolConfig?.beaconContractSushiManaged) {
171
188
  beaconNames.push(protocolConfig.beaconContractSushiManaged);
172
189
  }
173
- if (resolvedProtocol === Protocol.Blackhole) {
174
- beaconNames.push(MultiPositionManagers.MultiPositionBlackholeOld);
190
+ if (resolvedProtocol === chain_js_1.Protocol.Blackhole) {
191
+ beaconNames.push(chain_js_1.MultiPositionManagers.MultiPositionBlackholeOld);
175
192
  }
176
- const beaconAlias = getBeaconNameByProtocol(resolvedProtocol);
193
+ const beaconAlias = (0, index_js_1.getBeaconNameByProtocol)(resolvedProtocol);
177
194
  if (beaconAlias) {
178
195
  beaconNames.push(beaconAlias);
179
196
  }
@@ -184,7 +201,7 @@ export class VaultClient extends SubgraphClient {
184
201
  if (!resolvedProtocol) {
185
202
  return null;
186
203
  }
187
- const protocolConfig = getAmmConfig(this.subgraphStudioKey)[resolvedProtocol];
204
+ const protocolConfig = (0, ammConfig_js_1.getAmmConfig)(this.subgraphStudioKey)[resolvedProtocol];
188
205
  return protocolConfig?.beaconContract || null;
189
206
  }
190
207
  buildApiVaultFilter(filter) {
@@ -204,7 +221,7 @@ export class VaultClient extends SubgraphClient {
204
221
  vaultMatchesProtocolFilter(vault, protocolFilter, resolvedProtocol) {
205
222
  const normalizedFilter = this.normalizeProtocolValue(protocolFilter);
206
223
  const normalizedBeaconName = this.normalizeProtocolValue(vault.beaconName);
207
- const resolvedVaultProtocol = getProtocolTypeByBeacon(vault.beaconName);
224
+ const resolvedVaultProtocol = (0, index_js_1.getProtocolTypeByBeacon)(vault.beaconName);
208
225
  const directCandidates = [vault.protocol, vault.protocolBaseType, resolvedVaultProtocol || ''];
209
226
  const hasDirectMatch = directCandidates.some(candidate => {
210
227
  if (!candidate) {
@@ -216,7 +233,7 @@ export class VaultClient extends SubgraphClient {
216
233
  return true;
217
234
  }
218
235
  const expectedBeacon = resolvedProtocol
219
- ? getBeaconNameByProtocol(resolvedProtocol)
236
+ ? (0, index_js_1.getBeaconNameByProtocol)(resolvedProtocol)
220
237
  : protocolFilter;
221
238
  const normalizedExpectedBeacon = this.normalizeProtocolValue(expectedBeacon);
222
239
  return normalizedExpectedBeacon.length > 0 && normalizedBeaconName.includes(normalizedExpectedBeacon);
@@ -273,7 +290,7 @@ export class VaultClient extends SubgraphClient {
273
290
  // Fetch ALL vaults from both sources in parallel (no pagination at source level)
274
291
  const [apiResult, subgraphResult] = await Promise.allSettled([
275
292
  this.getAllVaultsFromApi(apiFilter),
276
- filter?.chainId !== ChainId.Avalanche ? this.getAllVaultsFromSubgraph(filter) : Promise.reject(new Error('Avalanche not supported'))
293
+ filter?.chainId !== chain_js_1.ChainId.Avalanche ? this.getAllVaultsFromSubgraph(filter) : Promise.reject(new Error('Avalanche not supported'))
277
294
  ]);
278
295
  // Extract successful results
279
296
  const apiVaults = apiResult.status === 'fulfilled' && apiResult.value.success && apiResult.value.data
@@ -528,12 +545,12 @@ export class VaultClient extends SubgraphClient {
528
545
  throw new Error('ChainId is required for subgraph');
529
546
  }
530
547
  // Get chain enum from chainId
531
- const chain = chainIdToName(chainId);
548
+ const chain = (0, index_js_1.chainIdToName)(chainId);
532
549
  if (!chain) {
533
550
  throw new Error(`Unsupported chainId: ${chainId}`);
534
551
  }
535
552
  // Get subgraph URL for this chain
536
- const subgraphUrl = steerSubgraphConfig[chain];
553
+ const subgraphUrl = subgraph_js_1.steerSubgraphConfig[chain];
537
554
  if (!subgraphUrl) {
538
555
  throw new Error(`No subgraph configured for chain: ${chain}`);
539
556
  }
@@ -551,7 +568,7 @@ export class VaultClient extends SubgraphClient {
551
568
  beaconNames: uniqueBeaconNames
552
569
  });
553
570
  // Get all supported protocols for this chain
554
- const supportedProtocols = getProtocolsForChainId(chainId, this.subgraphStudioKey);
571
+ const supportedProtocols = (0, protocol_js_1.getProtocolsForChainId)(chainId, this.subgraphStudioKey);
555
572
  // Fetch APR data for all protocols in parallel
556
573
  const aprPromises = supportedProtocols.map(protocol => this.getAprs({ chainId, protocol }).catch(error => {
557
574
  console.warn(`Failed to fetch APR for protocol ${protocol}:`, error);
@@ -665,12 +682,12 @@ export class VaultClient extends SubgraphClient {
665
682
  throw new Error('ChainId is required for subgraph fallback');
666
683
  }
667
684
  // Get chain enum from chainId
668
- const chain = chainIdToName(chainId);
685
+ const chain = (0, index_js_1.chainIdToName)(chainId);
669
686
  if (!chain) {
670
687
  throw new Error(`Unsupported chainId: ${chainId}`);
671
688
  }
672
689
  // Get subgraph URL for this chain
673
- const subgraphUrl = steerSubgraphConfig[chain];
690
+ const subgraphUrl = subgraph_js_1.steerSubgraphConfig[chain];
674
691
  if (!subgraphUrl) {
675
692
  throw new Error(`No subgraph configured for chain: ${chain}`);
676
693
  }
@@ -688,7 +705,7 @@ export class VaultClient extends SubgraphClient {
688
705
  beaconNames: uniqueBeaconNames
689
706
  });
690
707
  // Get all supported protocols for this chain
691
- const supportedProtocols = getProtocolsForChainId(chainId, this.subgraphStudioKey);
708
+ const supportedProtocols = (0, protocol_js_1.getProtocolsForChainId)(chainId, this.subgraphStudioKey);
692
709
  // Fetch APR data for all protocols in parallel
693
710
  const aprPromises = supportedProtocols.map(protocol => this.getAprs({ chainId, protocol }).catch(error => {
694
711
  console.warn(`Failed to fetch APR for protocol ${protocol}:`, error);
@@ -1626,4 +1643,5 @@ export class VaultClient extends SubgraphClient {
1626
1643
  }
1627
1644
  }
1628
1645
  }
1646
+ exports.VaultClient = VaultClient;
1629
1647
  //# sourceMappingURL=VaultClient.js.map