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