@steerprotocol/sdk 1.26.0 → 1.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (882) hide show
  1. package/dist/cjs/base/FeeManagerClient.js +81 -0
  2. package/dist/cjs/base/FeeManagerClient.js.map +1 -0
  3. package/dist/cjs/base/PoolClient.js +1 -0
  4. package/dist/cjs/base/PoolClient.js.map +1 -0
  5. package/dist/cjs/base/SmartRewardClient.js +1 -0
  6. package/dist/cjs/base/SmartRewardClient.js.map +1 -0
  7. package/dist/cjs/base/SmartRewards.js +1 -0
  8. package/dist/cjs/base/SmartRewards.js.map +1 -0
  9. package/dist/cjs/base/StakingClient.js +1 -0
  10. package/dist/cjs/base/StakingClient.js.map +1 -0
  11. package/dist/cjs/base/SubgraphClient.js +1 -0
  12. package/dist/cjs/base/SubgraphClient.js.map +1 -0
  13. package/dist/cjs/base/VaultClient.js +1 -0
  14. package/dist/cjs/base/VaultClient.js.map +1 -0
  15. package/dist/cjs/base/vault/deposit/index.js +1 -0
  16. package/dist/cjs/base/vault/deposit/index.js.map +1 -0
  17. package/dist/cjs/base/vault/deposit/types.js +1 -0
  18. package/dist/cjs/base/vault/deposit/types.js.map +1 -0
  19. package/dist/cjs/base/vault/single-asset/calculateLimitPrice.js +1 -0
  20. package/dist/cjs/base/vault/single-asset/calculateLimitPrice.js.map +1 -0
  21. package/dist/cjs/base/vault/single-asset/calculateSwapAmount.js +1 -0
  22. package/dist/cjs/base/vault/single-asset/calculateSwapAmount.js.map +1 -0
  23. package/dist/cjs/base/vault/single-asset/estimateLpTokens.js +1 -0
  24. package/dist/cjs/base/vault/single-asset/estimateLpTokens.js.map +1 -0
  25. package/dist/cjs/base/vault/single-asset/index.js +1 -0
  26. package/dist/cjs/base/vault/single-asset/index.js.map +1 -0
  27. package/dist/cjs/base/vault/single-asset/simulateSwap.js +1 -0
  28. package/dist/cjs/base/vault/single-asset/simulateSwap.js.map +1 -0
  29. package/dist/cjs/base/vault/single-asset/singleAssetDeposit.js +1 -0
  30. package/dist/cjs/base/vault/single-asset/singleAssetDeposit.js.map +1 -0
  31. package/dist/cjs/base/vault/single-asset/types.js +1 -0
  32. package/dist/cjs/base/vault/single-asset/types.js.map +1 -0
  33. package/dist/cjs/base/vault/utils.js +1 -0
  34. package/dist/cjs/base/vault/utils.js.map +1 -0
  35. package/dist/cjs/base/vault/withdraw/index.js +1 -0
  36. package/dist/cjs/base/vault/withdraw/index.js.map +1 -0
  37. package/dist/cjs/base/vault/withdraw/types.js +1 -0
  38. package/dist/cjs/base/vault/withdraw/types.js.map +1 -0
  39. package/dist/cjs/client.js +1 -0
  40. package/dist/cjs/client.js.map +1 -0
  41. package/dist/cjs/const/abis/UniswapPool.js +1 -0
  42. package/dist/cjs/const/abis/UniswapPool.js.map +1 -0
  43. package/dist/cjs/const/abis/erc1155.js +1 -0
  44. package/dist/cjs/const/abis/erc1155.js.map +1 -0
  45. package/dist/cjs/const/abis/erc20.js +1 -0
  46. package/dist/cjs/const/abis/erc20.js.map +1 -0
  47. package/dist/cjs/const/abis/erc721.js +1 -0
  48. package/dist/cjs/const/abis/erc721.js.map +1 -0
  49. package/dist/cjs/const/abis/feeManager.js +1 -0
  50. package/dist/cjs/const/abis/feeManager.js.map +1 -0
  51. package/dist/cjs/const/abis/index.js +2 -0
  52. package/dist/cjs/const/abis/index.js.map +1 -0
  53. package/dist/cjs/const/abis/quoter.js +1 -0
  54. package/dist/cjs/const/abis/quoter.js.map +1 -0
  55. package/dist/cjs/const/abis/singleTokenDeposit.js +1 -0
  56. package/dist/cjs/const/abis/singleTokenDeposit.js.map +1 -0
  57. package/dist/cjs/const/abis/vaultFees.js +44 -0
  58. package/dist/cjs/const/abis/vaultFees.js.map +1 -0
  59. package/dist/cjs/const/amm/configs/ammConfig.js +1 -0
  60. package/dist/cjs/const/amm/configs/ammConfig.js.map +1 -0
  61. package/dist/cjs/const/amm/configs/protocols/aerodrome-v2.js +1 -0
  62. package/dist/cjs/const/amm/configs/protocols/aerodrome-v2.js.map +1 -0
  63. package/dist/cjs/const/amm/configs/protocols/aerodrome.js +1 -0
  64. package/dist/cjs/const/amm/configs/protocols/aerodrome.js.map +1 -0
  65. package/dist/cjs/const/amm/configs/protocols/arthswap.js +1 -0
  66. package/dist/cjs/const/amm/configs/protocols/arthswap.js.map +1 -0
  67. package/dist/cjs/const/amm/configs/protocols/baseswap.js +1 -0
  68. package/dist/cjs/const/amm/configs/protocols/baseswap.js.map +1 -0
  69. package/dist/cjs/const/amm/configs/protocols/basex.js +1 -0
  70. package/dist/cjs/const/amm/configs/protocols/basex.js.map +1 -0
  71. package/dist/cjs/const/amm/configs/protocols/beam.js +1 -0
  72. package/dist/cjs/const/amm/configs/protocols/beam.js.map +1 -0
  73. package/dist/cjs/const/amm/configs/protocols/beamswap.js +1 -0
  74. package/dist/cjs/const/amm/configs/protocols/beamswap.js.map +1 -0
  75. package/dist/cjs/const/amm/configs/protocols/blackhole.js +1 -0
  76. package/dist/cjs/const/amm/configs/protocols/blackhole.js.map +1 -0
  77. package/dist/cjs/const/amm/configs/protocols/camelot.js +1 -0
  78. package/dist/cjs/const/amm/configs/protocols/camelot.js.map +1 -0
  79. package/dist/cjs/const/amm/configs/protocols/crust.js +1 -0
  80. package/dist/cjs/const/amm/configs/protocols/crust.js.map +1 -0
  81. package/dist/cjs/const/amm/configs/protocols/cypher.js +1 -0
  82. package/dist/cjs/const/amm/configs/protocols/cypher.js.map +1 -0
  83. package/dist/cjs/const/amm/configs/protocols/dodo.js +1 -0
  84. package/dist/cjs/const/amm/configs/protocols/dodo.js.map +1 -0
  85. package/dist/cjs/const/amm/configs/protocols/dragonswap.js +1 -0
  86. package/dist/cjs/const/amm/configs/protocols/dragonswap.js.map +1 -0
  87. package/dist/cjs/const/amm/configs/protocols/eddy.js +1 -0
  88. package/dist/cjs/const/amm/configs/protocols/eddy.js.map +1 -0
  89. package/dist/cjs/const/amm/configs/protocols/equilibre.js +1 -0
  90. package/dist/cjs/const/amm/configs/protocols/equilibre.js.map +1 -0
  91. package/dist/cjs/const/amm/configs/protocols/fenix.js +1 -0
  92. package/dist/cjs/const/amm/configs/protocols/fenix.js.map +1 -0
  93. package/dist/cjs/const/amm/configs/protocols/forge.js +1 -0
  94. package/dist/cjs/const/amm/configs/protocols/forge.js.map +1 -0
  95. package/dist/cjs/const/amm/configs/protocols/fusionx.js +1 -0
  96. package/dist/cjs/const/amm/configs/protocols/fusionx.js.map +1 -0
  97. package/dist/cjs/const/amm/configs/protocols/glyph.js +1 -0
  98. package/dist/cjs/const/amm/configs/protocols/glyph.js.map +1 -0
  99. package/dist/cjs/const/amm/configs/protocols/henjin.js +1 -0
  100. package/dist/cjs/const/amm/configs/protocols/henjin.js.map +1 -0
  101. package/dist/cjs/const/amm/configs/protocols/hercules.js +1 -0
  102. package/dist/cjs/const/amm/configs/protocols/hercules.js.map +1 -0
  103. package/dist/cjs/const/amm/configs/protocols/horiza.js +1 -0
  104. package/dist/cjs/const/amm/configs/protocols/horiza.js.map +1 -0
  105. package/dist/cjs/const/amm/configs/protocols/index.js +1 -0
  106. package/dist/cjs/const/amm/configs/protocols/index.js.map +1 -0
  107. package/dist/cjs/const/amm/configs/protocols/katana.js +1 -0
  108. package/dist/cjs/const/amm/configs/protocols/katana.js.map +1 -0
  109. package/dist/cjs/const/amm/configs/protocols/katanaIntegral.js +1 -0
  110. package/dist/cjs/const/amm/configs/protocols/katanaIntegral.js.map +1 -0
  111. package/dist/cjs/const/amm/configs/protocols/kim.js +1 -0
  112. package/dist/cjs/const/amm/configs/protocols/kim.js.map +1 -0
  113. package/dist/cjs/const/amm/configs/protocols/kinetix.js +1 -0
  114. package/dist/cjs/const/amm/configs/protocols/kinetix.js.map +1 -0
  115. package/dist/cjs/const/amm/configs/protocols/kodiak.js +1 -0
  116. package/dist/cjs/const/amm/configs/protocols/kodiak.js.map +1 -0
  117. package/dist/cjs/const/amm/configs/protocols/kyo.js +1 -0
  118. package/dist/cjs/const/amm/configs/protocols/kyo.js.map +1 -0
  119. package/dist/cjs/const/amm/configs/protocols/linehub.js +1 -0
  120. package/dist/cjs/const/amm/configs/protocols/linehub.js.map +1 -0
  121. package/dist/cjs/const/amm/configs/protocols/lynex.js +1 -0
  122. package/dist/cjs/const/amm/configs/protocols/lynex.js.map +1 -0
  123. package/dist/cjs/const/amm/configs/protocols/machinex.js +1 -0
  124. package/dist/cjs/const/amm/configs/protocols/machinex.js.map +1 -0
  125. package/dist/cjs/const/amm/configs/protocols/maia.js +1 -0
  126. package/dist/cjs/const/amm/configs/protocols/maia.js.map +1 -0
  127. package/dist/cjs/const/amm/configs/protocols/metavault.js +1 -0
  128. package/dist/cjs/const/amm/configs/protocols/metavault.js.map +1 -0
  129. package/dist/cjs/const/amm/configs/protocols/nest.js +1 -0
  130. package/dist/cjs/const/amm/configs/protocols/nest.js.map +1 -0
  131. package/dist/cjs/const/amm/configs/protocols/novaswap.js +1 -0
  132. package/dist/cjs/const/amm/configs/protocols/novaswap.js.map +1 -0
  133. package/dist/cjs/const/amm/configs/protocols/ocelex.js +1 -0
  134. package/dist/cjs/const/amm/configs/protocols/ocelex.js.map +1 -0
  135. package/dist/cjs/const/amm/configs/protocols/pancakeswap.js +1 -0
  136. package/dist/cjs/const/amm/configs/protocols/pancakeswap.js.map +1 -0
  137. package/dist/cjs/const/amm/configs/protocols/poolshark.js +1 -0
  138. package/dist/cjs/const/amm/configs/protocols/poolshark.js.map +1 -0
  139. package/dist/cjs/const/amm/configs/protocols/quickswap-algebra.js +1 -0
  140. package/dist/cjs/const/amm/configs/protocols/quickswap-algebra.js.map +1 -0
  141. package/dist/cjs/const/amm/configs/protocols/quickswap-integral.js +1 -0
  142. package/dist/cjs/const/amm/configs/protocols/quickswap-integral.js.map +1 -0
  143. package/dist/cjs/const/amm/configs/protocols/quickswap-univ3.js +1 -0
  144. package/dist/cjs/const/amm/configs/protocols/quickswap-univ3.js.map +1 -0
  145. package/dist/cjs/const/amm/configs/protocols/quickswap.js +1 -0
  146. package/dist/cjs/const/amm/configs/protocols/quickswap.js.map +1 -0
  147. package/dist/cjs/const/amm/configs/protocols/retro.js +1 -0
  148. package/dist/cjs/const/amm/configs/protocols/retro.js.map +1 -0
  149. package/dist/cjs/const/amm/configs/protocols/sailor.js +1 -0
  150. package/dist/cjs/const/amm/configs/protocols/sailor.js.map +1 -0
  151. package/dist/cjs/const/amm/configs/protocols/shadow.js +1 -0
  152. package/dist/cjs/const/amm/configs/protocols/shadow.js.map +1 -0
  153. package/dist/cjs/const/amm/configs/protocols/silverswap.js +1 -0
  154. package/dist/cjs/const/amm/configs/protocols/silverswap.js.map +1 -0
  155. package/dist/cjs/const/amm/configs/protocols/spark.js +1 -0
  156. package/dist/cjs/const/amm/configs/protocols/spark.js.map +1 -0
  157. package/dist/cjs/const/amm/configs/protocols/spark32.js +1 -0
  158. package/dist/cjs/const/amm/configs/protocols/spark32.js.map +1 -0
  159. package/dist/cjs/const/amm/configs/protocols/spookyswap.js +1 -0
  160. package/dist/cjs/const/amm/configs/protocols/spookyswap.js.map +1 -0
  161. package/dist/cjs/const/amm/configs/protocols/stellaswap.js +1 -0
  162. package/dist/cjs/const/amm/configs/protocols/stellaswap.js.map +1 -0
  163. package/dist/cjs/const/amm/configs/protocols/supswap.js +1 -0
  164. package/dist/cjs/const/amm/configs/protocols/supswap.js.map +1 -0
  165. package/dist/cjs/const/amm/configs/protocols/sushi.js +1 -0
  166. package/dist/cjs/const/amm/configs/protocols/sushi.js.map +1 -0
  167. package/dist/cjs/const/amm/configs/protocols/swapmode.js +1 -0
  168. package/dist/cjs/const/amm/configs/protocols/swapmode.js.map +1 -0
  169. package/dist/cjs/const/amm/configs/protocols/swapsicle.js +1 -0
  170. package/dist/cjs/const/amm/configs/protocols/swapsicle.js.map +1 -0
  171. package/dist/cjs/const/amm/configs/protocols/thena.js +1 -0
  172. package/dist/cjs/const/amm/configs/protocols/thena.js.map +1 -0
  173. package/dist/cjs/const/amm/configs/protocols/thick.js +1 -0
  174. package/dist/cjs/const/amm/configs/protocols/thick.js.map +1 -0
  175. package/dist/cjs/const/amm/configs/protocols/thickv2.js +1 -0
  176. package/dist/cjs/const/amm/configs/protocols/thickv2.js.map +1 -0
  177. package/dist/cjs/const/amm/configs/protocols/thruster.js +1 -0
  178. package/dist/cjs/const/amm/configs/protocols/thruster.js.map +1 -0
  179. package/dist/cjs/const/amm/configs/protocols/uniswap.js +1 -0
  180. package/dist/cjs/const/amm/configs/protocols/uniswap.js.map +1 -0
  181. package/dist/cjs/const/amm/configs/protocols/wasabee.js +1 -0
  182. package/dist/cjs/const/amm/configs/protocols/wasabee.js.map +1 -0
  183. package/dist/cjs/const/amm/index.js +1 -0
  184. package/dist/cjs/const/amm/index.js.map +1 -0
  185. package/dist/cjs/const/amm/utils/beacon.js +1 -0
  186. package/dist/cjs/const/amm/utils/beacon.js.map +1 -0
  187. package/dist/cjs/const/amm/utils/contracts.js +1 -0
  188. package/dist/cjs/const/amm/utils/contracts.js.map +1 -0
  189. package/dist/cjs/const/amm/utils/index.js +1 -0
  190. package/dist/cjs/const/amm/utils/index.js.map +1 -0
  191. package/dist/cjs/const/amm/utils/protocol.js +1 -0
  192. package/dist/cjs/const/amm/utils/protocol.js.map +1 -0
  193. package/dist/cjs/const/api.js +1 -0
  194. package/dist/cjs/const/api.js.map +1 -0
  195. package/dist/cjs/const/capabilities.js +1 -0
  196. package/dist/cjs/const/capabilities.js.map +1 -0
  197. package/dist/cjs/const/chain.js +1 -0
  198. package/dist/cjs/const/chain.js.map +1 -0
  199. package/dist/cjs/const/deployments/abis.js +1 -0
  200. package/dist/cjs/const/deployments/abis.js.map +1 -0
  201. package/dist/cjs/const/deployments/apechain.js +1 -0
  202. package/dist/cjs/const/deployments/apechain.js.map +1 -0
  203. package/dist/cjs/const/deployments/arbitrum.js +1 -0
  204. package/dist/cjs/const/deployments/arbitrum.js.map +1 -0
  205. package/dist/cjs/const/deployments/arbitrumgoerli.js +1 -0
  206. package/dist/cjs/const/deployments/arbitrumgoerli.js.map +1 -0
  207. package/dist/cjs/const/deployments/astar.js +1 -0
  208. package/dist/cjs/const/deployments/astar.js.map +1 -0
  209. package/dist/cjs/const/deployments/astarzkevm.js +1 -0
  210. package/dist/cjs/const/deployments/astarzkevm.js.map +1 -0
  211. package/dist/cjs/const/deployments/avalanche.js +1 -0
  212. package/dist/cjs/const/deployments/avalanche.js.map +1 -0
  213. package/dist/cjs/const/deployments/bartiotest.js +1 -0
  214. package/dist/cjs/const/deployments/bartiotest.js.map +1 -0
  215. package/dist/cjs/const/deployments/base.js +1 -0
  216. package/dist/cjs/const/deployments/base.js.map +1 -0
  217. package/dist/cjs/const/deployments/bera.js +1 -0
  218. package/dist/cjs/const/deployments/bera.js.map +1 -0
  219. package/dist/cjs/const/deployments/berachainbartio.js +1 -0
  220. package/dist/cjs/const/deployments/berachainbartio.js.map +1 -0
  221. package/dist/cjs/const/deployments/blast.js +1 -0
  222. package/dist/cjs/const/deployments/blast.js.map +1 -0
  223. package/dist/cjs/const/deployments/bsc.js +1 -0
  224. package/dist/cjs/const/deployments/bsc.js.map +1 -0
  225. package/dist/cjs/const/deployments/celo.js +1 -0
  226. package/dist/cjs/const/deployments/celo.js.map +1 -0
  227. package/dist/cjs/const/deployments/core.js +1 -0
  228. package/dist/cjs/const/deployments/core.js.map +1 -0
  229. package/dist/cjs/const/deployments/eth.js +1 -0
  230. package/dist/cjs/const/deployments/eth.js.map +1 -0
  231. package/dist/cjs/const/deployments/evmos.js +1 -0
  232. package/dist/cjs/const/deployments/evmos.js.map +1 -0
  233. package/dist/cjs/const/deployments/fantom.js +1 -0
  234. package/dist/cjs/const/deployments/fantom.js.map +1 -0
  235. package/dist/cjs/const/deployments/filecoin.js +1 -0
  236. package/dist/cjs/const/deployments/filecoin.js.map +1 -0
  237. package/dist/cjs/const/deployments/flare.js +1 -0
  238. package/dist/cjs/const/deployments/flare.js.map +1 -0
  239. package/dist/cjs/const/deployments/goerli.js +1 -0
  240. package/dist/cjs/const/deployments/goerli.js.map +1 -0
  241. package/dist/cjs/const/deployments/hemi.js +1 -0
  242. package/dist/cjs/const/deployments/hemi.js.map +1 -0
  243. package/dist/cjs/const/deployments/hyperevm.js +1 -0
  244. package/dist/cjs/const/deployments/hyperevm.js.map +1 -0
  245. package/dist/cjs/const/deployments/index.js +1 -0
  246. package/dist/cjs/const/deployments/index.js.map +1 -0
  247. package/dist/cjs/const/deployments/katana.js +1 -0
  248. package/dist/cjs/const/deployments/katana.js.map +1 -0
  249. package/dist/cjs/const/deployments/kava.js +1 -0
  250. package/dist/cjs/const/deployments/kava.js.map +1 -0
  251. package/dist/cjs/const/deployments/linea.js +1 -0
  252. package/dist/cjs/const/deployments/linea.js.map +1 -0
  253. package/dist/cjs/const/deployments/localhost.js +1 -0
  254. package/dist/cjs/const/deployments/localhost.js.map +1 -0
  255. package/dist/cjs/const/deployments/manta.js +1 -0
  256. package/dist/cjs/const/deployments/manta.js.map +1 -0
  257. package/dist/cjs/const/deployments/mantle.js +1 -0
  258. package/dist/cjs/const/deployments/mantle.js.map +1 -0
  259. package/dist/cjs/const/deployments/metis.js +1 -0
  260. package/dist/cjs/const/deployments/metis.js.map +1 -0
  261. package/dist/cjs/const/deployments/mode.js +1 -0
  262. package/dist/cjs/const/deployments/mode.js.map +1 -0
  263. package/dist/cjs/const/deployments/moonbeam.js +1 -0
  264. package/dist/cjs/const/deployments/moonbeam.js.map +1 -0
  265. package/dist/cjs/const/deployments/mumbai.js +1 -0
  266. package/dist/cjs/const/deployments/mumbai.js.map +1 -0
  267. package/dist/cjs/const/deployments/nibiru.js +1 -0
  268. package/dist/cjs/const/deployments/nibiru.js.map +1 -0
  269. package/dist/cjs/const/deployments/okxtestnet.js +1 -0
  270. package/dist/cjs/const/deployments/okxtestnet.js.map +1 -0
  271. package/dist/cjs/const/deployments/optimism.js +1 -0
  272. package/dist/cjs/const/deployments/optimism.js.map +1 -0
  273. package/dist/cjs/const/deployments/optimismgoerli.js +1 -0
  274. package/dist/cjs/const/deployments/optimismgoerli.js.map +1 -0
  275. package/dist/cjs/const/deployments/peaq.js +1 -0
  276. package/dist/cjs/const/deployments/peaq.js.map +1 -0
  277. package/dist/cjs/const/deployments/polygon.js +1 -0
  278. package/dist/cjs/const/deployments/polygon.js.map +1 -0
  279. package/dist/cjs/const/deployments/polyzkevm.js +1 -0
  280. package/dist/cjs/const/deployments/polyzkevm.js.map +1 -0
  281. package/dist/cjs/const/deployments/pyzkevm.js +1 -0
  282. package/dist/cjs/const/deployments/pyzkevm.js.map +1 -0
  283. package/dist/cjs/const/deployments/ronin.js +1 -0
  284. package/dist/cjs/const/deployments/ronin.js.map +1 -0
  285. package/dist/cjs/const/deployments/rootstock.js +1 -0
  286. package/dist/cjs/const/deployments/rootstock.js.map +1 -0
  287. package/dist/cjs/const/deployments/saga.js +1 -0
  288. package/dist/cjs/const/deployments/saga.js.map +1 -0
  289. package/dist/cjs/const/deployments/scroll.js +1 -0
  290. package/dist/cjs/const/deployments/scroll.js.map +1 -0
  291. package/dist/cjs/const/deployments/sei.js +1 -0
  292. package/dist/cjs/const/deployments/sei.js.map +1 -0
  293. package/dist/cjs/const/deployments/soneium.js +1 -0
  294. package/dist/cjs/const/deployments/soneium.js.map +1 -0
  295. package/dist/cjs/const/deployments/sonic.js +1 -0
  296. package/dist/cjs/const/deployments/sonic.js.map +1 -0
  297. package/dist/cjs/const/deployments/taiko.js +1 -0
  298. package/dist/cjs/const/deployments/taiko.js.map +1 -0
  299. package/dist/cjs/const/deployments/tataratestnet.js +1 -0
  300. package/dist/cjs/const/deployments/tataratestnet.js.map +1 -0
  301. package/dist/cjs/const/deployments/telos.js +1 -0
  302. package/dist/cjs/const/deployments/telos.js.map +1 -0
  303. package/dist/cjs/const/deployments/thundercore.js +1 -0
  304. package/dist/cjs/const/deployments/thundercore.js.map +1 -0
  305. package/dist/cjs/const/deployments/uni.js +1 -0
  306. package/dist/cjs/const/deployments/uni.js.map +1 -0
  307. package/dist/cjs/const/deployments/xlayer.js +1 -0
  308. package/dist/cjs/const/deployments/xlayer.js.map +1 -0
  309. package/dist/cjs/const/deployments/zeta.js +1 -0
  310. package/dist/cjs/const/deployments/zeta.js.map +1 -0
  311. package/dist/cjs/const/deployments/zircuit.js +1 -0
  312. package/dist/cjs/const/deployments/zircuit.js.map +1 -0
  313. package/dist/cjs/const/deployments/zklinknova.js +1 -0
  314. package/dist/cjs/const/deployments/zklinknova.js.map +1 -0
  315. package/dist/cjs/const/index.js +1 -0
  316. package/dist/cjs/const/index.js.map +1 -0
  317. package/dist/cjs/const/network.js +1 -0
  318. package/dist/cjs/const/network.js.map +1 -0
  319. package/dist/cjs/const/protocol.js +1 -0
  320. package/dist/cjs/const/protocol.js.map +1 -0
  321. package/dist/cjs/const/quoter.js +1 -0
  322. package/dist/cjs/const/quoter.js.map +1 -0
  323. package/dist/cjs/const/stabilityVaults/index.js +1 -0
  324. package/dist/cjs/const/stabilityVaults/index.js.map +1 -0
  325. package/dist/cjs/const/stabilityVaults/stabilityVaultsConfig.js +1 -0
  326. package/dist/cjs/const/stabilityVaults/stabilityVaultsConfig.js.map +1 -0
  327. package/dist/cjs/const/subgraph.js +1 -0
  328. package/dist/cjs/const/subgraph.js.map +1 -0
  329. package/dist/cjs/const/thegraph.js +1 -0
  330. package/dist/cjs/const/thegraph.js.map +1 -0
  331. package/dist/cjs/index.js +1 -0
  332. package/dist/cjs/index.js.map +1 -0
  333. package/dist/cjs/scripts/processDeployments.js +1 -0
  334. package/dist/cjs/scripts/processDeployments.js.map +1 -0
  335. package/dist/cjs/types.js +1 -0
  336. package/dist/cjs/types.js.map +1 -0
  337. package/dist/cjs/utils/PoolQueryAdapter.js +1 -0
  338. package/dist/cjs/utils/PoolQueryAdapter.js.map +1 -0
  339. package/dist/cjs/utils/SubgraphVaultClient.js +1 -0
  340. package/dist/cjs/utils/SubgraphVaultClient.js.map +1 -0
  341. package/dist/cjs/utils/subgraph-types.js +1 -0
  342. package/dist/cjs/utils/subgraph-types.js.map +1 -0
  343. package/dist/esm/base/FeeManagerClient.js +81 -0
  344. package/dist/esm/base/FeeManagerClient.js.map +1 -0
  345. package/dist/esm/base/PoolClient.js +1 -0
  346. package/dist/esm/base/PoolClient.js.map +1 -0
  347. package/dist/esm/base/SmartRewardClient.js +1 -0
  348. package/dist/esm/base/SmartRewardClient.js.map +1 -0
  349. package/dist/esm/base/SmartRewards.js +1 -0
  350. package/dist/esm/base/SmartRewards.js.map +1 -0
  351. package/dist/esm/base/StakingClient.js +1 -0
  352. package/dist/esm/base/StakingClient.js.map +1 -0
  353. package/dist/esm/base/SubgraphClient.js +1 -0
  354. package/dist/esm/base/SubgraphClient.js.map +1 -0
  355. package/dist/esm/base/VaultClient.js +1 -0
  356. package/dist/esm/base/VaultClient.js.map +1 -0
  357. package/dist/esm/base/vault/deposit/index.js +1 -0
  358. package/dist/esm/base/vault/deposit/index.js.map +1 -0
  359. package/dist/esm/base/vault/deposit/types.js +1 -0
  360. package/dist/esm/base/vault/deposit/types.js.map +1 -0
  361. package/dist/esm/base/vault/single-asset/calculateLimitPrice.js +1 -0
  362. package/dist/esm/base/vault/single-asset/calculateLimitPrice.js.map +1 -0
  363. package/dist/esm/base/vault/single-asset/calculateSwapAmount.js +1 -0
  364. package/dist/esm/base/vault/single-asset/calculateSwapAmount.js.map +1 -0
  365. package/dist/esm/base/vault/single-asset/estimateLpTokens.js +1 -0
  366. package/dist/esm/base/vault/single-asset/estimateLpTokens.js.map +1 -0
  367. package/dist/esm/base/vault/single-asset/index.js +1 -0
  368. package/dist/esm/base/vault/single-asset/index.js.map +1 -0
  369. package/dist/esm/base/vault/single-asset/simulateSwap.js +1 -0
  370. package/dist/esm/base/vault/single-asset/simulateSwap.js.map +1 -0
  371. package/dist/esm/base/vault/single-asset/singleAssetDeposit.js +1 -0
  372. package/dist/esm/base/vault/single-asset/singleAssetDeposit.js.map +1 -0
  373. package/dist/esm/base/vault/single-asset/types.js +1 -0
  374. package/dist/esm/base/vault/single-asset/types.js.map +1 -0
  375. package/dist/esm/base/vault/utils.js +1 -0
  376. package/dist/esm/base/vault/utils.js.map +1 -0
  377. package/dist/esm/base/vault/withdraw/index.js +1 -0
  378. package/dist/esm/base/vault/withdraw/index.js.map +1 -0
  379. package/dist/esm/base/vault/withdraw/types.js +1 -0
  380. package/dist/esm/base/vault/withdraw/types.js.map +1 -0
  381. package/dist/esm/client.js +1 -0
  382. package/dist/esm/client.js.map +1 -0
  383. package/dist/esm/const/abis/UniswapPool.js +1 -0
  384. package/dist/esm/const/abis/UniswapPool.js.map +1 -0
  385. package/dist/esm/const/abis/erc1155.js +1 -0
  386. package/dist/esm/const/abis/erc1155.js.map +1 -0
  387. package/dist/esm/const/abis/erc20.js +1 -0
  388. package/dist/esm/const/abis/erc20.js.map +1 -0
  389. package/dist/esm/const/abis/erc721.js +1 -0
  390. package/dist/esm/const/abis/erc721.js.map +1 -0
  391. package/dist/esm/const/abis/feeManager.js +1 -0
  392. package/dist/esm/const/abis/feeManager.js.map +1 -0
  393. package/dist/esm/const/abis/index.js +2 -0
  394. package/dist/esm/const/abis/index.js.map +1 -0
  395. package/dist/esm/const/abis/quoter.js +1 -0
  396. package/dist/esm/const/abis/quoter.js.map +1 -0
  397. package/dist/esm/const/abis/singleTokenDeposit.js +1 -0
  398. package/dist/esm/const/abis/singleTokenDeposit.js.map +1 -0
  399. package/dist/esm/const/abis/vaultFees.js +41 -0
  400. package/dist/esm/const/abis/vaultFees.js.map +1 -0
  401. package/dist/esm/const/amm/configs/ammConfig.js +1 -0
  402. package/dist/esm/const/amm/configs/ammConfig.js.map +1 -0
  403. package/dist/esm/const/amm/configs/protocols/aerodrome-v2.js +1 -0
  404. package/dist/esm/const/amm/configs/protocols/aerodrome-v2.js.map +1 -0
  405. package/dist/esm/const/amm/configs/protocols/aerodrome.js +1 -0
  406. package/dist/esm/const/amm/configs/protocols/aerodrome.js.map +1 -0
  407. package/dist/esm/const/amm/configs/protocols/arthswap.js +1 -0
  408. package/dist/esm/const/amm/configs/protocols/arthswap.js.map +1 -0
  409. package/dist/esm/const/amm/configs/protocols/baseswap.js +1 -0
  410. package/dist/esm/const/amm/configs/protocols/baseswap.js.map +1 -0
  411. package/dist/esm/const/amm/configs/protocols/basex.js +1 -0
  412. package/dist/esm/const/amm/configs/protocols/basex.js.map +1 -0
  413. package/dist/esm/const/amm/configs/protocols/beam.js +1 -0
  414. package/dist/esm/const/amm/configs/protocols/beam.js.map +1 -0
  415. package/dist/esm/const/amm/configs/protocols/beamswap.js +1 -0
  416. package/dist/esm/const/amm/configs/protocols/beamswap.js.map +1 -0
  417. package/dist/esm/const/amm/configs/protocols/blackhole.js +1 -0
  418. package/dist/esm/const/amm/configs/protocols/blackhole.js.map +1 -0
  419. package/dist/esm/const/amm/configs/protocols/camelot.js +1 -0
  420. package/dist/esm/const/amm/configs/protocols/camelot.js.map +1 -0
  421. package/dist/esm/const/amm/configs/protocols/crust.js +1 -0
  422. package/dist/esm/const/amm/configs/protocols/crust.js.map +1 -0
  423. package/dist/esm/const/amm/configs/protocols/cypher.js +1 -0
  424. package/dist/esm/const/amm/configs/protocols/cypher.js.map +1 -0
  425. package/dist/esm/const/amm/configs/protocols/dodo.js +1 -0
  426. package/dist/esm/const/amm/configs/protocols/dodo.js.map +1 -0
  427. package/dist/esm/const/amm/configs/protocols/dragonswap.js +1 -0
  428. package/dist/esm/const/amm/configs/protocols/dragonswap.js.map +1 -0
  429. package/dist/esm/const/amm/configs/protocols/eddy.js +1 -0
  430. package/dist/esm/const/amm/configs/protocols/eddy.js.map +1 -0
  431. package/dist/esm/const/amm/configs/protocols/equilibre.js +1 -0
  432. package/dist/esm/const/amm/configs/protocols/equilibre.js.map +1 -0
  433. package/dist/esm/const/amm/configs/protocols/fenix.js +1 -0
  434. package/dist/esm/const/amm/configs/protocols/fenix.js.map +1 -0
  435. package/dist/esm/const/amm/configs/protocols/forge.js +1 -0
  436. package/dist/esm/const/amm/configs/protocols/forge.js.map +1 -0
  437. package/dist/esm/const/amm/configs/protocols/fusionx.js +1 -0
  438. package/dist/esm/const/amm/configs/protocols/fusionx.js.map +1 -0
  439. package/dist/esm/const/amm/configs/protocols/glyph.js +1 -0
  440. package/dist/esm/const/amm/configs/protocols/glyph.js.map +1 -0
  441. package/dist/esm/const/amm/configs/protocols/henjin.js +1 -0
  442. package/dist/esm/const/amm/configs/protocols/henjin.js.map +1 -0
  443. package/dist/esm/const/amm/configs/protocols/hercules.js +1 -0
  444. package/dist/esm/const/amm/configs/protocols/hercules.js.map +1 -0
  445. package/dist/esm/const/amm/configs/protocols/horiza.js +1 -0
  446. package/dist/esm/const/amm/configs/protocols/horiza.js.map +1 -0
  447. package/dist/esm/const/amm/configs/protocols/index.js +1 -0
  448. package/dist/esm/const/amm/configs/protocols/index.js.map +1 -0
  449. package/dist/esm/const/amm/configs/protocols/katana.js +1 -0
  450. package/dist/esm/const/amm/configs/protocols/katana.js.map +1 -0
  451. package/dist/esm/const/amm/configs/protocols/katanaIntegral.js +1 -0
  452. package/dist/esm/const/amm/configs/protocols/katanaIntegral.js.map +1 -0
  453. package/dist/esm/const/amm/configs/protocols/kim.js +1 -0
  454. package/dist/esm/const/amm/configs/protocols/kim.js.map +1 -0
  455. package/dist/esm/const/amm/configs/protocols/kinetix.js +1 -0
  456. package/dist/esm/const/amm/configs/protocols/kinetix.js.map +1 -0
  457. package/dist/esm/const/amm/configs/protocols/kodiak.js +1 -0
  458. package/dist/esm/const/amm/configs/protocols/kodiak.js.map +1 -0
  459. package/dist/esm/const/amm/configs/protocols/kyo.js +1 -0
  460. package/dist/esm/const/amm/configs/protocols/kyo.js.map +1 -0
  461. package/dist/esm/const/amm/configs/protocols/linehub.js +1 -0
  462. package/dist/esm/const/amm/configs/protocols/linehub.js.map +1 -0
  463. package/dist/esm/const/amm/configs/protocols/lynex.js +1 -0
  464. package/dist/esm/const/amm/configs/protocols/lynex.js.map +1 -0
  465. package/dist/esm/const/amm/configs/protocols/machinex.js +1 -0
  466. package/dist/esm/const/amm/configs/protocols/machinex.js.map +1 -0
  467. package/dist/esm/const/amm/configs/protocols/maia.js +1 -0
  468. package/dist/esm/const/amm/configs/protocols/maia.js.map +1 -0
  469. package/dist/esm/const/amm/configs/protocols/metavault.js +1 -0
  470. package/dist/esm/const/amm/configs/protocols/metavault.js.map +1 -0
  471. package/dist/esm/const/amm/configs/protocols/nest.js +1 -0
  472. package/dist/esm/const/amm/configs/protocols/nest.js.map +1 -0
  473. package/dist/esm/const/amm/configs/protocols/novaswap.js +1 -0
  474. package/dist/esm/const/amm/configs/protocols/novaswap.js.map +1 -0
  475. package/dist/esm/const/amm/configs/protocols/ocelex.js +1 -0
  476. package/dist/esm/const/amm/configs/protocols/ocelex.js.map +1 -0
  477. package/dist/esm/const/amm/configs/protocols/pancakeswap.js +1 -0
  478. package/dist/esm/const/amm/configs/protocols/pancakeswap.js.map +1 -0
  479. package/dist/esm/const/amm/configs/protocols/poolshark.js +1 -0
  480. package/dist/esm/const/amm/configs/protocols/poolshark.js.map +1 -0
  481. package/dist/esm/const/amm/configs/protocols/quickswap-algebra.js +1 -0
  482. package/dist/esm/const/amm/configs/protocols/quickswap-algebra.js.map +1 -0
  483. package/dist/esm/const/amm/configs/protocols/quickswap-integral.js +1 -0
  484. package/dist/esm/const/amm/configs/protocols/quickswap-integral.js.map +1 -0
  485. package/dist/esm/const/amm/configs/protocols/quickswap-univ3.js +1 -0
  486. package/dist/esm/const/amm/configs/protocols/quickswap-univ3.js.map +1 -0
  487. package/dist/esm/const/amm/configs/protocols/quickswap.js +1 -0
  488. package/dist/esm/const/amm/configs/protocols/quickswap.js.map +1 -0
  489. package/dist/esm/const/amm/configs/protocols/retro.js +1 -0
  490. package/dist/esm/const/amm/configs/protocols/retro.js.map +1 -0
  491. package/dist/esm/const/amm/configs/protocols/sailor.js +1 -0
  492. package/dist/esm/const/amm/configs/protocols/sailor.js.map +1 -0
  493. package/dist/esm/const/amm/configs/protocols/shadow.js +1 -0
  494. package/dist/esm/const/amm/configs/protocols/shadow.js.map +1 -0
  495. package/dist/esm/const/amm/configs/protocols/silverswap.js +1 -0
  496. package/dist/esm/const/amm/configs/protocols/silverswap.js.map +1 -0
  497. package/dist/esm/const/amm/configs/protocols/spark.js +1 -0
  498. package/dist/esm/const/amm/configs/protocols/spark.js.map +1 -0
  499. package/dist/esm/const/amm/configs/protocols/spark32.js +1 -0
  500. package/dist/esm/const/amm/configs/protocols/spark32.js.map +1 -0
  501. package/dist/esm/const/amm/configs/protocols/spookyswap.js +1 -0
  502. package/dist/esm/const/amm/configs/protocols/spookyswap.js.map +1 -0
  503. package/dist/esm/const/amm/configs/protocols/stellaswap.js +1 -0
  504. package/dist/esm/const/amm/configs/protocols/stellaswap.js.map +1 -0
  505. package/dist/esm/const/amm/configs/protocols/supswap.js +1 -0
  506. package/dist/esm/const/amm/configs/protocols/supswap.js.map +1 -0
  507. package/dist/esm/const/amm/configs/protocols/sushi.js +1 -0
  508. package/dist/esm/const/amm/configs/protocols/sushi.js.map +1 -0
  509. package/dist/esm/const/amm/configs/protocols/swapmode.js +1 -0
  510. package/dist/esm/const/amm/configs/protocols/swapmode.js.map +1 -0
  511. package/dist/esm/const/amm/configs/protocols/swapsicle.js +1 -0
  512. package/dist/esm/const/amm/configs/protocols/swapsicle.js.map +1 -0
  513. package/dist/esm/const/amm/configs/protocols/thena.js +1 -0
  514. package/dist/esm/const/amm/configs/protocols/thena.js.map +1 -0
  515. package/dist/esm/const/amm/configs/protocols/thick.js +1 -0
  516. package/dist/esm/const/amm/configs/protocols/thick.js.map +1 -0
  517. package/dist/esm/const/amm/configs/protocols/thickv2.js +1 -0
  518. package/dist/esm/const/amm/configs/protocols/thickv2.js.map +1 -0
  519. package/dist/esm/const/amm/configs/protocols/thruster.js +1 -0
  520. package/dist/esm/const/amm/configs/protocols/thruster.js.map +1 -0
  521. package/dist/esm/const/amm/configs/protocols/uniswap.js +1 -0
  522. package/dist/esm/const/amm/configs/protocols/uniswap.js.map +1 -0
  523. package/dist/esm/const/amm/configs/protocols/wasabee.js +1 -0
  524. package/dist/esm/const/amm/configs/protocols/wasabee.js.map +1 -0
  525. package/dist/esm/const/amm/index.js +1 -0
  526. package/dist/esm/const/amm/index.js.map +1 -0
  527. package/dist/esm/const/amm/utils/beacon.js +1 -0
  528. package/dist/esm/const/amm/utils/beacon.js.map +1 -0
  529. package/dist/esm/const/amm/utils/contracts.js +1 -0
  530. package/dist/esm/const/amm/utils/contracts.js.map +1 -0
  531. package/dist/esm/const/amm/utils/index.js +1 -0
  532. package/dist/esm/const/amm/utils/index.js.map +1 -0
  533. package/dist/esm/const/amm/utils/protocol.js +1 -0
  534. package/dist/esm/const/amm/utils/protocol.js.map +1 -0
  535. package/dist/esm/const/api.js +1 -0
  536. package/dist/esm/const/api.js.map +1 -0
  537. package/dist/esm/const/capabilities.js +1 -0
  538. package/dist/esm/const/capabilities.js.map +1 -0
  539. package/dist/esm/const/chain.js +1 -0
  540. package/dist/esm/const/chain.js.map +1 -0
  541. package/dist/esm/const/deployments/abis.js +1 -0
  542. package/dist/esm/const/deployments/abis.js.map +1 -0
  543. package/dist/esm/const/deployments/apechain.js +1 -0
  544. package/dist/esm/const/deployments/apechain.js.map +1 -0
  545. package/dist/esm/const/deployments/arbitrum.js +1 -0
  546. package/dist/esm/const/deployments/arbitrum.js.map +1 -0
  547. package/dist/esm/const/deployments/arbitrumgoerli.js +1 -0
  548. package/dist/esm/const/deployments/arbitrumgoerli.js.map +1 -0
  549. package/dist/esm/const/deployments/astar.js +1 -0
  550. package/dist/esm/const/deployments/astar.js.map +1 -0
  551. package/dist/esm/const/deployments/astarzkevm.js +1 -0
  552. package/dist/esm/const/deployments/astarzkevm.js.map +1 -0
  553. package/dist/esm/const/deployments/avalanche.js +1 -0
  554. package/dist/esm/const/deployments/avalanche.js.map +1 -0
  555. package/dist/esm/const/deployments/bartiotest.js +1 -0
  556. package/dist/esm/const/deployments/bartiotest.js.map +1 -0
  557. package/dist/esm/const/deployments/base.js +1 -0
  558. package/dist/esm/const/deployments/base.js.map +1 -0
  559. package/dist/esm/const/deployments/bera.js +1 -0
  560. package/dist/esm/const/deployments/bera.js.map +1 -0
  561. package/dist/esm/const/deployments/berachainbartio.js +1 -0
  562. package/dist/esm/const/deployments/berachainbartio.js.map +1 -0
  563. package/dist/esm/const/deployments/blast.js +1 -0
  564. package/dist/esm/const/deployments/blast.js.map +1 -0
  565. package/dist/esm/const/deployments/bsc.js +1 -0
  566. package/dist/esm/const/deployments/bsc.js.map +1 -0
  567. package/dist/esm/const/deployments/celo.js +1 -0
  568. package/dist/esm/const/deployments/celo.js.map +1 -0
  569. package/dist/esm/const/deployments/core.js +1 -0
  570. package/dist/esm/const/deployments/core.js.map +1 -0
  571. package/dist/esm/const/deployments/eth.js +1 -0
  572. package/dist/esm/const/deployments/eth.js.map +1 -0
  573. package/dist/esm/const/deployments/evmos.js +1 -0
  574. package/dist/esm/const/deployments/evmos.js.map +1 -0
  575. package/dist/esm/const/deployments/fantom.js +1 -0
  576. package/dist/esm/const/deployments/fantom.js.map +1 -0
  577. package/dist/esm/const/deployments/filecoin.js +1 -0
  578. package/dist/esm/const/deployments/filecoin.js.map +1 -0
  579. package/dist/esm/const/deployments/flare.js +1 -0
  580. package/dist/esm/const/deployments/flare.js.map +1 -0
  581. package/dist/esm/const/deployments/goerli.js +1 -0
  582. package/dist/esm/const/deployments/goerli.js.map +1 -0
  583. package/dist/esm/const/deployments/hemi.js +1 -0
  584. package/dist/esm/const/deployments/hemi.js.map +1 -0
  585. package/dist/esm/const/deployments/hyperevm.js +1 -0
  586. package/dist/esm/const/deployments/hyperevm.js.map +1 -0
  587. package/dist/esm/const/deployments/index.js +1 -0
  588. package/dist/esm/const/deployments/index.js.map +1 -0
  589. package/dist/esm/const/deployments/katana.js +1 -0
  590. package/dist/esm/const/deployments/katana.js.map +1 -0
  591. package/dist/esm/const/deployments/kava.js +1 -0
  592. package/dist/esm/const/deployments/kava.js.map +1 -0
  593. package/dist/esm/const/deployments/linea.js +1 -0
  594. package/dist/esm/const/deployments/linea.js.map +1 -0
  595. package/dist/esm/const/deployments/localhost.js +1 -0
  596. package/dist/esm/const/deployments/localhost.js.map +1 -0
  597. package/dist/esm/const/deployments/manta.js +1 -0
  598. package/dist/esm/const/deployments/manta.js.map +1 -0
  599. package/dist/esm/const/deployments/mantle.js +1 -0
  600. package/dist/esm/const/deployments/mantle.js.map +1 -0
  601. package/dist/esm/const/deployments/metis.js +1 -0
  602. package/dist/esm/const/deployments/metis.js.map +1 -0
  603. package/dist/esm/const/deployments/mode.js +1 -0
  604. package/dist/esm/const/deployments/mode.js.map +1 -0
  605. package/dist/esm/const/deployments/moonbeam.js +1 -0
  606. package/dist/esm/const/deployments/moonbeam.js.map +1 -0
  607. package/dist/esm/const/deployments/mumbai.js +1 -0
  608. package/dist/esm/const/deployments/mumbai.js.map +1 -0
  609. package/dist/esm/const/deployments/nibiru.js +1 -0
  610. package/dist/esm/const/deployments/nibiru.js.map +1 -0
  611. package/dist/esm/const/deployments/okxtestnet.js +1 -0
  612. package/dist/esm/const/deployments/okxtestnet.js.map +1 -0
  613. package/dist/esm/const/deployments/optimism.js +1 -0
  614. package/dist/esm/const/deployments/optimism.js.map +1 -0
  615. package/dist/esm/const/deployments/optimismgoerli.js +1 -0
  616. package/dist/esm/const/deployments/optimismgoerli.js.map +1 -0
  617. package/dist/esm/const/deployments/peaq.js +1 -0
  618. package/dist/esm/const/deployments/peaq.js.map +1 -0
  619. package/dist/esm/const/deployments/polygon.js +1 -0
  620. package/dist/esm/const/deployments/polygon.js.map +1 -0
  621. package/dist/esm/const/deployments/polyzkevm.js +1 -0
  622. package/dist/esm/const/deployments/polyzkevm.js.map +1 -0
  623. package/dist/esm/const/deployments/pyzkevm.js +1 -0
  624. package/dist/esm/const/deployments/pyzkevm.js.map +1 -0
  625. package/dist/esm/const/deployments/ronin.js +1 -0
  626. package/dist/esm/const/deployments/ronin.js.map +1 -0
  627. package/dist/esm/const/deployments/rootstock.js +1 -0
  628. package/dist/esm/const/deployments/rootstock.js.map +1 -0
  629. package/dist/esm/const/deployments/saga.js +1 -0
  630. package/dist/esm/const/deployments/saga.js.map +1 -0
  631. package/dist/esm/const/deployments/scroll.js +1 -0
  632. package/dist/esm/const/deployments/scroll.js.map +1 -0
  633. package/dist/esm/const/deployments/sei.js +1 -0
  634. package/dist/esm/const/deployments/sei.js.map +1 -0
  635. package/dist/esm/const/deployments/soneium.js +1 -0
  636. package/dist/esm/const/deployments/soneium.js.map +1 -0
  637. package/dist/esm/const/deployments/sonic.js +1 -0
  638. package/dist/esm/const/deployments/sonic.js.map +1 -0
  639. package/dist/esm/const/deployments/taiko.js +1 -0
  640. package/dist/esm/const/deployments/taiko.js.map +1 -0
  641. package/dist/esm/const/deployments/tataratestnet.js +1 -0
  642. package/dist/esm/const/deployments/tataratestnet.js.map +1 -0
  643. package/dist/esm/const/deployments/telos.js +1 -0
  644. package/dist/esm/const/deployments/telos.js.map +1 -0
  645. package/dist/esm/const/deployments/thundercore.js +1 -0
  646. package/dist/esm/const/deployments/thundercore.js.map +1 -0
  647. package/dist/esm/const/deployments/uni.js +1 -0
  648. package/dist/esm/const/deployments/uni.js.map +1 -0
  649. package/dist/esm/const/deployments/xlayer.js +1 -0
  650. package/dist/esm/const/deployments/xlayer.js.map +1 -0
  651. package/dist/esm/const/deployments/zeta.js +1 -0
  652. package/dist/esm/const/deployments/zeta.js.map +1 -0
  653. package/dist/esm/const/deployments/zircuit.js +1 -0
  654. package/dist/esm/const/deployments/zircuit.js.map +1 -0
  655. package/dist/esm/const/deployments/zklinknova.js +1 -0
  656. package/dist/esm/const/deployments/zklinknova.js.map +1 -0
  657. package/dist/esm/const/index.js +1 -0
  658. package/dist/esm/const/index.js.map +1 -0
  659. package/dist/esm/const/network.js +1 -0
  660. package/dist/esm/const/network.js.map +1 -0
  661. package/dist/esm/const/protocol.js +1 -0
  662. package/dist/esm/const/protocol.js.map +1 -0
  663. package/dist/esm/const/quoter.js +1 -0
  664. package/dist/esm/const/quoter.js.map +1 -0
  665. package/dist/esm/const/stabilityVaults/index.js +1 -0
  666. package/dist/esm/const/stabilityVaults/index.js.map +1 -0
  667. package/dist/esm/const/stabilityVaults/stabilityVaultsConfig.js +1 -0
  668. package/dist/esm/const/stabilityVaults/stabilityVaultsConfig.js.map +1 -0
  669. package/dist/esm/const/subgraph.js +1 -0
  670. package/dist/esm/const/subgraph.js.map +1 -0
  671. package/dist/esm/const/thegraph.js +1 -0
  672. package/dist/esm/const/thegraph.js.map +1 -0
  673. package/dist/esm/index.js +1 -0
  674. package/dist/esm/index.js.map +1 -0
  675. package/dist/esm/scripts/processDeployments.js +1 -0
  676. package/dist/esm/scripts/processDeployments.js.map +1 -0
  677. package/dist/esm/types.js +1 -0
  678. package/dist/esm/types.js.map +1 -0
  679. package/dist/esm/utils/PoolQueryAdapter.js +1 -0
  680. package/dist/esm/utils/PoolQueryAdapter.js.map +1 -0
  681. package/dist/esm/utils/SubgraphVaultClient.js +1 -0
  682. package/dist/esm/utils/SubgraphVaultClient.js.map +1 -0
  683. package/dist/esm/utils/subgraph-types.js +1 -0
  684. package/dist/esm/utils/subgraph-types.js.map +1 -0
  685. package/dist/types/base/FeeManagerClient.d.ts +27 -1
  686. package/dist/types/base/FeeManagerClient.d.ts.map +1 -1
  687. package/dist/types/const/abis/index.d.ts +1 -0
  688. package/dist/types/const/abis/index.d.ts.map +1 -1
  689. package/dist/types/const/abis/vaultFees.d.ts +30 -0
  690. package/dist/types/const/abis/vaultFees.d.ts.map +1 -0
  691. package/package.json +3 -2
  692. package/src/__tests__/base/FeeManagerClient.test.ts +706 -0
  693. package/src/__tests__/base/PoolClient.test.ts +542 -0
  694. package/src/__tests__/base/SmartRewards.test.ts +465 -0
  695. package/src/__tests__/base/StakingClient.test.ts +772 -0
  696. package/src/__tests__/base/SubgraphClient.test.ts +99 -0
  697. package/src/__tests__/base/VaultClient.test.ts +1011 -0
  698. package/src/__tests__/base/vault/single-asset/calculateLimitPrice.test.ts +324 -0
  699. package/src/__tests__/base/vault/single-asset/calculateSwapAmount.test.ts +322 -0
  700. package/src/__tests__/base/vault/single-asset/estimateLpTokens.test.ts +612 -0
  701. package/src/__tests__/base/vault/single-asset/simulateSwap.test.ts +467 -0
  702. package/src/__tests__/base/vault/single-asset/singleAssetDepositClient.test.ts +400 -0
  703. package/src/__tests__/client.test.ts +48 -0
  704. package/src/__tests__/const/capabilities.test.ts +24 -0
  705. package/src/base/FeeManagerClient.ts +711 -0
  706. package/src/base/PoolClient.ts +678 -0
  707. package/src/base/SmartRewardClient.ts +57 -0
  708. package/src/base/SmartRewards.ts +783 -0
  709. package/src/base/StakingClient.ts +917 -0
  710. package/src/base/SubgraphClient.ts +93 -0
  711. package/src/base/VaultClient.ts +1642 -0
  712. package/src/base/vault/deposit/index.ts +705 -0
  713. package/src/base/vault/deposit/types.ts +49 -0
  714. package/src/base/vault/single-asset/README.md +541 -0
  715. package/src/base/vault/single-asset/calculateLimitPrice.ts +279 -0
  716. package/src/base/vault/single-asset/calculateSwapAmount.ts +74 -0
  717. package/src/base/vault/single-asset/estimateLpTokens.ts +393 -0
  718. package/src/base/vault/single-asset/index.ts +85 -0
  719. package/src/base/vault/single-asset/readmes/API_REFERENCE.md +478 -0
  720. package/src/base/vault/single-asset/readmes/calculateLimitPrice.md +455 -0
  721. package/src/base/vault/single-asset/readmes/calculateSwapAmount.md +345 -0
  722. package/src/base/vault/single-asset/readmes/estimateLpTokens.md +585 -0
  723. package/src/base/vault/single-asset/readmes/index.md +174 -0
  724. package/src/base/vault/single-asset/readmes/simulateSwap.md +612 -0
  725. package/src/base/vault/single-asset/simulateSwap.ts +451 -0
  726. package/src/base/vault/single-asset/singleAssetDeposit.ts +411 -0
  727. package/src/base/vault/single-asset/types.ts +186 -0
  728. package/src/base/vault/utils.ts +633 -0
  729. package/src/base/vault/withdraw/index.ts +187 -0
  730. package/src/base/vault/withdraw/types.ts +14 -0
  731. package/src/client.ts +161 -0
  732. package/src/const/abis/UniswapPool.ts +1 -0
  733. package/src/const/abis/erc1155.ts +314 -0
  734. package/src/const/abis/erc20.ts +224 -0
  735. package/src/const/abis/erc721.ts +346 -0
  736. package/src/const/abis/feeManager.ts +672 -0
  737. package/src/const/abis/index.ts +8 -0
  738. package/src/const/abis/quoter.ts +1585 -0
  739. package/src/const/abis/singleTokenDeposit.ts +921 -0
  740. package/src/const/abis/vaultFees.ts +40 -0
  741. package/src/const/amm/configs/ammConfig.ts +130 -0
  742. package/src/const/amm/configs/protocols/aerodrome-v2.ts +18 -0
  743. package/src/const/amm/configs/protocols/aerodrome.ts +18 -0
  744. package/src/const/amm/configs/protocols/arthswap.ts +21 -0
  745. package/src/const/amm/configs/protocols/baseswap.ts +17 -0
  746. package/src/const/amm/configs/protocols/basex.ts +20 -0
  747. package/src/const/amm/configs/protocols/beam.ts +16 -0
  748. package/src/const/amm/configs/protocols/beamswap.ts +17 -0
  749. package/src/const/amm/configs/protocols/blackhole.ts +22 -0
  750. package/src/const/amm/configs/protocols/camelot.ts +26 -0
  751. package/src/const/amm/configs/protocols/crust.ts +16 -0
  752. package/src/const/amm/configs/protocols/cypher.ts +20 -0
  753. package/src/const/amm/configs/protocols/dodo.ts +17 -0
  754. package/src/const/amm/configs/protocols/dragonswap.ts +16 -0
  755. package/src/const/amm/configs/protocols/eddy.ts +17 -0
  756. package/src/const/amm/configs/protocols/equilibre.ts +17 -0
  757. package/src/const/amm/configs/protocols/fenix.ts +17 -0
  758. package/src/const/amm/configs/protocols/forge.ts +22 -0
  759. package/src/const/amm/configs/protocols/fusionx.ts +21 -0
  760. package/src/const/amm/configs/protocols/glyph.ts +22 -0
  761. package/src/const/amm/configs/protocols/henjin.ts +17 -0
  762. package/src/const/amm/configs/protocols/hercules.ts +16 -0
  763. package/src/const/amm/configs/protocols/horiza.ts +23 -0
  764. package/src/const/amm/configs/protocols/index.ts +79 -0
  765. package/src/const/amm/configs/protocols/katana.ts +15 -0
  766. package/src/const/amm/configs/protocols/katanaIntegral.ts +15 -0
  767. package/src/const/amm/configs/protocols/kim.ts +24 -0
  768. package/src/const/amm/configs/protocols/kinetix.ts +23 -0
  769. package/src/const/amm/configs/protocols/kodiak.ts +21 -0
  770. package/src/const/amm/configs/protocols/kyo.ts +20 -0
  771. package/src/const/amm/configs/protocols/linehub.ts +17 -0
  772. package/src/const/amm/configs/protocols/lynex.ts +23 -0
  773. package/src/const/amm/configs/protocols/machinex.ts +22 -0
  774. package/src/const/amm/configs/protocols/maia.ts +22 -0
  775. package/src/const/amm/configs/protocols/metavault.ts +23 -0
  776. package/src/const/amm/configs/protocols/nest.ts +19 -0
  777. package/src/const/amm/configs/protocols/novaswap.ts +16 -0
  778. package/src/const/amm/configs/protocols/ocelex.ts +17 -0
  779. package/src/const/amm/configs/protocols/pancakeswap.ts +26 -0
  780. package/src/const/amm/configs/protocols/poolshark.ts +17 -0
  781. package/src/const/amm/configs/protocols/quickswap-algebra.ts +20 -0
  782. package/src/const/amm/configs/protocols/quickswap-integral.ts +24 -0
  783. package/src/const/amm/configs/protocols/quickswap-univ3.ts +29 -0
  784. package/src/const/amm/configs/protocols/quickswap.ts +29 -0
  785. package/src/const/amm/configs/protocols/retro.ts +23 -0
  786. package/src/const/amm/configs/protocols/sailor.ts +16 -0
  787. package/src/const/amm/configs/protocols/shadow.ts +18 -0
  788. package/src/const/amm/configs/protocols/silverswap.ts +22 -0
  789. package/src/const/amm/configs/protocols/spark.ts +17 -0
  790. package/src/const/amm/configs/protocols/spark32.ts +17 -0
  791. package/src/const/amm/configs/protocols/spookyswap.ts +16 -0
  792. package/src/const/amm/configs/protocols/stellaswap.ts +23 -0
  793. package/src/const/amm/configs/protocols/supswap.ts +17 -0
  794. package/src/const/amm/configs/protocols/sushi.ts +86 -0
  795. package/src/const/amm/configs/protocols/swapmode.ts +17 -0
  796. package/src/const/amm/configs/protocols/swapsicle.ts +17 -0
  797. package/src/const/amm/configs/protocols/thena.ts +22 -0
  798. package/src/const/amm/configs/protocols/thick.ts +19 -0
  799. package/src/const/amm/configs/protocols/thickv2.ts +17 -0
  800. package/src/const/amm/configs/protocols/thruster.ts +19 -0
  801. package/src/const/amm/configs/protocols/uniswap.ts +98 -0
  802. package/src/const/amm/configs/protocols/wasabee.ts +16 -0
  803. package/src/const/amm/index.ts +3 -0
  804. package/src/const/amm/utils/beacon.ts +216 -0
  805. package/src/const/amm/utils/contracts.ts +162 -0
  806. package/src/const/amm/utils/index.ts +127 -0
  807. package/src/const/amm/utils/protocol.ts +171 -0
  808. package/src/const/api.ts +27 -0
  809. package/src/const/capabilities.ts +115 -0
  810. package/src/const/chain.ts +243 -0
  811. package/src/const/deployments/abis.ts +6752 -0
  812. package/src/const/deployments/apechain.ts +17 -0
  813. package/src/const/deployments/arbitrum.ts +26 -0
  814. package/src/const/deployments/arbitrumgoerli.ts +16 -0
  815. package/src/const/deployments/astar.ts +16 -0
  816. package/src/const/deployments/astarzkevm.ts +16 -0
  817. package/src/const/deployments/avalanche.ts +45 -0
  818. package/src/const/deployments/bartiotest.ts +16 -0
  819. package/src/const/deployments/base.ts +24 -0
  820. package/src/const/deployments/bera.ts +16 -0
  821. package/src/const/deployments/berachainbartio.ts +40 -0
  822. package/src/const/deployments/blast.ts +16 -0
  823. package/src/const/deployments/bsc.ts +16 -0
  824. package/src/const/deployments/celo.ts +16 -0
  825. package/src/const/deployments/core.ts +16 -0
  826. package/src/const/deployments/eth.ts +22 -0
  827. package/src/const/deployments/evmos.ts +16 -0
  828. package/src/const/deployments/fantom.ts +16 -0
  829. package/src/const/deployments/filecoin.ts +16 -0
  830. package/src/const/deployments/flare.ts +16 -0
  831. package/src/const/deployments/goerli.ts +16 -0
  832. package/src/const/deployments/hemi.ts +16 -0
  833. package/src/const/deployments/hyperevm.ts +49 -0
  834. package/src/const/deployments/index.ts +49 -0
  835. package/src/const/deployments/katana.ts +48 -0
  836. package/src/const/deployments/kava.ts +16 -0
  837. package/src/const/deployments/linea.ts +16 -0
  838. package/src/const/deployments/localhost.ts +8 -0
  839. package/src/const/deployments/manta.ts +16 -0
  840. package/src/const/deployments/mantle.ts +16 -0
  841. package/src/const/deployments/metis.ts +16 -0
  842. package/src/const/deployments/mode.ts +16 -0
  843. package/src/const/deployments/moonbeam.ts +16 -0
  844. package/src/const/deployments/mumbai.ts +16 -0
  845. package/src/const/deployments/nibiru.ts +49 -0
  846. package/src/const/deployments/okxtestnet.ts +16 -0
  847. package/src/const/deployments/optimism.ts +16 -0
  848. package/src/const/deployments/optimismgoerli.ts +16 -0
  849. package/src/const/deployments/peaq.ts +25 -0
  850. package/src/const/deployments/polygon.ts +25 -0
  851. package/src/const/deployments/polyzkevm.ts +16 -0
  852. package/src/const/deployments/pyzkevm.ts +9 -0
  853. package/src/const/deployments/ronin.ts +17 -0
  854. package/src/const/deployments/rootstock.ts +16 -0
  855. package/src/const/deployments/saga.ts +49 -0
  856. package/src/const/deployments/scroll.ts +16 -0
  857. package/src/const/deployments/sei.ts +16 -0
  858. package/src/const/deployments/soneium.ts +16 -0
  859. package/src/const/deployments/sonic.ts +16 -0
  860. package/src/const/deployments/taiko.ts +16 -0
  861. package/src/const/deployments/tataratestnet.ts +16 -0
  862. package/src/const/deployments/telos.ts +16 -0
  863. package/src/const/deployments/thundercore.ts +16 -0
  864. package/src/const/deployments/uni.ts +16 -0
  865. package/src/const/deployments/xlayer.ts +16 -0
  866. package/src/const/deployments/zeta.ts +16 -0
  867. package/src/const/deployments/zircuit.ts +16 -0
  868. package/src/const/deployments/zklinknova.ts +21 -0
  869. package/src/const/index.ts +12 -0
  870. package/src/const/network.ts +635 -0
  871. package/src/const/protocol.ts +229 -0
  872. package/src/const/quoter.ts +571 -0
  873. package/src/const/stabilityVaults/index.ts +2 -0
  874. package/src/const/stabilityVaults/stabilityVaultsConfig.ts +41 -0
  875. package/src/const/subgraph.ts +157 -0
  876. package/src/const/thegraph.ts +3 -0
  877. package/src/index.ts +80 -0
  878. package/src/scripts/processDeployments.ts +174 -0
  879. package/src/types.ts +202 -0
  880. package/src/utils/PoolQueryAdapter.ts +943 -0
  881. package/src/utils/SubgraphVaultClient.ts +408 -0
  882. package/src/utils/subgraph-types.ts +108 -0
