@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,1011 @@
1
+ import { createPublicClient, createTestClient, createWalletClient, http, publicActions, walletActions } from 'viem';
2
+ import { privateKeyToAccount } from 'viem/accounts';
3
+ import { avalanche, foundry, polygon, ronin } from 'viem/chains';
4
+ import { VaultClient } from '../../base/VaultClient.js';
5
+ import { SteerClient } from '../../client.js';
6
+
7
+ describe('VaultClient', () => {
8
+ let client: VaultClient;
9
+ // let viemClient: TestClient;
10
+
11
+ beforeEach(() => {
12
+ const testClient = createTestClient({
13
+ account: privateKeyToAccount("0x40199ba8875ac583658a7e936e16354f4bf1ea54dac73a2bc24fd17159ceb821"),
14
+ chain: {
15
+ ...foundry,
16
+ id: 137
17
+ },
18
+ mode: 'anvil',
19
+ transport: http(),
20
+ })
21
+ .extend(publicActions)
22
+ .extend(walletActions);
23
+
24
+ // @ts-expect-error test client is not a PublicClient
25
+ client = new VaultClient(testClient);
26
+ // viemClient = testClient;
27
+ });
28
+
29
+ describe('getLatestVaults', () => {
30
+ it('should fetch latest vaults successfully', async () => {
31
+ const response = await client.getLatestVaults();
32
+ expect(response.success).toBe(true);
33
+ expect(response.status).toBe(200);
34
+ expect(response.data).toBeDefined();
35
+ });
36
+
37
+
38
+ it('should handle errors gracefully', async () => {
39
+ global.fetch = jest.fn().mockImplementationOnce(() =>
40
+ Promise.resolve({
41
+ ok: false,
42
+ status: 500,
43
+ })
44
+ );
45
+
46
+ const response = await client.getLatestVaults();
47
+ expect(response.success).toBe(false);
48
+ expect(response.status).toBe(500);
49
+ expect(response.error).toBeDefined();
50
+ });
51
+ });
52
+
53
+ describe('prepareDepositTx', () => {
54
+ it('should successfully prepare deposit transaction data', async () => {
55
+ const testVaultAddress = '0x1234567890123456789012345678901234567890';
56
+ const amount0Desired = BigInt('1000000000000000000'); // 1 token
57
+ const amount1Desired = BigInt('2000000000000000000'); // 2 tokens
58
+ const slippage = 0.01; // 1%
59
+
60
+ const response = await client.prepareDepositTx({
61
+ vaultAddress: testVaultAddress as `0x${string}`,
62
+ amount0Desired,
63
+ amount1Desired,
64
+ slippage
65
+ });
66
+
67
+ expect(response.success).toBe(true);
68
+ expect(response.status).toBe(200);
69
+ expect(response.data).toBeDefined();
70
+
71
+ if (response.data) {
72
+ // Verify the structure of the transaction data
73
+ expect(response.data.address).toBe(testVaultAddress);
74
+ expect(response.data.functionName).toBe('deposit');
75
+ expect(response.data.abi).toBeDefined();
76
+ expect(response.data.args).toBeDefined();
77
+ expect(response.data.args.length).toBe(6);
78
+
79
+ // Verify the ABI structure
80
+ expect(response.data.abi[0].type).toBe('function');
81
+ expect(response.data.abi[0].name).toBe('deposit');
82
+ expect(response.data.abi[0].inputs.length).toBe(6);
83
+
84
+ // Verify the arguments
85
+ const [vault, amount0, amount1, min0, min1] = response.data.args;
86
+ expect(vault).toBe(testVaultAddress);
87
+ expect(amount0).toBe(amount0Desired);
88
+ expect(amount1).toBe(amount1Desired);
89
+ // Verify min amounts are calculated correctly with slippage
90
+ expect(min0).toBe(amount0Desired * BigInt(990) / BigInt(1000)); // 1% slippage
91
+ expect(min1).toBe(amount1Desired * BigInt(990) / BigInt(1000)); // 1% slippage
92
+ }
93
+ });
94
+
95
+ it('should handle errors when preparing deposit transaction', async () => {
96
+ const invalidAddress = '0x0000000000000000000000000000000000000000';
97
+ const amount0Desired = BigInt('1000000000000000000');
98
+ const amount1Desired = BigInt('2000000000000000000');
99
+ const slippage = 0.01;
100
+
101
+ const response = await client.prepareDepositTx({
102
+ vaultAddress: invalidAddress as `0x${string}`,
103
+ amount0Desired,
104
+ amount1Desired,
105
+ slippage
106
+ });
107
+
108
+ expect(response.success).toBe(false);
109
+ expect(response.status).toBe(500);
110
+ expect(response.error).toBeDefined();
111
+ });
112
+
113
+ it('should handle custom recipient address', async () => {
114
+ const testVaultAddress = '0x1234567890123456789012345678901234567890';
115
+ const customRecipient = '0x9876543210987654321098765432109876543210';
116
+ const amount0Desired = BigInt('1000000000000000000');
117
+ const amount1Desired = BigInt('2000000000000000000');
118
+ const slippage = 0.01;
119
+
120
+ const response = await client.prepareDepositTx({
121
+ vaultAddress: testVaultAddress as `0x${string}`,
122
+ amount0Desired,
123
+ amount1Desired,
124
+ slippage,
125
+ to: customRecipient as `0x${string}`
126
+ });
127
+
128
+ expect(response.success).toBe(true);
129
+ expect(response.status).toBe(200);
130
+ expect(response.data).toBeDefined();
131
+
132
+ if (response.data) {
133
+ // Verify the custom recipient is used in the args
134
+ const [, , , , , to] = response.data.args;
135
+ expect(to).toBe(customRecipient);
136
+ }
137
+ });
138
+ });
139
+
140
+ describe('withdraw', () => {
141
+ it('should successfully withdraw tokens', async () => {
142
+ const testVaultAddress = '0x1234567890123456789012345678901234567890';
143
+ const shares = BigInt('1000000000000000000'); // 1 share
144
+ const amount0Min = BigInt('500000000000000000'); // 0.5 token0
145
+ const amount1Min = BigInt('750000000000000000'); // 0.75 token1
146
+
147
+ const response = await client.withdraw({
148
+ vaultAddress: testVaultAddress as `0x${string}`,
149
+ shares,
150
+ amount0Min,
151
+ amount1Min
152
+ });
153
+
154
+ expect(response.success).toBe(true);
155
+ expect(response.status).toBe(200);
156
+ expect(response.data).toBeDefined();
157
+ });
158
+
159
+ it('should handle errors during withdrawal', async () => {
160
+ const invalidAddress = '0x0000000000000000000000000000000000000000';
161
+ const shares = BigInt('1000000000000000000');
162
+ const amount0Min = BigInt('500000000000000000');
163
+ const amount1Min = BigInt('750000000000000000');
164
+
165
+ const response = await client.withdraw({
166
+ vaultAddress: invalidAddress as `0x${string}`,
167
+ shares,
168
+ amount0Min,
169
+ amount1Min
170
+ });
171
+
172
+ expect(response.success).toBe(false);
173
+ expect(response.status).toBe(500);
174
+ expect(response.error).toBeDefined();
175
+ });
176
+
177
+ it('should handle custom recipient address', async () => {
178
+ const testVaultAddress = '0x1234567890123456789012345678901234567890';
179
+ const customRecipient = '0x9876543210987654321098765432109876543210';
180
+ const shares = BigInt('1000000000000000000');
181
+ const amount0Min = BigInt('500000000000000000');
182
+ const amount1Min = BigInt('750000000000000000');
183
+
184
+ const response = await client.withdraw({
185
+ vaultAddress: testVaultAddress as `0x${string}`,
186
+ shares,
187
+ amount0Min,
188
+ amount1Min,
189
+ to: customRecipient as `0x${string}`
190
+ });
191
+
192
+ expect(response.success).toBe(true);
193
+ expect(response.status).toBe(200);
194
+ expect(response.data).toBeDefined();
195
+ });
196
+ });
197
+
198
+ describe('prepareWithdrawTx', () => {
199
+ it('should successfully prepare withdraw transaction data', async () => {
200
+ const testVaultAddress = '0x1234567890123456789012345678901234567890';
201
+ const shares = BigInt('1000000000000000000'); // 1 share
202
+ const amount0Min = BigInt('500000000000000000'); // 0.5 token0
203
+ const amount1Min = BigInt('750000000000000000'); // 0.75 token1
204
+
205
+ const response = await client.prepareWithdrawTx({
206
+ vaultAddress: testVaultAddress as `0x${string}`,
207
+ shares,
208
+ amount0Min,
209
+ amount1Min
210
+ });
211
+
212
+ expect(response.success).toBe(true);
213
+ expect(response.status).toBe(200);
214
+ expect(response.data).toBeDefined();
215
+
216
+ if (response.data) {
217
+ // Verify the structure of the transaction data
218
+ expect(response.data.address).toBe(testVaultAddress);
219
+ expect(response.data.functionName).toBe('withdraw');
220
+ expect(response.data.abi).toBeDefined();
221
+ expect(response.data.args).toBeDefined();
222
+ expect(response.data.args.length).toBe(4);
223
+
224
+ // Verify the ABI structure
225
+ expect(response.data.abi[0].type).toBe('function');
226
+ expect(response.data.abi[0].name).toBe('withdraw');
227
+ expect(response.data.abi[0].inputs.length).toBe(4);
228
+
229
+ // Verify the arguments
230
+ const [sharesArg, amount0MinArg, amount1MinArg] = response.data.args;
231
+ expect(sharesArg).toBe(shares);
232
+ expect(amount0MinArg).toBe(amount0Min);
233
+ expect(amount1MinArg).toBe(amount1Min);
234
+ }
235
+ });
236
+
237
+ it('should handle errors when preparing withdraw transaction', async () => {
238
+ const invalidAddress = '0x0000000000000000000000000000000000000000';
239
+ const shares = BigInt('1000000000000000000');
240
+ const amount0Min = BigInt('500000000000000000');
241
+ const amount1Min = BigInt('750000000000000000');
242
+
243
+ const response = await client.prepareWithdrawTx({
244
+ vaultAddress: invalidAddress as `0x${string}`,
245
+ shares,
246
+ amount0Min,
247
+ amount1Min
248
+ });
249
+
250
+ expect(response.success).toBe(false);
251
+ expect(response.status).toBe(500);
252
+ expect(response.error).toBeDefined();
253
+ });
254
+
255
+ it('should handle custom recipient address', async () => {
256
+ const testVaultAddress = '0x1234567890123456789012345678901234567890';
257
+ const customRecipient = '0x9876543210987654321098765432109876543210';
258
+ const shares = BigInt('1000000000000000000');
259
+ const amount0Min = BigInt('500000000000000000');
260
+ const amount1Min = BigInt('750000000000000000');
261
+
262
+ const response = await client.prepareWithdrawTx({
263
+ vaultAddress: testVaultAddress as `0x${string}`,
264
+ shares,
265
+ amount0Min,
266
+ amount1Min,
267
+ to: customRecipient as `0x${string}`
268
+ });
269
+
270
+ expect(response.success).toBe(true);
271
+ expect(response.status).toBe(200);
272
+ expect(response.data).toBeDefined();
273
+
274
+ if (response.data) {
275
+ // Verify the custom recipient is used in the args
276
+ const [, , , to] = response.data.args;
277
+ expect(to).toBe(customRecipient);
278
+ }
279
+ });
280
+ });
281
+
282
+ describe('approve', () => {
283
+ it('should successfully approve spending', async () => {
284
+ const testAddress = '0x1234567890123456789012345678901234567890';
285
+ const spender = '0x2234567890123456789012345678901234567890';
286
+ const amount = BigInt(1000);
287
+
288
+ const response = await client.approve({
289
+ vaultAddress: testAddress as `0x${string}`,
290
+ spender: spender as `0x${string}`,
291
+ amount
292
+ });
293
+
294
+ expect(response.success).toBe(true);
295
+ expect(response.status).toBe(200);
296
+ expect(response.data).toBeDefined();
297
+ });
298
+
299
+ it('should handle errors during approval', async () => {
300
+ const testAddress = '0x0000000000000000000000000000000000000000';
301
+ const spender = '0x0000000000000000000000000000000000000000';
302
+ const amount = BigInt(1000);
303
+
304
+ const response = await client.approve({
305
+ vaultAddress: testAddress as `0x${string}`,
306
+ spender: spender as `0x${string}`,
307
+ amount
308
+ });
309
+
310
+ expect(response.success).toBe(false);
311
+ expect(response.status).toBe(500);
312
+ expect(response.error).toBeDefined();
313
+ });
314
+ });
315
+
316
+ describe('allowance', () => {
317
+ it('should successfully get allowance', async () => {
318
+ const testAddress = '0x1234567890123456789012345678901234567890';
319
+ const owner = '0x3234567890123456789012345678901234567890';
320
+ const spender = '0x2234567890123456789012345678901234567890';
321
+
322
+ const response = await client.allowance({
323
+ vaultAddress: testAddress as `0x${string}`,
324
+ owner: owner as `0x${string}`,
325
+ spender: spender as `0x${string}`
326
+ });
327
+
328
+ expect(response.success).toBe(true);
329
+ expect(response.status).toBe(200);
330
+ expect(response.data).toBeDefined();
331
+ });
332
+
333
+ it('should handle errors when getting allowance', async () => {
334
+ const testAddress = '0x0000000000000000000000000000000000000000';
335
+ const owner = '0x0000000000000000000000000000000000000000';
336
+ const spender = '0x0000000000000000000000000000000000000000';
337
+
338
+ const response = await client.allowance({
339
+ vaultAddress: testAddress as `0x${string}`,
340
+ owner: owner as `0x${string}`,
341
+ spender: spender as `0x${string}`
342
+ });
343
+
344
+ expect(response.success).toBe(false);
345
+ expect(response.status).toBe(500);
346
+ expect(response.error).toBeDefined();
347
+ });
348
+ });
349
+
350
+ describe('getTokensFromLp', () => {
351
+ it('should calculate token amounts correctly for non-zero LP supply', async () => {
352
+ const testVaultAddress = '0x1234567890123456789012345678901234567890';
353
+ const lpTokenAmount = BigInt('1000000000000000000'); // 1 LP token
354
+
355
+ const response = await client.getTokensFromLp(
356
+ testVaultAddress as `0x${string}`,
357
+ lpTokenAmount
358
+ );
359
+
360
+ expect(response.success).toBe(true);
361
+ expect(response.status).toBe(200);
362
+ expect(response.data).toBeDefined();
363
+
364
+ if (response.data) {
365
+ // Verify the structure of the response
366
+ expect(typeof response.data.token0Val).toBe('bigint');
367
+ expect(typeof response.data.token1Val).toBe('bigint');
368
+ }
369
+ });
370
+
371
+ it('should handle zero LP supply case', async () => {
372
+ const testVaultAddress = '0x1234567890123456789012345678901234567890';
373
+ const lpTokenAmount = BigInt('1000000000000000000'); // 1 LP token
374
+
375
+ const response = await client.getTokensFromLp(
376
+ testVaultAddress as `0x${string}`,
377
+ lpTokenAmount
378
+ );
379
+
380
+ expect(response.success).toBe(true);
381
+ expect(response.status).toBe(200);
382
+ expect(response.data).toBeDefined();
383
+
384
+ if (response.data) {
385
+ // When LP supply is 0, both values should be 1
386
+ expect(response.data.token0Val).toBe(BigInt(1));
387
+ expect(response.data.token1Val).toBe(BigInt(1));
388
+ }
389
+ });
390
+
391
+ it('should handle errors gracefully', async () => {
392
+ const invalidAddress = '0x0000000000000000000000000000000000000000';
393
+ const lpTokenAmount = BigInt('1000000000000000000');
394
+
395
+ const response = await client.getTokensFromLp(
396
+ invalidAddress as `0x${string}`,
397
+ lpTokenAmount
398
+ );
399
+
400
+ expect(response.success).toBe(false);
401
+ expect(response.status).toBe(500);
402
+ expect(response.error).toBeDefined();
403
+ });
404
+ });
405
+
406
+ describe('getAllVaults', () => {
407
+ let realSteerClient: SteerClient;
408
+
409
+ beforeAll(() => {
410
+ // Create real clients for blockchain interaction
411
+ const publicClient = createPublicClient({
412
+ chain: polygon,
413
+ transport: http()
414
+ });
415
+
416
+ const walletClient = createWalletClient({
417
+ chain: polygon,
418
+ transport: http(),
419
+
420
+ });
421
+
422
+ // Initialize SteerClient with real clients
423
+ realSteerClient = new SteerClient({
424
+ environment: 'production',
425
+ client: publicClient,
426
+ walletClient: walletClient
427
+ });
428
+ });
429
+
430
+ it('should fetch all vaults with chainId filter successfully', async () => {
431
+ const filter = { chainId: 137 }; // Polygon chainId
432
+ const response = await realSteerClient.vaults.getAllVaults(filter);
433
+
434
+ expect(response.success).toBe(true);
435
+ expect(response.status).toBe(200);
436
+ expect(response.data).toBeDefined();
437
+ expect(Array.isArray(response.data)).toBe(true);
438
+ }, 300000);
439
+
440
+ it('should fetch all vaults with multiple filter parameters', async () => {
441
+ const filter = {
442
+ chainId: 137,
443
+ protocol: 'uniswap',
444
+ isActive: true
445
+ };
446
+ const response = await client.getAllVaults(filter);
447
+
448
+ expect(response.success).toBe(true);
449
+ expect(response.status).toBe(200);
450
+ expect(response.data).toBeDefined();
451
+ expect(Array.isArray(response.data)).toBe(true);
452
+ });
453
+
454
+ it('should fetch all vaults with custom batch size', async () => {
455
+ const filter = { chainId: 137 };
456
+ const batchSize = 50;
457
+ const response = await client.getAllVaults(filter, batchSize);
458
+
459
+ expect(response.success).toBe(true);
460
+ expect(response.status).toBe(200);
461
+ expect(response.data).toBeDefined();
462
+ expect(Array.isArray(response.data)).toBe(true);
463
+ });
464
+
465
+ it('should fetch all vaults without filter', async () => {
466
+ const response = await client.getAllVaults();
467
+
468
+ expect(response.success).toBe(true);
469
+ expect(response.status).toBe(200);
470
+ expect(response.data).toBeDefined();
471
+ expect(Array.isArray(response.data)).toBe(true);
472
+ });
473
+
474
+ it('should handle errors gracefully when API fails', async () => {
475
+ // Mock the getVaults method to simulate API failure
476
+ const originalGetVaults = client.getVaults;
477
+ client.getVaults = jest.fn().mockResolvedValue({
478
+ success: false,
479
+ status: 500,
480
+ error: 'API Error',
481
+ data: null
482
+ });
483
+
484
+ const filter = { chainId: 137 };
485
+ const response = await client.getAllVaults(filter);
486
+
487
+ expect(response.success).toBe(false);
488
+ expect(response.status).toBe(500);
489
+ expect(response.error).toBeDefined();
490
+ expect(response.data).toBeNull();
491
+
492
+ // Restore original method
493
+ client.getVaults = originalGetVaults;
494
+ });
495
+
496
+ it('should handle pagination correctly when fetching multiple pages', async () => {
497
+ // Mock getVaults to return paginated responses
498
+ const mockPage1 = {
499
+ success: true,
500
+ status: 200,
501
+ data: {
502
+ edges: [
503
+ { node: { id: 'vault1', name: 'Test Vault 1', protocolBaseType: 'uniswap' } },
504
+ { node: { id: 'vault2', name: 'Test Vault 2', protocolBaseType: 'uniswap' } }
505
+ ],
506
+ pageInfo: {
507
+ hasNextPage: true,
508
+ hasPreviousPage: false,
509
+ startCursor: 'cursor1',
510
+ endCursor: 'cursor2'
511
+ }
512
+ }
513
+ };
514
+
515
+ const mockPage2 = {
516
+ success: true,
517
+ status: 200,
518
+ data: {
519
+ edges: [
520
+ { node: { id: 'vault3', name: 'Test Vault 3', protocolBaseType: 'sushi' } }
521
+ ],
522
+ pageInfo: {
523
+ hasNextPage: false,
524
+ hasPreviousPage: true,
525
+ startCursor: 'cursor2',
526
+ endCursor: 'cursor3'
527
+ }
528
+ }
529
+ };
530
+
531
+ const originalGetVaults = client.getVaults;
532
+ client.getVaults = jest.fn()
533
+ .mockResolvedValueOnce(mockPage1)
534
+ .mockResolvedValueOnce(mockPage2);
535
+
536
+ const filter = { chainId: 137 };
537
+ const response = await client.getAllVaults(filter);
538
+
539
+ expect(response.success).toBe(true);
540
+ expect(response.status).toBe(200);
541
+ expect(response.data).toBeDefined();
542
+ expect(response.data?.length).toBe(3); // Should have all vaults from both pages
543
+ expect(response.data?.[0].id).toBe('vault1');
544
+ expect(response.data?.[1].id).toBe('vault2');
545
+ expect(response.data?.[2].id).toBe('vault3');
546
+
547
+ // Verify getVaults was called twice with correct parameters
548
+ expect(client.getVaults).toHaveBeenCalledTimes(2);
549
+ expect(client.getVaults).toHaveBeenNthCalledWith(1, filter, 100, null);
550
+ expect(client.getVaults).toHaveBeenNthCalledWith(2, filter, 100, 'cursor2');
551
+
552
+ // Restore original method
553
+ client.getVaults = originalGetVaults;
554
+ });
555
+
556
+ it('should handle exception during fetching', async () => {
557
+ // Mock getVaults to throw an exception
558
+ const originalGetVaults = client.getVaults;
559
+ client.getVaults = jest.fn().mockRejectedValue(new Error('Network error'));
560
+
561
+ const filter = { chainId: 137 };
562
+ const response = await client.getAllVaults(filter);
563
+
564
+ expect(response.success).toBe(false);
565
+ expect(response.status).toBe(500);
566
+ expect(response.error).toBe('Network error');
567
+ expect(response.data).toBeNull();
568
+
569
+ // Restore original method
570
+ client.getVaults = originalGetVaults;
571
+ });
572
+ });
573
+
574
+ describe('Integration Tests with Real Chain Data', () => {
575
+ // Using Polygon for testing
576
+ let realSteerClient: SteerClient;
577
+
578
+ beforeAll(() => {
579
+ // Create real clients for blockchain interaction
580
+ const publicClient = createPublicClient({
581
+ chain: avalanche,
582
+ transport: http()
583
+ });
584
+
585
+ const walletClient = createWalletClient({
586
+ chain: avalanche,
587
+ transport: http()
588
+ });
589
+
590
+ // Initialize SteerClient with real clients
591
+ realSteerClient = new SteerClient({
592
+ environment: 'production',
593
+ client: publicClient,
594
+ walletClient: walletClient
595
+ });
596
+ });
597
+
598
+ it('should calculate token amounts from LP tokens for a real vault', async () => {
599
+ // Test with a known vault on Polygon
600
+ const testVault = "0x777f8dcee1e1e55afc5aeed241fd94f48fc3a355" as `0x${string}`;
601
+ const lpTokenAmount = BigInt('1000000000000000000'); // 1 LP token
602
+
603
+ const response = await realSteerClient.vaults.getTokensFromLp(testVault, lpTokenAmount);
604
+ expect(response.success).toBe(true);
605
+ expect(response.data).toBeDefined();
606
+
607
+ if (response.data) {
608
+ // Log the calculated amounts for verification
609
+ console.log('Token0 amount for 1 LP token:', response.data.token0Val.toString());
610
+ console.log('Token1 amount for 1 LP token:', response.data.token1Val.toString());
611
+
612
+ // Verify the structure and types
613
+ expect(typeof response.data.token0Val).toBe('bigint');
614
+ expect(typeof response.data.token1Val).toBe('bigint');
615
+ }
616
+ }, 30000); // Increased timeout for real API calls
617
+
618
+ it('should handle token calculations for vault with no liquidity', async () => {
619
+ // Test with a known new/empty vault on Polygon
620
+ const emptyVault = '0x7b85fa7540b75fb214df632f9357eebe48f76edb' as `0x${string}`;
621
+ const lpTokenAmount = BigInt('1000000000000000000'); // 1 LP token
622
+
623
+ const response = await realSteerClient.vaults.getTokensFromLp(emptyVault, lpTokenAmount);
624
+ expect(response.success).toBe(true);
625
+ expect(response.data).toBeDefined();
626
+
627
+ if (response.data) {
628
+ // Log the calculated amounts for verification
629
+ console.log('Token0 amount for empty vault:', response.data.token0Val.toString());
630
+ console.log('Token1 amount for empty vault:', response.data.token1Val.toString());
631
+
632
+ // For empty vault, both values should be 1
633
+ expect(response.data.token0Val).toBe(BigInt(1));
634
+ expect(response.data.token1Val).toBe(BigInt(1));
635
+ }
636
+ }, 30000);
637
+
638
+ it.only('should calculate corresponding token amount for real vault - zeroForOne true', async () => {
639
+ // Test with a known vault on Polygon
640
+ const testVault = '0x616ae107237ce398bf32f08fd6048dd904ed8efb' as `0x${string}`;
641
+ const token0Amount = BigInt('2222322000000'); // 1 token0
642
+
643
+ const response = await realSteerClient.vaults.getCorrespondingTokenAmount(
644
+ testVault,
645
+ token0Amount,
646
+ false // zeroForOne = true, calculating token1 amount for given token0
647
+ );
648
+
649
+ expect(response.success).toBe(true);
650
+ expect(response.data).toBeDefined();
651
+ expect(typeof response.data).toBe('bigint');
652
+
653
+ if (response.data) {
654
+ console.log('Token1 amount for 1 token0 (zeroForOne=true):', response.data.toString());
655
+ // The corresponding amount should be greater than 0 for an active vault
656
+ expect(response.data).toBeGreaterThan(BigInt(0));
657
+ }
658
+ }, 30000);
659
+
660
+ it('should calculate corresponding token amount for real vault - zeroForOne false', async () => {
661
+ // Test with a known vault on Polygon
662
+ const testVault = '0x0fe4cbd6ce903ec1ea8e743972660aecab6badf7' as `0x${string}`;
663
+ const token1Amount = BigInt('1000000000000000000'); // 1 token1
664
+
665
+ const response = await realSteerClient.vaults.getCorrespondingTokenAmount(
666
+ testVault,
667
+ token1Amount,
668
+ false // zeroForOne = false, calculating token0 amount for given token1
669
+ );
670
+
671
+ expect(response.success).toBe(true);
672
+ expect(response.data).toBeDefined();
673
+ expect(typeof response.data).toBe('bigint');
674
+
675
+ if (response.data) {
676
+ console.log('Token0 amount for 1 token1 (zeroForOne=false):', response.data.toString());
677
+ // The corresponding amount should be greater than 0 for an active vault
678
+ expect(response.data).toBeGreaterThan(BigInt(0));
679
+ }
680
+ }, 30000);
681
+
682
+ it('should handle corresponding token amount calculation with different amounts', async () => {
683
+ // Test with a known vault on Polygon
684
+ const testVault = '0x0fe4cbd6ce903ec1ea8e743972660aecab6badf7' as `0x${string}`;
685
+
686
+ // Test with multiple amounts to verify proportional scaling
687
+ const amounts = [
688
+ BigInt('500000000000000000'), // 0.5 tokens
689
+ BigInt('1000000000000000000'), // 1 token
690
+ BigInt('2000000000000000000') // 2 tokens
691
+ ];
692
+
693
+ const results: bigint[] = [];
694
+
695
+ for (const amount of amounts) {
696
+ const response = await realSteerClient.vaults.getCorrespondingTokenAmount(
697
+ testVault,
698
+ amount,
699
+ true // zeroForOne = true
700
+ );
701
+
702
+ expect(response.success).toBe(true);
703
+ expect(response.data).toBeDefined();
704
+ expect(typeof response.data).toBe('bigint');
705
+
706
+ if (response.data) {
707
+ results.push(response.data);
708
+ console.log(`Token1 amount for ${amount.toString()} token0:`, response.data.toString());
709
+ }
710
+ }
711
+
712
+ // Verify that the amounts scale proportionally (approximately)
713
+ if (results.length === 3) {
714
+ // The ratio between results should be approximately the same as the ratio between input amounts
715
+ // Allow for some rounding differences in the calculations
716
+ const ratio1 = Number(results[1]) / Number(results[0]); // Should be ~2
717
+ const ratio2 = Number(results[2]) / Number(results[1]); // Should be ~2
718
+
719
+ expect(ratio1).toBeGreaterThan(1.9);
720
+ expect(ratio1).toBeLessThan(2.1);
721
+ expect(ratio2).toBeGreaterThan(1.9);
722
+ expect(ratio2).toBeLessThan(2.1);
723
+ }
724
+ }, 45000);
725
+
726
+ it('should handle errors gracefully for invalid vault address in getCorrespondingTokenAmount', async () => {
727
+ const invalidVault = '0x0000000000000000000000000000000000000000' as `0x${string}`;
728
+ const amount = BigInt('1000000000000000000');
729
+
730
+ const response = await realSteerClient.vaults.getCorrespondingTokenAmount(
731
+ invalidVault,
732
+ amount,
733
+ true
734
+ );
735
+
736
+ expect(response.success).toBe(false);
737
+ expect(response.status).toBe(500);
738
+ expect(response.error).toBeDefined();
739
+ expect(response.data).toBeNull();
740
+ }, 30000);
741
+ });
742
+
743
+ describe('Reward Management', () => {
744
+ describe('calculatePendingRewards', () => {
745
+ it('should successfully calculate pending rewards', async () => {
746
+ const testVaultAddress = '0x1234567890123456789012345678901234567890';
747
+ const userAddress = '0x2234567890123456789012345678901234567890';
748
+
749
+ // Mock the readContract call to return reward data
750
+ const mockRewards = [BigInt('1000000000000000000'), BigInt('500000000000000000')]; // 1 reward, 0.5 extraReward
751
+ jest.spyOn(client['publicClient'], 'readContract').mockResolvedValueOnce(mockRewards);
752
+
753
+ const response = await client.calculatePendingRewards({
754
+ vaultAddress: testVaultAddress as `0x${string}`,
755
+ user: userAddress as `0x${string}`
756
+ });
757
+
758
+ expect(response.success).toBe(true);
759
+ expect(response.status).toBe(200);
760
+ expect(response.data).toBeDefined();
761
+
762
+ if (response.data) {
763
+ expect(response.data.rewards).toBe(BigInt('1000000000000000000'));
764
+ expect(response.data.extraRewards).toBe(BigInt('500000000000000000'));
765
+ }
766
+ });
767
+
768
+ it('should return zero values when calculatePendingRewards function reverts', async () => {
769
+ const testVaultAddress = '0x1234567890123456789012345678901234567890';
770
+ const userAddress = '0x2234567890123456789012345678901234567890';
771
+
772
+ // Mock the readContract call to throw an error (simulating revert)
773
+ jest.spyOn(client['publicClient'], 'readContract').mockRejectedValueOnce(
774
+ new Error('Contract function reverted')
775
+ );
776
+
777
+ const response = await client.calculatePendingRewards({
778
+ vaultAddress: testVaultAddress as `0x${string}`,
779
+ user: userAddress as `0x${string}`
780
+ });
781
+
782
+ expect(response.success).toBe(true);
783
+ expect(response.status).toBe(200);
784
+ expect(response.data).toBeDefined();
785
+
786
+ if (response.data) {
787
+ expect(response.data.rewards).toBe(BigInt(0));
788
+ expect(response.data.extraRewards).toBe(BigInt(0));
789
+ }
790
+ });
791
+
792
+ it('should handle various reward amounts correctly', async () => {
793
+ const testVaultAddress = '0x1234567890123456789012345678901234567890';
794
+ const userAddress = '0x2234567890123456789012345678901234567890';
795
+
796
+ const testCases = [
797
+ [BigInt(0), BigInt(0)], // No rewards
798
+ [BigInt('999999999999999999'), BigInt('1')], // Almost 1 token rewards
799
+ [BigInt('1000000000000000000000'), BigInt('2000000000000000000000')], // Large rewards
800
+ ];
801
+
802
+ for (const [rewards, extraRewards] of testCases) {
803
+ jest.spyOn(client['publicClient'], 'readContract').mockResolvedValueOnce([rewards, extraRewards]);
804
+
805
+ const response = await client.calculatePendingRewards({
806
+ vaultAddress: testVaultAddress as `0x${string}`,
807
+ user: userAddress as `0x${string}`
808
+ });
809
+
810
+ expect(response.success).toBe(true);
811
+ expect(response.data?.rewards).toBe(rewards);
812
+ expect(response.data?.extraRewards).toBe(extraRewards);
813
+ }
814
+ });
815
+ });
816
+
817
+ describe('claimPendingRewards', () => {
818
+ let realSteerClient: SteerClient;
819
+ const publicClient = createPublicClient({
820
+ chain: avalanche,
821
+ transport: http()
822
+ });
823
+
824
+ const walletClient = createWalletClient({
825
+ chain: avalanche,
826
+ transport: http()
827
+ });
828
+ realSteerClient = new SteerClient({
829
+ environment: 'production',
830
+ client: publicClient,
831
+ walletClient: walletClient
832
+ });
833
+
834
+ it('should successfully claim pending rewards', async () => {
835
+ const testVaultAddress = '0x5c1d454f08975c554f6b70a84fd8859fbdfcc069';
836
+ // Mock the simulateContract and writeContract calls
837
+
838
+ const response = await realSteerClient.vaults.claimBlackholePendingRewards({
839
+ vaultAddress: testVaultAddress as `0x${string}`
840
+ });
841
+
842
+ expect(response.success).toBe(true);
843
+ expect(response.status).toBe(200);
844
+ });
845
+
846
+ it('should return zero values when claimBlackHolePendingRewards function reverts', async () => {
847
+ const testVaultAddress = '0x1234567890123456789012345678901234567890';
848
+
849
+ // Mock the simulateContract call to throw an error (simulating revert)
850
+ jest.spyOn(client['publicClient'], 'simulateContract').mockRejectedValueOnce(
851
+ new Error('Contract function reverted')
852
+ );
853
+
854
+ const response = await client.claimBlackholePendingRewards({
855
+ vaultAddress: testVaultAddress as `0x${string}`
856
+ });
857
+
858
+ expect(response.success).toBe(true);
859
+ expect(response.status).toBe(200);
860
+ expect(response.data).toBeDefined();
861
+
862
+ if (response.data && typeof response.data === 'object' && 'rewards' in response.data) {
863
+ expect(response.data.rewards).toBe(BigInt(0));
864
+ expect(response.data.extraRewards).toBe(BigInt(0));
865
+ }
866
+ });
867
+
868
+ it('should handle wallet client errors gracefully', async () => {
869
+ const testVaultAddress = '0x1234567890123456789012345678901234567890';
870
+
871
+ // Mock successful simulation but failed transaction
872
+ jest.spyOn(client['publicClient'], 'simulateContract').mockResolvedValueOnce({
873
+ request: {
874
+ address: testVaultAddress,
875
+ abi: expect.any(Array),
876
+ functionName: 'claimBlackHolePendingRewards',
877
+ args: []
878
+ }
879
+ } as any);
880
+
881
+ jest.spyOn(client['walletClient'], 'writeContract').mockRejectedValueOnce(
882
+ new Error('Transaction failed')
883
+ );
884
+
885
+ const response = await client.claimBlackholePendingRewards({
886
+ vaultAddress: testVaultAddress as `0x${string}`
887
+ });
888
+
889
+ expect(response.success).toBe(true);
890
+ expect(response.status).toBe(200);
891
+ expect(response.data).toBeDefined();
892
+
893
+ if (response.data && typeof response.data === 'object' && 'rewards' in response.data) {
894
+ expect(response.data.rewards).toBe(BigInt(0));
895
+ expect(response.data.extraRewards).toBe(BigInt(0));
896
+ }
897
+ });
898
+
899
+ it('should handle missing wallet account gracefully', async () => {
900
+ const testVaultAddress = '0x1234567890123456789012345678901234567890';
901
+
902
+ // Mock getAddresses to return empty array
903
+ jest.spyOn(client['walletClient'], 'getAddresses').mockResolvedValueOnce([]);
904
+
905
+ const response = await client.claimBlackholePendingRewards({
906
+ vaultAddress: testVaultAddress as `0x${string}`
907
+ });
908
+
909
+ expect(response.success).toBe(true);
910
+ expect(response.status).toBe(200);
911
+ expect(response.data).toBeDefined();
912
+
913
+ if (response.data && typeof response.data === 'object' && 'rewards' in response.data) {
914
+ expect(response.data.rewards).toBe(BigInt(0));
915
+ expect(response.data.extraRewards).toBe(BigInt(0));
916
+ }
917
+ });
918
+ });
919
+
920
+ describe('Integration Tests for Reward Functions', () => {
921
+ let realSteerClient: SteerClient;
922
+
923
+ beforeAll(() => {
924
+ // Create real clients for blockchain interaction
925
+ const publicClient = createPublicClient({
926
+ chain: avalanche,
927
+ transport: http()
928
+ });
929
+
930
+ const walletClient = createWalletClient({
931
+ chain: avalanche,
932
+ transport: http(),
933
+ });
934
+
935
+ // Initialize SteerClient with real clients
936
+ realSteerClient = new SteerClient({
937
+ environment: 'production',
938
+ client: publicClient,
939
+ walletClient: walletClient
940
+ });
941
+ });
942
+
943
+ it('should calculate pending rewards for real vault', async () => {
944
+ // Using a real vault address on Polygon for testing
945
+ const testVault = "0xa49c49d120ecfbd1f40d3e16bad63b2caf149926" as `0x${string}`;
946
+ const userAddress = "0xCD88431107B72b1a1aa13DE27Ab894e27C7D1a61" as `0x${string}`;
947
+
948
+ const response = await realSteerClient.vaults.calculatePendingRewards({
949
+ vaultAddress: testVault,
950
+ user: userAddress
951
+ });
952
+
953
+ expect(response.success).toBe(true);
954
+ expect(response.status).toBe(200);
955
+ expect(response.data).toBeDefined();
956
+
957
+ if (response.data) {
958
+ // The function should return bigint values (even if zero)
959
+ expect(typeof response.data.rewards).toBe('bigint');
960
+ expect(typeof response.data.extraRewards).toBe('bigint');
961
+
962
+ console.log('Pending rewards:', response.data.rewards.toString());
963
+ console.log('Pending extra rewards:', response.data.extraRewards.toString());
964
+ }
965
+ }, 30000);
966
+
967
+ it('should handle reward calculation for vault without reward function', async () => {
968
+ // Using a vault that likely doesn't have the reward function
969
+ const testVault = "0x0fe4cbd6ce903ec1ea8e743972660aecab6badf7" as `0x${string}`;
970
+ const userAddress = "0x1234567890123456789012345678901234567890" as `0x${string}`;
971
+
972
+ const response = await realSteerClient.vaults.calculatePendingRewards({
973
+ vaultAddress: testVault,
974
+ user: userAddress
975
+ });
976
+
977
+ expect(response.success).toBe(true);
978
+ expect(response.status).toBe(200);
979
+ expect(response.data).toBeDefined();
980
+
981
+ if (response.data) {
982
+ // Should return zero values when function doesn't exist or reverts
983
+ expect(response.data.rewards).toBe(BigInt(0));
984
+ expect(response.data.extraRewards).toBe(BigInt(0));
985
+ }
986
+ }, 30000);
987
+
988
+ it('should handle claim rewards for vault without claim function', async () => {
989
+ // Note: This test won't actually send a transaction since we don't have a real private key
990
+ // But it will test the error handling path
991
+ const testVault = "0x0fe4cbd6ce903ec1ea8e743972660aecab6badf7" as `0x${string}`;
992
+
993
+ const response = await realSteerClient.vaults.claimBlackholePendingRewards({
994
+ vaultAddress: testVault
995
+ });
996
+
997
+ expect(response.success).toBe(true);
998
+ expect(response.status).toBe(200);
999
+ expect(response.data).toBeDefined();
1000
+
1001
+ if (response.data && typeof response.data === 'object' && 'rewards' in response.data) {
1002
+ // Should return zero values when function doesn't exist or reverts
1003
+ expect(response.data.rewards).toBe(BigInt(0));
1004
+ expect(response.data.extraRewards).toBe(BigInt(0));
1005
+ }
1006
+ }, 30000);
1007
+ });
1008
+ });
1009
+
1010
+
1011
+ });