@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
package/dist/esm/const/quoter.js
CHANGED
|
@@ -1,9 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.QuoterV2Factory = void 0;
|
|
4
|
+
exports.isUniswapQuoteParams = isUniswapQuoteParams;
|
|
5
|
+
exports.isAlgebraQuoteParams = isAlgebraQuoteParams;
|
|
6
|
+
exports.isThickQuoteParams = isThickQuoteParams;
|
|
7
|
+
exports.isAlgebraIntegral21QuoteParams = isAlgebraIntegral21QuoteParams;
|
|
8
|
+
exports.isShadowQuoteParams = isShadowQuoteParams;
|
|
9
|
+
exports.validateQuoteParams = validateQuoteParams;
|
|
10
|
+
exports.getExpectedParamType = getExpectedParamType;
|
|
11
|
+
const viem_1 = require("viem");
|
|
12
|
+
const chain_js_1 = require("./chain.js");
|
|
13
|
+
const beacon_js_1 = require("./amm/utils/beacon.js");
|
|
14
|
+
const protocol_js_1 = require("./protocol.js");
|
|
15
|
+
const quoter_js_1 = require("./abis/quoter.js");
|
|
16
|
+
const index_js_1 = require("./amm/index.js");
|
|
7
17
|
/**
|
|
8
18
|
* Factory class for creating QuoterV2 contract instances with the appropriate ABI
|
|
9
19
|
* based on the protocol type detected from beacon names.
|
|
@@ -75,7 +85,7 @@ import { getProtocolContractAddresses } from './amm/index.js';
|
|
|
75
85
|
* const katanaResult = await katanaQuoter.read.quoteExactInputSingle([katanaParams]);
|
|
76
86
|
* ```
|
|
77
87
|
*/
|
|
78
|
-
|
|
88
|
+
class QuoterV2Factory {
|
|
79
89
|
constructor(networkConfig) {
|
|
80
90
|
this.networkConfig = networkConfig;
|
|
81
91
|
}
|
|
@@ -127,7 +137,7 @@ export class QuoterV2Factory {
|
|
|
127
137
|
};
|
|
128
138
|
}
|
|
129
139
|
// Check for Shadow protocol vaults
|
|
130
|
-
if (isShadowProtocol(protocol)) {
|
|
140
|
+
if ((0, protocol_js_1.isShadowProtocol)(protocol)) {
|
|
131
141
|
const p = params;
|
|
132
142
|
return {
|
|
133
143
|
tokenIn: p.tokenIn,
|
|
@@ -138,7 +148,7 @@ export class QuoterV2Factory {
|
|
|
138
148
|
};
|
|
139
149
|
}
|
|
140
150
|
// Check for Algebra Integral vaults (older version)
|
|
141
|
-
if (isAlgebraIntegralProtocol(protocol)) {
|
|
151
|
+
if ((0, protocol_js_1.isAlgebraIntegralProtocol)(protocol)) {
|
|
142
152
|
const p = params;
|
|
143
153
|
return {
|
|
144
154
|
tokenIn: p.tokenIn,
|
|
@@ -148,7 +158,7 @@ export class QuoterV2Factory {
|
|
|
148
158
|
};
|
|
149
159
|
}
|
|
150
160
|
// Check for Algebra-based protocols (QuickSwap, etc.)
|
|
151
|
-
if (protocol && isAlgebraProtocol(protocol)) {
|
|
161
|
+
if (protocol && (0, protocol_js_1.isAlgebraProtocol)(protocol)) {
|
|
152
162
|
const p = params;
|
|
153
163
|
return {
|
|
154
164
|
tokenIn: p.tokenIn,
|
|
@@ -158,7 +168,7 @@ export class QuoterV2Factory {
|
|
|
158
168
|
};
|
|
159
169
|
}
|
|
160
170
|
// Check for Thick V2 protocols
|
|
161
|
-
if (isThickV2Protocol(protocol)) {
|
|
171
|
+
if ((0, protocol_js_1.isThickV2Protocol)(protocol)) {
|
|
162
172
|
const p = params;
|
|
163
173
|
return {
|
|
164
174
|
tokenIn: p.tokenIn,
|
|
@@ -192,7 +202,7 @@ export class QuoterV2Factory {
|
|
|
192
202
|
throw new Error(`QuoterV2 address not found for protocol: ${protocol}`);
|
|
193
203
|
}
|
|
194
204
|
const abi = this.getQuoterAbi(protocol);
|
|
195
|
-
return getContract({
|
|
205
|
+
return (0, viem_1.getContract)({
|
|
196
206
|
address: quoterV2Address,
|
|
197
207
|
abi,
|
|
198
208
|
client
|
|
@@ -242,33 +252,33 @@ export class QuoterV2Factory {
|
|
|
242
252
|
}
|
|
243
253
|
// Check for Algebra Integral v2.1 vaults (newer version)
|
|
244
254
|
if (this.isAlgebraIntegral21Vault(protocol)) {
|
|
245
|
-
return QuoterV2AlgebgraIntegral21;
|
|
255
|
+
return quoter_js_1.QuoterV2AlgebgraIntegral21;
|
|
246
256
|
}
|
|
247
257
|
// Check for Shadow protocol vaults
|
|
248
|
-
if (isShadowProtocol(protocol)) {
|
|
249
|
-
return QuoterV2Shadow;
|
|
258
|
+
if ((0, protocol_js_1.isShadowProtocol)(protocol)) {
|
|
259
|
+
return quoter_js_1.QuoterV2Shadow;
|
|
250
260
|
}
|
|
251
261
|
// Check for Algebra Integral vaults (older version)
|
|
252
|
-
if (isAlgebraIntegralProtocol(protocol)) {
|
|
253
|
-
return QuoterV2AlgebgraIntegral;
|
|
262
|
+
if ((0, protocol_js_1.isAlgebraIntegralProtocol)(protocol)) {
|
|
263
|
+
return quoter_js_1.QuoterV2AlgebgraIntegral;
|
|
254
264
|
}
|
|
255
265
|
// Check for Lynex protocol (special case)
|
|
256
|
-
if (protocol === Protocol.Lynex) {
|
|
266
|
+
if (protocol === chain_js_1.Protocol.Lynex) {
|
|
257
267
|
// Note: Lynex currently uses the same ABI as QuickSwap in this implementation
|
|
258
268
|
// If Lynex has a different ABI, add it to the ABIs in quoter.ts as QuoterV2Lynex
|
|
259
269
|
// and import it at the top of this file
|
|
260
|
-
return QuickSwapQuoterV2;
|
|
270
|
+
return quoter_js_1.QuickSwapQuoterV2;
|
|
261
271
|
}
|
|
262
272
|
// Check for Algebra-based protocols
|
|
263
|
-
if (protocol && isAlgebraProtocol(protocol)) {
|
|
264
|
-
return QuickSwapQuoterV2;
|
|
273
|
+
if (protocol && (0, protocol_js_1.isAlgebraProtocol)(protocol)) {
|
|
274
|
+
return quoter_js_1.QuickSwapQuoterV2;
|
|
265
275
|
}
|
|
266
276
|
// Check for Thick V2 protocols
|
|
267
|
-
if (isThickV2Protocol(protocol)) {
|
|
268
|
-
return QuoterV2Thick;
|
|
277
|
+
if ((0, protocol_js_1.isThickV2Protocol)(protocol)) {
|
|
278
|
+
return quoter_js_1.QuoterV2Thick;
|
|
269
279
|
}
|
|
270
280
|
// Default to standard Uniswap V3 QuoterV2 ABI
|
|
271
|
-
return UniswapV3QuoterABI;
|
|
281
|
+
return quoter_js_1.UniswapV3QuoterABI;
|
|
272
282
|
}
|
|
273
283
|
/**
|
|
274
284
|
* Gets the QuoterV2 address for the given protocol from the network configuration.
|
|
@@ -280,7 +290,7 @@ export class QuoterV2Factory {
|
|
|
280
290
|
if (!protocol) {
|
|
281
291
|
return undefined;
|
|
282
292
|
}
|
|
283
|
-
const contractAddresses = getProtocolContractAddresses(protocol, this.networkConfig.name, 'QuoterV2');
|
|
293
|
+
const contractAddresses = (0, index_js_1.getProtocolContractAddresses)(protocol, this.networkConfig.name, 'QuoterV2');
|
|
284
294
|
if (!protocol || !contractAddresses) {
|
|
285
295
|
return undefined;
|
|
286
296
|
}
|
|
@@ -293,9 +303,10 @@ export class QuoterV2Factory {
|
|
|
293
303
|
* @returns True if it's an Algebra Integral v2.1 vault
|
|
294
304
|
*/
|
|
295
305
|
isAlgebraIntegral21Vault(protocol) {
|
|
296
|
-
return protocol === Protocol.KatanaIntegral;
|
|
306
|
+
return protocol === chain_js_1.Protocol.KatanaIntegral;
|
|
297
307
|
}
|
|
298
308
|
}
|
|
309
|
+
exports.QuoterV2Factory = QuoterV2Factory;
|
|
299
310
|
/**
|
|
300
311
|
* Helper function to get QuoterV2 address for a protocol from network config.
|
|
301
312
|
*
|
|
@@ -314,31 +325,31 @@ export class QuoterV2Factory {
|
|
|
314
325
|
/**
|
|
315
326
|
* Type guard to check if parameters are for Uniswap V3 style quoter
|
|
316
327
|
*/
|
|
317
|
-
|
|
328
|
+
function isUniswapQuoteParams(params) {
|
|
318
329
|
return 'fee' in params;
|
|
319
330
|
}
|
|
320
331
|
/**
|
|
321
332
|
* Type guard to check if parameters are for Algebra style quoter
|
|
322
333
|
*/
|
|
323
|
-
|
|
334
|
+
function isAlgebraQuoteParams(params) {
|
|
324
335
|
return 'limitSqrtPrice' in params;
|
|
325
336
|
}
|
|
326
337
|
/**
|
|
327
338
|
* Type guard to check if parameters are for Thick V2 style quoter
|
|
328
339
|
*/
|
|
329
|
-
|
|
340
|
+
function isThickQuoteParams(params) {
|
|
330
341
|
return 'tickSpacing' in params && 'sqrtPriceLimitX96' in params;
|
|
331
342
|
}
|
|
332
343
|
/**
|
|
333
344
|
* Type guard to check if parameters are for Algebra Integral v2.1 style quoter
|
|
334
345
|
*/
|
|
335
|
-
|
|
346
|
+
function isAlgebraIntegral21QuoteParams(params) {
|
|
336
347
|
return 'deployer' in params;
|
|
337
348
|
}
|
|
338
349
|
/**
|
|
339
350
|
* Type guard to check if parameters are for Shadow style quoter
|
|
340
351
|
*/
|
|
341
|
-
|
|
352
|
+
function isShadowQuoteParams(params) {
|
|
342
353
|
return 'tickSpacing' in params && 'sqrtPriceLimitX96' in params;
|
|
343
354
|
}
|
|
344
355
|
/**
|
|
@@ -348,7 +359,7 @@ export function isShadowQuoteParams(params) {
|
|
|
348
359
|
* @param params - The parameters to validate
|
|
349
360
|
* @throws Error if parameters don't match the expected protocol type
|
|
350
361
|
*/
|
|
351
|
-
|
|
362
|
+
function validateQuoteParams(protocol, params) {
|
|
352
363
|
if (!protocol) {
|
|
353
364
|
throw Error('Protocol not found');
|
|
354
365
|
}
|
|
@@ -357,28 +368,28 @@ export function validateQuoteParams(protocol, params) {
|
|
|
357
368
|
throw new Error('Missing required parameters: tokenIn, tokenOut, and amountIn are required');
|
|
358
369
|
}
|
|
359
370
|
// Check for Algebra Integral v2.1 vaults (newer version with deployer)
|
|
360
|
-
if (protocol === Protocol.KatanaIntegral) {
|
|
371
|
+
if (protocol === chain_js_1.Protocol.KatanaIntegral) {
|
|
361
372
|
if (!isAlgebraIntegral21QuoteParams(params)) {
|
|
362
373
|
throw new Error('AlgebraIntegral21QuoteParams required: must include deployer field');
|
|
363
374
|
}
|
|
364
375
|
return;
|
|
365
376
|
}
|
|
366
377
|
// Check for Shadow protocol vaults
|
|
367
|
-
if (protocol && isShadowProtocol(protocol)) {
|
|
378
|
+
if (protocol && (0, protocol_js_1.isShadowProtocol)(protocol)) {
|
|
368
379
|
if (!isShadowQuoteParams(params) && !isThickQuoteParams(params)) {
|
|
369
380
|
throw new Error('ShadowQuoteParams required: must include tickSpacing field');
|
|
370
381
|
}
|
|
371
382
|
return;
|
|
372
383
|
}
|
|
373
384
|
// Check for Thick V2 protocols
|
|
374
|
-
if (protocol && isThickV2Protocol(protocol)) {
|
|
385
|
+
if (protocol && (0, protocol_js_1.isThickV2Protocol)(protocol)) {
|
|
375
386
|
if (!isThickQuoteParams(params)) {
|
|
376
387
|
throw new Error('ThickQuoteParams required: must include tickSpacing field');
|
|
377
388
|
}
|
|
378
389
|
return;
|
|
379
390
|
}
|
|
380
391
|
// Check for Algebra-based protocols
|
|
381
|
-
if (protocol && isAlgebraProtocol(protocol)) {
|
|
392
|
+
if (protocol && (0, protocol_js_1.isAlgebraProtocol)(protocol)) {
|
|
382
393
|
if (!isAlgebraQuoteParams(params)) {
|
|
383
394
|
throw new Error('AlgebraQuoteParams required: limitSqrtPrice field expected');
|
|
384
395
|
}
|
|
@@ -395,18 +406,18 @@ export function validateQuoteParams(protocol, params) {
|
|
|
395
406
|
* @param beaconName - The beacon identifier
|
|
396
407
|
* @returns String describing the expected parameter type
|
|
397
408
|
*/
|
|
398
|
-
|
|
399
|
-
const protocol = getProtocolTypeByBeacon(beaconName);
|
|
400
|
-
if (beaconName.toLowerCase().includes('katanaintegral') || protocol === Protocol.KatanaIntegral) {
|
|
409
|
+
function getExpectedParamType(beaconName) {
|
|
410
|
+
const protocol = (0, beacon_js_1.getProtocolTypeByBeacon)(beaconName);
|
|
411
|
+
if (beaconName.toLowerCase().includes('katanaintegral') || protocol === chain_js_1.Protocol.KatanaIntegral) {
|
|
401
412
|
return 'AlgebraIntegral21QuoteParams (requires: tokenIn, tokenOut, amountIn, deployer, limitSqrtPrice?)';
|
|
402
413
|
}
|
|
403
|
-
if (protocol && isShadowProtocol(protocol)) {
|
|
414
|
+
if (protocol && (0, protocol_js_1.isShadowProtocol)(protocol)) {
|
|
404
415
|
return 'ShadowQuoteParams (requires: tokenIn, tokenOut, amountIn, tickSpacing, sqrtPriceLimitX96?)';
|
|
405
416
|
}
|
|
406
|
-
if (protocol && isThickV2Protocol(protocol)) {
|
|
417
|
+
if (protocol && (0, protocol_js_1.isThickV2Protocol)(protocol)) {
|
|
407
418
|
return 'ThickQuoteParams (requires: tokenIn, tokenOut, amountIn, tickSpacing, sqrtPriceLimitX96?)';
|
|
408
419
|
}
|
|
409
|
-
if (protocol && isAlgebraProtocol(protocol)) {
|
|
420
|
+
if (protocol && (0, protocol_js_1.isAlgebraProtocol)(protocol)) {
|
|
410
421
|
return 'AlgebraQuoteParams (requires: tokenIn, tokenOut, amountIn, limitSqrtPrice?)';
|
|
411
422
|
}
|
|
412
423
|
return 'UniswapQuoteParams (requires: tokenIn, tokenOut, amountIn, fee, sqrtPriceLimitX96?)';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quoter.js","sourceRoot":"","sources":["../../../src/const/quoter.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Address, PublicClient } from 'viem';\nimport { getContract } from 'viem';\nimport { Protocol } from \"./chain.js\";\nimport { getProtocolTypeByBeacon } from \"./amm/utils/beacon.js\";\nimport { isAlgebraProtocol, isAlgebraIntegralProtocol, isThickV2Protocol, isShadowProtocol } from \"./protocol.js\";\nimport { \n UniswapV3QuoterABI, \n QuickSwapQuoterV2, \n QuoterV2Thick, \n QuoterV2AlgebgraIntegral, \n QuoterV2AlgebgraIntegral21, \n QuoterV2Shadow \n} from \"./abis/quoter.js\";\nimport { NetworkConfig } from './network.js';\nimport { getProtocolContractAddresses } from './amm/index.js';\n\n/**\n * Base interface for quote parameters\n */\nexport interface BaseQuoteParams {\n tokenIn: Address;\n tokenOut: Address;\n amountIn: bigint;\n}\n\n/**\n * Quote parameters for Uniswap V3 style quoters (fee-based)\n */\nexport interface UniswapQuoteParams extends BaseQuoteParams {\n fee: number; // uint24\n sqrtPriceLimitX96?: bigint; // uint160\n}\n\n/**\n * Quote parameters for Algebra style quoters (limit price)\n */\nexport interface AlgebraQuoteParams extends BaseQuoteParams {\n limitSqrtPrice?: bigint; // uint160\n}\n\n/**\n * Quote parameters for Thick V2 quoters (tick spacing)\n */\nexport interface ThickQuoteParams extends BaseQuoteParams {\n tickSpacing: number; // int24\n sqrtPriceLimitX96?: bigint; // uint160\n}\n\n/**\n * Quote parameters for Algebra Integral v2.1 quoters (with deployer)\n */\nexport interface AlgebraIntegral21QuoteParams extends BaseQuoteParams {\n deployer: Address;\n limitSqrtPrice?: bigint; // uint160\n}\n\n/**\n * Quote parameters for Shadow quoters (tick spacing)\n */\nexport interface ShadowQuoteParams extends BaseQuoteParams {\n tickSpacing: number; // int24\n sqrtPriceLimitX96?: bigint; // uint160\n}\n\n/**\n * Union type for all possible quote parameters\n */\nexport type QuoteParams = \n | UniswapQuoteParams \n | AlgebraQuoteParams \n | ThickQuoteParams \n | AlgebraIntegral21QuoteParams \n | ShadowQuoteParams;\n\n/**\n * Union type for all possible QuoterV2 ABIs\n */\nexport type QuoterV2ABI = \n | typeof UniswapV3QuoterABI\n | typeof QuickSwapQuoterV2\n | typeof QuoterV2Thick\n | typeof QuoterV2AlgebgraIntegral\n | typeof QuoterV2AlgebgraIntegral21\n | typeof QuoterV2Shadow;\n\n/**\n * Union type for all possible quoter function arguments\n */\nexport type QuoterFunctionArgs = \n | {\n tokenIn: Address;\n tokenOut: Address;\n amountIn: bigint;\n fee: number;\n sqrtPriceLimitX96: bigint;\n }\n | {\n tokenIn: Address;\n tokenOut: Address;\n amountIn: bigint;\n limitSqrtPrice: bigint;\n }\n | {\n tokenIn: Address;\n tokenOut: Address;\n amountIn: bigint;\n tickSpacing: number;\n sqrtPriceLimitX96: bigint;\n }\n | {\n tokenIn: Address;\n tokenOut: Address;\n deployer: Address;\n amountIn: bigint;\n limitSqrtPrice: bigint;\n };\n/**\n * Factory class for creating QuoterV2 contract instances with the appropriate ABI\n * based on the protocol type detected from beacon names.\n * \n * @example\n * ```typescript\n * import { createPublicClient, http, parseEther } from 'viem';\n * import { polygon } from 'viem/chains';\n * import { QuoterV2Factory } from './quoter.js';\n * \n * // Create a viem client\n * const client = createPublicClient({\n * chain: polygon,\n * transport: http()\n * });\n * \n * // Configure network with quoter addresses\n * const networkConfig = {\n * quoterV2: {\n * 'QuickSwap': '0x...',\n * 'Uniswap': '0x...',\n * 'ThickV2': '0x...',\n * 'Shadow': '0x...',\n * 'KatanaIntegral': '0x...'\n * }\n * };\n * \n * const factory = new QuoterV2Factory(networkConfig);\n * \n * // Example 1: Uniswap V3 style (fee-based)\n * const { quoter: uniQuoter, params: uniParams } = factory.createQuoterWithParams('uniswap', client, {\n * tokenIn: '0xA0b86a33E6f73c7C6789b65f71C1ab8EbAbD3A01',\n * tokenOut: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',\n * amountIn: parseEther('1'),\n * fee: 3000,\n * sqrtPriceLimitX96: 0n\n * });\n * \n * // Example 2: QuickSwap (Algebra style)\n * const { quoter: quickQuoter, params: quickParams } = factory.createQuoterWithParams('quickswap', client, {\n * tokenIn: '0xA0b86a33E6f73c7C6789b65f71C1ab8EbAbD3A01',\n * tokenOut: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',\n * amountIn: parseEther('1'),\n * limitSqrtPrice: 0n\n * });\n * \n * // Example 3: Thick V2 (tick spacing)\n * const { quoter: thickQuoter, params: thickParams } = factory.createQuoterWithParams('thickv2', client, {\n * tokenIn: '0xA0b86a33E6f73c7C6789b65f71C1ab8EbAbD3A01',\n * tokenOut: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',\n * amountIn: parseEther('1'),\n * tickSpacing: 60,\n * sqrtPriceLimitX96: 0n\n * });\n * \n * // Example 4: Katana Integral (with deployer)\n * const { quoter: katanaQuoter, params: katanaParams } = factory.createQuoterWithParams('katanaintegral', client, {\n * tokenIn: '0xA0b86a33E6f73c7C6789b65f71C1ab8EbAbD3A01',\n * tokenOut: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',\n * amountIn: parseEther('1'),\n * deployer: '0x...',\n * limitSqrtPrice: 0n\n * });\n * \n * // Use the quoter contracts\n * const uniResult = await uniQuoter.read.quoteExactInputSingle([uniParams]);\n * const quickResult = await quickQuoter.read.quoteExactInputSingle([quickParams]);\n * const thickResult = await thickQuoter.read.quoteExactInputSingle([thickParams]);\n * const katanaResult = await katanaQuoter.read.quoteExactInputSingle([katanaParams]);\n * ```\n */\nexport class QuoterV2Factory {\n private networkConfig: NetworkConfig;\n\n constructor(networkConfig: NetworkConfig) {\n this.networkConfig = networkConfig;\n }\n\n /**\n * Creates quote parameters for the quoteExactInputSingle function based on the protocol type.\n * \n * @param beaconName - The beacon identifier to determine the protocol type\n * @param params - The input parameters for the quote\n * @returns Formatted parameters object for the specific protocol's quoteExactInputSingle function\n * @throws Error if protocol type is not supported\n * \n * @example\n * ```typescript\n * const factory = new QuoterV2Factory(networkConfig);\n * \n * // For Uniswap V3\n * const uniParams = factory.getQuoteParams('uniswap', {\n * tokenIn: '0x...',\n * tokenOut: '0x...',\n * amountIn: parseEther('1'),\n * fee: 3000,\n * sqrtPriceLimitX96: 0n\n * });\n * \n * // For QuickSwap (Algebra)\n * const quickParams = factory.getQuoteParams('quickswap', {\n * tokenIn: '0x...',\n * tokenOut: '0x...',\n * amountIn: parseEther('1'),\n * limitSqrtPrice: 0n\n * });\n * ```\n */\n getQuoteParams(protocol: Protocol, params: QuoteParams) {\n // Validate parameters first\n validateQuoteParams(protocol, params);\n \n if (!protocol) {\n throw Error('Protocol not found');\n }\n // Check for Algebra Integral v2.1 vaults (newer version with deployer)\n if (this.isAlgebraIntegral21Vault(protocol)) {\n const p = params as AlgebraIntegral21QuoteParams;\n return {\n tokenIn: p.tokenIn,\n tokenOut: p.tokenOut,\n deployer: p.deployer,\n amountIn: p.amountIn,\n limitSqrtPrice: p.limitSqrtPrice || 0n\n };\n }\n\n // Check for Shadow protocol vaults\n if (isShadowProtocol(protocol)) {\n const p = params as ShadowQuoteParams;\n return {\n tokenIn: p.tokenIn,\n tokenOut: p.tokenOut,\n amountIn: p.amountIn,\n tickSpacing: p.tickSpacing,\n sqrtPriceLimitX96: p.sqrtPriceLimitX96 || 0n\n };\n }\n\n // Check for Algebra Integral vaults (older version)\n if (isAlgebraIntegralProtocol(protocol)) {\n const p = params as AlgebraQuoteParams;\n return {\n tokenIn: p.tokenIn,\n tokenOut: p.tokenOut,\n amountIn: p.amountIn,\n limitSqrtPrice: p.limitSqrtPrice || 0n\n };\n }\n\n // Check for Algebra-based protocols (QuickSwap, etc.)\n if (protocol && isAlgebraProtocol(protocol)) {\n const p = params as AlgebraQuoteParams;\n return {\n tokenIn: p.tokenIn,\n tokenOut: p.tokenOut,\n amountIn: p.amountIn,\n limitSqrtPrice: p.limitSqrtPrice || 0n\n };\n }\n\n // Check for Thick V2 protocols\n if (isThickV2Protocol(protocol)) {\n const p = params as ThickQuoteParams;\n return {\n tokenIn: p.tokenIn,\n tokenOut: p.tokenOut,\n amountIn: p.amountIn,\n tickSpacing: p.tickSpacing,\n sqrtPriceLimitX96: p.sqrtPriceLimitX96 || 0n\n };\n }\n\n // Default to Uniswap V3 style (fee-based)\n const p = params as UniswapQuoteParams;\n return {\n tokenIn: p.tokenIn,\n tokenOut: p.tokenOut,\n amountIn: p.amountIn,\n fee: p.fee,\n sqrtPriceLimitX96: p.sqrtPriceLimitX96 || 0n\n };\n }\n\n /**\n * Creates a QuoterV2 contract instance with the appropriate ABI for the given beacon.\n * \n * @param beaconName - The beacon identifier to determine the protocol type\n * @param client - The viem client for contract interactions\n * @returns A viem contract instance with the appropriate ABI\n * @throws Error if quoter address is not found for the protocol\n */\n createQuoterV2(protocol: Protocol, client: PublicClient) {\n const quoterV2Address = this.getQuoterV2Address(protocol);\n\n if (!quoterV2Address) {\n throw new Error(`QuoterV2 address not found for protocol: ${protocol}`);\n }\n\n const abi = this.getQuoterAbi(protocol);\n \n return getContract({\n address: quoterV2Address as Address,\n abi,\n client\n });\n }\n\n /**\n * Convenience function that creates both the quoter contract and properly formatted quote parameters.\n * \n * @param beaconName - The beacon identifier to determine the protocol type\n * @param client - The viem client for contract interactions\n * @param params - The input parameters for the quote\n * @returns Object containing the quoter contract and formatted parameters\n * @throws Error if quoter address is not found for the protocol\n * \n * @example\n * ```typescript\n * const factory = new QuoterV2Factory(networkConfig);\n * \n * const { quoter, params } = factory.createQuoterWithParams('quickswap', client, {\n * tokenIn: '0x...',\n * tokenOut: '0x...',\n * amountIn: parseEther('1'),\n * limitSqrtPrice: 0n\n * });\n * \n * // Use directly\n * const result = await quoter.read.quoteExactInputSingle([params]);\n * ```\n */\n createQuoterWithParams(protocol: Protocol, client: PublicClient, params: QuoteParams) {\n const quoter = this.createQuoterV2(protocol, client);\n const formattedParams = this.getQuoteParams(protocol, params);\n \n return {\n quoter,\n params: formattedParams\n };\n }\n\n /**\n * Gets the appropriate QuoterV2 ABI based on the beacon name and protocol.\n * \n * @param protocol - The detected protocol type\n * @returns The appropriate ABI array\n */\n public getQuoterAbi(protocol: Protocol | null): QuoterV2ABI {\n\n if (!protocol) {\n throw Error('Protocol not avaiable')\n }\n // Check for Algebra Integral v2.1 vaults (newer version)\n if (this.isAlgebraIntegral21Vault(protocol)) {\n return QuoterV2AlgebgraIntegral21;\n }\n\n // Check for Shadow protocol vaults\n if (isShadowProtocol(protocol)) {\n return QuoterV2Shadow;\n }\n\n // Check for Algebra Integral vaults (older version)\n if (isAlgebraIntegralProtocol(protocol)) {\n return QuoterV2AlgebgraIntegral;\n }\n\n // Check for Lynex protocol (special case)\n if (protocol === Protocol.Lynex) {\n // Note: Lynex currently uses the same ABI as QuickSwap in this implementation\n // If Lynex has a different ABI, add it to the ABIs in quoter.ts as QuoterV2Lynex\n // and import it at the top of this file\n return QuickSwapQuoterV2;\n }\n\n // Check for Algebra-based protocols\n if (protocol && isAlgebraProtocol(protocol)) {\n return QuickSwapQuoterV2;\n }\n\n // Check for Thick V2 protocols\n if (isThickV2Protocol(protocol)) {\n return QuoterV2Thick;\n }\n\n // Default to standard Uniswap V3 QuoterV2 ABI\n return UniswapV3QuoterABI;\n }\n\n /**\n * Gets the QuoterV2 address for the given protocol from the network configuration.\n * \n * @param protocol - The protocol type\n * @returns The quoter address or undefined if not found\n */\n public getQuoterV2Address(protocol: Protocol | null): string | undefined {\n\n if (!protocol) {\n return undefined;\n }\n const contractAddresses = getProtocolContractAddresses(protocol, this.networkConfig.name, 'QuoterV2')\n\n if (!protocol || !contractAddresses) {\n return undefined;\n }\n return contractAddresses.quoterV2Address;\n }\n\n /**\n * Checks if the beacon represents an Algebra Integral v2.1 vault.\n * \n * @param beaconName - The beacon identifier\n * @returns True if it's an Algebra Integral v2.1 vault\n */\n private isAlgebraIntegral21Vault(protocol: Protocol): boolean {\n return protocol === Protocol.KatanaIntegral;\n }\n\n \n}\n\n/**\n * Helper function to get QuoterV2 address for a protocol from network config.\n * \n * @param protocol - The protocol to get the quoter address for\n * @param networkConfig - The network configuration object\n * @returns The quoter address or undefined if not found\n * \n * @example\n * ```typescript\n * const quoterAddress = getQuoterV2Address(Protocol.QuickSwap, networkConfig);\n * if (quoterAddress) {\n * // Use the quoter address\n * }\n * ```\n */\n\n/**\n * Type guard to check if parameters are for Uniswap V3 style quoter\n */\nexport function isUniswapQuoteParams(params: QuoteParams): params is UniswapQuoteParams {\n return 'fee' in params;\n}\n\n/**\n * Type guard to check if parameters are for Algebra style quoter\n */\nexport function isAlgebraQuoteParams(params: QuoteParams): params is AlgebraQuoteParams {\n return 'limitSqrtPrice' in params ;\n}\n\n/**\n * Type guard to check if parameters are for Thick V2 style quoter\n */\nexport function isThickQuoteParams(params: QuoteParams): params is ThickQuoteParams {\n return 'tickSpacing' in params && 'sqrtPriceLimitX96' in params;\n}\n\n/**\n * Type guard to check if parameters are for Algebra Integral v2.1 style quoter\n */\nexport function isAlgebraIntegral21QuoteParams(params: QuoteParams): params is AlgebraIntegral21QuoteParams {\n return 'deployer' in params;\n}\n\n/**\n * Type guard to check if parameters are for Shadow style quoter\n */\nexport function isShadowQuoteParams(params: QuoteParams): params is ShadowQuoteParams {\n return 'tickSpacing' in params && 'sqrtPriceLimitX96' in params;\n}\n\n/**\n * Validates quote parameters based on the protocol type detected from beacon name\n * \n * @param beaconName - The beacon identifier to determine the protocol type\n * @param params - The parameters to validate\n * @throws Error if parameters don't match the expected protocol type\n */\nexport function validateQuoteParams(protocol: Protocol, params: QuoteParams): void {\n if (!protocol) {\n throw Error('Protocol not found');\n }\n \n // Validate required fields\n if (!params.tokenIn || !params.tokenOut || !params.amountIn) {\n throw new Error('Missing required parameters: tokenIn, tokenOut, and amountIn are required');\n }\n\n // Check for Algebra Integral v2.1 vaults (newer version with deployer)\n if (protocol === Protocol.KatanaIntegral) {\n if (!isAlgebraIntegral21QuoteParams(params)) {\n throw new Error('AlgebraIntegral21QuoteParams required: must include deployer field');\n }\n return;\n }\n\n // Check for Shadow protocol vaults\n if (protocol && isShadowProtocol(protocol)) {\n if (!isShadowQuoteParams(params) && !isThickQuoteParams(params)) {\n throw new Error('ShadowQuoteParams required: must include tickSpacing field');\n }\n return;\n }\n\n // Check for Thick V2 protocols\n if (protocol && isThickV2Protocol(protocol)) {\n if (!isThickQuoteParams(params)) {\n throw new Error('ThickQuoteParams required: must include tickSpacing field');\n }\n return;\n }\n\n // Check for Algebra-based protocols\n if (protocol && isAlgebraProtocol(protocol)) {\n if (!isAlgebraQuoteParams(params)) {\n throw new Error('AlgebraQuoteParams required: limitSqrtPrice field expected');\n }\n return;\n }\n\n // Default to Uniswap V3 style validation\n if (!isUniswapQuoteParams(params)) {\n throw new Error('UniswapQuoteParams required: must include fee field');\n }\n}\n\n/**\n * Gets the expected parameter type for a given beacon name\n * \n * @param beaconName - The beacon identifier\n * @returns String describing the expected parameter type\n */\nexport function getExpectedParamType(beaconName: string): string {\n const protocol = getProtocolTypeByBeacon(beaconName);\n \n if (beaconName.toLowerCase().includes('katanaintegral') || protocol === Protocol.KatanaIntegral) {\n return 'AlgebraIntegral21QuoteParams (requires: tokenIn, tokenOut, amountIn, deployer, limitSqrtPrice?)';\n }\n \n if (protocol && isShadowProtocol(protocol)) {\n return 'ShadowQuoteParams (requires: tokenIn, tokenOut, amountIn, tickSpacing, sqrtPriceLimitX96?)';\n }\n \n if (protocol && isThickV2Protocol(protocol)) {\n return 'ThickQuoteParams (requires: tokenIn, tokenOut, amountIn, tickSpacing, sqrtPriceLimitX96?)';\n }\n \n if (protocol && isAlgebraProtocol(protocol)) {\n return 'AlgebraQuoteParams (requires: tokenIn, tokenOut, amountIn, limitSqrtPrice?)';\n }\n \n return 'UniswapQuoteParams (requires: tokenIn, tokenOut, amountIn, fee, sqrtPriceLimitX96?)';\n} "]}
|
|
1
|
+
{"version":3,"file":"quoter.js","sourceRoot":"","sources":["../../../src/const/quoter.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Address, PublicClient } from 'viem';\nimport { getContract } from 'viem';\nimport { Protocol } from \"./chain.js\";\nimport { getProtocolTypeByBeacon } from \"./amm/utils/beacon.js\";\nimport { isAlgebraProtocol, isAlgebraIntegralProtocol, isThickV2Protocol, isShadowProtocol } from \"./protocol.js\";\nimport { \n UniswapV3QuoterABI, \n QuickSwapQuoterV2, \n QuoterV2Thick, \n QuoterV2AlgebgraIntegral, \n QuoterV2AlgebgraIntegral21, \n QuoterV2Shadow \n} from \"./abis/quoter.js\";\nimport { NetworkConfig } from './network.js';\nimport { getProtocolContractAddresses } from './amm/index.js';\n\n/**\n * Base interface for quote parameters\n */\nexport interface BaseQuoteParams {\n tokenIn: Address;\n tokenOut: Address;\n amountIn: bigint;\n}\n\n/**\n * Quote parameters for Uniswap V3 style quoters (fee-based)\n */\nexport interface UniswapQuoteParams extends BaseQuoteParams {\n fee: number; // uint24\n sqrtPriceLimitX96?: bigint; // uint160\n}\n\n/**\n * Quote parameters for Algebra style quoters (limit price)\n */\nexport interface AlgebraQuoteParams extends BaseQuoteParams {\n limitSqrtPrice?: bigint; // uint160\n}\n\n/**\n * Quote parameters for Thick V2 quoters (tick spacing)\n */\nexport interface ThickQuoteParams extends BaseQuoteParams {\n tickSpacing: number; // int24\n sqrtPriceLimitX96?: bigint; // uint160\n}\n\n/**\n * Quote parameters for Algebra Integral v2.1 quoters (with deployer)\n */\nexport interface AlgebraIntegral21QuoteParams extends BaseQuoteParams {\n deployer: Address;\n limitSqrtPrice?: bigint; // uint160\n}\n\n/**\n * Quote parameters for Shadow quoters (tick spacing)\n */\nexport interface ShadowQuoteParams extends BaseQuoteParams {\n tickSpacing: number; // int24\n sqrtPriceLimitX96?: bigint; // uint160\n}\n\n/**\n * Union type for all possible quote parameters\n */\nexport type QuoteParams = \n | UniswapQuoteParams \n | AlgebraQuoteParams \n | ThickQuoteParams \n | AlgebraIntegral21QuoteParams \n | ShadowQuoteParams;\n\n/**\n * Union type for all possible QuoterV2 ABIs\n */\nexport type QuoterV2ABI = \n | typeof UniswapV3QuoterABI\n | typeof QuickSwapQuoterV2\n | typeof QuoterV2Thick\n | typeof QuoterV2AlgebgraIntegral\n | typeof QuoterV2AlgebgraIntegral21\n | typeof QuoterV2Shadow;\n\n/**\n * Union type for all possible quoter function arguments\n */\nexport type QuoterFunctionArgs = \n | {\n tokenIn: Address;\n tokenOut: Address;\n amountIn: bigint;\n fee: number;\n sqrtPriceLimitX96: bigint;\n }\n | {\n tokenIn: Address;\n tokenOut: Address;\n amountIn: bigint;\n limitSqrtPrice: bigint;\n }\n | {\n tokenIn: Address;\n tokenOut: Address;\n amountIn: bigint;\n tickSpacing: number;\n sqrtPriceLimitX96: bigint;\n }\n | {\n tokenIn: Address;\n tokenOut: Address;\n deployer: Address;\n amountIn: bigint;\n limitSqrtPrice: bigint;\n };\n/**\n * Factory class for creating QuoterV2 contract instances with the appropriate ABI\n * based on the protocol type detected from beacon names.\n * \n * @example\n * ```typescript\n * import { createPublicClient, http, parseEther } from 'viem';\n * import { polygon } from 'viem/chains';\n * import { QuoterV2Factory } from './quoter.js';\n * \n * // Create a viem client\n * const client = createPublicClient({\n * chain: polygon,\n * transport: http()\n * });\n * \n * // Configure network with quoter addresses\n * const networkConfig = {\n * quoterV2: {\n * 'QuickSwap': '0x...',\n * 'Uniswap': '0x...',\n * 'ThickV2': '0x...',\n * 'Shadow': '0x...',\n * 'KatanaIntegral': '0x...'\n * }\n * };\n * \n * const factory = new QuoterV2Factory(networkConfig);\n * \n * // Example 1: Uniswap V3 style (fee-based)\n * const { quoter: uniQuoter, params: uniParams } = factory.createQuoterWithParams('uniswap', client, {\n * tokenIn: '0xA0b86a33E6f73c7C6789b65f71C1ab8EbAbD3A01',\n * tokenOut: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',\n * amountIn: parseEther('1'),\n * fee: 3000,\n * sqrtPriceLimitX96: 0n\n * });\n * \n * // Example 2: QuickSwap (Algebra style)\n * const { quoter: quickQuoter, params: quickParams } = factory.createQuoterWithParams('quickswap', client, {\n * tokenIn: '0xA0b86a33E6f73c7C6789b65f71C1ab8EbAbD3A01',\n * tokenOut: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',\n * amountIn: parseEther('1'),\n * limitSqrtPrice: 0n\n * });\n * \n * // Example 3: Thick V2 (tick spacing)\n * const { quoter: thickQuoter, params: thickParams } = factory.createQuoterWithParams('thickv2', client, {\n * tokenIn: '0xA0b86a33E6f73c7C6789b65f71C1ab8EbAbD3A01',\n * tokenOut: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',\n * amountIn: parseEther('1'),\n * tickSpacing: 60,\n * sqrtPriceLimitX96: 0n\n * });\n * \n * // Example 4: Katana Integral (with deployer)\n * const { quoter: katanaQuoter, params: katanaParams } = factory.createQuoterWithParams('katanaintegral', client, {\n * tokenIn: '0xA0b86a33E6f73c7C6789b65f71C1ab8EbAbD3A01',\n * tokenOut: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',\n * amountIn: parseEther('1'),\n * deployer: '0x...',\n * limitSqrtPrice: 0n\n * });\n * \n * // Use the quoter contracts\n * const uniResult = await uniQuoter.read.quoteExactInputSingle([uniParams]);\n * const quickResult = await quickQuoter.read.quoteExactInputSingle([quickParams]);\n * const thickResult = await thickQuoter.read.quoteExactInputSingle([thickParams]);\n * const katanaResult = await katanaQuoter.read.quoteExactInputSingle([katanaParams]);\n * ```\n */\nexport class QuoterV2Factory {\n private networkConfig: NetworkConfig;\n\n constructor(networkConfig: NetworkConfig) {\n this.networkConfig = networkConfig;\n }\n\n /**\n * Creates quote parameters for the quoteExactInputSingle function based on the protocol type.\n * \n * @param beaconName - The beacon identifier to determine the protocol type\n * @param params - The input parameters for the quote\n * @returns Formatted parameters object for the specific protocol's quoteExactInputSingle function\n * @throws Error if protocol type is not supported\n * \n * @example\n * ```typescript\n * const factory = new QuoterV2Factory(networkConfig);\n * \n * // For Uniswap V3\n * const uniParams = factory.getQuoteParams('uniswap', {\n * tokenIn: '0x...',\n * tokenOut: '0x...',\n * amountIn: parseEther('1'),\n * fee: 3000,\n * sqrtPriceLimitX96: 0n\n * });\n * \n * // For QuickSwap (Algebra)\n * const quickParams = factory.getQuoteParams('quickswap', {\n * tokenIn: '0x...',\n * tokenOut: '0x...',\n * amountIn: parseEther('1'),\n * limitSqrtPrice: 0n\n * });\n * ```\n */\n getQuoteParams(protocol: Protocol, params: QuoteParams) {\n // Validate parameters first\n validateQuoteParams(protocol, params);\n \n if (!protocol) {\n throw Error('Protocol not found');\n }\n // Check for Algebra Integral v2.1 vaults (newer version with deployer)\n if (this.isAlgebraIntegral21Vault(protocol)) {\n const p = params as AlgebraIntegral21QuoteParams;\n return {\n tokenIn: p.tokenIn,\n tokenOut: p.tokenOut,\n deployer: p.deployer,\n amountIn: p.amountIn,\n limitSqrtPrice: p.limitSqrtPrice || 0n\n };\n }\n\n // Check for Shadow protocol vaults\n if (isShadowProtocol(protocol)) {\n const p = params as ShadowQuoteParams;\n return {\n tokenIn: p.tokenIn,\n tokenOut: p.tokenOut,\n amountIn: p.amountIn,\n tickSpacing: p.tickSpacing,\n sqrtPriceLimitX96: p.sqrtPriceLimitX96 || 0n\n };\n }\n\n // Check for Algebra Integral vaults (older version)\n if (isAlgebraIntegralProtocol(protocol)) {\n const p = params as AlgebraQuoteParams;\n return {\n tokenIn: p.tokenIn,\n tokenOut: p.tokenOut,\n amountIn: p.amountIn,\n limitSqrtPrice: p.limitSqrtPrice || 0n\n };\n }\n\n // Check for Algebra-based protocols (QuickSwap, etc.)\n if (protocol && isAlgebraProtocol(protocol)) {\n const p = params as AlgebraQuoteParams;\n return {\n tokenIn: p.tokenIn,\n tokenOut: p.tokenOut,\n amountIn: p.amountIn,\n limitSqrtPrice: p.limitSqrtPrice || 0n\n };\n }\n\n // Check for Thick V2 protocols\n if (isThickV2Protocol(protocol)) {\n const p = params as ThickQuoteParams;\n return {\n tokenIn: p.tokenIn,\n tokenOut: p.tokenOut,\n amountIn: p.amountIn,\n tickSpacing: p.tickSpacing,\n sqrtPriceLimitX96: p.sqrtPriceLimitX96 || 0n\n };\n }\n\n // Default to Uniswap V3 style (fee-based)\n const p = params as UniswapQuoteParams;\n return {\n tokenIn: p.tokenIn,\n tokenOut: p.tokenOut,\n amountIn: p.amountIn,\n fee: p.fee,\n sqrtPriceLimitX96: p.sqrtPriceLimitX96 || 0n\n };\n }\n\n /**\n * Creates a QuoterV2 contract instance with the appropriate ABI for the given beacon.\n * \n * @param beaconName - The beacon identifier to determine the protocol type\n * @param client - The viem client for contract interactions\n * @returns A viem contract instance with the appropriate ABI\n * @throws Error if quoter address is not found for the protocol\n */\n createQuoterV2(protocol: Protocol, client: PublicClient) {\n const quoterV2Address = this.getQuoterV2Address(protocol);\n\n if (!quoterV2Address) {\n throw new Error(`QuoterV2 address not found for protocol: ${protocol}`);\n }\n\n const abi = this.getQuoterAbi(protocol);\n \n return getContract({\n address: quoterV2Address as Address,\n abi,\n client\n });\n }\n\n /**\n * Convenience function that creates both the quoter contract and properly formatted quote parameters.\n * \n * @param beaconName - The beacon identifier to determine the protocol type\n * @param client - The viem client for contract interactions\n * @param params - The input parameters for the quote\n * @returns Object containing the quoter contract and formatted parameters\n * @throws Error if quoter address is not found for the protocol\n * \n * @example\n * ```typescript\n * const factory = new QuoterV2Factory(networkConfig);\n * \n * const { quoter, params } = factory.createQuoterWithParams('quickswap', client, {\n * tokenIn: '0x...',\n * tokenOut: '0x...',\n * amountIn: parseEther('1'),\n * limitSqrtPrice: 0n\n * });\n * \n * // Use directly\n * const result = await quoter.read.quoteExactInputSingle([params]);\n * ```\n */\n createQuoterWithParams(protocol: Protocol, client: PublicClient, params: QuoteParams) {\n const quoter = this.createQuoterV2(protocol, client);\n const formattedParams = this.getQuoteParams(protocol, params);\n \n return {\n quoter,\n params: formattedParams\n };\n }\n\n /**\n * Gets the appropriate QuoterV2 ABI based on the beacon name and protocol.\n * \n * @param protocol - The detected protocol type\n * @returns The appropriate ABI array\n */\n public getQuoterAbi(protocol: Protocol | null): QuoterV2ABI {\n\n if (!protocol) {\n throw Error('Protocol not avaiable')\n }\n // Check for Algebra Integral v2.1 vaults (newer version)\n if (this.isAlgebraIntegral21Vault(protocol)) {\n return QuoterV2AlgebgraIntegral21;\n }\n\n // Check for Shadow protocol vaults\n if (isShadowProtocol(protocol)) {\n return QuoterV2Shadow;\n }\n\n // Check for Algebra Integral vaults (older version)\n if (isAlgebraIntegralProtocol(protocol)) {\n return QuoterV2AlgebgraIntegral;\n }\n\n // Check for Lynex protocol (special case)\n if (protocol === Protocol.Lynex) {\n // Note: Lynex currently uses the same ABI as QuickSwap in this implementation\n // If Lynex has a different ABI, add it to the ABIs in quoter.ts as QuoterV2Lynex\n // and import it at the top of this file\n return QuickSwapQuoterV2;\n }\n\n // Check for Algebra-based protocols\n if (protocol && isAlgebraProtocol(protocol)) {\n return QuickSwapQuoterV2;\n }\n\n // Check for Thick V2 protocols\n if (isThickV2Protocol(protocol)) {\n return QuoterV2Thick;\n }\n\n // Default to standard Uniswap V3 QuoterV2 ABI\n return UniswapV3QuoterABI;\n }\n\n /**\n * Gets the QuoterV2 address for the given protocol from the network configuration.\n * \n * @param protocol - The protocol type\n * @returns The quoter address or undefined if not found\n */\n public getQuoterV2Address(protocol: Protocol | null): string | undefined {\n\n if (!protocol) {\n return undefined;\n }\n const contractAddresses = getProtocolContractAddresses(protocol, this.networkConfig.name, 'QuoterV2')\n\n if (!protocol || !contractAddresses) {\n return undefined;\n }\n return contractAddresses.quoterV2Address;\n }\n\n /**\n * Checks if the beacon represents an Algebra Integral v2.1 vault.\n * \n * @param beaconName - The beacon identifier\n * @returns True if it's an Algebra Integral v2.1 vault\n */\n private isAlgebraIntegral21Vault(protocol: Protocol): boolean {\n return protocol === Protocol.KatanaIntegral;\n }\n\n \n}\n\n/**\n * Helper function to get QuoterV2 address for a protocol from network config.\n * \n * @param protocol - The protocol to get the quoter address for\n * @param networkConfig - The network configuration object\n * @returns The quoter address or undefined if not found\n * \n * @example\n * ```typescript\n * const quoterAddress = getQuoterV2Address(Protocol.QuickSwap, networkConfig);\n * if (quoterAddress) {\n * // Use the quoter address\n * }\n * ```\n */\n\n/**\n * Type guard to check if parameters are for Uniswap V3 style quoter\n */\nexport function isUniswapQuoteParams(params: QuoteParams): params is UniswapQuoteParams {\n return 'fee' in params;\n}\n\n/**\n * Type guard to check if parameters are for Algebra style quoter\n */\nexport function isAlgebraQuoteParams(params: QuoteParams): params is AlgebraQuoteParams {\n return 'limitSqrtPrice' in params ;\n}\n\n/**\n * Type guard to check if parameters are for Thick V2 style quoter\n */\nexport function isThickQuoteParams(params: QuoteParams): params is ThickQuoteParams {\n return 'tickSpacing' in params && 'sqrtPriceLimitX96' in params;\n}\n\n/**\n * Type guard to check if parameters are for Algebra Integral v2.1 style quoter\n */\nexport function isAlgebraIntegral21QuoteParams(params: QuoteParams): params is AlgebraIntegral21QuoteParams {\n return 'deployer' in params;\n}\n\n/**\n * Type guard to check if parameters are for Shadow style quoter\n */\nexport function isShadowQuoteParams(params: QuoteParams): params is ShadowQuoteParams {\n return 'tickSpacing' in params && 'sqrtPriceLimitX96' in params;\n}\n\n/**\n * Validates quote parameters based on the protocol type detected from beacon name\n * \n * @param beaconName - The beacon identifier to determine the protocol type\n * @param params - The parameters to validate\n * @throws Error if parameters don't match the expected protocol type\n */\nexport function validateQuoteParams(protocol: Protocol, params: QuoteParams): void {\n if (!protocol) {\n throw Error('Protocol not found');\n }\n \n // Validate required fields\n if (!params.tokenIn || !params.tokenOut || !params.amountIn) {\n throw new Error('Missing required parameters: tokenIn, tokenOut, and amountIn are required');\n }\n\n // Check for Algebra Integral v2.1 vaults (newer version with deployer)\n if (protocol === Protocol.KatanaIntegral) {\n if (!isAlgebraIntegral21QuoteParams(params)) {\n throw new Error('AlgebraIntegral21QuoteParams required: must include deployer field');\n }\n return;\n }\n\n // Check for Shadow protocol vaults\n if (protocol && isShadowProtocol(protocol)) {\n if (!isShadowQuoteParams(params) && !isThickQuoteParams(params)) {\n throw new Error('ShadowQuoteParams required: must include tickSpacing field');\n }\n return;\n }\n\n // Check for Thick V2 protocols\n if (protocol && isThickV2Protocol(protocol)) {\n if (!isThickQuoteParams(params)) {\n throw new Error('ThickQuoteParams required: must include tickSpacing field');\n }\n return;\n }\n\n // Check for Algebra-based protocols\n if (protocol && isAlgebraProtocol(protocol)) {\n if (!isAlgebraQuoteParams(params)) {\n throw new Error('AlgebraQuoteParams required: limitSqrtPrice field expected');\n }\n return;\n }\n\n // Default to Uniswap V3 style validation\n if (!isUniswapQuoteParams(params)) {\n throw new Error('UniswapQuoteParams required: must include fee field');\n }\n}\n\n/**\n * Gets the expected parameter type for a given beacon name\n * \n * @param beaconName - The beacon identifier\n * @returns String describing the expected parameter type\n */\nexport function getExpectedParamType(beaconName: string): string {\n const protocol = getProtocolTypeByBeacon(beaconName);\n \n if (beaconName.toLowerCase().includes('katanaintegral') || protocol === Protocol.KatanaIntegral) {\n return 'AlgebraIntegral21QuoteParams (requires: tokenIn, tokenOut, amountIn, deployer, limitSqrtPrice?)';\n }\n \n if (protocol && isShadowProtocol(protocol)) {\n return 'ShadowQuoteParams (requires: tokenIn, tokenOut, amountIn, tickSpacing, sqrtPriceLimitX96?)';\n }\n \n if (protocol && isThickV2Protocol(protocol)) {\n return 'ThickQuoteParams (requires: tokenIn, tokenOut, amountIn, tickSpacing, sqrtPriceLimitX96?)';\n }\n \n if (protocol && isAlgebraProtocol(protocol)) {\n return 'AlgebraQuoteParams (requires: tokenIn, tokenOut, amountIn, limitSqrtPrice?)';\n }\n \n return 'UniswapQuoteParams (requires: tokenIn, tokenOut, amountIn, fee, sqrtPriceLimitX96?)';\n} "]}
|
|
@@ -1,2 +1,18 @@
|
|
|
1
|
-
|
|
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
|
+
__exportStar(require("./stabilityVaultsConfig.js"), exports);
|
|
2
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/const/stabilityVaults/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/const/stabilityVaults/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C","sourcesContent":["export * from './stabilityVaultsConfig.js';\n\n"]}
|
|
@@ -1,14 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.stabilityVaultsConfig = void 0;
|
|
4
|
+
exports.getStabilityVaultsPeripheryAddress = getStabilityVaultsPeripheryAddress;
|
|
5
|
+
exports.getStabilityVaultsSubgraphUrl = getStabilityVaultsSubgraphUrl;
|
|
6
|
+
const chain_js_1 = require("../chain.js");
|
|
7
|
+
exports.stabilityVaultsConfig = {
|
|
3
8
|
beaconContract: 'TestStabilityVault',
|
|
4
9
|
beaconContractSaga: 'StabilityTest',
|
|
5
10
|
peripheryAddress: {
|
|
6
|
-
[Chain.Arbitrum]: '0xAc9d57AdaDC3593A8BB66729C7d2436dA8A13E7d',
|
|
7
|
-
[Chain.Saga]: '0x2292d6ad79e932ae80ee6e03607341301705742d',
|
|
11
|
+
[chain_js_1.Chain.Arbitrum]: '0xAc9d57AdaDC3593A8BB66729C7d2436dA8A13E7d',
|
|
12
|
+
[chain_js_1.Chain.Saga]: '0x2292d6ad79e932ae80ee6e03607341301705742d',
|
|
8
13
|
},
|
|
9
14
|
subgraphUrl: {
|
|
10
|
-
[Chain.Arbitrum]: 'https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-arbitrum/preprod/gn',
|
|
11
|
-
[Chain.Saga]: 'https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-saga-evm-stability/prod/gn',
|
|
15
|
+
[chain_js_1.Chain.Arbitrum]: 'https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-arbitrum/preprod/gn',
|
|
16
|
+
[chain_js_1.Chain.Saga]: 'https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-saga-evm-stability/prod/gn',
|
|
12
17
|
},
|
|
13
18
|
};
|
|
14
19
|
/**
|
|
@@ -16,15 +21,15 @@ export const stabilityVaultsConfig = {
|
|
|
16
21
|
* @param chainId - The chain ID to lookup
|
|
17
22
|
* @returns The periphery address for the chain, or undefined if not configured
|
|
18
23
|
*/
|
|
19
|
-
|
|
20
|
-
return stabilityVaultsConfig.peripheryAddress[chain];
|
|
24
|
+
function getStabilityVaultsPeripheryAddress(chain) {
|
|
25
|
+
return exports.stabilityVaultsConfig.peripheryAddress[chain];
|
|
21
26
|
}
|
|
22
27
|
/**
|
|
23
28
|
* Get the subgraph URL for a specific chain
|
|
24
29
|
* @param chainId - The chain ID to lookup
|
|
25
30
|
* @returns The subgraph URL for the chain, or undefined if not configured
|
|
26
31
|
*/
|
|
27
|
-
|
|
28
|
-
return stabilityVaultsConfig.subgraphUrl[chain];
|
|
32
|
+
function getStabilityVaultsSubgraphUrl(chain) {
|
|
33
|
+
return exports.stabilityVaultsConfig.subgraphUrl[chain];
|
|
29
34
|
}
|
|
30
35
|
//# sourceMappingURL=stabilityVaultsConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stabilityVaultsConfig.js","sourceRoot":"","sources":["../../../../src/const/stabilityVaults/stabilityVaultsConfig.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stabilityVaultsConfig.js","sourceRoot":"","sources":["../../../../src/const/stabilityVaults/stabilityVaultsConfig.ts"],"names":[],"mappings":";;;AA4BA,gFAEC;AAOD,sEAEC;AAvCD,0CAAoC;AAUvB,QAAA,qBAAqB,GAAuB;IACvD,cAAc,EAAE,oBAAoB;IACpC,kBAAkB,EAAE,eAAe;IACnC,gBAAgB,EAAE;QAChB,CAAC,gBAAK,CAAC,QAAQ,CAAC,EAAE,4CAA4C;QAC9D,CAAC,gBAAK,CAAC,IAAI,CAAC,EAAE,4CAA4C;KAC3D;IACD,WAAW,EAAE;QACX,CAAC,gBAAK,CAAC,QAAQ,CAAC,EAAE,gIAAgI;QAClJ,CAAC,gBAAK,CAAC,IAAI,CAAC,EAAE,0HAA0H;KACzI;CACF,CAAC;AAEF;;;;GAIG;AACH,SAAgB,kCAAkC,CAAC,KAAY;IAC7D,OAAO,6BAAqB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,SAAgB,6BAA6B,CAAC,KAAY;IACxD,OAAO,6BAAqB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC","sourcesContent":["import { Chain } from '../chain.js';\n\nexport interface StabilityVaultInfo {\n beaconContract: string;\n peripheryAddress: Partial<{ [chain in Chain]: string }>;\n subgraphUrl: Partial<{ [chain in Chain]: string }>;\n beaconContractSaga?: string;\n}\n\n\nexport const stabilityVaultsConfig: StabilityVaultInfo = {\n beaconContract: 'TestStabilityVault',\n beaconContractSaga: 'StabilityTest',\n peripheryAddress: {\n [Chain.Arbitrum]: '0xAc9d57AdaDC3593A8BB66729C7d2436dA8A13E7d',\n [Chain.Saga]: '0x2292d6ad79e932ae80ee6e03607341301705742d',\n },\n subgraphUrl: {\n [Chain.Arbitrum]: 'https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-arbitrum/preprod/gn',\n [Chain.Saga]: 'https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-saga-evm-stability/prod/gn',\n },\n};\n\n/**\n * Get the periphery address for a specific chain\n * @param chainId - The chain ID to lookup\n * @returns The periphery address for the chain, or undefined if not configured\n */\nexport function getStabilityVaultsPeripheryAddress(chain: Chain): string | undefined {\n return stabilityVaultsConfig.peripheryAddress[chain];\n}\n\n/**\n * Get the subgraph URL for a specific chain\n * @param chainId - The chain ID to lookup\n * @returns The subgraph URL for the chain, or undefined if not configured\n */\nexport function getStabilityVaultsSubgraphUrl(chain: Chain): string | undefined {\n return stabilityVaultsConfig.subgraphUrl[chain];\n}\n\n"]}
|
|
@@ -1,63 +1,67 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.steerSubgraphConfig = exports.deprecatedBundlesURL = void 0;
|
|
4
|
+
exports.getSubgraphUrlByChainId = getSubgraphUrlByChainId;
|
|
5
|
+
const chain_js_1 = require("./chain.js");
|
|
2
6
|
/**
|
|
3
7
|
* URL for accessing deprecated bundle information
|
|
4
8
|
*/
|
|
5
|
-
|
|
9
|
+
exports.deprecatedBundlesURL = "https://api.steer.finance/deprecated-bundles";
|
|
6
10
|
/**
|
|
7
11
|
* Configuration mapping of supported chains to their respective subgraph endpoints.
|
|
8
12
|
* Each chain has a dedicated subgraph URL for querying protocol data.
|
|
9
13
|
* Updated each chains for ormi and thegraph
|
|
10
14
|
*/
|
|
11
|
-
|
|
12
|
-
[Chain.Polygon]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-polygon/prod/gn",
|
|
13
|
-
[Chain.BSC]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/GLDP56fPGDz3MtmhtfTkz5CxWiqiNLACVrsJ9RqQeL4U",
|
|
14
|
-
[Chain.Optimism]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/GgW1EwNARL3dyo3acQ3VhraQQ66MHT7QnYuGcQc5geDG",
|
|
15
|
-
[Chain.Arbitrum]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-arbitrum/prod/gn",
|
|
16
|
-
[Chain.Evmos]: "https://subgraph.satsuma-prod.com/769a117cc018/steer/steer-protocol-evmos/api",
|
|
17
|
-
[Chain.Thundercore]: "https://subgraph.steer.finance/thundercore/subgraphs/name/steerprotocol/steer-thundercore",
|
|
18
|
-
[Chain.Metis]: "https://api.metis.0xgraph.xyz/api/public/b88b5696-b69d-46be-b212-5c55a9b1492f/subgraphs/steer-protocol-metis/prod/gn",
|
|
19
|
-
[Chain.Base]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-base/prod/gn",
|
|
20
|
-
[Chain.Avalanche]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/GZotTj3rQJ8ZqVyodtK8TcnKcUxMgeF7mCJHGPYbu8dA",
|
|
21
|
-
[Chain.PolygonzkEVM]: "https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-polygon-zkevm/prod/gn",
|
|
22
|
-
[Chain.Celo]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/BPaFHyfVrhv3pdjGodpQcWggAg1Bcrvc9SFc2t2BXeho",
|
|
23
|
-
[Chain.Kava]: "https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-kava/prod/gn",
|
|
24
|
-
[Chain.Linea]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-linea/prod/gn",
|
|
25
|
-
[Chain.Scroll]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/822PfgbgBzC98Huwf37uxvF9YGZMA5nDeETpstkR55Sn",
|
|
26
|
-
[Chain.Manta]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-manta/prod/gn",
|
|
27
|
-
[Chain.Astar]: "https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-astar/prod/gn",
|
|
28
|
-
[Chain.Fantom]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/9uyX2WDuaxmcYh11ehUhU68M9uSCp5FXVQV2w4LqbpbV",
|
|
29
|
-
[Chain.OkxTestnet]: "https://subgraph.steer.finance/steer-x1-testnet/subgraphs/name/steerprotocol/steer-okxtestnet",
|
|
30
|
-
[Chain.Mantle]: "https://subgraph-api.mantle.xyz/subgraphs/name/steerprotocol/steer-protocol-mantle",
|
|
31
|
-
[Chain.AstarZkevm]: "https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-astar-zkevm/1.1.1/gn",
|
|
32
|
-
[Chain.Blast]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-blast/prod/gn",
|
|
33
|
-
[Chain.Mode]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-mode/prod/gn",
|
|
34
|
-
[Chain.Telos]: "https://telos.api.ormilabs.com/api/public/39892398-bfdd-48ac-b776-77ad8a5b4b9e/subgraphs/steer-protocol-telos/prod/gn",
|
|
35
|
-
[Chain.XLayer]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/8gCrUHrVS9rHwvDPLTn4Wz6od68ULb7azYuQz25JjRK3",
|
|
36
|
-
[Chain.Taiko]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-taiko/prod/gn",
|
|
37
|
-
[Chain.Rootstock]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/H3pANqbMVTiFCUXHjXYr2mHbXvn5my5o66Gxbwcg7Aqm",
|
|
38
|
-
[Chain.ZklinkNova]: "https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-zklink-nova/1.0.1/gn",
|
|
39
|
-
[Chain.Flare]: "https://api.goldsky.com/api/public/project_cm2k9xbkz4qg901vs51bm5uau/subgraphs/steer-protocol-flare/prod/gn",
|
|
40
|
-
[Chain.BeraChainBartio]: 'https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-berachain-bartio/prod/gn',
|
|
41
|
-
[Chain.Filecoin]: 'https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-filecoin/prod/gn',
|
|
42
|
-
[Chain.Apechain]: 'https://apeapi.0xgraph.xyz/api/public/4ea21b03-9850-4796-8068-ec71bbe022db/subgraphs/steer-protocol-apechain/prod/gn',
|
|
43
|
-
[Chain.Zircuit]: 'https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-zircuit/prod/gn',
|
|
44
|
-
[Chain.Moonbeam]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/4D2pLLQuGsAkdZAUgqxxnk4Mcu3aMjEV1HJ2F63kC7w6',
|
|
45
|
-
[Chain.Sei]: 'https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-sei/prod/gn',
|
|
46
|
-
[Chain.Sonic]: 'https://api.0xgraph.xyz/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-sonic/prod/gn',
|
|
47
|
-
[Chain.Zeta]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/HFH41DyzAXxYmT5eszVWn2T7UxViMroPJ4XJV8vhDGNN',
|
|
48
|
-
[Chain.Mainnet]: 'https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-mainnet/prod/gn',
|
|
49
|
-
[Chain.Soneium]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/8gCrUHrVS9rHwvDPLTn4Wz6od68ULb7azYuQz25JjRK3',
|
|
50
|
-
[Chain.Bera]: 'https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-bera/prod/gn',
|
|
51
|
-
[Chain.Unichain]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/EoLK36f26Dr7maXyNKxJmEBJkoYVCMh1d4ENtT5hJgyB',
|
|
52
|
-
[Chain.Hemi]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/2eACJtEGuELqN5roUiHG1jqmCpXt5aimcc8xZdvtMv4z',
|
|
53
|
-
[Chain.TataraTestnet]: 'https://api.studio.thegraph.com/query/78728/steer-protocol-tatara-testnet/version/latest',
|
|
54
|
-
[Chain.Core]: 'https://thegraph.coredao.org/subgraphs/name/steer-protocol-core',
|
|
55
|
-
[Chain.Peaq]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/45pjWAnAXULpS6UDajzCtLcZYuohwuMm4UuSDjegMKAT',
|
|
56
|
-
[Chain.Katana]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/D6CST1Az8c8KvMf8ktcEcWds89YVQxbKG6v8yo7FAzzM',
|
|
57
|
-
[Chain.Ronin]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/793Lz5oiK51wdm9kCLtHqunkAPk2qjg7denpCrHqrLcA',
|
|
58
|
-
[Chain.Saga]: 'https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-saga-evm/prod/gn',
|
|
59
|
-
[Chain.Nibiru]: 'https://app.sentio.xyz//api/v1/graphql/rakesh/steer-protocol-nibiru',
|
|
60
|
-
[Chain.Hyperevm]: 'https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-hyperevm/prod/gn'
|
|
15
|
+
exports.steerSubgraphConfig = {
|
|
16
|
+
[chain_js_1.Chain.Polygon]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-polygon/prod/gn",
|
|
17
|
+
[chain_js_1.Chain.BSC]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/GLDP56fPGDz3MtmhtfTkz5CxWiqiNLACVrsJ9RqQeL4U",
|
|
18
|
+
[chain_js_1.Chain.Optimism]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/GgW1EwNARL3dyo3acQ3VhraQQ66MHT7QnYuGcQc5geDG",
|
|
19
|
+
[chain_js_1.Chain.Arbitrum]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-arbitrum/prod/gn",
|
|
20
|
+
[chain_js_1.Chain.Evmos]: "https://subgraph.satsuma-prod.com/769a117cc018/steer/steer-protocol-evmos/api",
|
|
21
|
+
[chain_js_1.Chain.Thundercore]: "https://subgraph.steer.finance/thundercore/subgraphs/name/steerprotocol/steer-thundercore",
|
|
22
|
+
[chain_js_1.Chain.Metis]: "https://api.metis.0xgraph.xyz/api/public/b88b5696-b69d-46be-b212-5c55a9b1492f/subgraphs/steer-protocol-metis/prod/gn",
|
|
23
|
+
[chain_js_1.Chain.Base]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-base/prod/gn",
|
|
24
|
+
[chain_js_1.Chain.Avalanche]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/GZotTj3rQJ8ZqVyodtK8TcnKcUxMgeF7mCJHGPYbu8dA",
|
|
25
|
+
[chain_js_1.Chain.PolygonzkEVM]: "https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-polygon-zkevm/prod/gn",
|
|
26
|
+
[chain_js_1.Chain.Celo]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/BPaFHyfVrhv3pdjGodpQcWggAg1Bcrvc9SFc2t2BXeho",
|
|
27
|
+
[chain_js_1.Chain.Kava]: "https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-kava/prod/gn",
|
|
28
|
+
[chain_js_1.Chain.Linea]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-linea/prod/gn",
|
|
29
|
+
[chain_js_1.Chain.Scroll]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/822PfgbgBzC98Huwf37uxvF9YGZMA5nDeETpstkR55Sn",
|
|
30
|
+
[chain_js_1.Chain.Manta]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-manta/prod/gn",
|
|
31
|
+
[chain_js_1.Chain.Astar]: "https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-astar/prod/gn",
|
|
32
|
+
[chain_js_1.Chain.Fantom]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/9uyX2WDuaxmcYh11ehUhU68M9uSCp5FXVQV2w4LqbpbV",
|
|
33
|
+
[chain_js_1.Chain.OkxTestnet]: "https://subgraph.steer.finance/steer-x1-testnet/subgraphs/name/steerprotocol/steer-okxtestnet",
|
|
34
|
+
[chain_js_1.Chain.Mantle]: "https://subgraph-api.mantle.xyz/subgraphs/name/steerprotocol/steer-protocol-mantle",
|
|
35
|
+
[chain_js_1.Chain.AstarZkevm]: "https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-astar-zkevm/1.1.1/gn",
|
|
36
|
+
[chain_js_1.Chain.Blast]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-blast/prod/gn",
|
|
37
|
+
[chain_js_1.Chain.Mode]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-mode/prod/gn",
|
|
38
|
+
[chain_js_1.Chain.Telos]: "https://telos.api.ormilabs.com/api/public/39892398-bfdd-48ac-b776-77ad8a5b4b9e/subgraphs/steer-protocol-telos/prod/gn",
|
|
39
|
+
[chain_js_1.Chain.XLayer]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/8gCrUHrVS9rHwvDPLTn4Wz6od68ULb7azYuQz25JjRK3",
|
|
40
|
+
[chain_js_1.Chain.Taiko]: "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-taiko/prod/gn",
|
|
41
|
+
[chain_js_1.Chain.Rootstock]: "https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/H3pANqbMVTiFCUXHjXYr2mHbXvn5my5o66Gxbwcg7Aqm",
|
|
42
|
+
[chain_js_1.Chain.ZklinkNova]: "https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-zklink-nova/1.0.1/gn",
|
|
43
|
+
[chain_js_1.Chain.Flare]: "https://api.goldsky.com/api/public/project_cm2k9xbkz4qg901vs51bm5uau/subgraphs/steer-protocol-flare/prod/gn",
|
|
44
|
+
[chain_js_1.Chain.BeraChainBartio]: 'https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-berachain-bartio/prod/gn',
|
|
45
|
+
[chain_js_1.Chain.Filecoin]: 'https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-filecoin/prod/gn',
|
|
46
|
+
[chain_js_1.Chain.Apechain]: 'https://apeapi.0xgraph.xyz/api/public/4ea21b03-9850-4796-8068-ec71bbe022db/subgraphs/steer-protocol-apechain/prod/gn',
|
|
47
|
+
[chain_js_1.Chain.Zircuit]: 'https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-zircuit/prod/gn',
|
|
48
|
+
[chain_js_1.Chain.Moonbeam]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/4D2pLLQuGsAkdZAUgqxxnk4Mcu3aMjEV1HJ2F63kC7w6',
|
|
49
|
+
[chain_js_1.Chain.Sei]: 'https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-sei/prod/gn',
|
|
50
|
+
[chain_js_1.Chain.Sonic]: 'https://api.0xgraph.xyz/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-sonic/prod/gn',
|
|
51
|
+
[chain_js_1.Chain.Zeta]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/HFH41DyzAXxYmT5eszVWn2T7UxViMroPJ4XJV8vhDGNN',
|
|
52
|
+
[chain_js_1.Chain.Mainnet]: 'https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-mainnet/prod/gn',
|
|
53
|
+
[chain_js_1.Chain.Soneium]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/8gCrUHrVS9rHwvDPLTn4Wz6od68ULb7azYuQz25JjRK3',
|
|
54
|
+
[chain_js_1.Chain.Bera]: 'https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-bera/prod/gn',
|
|
55
|
+
[chain_js_1.Chain.Unichain]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/EoLK36f26Dr7maXyNKxJmEBJkoYVCMh1d4ENtT5hJgyB',
|
|
56
|
+
[chain_js_1.Chain.Hemi]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/2eACJtEGuELqN5roUiHG1jqmCpXt5aimcc8xZdvtMv4z',
|
|
57
|
+
[chain_js_1.Chain.TataraTestnet]: 'https://api.studio.thegraph.com/query/78728/steer-protocol-tatara-testnet/version/latest',
|
|
58
|
+
[chain_js_1.Chain.Core]: 'https://thegraph.coredao.org/subgraphs/name/steer-protocol-core',
|
|
59
|
+
[chain_js_1.Chain.Peaq]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/45pjWAnAXULpS6UDajzCtLcZYuohwuMm4UuSDjegMKAT',
|
|
60
|
+
[chain_js_1.Chain.Katana]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/D6CST1Az8c8KvMf8ktcEcWds89YVQxbKG6v8yo7FAzzM',
|
|
61
|
+
[chain_js_1.Chain.Ronin]: 'https://subgraph-proxy-server-xf2uthetka-as.a.run.app/gateway-arbitrum/793Lz5oiK51wdm9kCLtHqunkAPk2qjg7denpCrHqrLcA',
|
|
62
|
+
[chain_js_1.Chain.Saga]: 'https://api.goldsky.com/api/public/project_clohj3ta78ok12nzs5m8yag0b/subgraphs/steer-protocol-saga-evm/prod/gn',
|
|
63
|
+
[chain_js_1.Chain.Nibiru]: 'https://app.sentio.xyz//api/v1/graphql/rakesh/steer-protocol-nibiru',
|
|
64
|
+
[chain_js_1.Chain.Hyperevm]: 'https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-hyperevm/prod/gn'
|
|
61
65
|
};
|
|
62
66
|
/**
|
|
63
67
|
* Retrieves the subgraph URL for a given chain ID.
|
|
@@ -70,16 +74,16 @@ export const steerSubgraphConfig = {
|
|
|
70
74
|
* // Returns the Ethereum mainnet subgraph URL
|
|
71
75
|
* ```
|
|
72
76
|
*/
|
|
73
|
-
|
|
77
|
+
function getSubgraphUrlByChainId(chainId) {
|
|
74
78
|
// Convert chainId to Chain enum value using ChainId enum
|
|
75
|
-
const [chainName] = Object.entries(ChainId).find(([, id]) => Number(id) === chainId) || [];
|
|
79
|
+
const [chainName] = Object.entries(chain_js_1.ChainId).find(([, id]) => Number(id) === chainId) || [];
|
|
76
80
|
if (!chainName)
|
|
77
81
|
return undefined;
|
|
78
82
|
// Get the Chain enum value
|
|
79
|
-
const chain = Chain[chainName];
|
|
83
|
+
const chain = chain_js_1.Chain[chainName];
|
|
80
84
|
if (!chain)
|
|
81
85
|
return undefined;
|
|
82
86
|
// Return the subgraph URL from steerSubgraphConfig
|
|
83
|
-
return steerSubgraphConfig[chain];
|
|
87
|
+
return exports.steerSubgraphConfig[chain];
|
|
84
88
|
}
|
|
85
89
|
//# sourceMappingURL=subgraph.js.map
|