@@ -0,0 +1,1642 @@
1
+ import { createClient } from '@steerprotocol/api-sdk';
2
+ import { Pool as PoolV3 } from "@uniswap/v3-sdk";
3
+ import type { Address, Hash, PublicClient, WalletClient } from 'viem';
4
+ import { chainIdToName, getBeaconNameByProtocol } from '../const';
5
+ import { getProtocolsForChainId } from '../const/amm/utils/protocol';
6
+ import { ChainId, MultiPositionManagers, Protocol } from '../const/chain';
7
+ import { steerSubgraphConfig } from '../const/subgraph';
8
+ import { SubgraphVaultClient } from '../utils/SubgraphVaultClient';
9
+ import { getApiUrl } from '../const/api.js';
10
+ import { abis } from '../const/deployments/abis.js';
11
+ import { SteerResponse, VaultDetailsResponse } from '../types.js';
12
+ import { SubgraphClient } from './SubgraphClient.js';
13
+ import { VaultDepositClient } from './vault/deposit/index.js';
14
+ import { PoolInstanceParams, VaultDepositParams } from './vault/deposit/types.js';
15
+ import { SingleAssetDepositClient } from './vault/single-asset/index.js';
16
+ import type {
17
+ SingleAssetDepositParams,
18
+ SingleAssetDepositPreview
19
+ } from './vault/single-asset/types.js';
20
+ import { VaultWithdrawClient } from './vault/withdraw/index.js';
21
+ import { TokensFromLpResponse, VaultWithdrawParams } from './vault/withdraw/types.js';
22
+ export * from "./vault/single-asset/index.js";
23
+
24
+ const VAULT_ABI = abis.QuickSwapUniv3MultiPositionLiquidityManager;
25
+
26
+ // Custom ABI for reward functions
27
+ const REWARD_FUNCTIONS_ABI = [
28
+ {
29
+ "type": "function",
30
+ "name": "calculatePendingRewards",
31
+ "inputs": [
32
+ {
33
+ "name": "user",
34
+ "type": "address",
35
+ "internalType": "address"
36
+ }
37
+ ],
38
+ "outputs": [
39
+ {
40
+ "name": "rewards",
41
+ "type": "uint256",
42
+ "internalType": "uint256"
43
+ },
44
+ {
45
+ "name": "extraRewards",
46
+ "type": "uint256",
47
+ "internalType": "uint256"
48
+ }
49
+ ],
50
+ "stateMutability": "view"
51
+ },
52
+ {
53
+ "inputs": [],
54
+ "name": "claimUserRewards",
55
+ "outputs": [
56
+ {
57
+ "internalType": "uint256",
58
+ "name": "",
59
+ "type": "uint256"
60
+ },
61
+ {
62
+ "internalType": "uint256",
63
+ "name": "",
64
+ "type": "uint256"
65
+ }
66
+ ],
67
+ "stateMutability": "nonpayable",
68
+ "type": "function"
69
+ },
70
+
71
+ ] as const;
72
+
73
+ export interface VaultApproveParams {
74
+ vaultAddress: Address;
75
+ spender: Address;
76
+ amount: bigint;
77
+ }
78
+
79
+ export interface VaultAllowanceParams {
80
+ vaultAddress: Address;
81
+ owner: Address;
82
+ spender: Address;
83
+ }
84
+
85
+ export interface VaultBalanceParams {
86
+ vaultAddress: Address;
87
+ account: Address;
88
+ }
89
+
90
+ // Pagination interfaces matching API SDK types
91
+ export interface ApiPageInfo {
92
+ hasNextPage: boolean;
93
+ endCursor: string | null;
94
+ }
95
+
96
+ export interface VaultNode {
97
+ id: string;
98
+ chainId: number;
99
+ vaultAddress: string;
100
+ protocol: string;
101
+ beaconName: string;
102
+ protocolBaseType: string;
103
+ name: string;
104
+ feeApr?: number;
105
+ stakingApr?: number;
106
+ merklApr?: number;
107
+ pool: {
108
+ poolAddress: string;
109
+ id: string;
110
+ feeTier: string;
111
+ tick?: string;
112
+ liquidity?: string;
113
+ volumeUSD?: string;
114
+ totalValueLockedUSD?: string;
115
+ };
116
+ token0: {
117
+ id: string;
118
+ symbol: string;
119
+ name: string;
120
+ decimals: number;
121
+ address: string;
122
+ chainId: number;
123
+ };
124
+ token1: {
125
+ id: string;
126
+ symbol: string;
127
+ name: string;
128
+ decimals: number;
129
+ address: string;
130
+ chainId: number;
131
+ };
132
+ }
133
+
134
+ export interface VaultEdge {
135
+ cursor: string;
136
+ node: VaultNode;
137
+ }
138
+
139
+ export interface VaultsConnection {
140
+ edges: readonly VaultEdge[];
141
+ pageInfo: ApiPageInfo;
142
+ totalCount: number;
143
+ }
144
+
145
+ export interface TokenNode {
146
+ id: string;
147
+ symbol: string;
148
+ name: string;
149
+ decimals: number;
150
+ chainId: number;
151
+ address: string;
152
+ }
153
+
154
+ export interface TokenEdge {
155
+ cursor: string;
156
+ node: TokenNode;
157
+ }
158
+
159
+ export interface TokensConnection {
160
+ edges: readonly TokenEdge[];
161
+ pageInfo: ApiPageInfo;
162
+ totalCount: number;
163
+ }
164
+
165
+ export interface PoolNode {
166
+ id: string;
167
+ chainId: number;
168
+ feeTier: string;
169
+ token0: {
170
+ id: string;
171
+ symbol: string;
172
+ name: string;
173
+ decimals: number;
174
+ address: string;
175
+ chainId: number;
176
+ };
177
+ token1: {
178
+ id: string;
179
+ symbol: string;
180
+ name: string;
181
+ decimals: number;
182
+ address: string;
183
+ chainId: number;
184
+ };
185
+ }
186
+
187
+ export interface PoolEdge {
188
+ cursor: string;
189
+ node: PoolNode;
190
+ }
191
+
192
+ export interface PoolsConnection {
193
+ edges: readonly PoolEdge[];
194
+ pageInfo: ApiPageInfo;
195
+ totalCount: number;
196
+ }
197
+
198
+ export interface VaultFilter {
199
+ chainId?: number;
200
+ protocol?: string;
201
+ isActive?: boolean;
202
+ beaconName?: string;
203
+ }
204
+
205
+ export interface TokenFilter {
206
+ chainId?: number;
207
+ symbol?: string;
208
+ }
209
+
210
+ export interface PoolFilter {
211
+ chainId?: number;
212
+ protocol?: string;
213
+ minLiquidity?: string;
214
+ }
215
+
216
+ export interface VaultApr {
217
+ apr: {
218
+ apr: number;
219
+ message: string;
220
+ };
221
+ beaconName: string;
222
+ vaultAddress: string;
223
+ }
224
+
225
+ export interface AprResponse {
226
+ vaults: VaultApr[];
227
+ }
228
+
229
+ export interface AprFilter {
230
+ chainId: number;
231
+ protocol: string;
232
+ }
233
+
234
+ export interface PendingRewardsParams {
235
+ vaultAddress: Address;
236
+ user: Address;
237
+ }
238
+
239
+ export interface PendingRewardsResponse {
240
+ rewards: bigint;
241
+ extraRewards: bigint;
242
+ }
243
+
244
+ export interface ClaimRewardsParams {
245
+ vaultAddress: Address;
246
+ }
247
+
248
+ export interface BlackholeAprDetailedParams {
249
+ vaultAddress: Address;
250
+ chainId: number;
251
+ }
252
+
253
+ export interface BlackholeSnapshotAnalysis {
254
+ period: number;
255
+ fromTimestamp: number;
256
+ toTimestamp: number;
257
+ fromDate: string;
258
+ toDate: string;
259
+ durationSeconds: number;
260
+ durationHours: number;
261
+ tvlUSD: number;
262
+ feesUSD: number;
263
+ apr: number;
264
+ }
265
+
266
+ export interface BlackholeAprDetailedResponse {
267
+ vaultAddress: string;
268
+ beaconName: string;
269
+ apr: {
270
+ apr: number;
271
+ message: string;
272
+ };
273
+ snapshotAnalysis: BlackholeSnapshotAnalysis[];
274
+ }
275
+
276
+ /**
277
+ * Client for interacting with Steer Protocol's Vault system.
278
+ * This client provides functionality for vault operations, deposit/withdraw, and comprehensive data fetching.
279
+ *
280
+ * **Features:**
281
+ * - Vault data includes associated pool information (pool address, fee tier) along with token details
282
+ * - Full pagination support for all data fetching methods
283
+ * - API client integration for efficient data retrieval
284
+ * - Backward compatibility with subgraph queries
285
+ *
286
+ * **Available API Client Methods:**
287
+ * - `getVaults()` - Get vaults with pagination and filtering
288
+ * - `getTokens()` - Get tokens with pagination and filtering
289
+ * - `getPools()` - Get pools with pagination and filtering
290
+ * - `getAllVaults()` - Get all vaults (auto-pagination)
291
+ * - `getAllTokens()` - Get all tokens (auto-pagination)
292
+ * - `getAllPools()` - Get all pools (auto-pagination)
293
+ *
294
+ * @example
295
+ * ```typescript
296
+ * import { createPublicClient, createWalletClient, http } from 'viem';
297
+ * import { mainnet } from 'viem/chains';
298
+ * import { VaultClient } from '@steerprotocol/sdk';
299
+ *
300
+ * // Create viem clients
301
+ * const publicClient = createPublicClient({
302
+ * chain: mainnet,
303
+ * transport: http()
304
+ * });
305
+ *
306
+ * const walletClient = createWalletClient({
307
+ * chain: mainnet,
308
+ * transport: http()
309
+ * });
310
+ *
311
+ * // Initialize the Vault client
312
+ * const vaultClient = new VaultClient(publicClient, walletClient, 'production');
313
+ *
314
+ * // Get vaults with pagination - includes pool information
315
+ * const vaults = await vaultClient.getVaults({ chainId: 1 }, 10, null);
316
+ *
317
+ * if (vaults.success && vaults.data) {
318
+ * vaults.data.edges.forEach((edge) => {
319
+ * const vault = edge.node;
320
+ * console.log(`${vault.token0.symbol}/${vault.token1.symbol} vault`);
321
+ * console.log(`Pool: ${vault.pool.id} (${vault.pool.feeTier} fee tier)`);
322
+ * console.log(`Protocol: ${vault.protocol} (${vault.beaconName})`);
323
+ * });
324
+ * }
325
+ *
326
+ * // Get all tokens for a chain
327
+ * const allTokens = await vaultClient.getAllTokens({ chainId: 1 });
328
+ *
329
+ * // Get pools with specific filters
330
+ * const pools = await vaultClient.getPools({
331
+ * chainId: 1,
332
+ * protocol: 'uniswap-v3'
333
+ * });
334
+ *
335
+ * // Traditional vault operations
336
+ * const depositTx = await vaultClient.deposit(depositParams);
337
+ * const withdrawTx = await vaultClient.withdraw(withdrawParams);
338
+ * ```
339
+ *
340
+ * @group Client
341
+ */
342
+ export class VaultClient extends SubgraphClient {
343
+ protected readonly apiClient: ReturnType<typeof createClient>;
344
+ protected readonly publicClient: PublicClient;
345
+ protected readonly walletClient: WalletClient;
346
+ private readonly depositClient: VaultDepositClient;
347
+ private readonly withdrawClient: VaultWithdrawClient;
348
+ public readonly singleAssetDepositClient: SingleAssetDepositClient;
349
+ private readonly subgraphVaultClient: SubgraphVaultClient;
350
+ private readonly subgraphStudioKey: string;
351
+
352
+ /**
353
+ * Creates a new instance of VaultClient
354
+ * @param publicClient - The public client for reading from the blockchain
355
+ * @param walletClient - The wallet client for writing to the blockchain
356
+ * @param environment - The environment to use ('production' or 'development')
357
+ * @param version - Optional API version to use (defaults to 'v1')
358
+ * @param subgraphStudioKey - Optional subgraph studio key for protocol data fetching
359
+ */
360
+ constructor(
361
+ publicClient: PublicClient,
362
+ walletClient: WalletClient,
363
+ environment: 'production' | 'development',
364
+ version: 'v1' = 'v1',
365
+ subgraphStudioKey?: string
366
+ ) {
367
+ const combinedClient = publicClient as PublicClient & WalletClient;
368
+ super(combinedClient);
369
+
370
+ const apiUrl = getApiUrl(environment, version);
371
+ this.apiClient = createClient(apiUrl);
372
+ this.publicClient = publicClient;
373
+ this.walletClient = walletClient;
374
+ this.depositClient = new VaultDepositClient(publicClient, walletClient);
375
+ this.withdrawClient = new VaultWithdrawClient(publicClient, walletClient);
376
+ this.singleAssetDepositClient = new SingleAssetDepositClient(publicClient, walletClient);
377
+ this.subgraphVaultClient = new SubgraphVaultClient();
378
+ this.subgraphStudioKey = subgraphStudioKey || '';
379
+ }
380
+
381
+ /**
382
+ * Gets vaults with pagination support
383
+ * @param filter - Optional filter criteria
384
+ * @param first - Number of items to fetch (default: 50)
385
+ * @param after - Cursor for pagination (null for first page)
386
+ * @returns Promise resolving to paginated vaults data
387
+ *
388
+ * @example
389
+ * ```typescript
390
+ * // Get first 20 vaults for Ethereum
391
+ * const vaults = await vaultClient.getVaults({ chainId: 1 }, 20);
392
+ *
393
+ * if (vaults.success && vaults.data) {
394
+ * vaults.data.edges.forEach((edge) => {
395
+ * const vault = edge.node;
396
+ * console.log(`Vault: ${vault.name}`);
397
+ * console.log(`Pool: ${vault.pool.id}`);
398
+ * console.log(`Pool Fee Tier: ${vault.pool.feeTier}`);
399
+ * console.log(`Tokens: ${vault.token0.symbol}/${vault.token1.symbol}`);
400
+ * });
401
+ * }
402
+ *
403
+ * // Get next page using cursor
404
+ * if (vaults.data?.pageInfo.hasNextPage) {
405
+ * const nextPage = await vaultClient.getVaults(
406
+ * { chainId: 1 },
407
+ * 20,
408
+ * vaults.data.pageInfo.endCursor
409
+ * );
410
+ * }
411
+ *
412
+ * // For additional pool details (liquidity, volume, etc.), use the PoolClient:
413
+ * // const poolDetails = await poolClient.getPoolById(vault.pool.id, protocol, chainId);
414
+ * ```
415
+ */
416
+ public async getVaults(
417
+ filter?: VaultFilter,
418
+ first: number = 50,
419
+ after?: string | null
420
+ ): Promise<SteerResponse<VaultsConnection>> {
421
+
422
+
423
+
424
+ if (filter?.chainId !== ChainId.Avalanche) {
425
+ try {
426
+ // First try the API client
427
+ const response = await this.apiClient.vaults({
428
+ filter,
429
+ first,
430
+ after
431
+ });
432
+
433
+ if (response.data?.vaults) {
434
+ // Transform the response to match our interface
435
+ const transformedData: VaultsConnection = {
436
+ edges: response.data.vaults.edges.map(edge => ({
437
+ cursor: edge.cursor,
438
+ node: {
439
+ id: edge.node.id,
440
+ chainId: edge.node.chainId,
441
+ vaultAddress: edge.node.vaultAddress,
442
+ protocol: edge.node.protocol,
443
+ beaconName: edge.node.beaconName,
444
+ protocolBaseType: edge.node.protocolBaseType,
445
+ name: edge.node.name || '',
446
+ feeApr: edge.node.feeApr || undefined,
447
+ stakingApr: edge.node.stakingApr || undefined,
448
+ merklApr: edge.node.merklApr || undefined,
449
+ pool: {
450
+ id: edge.node.pool?.id || '',
451
+ poolAddress: edge.node.pool?.poolAddress || '',
452
+ feeTier: edge.node.pool?.feeTier || '',
453
+ tick: undefined, // Not available in API response
454
+ liquidity: undefined, // Not available in API response
455
+ volumeUSD: undefined, // Not available in API response
456
+ totalValueLockedUSD: undefined // Not available in API response
457
+ },
458
+ token0: {
459
+ id: edge.node.token0?.id || '',
460
+ symbol: edge.node.token0?.symbol || '',
461
+ name: edge.node.token0?.name || '',
462
+ decimals: edge.node.token0?.decimals || 0,
463
+ address: edge.node.token0?.address || '',
464
+ chainId: edge.node.token0?.chainId || 0
465
+ },
466
+ token1: {
467
+ id: edge.node.token1?.id || '',
468
+ symbol: edge.node.token1?.symbol || '',
469
+ name: edge.node.token1?.name || '',
470
+ decimals: edge.node.token1?.decimals || 0,
471
+ address: edge.node.token1?.address || '',
472
+ chainId: edge.node.token1?.chainId || 0
473
+ }
474
+ }
475
+ })),
476
+ pageInfo: {
477
+ hasNextPage: response.data.vaults.pageInfo.hasNextPage,
478
+ endCursor: response.data.vaults.pageInfo.endCursor ?? null
479
+ },
480
+ totalCount: response.data.vaults.totalCount
481
+ };
482
+
483
+ return {
484
+ data: transformedData,
485
+ status: response.status,
486
+ success: true
487
+ };
488
+ }
489
+ } catch (apiError) {
490
+ console.warn('API client failed, falling back to subgraph:', apiError);
491
+ }
492
+ }
493
+
494
+ // Fallback to subgraph if API fails or returns no data
495
+ try {
496
+ return await this.getVaultsFromSubgraph(filter, first, after);
497
+ } catch (subgraphError) {
498
+ console.error('Both API and subgraph failed:', subgraphError);
499
+ return {
500
+ data: null,
501
+ status: 500,
502
+ success: false,
503
+ error: subgraphError instanceof Error ? subgraphError.message : 'Both API and subgraph requests failed'
504
+ };
505
+ }
506
+ }
507
+
508
+ /**
509
+ * Fallback method to fetch vaults from subgraph
510
+ * @param filter - Optional filter criteria
511
+ * @param first - Number of items to fetch (default: 50)
512
+ * @param after - Cursor for pagination (null for first page)
513
+ * @returns Promise resolving to paginated vaults data from subgraph
514
+ * @private
515
+ */
516
+ private async getVaultsFromSubgraph(
517
+ filter?: VaultFilter,
518
+ first: number = 50,
519
+ after?: string | null
520
+ ): Promise<SteerResponse<VaultsConnection>> {
521
+ try {
522
+ // Extract chainId from filter
523
+ const chainId = filter?.chainId;
524
+ if (!chainId) {
525
+ throw new Error('ChainId is required for subgraph fallback');
526
+ }
527
+
528
+ // Get chain enum from chainId
529
+
530
+ const chain = chainIdToName(chainId);
531
+
532
+ if (!chain) {
533
+ throw new Error(`Unsupported chainId: ${chainId}`);
534
+ }
535
+
536
+ // Get subgraph URL for this chain
537
+ const subgraphUrl = steerSubgraphConfig[chain];
538
+ if (!subgraphUrl) {
539
+ throw new Error(`No subgraph configured for chain: ${chain}`);
540
+ }
541
+
542
+ const beaconNames = [];
543
+
544
+ if (filter?.protocol) {
545
+ const beacon = getBeaconNameByProtocol(filter.protocol as Protocol);
546
+ beaconNames.push(beacon);
547
+
548
+ if (filter?.protocol === Protocol.Blackhole) {
549
+ beaconNames.push(MultiPositionManagers.MultiPositionBlackholeOld);
550
+ }
551
+ }
552
+
553
+ if (filter?.beaconName) {
554
+ beaconNames.push(filter.beaconName);
555
+ }
556
+
557
+ // Fetch all vaults from subgraph
558
+ const subgraphVaults = await this.subgraphVaultClient.getAllVaultsFromSubgraph({
559
+ subgraphUrl,
560
+ chainId,
561
+ showDeprecated: false,
562
+ showCurrentProtocol: false,
563
+ beaconNames: beaconNames
564
+ });
565
+
566
+ // Get all supported protocols for this chain
567
+ const supportedProtocols = getProtocolsForChainId(chainId, this.subgraphStudioKey);
568
+
569
+ // Fetch APR data for all protocols in parallel
570
+ const aprPromises = supportedProtocols.map(protocol =>
571
+ this.getAprs({ chainId, protocol }).catch(error => {
572
+ console.warn(`Failed to fetch APR for protocol ${protocol}:`, error);
573
+ return { success: false, data: null };
574
+ })
575
+ );
576
+
577
+ const aprResults = await Promise.all(aprPromises);
578
+
579
+ // Create a map of vault address to APR for quick lookup
580
+ const aprMap = new Map<string, number>();
581
+ aprResults && aprResults.forEach(aprResult => {
582
+ if (aprResult.success && aprResult.data) {
583
+ aprResult?.data?.vaults && aprResult.data.vaults.forEach(vaultApr => {
584
+ aprMap.set(vaultApr.vaultAddress.toLowerCase(), vaultApr.apr.apr);
585
+ });
586
+ }
587
+ });
588
+
589
+ // Transform to VaultsConnection format with pagination and populate APR data
590
+ const vaultsConnection = this.subgraphVaultClient.transformToVaultsConnection(
591
+ subgraphVaults,
592
+ chainId,
593
+ first,
594
+ aprMap,
595
+ after
596
+ );
597
+
598
+ // Enhance vault data with APR information
599
+ if (vaultsConnection.edges) {
600
+ vaultsConnection.edges = vaultsConnection.edges.map(edge => ({
601
+ ...edge,
602
+ node: {
603
+ ...edge.node,
604
+ feeApr: aprMap.get(edge.node.vaultAddress.toLowerCase()) || edge.node.feeApr
605
+ }
606
+ }));
607
+ }
608
+
609
+ return {
610
+ data: vaultsConnection,
611
+ status: 200,
612
+ success: true
613
+ };
614
+
615
+ } catch (error) {
616
+ console.error('Subgraph vault fetch failed:', error);
617
+ throw error;
618
+ }
619
+ }
620
+
621
+ /**
622
+ * Gets tokens with pagination support
623
+ * @param filter - Optional filter criteria
624
+ * @param first - Number of items to fetch (default: 50)
625
+ * @param after - Cursor for pagination (null for first page)
626
+ * @returns Promise resolving to paginated tokens data
627
+ *
628
+ * @example
629
+ * ```typescript
630
+ * // Get first 100 tokens
631
+ * const tokens = await vaultClient.getTokens({ chainId: 1 }, 100);
632
+ *
633
+ * // Filter by symbol
634
+ * const usdcTokens = await vaultClient.getTokens({ symbol: 'USDC' });
635
+ * ```
636
+ */
637
+ public async getTokens(
638
+ filter?: TokenFilter,
639
+ first: number = 50,
640
+ after?: string | null
641
+ ): Promise<SteerResponse<TokensConnection>> {
642
+ try {
643
+ const response = await this.apiClient.tokens({
644
+ filter,
645
+ first,
646
+ after
647
+ });
648
+
649
+ if (!response.data?.tokens) {
650
+ return {
651
+ data: null,
652
+ status: response.status,
653
+ success: true
654
+ };
655
+ }
656
+
657
+ // Transform the response to match our interface
658
+ const transformedData: TokensConnection = {
659
+ edges: response.data.tokens.edges.map(edge => ({
660
+ cursor: edge.cursor,
661
+ node: {
662
+ id: edge.node.id,
663
+ symbol: edge.node.symbol,
664
+ name: edge.node.name,
665
+ decimals: edge.node.decimals,
666
+ chainId: edge.node.chainId,
667
+ address: edge.node.address
668
+ }
669
+ })),
670
+ pageInfo: {
671
+ hasNextPage: response.data.tokens.pageInfo.hasNextPage,
672
+ endCursor: response.data.tokens.pageInfo.endCursor ?? null
673
+ },
674
+ totalCount: response.data.tokens.totalCount
675
+ };
676
+
677
+ return {
678
+ data: transformedData,
679
+ status: response.status,
680
+ success: true
681
+ };
682
+ } catch (error) {
683
+ return {
684
+ data: null,
685
+ status: 501,
686
+ success: false,
687
+ error: 'getTokens is not supported for this configuration'
688
+ };
689
+ }
690
+ }
691
+
692
+ /**
693
+ * Gets pools with pagination support
694
+ * @param filter - Optional filter criteria
695
+ * @param first - Number of items to fetch (default: 50)
696
+ * @param after - Cursor for pagination (null for first page)
697
+ * @returns Promise resolving to paginated pools data
698
+ *
699
+ * @example
700
+ * ```typescript
701
+ * // Get first 50 pools for Ethereum
702
+ * const pools = await vaultClient.getPools({ chainId: 1 }, 50);
703
+ *
704
+ * // Filter by minimum liquidity
705
+ * const liquidPools = await vaultClient.getPools({
706
+ * chainId: 1,
707
+ * minLiquidity: '1000000'
708
+ * });
709
+ * ```
710
+ */
711
+ public async getPools(
712
+ filter?: PoolFilter,
713
+ first: number = 50,
714
+ after?: string | null
715
+ ): Promise<SteerResponse<PoolsConnection>> {
716
+ try {
717
+ const response = await this.apiClient.pools({
718
+ filter,
719
+ first,
720
+ after
721
+ });
722
+
723
+ if (!response.data?.pools) {
724
+ return {
725
+ data: null,
726
+ status: response.status,
727
+ success: true
728
+ };
729
+ }
730
+
731
+ // Transform the response to match our interface
732
+ const transformedData: PoolsConnection = {
733
+ edges: response.data.pools.edges.map(edge => ({
734
+ cursor: edge.cursor,
735
+ node: {
736
+ id: edge.node.id,
737
+ chainId: edge.node.chainId,
738
+ feeTier: edge.node.feeTier,
739
+ token0: {
740
+ id: edge.node.token0?.id || '',
741
+ symbol: edge.node.token0?.symbol || '',
742
+ name: edge.node.token0?.name || '',
743
+ decimals: edge.node.token0?.decimals || 0,
744
+ address: edge.node.token0?.address || '',
745
+ chainId: edge.node.token0?.chainId || 0
746
+ },
747
+ token1: {
748
+ id: edge.node.token1?.id || '',
749
+ symbol: edge.node.token1?.symbol || '',
750
+ name: edge.node.token1?.name || '',
751
+ decimals: edge.node.token1?.decimals || 0,
752
+ address: edge.node.token1?.address || '',
753
+ chainId: edge.node.token1?.chainId || 0
754
+ }
755
+ }
756
+ })),
757
+ pageInfo: {
758
+ hasNextPage: response.data.pools.pageInfo.hasNextPage,
759
+ endCursor: response.data.pools.pageInfo.endCursor ?? null
760
+ },
761
+ totalCount: response.data.pools.totalCount
762
+ };
763
+
764
+ return {
765
+ data: transformedData,
766
+ status: response.status,
767
+ success: true
768
+ };
769
+ } catch (error) {
770
+ return {
771
+ data: null,
772
+ status: 501,
773
+ success: false,
774
+ error: 'getPools is not supported for this configuration'
775
+ };
776
+ }
777
+ }
778
+
779
+ /**
780
+ * Gets all vaults by fetching all pages automatically
781
+ * @param filter - Optional filter criteria
782
+ * @param batchSize - Number of items to fetch per batch (default: 100)
783
+ * @returns Promise resolving to all vaults data (includes pool information)
784
+ *
785
+ * @example
786
+ * ```typescript
787
+ * // Get all vaults for a specific chain
788
+ * const allVaults = await vaultClient.getAllVaults({ chainId: 1 });
789
+ * console.log(`Found ${allVaults.data?.length} vaults`);
790
+ *
791
+ * // Access pool information for each vault
792
+ * allVaults.data?.forEach(vault => {
793
+ * console.log(`Vault ${vault.name}: Pool ${vault.pool.id} (${vault.pool.feeTier} fee)`);
794
+ * });
795
+ * ```
796
+ */
797
+ public async getAllVaults(
798
+ filter?: VaultFilter,
799
+ batchSize: number = 100
800
+ ): Promise<SteerResponse<VaultNode[]>> {
801
+ try {
802
+ const allVaults: VaultNode[] = [];
803
+ let hasNextPage = true;
804
+ let cursor: string | null = null;
805
+
806
+ while (hasNextPage) {
807
+ const response = await this.getVaults(filter, batchSize, cursor);
808
+
809
+ if (!response.success || !response.data) {
810
+ return {
811
+ data: null,
812
+ status: response.status,
813
+ success: false,
814
+ error: response.error || 'Failed to fetch vaults'
815
+ };
816
+ }
817
+
818
+ allVaults.push(...response.data.edges.map(edge => edge.node));
819
+ hasNextPage = response.data.pageInfo.hasNextPage;
820
+ cursor = response.data.pageInfo.endCursor;
821
+ }
822
+
823
+ return {
824
+ data: allVaults,
825
+ status: 200,
826
+ success: true
827
+ };
828
+ } catch (error) {
829
+ return {
830
+ data: null,
831
+ status: 500,
832
+ success: false,
833
+ error: error instanceof Error ? error.message : 'Unknown error occurred'
834
+ };
835
+ }
836
+ }
837
+
838
+ /**
839
+ * Gets all tokens by fetching all pages automatically
840
+ * @param filter - Optional filter criteria
841
+ * @param batchSize - Number of items to fetch per batch (default: 100)
842
+ * @returns Promise resolving to all tokens data
843
+ */
844
+ public async getAllTokens(
845
+ filter?: TokenFilter,
846
+ batchSize: number = 100
847
+ ): Promise<SteerResponse<TokenNode[]>> {
848
+ try {
849
+ const allTokens: TokenNode[] = [];
850
+ let hasNextPage = true;
851
+ let cursor: string | null = null;
852
+
853
+ while (hasNextPage) {
854
+ const response = await this.getTokens(filter, batchSize, cursor);
855
+
856
+ if (!response.success || !response.data) {
857
+ return {
858
+ data: null,
859
+ status: response.status,
860
+ success: false,
861
+ error: response.error || 'Failed to fetch tokens'
862
+ };
863
+ }
864
+
865
+ allTokens.push(...response.data.edges.map(edge => edge.node));
866
+ hasNextPage = response.data.pageInfo.hasNextPage;
867
+ cursor = response.data.pageInfo.endCursor;
868
+ }
869
+
870
+ return {
871
+ data: allTokens,
872
+ status: 200,
873
+ success: true
874
+ };
875
+ } catch (error) {
876
+ return {
877
+ data: null,
878
+ status: 500,
879
+ success: false,
880
+ error: error instanceof Error ? error.message : 'Unknown error occurred'
881
+ };
882
+ }
883
+ }
884
+
885
+ /**
886
+ * Gets all pools by fetching all pages automatically
887
+ * @param filter - Optional filter criteria
888
+ * @param batchSize - Number of items to fetch per batch (default: 100)
889
+ * @returns Promise resolving to all pools data
890
+ */
891
+ public async getAllPools(
892
+ filter?: PoolFilter,
893
+ batchSize: number = 100
894
+ ): Promise<SteerResponse<PoolNode[]>> {
895
+ try {
896
+ const allPools: PoolNode[] = [];
897
+ let hasNextPage = true;
898
+ let cursor: string | null = null;
899
+
900
+ while (hasNextPage) {
901
+ const response = await this.getPools(filter, batchSize, cursor);
902
+
903
+ if (!response.success || !response.data) {
904
+ return {
905
+ data: null,
906
+ status: response.status,
907
+ success: false,
908
+ error: response.error || 'Failed to fetch pools'
909
+ };
910
+ }
911
+
912
+ allPools.push(...response.data.edges.map(edge => edge.node));
913
+ hasNextPage = response.data.pageInfo.hasNextPage;
914
+ cursor = response.data.pageInfo.endCursor;
915
+ }
916
+
917
+ return {
918
+ data: allPools,
919
+ status: 200,
920
+ success: true
921
+ };
922
+ } catch (error) {
923
+ return {
924
+ data: null,
925
+ status: 501,
926
+ success: false,
927
+ error: 'getAllPools is not supported for this configuration'
928
+ };
929
+ }
930
+ }
931
+
932
+ /**
933
+ * Gets APR data for vaults from the Steer Finance API
934
+ * @param filter - Filter containing chainId and protocol
935
+ * @returns Promise resolving to APR data for vaults
936
+ *
937
+ * @example
938
+ * ```typescript
939
+ * // Get APRs for Uniswap vaults on Nibiru (chainId: 6900)
940
+ * const aprs = await vaultClient.getAprs({ chainId: 6900, protocol: 'Uniswap' });
941
+ *
942
+ * if (aprs.success && aprs.data) {
943
+ * aprs.data.vaults.forEach(vault => {
944
+ * console.log(`Vault: ${vault.vaultAddress}`);
945
+ * console.log(`APR: ${vault.apr.apr}% (${vault.apr.message})`);
946
+ * console.log(`Beacon: ${vault.beaconName}`);
947
+ * });
948
+ * }
949
+ * ```
950
+ */
951
+ public async getAprs(filter: AprFilter): Promise<SteerResponse<AprResponse>> {
952
+ try {
953
+ const { chainId, protocol } = filter;
954
+
955
+ // Build the API URL
956
+ const apiUrl = `https://api.steer.finance/getAprs?chainId=${chainId}&dexName=${protocol}`;
957
+
958
+ const response = await fetch(apiUrl, {
959
+ method: 'GET',
960
+ headers: {
961
+ 'Content-Type': 'application/json',
962
+ },
963
+ });
964
+
965
+ if (!response.ok) {
966
+ return {
967
+ data: null,
968
+ status: response.status,
969
+ success: false,
970
+ error: `API request failed: ${response.statusText}`
971
+ };
972
+ }
973
+
974
+ const data: AprResponse = await response.json();
975
+
976
+ return {
977
+ data,
978
+ status: response.status,
979
+ success: true
980
+ };
981
+
982
+ } catch (error) {
983
+ return {
984
+ data: null,
985
+ status: 501,
986
+ success: false,
987
+ error: 'getAprs is not supported for this configuration'
988
+ };
989
+ }
990
+ }
991
+
992
+ /**
993
+ * Gets detailed APR data for a specific Blackhole vault from the Steer Finance API
994
+ * This includes snapshot analysis with historical APR data over different time periods
995
+ *
996
+ * @param params - Parameters containing vault address and chain ID
997
+ * @returns Promise resolving to detailed APR data including snapshot analysis
998
+ *
999
+ * @example
1000
+ * ```typescript
1001
+ * // Get detailed APR for a Blackhole vault on Avalanche
1002
+ * const aprDetails = await vaultClient.getBlackholeAprDetailed({
1003
+ * vaultAddress: '0x5c1d454f08975c554f6b70a84fd8859fbdfcc069',
1004
+ * chainId: 43114
1005
+ * });
1006
+ *
1007
+ * if (aprDetails.success && aprDetails.data) {
1008
+ * console.log(`Vault: ${aprDetails.data.vaultAddress}`);
1009
+ * console.log(`Beacon: ${aprDetails.data.beaconName}`);
1010
+ * console.log(`Current APR: ${aprDetails.data.apr.apr}% (${aprDetails.data.apr.message})`);
1011
+ *
1012
+ * // Access snapshot analysis
1013
+ * aprDetails.data.snapshotAnalysis.forEach(snapshot => {
1014
+ * console.log(`Period ${snapshot.period}:`);
1015
+ * console.log(` Duration: ${snapshot.durationHours} hours`);
1016
+ * console.log(` TVL: $${snapshot.tvlUSD}`);
1017
+ * console.log(` Fees: $${snapshot.feesUSD}`);
1018
+ * console.log(` APR: ${snapshot.apr}%`);
1019
+ * });
1020
+ * }
1021
+ * ```
1022
+ */
1023
+ public async getBlackholeVaultApr(params: BlackholeAprDetailedParams): Promise<SteerResponse<BlackholeAprDetailedResponse>> {
1024
+ try {
1025
+ const { vaultAddress, chainId } = params;
1026
+
1027
+ // Build the API URL
1028
+ const apiUrl = `https://api.steer.finance/blackhole/apr-detailed?vaultAddress=${vaultAddress}&chainId=${chainId}`;
1029
+
1030
+ const response = await fetch(apiUrl, {
1031
+ method: 'GET',
1032
+ headers: {
1033
+ 'Content-Type': 'application/json',
1034
+ },
1035
+ });
1036
+
1037
+ if (!response.ok) {
1038
+ return {
1039
+ data: null,
1040
+ status: response.status,
1041
+ success: false,
1042
+ error: `API request failed: ${response.statusText}`
1043
+ };
1044
+ }
1045
+
1046
+ const data: BlackholeAprDetailedResponse = await response.json();
1047
+
1048
+ return {
1049
+ data,
1050
+ status: response.status,
1051
+ success: true
1052
+ };
1053
+
1054
+ } catch (error) {
1055
+ return {
1056
+ data: null,
1057
+ status: 500,
1058
+ success: false,
1059
+ error: error instanceof Error ? error.message : 'Failed to fetch Blackhole APR details'
1060
+ };
1061
+ }
1062
+ }
1063
+
1064
+ /**
1065
+ * Gets the latest vaults from the subgraph
1066
+ */
1067
+ public async getLatestVaults<T>(): Promise<SteerResponse<T>> {
1068
+ const query = `
1069
+ query latestVaults{
1070
+ vaults(first: 250, skip: 0, orderBy: createdAt, orderDirection: desc, where: {
1071
+ gasUsed_gt: 0
1072
+ } ) {
1073
+ id
1074
+ beaconName
1075
+ createdAt
1076
+ gasUsed
1077
+ token1Symbol
1078
+ token0Symbol
1079
+ token0
1080
+ token1
1081
+ token0Name
1082
+ token1Name
1083
+ strategyToken {
1084
+ id
1085
+ name
1086
+ creator {
1087
+ id
1088
+ }
1089
+ }
1090
+ }
1091
+ }
1092
+ `;
1093
+
1094
+ return this.executeSubgraphQuery<T>(query);
1095
+ }
1096
+
1097
+ /**
1098
+ * Deposits tokens into a vault
1099
+ * @param params The deposit parameters
1100
+ */
1101
+ public async deposit(params: VaultDepositParams): Promise<SteerResponse<Hash>> {
1102
+ return this.depositClient.deposit(params);
1103
+ }
1104
+
1105
+ /**
1106
+ * Prepares the transaction data for depositing tokens into a vault without executing it
1107
+ * @param params The deposit parameters
1108
+ */
1109
+ public async prepareDepositTx(params: VaultDepositParams): Promise<SteerResponse<{
1110
+ address: Address;
1111
+ abi: {
1112
+ type: string;
1113
+ inputs: {
1114
+ name: string;
1115
+ internalType: string;
1116
+ type: string;
1117
+ }[];
1118
+ name: string;
1119
+ outputs: {
1120
+ internalType: string;
1121
+ name: string;
1122
+ type: string;
1123
+ }[];
1124
+ stateMutability: string;
1125
+ }[];
1126
+ functionName: string;
1127
+ args: readonly [Address, bigint, bigint, bigint, bigint, Address] | readonly [bigint, bigint, bigint, bigint, Address];
1128
+ }>> {
1129
+ return this.depositClient.prepareDepositTx(params);
1130
+ }
1131
+
1132
+ /**
1133
+ * Gets the deposit ratio for a vault
1134
+ * @param vaultAddress The vault address
1135
+ */
1136
+ public async getDepositRatio(vaultAddress: Address, zeroForOne: boolean): Promise<SteerResponse<VaultDetailsResponse>> {
1137
+ try {
1138
+ const ratioResponse = await this.depositClient.getDepositRatio(vaultAddress, zeroForOne);
1139
+ if (!ratioResponse.success || !ratioResponse.data) {
1140
+ throw new Error(ratioResponse.error || 'Failed to get deposit ratio');
1141
+ }
1142
+
1143
+ return {
1144
+ data: {
1145
+ details: ratioResponse.data.vaultDetails,
1146
+ ratio: ratioResponse.data.ratio,
1147
+ },
1148
+ status: 200,
1149
+ success: true
1150
+ };
1151
+ } catch (error) {
1152
+ return {
1153
+ data: null,
1154
+ status: 500,
1155
+ success: false,
1156
+ error: error instanceof Error ? error.message : 'Unknown error occurred'
1157
+ };
1158
+ }
1159
+ }
1160
+
1161
+ /**
1162
+ * Withdraws tokens from a vault
1163
+ * @param params The withdrawal parameters
1164
+ */
1165
+ public async withdraw(params: VaultWithdrawParams): Promise<SteerResponse<Hash>> {
1166
+ return this.withdrawClient.withdraw(params);
1167
+ }
1168
+
1169
+ /**
1170
+ * Prepares the transaction data for withdrawing tokens from a vault without executing it
1171
+ * @param params The withdrawal parameters
1172
+ */
1173
+ public async prepareWithdrawTx(params: VaultWithdrawParams): Promise<SteerResponse<{
1174
+ address: Address;
1175
+ abi: {
1176
+ type: string;
1177
+ inputs: {
1178
+ name: string;
1179
+ internalType: string;
1180
+ type: string;
1181
+ }[];
1182
+ name: string;
1183
+ outputs: never[];
1184
+ stateMutability: string;
1185
+ }[];
1186
+ functionName: string;
1187
+ args: readonly [
1188
+ bigint,
1189
+ bigint,
1190
+ bigint,
1191
+ Address
1192
+ ];
1193
+ }>> {
1194
+ return this.withdrawClient.prepareWithdrawTx(params);
1195
+ }
1196
+
1197
+ /**
1198
+ * Calculates the amount of tokens that would be received for a given amount of LP tokens
1199
+ * @param vaultAddress The vault address
1200
+ * @param lpToken The amount of LP tokens to calculate for
1201
+ */
1202
+ public async getTokensFromLp(
1203
+ vaultAddress: Address,
1204
+ lpToken: bigint
1205
+ ): Promise<SteerResponse<TokensFromLpResponse>> {
1206
+ return this.withdrawClient.getTokensFromLp(vaultAddress, lpToken);
1207
+ }
1208
+
1209
+ /**
1210
+ * Approves spending of tokens for a vault
1211
+ * @param params The approval parameters
1212
+ */
1213
+ public async approve(params: VaultApproveParams): Promise<SteerResponse<Hash>> {
1214
+ try {
1215
+ const account = await this.walletClient.getAddresses();
1216
+ if (!account[0]) throw new Error('No account found');
1217
+
1218
+ const { request } = await this.publicClient.simulateContract({
1219
+ address: params.vaultAddress,
1220
+ abi: VAULT_ABI,
1221
+ functionName: 'approve',
1222
+ args: [params.spender, params.amount],
1223
+ account: account[0],
1224
+ });
1225
+
1226
+ const hash = await this.walletClient.writeContract(request);
1227
+
1228
+ return {
1229
+ data: hash,
1230
+ status: 200,
1231
+ success: true,
1232
+ };
1233
+ } catch (error) {
1234
+ return {
1235
+ data: null,
1236
+ status: 500,
1237
+ success: false,
1238
+ error: error instanceof Error ? error.message : 'Unknown error occurred',
1239
+ };
1240
+ }
1241
+ }
1242
+
1243
+ /**
1244
+ * Gets the allowance for a vault token
1245
+ * @param params The allowance parameters
1246
+ */
1247
+ public async allowance(params: VaultAllowanceParams): Promise<SteerResponse<bigint>> {
1248
+ try {
1249
+ const allowance = await this.publicClient.readContract({
1250
+ address: params.vaultAddress,
1251
+ abi: VAULT_ABI,
1252
+ functionName: 'allowance',
1253
+ args: [params.owner, params.spender],
1254
+ });
1255
+
1256
+ return {
1257
+ data: allowance,
1258
+ status: 200,
1259
+ success: true,
1260
+ };
1261
+ } catch (error) {
1262
+ return {
1263
+ data: null,
1264
+ status: 500,
1265
+ success: false,
1266
+ error: error instanceof Error ? error.message : 'Unknown error occurred',
1267
+ };
1268
+ }
1269
+ }
1270
+
1271
+ /**
1272
+ * Gets the balance of a vault token for an account
1273
+ * @param params The balance parameters
1274
+ */
1275
+ public async balanceOf(params: VaultBalanceParams): Promise<SteerResponse<bigint>> {
1276
+ try {
1277
+ const balance = await this.publicClient.readContract({
1278
+ address: params.vaultAddress,
1279
+ abi: VAULT_ABI,
1280
+ functionName: 'balanceOf',
1281
+ args: [params.account],
1282
+ });
1283
+
1284
+ return {
1285
+ data: balance,
1286
+ status: 200,
1287
+ success: true,
1288
+ };
1289
+ } catch (error) {
1290
+ return {
1291
+ data: null,
1292
+ status: 500,
1293
+ success: false,
1294
+ error: error instanceof Error ? error.message : 'Unknown error occurred',
1295
+ };
1296
+ }
1297
+ }
1298
+
1299
+ /**
1300
+ * Gets the total supply of a vault token
1301
+ * @param vaultAddress The vault address
1302
+ */
1303
+ public async totalSupply(vaultAddress: Address): Promise<SteerResponse<bigint>> {
1304
+ try {
1305
+ const totalSupply = await this.publicClient.readContract({
1306
+ address: vaultAddress,
1307
+ abi: VAULT_ABI,
1308
+ functionName: 'totalSupply',
1309
+ });
1310
+
1311
+ return {
1312
+ data: totalSupply,
1313
+ status: 200,
1314
+ success: true,
1315
+ };
1316
+ } catch (error) {
1317
+ return {
1318
+ data: null,
1319
+ status: 500,
1320
+ success: false,
1321
+ error: error instanceof Error ? error.message : 'Unknown error occurred',
1322
+ };
1323
+ }
1324
+ }
1325
+
1326
+ /**
1327
+ * Gets the decimals of a vault token
1328
+ * @param vaultAddress The vault address
1329
+ */
1330
+ public async decimals(vaultAddress: Address): Promise<SteerResponse<number>> {
1331
+ try {
1332
+ const decimals = await this.publicClient.readContract({
1333
+ address: vaultAddress,
1334
+ abi: VAULT_ABI,
1335
+ functionName: 'decimals',
1336
+ });
1337
+
1338
+ return {
1339
+ data: decimals,
1340
+ status: 200,
1341
+ success: true,
1342
+ };
1343
+ } catch (error) {
1344
+ return {
1345
+ data: null,
1346
+ status: 500,
1347
+ success: false,
1348
+ error: error instanceof Error ? error.message : 'Unknown error occurred',
1349
+ };
1350
+ }
1351
+ }
1352
+
1353
+ /**
1354
+ * Gets the symbol of a vault token
1355
+ * @param vaultAddress The vault address
1356
+ */
1357
+ public async symbol(vaultAddress: Address): Promise<SteerResponse<string>> {
1358
+ try {
1359
+ const result = await this.publicClient.readContract({
1360
+ address: vaultAddress,
1361
+ abi: VAULT_ABI,
1362
+ functionName: 'symbol',
1363
+ });
1364
+
1365
+ return {
1366
+ data: result,
1367
+ status: 200,
1368
+ success: true,
1369
+ };
1370
+ } catch (error) {
1371
+ return {
1372
+ data: null,
1373
+ status: 500,
1374
+ success: false,
1375
+ error: error instanceof Error ? error.message : 'Unknown error occurred',
1376
+ };
1377
+ }
1378
+ }
1379
+
1380
+ /**
1381
+ * Gets the name of a vault token
1382
+ * @param vaultAddress The vault address
1383
+ */
1384
+ public async name(vaultAddress: Address): Promise<SteerResponse<string>> {
1385
+ try {
1386
+ const result = await this.publicClient.readContract({
1387
+ address: vaultAddress,
1388
+ abi: VAULT_ABI,
1389
+ functionName: 'name',
1390
+ });
1391
+
1392
+ return {
1393
+ data: result,
1394
+ status: 200,
1395
+ success: true,
1396
+ };
1397
+ } catch (error) {
1398
+ return {
1399
+ data: null,
1400
+ status: 500,
1401
+ success: false,
1402
+ error: error instanceof Error ? error.message : 'Unknown error occurred',
1403
+ };
1404
+ }
1405
+ }
1406
+
1407
+ public async pool(vaultAddress: Address): Promise<SteerResponse<Address>> {
1408
+ try {
1409
+ const pool = await this.publicClient.readContract({
1410
+ address: vaultAddress,
1411
+ abi: VAULT_ABI,
1412
+ functionName: 'pool',
1413
+ });
1414
+
1415
+ return {
1416
+ data: pool,
1417
+ status: 200,
1418
+ success: true,
1419
+ };
1420
+ } catch (error) {
1421
+ return {
1422
+ data: null,
1423
+ status: 500,
1424
+ success: false,
1425
+ error: error instanceof Error ? error.message : 'Unknown error occurred',
1426
+ };
1427
+ }
1428
+ }
1429
+
1430
+ /**
1431
+ * Gets a pool instance for a vault
1432
+ * @param params The pool instance parameters
1433
+ */
1434
+ public async getPoolInstance(params: PoolInstanceParams): Promise<SteerResponse<PoolV3>> {
1435
+ return this.depositClient.getPoolInstance(params);
1436
+ }
1437
+
1438
+ /**
1439
+ * Gets the corresponding token amount based on the provided token amount and ratio
1440
+ * @param vaultAddress The vault address
1441
+ * @param amount The amount of token to calculate the corresponding amount for
1442
+ * @param zeroForOne If true, calculates token1 amount for given token0, if false calculates token0 amount for given token1
1443
+ */
1444
+ public async getCorrespondingTokenAmount(
1445
+ vaultAddress: Address,
1446
+ amount: bigint,
1447
+ zeroForOne: boolean
1448
+ ): Promise<SteerResponse<bigint>> {
1449
+ return this.depositClient.getCorrespondingTokenAmount(vaultAddress, amount, zeroForOne);
1450
+ }
1451
+
1452
+ // Single-Asset Deposit Methods
1453
+
1454
+ /**
1455
+ * Previews a single-asset deposit by running all simulation steps
1456
+ * This allows users to see the expected outcome before executing the transaction
1457
+ *
1458
+ * @param params - Single-asset deposit parameters
1459
+ * @param poolAddress - Address of the pool (must be provided separately)
1460
+ * @returns Promise resolving to the complete deposit preview
1461
+ *
1462
+ * @example
1463
+ * ```typescript
1464
+ * const preview = await vaultClient.previewSingleAssetDeposit({
1465
+ * assets: parseEther('100'),
1466
+ * receiver: userAddress,
1467
+ * vault: vaultAddress,
1468
+ * isToken0: true,
1469
+ * depositSlippagePercent: 5n,
1470
+ * swapSlippageBP: 500,
1471
+ * ammType: AMMType.UniswapV3,
1472
+ * singleAssetDepositContract: contractAddress
1473
+ * }, poolAddress);
1474
+ *
1475
+ * if (preview.success) {
1476
+ * console.log('Expected LP tokens:', preview.data.lpEstimation.lpTokens);
1477
+ * console.log('Swap amount:', preview.data.swapAmount);
1478
+ * }
1479
+ * ```
1480
+ */
1481
+ public async previewSingleAssetDeposit(
1482
+ params: SingleAssetDepositParams,
1483
+ poolAddress: Address
1484
+ ): Promise<SteerResponse<SingleAssetDepositPreview>> {
1485
+ return this.singleAssetDepositClient.previewDeposit(params, poolAddress);
1486
+ }
1487
+
1488
+ /**
1489
+ * Executes a single-asset deposit transaction
1490
+ *
1491
+ * @param params - Single-asset deposit parameters
1492
+ * @returns Promise resolving to the transaction hash
1493
+ *
1494
+ * @example
1495
+ * ```typescript
1496
+ * const result = await vaultClient.singleAssetDeposit({
1497
+ * assets: parseEther('100'),
1498
+ * receiver: userAddress,
1499
+ * vault: vaultAddress,
1500
+ * isToken0: true,
1501
+ * depositSlippagePercent: 5n,
1502
+ * swapSlippageBP: 500,
1503
+ * ammType: AMMType.UniswapV3,
1504
+ * singleAssetDepositContract: contractAddress
1505
+ * });
1506
+ *
1507
+ * if (result.success) {
1508
+ * console.log('Transaction hash:', result.data);
1509
+ * }
1510
+ * ```
1511
+ */
1512
+ public async singleAssetDeposit(params: SingleAssetDepositParams): Promise<SteerResponse<Hash>> {
1513
+ return this.singleAssetDepositClient.deposit(params);
1514
+ }
1515
+
1516
+ /**
1517
+ * Prepares a single-asset deposit transaction without executing it
1518
+ * Useful for batching transactions or custom execution logic
1519
+ *
1520
+ * @param params - Single-asset deposit parameters
1521
+ * @returns Promise resolving to the prepared transaction data
1522
+ */
1523
+ public async prepareSingleAssetDepositTx(params: SingleAssetDepositParams) {
1524
+ return this.singleAssetDepositClient.prepareDepositTx(params);
1525
+ }
1526
+
1527
+ /**
1528
+ * Validates single-asset deposit parameters
1529
+ *
1530
+ * @param params - Parameters to validate
1531
+ * @throws Error if parameters are invalid
1532
+ */
1533
+ public validateSingleAssetDepositParams(params: SingleAssetDepositParams): void {
1534
+ return this.singleAssetDepositClient.validateDepositParams(params);
1535
+ }
1536
+
1537
+ // Reward Management Methods
1538
+
1539
+ /**
1540
+ * Calculates pending rewards for a user from a vault
1541
+ * This is a view function that doesn't modify state
1542
+ *
1543
+ * @param params - Parameters containing vault address and user address
1544
+ * @returns Promise resolving to pending rewards data or zero values if function reverts
1545
+ *
1546
+ * @example
1547
+ * ```typescript
1548
+ * const pendingRewards = await vaultClient.calculatePendingRewards({
1549
+ * vaultAddress: '0x123...',
1550
+ * user: '0xabc...'
1551
+ * });
1552
+ *
1553
+ * if (pendingRewards.success && pendingRewards.data) {
1554
+ * console.log('Rewards:', pendingRewards.data.rewards);
1555
+ * console.log('Extra Rewards:', pendingRewards.data.extraRewards);
1556
+ * }
1557
+ * ```
1558
+ */
1559
+ public async calculatePendingRewards(params: PendingRewardsParams): Promise<SteerResponse<PendingRewardsResponse>> {
1560
+ try {
1561
+ const result = await this.publicClient.readContract({
1562
+ address: params.vaultAddress,
1563
+ abi: REWARD_FUNCTIONS_ABI,
1564
+ functionName: 'calculatePendingRewards',
1565
+ args: [params.user],
1566
+ }) as [bigint, bigint];
1567
+
1568
+ return {
1569
+ data: {
1570
+ rewards: result[0],
1571
+ extraRewards: result[1]
1572
+ },
1573
+ status: 200,
1574
+ success: true,
1575
+ };
1576
+ } catch (error) {
1577
+ // If the function reverts or doesn't exist, return zero values
1578
+ console.warn('calculatePendingRewards failed, returning zero values:', error);
1579
+ return {
1580
+ data: {
1581
+ rewards: 0n,
1582
+ extraRewards: 0n
1583
+ },
1584
+ status: 200,
1585
+ success: true,
1586
+ };
1587
+ }
1588
+ }
1589
+
1590
+ /**
1591
+ * Claims pending rewards from a vault using the claimBlackHolePendingRewards function
1592
+ *
1593
+ * @param params - Parameters containing vault address
1594
+ * @returns Promise resolving to transaction hash or zero values if function reverts
1595
+ *
1596
+ * @example
1597
+ * ```typescript
1598
+ * const claimResult = await vaultClient.claimPendingRewards({
1599
+ * vaultAddress: '0x123...'
1600
+ * });
1601
+ *
1602
+ * if (claimResult.success && claimResult.data) {
1603
+ * console.log('Claim transaction hash:', claimResult.data);
1604
+ * }
1605
+ * ```
1606
+ */
1607
+ public async claimBlackholePendingRewards(params: ClaimRewardsParams): Promise<SteerResponse<Hash | PendingRewardsResponse>> {
1608
+ try {
1609
+ const account = await this.walletClient.getAddresses();
1610
+ if (!account[0]) throw new Error('No account found');
1611
+
1612
+ const { request } = await this.publicClient.simulateContract({
1613
+ address: params.vaultAddress,
1614
+ abi: REWARD_FUNCTIONS_ABI,
1615
+ functionName: 'claimUserRewards',
1616
+ args: [],
1617
+ account: account[0],
1618
+ });
1619
+
1620
+ const hash = await this.walletClient.writeContract(request);
1621
+
1622
+ return {
1623
+ data: hash,
1624
+ status: 200,
1625
+ success: true,
1626
+ };
1627
+ } catch (error) {
1628
+ console.error('claimBlackHolePendingRewards failed, error:', error);
1629
+ // If the function reverts or doesn't exist, return zero values instead of transaction hash
1630
+ console.warn('claimBlackHolePendingRewards failed, returning zero values:', error);
1631
+ return {
1632
+ data: {
1633
+ rewards: 0n,
1634
+ extraRewards: 0n
1635
+ },
1636
+ status: 200,
1637
+ success: true,
1638
+ };
1639
+ }
1640
+ }
1641
+
1642
+ }