@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.
- package/dist/cjs/base/FeeManagerClient.js +81 -0
- package/dist/cjs/base/FeeManagerClient.js.map +1 -0
- package/dist/cjs/base/PoolClient.js +1 -0
- package/dist/cjs/base/PoolClient.js.map +1 -0
- package/dist/cjs/base/SmartRewardClient.js +1 -0
- package/dist/cjs/base/SmartRewardClient.js.map +1 -0
- package/dist/cjs/base/SmartRewards.js +1 -0
- package/dist/cjs/base/SmartRewards.js.map +1 -0
- package/dist/cjs/base/StakingClient.js +1 -0
- package/dist/cjs/base/StakingClient.js.map +1 -0
- package/dist/cjs/base/SubgraphClient.js +1 -0
- package/dist/cjs/base/SubgraphClient.js.map +1 -0
- package/dist/cjs/base/VaultClient.js +1 -0
- package/dist/cjs/base/VaultClient.js.map +1 -0
- package/dist/cjs/base/vault/deposit/index.js +1 -0
- package/dist/cjs/base/vault/deposit/index.js.map +1 -0
- package/dist/cjs/base/vault/deposit/types.js +1 -0
- package/dist/cjs/base/vault/deposit/types.js.map +1 -0
- package/dist/cjs/base/vault/single-asset/calculateLimitPrice.js +1 -0
- package/dist/cjs/base/vault/single-asset/calculateLimitPrice.js.map +1 -0
- package/dist/cjs/base/vault/single-asset/calculateSwapAmount.js +1 -0
- package/dist/cjs/base/vault/single-asset/calculateSwapAmount.js.map +1 -0
- package/dist/cjs/base/vault/single-asset/estimateLpTokens.js +1 -0
- package/dist/cjs/base/vault/single-asset/estimateLpTokens.js.map +1 -0
- package/dist/cjs/base/vault/single-asset/index.js +1 -0
- package/dist/cjs/base/vault/single-asset/index.js.map +1 -0
- package/dist/cjs/base/vault/single-asset/simulateSwap.js +1 -0
- package/dist/cjs/base/vault/single-asset/simulateSwap.js.map +1 -0
- package/dist/cjs/base/vault/single-asset/singleAssetDeposit.js +1 -0
- package/dist/cjs/base/vault/single-asset/singleAssetDeposit.js.map +1 -0
- package/dist/cjs/base/vault/single-asset/types.js +1 -0
- package/dist/cjs/base/vault/single-asset/types.js.map +1 -0
- package/dist/cjs/base/vault/utils.js +1 -0
- package/dist/cjs/base/vault/utils.js.map +1 -0
- package/dist/cjs/base/vault/withdraw/index.js +1 -0
- package/dist/cjs/base/vault/withdraw/index.js.map +1 -0
- package/dist/cjs/base/vault/withdraw/types.js +1 -0
- package/dist/cjs/base/vault/withdraw/types.js.map +1 -0
- package/dist/cjs/client.js +1 -0
- package/dist/cjs/client.js.map +1 -0
- package/dist/cjs/const/abis/UniswapPool.js +1 -0
- package/dist/cjs/const/abis/UniswapPool.js.map +1 -0
- package/dist/cjs/const/abis/erc1155.js +1 -0
- package/dist/cjs/const/abis/erc1155.js.map +1 -0
- package/dist/cjs/const/abis/erc20.js +1 -0
- package/dist/cjs/const/abis/erc20.js.map +1 -0
- package/dist/cjs/const/abis/erc721.js +1 -0
- package/dist/cjs/const/abis/erc721.js.map +1 -0
- package/dist/cjs/const/abis/feeManager.js +1 -0
- package/dist/cjs/const/abis/feeManager.js.map +1 -0
- package/dist/cjs/const/abis/index.js +2 -0
- package/dist/cjs/const/abis/index.js.map +1 -0
- package/dist/cjs/const/abis/quoter.js +1 -0
- package/dist/cjs/const/abis/quoter.js.map +1 -0
- package/dist/cjs/const/abis/singleTokenDeposit.js +1 -0
- package/dist/cjs/const/abis/singleTokenDeposit.js.map +1 -0
- package/dist/cjs/const/abis/vaultFees.js +44 -0
- package/dist/cjs/const/abis/vaultFees.js.map +1 -0
- package/dist/cjs/const/amm/configs/ammConfig.js +1 -0
- package/dist/cjs/const/amm/configs/ammConfig.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/aerodrome-v2.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/aerodrome-v2.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/aerodrome.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/aerodrome.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/arthswap.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/arthswap.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/baseswap.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/baseswap.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/basex.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/basex.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/beam.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/beam.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/beamswap.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/beamswap.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/blackhole.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/blackhole.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/camelot.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/camelot.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/crust.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/crust.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/cypher.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/cypher.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/dodo.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/dodo.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/dragonswap.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/dragonswap.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/eddy.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/eddy.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/equilibre.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/equilibre.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/fenix.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/fenix.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/forge.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/forge.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/fusionx.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/fusionx.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/glyph.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/glyph.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/henjin.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/henjin.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/hercules.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/hercules.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/horiza.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/horiza.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/index.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/index.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/katana.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/katana.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/katanaIntegral.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/katanaIntegral.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/kim.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/kim.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/kinetix.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/kinetix.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/kodiak.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/kodiak.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/kyo.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/kyo.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/linehub.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/linehub.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/lynex.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/lynex.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/machinex.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/machinex.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/maia.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/maia.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/metavault.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/metavault.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/nest.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/nest.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/novaswap.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/novaswap.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/ocelex.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/ocelex.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/pancakeswap.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/pancakeswap.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/poolshark.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/poolshark.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/quickswap-algebra.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/quickswap-algebra.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/quickswap-integral.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/quickswap-integral.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/quickswap-univ3.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/quickswap-univ3.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/quickswap.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/quickswap.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/retro.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/retro.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/sailor.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/sailor.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/shadow.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/shadow.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/silverswap.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/silverswap.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/spark.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/spark.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/spark32.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/spark32.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/spookyswap.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/spookyswap.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/stellaswap.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/stellaswap.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/supswap.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/supswap.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/sushi.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/sushi.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/swapmode.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/swapmode.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/swapsicle.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/swapsicle.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/thena.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/thena.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/thick.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/thick.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/thickv2.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/thickv2.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/thruster.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/thruster.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/uniswap.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/uniswap.js.map +1 -0
- package/dist/cjs/const/amm/configs/protocols/wasabee.js +1 -0
- package/dist/cjs/const/amm/configs/protocols/wasabee.js.map +1 -0
- package/dist/cjs/const/amm/index.js +1 -0
- package/dist/cjs/const/amm/index.js.map +1 -0
- package/dist/cjs/const/amm/utils/beacon.js +1 -0
- package/dist/cjs/const/amm/utils/beacon.js.map +1 -0
- package/dist/cjs/const/amm/utils/contracts.js +1 -0
- package/dist/cjs/const/amm/utils/contracts.js.map +1 -0
- package/dist/cjs/const/amm/utils/index.js +1 -0
- package/dist/cjs/const/amm/utils/index.js.map +1 -0
- package/dist/cjs/const/amm/utils/protocol.js +1 -0
- package/dist/cjs/const/amm/utils/protocol.js.map +1 -0
- package/dist/cjs/const/api.js +1 -0
- package/dist/cjs/const/api.js.map +1 -0
- package/dist/cjs/const/capabilities.js +1 -0
- package/dist/cjs/const/capabilities.js.map +1 -0
- package/dist/cjs/const/chain.js +1 -0
- package/dist/cjs/const/chain.js.map +1 -0
- package/dist/cjs/const/deployments/abis.js +1 -0
- package/dist/cjs/const/deployments/abis.js.map +1 -0
- package/dist/cjs/const/deployments/apechain.js +1 -0
- package/dist/cjs/const/deployments/apechain.js.map +1 -0
- package/dist/cjs/const/deployments/arbitrum.js +1 -0
- package/dist/cjs/const/deployments/arbitrum.js.map +1 -0
- package/dist/cjs/const/deployments/arbitrumgoerli.js +1 -0
- package/dist/cjs/const/deployments/arbitrumgoerli.js.map +1 -0
- package/dist/cjs/const/deployments/astar.js +1 -0
- package/dist/cjs/const/deployments/astar.js.map +1 -0
- package/dist/cjs/const/deployments/astarzkevm.js +1 -0
- package/dist/cjs/const/deployments/astarzkevm.js.map +1 -0
- package/dist/cjs/const/deployments/avalanche.js +1 -0
- package/dist/cjs/const/deployments/avalanche.js.map +1 -0
- package/dist/cjs/const/deployments/bartiotest.js +1 -0
- package/dist/cjs/const/deployments/bartiotest.js.map +1 -0
- package/dist/cjs/const/deployments/base.js +1 -0
- package/dist/cjs/const/deployments/base.js.map +1 -0
- package/dist/cjs/const/deployments/bera.js +1 -0
- package/dist/cjs/const/deployments/bera.js.map +1 -0
- package/dist/cjs/const/deployments/berachainbartio.js +1 -0
- package/dist/cjs/const/deployments/berachainbartio.js.map +1 -0
- package/dist/cjs/const/deployments/blast.js +1 -0
- package/dist/cjs/const/deployments/blast.js.map +1 -0
- package/dist/cjs/const/deployments/bsc.js +1 -0
- package/dist/cjs/const/deployments/bsc.js.map +1 -0
- package/dist/cjs/const/deployments/celo.js +1 -0
- package/dist/cjs/const/deployments/celo.js.map +1 -0
- package/dist/cjs/const/deployments/core.js +1 -0
- package/dist/cjs/const/deployments/core.js.map +1 -0
- package/dist/cjs/const/deployments/eth.js +1 -0
- package/dist/cjs/const/deployments/eth.js.map +1 -0
- package/dist/cjs/const/deployments/evmos.js +1 -0
- package/dist/cjs/const/deployments/evmos.js.map +1 -0
- package/dist/cjs/const/deployments/fantom.js +1 -0
- package/dist/cjs/const/deployments/fantom.js.map +1 -0
- package/dist/cjs/const/deployments/filecoin.js +1 -0
- package/dist/cjs/const/deployments/filecoin.js.map +1 -0
- package/dist/cjs/const/deployments/flare.js +1 -0
- package/dist/cjs/const/deployments/flare.js.map +1 -0
- package/dist/cjs/const/deployments/goerli.js +1 -0
- package/dist/cjs/const/deployments/goerli.js.map +1 -0
- package/dist/cjs/const/deployments/hemi.js +1 -0
- package/dist/cjs/const/deployments/hemi.js.map +1 -0
- package/dist/cjs/const/deployments/hyperevm.js +1 -0
- package/dist/cjs/const/deployments/hyperevm.js.map +1 -0
- package/dist/cjs/const/deployments/index.js +1 -0
- package/dist/cjs/const/deployments/index.js.map +1 -0
- package/dist/cjs/const/deployments/katana.js +1 -0
- package/dist/cjs/const/deployments/katana.js.map +1 -0
- package/dist/cjs/const/deployments/kava.js +1 -0
- package/dist/cjs/const/deployments/kava.js.map +1 -0
- package/dist/cjs/const/deployments/linea.js +1 -0
- package/dist/cjs/const/deployments/linea.js.map +1 -0
- package/dist/cjs/const/deployments/localhost.js +1 -0
- package/dist/cjs/const/deployments/localhost.js.map +1 -0
- package/dist/cjs/const/deployments/manta.js +1 -0
- package/dist/cjs/const/deployments/manta.js.map +1 -0
- package/dist/cjs/const/deployments/mantle.js +1 -0
- package/dist/cjs/const/deployments/mantle.js.map +1 -0
- package/dist/cjs/const/deployments/metis.js +1 -0
- package/dist/cjs/const/deployments/metis.js.map +1 -0
- package/dist/cjs/const/deployments/mode.js +1 -0
- package/dist/cjs/const/deployments/mode.js.map +1 -0
- package/dist/cjs/const/deployments/moonbeam.js +1 -0
- package/dist/cjs/const/deployments/moonbeam.js.map +1 -0
- package/dist/cjs/const/deployments/mumbai.js +1 -0
- package/dist/cjs/const/deployments/mumbai.js.map +1 -0
- package/dist/cjs/const/deployments/nibiru.js +1 -0
- package/dist/cjs/const/deployments/nibiru.js.map +1 -0
- package/dist/cjs/const/deployments/okxtestnet.js +1 -0
- package/dist/cjs/const/deployments/okxtestnet.js.map +1 -0
- package/dist/cjs/const/deployments/optimism.js +1 -0
- package/dist/cjs/const/deployments/optimism.js.map +1 -0
- package/dist/cjs/const/deployments/optimismgoerli.js +1 -0
- package/dist/cjs/const/deployments/optimismgoerli.js.map +1 -0
- package/dist/cjs/const/deployments/peaq.js +1 -0
- package/dist/cjs/const/deployments/peaq.js.map +1 -0
- package/dist/cjs/const/deployments/polygon.js +1 -0
- package/dist/cjs/const/deployments/polygon.js.map +1 -0
- package/dist/cjs/const/deployments/polyzkevm.js +1 -0
- package/dist/cjs/const/deployments/polyzkevm.js.map +1 -0
- package/dist/cjs/const/deployments/pyzkevm.js +1 -0
- package/dist/cjs/const/deployments/pyzkevm.js.map +1 -0
- package/dist/cjs/const/deployments/ronin.js +1 -0
- package/dist/cjs/const/deployments/ronin.js.map +1 -0
- package/dist/cjs/const/deployments/rootstock.js +1 -0
- package/dist/cjs/const/deployments/rootstock.js.map +1 -0
- package/dist/cjs/const/deployments/saga.js +1 -0
- package/dist/cjs/const/deployments/saga.js.map +1 -0
- package/dist/cjs/const/deployments/scroll.js +1 -0
- package/dist/cjs/const/deployments/scroll.js.map +1 -0
- package/dist/cjs/const/deployments/sei.js +1 -0
- package/dist/cjs/const/deployments/sei.js.map +1 -0
- package/dist/cjs/const/deployments/soneium.js +1 -0
- package/dist/cjs/const/deployments/soneium.js.map +1 -0
- package/dist/cjs/const/deployments/sonic.js +1 -0
- package/dist/cjs/const/deployments/sonic.js.map +1 -0
- package/dist/cjs/const/deployments/taiko.js +1 -0
- package/dist/cjs/const/deployments/taiko.js.map +1 -0
- package/dist/cjs/const/deployments/tataratestnet.js +1 -0
- package/dist/cjs/const/deployments/tataratestnet.js.map +1 -0
- package/dist/cjs/const/deployments/telos.js +1 -0
- package/dist/cjs/const/deployments/telos.js.map +1 -0
- package/dist/cjs/const/deployments/thundercore.js +1 -0
- package/dist/cjs/const/deployments/thundercore.js.map +1 -0
- package/dist/cjs/const/deployments/uni.js +1 -0
- package/dist/cjs/const/deployments/uni.js.map +1 -0
- package/dist/cjs/const/deployments/xlayer.js +1 -0
- package/dist/cjs/const/deployments/xlayer.js.map +1 -0
- package/dist/cjs/const/deployments/zeta.js +1 -0
- package/dist/cjs/const/deployments/zeta.js.map +1 -0
- package/dist/cjs/const/deployments/zircuit.js +1 -0
- package/dist/cjs/const/deployments/zircuit.js.map +1 -0
- package/dist/cjs/const/deployments/zklinknova.js +1 -0
- package/dist/cjs/const/deployments/zklinknova.js.map +1 -0
- package/dist/cjs/const/index.js +1 -0
- package/dist/cjs/const/index.js.map +1 -0
- package/dist/cjs/const/network.js +1 -0
- package/dist/cjs/const/network.js.map +1 -0
- package/dist/cjs/const/protocol.js +1 -0
- package/dist/cjs/const/protocol.js.map +1 -0
- package/dist/cjs/const/quoter.js +1 -0
- package/dist/cjs/const/quoter.js.map +1 -0
- package/dist/cjs/const/stabilityVaults/index.js +1 -0
- package/dist/cjs/const/stabilityVaults/index.js.map +1 -0
- package/dist/cjs/const/stabilityVaults/stabilityVaultsConfig.js +1 -0
- package/dist/cjs/const/stabilityVaults/stabilityVaultsConfig.js.map +1 -0
- package/dist/cjs/const/subgraph.js +1 -0
- package/dist/cjs/const/subgraph.js.map +1 -0
- package/dist/cjs/const/thegraph.js +1 -0
- package/dist/cjs/const/thegraph.js.map +1 -0
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/scripts/processDeployments.js +1 -0
- package/dist/cjs/scripts/processDeployments.js.map +1 -0
- package/dist/cjs/types.js +1 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/utils/PoolQueryAdapter.js +1 -0
- package/dist/cjs/utils/PoolQueryAdapter.js.map +1 -0
- package/dist/cjs/utils/SubgraphVaultClient.js +1 -0
- package/dist/cjs/utils/SubgraphVaultClient.js.map +1 -0
- package/dist/cjs/utils/subgraph-types.js +1 -0
- package/dist/cjs/utils/subgraph-types.js.map +1 -0
- package/dist/esm/base/FeeManagerClient.js +81 -0
- package/dist/esm/base/FeeManagerClient.js.map +1 -0
- package/dist/esm/base/PoolClient.js +1 -0
- package/dist/esm/base/PoolClient.js.map +1 -0
- package/dist/esm/base/SmartRewardClient.js +1 -0
- package/dist/esm/base/SmartRewardClient.js.map +1 -0
- package/dist/esm/base/SmartRewards.js +1 -0
- package/dist/esm/base/SmartRewards.js.map +1 -0
- package/dist/esm/base/StakingClient.js +1 -0
- package/dist/esm/base/StakingClient.js.map +1 -0
- package/dist/esm/base/SubgraphClient.js +1 -0
- package/dist/esm/base/SubgraphClient.js.map +1 -0
- package/dist/esm/base/VaultClient.js +1 -0
- package/dist/esm/base/VaultClient.js.map +1 -0
- package/dist/esm/base/vault/deposit/index.js +1 -0
- package/dist/esm/base/vault/deposit/index.js.map +1 -0
- package/dist/esm/base/vault/deposit/types.js +1 -0
- package/dist/esm/base/vault/deposit/types.js.map +1 -0
- package/dist/esm/base/vault/single-asset/calculateLimitPrice.js +1 -0
- package/dist/esm/base/vault/single-asset/calculateLimitPrice.js.map +1 -0
- package/dist/esm/base/vault/single-asset/calculateSwapAmount.js +1 -0
- package/dist/esm/base/vault/single-asset/calculateSwapAmount.js.map +1 -0
- package/dist/esm/base/vault/single-asset/estimateLpTokens.js +1 -0
- package/dist/esm/base/vault/single-asset/estimateLpTokens.js.map +1 -0
- package/dist/esm/base/vault/single-asset/index.js +1 -0
- package/dist/esm/base/vault/single-asset/index.js.map +1 -0
- package/dist/esm/base/vault/single-asset/simulateSwap.js +1 -0
- package/dist/esm/base/vault/single-asset/simulateSwap.js.map +1 -0
- package/dist/esm/base/vault/single-asset/singleAssetDeposit.js +1 -0
- package/dist/esm/base/vault/single-asset/singleAssetDeposit.js.map +1 -0
- package/dist/esm/base/vault/single-asset/types.js +1 -0
- package/dist/esm/base/vault/single-asset/types.js.map +1 -0
- package/dist/esm/base/vault/utils.js +1 -0
- package/dist/esm/base/vault/utils.js.map +1 -0
- package/dist/esm/base/vault/withdraw/index.js +1 -0
- package/dist/esm/base/vault/withdraw/index.js.map +1 -0
- package/dist/esm/base/vault/withdraw/types.js +1 -0
- package/dist/esm/base/vault/withdraw/types.js.map +1 -0
- package/dist/esm/client.js +1 -0
- package/dist/esm/client.js.map +1 -0
- package/dist/esm/const/abis/UniswapPool.js +1 -0
- package/dist/esm/const/abis/UniswapPool.js.map +1 -0
- package/dist/esm/const/abis/erc1155.js +1 -0
- package/dist/esm/const/abis/erc1155.js.map +1 -0
- package/dist/esm/const/abis/erc20.js +1 -0
- package/dist/esm/const/abis/erc20.js.map +1 -0
- package/dist/esm/const/abis/erc721.js +1 -0
- package/dist/esm/const/abis/erc721.js.map +1 -0
- package/dist/esm/const/abis/feeManager.js +1 -0
- package/dist/esm/const/abis/feeManager.js.map +1 -0
- package/dist/esm/const/abis/index.js +2 -0
- package/dist/esm/const/abis/index.js.map +1 -0
- package/dist/esm/const/abis/quoter.js +1 -0
- package/dist/esm/const/abis/quoter.js.map +1 -0
- package/dist/esm/const/abis/singleTokenDeposit.js +1 -0
- package/dist/esm/const/abis/singleTokenDeposit.js.map +1 -0
- package/dist/esm/const/abis/vaultFees.js +41 -0
- package/dist/esm/const/abis/vaultFees.js.map +1 -0
- package/dist/esm/const/amm/configs/ammConfig.js +1 -0
- package/dist/esm/const/amm/configs/ammConfig.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/aerodrome-v2.js +1 -0
- package/dist/esm/const/amm/configs/protocols/aerodrome-v2.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/aerodrome.js +1 -0
- package/dist/esm/const/amm/configs/protocols/aerodrome.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/arthswap.js +1 -0
- package/dist/esm/const/amm/configs/protocols/arthswap.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/baseswap.js +1 -0
- package/dist/esm/const/amm/configs/protocols/baseswap.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/basex.js +1 -0
- package/dist/esm/const/amm/configs/protocols/basex.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/beam.js +1 -0
- package/dist/esm/const/amm/configs/protocols/beam.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/beamswap.js +1 -0
- package/dist/esm/const/amm/configs/protocols/beamswap.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/blackhole.js +1 -0
- package/dist/esm/const/amm/configs/protocols/blackhole.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/camelot.js +1 -0
- package/dist/esm/const/amm/configs/protocols/camelot.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/crust.js +1 -0
- package/dist/esm/const/amm/configs/protocols/crust.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/cypher.js +1 -0
- package/dist/esm/const/amm/configs/protocols/cypher.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/dodo.js +1 -0
- package/dist/esm/const/amm/configs/protocols/dodo.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/dragonswap.js +1 -0
- package/dist/esm/const/amm/configs/protocols/dragonswap.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/eddy.js +1 -0
- package/dist/esm/const/amm/configs/protocols/eddy.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/equilibre.js +1 -0
- package/dist/esm/const/amm/configs/protocols/equilibre.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/fenix.js +1 -0
- package/dist/esm/const/amm/configs/protocols/fenix.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/forge.js +1 -0
- package/dist/esm/const/amm/configs/protocols/forge.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/fusionx.js +1 -0
- package/dist/esm/const/amm/configs/protocols/fusionx.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/glyph.js +1 -0
- package/dist/esm/const/amm/configs/protocols/glyph.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/henjin.js +1 -0
- package/dist/esm/const/amm/configs/protocols/henjin.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/hercules.js +1 -0
- package/dist/esm/const/amm/configs/protocols/hercules.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/horiza.js +1 -0
- package/dist/esm/const/amm/configs/protocols/horiza.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/index.js +1 -0
- package/dist/esm/const/amm/configs/protocols/index.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/katana.js +1 -0
- package/dist/esm/const/amm/configs/protocols/katana.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/katanaIntegral.js +1 -0
- package/dist/esm/const/amm/configs/protocols/katanaIntegral.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/kim.js +1 -0
- package/dist/esm/const/amm/configs/protocols/kim.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/kinetix.js +1 -0
- package/dist/esm/const/amm/configs/protocols/kinetix.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/kodiak.js +1 -0
- package/dist/esm/const/amm/configs/protocols/kodiak.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/kyo.js +1 -0
- package/dist/esm/const/amm/configs/protocols/kyo.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/linehub.js +1 -0
- package/dist/esm/const/amm/configs/protocols/linehub.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/lynex.js +1 -0
- package/dist/esm/const/amm/configs/protocols/lynex.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/machinex.js +1 -0
- package/dist/esm/const/amm/configs/protocols/machinex.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/maia.js +1 -0
- package/dist/esm/const/amm/configs/protocols/maia.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/metavault.js +1 -0
- package/dist/esm/const/amm/configs/protocols/metavault.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/nest.js +1 -0
- package/dist/esm/const/amm/configs/protocols/nest.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/novaswap.js +1 -0
- package/dist/esm/const/amm/configs/protocols/novaswap.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/ocelex.js +1 -0
- package/dist/esm/const/amm/configs/protocols/ocelex.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/pancakeswap.js +1 -0
- package/dist/esm/const/amm/configs/protocols/pancakeswap.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/poolshark.js +1 -0
- package/dist/esm/const/amm/configs/protocols/poolshark.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/quickswap-algebra.js +1 -0
- package/dist/esm/const/amm/configs/protocols/quickswap-algebra.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/quickswap-integral.js +1 -0
- package/dist/esm/const/amm/configs/protocols/quickswap-integral.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/quickswap-univ3.js +1 -0
- package/dist/esm/const/amm/configs/protocols/quickswap-univ3.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/quickswap.js +1 -0
- package/dist/esm/const/amm/configs/protocols/quickswap.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/retro.js +1 -0
- package/dist/esm/const/amm/configs/protocols/retro.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/sailor.js +1 -0
- package/dist/esm/const/amm/configs/protocols/sailor.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/shadow.js +1 -0
- package/dist/esm/const/amm/configs/protocols/shadow.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/silverswap.js +1 -0
- package/dist/esm/const/amm/configs/protocols/silverswap.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/spark.js +1 -0
- package/dist/esm/const/amm/configs/protocols/spark.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/spark32.js +1 -0
- package/dist/esm/const/amm/configs/protocols/spark32.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/spookyswap.js +1 -0
- package/dist/esm/const/amm/configs/protocols/spookyswap.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/stellaswap.js +1 -0
- package/dist/esm/const/amm/configs/protocols/stellaswap.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/supswap.js +1 -0
- package/dist/esm/const/amm/configs/protocols/supswap.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/sushi.js +1 -0
- package/dist/esm/const/amm/configs/protocols/sushi.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/swapmode.js +1 -0
- package/dist/esm/const/amm/configs/protocols/swapmode.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/swapsicle.js +1 -0
- package/dist/esm/const/amm/configs/protocols/swapsicle.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/thena.js +1 -0
- package/dist/esm/const/amm/configs/protocols/thena.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/thick.js +1 -0
- package/dist/esm/const/amm/configs/protocols/thick.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/thickv2.js +1 -0
- package/dist/esm/const/amm/configs/protocols/thickv2.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/thruster.js +1 -0
- package/dist/esm/const/amm/configs/protocols/thruster.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/uniswap.js +1 -0
- package/dist/esm/const/amm/configs/protocols/uniswap.js.map +1 -0
- package/dist/esm/const/amm/configs/protocols/wasabee.js +1 -0
- package/dist/esm/const/amm/configs/protocols/wasabee.js.map +1 -0
- package/dist/esm/const/amm/index.js +1 -0
- package/dist/esm/const/amm/index.js.map +1 -0
- package/dist/esm/const/amm/utils/beacon.js +1 -0
- package/dist/esm/const/amm/utils/beacon.js.map +1 -0
- package/dist/esm/const/amm/utils/contracts.js +1 -0
- package/dist/esm/const/amm/utils/contracts.js.map +1 -0
- package/dist/esm/const/amm/utils/index.js +1 -0
- package/dist/esm/const/amm/utils/index.js.map +1 -0
- package/dist/esm/const/amm/utils/protocol.js +1 -0
- package/dist/esm/const/amm/utils/protocol.js.map +1 -0
- package/dist/esm/const/api.js +1 -0
- package/dist/esm/const/api.js.map +1 -0
- package/dist/esm/const/capabilities.js +1 -0
- package/dist/esm/const/capabilities.js.map +1 -0
- package/dist/esm/const/chain.js +1 -0
- package/dist/esm/const/chain.js.map +1 -0
- package/dist/esm/const/deployments/abis.js +1 -0
- package/dist/esm/const/deployments/abis.js.map +1 -0
- package/dist/esm/const/deployments/apechain.js +1 -0
- package/dist/esm/const/deployments/apechain.js.map +1 -0
- package/dist/esm/const/deployments/arbitrum.js +1 -0
- package/dist/esm/const/deployments/arbitrum.js.map +1 -0
- package/dist/esm/const/deployments/arbitrumgoerli.js +1 -0
- package/dist/esm/const/deployments/arbitrumgoerli.js.map +1 -0
- package/dist/esm/const/deployments/astar.js +1 -0
- package/dist/esm/const/deployments/astar.js.map +1 -0
- package/dist/esm/const/deployments/astarzkevm.js +1 -0
- package/dist/esm/const/deployments/astarzkevm.js.map +1 -0
- package/dist/esm/const/deployments/avalanche.js +1 -0
- package/dist/esm/const/deployments/avalanche.js.map +1 -0
- package/dist/esm/const/deployments/bartiotest.js +1 -0
- package/dist/esm/const/deployments/bartiotest.js.map +1 -0
- package/dist/esm/const/deployments/base.js +1 -0
- package/dist/esm/const/deployments/base.js.map +1 -0
- package/dist/esm/const/deployments/bera.js +1 -0
- package/dist/esm/const/deployments/bera.js.map +1 -0
- package/dist/esm/const/deployments/berachainbartio.js +1 -0
- package/dist/esm/const/deployments/berachainbartio.js.map +1 -0
- package/dist/esm/const/deployments/blast.js +1 -0
- package/dist/esm/const/deployments/blast.js.map +1 -0
- package/dist/esm/const/deployments/bsc.js +1 -0
- package/dist/esm/const/deployments/bsc.js.map +1 -0
- package/dist/esm/const/deployments/celo.js +1 -0
- package/dist/esm/const/deployments/celo.js.map +1 -0
- package/dist/esm/const/deployments/core.js +1 -0
- package/dist/esm/const/deployments/core.js.map +1 -0
- package/dist/esm/const/deployments/eth.js +1 -0
- package/dist/esm/const/deployments/eth.js.map +1 -0
- package/dist/esm/const/deployments/evmos.js +1 -0
- package/dist/esm/const/deployments/evmos.js.map +1 -0
- package/dist/esm/const/deployments/fantom.js +1 -0
- package/dist/esm/const/deployments/fantom.js.map +1 -0
- package/dist/esm/const/deployments/filecoin.js +1 -0
- package/dist/esm/const/deployments/filecoin.js.map +1 -0
- package/dist/esm/const/deployments/flare.js +1 -0
- package/dist/esm/const/deployments/flare.js.map +1 -0
- package/dist/esm/const/deployments/goerli.js +1 -0
- package/dist/esm/const/deployments/goerli.js.map +1 -0
- package/dist/esm/const/deployments/hemi.js +1 -0
- package/dist/esm/const/deployments/hemi.js.map +1 -0
- package/dist/esm/const/deployments/hyperevm.js +1 -0
- package/dist/esm/const/deployments/hyperevm.js.map +1 -0
- package/dist/esm/const/deployments/index.js +1 -0
- package/dist/esm/const/deployments/index.js.map +1 -0
- package/dist/esm/const/deployments/katana.js +1 -0
- package/dist/esm/const/deployments/katana.js.map +1 -0
- package/dist/esm/const/deployments/kava.js +1 -0
- package/dist/esm/const/deployments/kava.js.map +1 -0
- package/dist/esm/const/deployments/linea.js +1 -0
- package/dist/esm/const/deployments/linea.js.map +1 -0
- package/dist/esm/const/deployments/localhost.js +1 -0
- package/dist/esm/const/deployments/localhost.js.map +1 -0
- package/dist/esm/const/deployments/manta.js +1 -0
- package/dist/esm/const/deployments/manta.js.map +1 -0
- package/dist/esm/const/deployments/mantle.js +1 -0
- package/dist/esm/const/deployments/mantle.js.map +1 -0
- package/dist/esm/const/deployments/metis.js +1 -0
- package/dist/esm/const/deployments/metis.js.map +1 -0
- package/dist/esm/const/deployments/mode.js +1 -0
- package/dist/esm/const/deployments/mode.js.map +1 -0
- package/dist/esm/const/deployments/moonbeam.js +1 -0
- package/dist/esm/const/deployments/moonbeam.js.map +1 -0
- package/dist/esm/const/deployments/mumbai.js +1 -0
- package/dist/esm/const/deployments/mumbai.js.map +1 -0
- package/dist/esm/const/deployments/nibiru.js +1 -0
- package/dist/esm/const/deployments/nibiru.js.map +1 -0
- package/dist/esm/const/deployments/okxtestnet.js +1 -0
- package/dist/esm/const/deployments/okxtestnet.js.map +1 -0
- package/dist/esm/const/deployments/optimism.js +1 -0
- package/dist/esm/const/deployments/optimism.js.map +1 -0
- package/dist/esm/const/deployments/optimismgoerli.js +1 -0
- package/dist/esm/const/deployments/optimismgoerli.js.map +1 -0
- package/dist/esm/const/deployments/peaq.js +1 -0
- package/dist/esm/const/deployments/peaq.js.map +1 -0
- package/dist/esm/const/deployments/polygon.js +1 -0
- package/dist/esm/const/deployments/polygon.js.map +1 -0
- package/dist/esm/const/deployments/polyzkevm.js +1 -0
- package/dist/esm/const/deployments/polyzkevm.js.map +1 -0
- package/dist/esm/const/deployments/pyzkevm.js +1 -0
- package/dist/esm/const/deployments/pyzkevm.js.map +1 -0
- package/dist/esm/const/deployments/ronin.js +1 -0
- package/dist/esm/const/deployments/ronin.js.map +1 -0
- package/dist/esm/const/deployments/rootstock.js +1 -0
- package/dist/esm/const/deployments/rootstock.js.map +1 -0
- package/dist/esm/const/deployments/saga.js +1 -0
- package/dist/esm/const/deployments/saga.js.map +1 -0
- package/dist/esm/const/deployments/scroll.js +1 -0
- package/dist/esm/const/deployments/scroll.js.map +1 -0
- package/dist/esm/const/deployments/sei.js +1 -0
- package/dist/esm/const/deployments/sei.js.map +1 -0
- package/dist/esm/const/deployments/soneium.js +1 -0
- package/dist/esm/const/deployments/soneium.js.map +1 -0
- package/dist/esm/const/deployments/sonic.js +1 -0
- package/dist/esm/const/deployments/sonic.js.map +1 -0
- package/dist/esm/const/deployments/taiko.js +1 -0
- package/dist/esm/const/deployments/taiko.js.map +1 -0
- package/dist/esm/const/deployments/tataratestnet.js +1 -0
- package/dist/esm/const/deployments/tataratestnet.js.map +1 -0
- package/dist/esm/const/deployments/telos.js +1 -0
- package/dist/esm/const/deployments/telos.js.map +1 -0
- package/dist/esm/const/deployments/thundercore.js +1 -0
- package/dist/esm/const/deployments/thundercore.js.map +1 -0
- package/dist/esm/const/deployments/uni.js +1 -0
- package/dist/esm/const/deployments/uni.js.map +1 -0
- package/dist/esm/const/deployments/xlayer.js +1 -0
- package/dist/esm/const/deployments/xlayer.js.map +1 -0
- package/dist/esm/const/deployments/zeta.js +1 -0
- package/dist/esm/const/deployments/zeta.js.map +1 -0
- package/dist/esm/const/deployments/zircuit.js +1 -0
- package/dist/esm/const/deployments/zircuit.js.map +1 -0
- package/dist/esm/const/deployments/zklinknova.js +1 -0
- package/dist/esm/const/deployments/zklinknova.js.map +1 -0
- package/dist/esm/const/index.js +1 -0
- package/dist/esm/const/index.js.map +1 -0
- package/dist/esm/const/network.js +1 -0
- package/dist/esm/const/network.js.map +1 -0
- package/dist/esm/const/protocol.js +1 -0
- package/dist/esm/const/protocol.js.map +1 -0
- package/dist/esm/const/quoter.js +1 -0
- package/dist/esm/const/quoter.js.map +1 -0
- package/dist/esm/const/stabilityVaults/index.js +1 -0
- package/dist/esm/const/stabilityVaults/index.js.map +1 -0
- package/dist/esm/const/stabilityVaults/stabilityVaultsConfig.js +1 -0
- package/dist/esm/const/stabilityVaults/stabilityVaultsConfig.js.map +1 -0
- package/dist/esm/const/subgraph.js +1 -0
- package/dist/esm/const/subgraph.js.map +1 -0
- package/dist/esm/const/thegraph.js +1 -0
- package/dist/esm/const/thegraph.js.map +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/scripts/processDeployments.js +1 -0
- package/dist/esm/scripts/processDeployments.js.map +1 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/utils/PoolQueryAdapter.js +1 -0
- package/dist/esm/utils/PoolQueryAdapter.js.map +1 -0
- package/dist/esm/utils/SubgraphVaultClient.js +1 -0
- package/dist/esm/utils/SubgraphVaultClient.js.map +1 -0
- package/dist/esm/utils/subgraph-types.js +1 -0
- package/dist/esm/utils/subgraph-types.js.map +1 -0
- package/dist/types/base/FeeManagerClient.d.ts +27 -1
- package/dist/types/base/FeeManagerClient.d.ts.map +1 -1
- package/dist/types/const/abis/index.d.ts +1 -0
- package/dist/types/const/abis/index.d.ts.map +1 -1
- package/dist/types/const/abis/vaultFees.d.ts +30 -0
- package/dist/types/const/abis/vaultFees.d.ts.map +1 -0
- package/package.json +3 -2
- package/src/__tests__/base/FeeManagerClient.test.ts +706 -0
- package/src/__tests__/base/PoolClient.test.ts +542 -0
- package/src/__tests__/base/SmartRewards.test.ts +465 -0
- package/src/__tests__/base/StakingClient.test.ts +772 -0
- package/src/__tests__/base/SubgraphClient.test.ts +99 -0
- package/src/__tests__/base/VaultClient.test.ts +1011 -0
- package/src/__tests__/base/vault/single-asset/calculateLimitPrice.test.ts +324 -0
- package/src/__tests__/base/vault/single-asset/calculateSwapAmount.test.ts +322 -0
- package/src/__tests__/base/vault/single-asset/estimateLpTokens.test.ts +612 -0
- package/src/__tests__/base/vault/single-asset/simulateSwap.test.ts +467 -0
- package/src/__tests__/base/vault/single-asset/singleAssetDepositClient.test.ts +400 -0
- package/src/__tests__/client.test.ts +48 -0
- package/src/__tests__/const/capabilities.test.ts +24 -0
- package/src/base/FeeManagerClient.ts +711 -0
- package/src/base/PoolClient.ts +678 -0
- package/src/base/SmartRewardClient.ts +57 -0
- package/src/base/SmartRewards.ts +783 -0
- package/src/base/StakingClient.ts +917 -0
- package/src/base/SubgraphClient.ts +93 -0
- package/src/base/VaultClient.ts +1642 -0
- package/src/base/vault/deposit/index.ts +705 -0
- package/src/base/vault/deposit/types.ts +49 -0
- package/src/base/vault/single-asset/README.md +541 -0
- package/src/base/vault/single-asset/calculateLimitPrice.ts +279 -0
- package/src/base/vault/single-asset/calculateSwapAmount.ts +74 -0
- package/src/base/vault/single-asset/estimateLpTokens.ts +393 -0
- package/src/base/vault/single-asset/index.ts +85 -0
- package/src/base/vault/single-asset/readmes/API_REFERENCE.md +478 -0
- package/src/base/vault/single-asset/readmes/calculateLimitPrice.md +455 -0
- package/src/base/vault/single-asset/readmes/calculateSwapAmount.md +345 -0
- package/src/base/vault/single-asset/readmes/estimateLpTokens.md +585 -0
- package/src/base/vault/single-asset/readmes/index.md +174 -0
- package/src/base/vault/single-asset/readmes/simulateSwap.md +612 -0
- package/src/base/vault/single-asset/simulateSwap.ts +451 -0
- package/src/base/vault/single-asset/singleAssetDeposit.ts +411 -0
- package/src/base/vault/single-asset/types.ts +186 -0
- package/src/base/vault/utils.ts +633 -0
- package/src/base/vault/withdraw/index.ts +187 -0
- package/src/base/vault/withdraw/types.ts +14 -0
- package/src/client.ts +161 -0
- package/src/const/abis/UniswapPool.ts +1 -0
- package/src/const/abis/erc1155.ts +314 -0
- package/src/const/abis/erc20.ts +224 -0
- package/src/const/abis/erc721.ts +346 -0
- package/src/const/abis/feeManager.ts +672 -0
- package/src/const/abis/index.ts +8 -0
- package/src/const/abis/quoter.ts +1585 -0
- package/src/const/abis/singleTokenDeposit.ts +921 -0
- package/src/const/abis/vaultFees.ts +40 -0
- package/src/const/amm/configs/ammConfig.ts +130 -0
- package/src/const/amm/configs/protocols/aerodrome-v2.ts +18 -0
- package/src/const/amm/configs/protocols/aerodrome.ts +18 -0
- package/src/const/amm/configs/protocols/arthswap.ts +21 -0
- package/src/const/amm/configs/protocols/baseswap.ts +17 -0
- package/src/const/amm/configs/protocols/basex.ts +20 -0
- package/src/const/amm/configs/protocols/beam.ts +16 -0
- package/src/const/amm/configs/protocols/beamswap.ts +17 -0
- package/src/const/amm/configs/protocols/blackhole.ts +22 -0
- package/src/const/amm/configs/protocols/camelot.ts +26 -0
- package/src/const/amm/configs/protocols/crust.ts +16 -0
- package/src/const/amm/configs/protocols/cypher.ts +20 -0
- package/src/const/amm/configs/protocols/dodo.ts +17 -0
- package/src/const/amm/configs/protocols/dragonswap.ts +16 -0
- package/src/const/amm/configs/protocols/eddy.ts +17 -0
- package/src/const/amm/configs/protocols/equilibre.ts +17 -0
- package/src/const/amm/configs/protocols/fenix.ts +17 -0
- package/src/const/amm/configs/protocols/forge.ts +22 -0
- package/src/const/amm/configs/protocols/fusionx.ts +21 -0
- package/src/const/amm/configs/protocols/glyph.ts +22 -0
- package/src/const/amm/configs/protocols/henjin.ts +17 -0
- package/src/const/amm/configs/protocols/hercules.ts +16 -0
- package/src/const/amm/configs/protocols/horiza.ts +23 -0
- package/src/const/amm/configs/protocols/index.ts +79 -0
- package/src/const/amm/configs/protocols/katana.ts +15 -0
- package/src/const/amm/configs/protocols/katanaIntegral.ts +15 -0
- package/src/const/amm/configs/protocols/kim.ts +24 -0
- package/src/const/amm/configs/protocols/kinetix.ts +23 -0
- package/src/const/amm/configs/protocols/kodiak.ts +21 -0
- package/src/const/amm/configs/protocols/kyo.ts +20 -0
- package/src/const/amm/configs/protocols/linehub.ts +17 -0
- package/src/const/amm/configs/protocols/lynex.ts +23 -0
- package/src/const/amm/configs/protocols/machinex.ts +22 -0
- package/src/const/amm/configs/protocols/maia.ts +22 -0
- package/src/const/amm/configs/protocols/metavault.ts +23 -0
- package/src/const/amm/configs/protocols/nest.ts +19 -0
- package/src/const/amm/configs/protocols/novaswap.ts +16 -0
- package/src/const/amm/configs/protocols/ocelex.ts +17 -0
- package/src/const/amm/configs/protocols/pancakeswap.ts +26 -0
- package/src/const/amm/configs/protocols/poolshark.ts +17 -0
- package/src/const/amm/configs/protocols/quickswap-algebra.ts +20 -0
- package/src/const/amm/configs/protocols/quickswap-integral.ts +24 -0
- package/src/const/amm/configs/protocols/quickswap-univ3.ts +29 -0
- package/src/const/amm/configs/protocols/quickswap.ts +29 -0
- package/src/const/amm/configs/protocols/retro.ts +23 -0
- package/src/const/amm/configs/protocols/sailor.ts +16 -0
- package/src/const/amm/configs/protocols/shadow.ts +18 -0
- package/src/const/amm/configs/protocols/silverswap.ts +22 -0
- package/src/const/amm/configs/protocols/spark.ts +17 -0
- package/src/const/amm/configs/protocols/spark32.ts +17 -0
- package/src/const/amm/configs/protocols/spookyswap.ts +16 -0
- package/src/const/amm/configs/protocols/stellaswap.ts +23 -0
- package/src/const/amm/configs/protocols/supswap.ts +17 -0
- package/src/const/amm/configs/protocols/sushi.ts +86 -0
- package/src/const/amm/configs/protocols/swapmode.ts +17 -0
- package/src/const/amm/configs/protocols/swapsicle.ts +17 -0
- package/src/const/amm/configs/protocols/thena.ts +22 -0
- package/src/const/amm/configs/protocols/thick.ts +19 -0
- package/src/const/amm/configs/protocols/thickv2.ts +17 -0
- package/src/const/amm/configs/protocols/thruster.ts +19 -0
- package/src/const/amm/configs/protocols/uniswap.ts +98 -0
- package/src/const/amm/configs/protocols/wasabee.ts +16 -0
- package/src/const/amm/index.ts +3 -0
- package/src/const/amm/utils/beacon.ts +216 -0
- package/src/const/amm/utils/contracts.ts +162 -0
- package/src/const/amm/utils/index.ts +127 -0
- package/src/const/amm/utils/protocol.ts +171 -0
- package/src/const/api.ts +27 -0
- package/src/const/capabilities.ts +115 -0
- package/src/const/chain.ts +243 -0
- package/src/const/deployments/abis.ts +6752 -0
- package/src/const/deployments/apechain.ts +17 -0
- package/src/const/deployments/arbitrum.ts +26 -0
- package/src/const/deployments/arbitrumgoerli.ts +16 -0
- package/src/const/deployments/astar.ts +16 -0
- package/src/const/deployments/astarzkevm.ts +16 -0
- package/src/const/deployments/avalanche.ts +45 -0
- package/src/const/deployments/bartiotest.ts +16 -0
- package/src/const/deployments/base.ts +24 -0
- package/src/const/deployments/bera.ts +16 -0
- package/src/const/deployments/berachainbartio.ts +40 -0
- package/src/const/deployments/blast.ts +16 -0
- package/src/const/deployments/bsc.ts +16 -0
- package/src/const/deployments/celo.ts +16 -0
- package/src/const/deployments/core.ts +16 -0
- package/src/const/deployments/eth.ts +22 -0
- package/src/const/deployments/evmos.ts +16 -0
- package/src/const/deployments/fantom.ts +16 -0
- package/src/const/deployments/filecoin.ts +16 -0
- package/src/const/deployments/flare.ts +16 -0
- package/src/const/deployments/goerli.ts +16 -0
- package/src/const/deployments/hemi.ts +16 -0
- package/src/const/deployments/hyperevm.ts +49 -0
- package/src/const/deployments/index.ts +49 -0
- package/src/const/deployments/katana.ts +48 -0
- package/src/const/deployments/kava.ts +16 -0
- package/src/const/deployments/linea.ts +16 -0
- package/src/const/deployments/localhost.ts +8 -0
- package/src/const/deployments/manta.ts +16 -0
- package/src/const/deployments/mantle.ts +16 -0
- package/src/const/deployments/metis.ts +16 -0
- package/src/const/deployments/mode.ts +16 -0
- package/src/const/deployments/moonbeam.ts +16 -0
- package/src/const/deployments/mumbai.ts +16 -0
- package/src/const/deployments/nibiru.ts +49 -0
- package/src/const/deployments/okxtestnet.ts +16 -0
- package/src/const/deployments/optimism.ts +16 -0
- package/src/const/deployments/optimismgoerli.ts +16 -0
- package/src/const/deployments/peaq.ts +25 -0
- package/src/const/deployments/polygon.ts +25 -0
- package/src/const/deployments/polyzkevm.ts +16 -0
- package/src/const/deployments/pyzkevm.ts +9 -0
- package/src/const/deployments/ronin.ts +17 -0
- package/src/const/deployments/rootstock.ts +16 -0
- package/src/const/deployments/saga.ts +49 -0
- package/src/const/deployments/scroll.ts +16 -0
- package/src/const/deployments/sei.ts +16 -0
- package/src/const/deployments/soneium.ts +16 -0
- package/src/const/deployments/sonic.ts +16 -0
- package/src/const/deployments/taiko.ts +16 -0
- package/src/const/deployments/tataratestnet.ts +16 -0
- package/src/const/deployments/telos.ts +16 -0
- package/src/const/deployments/thundercore.ts +16 -0
- package/src/const/deployments/uni.ts +16 -0
- package/src/const/deployments/xlayer.ts +16 -0
- package/src/const/deployments/zeta.ts +16 -0
- package/src/const/deployments/zircuit.ts +16 -0
- package/src/const/deployments/zklinknova.ts +21 -0
- package/src/const/index.ts +12 -0
- package/src/const/network.ts +635 -0
- package/src/const/protocol.ts +229 -0
- package/src/const/quoter.ts +571 -0
- package/src/const/stabilityVaults/index.ts +2 -0
- package/src/const/stabilityVaults/stabilityVaultsConfig.ts +41 -0
- package/src/const/subgraph.ts +157 -0
- package/src/const/thegraph.ts +3 -0
- package/src/index.ts +80 -0
- package/src/scripts/processDeployments.ts +174 -0
- package/src/types.ts +202 -0
- package/src/utils/PoolQueryAdapter.ts +943 -0
- package/src/utils/SubgraphVaultClient.ts +408 -0
- package/src/utils/subgraph-types.ts +108 -0
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.FeeManagerClient = void 0;
|
|
4
4
|
const viem_1 = require("viem");
|
|
5
5
|
const feeManager_js_1 = require("../const/abis/feeManager.js");
|
|
6
|
+
const vaultFees_js_1 = require("../const/abis/vaultFees.js");
|
|
6
7
|
const SubgraphClient_js_1 = require("./SubgraphClient.js");
|
|
7
8
|
class FeeManagerClient extends SubgraphClient_js_1.SubgraphClient {
|
|
8
9
|
constructor(feeManagerAddress, publicClient, walletClient) {
|
|
@@ -11,6 +12,14 @@ class FeeManagerClient extends SubgraphClient_js_1.SubgraphClient {
|
|
|
11
12
|
this.walletClient = walletClient;
|
|
12
13
|
this.feeManagerAddress = feeManagerAddress;
|
|
13
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Overrides the FeeManager contract address.
|
|
17
|
+
* Useful when deployment addresses are not yet hardcoded or need custom targeting.
|
|
18
|
+
* @param address The new FeeManager contract address
|
|
19
|
+
*/
|
|
20
|
+
setFeeManagerAddress(address) {
|
|
21
|
+
this.feeManagerAddress = address;
|
|
22
|
+
}
|
|
14
23
|
async getFees(vault) {
|
|
15
24
|
try {
|
|
16
25
|
const fees = await this.publicClient.readContract({
|
|
@@ -522,5 +531,77 @@ class FeeManagerClient extends SubgraphClient_js_1.SubgraphClient {
|
|
|
522
531
|
};
|
|
523
532
|
}
|
|
524
533
|
}
|
|
534
|
+
/**
|
|
535
|
+
* Gets the accrued revenue for a specific fee identifier in a vault
|
|
536
|
+
* @param vault The vault address
|
|
537
|
+
* @param feeIdentifier The fee identifier (e.g., 'STEER_FEES', 'STRATEGIST_FEES')
|
|
538
|
+
* @returns Promise resolving to the accrued amounts for token0 and token1
|
|
539
|
+
*/
|
|
540
|
+
async getAccruedRevenue(vault, feeIdentifier) {
|
|
541
|
+
try {
|
|
542
|
+
const [amount0, amount1] = await Promise.all([
|
|
543
|
+
this.publicClient.readContract({
|
|
544
|
+
address: vault,
|
|
545
|
+
abi: vaultFees_js_1.VAULT_FEES_ABI,
|
|
546
|
+
functionName: 'accruedFees0',
|
|
547
|
+
args: [feeIdentifier],
|
|
548
|
+
}),
|
|
549
|
+
this.publicClient.readContract({
|
|
550
|
+
address: vault,
|
|
551
|
+
abi: vaultFees_js_1.VAULT_FEES_ABI,
|
|
552
|
+
functionName: 'accruedFees1',
|
|
553
|
+
args: [feeIdentifier],
|
|
554
|
+
}),
|
|
555
|
+
]);
|
|
556
|
+
return {
|
|
557
|
+
data: { amount0, amount1 },
|
|
558
|
+
status: 200,
|
|
559
|
+
success: true,
|
|
560
|
+
};
|
|
561
|
+
}
|
|
562
|
+
catch (error) {
|
|
563
|
+
return {
|
|
564
|
+
data: null,
|
|
565
|
+
status: 500,
|
|
566
|
+
success: false,
|
|
567
|
+
error: error instanceof Error ? error.message : 'Unknown error occurred',
|
|
568
|
+
};
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
/**
|
|
572
|
+
* Gets a summary of accrued revenue for all configured fee identifiers in a vault
|
|
573
|
+
* @param vault The vault address
|
|
574
|
+
* @returns Promise resolving to a list of fee identifiers and their accrued amounts
|
|
575
|
+
*/
|
|
576
|
+
async getVaultRevenueSummary(vault) {
|
|
577
|
+
try {
|
|
578
|
+
const feesResponse = await this.getFees(vault);
|
|
579
|
+
if (!feesResponse.success || !feesResponse.data) {
|
|
580
|
+
throw new Error(feesResponse.error || 'Failed to fetch vault fees configuration');
|
|
581
|
+
}
|
|
582
|
+
const summary = await Promise.all(feesResponse.data.map(async (fee) => {
|
|
583
|
+
const revenue = await this.getAccruedRevenue(vault, fee.feeIdentifier);
|
|
584
|
+
return {
|
|
585
|
+
feeIdentifier: fee.feeIdentifier,
|
|
586
|
+
amount0: revenue.data?.amount0 ?? 0n,
|
|
587
|
+
amount1: revenue.data?.amount1 ?? 0n,
|
|
588
|
+
};
|
|
589
|
+
}));
|
|
590
|
+
return {
|
|
591
|
+
data: summary,
|
|
592
|
+
status: 200,
|
|
593
|
+
success: true,
|
|
594
|
+
};
|
|
595
|
+
}
|
|
596
|
+
catch (error) {
|
|
597
|
+
return {
|
|
598
|
+
data: null,
|
|
599
|
+
status: 500,
|
|
600
|
+
success: false,
|
|
601
|
+
error: error instanceof Error ? error.message : 'Unknown error occurred',
|
|
602
|
+
};
|
|
603
|
+
}
|
|
604
|
+
}
|
|
525
605
|
}
|
|
526
606
|
exports.FeeManagerClient = FeeManagerClient;
|
|
607
|
+
//# sourceMappingURL=FeeManagerClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeeManagerClient.js","sourceRoot":"","sources":["../../../src/base/FeeManagerClient.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n type Address,\n type Hash,\n type PublicClient,\n type WalletClient,\n isAddressEqual,\n} from 'viem';\nimport type {\n DefaultFeeManagerConfigParams,\n Fee,\n FeeManagerConfigParams,\n FeeWithdrawalParams,\n MultipleFeeWithdrawalParams,\n MultiVaultFeeWithdrawalParams,\n SteerResponse,\n} from '../types.js';\nimport { FEE_MANAGER_ABI } from '../const/abis/feeManager.js';\nimport { VAULT_FEES_ABI } from '../const/abis/vaultFees.js';\nimport { SubgraphClient } from './SubgraphClient.js';\n\nexport class FeeManagerClient extends SubgraphClient {\n protected readonly publicClient: PublicClient;\n protected readonly walletClient: WalletClient;\n protected feeManagerAddress: Address;\n\n public constructor(\n feeManagerAddress: Address,\n publicClient: PublicClient,\n walletClient: WalletClient\n ) {\n super(publicClient as PublicClient & WalletClient);\n this.publicClient = publicClient;\n this.walletClient = walletClient;\n this.feeManagerAddress = feeManagerAddress;\n }\n\n /**\n * Overrides the FeeManager contract address.\n * Useful when deployment addresses are not yet hardcoded or need custom targeting.\n * @param address The new FeeManager contract address\n */\n public setFeeManagerAddress(address: Address): void {\n this.feeManagerAddress = address;\n }\n\n public async getFees(vault: Address): Promise<SteerResponse<Fee[]>> {\n try {\n const fees = await this.publicClient.readContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'getFees',\n args: [vault],\n });\n\n return {\n data: fees as Fee[],\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async getTotalFees(vault: Address): Promise<SteerResponse<bigint>> {\n try {\n const totalFees = await this.publicClient.readContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'vaultTotalFees',\n args: [vault],\n });\n\n return {\n data: totalFees as bigint,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async getWithdrawer(\n vault: Address,\n feeIdentifier: string\n ): Promise<SteerResponse<Address>> {\n try {\n const withdrawer = await this.publicClient.readContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'withdrawalPermissions',\n args: [vault, feeIdentifier],\n });\n\n return {\n data: withdrawer as Address,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async validateAdminPermission(): Promise<SteerResponse<boolean>> {\n try {\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const owner = await this.publicClient.readContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'owner',\n });\n\n return {\n data: isAddressEqual(owner as Address, accounts[0]),\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async validateWithdrawerPermission(\n vault: Address,\n feeIdentifier: string\n ): Promise<SteerResponse<boolean>> {\n try {\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const withdrawer = await this.publicClient.readContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'withdrawalPermissions',\n args: [vault, feeIdentifier],\n });\n\n return {\n data: isAddressEqual(withdrawer as Address, accounts[0]),\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async setFeeAndWithdrawalPermission(\n params: FeeManagerConfigParams\n ): Promise<SteerResponse<Hash>> {\n try {\n if (\n params.feeIdentifiers.length !== params.feeValues.length ||\n params.feeIdentifiers.length !== params.withdrawers.length\n ) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'feeIdentifiers, feeValues, and withdrawers must have the same length',\n };\n }\n\n const isAdmin = await this.validateAdminPermission();\n if (!isAdmin.success) {\n throw new Error(isAdmin.error ?? 'Unknown error occurred');\n }\n if (!isAdmin.data) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'Caller is not FeeManager owner',\n };\n }\n\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const { request } = await this.publicClient.simulateContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'setFeeAndWithdrawalPermission',\n args: [params.vault, params.feeIdentifiers, params.feeValues, params.withdrawers],\n account: accounts[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async setDefaultFeeAndWithdrawalPermission(\n params: DefaultFeeManagerConfigParams\n ): Promise<SteerResponse<Hash>> {\n try {\n if (\n params.feeIdentifiers.length !== params.feeValues.length ||\n params.feeIdentifiers.length !== params.withdrawers.length\n ) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'feeIdentifiers, feeValues, and withdrawers must have the same length',\n };\n }\n\n const isAdmin = await this.validateAdminPermission();\n if (!isAdmin.success) {\n throw new Error(isAdmin.error ?? 'Unknown error occurred');\n }\n if (!isAdmin.data) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'Caller is not FeeManager owner',\n };\n }\n\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const { request } = await this.publicClient.simulateContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'setDefaultFeeAndWithdrawalPermission',\n args: [\n params.vault,\n params.totalVaultFees,\n params.feeIdentifiers,\n params.feeValues,\n params.withdrawers,\n ],\n account: accounts[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async setMigratedVaultFeeAndWithdrawalPermission(): Promise<SteerResponse<Hash>> {\n try {\n const isAdmin = await this.validateAdminPermission();\n if (!isAdmin.success) {\n throw new Error(isAdmin.error ?? 'Unknown error occurred');\n }\n if (!isAdmin.data) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'Caller is not FeeManager owner',\n };\n }\n\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const { request } = await this.publicClient.simulateContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'setMigratedVaultFeeAndWithdrawalPermission',\n args: [],\n account: accounts[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async setTotalFees(vault: Address, newTotalFees: bigint): Promise<SteerResponse<Hash>> {\n try {\n const isAdmin = await this.validateAdminPermission();\n if (!isAdmin.success) {\n throw new Error(isAdmin.error ?? 'Unknown error occurred');\n }\n if (!isAdmin.data) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'Caller is not FeeManager owner',\n };\n }\n\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const { request } = await this.publicClient.simulateContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'setTotalFees',\n args: [vault, newTotalFees],\n account: accounts[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async changeFeeWithdrawer(\n vault: Address,\n feeIdentifier: string,\n newWithdrawer: Address\n ): Promise<SteerResponse<Hash>> {\n try {\n const isAdmin = await this.validateAdminPermission();\n if (!isAdmin.success) {\n throw new Error(isAdmin.error ?? 'Unknown error occurred');\n }\n if (!isAdmin.data) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'Caller is not FeeManager owner',\n };\n }\n\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const { request } = await this.publicClient.simulateContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'changeFeeWithdrawer',\n args: [vault, feeIdentifier, newWithdrawer],\n account: accounts[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async withdrawFee(params: FeeWithdrawalParams): Promise<SteerResponse<Hash>> {\n try {\n const canWithdraw = await this.validateWithdrawerPermission(\n params.vault,\n params.feeIdentifier\n );\n if (!canWithdraw.success) {\n throw new Error(canWithdraw.error ?? 'Unknown error occurred');\n }\n if (!canWithdraw.data) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'Caller is not authorized withdrawer',\n };\n }\n\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const { request } = await this.publicClient.simulateContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'withdrawFee',\n args: [params.vault, params.feeIdentifier, params.amount0, params.amount1],\n account: accounts[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async withdrawMultipleFees(\n params: MultipleFeeWithdrawalParams\n ): Promise<SteerResponse<Hash>> {\n try {\n if (\n params.feeIdentifiers.length !== params.amounts0.length ||\n params.feeIdentifiers.length !== params.amounts1.length\n ) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'feeIdentifiers, amounts0, and amounts1 must have the same length',\n };\n }\n\n for (const feeIdentifier of params.feeIdentifiers) {\n const canWithdraw = await this.validateWithdrawerPermission(params.vault, feeIdentifier);\n if (!canWithdraw.success) {\n throw new Error(canWithdraw.error ?? 'Unknown error occurred');\n }\n if (!canWithdraw.data) {\n return {\n data: null,\n status: 400,\n success: false,\n error: `Caller is not authorized withdrawer for ${feeIdentifier}`,\n };\n }\n }\n\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const { request } = await this.publicClient.simulateContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'withdrawMultipleFees',\n args: [params.vault, params.feeIdentifiers, params.amounts0, params.amounts1],\n account: accounts[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async withdrawFeesFromMultipleVaults(\n params: MultiVaultFeeWithdrawalParams\n ): Promise<SteerResponse<Hash>> {\n try {\n if (\n params.vaults.length !== params.feeIdentifiers.length ||\n params.vaults.length !== params.amounts0.length ||\n params.vaults.length !== params.amounts1.length\n ) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'vaults, feeIdentifiers, amounts0, and amounts1 must have the same length',\n };\n }\n\n for (let i = 0; i < params.vaults.length; i++) {\n const vault = params.vaults[i];\n const identifiers = params.feeIdentifiers[i];\n const amount0 = params.amounts0[i];\n const amount1 = params.amounts1[i];\n\n if (identifiers.length !== amount0.length || identifiers.length !== amount1.length) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'feeIdentifiers[i], amounts0[i], and amounts1[i] must have the same length',\n };\n }\n\n for (const feeIdentifier of identifiers) {\n const canWithdraw = await this.validateWithdrawerPermission(vault, feeIdentifier);\n if (!canWithdraw.success) {\n throw new Error(canWithdraw.error ?? 'Unknown error occurred');\n }\n if (!canWithdraw.data) {\n return {\n data: null,\n status: 400,\n success: false,\n error: `Caller is not authorized withdrawer for ${feeIdentifier}`,\n };\n }\n }\n }\n\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const { request } = await this.publicClient.simulateContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'withdrawFeesFromMultipleVaults',\n args: [params.vaults, params.feeIdentifiers, params.amounts0, params.amounts1],\n account: accounts[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Gets the accrued revenue for a specific fee identifier in a vault\n * @param vault The vault address\n * @param feeIdentifier The fee identifier (e.g., 'STEER_FEES', 'STRATEGIST_FEES')\n * @returns Promise resolving to the accrued amounts for token0 and token1\n */\n public async getAccruedRevenue(\n vault: Address,\n feeIdentifier: string\n ): Promise<SteerResponse<{ amount0: bigint; amount1: bigint }>> {\n try {\n const [amount0, amount1] = await Promise.all([\n this.publicClient.readContract({\n address: vault,\n abi: VAULT_FEES_ABI,\n functionName: 'accruedFees0',\n args: [feeIdentifier],\n }),\n this.publicClient.readContract({\n address: vault,\n abi: VAULT_FEES_ABI,\n functionName: 'accruedFees1',\n args: [feeIdentifier],\n }),\n ]);\n\n return {\n data: { amount0, amount1 },\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Gets a summary of accrued revenue for all configured fee identifiers in a vault\n * @param vault The vault address\n * @returns Promise resolving to a list of fee identifiers and their accrued amounts\n */\n public async getVaultRevenueSummary(\n vault: Address\n ): Promise<SteerResponse<{ feeIdentifier: string; amount0: bigint; amount1: bigint }[]>> {\n try {\n const feesResponse = await this.getFees(vault);\n if (!feesResponse.success || !feesResponse.data) {\n throw new Error(feesResponse.error || 'Failed to fetch vault fees configuration');\n }\n\n const summary = await Promise.all(\n feesResponse.data.map(async (fee) => {\n const revenue = await this.getAccruedRevenue(vault, fee.feeIdentifier);\n return {\n feeIdentifier: fee.feeIdentifier,\n amount0: revenue.data?.amount0 ?? 0n,\n amount1: revenue.data?.amount1 ?? 0n,\n };\n })\n );\n\n return {\n data: summary,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PoolClient.js","sourceRoot":"","sources":["../../../src/base/PoolClient.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PublicClient, WalletClient } from 'viem';\nimport { PoolData, SteerResponse } from '../types.js';\nimport { SubgraphClient } from './SubgraphClient.js';\nimport { \n Protocol, \n Chain\n} from '../const/chain.js';\nimport { \n chainIdToName, \n getProtocolSubgraphURL\n} from '../const/index.js';\nimport { isAlgebraProtocol } from '../const/protocol.js';\nimport { getTopPoolsQuery, getTokenPoolsQueryByAddress, getPoolDetailsQuery } from '../utils/PoolQueryAdapter.js';\n\n/**\n * GraphQL token data interface representing token information from subgraph responses\n * @interface GraphQLTokenData\n */\nexport interface GraphQLTokenData {\n /** Token symbol (e.g., \"ETH\", \"USDC\") */\n symbol: string;\n /** Token contract address */\n id: string;\n /** Number of decimal places for the token */\n decimals: string;\n /** Human-readable token name */\n name: string;\n}\n\n/**\n * GraphQL pool data interface representing pool information from subgraph responses\n * @interface GraphQLPoolData\n */\nexport interface GraphQLPoolData {\n /** Pool contract address */\n id: string;\n /** First token in the pool */\n token0: GraphQLTokenData;\n /** Second token in the pool */\n token1: GraphQLTokenData;\n /** 24-hour trading volume in USD */\n volumeUSD: string;\n /** Current tick of the pool */\n tick: string;\n /** Total liquidity in the pool */\n liquidity: string;\n /** Fee tier for the pool (optional) */\n feeTier?: string;\n /** 24-hour volume of token0 (optional) */\n volumeToken0?: string;\n /** 24-hour volume of token1 (optional) */\n volumeToken1?: string;\n /** Total value locked in ETH (optional) */\n totalValueLockedETH?: string;\n /** Alternative field name for volume USD (optional) */\n volumeUsd?: string;\n /** Alternative field name for TVL in ETH (optional) */\n totalValueLockedEth?: string;\n}\n\n/**\n * Filter criteria for querying pools\n * @interface PoolFilter\n */\nexport interface PoolFilter {\n /** Chain ID to filter pools by */\n chainId?: number;\n /** Protocol to filter pools by */\n protocol?: Protocol;\n /** Minimum volume in USD to filter pools */\n minVolumeUSD?: number;\n /** Token address to find pools containing this token */\n tokenAddress?: string;\n /** Maximum number of pools to return */\n limit?: number;\n}\n\n// GraphQL response interfaces (currently unused but kept for future use)\n// interface GraphQLResponse<T> {\n// data: T;\n// errors?: Array<{ message: string }>;\n// }\n\n/**\n * Response interface for top pools query\n * @interface TopPoolsResponse\n * @internal\n */\ninterface TopPoolsResponse {\n /** Standard pools array */\n pools: GraphQLPoolData[];\n /** Limit pools array (used by some protocols) */\n limitPools?: GraphQLPoolData[];\n /** CL pools array (used by some protocols) */\n clPools?: GraphQLPoolData[];\n}\n\n/**\n * Response interface for pool details query\n * @interface PoolDetailsResponse\n * @internal\n */\ninterface PoolDetailsResponse {\n /** Single pool data */\n pool: GraphQLPoolData;\n /** Single limit pool data (used by some protocols) */\n limitPool?: GraphQLPoolData;\n /** Single CL pool data (used by some protocols) */\n clPool?: GraphQLPoolData;\n}\n\n/**\n * Response interface for pools by token query\n * @interface PoolsByTokenResponse\n * @internal\n */\ninterface PoolsByTokenResponse {\n /** Standard pools array */\n pools?: GraphQLPoolData[];\n /** Limit pools array (used by some protocols) */\n limitPools?: GraphQLPoolData[];\n /** Token pools array (used by some protocols) */\n tokenPools?: GraphQLPoolData[];\n /** CL pools array (used by some protocols) */\n clPools?: GraphQLPoolData[];\n}\n\n/**\n * Client for fetching pool data from various DEX protocol subgraphs\n * \n * @example\n * ```typescript\n * import { createPublicClient, createWalletClient, http } from 'viem';\n * import { mainnet } from 'viem/chains';\n * import { PoolClient } from '@steerprotocol/sdk';\n * \n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http()\n * }) as PublicClient & WalletClient;\n * \n * const poolClient = new PoolClient(client, 'your-subgraph-studio-key');\n * \n * // Fetch top pools\n * const topPools = await poolClient.getTopPools(100, Protocol.UniswapV3, 1);\n * ```\n * \n * @extends SubgraphClient\n * @group Pool\n */\nexport class PoolClient extends SubgraphClient {\n /** Public client for blockchain interactions */\n protected readonly publicClient: PublicClient;\n /** Default timeout for GraphQL queries in milliseconds */\n private readonly defaultTimeout: number = 60000;\n /** Counter for tracking API call metrics */\n private apiCallCount: number = 0;\n /** Subgraph Studio API key for rate limiting */\n private readonly subgraphStudioKey: string;\n\n /**\n * Creates a new PoolClient instance\n * \n * @param client - Combined public and wallet client for blockchain interactions\n * @param subgraphStudioKey - Optional Subgraph Studio API key for higher rate limits\n * \n * @example\n * ```typescript\n * const poolClient = new PoolClient(client, 'your-api-key');\n * ```\n */\n constructor(\n client: PublicClient & WalletClient,\n subgraphStudioKey: string = ''\n ) {\n super(client);\n this.publicClient = client;\n this.subgraphStudioKey = subgraphStudioKey;\n }\n\n /**\n * Resets the API call counter for metrics tracking\n * \n * @example\n * ```typescript\n * poolClient.resetMetrics();\n * ```\n */\n public resetMetrics(): void {\n this.apiCallCount = 0;\n }\n\n /**\n * Gets current metrics for monitoring API usage\n * \n * @returns Object containing current metrics\n * \n * @example\n * ```typescript\n * const metrics = poolClient.getMetrics();\n * console.log(`API calls made: ${metrics.apiCallCount}`);\n * ```\n */\n public getMetrics(): { apiCallCount: number } {\n return {\n apiCallCount: this.apiCallCount,\n };\n }\n\n /**\n * Fetches data from GraphQL endpoint with retry logic for rate limits\n * \n * @param query - GraphQL query string\n * @param variables - Variables for the GraphQL query\n * @param protocol - Protocol to query\n * @param chainId - Chain ID to query\n * @returns Promise containing the response data\n * \n * @throws {Error} When subgraph endpoint is not available\n * @throws {Error} When rate limit is exceeded after max retries\n * @throws {Error} When GraphQL query times out\n * \n * @internal\n */\n private async fetchFromGraph<T>(\n query: string,\n variables: Record<string, unknown>,\n protocol: Protocol,\n chainId: number\n ): Promise<SteerResponse<T>> {\n try {\n const chainName = chainIdToName(chainId);\n const endpoint = getProtocolSubgraphURL(protocol, chainName as Chain, this.subgraphStudioKey);\n\n if (!endpoint) {\n throw new Error(`No subgraph endpoint available for protocol ${protocol} on chain ${chainName}`);\n }\n\n const MAX_RETRIES = 3;\n const RETRY_DELAY_MS = 11000;\n\n const fetchWithRetry = async (retries = 0): Promise<T> => {\n const response = await fetch(endpoint, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({ query, variables }),\n });\n\n const data = await response.json() as { data: T; error?: string; errors?: Array<{ message: string }> };\n\n if (data.error && typeof data.error === \"string\" && data.error.includes(\"surpassed your query allowance\")) {\n if (retries < MAX_RETRIES) {\n console.warn(`Rate limit hit for ${endpoint}, retrying in ${RETRY_DELAY_MS / 1000}s (attempt ${retries + 1})`);\n await new Promise(res => setTimeout(res, RETRY_DELAY_MS));\n return fetchWithRetry(retries + 1);\n } else {\n throw new Error(`Rate limit exceeded after ${MAX_RETRIES} retries: ${data.error}`);\n }\n }\n\n if (data.error) {\n throw new Error(`GraphQL endpoint error: ${data.error}`);\n }\n\n if (data.errors) {\n throw new Error(`GraphQL errors: ${JSON.stringify(data.errors)}`);\n }\n\n return data.data;\n };\n\n this.apiCallCount++;\n console.log(\"Total API calls:\", this.apiCallCount);\n\n const timeoutPromise = new Promise<never>((_, reject) => {\n setTimeout(\n () => reject(new Error(\"GraphQL query timeout\")),\n this.defaultTimeout\n );\n });\n\n const data = await Promise.race([fetchWithRetry(), timeoutPromise]);\n\n return {\n data: data as T,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Fetches the top pools for a specific protocol by trading volume\n * \n * @param count - Number of pools to fetch (default: 500)\n * @param protocol - Protocol to fetch pools from\n * @param chainId - Chain ID to fetch pools from\n * @returns Promise containing an array of top pools\n * \n * @example\n * ```typescript\n * // Get top 100 Uniswap V3 pools on Ethereum\n * const topPools = await poolClient.getTopPools(100, Protocol.UniswapV3, 1);\n * if (topPools.success) {\n * console.log(`Found ${topPools.data.length} pools`);\n * }\n * ```\n * \n * @throws {Error} When failed to fetch pools from subgraph\n */\n public async getTopPools(\n count: number = 500,\n protocol: Protocol,\n chainId: number\n ): Promise<SteerResponse<GraphQLPoolData[]>> {\n try {\n const isAlgebraPool = isAlgebraProtocol(protocol);\n const query = getTopPoolsQuery(protocol, isAlgebraPool);\n\n console.log(`[Chain ${chainId}] [Protocol ${protocol}] 📊 Fetching top ${count} pools from the subgraph...`);\n\n const response = await this.fetchFromGraph<TopPoolsResponse>(\n query,\n { limit: count },\n protocol,\n chainId\n );\n\n if (!response.success || !response.data) {\n throw new Error(response.error || 'Failed to fetch pools');\n }\n\n const pools = response.data.pools || response.data.limitPools || response.data.clPools || [];\n \n console.log(`[Chain ${chainId}] [Protocol ${protocol}] ✅ Received ${pools.length} pools from the subgraph`);\n\n // Filter out pools with invalid volumeUSD\n const validPools = pools.filter(pool => {\n const volumeUSD = parseFloat(pool.volumeUSD || pool.volumeUsd || \"0\");\n return !isNaN(volumeUSD) && volumeUSD > 0;\n });\n\n console.log(`[Chain ${chainId}] [Protocol ${protocol}] ✅ Found ${validPools.length} valid pools with positive volumeUSD`);\n\n return {\n data: validPools,\n status: 200,\n success: true,\n };\n } catch (error) {\n console.error(`[Chain ${chainId}] [Protocol ${protocol}] Error in getTopPools:`, error);\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Fetches detailed information for a specific pool by its ID\n * \n * @param poolId - Pool contract address to fetch\n * @param protocol - Protocol the pool belongs to\n * @param chainId - Chain ID where the pool exists\n * @returns Promise containing pool details or null if not found\n * \n * @example\n * ```typescript\n * // Get specific pool details\n * const poolDetails = await poolClient.getPoolById(\n * '0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640',\n * Protocol.UniswapV3,\n * 1\n * );\n * if (poolDetails.success && poolDetails.data) {\n * console.log(`Pool: ${poolDetails.data.token0.symbol}/${poolDetails.data.token1.symbol}`);\n * }\n * ```\n * \n * @throws {Error} When failed to fetch pool from subgraph\n */\n public async getPoolById(\n poolId: string,\n protocol: Protocol,\n chainId: number\n ): Promise<SteerResponse<GraphQLPoolData | null>> {\n try {\n\n const isAlgebraPool = isAlgebraProtocol(protocol);\n const query = getPoolDetailsQuery(isAlgebraPool, protocol);\n\n \n const response = await this.fetchFromGraph<PoolDetailsResponse>(\n query,\n { pool: poolId },\n protocol,\n chainId\n );\n\n if (!response.success || !response.data) {\n throw new Error(response.error || 'Failed to fetch pool');\n }\n\n const pool = response.data.pool || response.data.clPool || response.data.limitPool || null;\n\n\n return {\n data: pool,\n status: 200,\n success: true,\n };\n } catch (error) {\n console.error(`Error fetching pool ${poolId}:`, error);\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Fetches pools containing multiple tokens in batches for better performance\n * \n * @param tokenAddresses - Array of token contract addresses\n * @param protocol - Protocol to fetch pools from\n * @param chainId - Chain ID to fetch pools from\n * @param batchSize - Number of tokens to process in each batch (default: 10)\n * @returns Promise containing all pools found for the tokens\n * \n * @example\n * ```typescript\n * // Get pools for multiple tokens\n * const tokenAddresses = [\n * '0xa0b86a33e6f8b07b71c3a39ef77a6b6e8f1b7b7e', // USDC\n * '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2' // WETH\n * ];\n * const pools = await poolClient.fetchPoolsForTokensBatch(\n * tokenAddresses,\n * Protocol.UniswapV3,\n * 1,\n * 5\n * );\n * ```\n * \n * @throws {Error} When batch processing fails\n */\n public async fetchPoolsForTokensBatch(\n tokenAddresses: string[],\n protocol: Protocol,\n chainId: number,\n batchSize: number = 10\n ): Promise<SteerResponse<GraphQLPoolData[]>> {\n try {\n if (tokenAddresses.length === 0) {\n return {\n data: [],\n status: 200,\n success: true,\n };\n }\n\n console.log(`\\n🔍 Batch Pool Fetch Summary:`);\n console.log(`📥 Total tokens to process: ${tokenAddresses.length}`);\n\n const isAlgebraPool = isAlgebraProtocol(protocol);\n const normalizedAddresses = tokenAddresses.map(addr => addr.toLowerCase());\n\n // Split into chunks\n const chunkSize = batchSize;\n const addressChunks = [];\n for (let i = 0; i < normalizedAddresses.length; i += chunkSize) {\n addressChunks.push(normalizedAddresses.slice(i, i + chunkSize));\n }\n\n console.log(`📦 Processing ${addressChunks.length} chunks of max ${chunkSize} tokens each`);\n\n const allPools: GraphQLPoolData[] = [];\n\n // Process chunks in parallel\n const results = await Promise.all(\n addressChunks.map(async (chunk, chunkIndex) => {\n console.log(`\\n🔄 Processing chunk ${chunkIndex + 1}/${addressChunks.length} with ${chunk.length} tokens`);\n\n const chunkResults = await Promise.all(\n chunk.map(async (token) => {\n try {\n const query = getTokenPoolsQueryByAddress(isAlgebraPool, protocol);\n const queryStartTime = performance.now();\n \n const response = await this.fetchFromGraph<PoolsByTokenResponse>(\n query,\n { token },\n protocol,\n chainId\n );\n\n const queryTime = performance.now() - queryStartTime;\n console.log(`⏱️ GraphQL query for token ${token.slice(0, 6)}... completed in ${queryTime.toFixed(2)}ms`);\n\n if (!response.success || !response.data) {\n console.error(`❌ No pools found for token: ${token} on chainId: ${chainId}`);\n return [];\n }\n\n // Extract pools from different possible response structures\n let pools: GraphQLPoolData[] = [];\n if (response.data.pools) {\n pools = response.data.pools;\n } else if (response.data.clPools) {\n pools = response.data.clPools;\n } else if (response.data.limitPools) {\n pools = response.data.limitPools;\n } else if (response.data.tokenPools) {\n pools = response.data.tokenPools;\n }\n\n if (pools.length === 0) {\n console.error(`❌ No pools found for token: ${token} on chainId: ${chainId}`);\n return [];\n }\n\n return pools;\n } catch (error) {\n console.error(`❌ Error fetching pools for token: ${token} on chainId: ${chainId}`, error);\n return [];\n }\n })\n );\n\n return chunkResults.flat();\n })\n );\n\n // Flatten all results\n allPools.push(...results.flat());\n\n return {\n data: allPools,\n status: 200,\n success: true,\n };\n } catch (error) {\n console.error(\"Error in fetchPoolsForTokensBatch:\", error);\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Fetches all pools containing a specific token\n * \n * @param tokenAddress - Token contract address\n * @param protocol - Protocol to fetch pools from\n * @param chainId - Chain ID to fetch pools from\n * @returns Promise containing pools that include the specified token\n * \n * @example\n * ```typescript\n * // Get all USDC pools on Uniswap V3\n * const usdcPools = await poolClient.fetchPoolsForToken(\n * '0xa0b86a33e6f8b07b71c3a39ef77a6b6e8f1b7b7e',\n * Protocol.UniswapV3,\n * 1\n * );\n * if (usdcPools.success) {\n * console.log(`Found ${usdcPools.data.length} USDC pools`);\n * }\n * ```\n * \n * @throws {Error} When failed to fetch pools for token\n */\n public async fetchPoolsForToken(\n tokenAddress: string,\n protocol: Protocol,\n chainId: number\n ): Promise<SteerResponse<GraphQLPoolData[]>> {\n try {\n const isAlgebraPool = isAlgebraProtocol(protocol);\n const query = getTokenPoolsQueryByAddress(isAlgebraPool, protocol);\n\n const response = await this.fetchFromGraph<PoolsByTokenResponse>(\n query,\n { token: tokenAddress.toLowerCase() },\n protocol,\n chainId\n );\n\n if (!response.success || !response.data) {\n throw new Error(response.error || 'Failed to fetch pools for token');\n }\n\n // Extract pools from different possible response structures\n let pools: GraphQLPoolData[] = [];\n if (response.data.pools) {\n pools = response.data.pools;\n } else if (response.data.limitPools) {\n pools = response.data.limitPools;\n } else if (response.data.tokenPools) {\n pools = response.data.tokenPools;\n } else if (response.data.clPools) {\n pools = response.data.clPools;\n }\n\n return {\n data: pools,\n status: 200,\n success: true,\n };\n } catch (error) {\n console.error(`Error fetching pools for token ${tokenAddress}:`, error);\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Filters pools based on validity criteria such as tick range and liquidity\n * \n * @param pools - Array of pools to filter\n * @returns Array of valid pools that meet the criteria\n * \n * @example\n * ```typescript\n * const validPools = poolClient.filterValidPools(allPools);\n * console.log(`Filtered down to ${validPools.length} valid pools`);\n * ```\n */\n public filterValidPools(pools: PoolData[]): PoolData[] {\n return pools.filter(pool => {\n // Check for required fields\n if (!pool.id || !pool.tick || !pool.liquidity) {\n return false;\n }\n\n // Parse values\n const tick = parseInt(pool.tick);\n const liquidity = parseFloat(pool.liquidity);\n\n // Check for valid tick range and liquidity\n const TICK_MIN = -887272;\n const TICK_MAX = 887272;\n const TICK_EDGE_THRESHOLD = 1;\n\n if (\n isNaN(tick) ||\n isNaN(liquidity) ||\n liquidity <= 0 ||\n tick <= TICK_MIN + TICK_EDGE_THRESHOLD ||\n tick >= TICK_MAX - TICK_EDGE_THRESHOLD\n ) {\n return false;\n }\n\n return true;\n });\n }\n} "]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmartRewardClient.js","sourceRoot":"","sources":["../../../src/base/SmartRewardClient.ts"],"names":[],"mappings":";;;AAAA,oDAAsD;AAEtD,uDAAiD;AACjD,4CAA4C;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAa,kBAAmB,SAAQ,8BAAY;IAClD;;;;;;OAMG;IACH,YACE,YAA0B,EAC1B,YAA0B,EAC1B,WAAyC,EACzC,UAAgB,IAAI;QAEpB,MAAM,MAAM,GAAG,IAAA,kBAAS,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAA,sBAAY,EAAC,MAAM,CAAC,CAAC;QACvC,KAAK,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IAC/C,CAAC;CACF;AAlBD,gDAkBC","sourcesContent":["import { createClient } from '@steerprotocol/api-sdk';\nimport type { PublicClient, WalletClient } from 'viem';\nimport { SmartRewards } from './SmartRewards.js';\nimport { getApiUrl } from '../const/api.js';\n\n/**\n * Client for interacting with Steer Protocol's Smart Rewards system.\n * This client provides functionality for managing rewards, claims, and campaigns.\n * \n * @example\n * ```typescript\n * import { createPublicClient, createWalletClient, http } from 'viem';\n * import { mainnet } from 'viem/chains';\n * import { SmartRewardsClient } from '@steerprotocol/sdk';\n * \n * // Create viem clients\n * const publicClient = createPublicClient({\n * chain: mainnet,\n * transport: http()\n * });\n * \n * const walletClient = createWalletClient({\n * chain: mainnet,\n * transport: http()\n * });\n * \n * // Initialize the Smart Rewards client\n * const rewardsClient = new SmartRewardsClient(publicClient, walletClient, 'production');\n * \n * // Get user's reward summary\n * const summary = await rewardsClient.getRewardSummary(userAddress, chainId);\n * \n * // Claim rewards\n * const tx = await rewardsClient.claimCampaignRewards(userAddress, chainId);\n * ```\n * \n * @group Client\n */\nexport class SmartRewardsClient extends SmartRewards {\n /**\n * Creates a new instance of SmartRewardsClient\n * @param publicClient - The public client for reading from the blockchain\n * @param walletClient - The wallet client for writing to the blockchain\n * @param environment - The environment to use ('production' or 'development')\n * @param version - Optional API version to use (defaults to 'v1')\n */\n constructor(\n publicClient: PublicClient, \n walletClient: WalletClient,\n environment: 'production' | 'development',\n version: 'v1' = 'v1'\n ) {\n const apiUrl = getApiUrl(environment, version);\n const apiClient = createClient(apiUrl);\n super(apiClient, publicClient, walletClient);\n }\n}"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmartRewards.js","sourceRoot":"","sources":["../../../src/base/SmartRewards.ts"],"names":[],"mappings":"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","sourcesContent":["import { Campaign, createClient } from '@steerprotocol/api-sdk';\nimport type { Address, Hash, PublicClient, WalletClient } from 'viem';\nimport { formatUnits } from 'viem';\nimport { SteerResponse } from '../types.js';\nimport { getSubgraphUrlByChainId } from '../const/subgraph.js';\n\n/**\n * Represents a node in the claim proof data structure\n * @property chainId - The ID of the chain where the claim exists\n * @property lastBlockUpdatedTo - The last block number this claim was updated to\n * @property user - The address of the user who can claim\n * @property campaignId - The ID of the campaign this claim belongs to\n * @property amount - The claimable amount as a string (may include decimals)\n * @property proof - The merkle proof array required for claiming\n */\nexport interface ClaimProofNode {\n chainId: number;\n lastBlockUpdatedTo: number;\n user: string;\n campaignId: number;\n amount: string;\n proof: readonly string[];\n}\n\nexport interface ClaimProofEdge {\n node: ClaimProofNode;\n cursor: string;\n}\n\n/**\n * Represents a historical claim reward record\n * @property id - Unique identifier for the claim\n * @property user - Address of the user who claimed\n * @property amount - Amount that was claimed (may include decimals)\n * @property campaign - Campaign identifier\n * @property chainId - Chain ID where the claim occurred\n * @property timestamp - Unix timestamp of when the claim occurred\n */\nexport interface ClaimRewardNode {\n id: string;\n user: string;\n amount: string;\n campaign: string;\n chainId: number;\n timestamp: number;\n}\n\nexport interface ClaimRewardEdge {\n cursor: string;\n node: ClaimRewardNode;\n}\n\n/**\n * Pagination information for paginated queries\n * @property hasNextPage - Whether there are more results available\n * @property endCursor - Cursor to use for fetching next page, if available\n */\nexport interface PageInfo {\n hasNextPage: boolean;\n endCursor: string | null | undefined;\n}\n\n/**\n * Connection type for claim rewards, following the Relay specification\n * @property edges - Array of claim reward records with cursors\n * @property pageInfo - Pagination information\n * @property totalCount - Total number of records available\n */\nexport interface ClaimRewardsConnection {\n edges: readonly ClaimRewardEdge[];\n pageInfo: PageInfo;\n totalCount: number;\n}\n\nexport interface ClaimProofsPageInfo {\n hasNextPage: boolean;\n endCursor?: string;\n}\n\nexport interface ClaimProofsResponse {\n totalCount: number;\n edges: readonly ClaimProofEdge[];\n pageInfo: ClaimProofsPageInfo;\n}\n\nexport interface SmartRewarderContract {\n chainId: number;\n address: string;\n}\n\n/**\n * Parameters required for claiming rewards\n * @property users - Array of user addresses who are claiming\n * @property campaignIds - Array of campaign IDs corresponding to each claim\n * @property amounts - Array of amounts to claim\n * @property proofs - Array of merkle proofs for verification\n * @property rewarderAddress - Address of the smart rewarder contract\n */\nexport interface ClaimRewardParams {\n users: readonly Address[];\n campaignIds: readonly bigint[];\n amounts: readonly bigint[];\n proofs: readonly (readonly `0x${string}`[])[];\n rewarderAddress: Address;\n}\n\n/**\n * Represents a reward balance with both native and formatted values\n * @property formatted - Human-readable string format with proper decimals\n * @property native - Raw bigint value\n */\nexport interface RewardBalance {\n formatted: string;\n native: bigint;\n}\n\n/**\n * Comprehensive summary of a user's reward status\n * @property totalEarned - Total rewards earned (claimed + claimable)\n * @property totalClaimed - Total rewards already claimed\n * @property claimable - Rewards available to claim\n */\nexport interface RewardSummary {\n totalEarned: RewardBalance;\n totalClaimed: RewardBalance;\n claimable: RewardBalance;\n}\n\nexport abstract class SmartRewards {\n protected readonly client: ReturnType<typeof createClient>;\n protected readonly publicClient: PublicClient;\n protected readonly walletClient: WalletClient;\n\n constructor(\n client: ReturnType<typeof createClient>,\n publicClient: PublicClient,\n walletClient: WalletClient\n ) {\n this.client = client;\n this.publicClient = publicClient;\n this.walletClient = walletClient;\n }\n\n public async getCampaigns(chainId: number): Promise<SteerResponse<Campaign[]>> {\n const campaigns = await this.client.campaigns({\n filter: {\n chainId,\n },\n });\n\n return {\n data: (campaigns.data?.campaigns.edges.map((edge) => ({\n ...edge.node,\n vaults: edge.node.vaults?.map(vault => ({\n ...vault,\n beaconName: vault.beaconName || '',\n name: vault.name || '',\n protocol: vault.protocol || '',\n protocolBaseType: vault.protocolBaseType || '',\n targetProtocol: vault.targetProtocol || ''\n })) || []\n })) || []) as Campaign[],\n status: campaigns.status,\n success: true,\n };\n }\n\n /**\n * Retrieves campaigns associated with a specific pool address\n * @param poolAddress - The address of the pool to get campaigns for\n * @param chainId - Chain ID where the pool exists\n * @returns Promise resolving to an array of campaigns associated with the pool\n * \n * @example\n * ```typescript\n * // Get campaigns for a pool on a specific chain\n * const campaigns = await smartRewards.campaignsByPool('0x...', 1);\n * ```\n */\n public async campaignsByPool(\n poolAddress: string,\n chainId: number\n ): Promise<SteerResponse<Campaign[]>> {\n try {\n const campaigns = await this.client.campaignsByPool({\n pool: poolAddress,\n chainId\n });\n\n return {\n data: (campaigns.data?.campaignsByPool?.map(campaign => campaign ? {\n ...campaign,\n vaults: campaign.vaults?.map(vault => vault ? {\n ...vault,\n beaconName: vault.beaconName || '',\n name: vault.name || '',\n protocol: vault.protocol || '',\n protocolBaseType: vault.protocolBaseType || '',\n targetProtocol: vault.targetProtocol || ''\n } : null).filter((v): v is NonNullable<typeof v> => v !== null) || []\n } : null).filter((c): c is NonNullable<typeof c> => c !== null) || []) as Campaign[],\n status: campaigns.status,\n success: true\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred'\n };\n }\n }\n\n /**\n * Retrieves claim proofs for a user that can be used to claim rewards\n * @param user - Address of the user to get proofs for\n * @param chainId - Chain ID where the claims exist\n * @param campaignId - Optional campaign ID to filter claims\n * @returns Promise resolving to claim proof data with pagination support\n */\n public async getClaimProofs(\n user: Address,\n chainId: number,\n campaignId?: number\n ): Promise<SteerResponse<ClaimProofsResponse>> {\n try {\n const normalizedUser = user.toLowerCase() as Address;\n const response = await this.client.claimProofs({\n user: normalizedUser,\n filter: {\n chainId,\n campaignId\n }\n });\n\n if (!response.data?.claimProofs) {\n return {\n data: null,\n status: response.status,\n success: true\n };\n }\n\n const transformedResponse: ClaimProofsResponse = {\n totalCount: response.data.claimProofs.totalCount,\n pageInfo: {\n hasNextPage: response.data.claimProofs.pageInfo.hasNextPage,\n endCursor: response.data.claimProofs.pageInfo.endCursor || undefined\n },\n edges: response.data.claimProofs.edges.map(edge => ({\n cursor: edge.cursor,\n node: {\n ...edge.node,\n proof: edge.node.proof?.filter((p): p is string => p !== null) || []\n }\n }))\n };\n\n return {\n data: transformedResponse,\n status: response.status,\n success: true\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred'\n };\n }\n }\n\n /**\n * Retrieves historical claim data for a specific pool\n * @param chainId - Chain ID where the pool exists\n * @param pool - Address or identifier of the pool\n * @param user - Optional user address to filter claims\n * @returns Promise resolving to paginated claim history data\n * \n * @example\n * ```typescript\n * // Get all claims for a pool\n * const allClaims = await smartRewards.getClaimRewardsByPool(1, poolAddress);\n * \n * // Get claims for a specific user in a pool\n * const userClaims = await smartRewards.getClaimRewardsByPool(1, poolAddress, userAddress);\n * ```\n */\n public async getClaimedRewardsByPool(\n chainId: number,\n pool: string,\n user?: Address\n ): Promise<SteerResponse<ClaimRewardsConnection>> {\n try {\n const normalizedPool = pool.toLowerCase();\n const normalizedUser = user ? user.toLowerCase() as Address : undefined;\n \n const response = await this.client.claimRewards({\n poolId: normalizedPool,\n chainId,\n filter: normalizedUser ? { user: normalizedUser } : undefined\n });\n\n if (!response.data?.claimRewards) {\n return {\n data: null,\n status: response.status,\n success: true\n };\n }\n\n const transformedResponse: ClaimRewardsConnection = {\n totalCount: response.data.claimRewards.totalCount,\n pageInfo: {\n hasNextPage: response.data.claimRewards.pageInfo.hasNextPage,\n endCursor: response.data.claimRewards.pageInfo.endCursor\n },\n edges: response.data.claimRewards.edges.map(edge => ({\n cursor: edge.cursor,\n node: {\n ...edge.node,\n timestamp: Number(edge.node.timestamp)\n }\n }))\n };\n\n return {\n data: transformedResponse,\n status: response.status,\n success: true\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred'\n };\n }\n }\n\n \n\n /**\n * Gets a comprehensive summary of a user's reward status\n * @param user - Address of the user\n * @param chainId - Chain ID to check rewards on\n * @param campaignId - Optional campaign ID to filter rewards\n * @param decimals - Number of decimals for formatting (default: 18)\n * @returns Promise resolving to reward summary with both native and formatted values\n * \n * @example\n * ```typescript\n * const summary = await smartRewards.getRewardSummary(userAddress, chainId);\n * console.log('Total earned:', summary.data.totalEarned.formatted);\n * console.log('Available to claim:', summary.data.claimable.formatted);\n * ```\n */\n public async getRewardSummary(\n user: Address,\n poolAddress: string,\n chainId: number,\n campaignId: number,\n decimals: number = 18\n ): Promise<SteerResponse<RewardSummary>> {\n try {\n // Lowercase addresses\n const normalizedUser = user.toLowerCase() as Address;\n const normalizedPoolAddress = poolAddress.toLowerCase();\n\n // Get claimable rewards\n const claimProofs = await this.getClaimProofs(normalizedUser, chainId, campaignId);\n\n // Filter claim proofs by campaignId for additional safety\n const filteredClaimProofs = claimProofs.data?.edges.filter(\n edge => edge.node.campaignId === campaignId\n ) || [];\n\n const totalAmount = filteredClaimProofs.reduce(\n (sum, edge) => sum + BigInt(edge.node.amount.split('.')[0]),\n 0n\n ) || 0n;\n\n // Get claimed rewards\n const claimedRewards = await this.getClaimedRewardsByPool(chainId, normalizedPoolAddress, normalizedUser);\n\n // Filter claimed rewards by campaign ID\n const filteredClaimedRewards = claimedRewards.data?.edges.filter(\n edge => Number(edge.node.campaign) === campaignId\n ) || [];\n\n const claimedAmount = filteredClaimedRewards.reduce(\n (sum, edge) => sum + BigInt(edge.node.amount.split('.')[0]),\n 0n\n ) || 0n;\n\n // Calculate totals\n const claimableAmount = totalAmount - claimedAmount;\n\n const summary: RewardSummary = {\n totalEarned: {\n native: totalAmount,\n formatted: formatUnits(totalAmount, decimals)\n },\n totalClaimed: {\n native: claimedAmount,\n formatted: formatUnits(claimedAmount, decimals)\n },\n claimable: {\n native: claimableAmount,\n formatted: formatUnits(claimableAmount, decimals)\n }\n };\n\n return {\n data: summary,\n status: 200,\n success: true\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred'\n };\n }\n }\n\n public async getSmartRewarderContracts(): Promise<SteerResponse<readonly SmartRewarderContract[]>> {\n try {\n const response = await this.client.smartRewarderContracts();\n\n return {\n data: response.data?.smartRewarderContracts || [],\n status: response.status,\n success: true\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred'\n };\n }\n }\n\n /**\n * Claims rewards from the smart rewarder contract\n * @param params - Parameters required for claiming rewards\n * @returns Promise resolving to transaction hash if successful\n * \n * @remarks\n * This method handles the low-level interaction with the smart contract.\n * For a higher-level interface, consider using {@link claimCampaignRewards} instead.\n * \n * @example\n * ```typescript\n * // Get claim proofs\n * const claimProofs = await smartRewards.getClaimProofs(userAddress, chainId, campaignId);\n * \n * // Get smart rewarder contract\n * const rewarders = await smartRewards.getSmartRewarderContracts();\n * const rewarder = rewarders.data?.find(r => r.chainId === chainId);\n * \n * if (claimProofs.data && rewarder) {\n * // Prepare claim data\n * const claimData = smartRewards.prepareClaimData(claimProofs.data);\n * claimData.rewarderAddress = rewarder.address as Address;\n * \n * // Claim rewards\n * const tx = await smartRewards.claimReward(claimData);\n * }\n * ```\n * \n * @throws Will throw an error if no wallet account is found\n * @throws Will throw an error if contract simulation fails\n */\n public async claimReward(params: ClaimRewardParams): Promise<SteerResponse<Hash>> {\n try {\n const account = await this.walletClient.getAddresses();\n if (!account[0]) throw new Error('No account found');\n\n // Normalize addresses\n const normalizedParams = {\n ...params,\n users: params.users.map(user => user.toLowerCase() as Address),\n rewarderAddress: params.rewarderAddress.toLowerCase() as Address\n };\n\n const { request } = await this.publicClient.simulateContract({\n address: normalizedParams.rewarderAddress,\n abi: [{\n type: 'function',\n inputs: [\n { name: 'users', internalType: 'address[]', type: 'address[]' },\n { name: 'campaignIds', internalType: 'uint256[]', type: 'uint256[]' },\n { name: 'amounts', internalType: 'uint256[]', type: 'uint256[]' },\n { name: 'proofs', internalType: 'bytes32[][]', type: 'bytes32[][]' }\n ],\n name: 'claim',\n outputs: [],\n stateMutability: 'nonpayable'\n }],\n functionName: 'claim',\n args: [\n normalizedParams.users,\n normalizedParams.campaignIds,\n normalizedParams.amounts,\n normalizedParams.proofs\n ],\n account: account[0]\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred'\n };\n }\n }\n\n /**\n * Helper function to prepare claim data from claim proofs\n * @param proofs - The claim proofs response from getClaimProofs\n * @returns ClaimRewardParams object ready for use with claimReward\n * \n * @remarks\n * This helper function transforms the claim proofs into the format required by the smart contract.\n * Note that the returned object's rewarderAddress is empty and must be set before using with claimReward.\n * \n * @example\n * ```typescript\n * // Get claim proofs and rewarder contract\n * const proofs = await smartRewards.getClaimProofs(userAddress, chainId);\n * const rewarders = await smartRewards.getSmartRewarderContracts();\n * const rewarder = rewarders.data?.find(r => r.chainId === chainId);\n * \n * if (proofs.data && rewarder) {\n * // Prepare the claim data\n * const claimData = smartRewards.prepareClaimData(proofs.data);\n * \n * // Set the rewarder address (required)\n * claimData.rewarderAddress = rewarder.address as Address;\n * \n * // Now the data is ready for claiming\n * const tx = await smartRewards.claimReward(claimData);\n * }\n * ```\n */\n public prepareClaimData(proofs: ClaimProofsResponse): ClaimRewardParams {\n return {\n users: proofs.edges.map(edge => edge.node.user.toLowerCase() as Address),\n campaignIds: proofs.edges.map(edge => BigInt(edge.node.campaignId)),\n amounts: proofs.edges.map(edge => BigInt(edge.node.amount.split('.')[0])),\n proofs: proofs.edges.map(edge => edge.node.proof as readonly `0x${string}`[]),\n rewarderAddress: '' as Address\n };\n }\n\n /**\n * Convenience function to handle the entire claim process\n * @param userAddress The address of the user claiming rewards\n * @param chainId The chain ID where the campaign exists\n * @param campaignId Optional campaign ID to filter claims\n * @returns Transaction hash if successful, or error details if failed\n */\n public async claimCampaignRewards(\n userAddress: Address,\n chainId: number,\n campaignId?: number\n ): Promise<SteerResponse<Hash>> {\n try {\n const normalizedUser = userAddress.toLowerCase() as Address;\n \n // Get claim proofs\n const claimProofsResponse = await this.getClaimProofs(normalizedUser, chainId, campaignId);\n if (!claimProofsResponse.data || claimProofsResponse.data.edges.length === 0) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'No claim proofs found'\n };\n }\n\n // Filter claim proofs by campaignId if specified\n let filteredClaimProofs = claimProofsResponse.data;\n if (campaignId !== undefined) {\n filteredClaimProofs = {\n ...claimProofsResponse.data,\n edges: claimProofsResponse.data.edges.filter(edge => edge.node.campaignId === campaignId)\n };\n \n // If no matching campaign proofs found after filtering\n if (filteredClaimProofs.edges.length === 0) {\n return {\n data: null,\n status: 400,\n success: false,\n error: `No claim proofs found for campaign ID ${campaignId}`\n };\n }\n }\n\n // Get smart rewarder contract\n const rewarderResponse = await this.getSmartRewarderContracts();\n const rewarder = rewarderResponse.data?.find(r => r.chainId === chainId);\n if (!rewarder) {\n return {\n data: null,\n status: 400,\n success: false,\n error: `No smart rewarder contract found for chain ${chainId}`\n };\n }\n\n // Prepare claim data\n const claimData = this.prepareClaimData(filteredClaimProofs);\n claimData.rewarderAddress = rewarder.address as Address;\n\n // Execute claim\n return await this.claimReward(claimData);\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred'\n };\n }\n }\n\n /**\n * Prepares the claim rewards campaign object with all necessary data for contract interaction\n * @param userAddress The address of the user claiming rewards\n * @param chainId The chain ID where the campaign exists\n * @param campaignId Optional campaign ID to filter claims\n * @returns Promise resolving to an object containing all necessary data for claiming rewards\n * \n * @example\n * ```typescript\n * // Get the prepared claim data\n * const claimData = await smartRewards.prepareClaimRewardsCampaign(userAddress, chainId, campaignId);\n * \n * if (claimData.success) {\n * // Use the data with your own contract interaction methods\n * const { address, abi, functionName, args } = claimData.data;\n * // Execute the contract call using your preferred method\n * }\n * ```\n */\n public async prepareClaimRewardsCampaign(\n userAddress: Address,\n chainId: number,\n campaignId?: number\n ): Promise<SteerResponse<{\n address: Address;\n abi: {\n type: string;\n inputs: {\n name: string;\n internalType: string;\n type: string;\n }[];\n name: string;\n outputs: never[];\n stateMutability: string;\n }[];\n functionName: string;\n args: readonly [\n readonly Address[],\n readonly bigint[],\n readonly bigint[],\n readonly (readonly `0x${string}`[])[]\n ];\n }>> {\n try {\n const normalizedUser = userAddress.toLowerCase() as Address;\n \n // Get claim proofs\n const claimProofsResponse = await this.getClaimProofs(normalizedUser, chainId, campaignId);\n if (!claimProofsResponse.data || claimProofsResponse.data.edges.length === 0) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'No claim proofs found'\n };\n }\n\n // Filter claim proofs by campaignId if specified\n let filteredClaimProofs = claimProofsResponse.data;\n if (campaignId !== undefined) {\n filteredClaimProofs = {\n ...claimProofsResponse.data,\n edges: claimProofsResponse.data.edges.filter(edge => edge.node.campaignId === campaignId)\n };\n \n // If no matching campaign proofs found after filtering\n if (filteredClaimProofs.edges.length === 0) {\n return {\n data: null,\n status: 400,\n success: false,\n error: `No claim proofs found for campaign ID ${campaignId}`\n };\n }\n }\n\n // Get smart rewarder contract\n const rewarderResponse = await this.getSmartRewarderContracts();\n const rewarder = rewarderResponse.data?.find(r => r.chainId === chainId);\n if (!rewarder) {\n return {\n data: null,\n status: 400,\n success: false,\n error: `No smart rewarder contract found for chain ${chainId}`\n };\n }\n\n // Prepare claim data\n const claimData = this.prepareClaimData(filteredClaimProofs);\n\n // Prepare the complete contract interaction data\n return {\n data: {\n address: rewarder.address as Address,\n abi: [{\n type: 'function',\n inputs: [\n { name: 'users', internalType: 'address[]', type: 'address[]' },\n { name: 'campaignIds', internalType: 'uint256[]', type: 'uint256[]' },\n { name: 'amounts', internalType: 'uint256[]', type: 'uint256[]' },\n { name: 'proofs', internalType: 'bytes32[][]', type: 'bytes32[][]' }\n ],\n name: 'claim',\n outputs: [],\n stateMutability: 'nonpayable'\n }],\n functionName: 'claim',\n args: [\n claimData.users,\n claimData.campaignIds,\n claimData.amounts,\n claimData.proofs\n ] as const\n },\n status: 200,\n success: true\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred'\n };\n }\n }\n\n /**\n * Checks if a chain is supported by checking if it has a subgraph URL\n * @param chainId The chain ID to check\n * @returns boolean indicating if the chain is supported\n */\n public supportsChain(chainId: number): boolean {\n return getSubgraphUrlByChainId(chainId) !== undefined;\n }\n} "]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StakingClient.js","sourceRoot":"","sources":["../../../src/base/StakingClient.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Address, Hash, PublicClient, WalletClient } from 'viem';\nimport { SteerResponse } from '../types.js';\nimport { SubgraphClient } from './SubgraphClient.js';\nimport { VaultWithdrawClient } from './vault/withdraw/index.js';\nimport { StakingProtocol, isValidStakingProtocol, normalizeProtocol } from '../const/protocol.js';\nimport { Decimal } from 'decimal.js';\n\n// Interfaces for staking pool data from API\nexport interface StakingPool {\n allSymbols?: string\n rewardToken: Address\n rewardTokenDetail?: Reward\n rewardTokenA: Address\n rewardTokenADetail: Reward\n rewardTokenB?: Address\n rewardTokenBDetail?: Reward\n dailyEmissionRewardA: number\n dailyEmissionRewardB?: number\n chainId: number\n stakingPool: string\n stakingToken: string\n protocol: string\n staking: Staking\n reward: Reward\n isSteerVault: boolean\n beaconName?: string\n vaultTokens?: VaultTokens\n periodFinish: string\n isDualFactory?: boolean\n feeTier?: string\n rewardsDuration: string\n strategyId?:string\n isActive?:boolean\n postGeneratedTotalStaked?:number\n postGeneratedApr?: number\n stakedAmount?:bigint,\n locked?:boolean\n}\n\n\nexport interface VaultTokens {\n token0: Token0\n token1: Token1\n}\n\nexport interface Token0 {\n name: string\n address: Address\n symbol: string\n}\n\nexport interface Token1 {\n name: string\n address: Address\n symbol: string\n}\n\nexport interface Reward {\n symbol: string\n name: string\n address: Address,\n decimals: number\n}\n\nexport interface Staking {\n symbol: string\n name: string\n address: Address\n decimals: number\n}\n\nexport interface StakingPoolFilter {\n chainId?: number;\n protocol?: StakingProtocol;\n isLive?: boolean;\n includeExpired?: boolean;\n minDailyEmissionA?: number;\n minDailyEmissionB?: number;\n isDualRewards?: boolean;\n}\n\n// Interfaces for contract parameters\nexport interface StakeParams {\n stakingPool: Address;\n amount: bigint;\n}\n\nexport interface WithdrawParams {\n stakingPool: Address;\n amount: bigint;\n}\n\nexport interface GetRewardParams {\n stakingPool: Address;\n}\n\nexport interface TokenValueParams {\n stakingPool: StakingPool;\n amount: bigint;\n token0UsdPrice: number;\n token1UsdPrice: number;\n}\n\nexport interface TokenValueResponse {\n totalValueUsd: number;\n token0Value?: number;\n token1Value?: number;\n tokenValue?: number;\n}\n\n// Add type definition for raw pool data\ninterface RawStakingPool {\n allSymbols?: string\n rewardToken: Address\n rewardTokenDetail?: Reward\n rewardTokenA: Address\n rewardTokenADetail: Reward\n rewardTokenB?: Address\n rewardTokenBDetail?: Reward\n dailyEmissionRewardA: number\n dailyEmissionRewardB?: number\n chainId: number\n stakingPool: string\n stakingToken: string\n protocol: StakingProtocol\n staking: Staking\n reward: Reward\n isSteerVault: boolean\n beaconName?: string\n vaultTokens?: VaultTokens\n periodFinish: string\n isDualFactory?: boolean\n feeTier?: string\n rewardsDuration: string\n strategyId?:string\n isActive?:boolean\n postGeneratedTotalStaked?:number\n postGeneratedApr?: number\n stakedAmount?:bigint,\n locked?:boolean\n}\n\n// ABIs for staking contracts\nconst SINGLE_REWARD_ABI = [\n {\n \"inputs\": [],\n \"name\": \"lastTimeRewardApplicable\",\n \"outputs\": [{\"type\": \"uint256\"}],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [{\"type\": \"address\"}],\n \"name\": \"earned\",\n \"outputs\": [{\"type\": \"uint256\"}],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"totalSupply\",\n \"outputs\": [{\"type\": \"uint256\"}],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [{\"type\": \"address\"}],\n \"name\": \"balanceOf\",\n \"outputs\": [{\"type\": \"uint256\"}],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [{\"type\": \"uint256\"}],\n \"name\": \"stake\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [{\"type\": \"uint256\"}],\n \"name\": \"withdraw\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getReward\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"exit\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }\n] as const;\n\nconst DUAL_REWARD_ABI = [\n ...SINGLE_REWARD_ABI,\n {\n \"inputs\": [{\"type\": \"address\"}],\n \"name\": \"earnedA\",\n \"outputs\": [{\"type\": \"uint256\"}],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [{\"type\": \"address\"}],\n \"name\": \"earnedB\",\n \"outputs\": [{\"type\": \"uint256\"}],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }\n] as const;\n\nconst ERC20_ABI = [\n {\n \"inputs\": [],\n \"name\": \"decimals\",\n \"outputs\": [{\"type\": \"uint8\"}],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }\n] as const;\n\nexport class StakingClient extends SubgraphClient {\n protected readonly publicClient: PublicClient;\n protected readonly walletClient: WalletClient;\n private readonly stakingPoolsEndpoint = 'https://9i52h964s3.execute-api.us-east-1.amazonaws.com/dev/staking-pools';\n private readonly withdrawClient: VaultWithdrawClient;\n\n constructor(client: PublicClient & WalletClient) {\n super(client);\n this.publicClient = client;\n this.walletClient = client;\n this.withdrawClient = new VaultWithdrawClient(client, client);\n }\n\n /**\n * Fetches and filters staking pools based on provided criteria\n * @param filter Optional filter object to filter the pools\n */\n public async getStakingPools(\n filter?: StakingPoolFilter\n ): Promise<SteerResponse<StakingPool[]>> {\n try {\n const response = await fetch(this.stakingPoolsEndpoint);\n if (!response.ok) {\n throw new Error('Failed to fetch staking pools');\n }\n\n const rawPools: RawStakingPool[] = (await response.json()).pools;\n\n // Convert and validate protocols in the response\n let pools: StakingPool[] = rawPools\n .filter((pool) => isValidStakingProtocol(pool.protocol))\n .map((pool) => ({\n ...pool,\n protocol: normalizeProtocol(pool.protocol)\n }));\n\n // Apply filters if provided\n if (filter) {\n pools = this.filterPools(pools, filter);\n }\n\n return {\n data: pools,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Gets only currently active staking pools\n * @param chainId Optional chain ID to filter pools\n * @param protocol Optional protocol name to filter pools\n */\n public async getLiveStakingPools(chainId?: number, protocol?: StakingProtocol): Promise<SteerResponse<StakingPool[]>> {\n return this.getStakingPools({\n chainId,\n protocol,\n isLive: true,\n includeExpired: false\n });\n }\n\n /**\n * Gets all dual rewards staking pools\n * @param chainId Optional chain ID to filter pools\n * @param protocol Optional protocol name to filter pools\n * @param isLive Optional flag to only get live pools\n */\n public async getDualRewardsStakingPools(\n chainId?: number,\n protocol?: StakingProtocol,\n isLive?: boolean\n ): Promise<SteerResponse<StakingPool[]>> {\n return this.getStakingPools({\n chainId,\n protocol,\n isLive,\n isDualRewards: true\n });\n }\n\n /**\n * Gets high yield staking pools based on minimum daily emissions\n * @param minDailyEmissionA Minimum daily emission for reward A\n * @param minDailyEmissionB Optional minimum daily emission for reward B\n * @param chainId Optional chain ID to filter pools\n */\n public async getHighYieldStakingPools(\n minDailyEmissionA: number,\n minDailyEmissionB?: number,\n chainId?: number\n ): Promise<SteerResponse<StakingPool[]>> {\n return this.getStakingPools({\n chainId,\n minDailyEmissionA,\n minDailyEmissionB,\n isLive: true\n });\n }\n\n /**\n * Internal helper to filter pools based on criteria\n */\n private filterPools(pools: StakingPool[], filter: StakingPoolFilter): StakingPool[] {\n return pools.filter(pool => {\n // Chain ID filter\n if (filter.chainId !== undefined && pool.chainId !== filter.chainId) {\n return false;\n }\n\n // Protocol filter\n if (filter.protocol !== undefined && pool.protocol !== filter.protocol) {\n return false;\n }\n\n // Dual rewards filter\n if (filter.isDualRewards !== undefined && pool.isDualFactory !== filter.isDualRewards) {\n return false;\n }\n\n // Daily emission filters\n if (filter.minDailyEmissionA !== undefined && pool.dailyEmissionRewardA < filter.minDailyEmissionA) {\n return false;\n }\n if (filter.minDailyEmissionB !== undefined && pool.dailyEmissionRewardB !== undefined && pool.dailyEmissionRewardB < filter.minDailyEmissionB) {\n return false;\n }\n\n // Live/Expired filter\n if (filter.isLive !== undefined) {\n const now = Math.floor(Date.now() / 1000);\n const periodFinish = parseInt(pool.periodFinish);\n const isPoolLive = periodFinish > now;\n\n if (filter.isLive && !isPoolLive) {\n return false;\n }\n\n if (!filter.includeExpired && !isPoolLive) {\n return false;\n }\n }\n\n return true;\n });\n }\n\n /**\n * Stakes tokens in a staking pool\n * @param params The staking parameters\n */\n public async stake(params: StakeParams): Promise<SteerResponse<Hash>> {\n try {\n const account = await this.walletClient.getAddresses();\n if (!account[0]) throw new Error('No account found');\n\n const { request } = await this.publicClient.simulateContract({\n address: params.stakingPool,\n abi: SINGLE_REWARD_ABI,\n functionName: 'stake',\n args: [params.amount],\n account: account[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Withdraws tokens from a staking pool\n * @param params The withdrawal parameters\n */\n public async withdraw(params: WithdrawParams): Promise<SteerResponse<Hash>> {\n try {\n const account = await this.walletClient.getAddresses();\n if (!account[0]) throw new Error('No account found');\n\n const { request } = await this.publicClient.simulateContract({\n address: params.stakingPool,\n abi: SINGLE_REWARD_ABI,\n functionName: 'withdraw',\n args: [params.amount],\n account: account[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Claims rewards from a staking pool\n * @param params The reward claim parameters\n */\n public async getReward(params: GetRewardParams): Promise<SteerResponse<Hash>> {\n try {\n const account = await this.walletClient.getAddresses();\n if (!account[0]) throw new Error('No account found');\n\n const { request } = await this.publicClient.simulateContract({\n address: params.stakingPool,\n abi: SINGLE_REWARD_ABI,\n functionName: 'getReward',\n args: [],\n account: account[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Gets the earned rewards for an account in a staking pool\n * @param stakingPool The staking pool address\n * @param account The account to check rewards for\n */\n public async earned(stakingPool: Address, account: Address): Promise<SteerResponse<{ rewardA: bigint; rewardB?: bigint }>> {\n try {\n // First try to read as single reward\n try {\n const reward = await this.publicClient.readContract({\n address: stakingPool,\n abi: SINGLE_REWARD_ABI,\n functionName: 'earned',\n args: [account],\n });\n\n return {\n data: { rewardA: reward },\n status: 200,\n success: true,\n };\n } catch {\n // If single reward fails, try dual rewards\n const [rewardA, rewardB] = await Promise.all([\n this.publicClient.readContract({\n address: stakingPool,\n abi: DUAL_REWARD_ABI,\n functionName: 'earnedA',\n args: [account],\n }),\n this.publicClient.readContract({\n address: stakingPool,\n abi: DUAL_REWARD_ABI,\n functionName: 'earnedB',\n args: [account],\n }),\n ]);\n\n return {\n data: { rewardA, rewardB },\n status: 200,\n success: true,\n };\n }\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Gets the total supply of staked tokens in a pool\n * @param stakingPool The staking pool address\n */\n public async totalSupply(stakingPool: Address): Promise<SteerResponse<bigint>> {\n try {\n const totalSupply = await this.publicClient.readContract({\n address: stakingPool,\n abi: SINGLE_REWARD_ABI,\n functionName: 'totalSupply',\n });\n\n return {\n data: totalSupply,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Gets the staked balance of an account in a pool\n * @param stakingPool The staking pool address\n * @param account The account to check balance for\n */\n public async balanceOf(stakingPool: Address, account: Address): Promise<SteerResponse<bigint>> {\n try {\n const balance = await this.publicClient.readContract({\n address: stakingPool,\n abi: SINGLE_REWARD_ABI,\n functionName: 'balanceOf',\n args: [account],\n });\n\n return {\n data: balance,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Calculates the APR for a staking pool\n * @param pool The staking pool data\n * @param rewardTokenPriceUSD The price of the reward token in USD\n * @param totalStakedUSD The total value staked in USD\n */\n public calculateAPR(\n pool: StakingPool,\n rewardTokenPriceUSD: number,\n totalStakedUSD: number\n ): number {\n if (totalStakedUSD === 0) {\n return 0;\n }\n\n const dailyRewardUSD = pool.dailyEmissionRewardA * rewardTokenPriceUSD;\n let apr = (dailyRewardUSD * 365 * 100) / totalStakedUSD;\n\n if (pool.isDualFactory && pool.dailyEmissionRewardB) {\n const dailyRewardBUSD = pool.dailyEmissionRewardB * rewardTokenPriceUSD;\n apr += (dailyRewardBUSD * 365 * 100) / totalStakedUSD;\n }\n\n return apr;\n }\n\n /**\n * Calculates the USD value of tokens in a staking pool\n * Handles both regular staking pools and Steer vaults\n * @param params Parameters for token value calculation\n */\n public async getSteerLpTokenValue(params: TokenValueParams): Promise<SteerResponse<TokenValueResponse>> {\n try {\n // First, get the staking pool details\n const pool = params.stakingPool;\n \n const chainId = await this.publicClient.getChainId();\n if (chainId !== pool.chainId) {\n throw new Error(`Chain ID mismatch| expected ${pool.chainId} but got ${chainId}`);\n }\n\n // Handle Steer vault staking pools\n if (pool.isSteerVault && pool.staking) {\n if (!pool.vaultTokens) {\n throw new Error('Vault tokens information not found');\n }\n\n // Get underlying token amounts from LP token\n const tokensResponse = await this.withdrawClient.getTokensFromLp(\n pool.staking.address,\n params.amount\n );\n\n if (!tokensResponse.success || !tokensResponse.data) {\n throw new Error('Failed to get token amounts from LP');\n }\n\n // Get decimals for both tokens\n const [token0Decimals, token1Decimals] = await Promise.all([\n this.publicClient.readContract({\n address: pool.vaultTokens.token0.address,\n abi: ERC20_ABI,\n functionName: 'decimals'\n }),\n this.publicClient.readContract({\n address: pool.vaultTokens.token1.address,\n abi: ERC20_ABI,\n functionName: 'decimals'\n })\n ]);\n\n // Use Decimal.js for precise calculations\n const token0Amount = new Decimal(tokensResponse.data.token0Val.toString())\n .div(new Decimal(10).pow(token0Decimals))\n .mul(params.token0UsdPrice);\n\n const token1Amount = new Decimal(tokensResponse.data.token1Val.toString())\n .div(new Decimal(10).pow(token1Decimals))\n .mul(params.token1UsdPrice);\n\n const totalValueUsd = token0Amount.plus(token1Amount).toNumber();\n const token0ValueUsd = token0Amount.toNumber();\n const token1ValueUsd = token1Amount.toNumber();\n\n return {\n data: {\n totalValueUsd,\n token0Value: token0ValueUsd,\n token1Value: token1ValueUsd\n },\n status: 200,\n success: true\n };\n }\n\n // Handle regular staking pools (non-Steer vault)\n const stakingDecimals = await this.publicClient.readContract({\n address: pool.staking.address,\n abi: ERC20_ABI,\n functionName: 'decimals'\n });\n\n const tokenValueUsd = new Decimal(params.amount.toString())\n .div(new Decimal(10).pow(stakingDecimals))\n .mul(params.token0UsdPrice)\n .toNumber();\n\n return {\n data: {\n totalValueUsd: tokenValueUsd,\n tokenValue: tokenValueUsd\n },\n status: 200,\n success: true\n };\n\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred'\n };\n }\n }\n\n /**\n * Gets the total staking amount in USD for a pool\n * @param stakingPool The staking pool\n * @param token0UsdPrice Price of token0 in USD\n * @param token1UsdPrice Price of token1 in USD (required for Steer vaults)\n */\n public async getTotalStakingAmountInUsd(\n stakingPool: StakingPool,\n token0UsdPrice: number,\n token1UsdPrice?: number\n ): Promise<SteerResponse<number>> {\n try {\n // Get total supply\n const totalSupplyResponse = await this.totalSupply(stakingPool.stakingPool as `0x${string}`);\n if (!totalSupplyResponse.success || !totalSupplyResponse.data) {\n throw new Error('Failed to get total supply');\n }\n\n // Get value using getSteerLpTokenValue\n const valueResponse = await this.getSteerLpTokenValue({\n stakingPool,\n amount: totalSupplyResponse.data,\n token0UsdPrice,\n token1UsdPrice: token1UsdPrice || token0UsdPrice\n });\n\n if (!valueResponse.success || !valueResponse.data) {\n throw new Error('Failed to calculate token value');\n }\n\n return {\n data: valueResponse.data.totalValueUsd,\n status: 200,\n success: true\n };\n\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred'\n };\n }\n }\n\n /**\n * Prepares the transaction data for staking tokens without executing it\n * @param params The staking parameters\n */\n public async prepareStakeTx(params: StakeParams): Promise<SteerResponse<{\n address: Address;\n abi: {\n type: string;\n inputs: {\n name: string;\n internalType: string;\n type: string;\n }[];\n name: string;\n outputs: never[];\n stateMutability: string;\n }[];\n functionName: string;\n args: readonly [bigint];\n }>> {\n try {\n\n return {\n data: {\n address: params.stakingPool,\n abi: [{\n type: 'function',\n inputs: [\n { name: 'amount', internalType: 'uint256', type: 'uint256' }\n ],\n name: 'stake',\n outputs: [],\n stateMutability: 'nonpayable'\n }],\n functionName: 'stake',\n args: [params.amount] as const\n },\n status: 200,\n success: true\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred'\n };\n }\n }\n\n /**\n * Prepares the transaction data for withdrawing tokens without executing it\n * @param params The withdrawal parameters\n */\n public async prepareWithdrawTx(params: WithdrawParams): Promise<SteerResponse<{\n address: Address;\n abi: {\n type: string;\n inputs: {\n name: string;\n internalType: string;\n type: string;\n }[];\n name: string;\n outputs: never[];\n stateMutability: string;\n }[];\n functionName: string;\n args: readonly [bigint];\n }>> {\n try {\n\n return {\n data: {\n address: params.stakingPool,\n abi: [{\n type: 'function',\n inputs: [\n { name: 'amount', internalType: 'uint256', type: 'uint256' }\n ],\n name: 'withdraw',\n outputs: [],\n stateMutability: 'nonpayable'\n }],\n functionName: 'withdraw',\n args: [params.amount] as const\n },\n status: 200,\n success: true\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred'\n };\n }\n }\n\n /**\n * Prepares the transaction data for claiming rewards without executing it\n * @param params The reward claim parameters\n */\n public async prepareGetRewardTx(params: GetRewardParams): Promise<SteerResponse<{\n address: Address;\n abi: {\n type: string;\n inputs: {\n name: string;\n internalType: string;\n type: string;\n }[];\n name: string;\n outputs: never[];\n stateMutability: string;\n }[];\n functionName: string;\n args: readonly [];\n }>> {\n try {\n\n return {\n data: {\n address: params.stakingPool,\n abi: [{\n type: 'function',\n inputs: [],\n name: 'getReward',\n outputs: [],\n stateMutability: 'nonpayable'\n }],\n functionName: 'getReward',\n args: [] as const\n },\n status: 200,\n success: true\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred'\n };\n }\n }\n} "]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubgraphClient.js","sourceRoot":"","sources":["../../../src/base/SubgraphClient.ts"],"names":[],"mappings":";;;AAEA,gDAA4D;AAE5D,MAAsB,cAAc;IAGlC,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACO,KAAK,CAAC,oBAAoB,CAClC,KAAa,EACb,SAAmC;QAEnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QAE5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE;gBACxC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,KAAK;oBACL,SAAS;iBACV,CAAC;aACH,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAErC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5C,CAAC;YAED,OAAO;gBACL,IAAI,EAAE,MAAM,CAAC,IAAS;gBACtB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,IAAI,EAAE,IAAS;gBACf,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB;aACzE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;OAIG;IACO,cAAc,CAAC,OAAe;QAEtC,MAAM,WAAW,GAAG,IAAA,kCAAuB,EAAC,OAAO,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACI,aAAa,CAAC,OAAe;QAClC,OAAO,IAAA,kCAAuB,EAAC,OAAO,CAAC,KAAK,SAAS,CAAC;IACxD,CAAC;CACF;AAxFD,wCAwFC","sourcesContent":["import type { Client } from 'viem';\nimport { SteerResponse } from '../types.js';\nimport { getSubgraphUrlByChainId } from '../const/index.js';\n\nexport abstract class SubgraphClient {\n protected readonly client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * Executes a GraphQL query against the subgraph\n * @param query The GraphQL query string\n * @param variables Optional variables for the query\n * @returns Promise with the query result\n */\n protected async executeSubgraphQuery<T>(\n query: string,\n variables?: Record<string, unknown>\n ): Promise<SteerResponse<T>> {\n const chainId = await this.client.chain?.id;\n \n if (!chainId) {\n throw new Error('No active chain found');\n }\n\n const subgraphUrl = this.getSubgraphUrl(chainId);\n if (!subgraphUrl) {\n throw new Error(`No subgraph URL found for chain ID ${chainId}`);\n }\n\n try {\n const response = await fetch(subgraphUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n query,\n variables,\n }),\n });\n\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n\n const result = await response.json();\n\n if (result.errors) {\n throw new Error(result.errors[0].message);\n }\n\n return {\n data: result.data as T,\n status: response.status,\n success: true,\n };\n } catch (error) {\n return {\n data: null as T,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Gets the subgraph URL for a given chain ID\n * @param chainId The chain ID to get the subgraph URL for\n * @returns The subgraph URL or undefined if not found\n */\n protected getSubgraphUrl(chainId: number): string | undefined {\n\n const subgraphUrl = getSubgraphUrlByChainId(chainId);\n if (!subgraphUrl) {\n throw new Error(`No subgraph URL found for chain ID ${chainId}`);\n }\n\n return subgraphUrl;\n }\n\n /**\n * Checks if a chain is supported by checking if it has a subgraph URL\n * @param chainId The chain ID to check\n * @returns boolean indicating if the chain is supported\n */\n public supportsChain(chainId: number): boolean {\n return getSubgraphUrlByChainId(chainId) !== undefined;\n }\n} "]}
|