@steerprotocol/sdk 1.30.4 → 1.30.6
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 +2 -2
- 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,9 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getAmmConfig = void 0;
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
const blackhole_1 = require("./protocols/blackhole");
|
|
4
|
+
const index_js_1 = require("./protocols/index.js");
|
|
5
|
+
const blackhole_js_1 = require("./protocols/blackhole.js");
|
|
7
6
|
const beam_js_1 = require("./protocols/beam.js");
|
|
8
7
|
const beamswap_js_1 = require("./protocols/beamswap.js");
|
|
9
8
|
const camelot_js_1 = require("./protocols/camelot.js");
|
|
@@ -41,34 +40,34 @@ const getAmmConfig = (theGraphApiKey) => {
|
|
|
41
40
|
Uniswap: (0, uniswap_js_1.uniswapConfig)(theGraphApiKey),
|
|
42
41
|
Sushi: (0, sushi_js_1.sushiConfig)(theGraphApiKey),
|
|
43
42
|
PancakeSwap: (0, pancakeswap_js_1.pancakeSwapConfig)(theGraphApiKey),
|
|
44
|
-
QuickSwapIntegral: (0,
|
|
43
|
+
QuickSwapIntegral: (0, index_js_1.quickSwapIntegralConfig)(theGraphApiKey),
|
|
45
44
|
Forge: (0, forge_js_1.forgeConfig)(),
|
|
46
|
-
BaseSwap: (0,
|
|
47
|
-
QuickSwapUniv3: (0,
|
|
48
|
-
BaseX: (0,
|
|
45
|
+
BaseSwap: (0, index_js_1.baseSwapConfig)(),
|
|
46
|
+
QuickSwapUniv3: (0, index_js_1.quickSwapUniv3Config)(),
|
|
47
|
+
BaseX: (0, index_js_1.basexConfig)(),
|
|
49
48
|
Thick: (0, thick_js_1.thickConfig)(theGraphApiKey),
|
|
50
49
|
ThickV2: (0, thickv2_js_1.thickv2Config)(),
|
|
51
|
-
Crust: (0,
|
|
52
|
-
Thruster: (0,
|
|
53
|
-
FusionX: (0,
|
|
54
|
-
Kim: (0,
|
|
55
|
-
SupSwap: (0,
|
|
56
|
-
SwapMode: (0,
|
|
57
|
-
QuickSwapAlgebra: (0,
|
|
58
|
-
PoolShark: (0,
|
|
59
|
-
Swapsicle: (0,
|
|
60
|
-
Equilibre: (0,
|
|
61
|
-
Fenix: (0,
|
|
62
|
-
LineHub: (0,
|
|
63
|
-
Henjin: (0,
|
|
64
|
-
NovaSwap: (0,
|
|
65
|
-
Spark32: (0,
|
|
66
|
-
Spark: (0,
|
|
50
|
+
Crust: (0, index_js_1.crustConfig)(),
|
|
51
|
+
Thruster: (0, index_js_1.thrusterConfig)(),
|
|
52
|
+
FusionX: (0, index_js_1.fusionxConfig)(),
|
|
53
|
+
Kim: (0, index_js_1.kimConfig)(),
|
|
54
|
+
SupSwap: (0, index_js_1.supswapConfig)(),
|
|
55
|
+
SwapMode: (0, index_js_1.swapmodeConfig)(),
|
|
56
|
+
QuickSwapAlgebra: (0, index_js_1.quickSwapAlgebraConfig)(),
|
|
57
|
+
PoolShark: (0, index_js_1.poolsharkConfig)(),
|
|
58
|
+
Swapsicle: (0, index_js_1.swapsicleConfig)(),
|
|
59
|
+
Equilibre: (0, index_js_1.equilibreConfig)(),
|
|
60
|
+
Fenix: (0, index_js_1.fenixConfig)(),
|
|
61
|
+
LineHub: (0, index_js_1.linehubConfig)(),
|
|
62
|
+
Henjin: (0, index_js_1.henjinConfig)(),
|
|
63
|
+
NovaSwap: (0, index_js_1.novaswapConfig)(),
|
|
64
|
+
Spark32: (0, index_js_1.spark32Config)(),
|
|
65
|
+
Spark: (0, index_js_1.sparkConfig)(),
|
|
67
66
|
Thena: (0, thena_js_1.thenaConfig)(),
|
|
68
|
-
Lynex: (0,
|
|
69
|
-
Maia: (0,
|
|
70
|
-
Retro: (0,
|
|
71
|
-
Horiza: (0,
|
|
67
|
+
Lynex: (0, index_js_1.lynexConfig)(),
|
|
68
|
+
Maia: (0, index_js_1.maiaConfig)(),
|
|
69
|
+
Retro: (0, index_js_1.retroConfig)(),
|
|
70
|
+
Horiza: (0, index_js_1.horizaConfig)(),
|
|
72
71
|
Kodiak: (0, kodiak_js_1.kodiakConfig)(),
|
|
73
72
|
Ocelex: (0, ocelex_js_1.ocelexConfig)(),
|
|
74
73
|
StellaSwap: (0, stellaswap_js_1.stellaswapConfig)(theGraphApiKey),
|
|
@@ -82,17 +81,17 @@ const getAmmConfig = (theGraphApiKey) => {
|
|
|
82
81
|
Wasabee: (0, wasabee_js_1.wasabeeConfig)(),
|
|
83
82
|
Eddy: (0, eddy_js_1.eddyConfig)(),
|
|
84
83
|
Dodo: (0, dodo_js_1.dodoConfig)(),
|
|
85
|
-
Hercules: (0,
|
|
86
|
-
Kinetix: (0,
|
|
87
|
-
MetaVault: (0,
|
|
84
|
+
Hercules: (0, index_js_1.herculesConfig)(),
|
|
85
|
+
Kinetix: (0, index_js_1.kinetixConfig)(),
|
|
86
|
+
MetaVault: (0, index_js_1.metaVaultConfig)(),
|
|
88
87
|
Camelot: (0, camelot_js_1.camelotConfig)(),
|
|
89
|
-
ArthSwap: (0,
|
|
90
|
-
Glyph: (0,
|
|
88
|
+
ArthSwap: (0, index_js_1.arthswapConfig)(),
|
|
89
|
+
Glyph: (0, index_js_1.glyphConfig)(),
|
|
91
90
|
Katana: (0, katana_js_1.katanaConfig)(),
|
|
92
|
-
Shadow: (0,
|
|
91
|
+
Shadow: (0, index_js_1.shadowConfig)(theGraphApiKey),
|
|
93
92
|
MachineX: (0, machinex_js_1.machinexConfig)(theGraphApiKey),
|
|
94
93
|
KatanaIntegral: (0, katanaIntegral_js_1.katanaIntegralConfig)(),
|
|
95
|
-
Blackhole: (0,
|
|
94
|
+
Blackhole: (0, blackhole_js_1.blackholeConfig)(),
|
|
96
95
|
Aerodrome: (0, aerodrome_js_1.aerodromeConfig)(theGraphApiKey),
|
|
97
96
|
AerodromeV2: (0, aerodrome_v2_js_1.aerodromeV2Config)(theGraphApiKey),
|
|
98
97
|
Nest: (0, nest_js_1.nestVaultConfig)(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ammConfig.js","sourceRoot":"","sources":["../../../../../src/const/amm/configs/ammConfig.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"ammConfig.js","sourceRoot":"","sources":["../../../../../src/const/amm/configs/ammConfig.ts"],"names":[],"mappings":"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","sourcesContent":["import { AMMConfigType } from '../../../types.js';\nimport {\n arthswapConfig,\n baseSwapConfig,\n basexConfig,\n crustConfig,\n equilibreConfig,\n fenixConfig,\n fusionxConfig,\n glyphConfig,\n henjinConfig,\n herculesConfig,\n horizaConfig,\n kinetixConfig,\n kimConfig,\n linehubConfig,\n lynexConfig,\n maiaConfig,\n metaVaultConfig,\n novaswapConfig,\n poolsharkConfig,\n quickSwapAlgebraConfig,\n quickSwapIntegralConfig,\n quickSwapUniv3Config,\n retroConfig,\n spark32Config,\n sparkConfig,\n supswapConfig,\n swapmodeConfig,\n swapsicleConfig,\n thrusterConfig,\n shadowConfig,\n} from './protocols/index.js';\nimport { blackholeConfig } from './protocols/blackhole.js';\nimport { beamConfig } from './protocols/beam.js';\nimport { beamswapConfig } from './protocols/beamswap.js';\nimport { camelotConfig } from './protocols/camelot.js';\nimport { dodoConfig } from './protocols/dodo.js';\nimport { dragonswapConfig } from './protocols/dragonswap.js';\nimport { eddyConfig } from './protocols/eddy.js';\nimport { forgeConfig } from './protocols/forge.js';\nimport { katanaConfig } from './protocols/katana.js';\nimport { kodiakConfig } from './protocols/kodiak.js';\nimport { kyoConfig } from './protocols/kyo.js';\nimport { ocelexConfig } from './protocols/ocelex.js';\nimport { pancakeSwapConfig } from './protocols/pancakeswap.js';\nimport { quickSwapConfig } from './protocols/quickswap.js';\nimport { sailorConfig } from './protocols/sailor.js';\nimport { silverswapConfig } from './protocols/silverswap.js';\nimport { spookyswapConfig } from './protocols/spookyswap.js';\nimport { stellaswapConfig } from './protocols/stellaswap.js';\nimport { sushiConfig } from './protocols/sushi.js';\nimport { thenaConfig } from './protocols/thena.js';\nimport { thickConfig } from './protocols/thick.js';\nimport { thickv2Config } from './protocols/thickv2.js';\nimport { uniswapConfig } from './protocols/uniswap.js';\nimport { wasabeeConfig } from './protocols/wasabee.js';\nimport { machinexConfig } from './protocols/machinex.js';\nimport { katanaIntegralConfig } from './protocols/katanaIntegral.js';\n// import { blackholeConfig } from './protocols/blackhole.js';\nimport { aerodromeConfig } from './protocols/aerodrome.js';\nimport { aerodromeV2Config } from './protocols/aerodrome-v2.js';\nimport { nestVaultConfig } from './protocols/nest.js';\nimport { cypherConfig } from './protocols/cypher.js';\nimport { sparkIntegralConfig } from './protocols/spark-integral.js';\n\nexport const getAmmConfig = (theGraphApiKey: string): AMMConfigType => {\n return {\n QuickSwap: quickSwapConfig(theGraphApiKey),\n Uniswap: uniswapConfig(theGraphApiKey),\n Sushi: sushiConfig(theGraphApiKey),\n PancakeSwap: pancakeSwapConfig(theGraphApiKey),\n QuickSwapIntegral: quickSwapIntegralConfig(theGraphApiKey),\n Forge: forgeConfig(),\n BaseSwap: baseSwapConfig(),\n QuickSwapUniv3: quickSwapUniv3Config(),\n BaseX: basexConfig(),\n Thick: thickConfig(theGraphApiKey),\n ThickV2: thickv2Config(),\n Crust: crustConfig(),\n Thruster: thrusterConfig(),\n FusionX: fusionxConfig(),\n Kim: kimConfig(),\n SupSwap: supswapConfig(),\n SwapMode: swapmodeConfig(),\n QuickSwapAlgebra: quickSwapAlgebraConfig(),\n PoolShark: poolsharkConfig(),\n Swapsicle: swapsicleConfig(),\n Equilibre: equilibreConfig(),\n Fenix: fenixConfig(),\n LineHub: linehubConfig(),\n Henjin: henjinConfig(),\n NovaSwap: novaswapConfig(),\n Spark32: spark32Config(),\n Spark: sparkConfig(),\n Thena: thenaConfig(),\n Lynex: lynexConfig(),\n Maia: maiaConfig(),\n Retro: retroConfig(),\n Horiza: horizaConfig(),\n Kodiak: kodiakConfig(),\n Ocelex: ocelexConfig(),\n StellaSwap: stellaswapConfig(theGraphApiKey),\n BeamSwap: beamswapConfig(),\n DragonSwap: dragonswapConfig(),\n SpookySwap: spookyswapConfig(),\n SilverSwap: silverswapConfig(theGraphApiKey),\n Beam: beamConfig(),\n Kyo: kyoConfig(theGraphApiKey),\n Sailor: sailorConfig(),\n Wasabee: wasabeeConfig(),\n Eddy: eddyConfig(),\n Dodo: dodoConfig(),\n Hercules: herculesConfig(),\n Kinetix: kinetixConfig(),\n MetaVault: metaVaultConfig(),\n Camelot: camelotConfig(),\n ArthSwap: arthswapConfig(),\n Glyph: glyphConfig(),\n Katana: katanaConfig(),\n Shadow: shadowConfig(theGraphApiKey),\n MachineX: machinexConfig(theGraphApiKey),\n KatanaIntegral: katanaIntegralConfig(),\n Blackhole: blackholeConfig(),\n Aerodrome: aerodromeConfig(theGraphApiKey),\n AerodromeV2: aerodromeV2Config(theGraphApiKey),\n Nest: nestVaultConfig(),\n Cypher: cypherConfig(theGraphApiKey),\n SparkIntegral: sparkIntegralConfig(),\n };\n}; "]}
|
|
@@ -14,45 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./arthswap"), exports);
|
|
18
|
-
__exportStar(require("./baseswap"), exports);
|
|
19
|
-
__exportStar(require("./basex"), exports);
|
|
20
|
-
__exportStar(require("./camelot"), exports);
|
|
21
|
-
__exportStar(require("./crust"), exports);
|
|
22
|
-
__exportStar(require("./equilibre"), exports);
|
|
23
|
-
__exportStar(require("./fenix"), exports);
|
|
24
|
-
__exportStar(require("./forge"), exports);
|
|
25
|
-
__exportStar(require("./fusionx"), exports);
|
|
26
|
-
__exportStar(require("./henjin"), exports);
|
|
27
|
-
__exportStar(require("./hercules"), exports);
|
|
28
|
-
__exportStar(require("./horiza"), exports);
|
|
29
|
-
__exportStar(require("./kim"), exports);
|
|
30
|
-
__exportStar(require("./linehub"), exports);
|
|
31
|
-
__exportStar(require("./lynex"), exports);
|
|
32
|
-
__exportStar(require("./maia"), exports);
|
|
33
|
-
__exportStar(require("./metavault"), exports);
|
|
34
|
-
__exportStar(require("./novaswap"), exports);
|
|
35
|
-
__exportStar(require("./pancakeswap"), exports);
|
|
36
|
-
__exportStar(require("./poolshark"), exports);
|
|
37
|
-
__exportStar(require("./quickswap"), exports);
|
|
38
|
-
__exportStar(require("./quickswap-algebra"), exports);
|
|
39
|
-
__exportStar(require("./quickswap-integral"), exports);
|
|
40
|
-
__exportStar(require("./quickswap-univ3"), exports);
|
|
41
|
-
__exportStar(require("./retro"), exports);
|
|
42
|
-
__exportStar(require("./spark"), exports);
|
|
43
|
-
__exportStar(require("./spark32"), exports);
|
|
44
|
-
__exportStar(require("./supswap"), exports);
|
|
45
|
-
__exportStar(require("./swapmode"), exports);
|
|
46
|
-
__exportStar(require("./swapsicle"), exports);
|
|
47
|
-
__exportStar(require("./sushi"), exports);
|
|
48
|
-
__exportStar(require("./thena"), exports);
|
|
49
|
-
__exportStar(require("./thick"), exports);
|
|
50
|
-
__exportStar(require("./thruster"), exports);
|
|
51
|
-
__exportStar(require("./uniswap"), exports);
|
|
52
|
-
__exportStar(require("./kinetix"), exports);
|
|
53
|
-
__exportStar(require("./glyph"), exports);
|
|
54
|
-
__exportStar(require("./katana"), exports);
|
|
55
|
-
__exportStar(require("./shadow"), exports);
|
|
56
17
|
__exportStar(require("./arthswap.js"), exports);
|
|
57
18
|
__exportStar(require("./baseswap.js"), exports);
|
|
58
19
|
__exportStar(require("./basex.js"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/const/amm/configs/protocols/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/const/amm/configs/protocols/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,gDAA8B;AAC9B,6CAA2B;AAC3B,+CAA6B;AAC7B,6CAA2B;AAC3B,iDAA+B;AAC/B,6CAA2B;AAC3B,6CAA2B;AAC3B,+CAA6B;AAC7B,8CAA4B;AAC5B,gDAA8B;AAC9B,8CAA4B;AAC5B,2CAAyB;AACzB,+CAA6B;AAC7B,6CAA2B;AAC3B,4CAA0B;AAC1B,iDAA+B;AAC/B,gDAA8B;AAC9B,mDAAiC;AACjC,iDAA+B;AAC/B,iDAA+B;AAC/B,yDAAuC;AACvC,0DAAwC;AACxC,uDAAqC;AACrC,6CAA2B;AAC3B,6CAA2B;AAC3B,+CAA6B;AAC7B,+CAA6B;AAC7B,gDAA8B;AAC9B,iDAA+B;AAC/B,6CAA2B;AAC3B,6CAA2B;AAC3B,6CAA2B;AAC3B,gDAA8B;AAC9B,+CAA6B;AAC7B,+CAA6B;AAC7B,6CAA2B;AAC3B,8CAA4B;AAC5B,8CAA4B;AAC5B,4CAA0B","sourcesContent":["export * from './arthswap.js';\nexport * from './baseswap.js';\nexport * from './basex.js';\nexport * from './camelot.js';\nexport * from './crust.js';\nexport * from './equilibre.js';\nexport * from './fenix.js';\nexport * from './forge.js';\nexport * from './fusionx.js';\nexport * from './henjin.js';\nexport * from './hercules.js';\nexport * from './horiza.js';\nexport * from './kim.js';\nexport * from './linehub.js';\nexport * from './lynex.js';\nexport * from './maia.js';\nexport * from './metavault.js';\nexport * from './novaswap.js';\nexport * from './pancakeswap.js';\nexport * from './poolshark.js';\nexport * from './quickswap.js';\nexport * from './quickswap-algebra.js';\nexport * from './quickswap-integral.js';\nexport * from './quickswap-univ3.js';\nexport * from './retro.js';\nexport * from './spark.js';\nexport * from './spark32.js';\nexport * from './supswap.js';\nexport * from './swapmode.js';\nexport * from './swapsicle.js';\nexport * from './sushi.js';\nexport * from './thena.js';\nexport * from './thick.js';\nexport * from './thruster.js';\nexport * from './uniswap.js';\nexport * from './kinetix.js';\nexport * from './glyph.js';\nexport * from './katana.js';\nexport * from './shadow.js';\nexport * from './nest.js';\n"]}
|
|
@@ -14,5 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./stabilityVaultsConfig"), exports);
|
|
17
|
+
__exportStar(require("./stabilityVaultsConfig.js"), exports);
|
|
18
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,8 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FeeManagerClient = void 0;
|
|
4
|
+
const viem_1 = require("viem");
|
|
5
|
+
const feeManager_js_1 = require("../const/abis/feeManager.js");
|
|
6
|
+
const vaultFees_js_1 = require("../const/abis/vaultFees.js");
|
|
7
|
+
const SubgraphClient_js_1 = require("./SubgraphClient.js");
|
|
8
|
+
class FeeManagerClient extends SubgraphClient_js_1.SubgraphClient {
|
|
6
9
|
constructor(feeManagerAddress, publicClient, walletClient) {
|
|
7
10
|
super(publicClient);
|
|
8
11
|
this.publicClient = publicClient;
|
|
@@ -21,7 +24,7 @@ export class FeeManagerClient extends SubgraphClient {
|
|
|
21
24
|
try {
|
|
22
25
|
const fees = await this.publicClient.readContract({
|
|
23
26
|
address: this.feeManagerAddress,
|
|
24
|
-
abi: FEE_MANAGER_ABI,
|
|
27
|
+
abi: feeManager_js_1.FEE_MANAGER_ABI,
|
|
25
28
|
functionName: 'getFees',
|
|
26
29
|
args: [vault],
|
|
27
30
|
});
|
|
@@ -44,7 +47,7 @@ export class FeeManagerClient extends SubgraphClient {
|
|
|
44
47
|
try {
|
|
45
48
|
const totalFees = await this.publicClient.readContract({
|
|
46
49
|
address: this.feeManagerAddress,
|
|
47
|
-
abi: FEE_MANAGER_ABI,
|
|
50
|
+
abi: feeManager_js_1.FEE_MANAGER_ABI,
|
|
48
51
|
functionName: 'vaultTotalFees',
|
|
49
52
|
args: [vault],
|
|
50
53
|
});
|
|
@@ -67,7 +70,7 @@ export class FeeManagerClient extends SubgraphClient {
|
|
|
67
70
|
try {
|
|
68
71
|
const withdrawer = await this.publicClient.readContract({
|
|
69
72
|
address: this.feeManagerAddress,
|
|
70
|
-
abi: FEE_MANAGER_ABI,
|
|
73
|
+
abi: feeManager_js_1.FEE_MANAGER_ABI,
|
|
71
74
|
functionName: 'withdrawalPermissions',
|
|
72
75
|
args: [vault, feeIdentifier],
|
|
73
76
|
});
|
|
@@ -94,11 +97,11 @@ export class FeeManagerClient extends SubgraphClient {
|
|
|
94
97
|
}
|
|
95
98
|
const owner = await this.publicClient.readContract({
|
|
96
99
|
address: this.feeManagerAddress,
|
|
97
|
-
abi: FEE_MANAGER_ABI,
|
|
100
|
+
abi: feeManager_js_1.FEE_MANAGER_ABI,
|
|
98
101
|
functionName: 'owner',
|
|
99
102
|
});
|
|
100
103
|
return {
|
|
101
|
-
data: isAddressEqual(owner, accounts[0]),
|
|
104
|
+
data: (0, viem_1.isAddressEqual)(owner, accounts[0]),
|
|
102
105
|
status: 200,
|
|
103
106
|
success: true,
|
|
104
107
|
};
|
|
@@ -120,12 +123,12 @@ export class FeeManagerClient extends SubgraphClient {
|
|
|
120
123
|
}
|
|
121
124
|
const withdrawer = await this.publicClient.readContract({
|
|
122
125
|
address: this.feeManagerAddress,
|
|
123
|
-
abi: FEE_MANAGER_ABI,
|
|
126
|
+
abi: feeManager_js_1.FEE_MANAGER_ABI,
|
|
124
127
|
functionName: 'withdrawalPermissions',
|
|
125
128
|
args: [vault, feeIdentifier],
|
|
126
129
|
});
|
|
127
130
|
return {
|
|
128
|
-
data: isAddressEqual(withdrawer, accounts[0]),
|
|
131
|
+
data: (0, viem_1.isAddressEqual)(withdrawer, accounts[0]),
|
|
129
132
|
status: 200,
|
|
130
133
|
success: true,
|
|
131
134
|
};
|
|
@@ -168,7 +171,7 @@ export class FeeManagerClient extends SubgraphClient {
|
|
|
168
171
|
}
|
|
169
172
|
const { request } = await this.publicClient.simulateContract({
|
|
170
173
|
address: this.feeManagerAddress,
|
|
171
|
-
abi: FEE_MANAGER_ABI,
|
|
174
|
+
abi: feeManager_js_1.FEE_MANAGER_ABI,
|
|
172
175
|
functionName: 'setFeeAndWithdrawalPermission',
|
|
173
176
|
args: [params.vault, params.feeIdentifiers, params.feeValues, params.withdrawers],
|
|
174
177
|
account: accounts[0],
|
|
@@ -218,7 +221,7 @@ export class FeeManagerClient extends SubgraphClient {
|
|
|
218
221
|
}
|
|
219
222
|
const { request } = await this.publicClient.simulateContract({
|
|
220
223
|
address: this.feeManagerAddress,
|
|
221
|
-
abi: FEE_MANAGER_ABI,
|
|
224
|
+
abi: feeManager_js_1.FEE_MANAGER_ABI,
|
|
222
225
|
functionName: 'setDefaultFeeAndWithdrawalPermission',
|
|
223
226
|
args: [
|
|
224
227
|
params.vault,
|
|
@@ -265,7 +268,7 @@ export class FeeManagerClient extends SubgraphClient {
|
|
|
265
268
|
}
|
|
266
269
|
const { request } = await this.publicClient.simulateContract({
|
|
267
270
|
address: this.feeManagerAddress,
|
|
268
|
-
abi: FEE_MANAGER_ABI,
|
|
271
|
+
abi: feeManager_js_1.FEE_MANAGER_ABI,
|
|
269
272
|
functionName: 'setMigratedVaultFeeAndWithdrawalPermission',
|
|
270
273
|
args: [],
|
|
271
274
|
account: accounts[0],
|
|
@@ -306,7 +309,7 @@ export class FeeManagerClient extends SubgraphClient {
|
|
|
306
309
|
}
|
|
307
310
|
const { request } = await this.publicClient.simulateContract({
|
|
308
311
|
address: this.feeManagerAddress,
|
|
309
|
-
abi: FEE_MANAGER_ABI,
|
|
312
|
+
abi: feeManager_js_1.FEE_MANAGER_ABI,
|
|
310
313
|
functionName: 'setTotalFees',
|
|
311
314
|
args: [vault, newTotalFees],
|
|
312
315
|
account: accounts[0],
|
|
@@ -347,7 +350,7 @@ export class FeeManagerClient extends SubgraphClient {
|
|
|
347
350
|
}
|
|
348
351
|
const { request } = await this.publicClient.simulateContract({
|
|
349
352
|
address: this.feeManagerAddress,
|
|
350
|
-
abi: FEE_MANAGER_ABI,
|
|
353
|
+
abi: feeManager_js_1.FEE_MANAGER_ABI,
|
|
351
354
|
functionName: 'changeFeeWithdrawer',
|
|
352
355
|
args: [vault, feeIdentifier, newWithdrawer],
|
|
353
356
|
account: accounts[0],
|
|
@@ -388,7 +391,7 @@ export class FeeManagerClient extends SubgraphClient {
|
|
|
388
391
|
}
|
|
389
392
|
const { request } = await this.publicClient.simulateContract({
|
|
390
393
|
address: this.feeManagerAddress,
|
|
391
|
-
abi: FEE_MANAGER_ABI,
|
|
394
|
+
abi: feeManager_js_1.FEE_MANAGER_ABI,
|
|
392
395
|
functionName: 'withdrawFee',
|
|
393
396
|
args: [params.vault, params.feeIdentifier, params.amount0, params.amount1],
|
|
394
397
|
account: accounts[0],
|
|
@@ -440,7 +443,7 @@ export class FeeManagerClient extends SubgraphClient {
|
|
|
440
443
|
}
|
|
441
444
|
const { request } = await this.publicClient.simulateContract({
|
|
442
445
|
address: this.feeManagerAddress,
|
|
443
|
-
abi: FEE_MANAGER_ABI,
|
|
446
|
+
abi: feeManager_js_1.FEE_MANAGER_ABI,
|
|
444
447
|
functionName: 'withdrawMultipleFees',
|
|
445
448
|
args: [params.vault, params.feeIdentifiers, params.amounts0, params.amounts1],
|
|
446
449
|
account: accounts[0],
|
|
@@ -507,7 +510,7 @@ export class FeeManagerClient extends SubgraphClient {
|
|
|
507
510
|
}
|
|
508
511
|
const { request } = await this.publicClient.simulateContract({
|
|
509
512
|
address: this.feeManagerAddress,
|
|
510
|
-
abi: FEE_MANAGER_ABI,
|
|
513
|
+
abi: feeManager_js_1.FEE_MANAGER_ABI,
|
|
511
514
|
functionName: 'withdrawFeesFromMultipleVaults',
|
|
512
515
|
args: [params.vaults, params.feeIdentifiers, params.amounts0, params.amounts1],
|
|
513
516
|
account: accounts[0],
|
|
@@ -539,13 +542,13 @@ export class FeeManagerClient extends SubgraphClient {
|
|
|
539
542
|
const [amount0, amount1] = await Promise.all([
|
|
540
543
|
this.publicClient.readContract({
|
|
541
544
|
address: vault,
|
|
542
|
-
abi: VAULT_FEES_ABI,
|
|
545
|
+
abi: vaultFees_js_1.VAULT_FEES_ABI,
|
|
543
546
|
functionName: 'accruedFees0',
|
|
544
547
|
args: [feeIdentifier],
|
|
545
548
|
}),
|
|
546
549
|
this.publicClient.readContract({
|
|
547
550
|
address: vault,
|
|
548
|
-
abi: VAULT_FEES_ABI,
|
|
551
|
+
abi: vaultFees_js_1.VAULT_FEES_ABI,
|
|
549
552
|
functionName: 'accruedFees1',
|
|
550
553
|
args: [feeIdentifier],
|
|
551
554
|
}),
|
|
@@ -600,4 +603,5 @@ export class FeeManagerClient extends SubgraphClient {
|
|
|
600
603
|
}
|
|
601
604
|
}
|
|
602
605
|
}
|
|
606
|
+
exports.FeeManagerClient = FeeManagerClient;
|
|
603
607
|
//# sourceMappingURL=FeeManagerClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeeManagerClient.js","sourceRoot":"","sources":["../../../src/base/FeeManagerClient.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n type Address,\n type Hash,\n type PublicClient,\n type WalletClient,\n isAddressEqual,\n} from 'viem';\nimport type {\n DefaultFeeManagerConfigParams,\n Fee,\n FeeManagerConfigParams,\n FeeWithdrawalParams,\n MultipleFeeWithdrawalParams,\n MultiVaultFeeWithdrawalParams,\n SteerResponse,\n} from '../types.js';\nimport { FEE_MANAGER_ABI } from '../const/abis/feeManager.js';\nimport { VAULT_FEES_ABI } from '../const/abis/vaultFees.js';\nimport { SubgraphClient } from './SubgraphClient.js';\n\nexport class FeeManagerClient extends SubgraphClient {\n protected readonly publicClient: PublicClient;\n protected readonly walletClient: WalletClient;\n protected feeManagerAddress: Address;\n\n public constructor(\n feeManagerAddress: Address,\n publicClient: PublicClient,\n walletClient: WalletClient\n ) {\n super(publicClient as PublicClient & WalletClient);\n this.publicClient = publicClient;\n this.walletClient = walletClient;\n this.feeManagerAddress = feeManagerAddress;\n }\n\n /**\n * Overrides the FeeManager contract address.\n * Useful when deployment addresses are not yet hardcoded or need custom targeting.\n * @param address The new FeeManager contract address\n */\n public setFeeManagerAddress(address: Address): void {\n this.feeManagerAddress = address;\n }\n\n public async getFees(vault: Address): Promise<SteerResponse<Fee[]>> {\n try {\n const fees = await this.publicClient.readContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'getFees',\n args: [vault],\n });\n\n return {\n data: fees as Fee[],\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async getTotalFees(vault: Address): Promise<SteerResponse<bigint>> {\n try {\n const totalFees = await this.publicClient.readContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'vaultTotalFees',\n args: [vault],\n });\n\n return {\n data: totalFees as bigint,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async getWithdrawer(\n vault: Address,\n feeIdentifier: string\n ): Promise<SteerResponse<Address>> {\n try {\n const withdrawer = await this.publicClient.readContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'withdrawalPermissions',\n args: [vault, feeIdentifier],\n });\n\n return {\n data: withdrawer as Address,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async validateAdminPermission(): Promise<SteerResponse<boolean>> {\n try {\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const owner = await this.publicClient.readContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'owner',\n });\n\n return {\n data: isAddressEqual(owner as Address, accounts[0]),\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async validateWithdrawerPermission(\n vault: Address,\n feeIdentifier: string\n ): Promise<SteerResponse<boolean>> {\n try {\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const withdrawer = await this.publicClient.readContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'withdrawalPermissions',\n args: [vault, feeIdentifier],\n });\n\n return {\n data: isAddressEqual(withdrawer as Address, accounts[0]),\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async setFeeAndWithdrawalPermission(\n params: FeeManagerConfigParams\n ): Promise<SteerResponse<Hash>> {\n try {\n if (\n params.feeIdentifiers.length !== params.feeValues.length ||\n params.feeIdentifiers.length !== params.withdrawers.length\n ) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'feeIdentifiers, feeValues, and withdrawers must have the same length',\n };\n }\n\n const isAdmin = await this.validateAdminPermission();\n if (!isAdmin.success) {\n throw new Error(isAdmin.error ?? 'Unknown error occurred');\n }\n if (!isAdmin.data) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'Caller is not FeeManager owner',\n };\n }\n\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const { request } = await this.publicClient.simulateContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'setFeeAndWithdrawalPermission',\n args: [params.vault, params.feeIdentifiers, params.feeValues, params.withdrawers],\n account: accounts[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async setDefaultFeeAndWithdrawalPermission(\n params: DefaultFeeManagerConfigParams\n ): Promise<SteerResponse<Hash>> {\n try {\n if (\n params.feeIdentifiers.length !== params.feeValues.length ||\n params.feeIdentifiers.length !== params.withdrawers.length\n ) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'feeIdentifiers, feeValues, and withdrawers must have the same length',\n };\n }\n\n const isAdmin = await this.validateAdminPermission();\n if (!isAdmin.success) {\n throw new Error(isAdmin.error ?? 'Unknown error occurred');\n }\n if (!isAdmin.data) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'Caller is not FeeManager owner',\n };\n }\n\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const { request } = await this.publicClient.simulateContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'setDefaultFeeAndWithdrawalPermission',\n args: [\n params.vault,\n params.totalVaultFees,\n params.feeIdentifiers,\n params.feeValues,\n params.withdrawers,\n ],\n account: accounts[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async setMigratedVaultFeeAndWithdrawalPermission(): Promise<SteerResponse<Hash>> {\n try {\n const isAdmin = await this.validateAdminPermission();\n if (!isAdmin.success) {\n throw new Error(isAdmin.error ?? 'Unknown error occurred');\n }\n if (!isAdmin.data) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'Caller is not FeeManager owner',\n };\n }\n\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const { request } = await this.publicClient.simulateContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'setMigratedVaultFeeAndWithdrawalPermission',\n args: [],\n account: accounts[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async setTotalFees(vault: Address, newTotalFees: bigint): Promise<SteerResponse<Hash>> {\n try {\n const isAdmin = await this.validateAdminPermission();\n if (!isAdmin.success) {\n throw new Error(isAdmin.error ?? 'Unknown error occurred');\n }\n if (!isAdmin.data) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'Caller is not FeeManager owner',\n };\n }\n\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const { request } = await this.publicClient.simulateContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'setTotalFees',\n args: [vault, newTotalFees],\n account: accounts[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async changeFeeWithdrawer(\n vault: Address,\n feeIdentifier: string,\n newWithdrawer: Address\n ): Promise<SteerResponse<Hash>> {\n try {\n const isAdmin = await this.validateAdminPermission();\n if (!isAdmin.success) {\n throw new Error(isAdmin.error ?? 'Unknown error occurred');\n }\n if (!isAdmin.data) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'Caller is not FeeManager owner',\n };\n }\n\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const { request } = await this.publicClient.simulateContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'changeFeeWithdrawer',\n args: [vault, feeIdentifier, newWithdrawer],\n account: accounts[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async withdrawFee(params: FeeWithdrawalParams): Promise<SteerResponse<Hash>> {\n try {\n const canWithdraw = await this.validateWithdrawerPermission(\n params.vault,\n params.feeIdentifier\n );\n if (!canWithdraw.success) {\n throw new Error(canWithdraw.error ?? 'Unknown error occurred');\n }\n if (!canWithdraw.data) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'Caller is not authorized withdrawer',\n };\n }\n\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const { request } = await this.publicClient.simulateContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'withdrawFee',\n args: [params.vault, params.feeIdentifier, params.amount0, params.amount1],\n account: accounts[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async withdrawMultipleFees(\n params: MultipleFeeWithdrawalParams\n ): Promise<SteerResponse<Hash>> {\n try {\n if (\n params.feeIdentifiers.length !== params.amounts0.length ||\n params.feeIdentifiers.length !== params.amounts1.length\n ) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'feeIdentifiers, amounts0, and amounts1 must have the same length',\n };\n }\n\n for (const feeIdentifier of params.feeIdentifiers) {\n const canWithdraw = await this.validateWithdrawerPermission(params.vault, feeIdentifier);\n if (!canWithdraw.success) {\n throw new Error(canWithdraw.error ?? 'Unknown error occurred');\n }\n if (!canWithdraw.data) {\n return {\n data: null,\n status: 400,\n success: false,\n error: `Caller is not authorized withdrawer for ${feeIdentifier}`,\n };\n }\n }\n\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const { request } = await this.publicClient.simulateContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'withdrawMultipleFees',\n args: [params.vault, params.feeIdentifiers, params.amounts0, params.amounts1],\n account: accounts[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async withdrawFeesFromMultipleVaults(\n params: MultiVaultFeeWithdrawalParams\n ): Promise<SteerResponse<Hash>> {\n try {\n if (\n params.vaults.length !== params.feeIdentifiers.length ||\n params.vaults.length !== params.amounts0.length ||\n params.vaults.length !== params.amounts1.length\n ) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'vaults, feeIdentifiers, amounts0, and amounts1 must have the same length',\n };\n }\n\n for (let i = 0; i < params.vaults.length; i++) {\n const vault = params.vaults[i];\n const identifiers = params.feeIdentifiers[i];\n const amount0 = params.amounts0[i];\n const amount1 = params.amounts1[i];\n\n if (identifiers.length !== amount0.length || identifiers.length !== amount1.length) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'feeIdentifiers[i], amounts0[i], and amounts1[i] must have the same length',\n };\n }\n\n for (const feeIdentifier of identifiers) {\n const canWithdraw = await this.validateWithdrawerPermission(vault, feeIdentifier);\n if (!canWithdraw.success) {\n throw new Error(canWithdraw.error ?? 'Unknown error occurred');\n }\n if (!canWithdraw.data) {\n return {\n data: null,\n status: 400,\n success: false,\n error: `Caller is not authorized withdrawer for ${feeIdentifier}`,\n };\n }\n }\n }\n\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const { request } = await this.publicClient.simulateContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'withdrawFeesFromMultipleVaults',\n args: [params.vaults, params.feeIdentifiers, params.amounts0, params.amounts1],\n account: accounts[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Gets the accrued revenue for a specific fee identifier in a vault\n * @param vault The vault address\n * @param feeIdentifier The fee identifier (e.g., 'STEER_FEES', 'STRATEGIST_FEES')\n * @returns Promise resolving to the accrued amounts for token0 and token1\n */\n public async getAccruedRevenue(\n vault: Address,\n feeIdentifier: string\n ): Promise<SteerResponse<{ amount0: bigint; amount1: bigint }>> {\n try {\n const [amount0, amount1] = await Promise.all([\n this.publicClient.readContract({\n address: vault,\n abi: VAULT_FEES_ABI,\n functionName: 'accruedFees0',\n args: [feeIdentifier],\n }),\n this.publicClient.readContract({\n address: vault,\n abi: VAULT_FEES_ABI,\n functionName: 'accruedFees1',\n args: [feeIdentifier],\n }),\n ]);\n\n return {\n data: { amount0, amount1 },\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Gets a summary of accrued revenue for all configured fee identifiers in a vault\n * @param vault The vault address\n * @returns Promise resolving to a list of fee identifiers and their accrued amounts\n */\n public async getVaultRevenueSummary(\n vault: Address\n ): Promise<SteerResponse<{ feeIdentifier: string; amount0: bigint; amount1: bigint }[]>> {\n try {\n const feesResponse = await this.getFees(vault);\n if (!feesResponse.success || !feesResponse.data) {\n throw new Error(feesResponse.error || 'Failed to fetch vault fees configuration');\n }\n\n const summary = await Promise.all(\n feesResponse.data.map(async (fee) => {\n const revenue = await this.getAccruedRevenue(vault, fee.feeIdentifier);\n return {\n feeIdentifier: fee.feeIdentifier,\n amount0: revenue.data?.amount0 ?? 0n,\n amount1: revenue.data?.amount1 ?? 0n,\n };\n })\n );\n\n return {\n data: summary,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"FeeManagerClient.js","sourceRoot":"","sources":["../../../src/base/FeeManagerClient.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n type Address,\n type Hash,\n type PublicClient,\n type WalletClient,\n isAddressEqual,\n} from 'viem';\nimport type {\n DefaultFeeManagerConfigParams,\n Fee,\n FeeManagerConfigParams,\n FeeWithdrawalParams,\n MultipleFeeWithdrawalParams,\n MultiVaultFeeWithdrawalParams,\n SteerResponse,\n} from '../types.js';\nimport { FEE_MANAGER_ABI } from '../const/abis/feeManager.js';\nimport { VAULT_FEES_ABI } from '../const/abis/vaultFees.js';\nimport { SubgraphClient } from './SubgraphClient.js';\n\nexport class FeeManagerClient extends SubgraphClient {\n protected readonly publicClient: PublicClient;\n protected readonly walletClient: WalletClient;\n protected feeManagerAddress: Address;\n\n public constructor(\n feeManagerAddress: Address,\n publicClient: PublicClient,\n walletClient: WalletClient\n ) {\n super(publicClient as PublicClient & WalletClient);\n this.publicClient = publicClient;\n this.walletClient = walletClient;\n this.feeManagerAddress = feeManagerAddress;\n }\n\n /**\n * Overrides the FeeManager contract address.\n * Useful when deployment addresses are not yet hardcoded or need custom targeting.\n * @param address The new FeeManager contract address\n */\n public setFeeManagerAddress(address: Address): void {\n this.feeManagerAddress = address;\n }\n\n public async getFees(vault: Address): Promise<SteerResponse<Fee[]>> {\n try {\n const fees = await this.publicClient.readContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'getFees',\n args: [vault],\n });\n\n return {\n data: fees as Fee[],\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async getTotalFees(vault: Address): Promise<SteerResponse<bigint>> {\n try {\n const totalFees = await this.publicClient.readContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'vaultTotalFees',\n args: [vault],\n });\n\n return {\n data: totalFees as bigint,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async getWithdrawer(\n vault: Address,\n feeIdentifier: string\n ): Promise<SteerResponse<Address>> {\n try {\n const withdrawer = await this.publicClient.readContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'withdrawalPermissions',\n args: [vault, feeIdentifier],\n });\n\n return {\n data: withdrawer as Address,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async validateAdminPermission(): Promise<SteerResponse<boolean>> {\n try {\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const owner = await this.publicClient.readContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'owner',\n });\n\n return {\n data: isAddressEqual(owner as Address, accounts[0]),\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async validateWithdrawerPermission(\n vault: Address,\n feeIdentifier: string\n ): Promise<SteerResponse<boolean>> {\n try {\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const withdrawer = await this.publicClient.readContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'withdrawalPermissions',\n args: [vault, feeIdentifier],\n });\n\n return {\n data: isAddressEqual(withdrawer as Address, accounts[0]),\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async setFeeAndWithdrawalPermission(\n params: FeeManagerConfigParams\n ): Promise<SteerResponse<Hash>> {\n try {\n if (\n params.feeIdentifiers.length !== params.feeValues.length ||\n params.feeIdentifiers.length !== params.withdrawers.length\n ) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'feeIdentifiers, feeValues, and withdrawers must have the same length',\n };\n }\n\n const isAdmin = await this.validateAdminPermission();\n if (!isAdmin.success) {\n throw new Error(isAdmin.error ?? 'Unknown error occurred');\n }\n if (!isAdmin.data) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'Caller is not FeeManager owner',\n };\n }\n\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const { request } = await this.publicClient.simulateContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'setFeeAndWithdrawalPermission',\n args: [params.vault, params.feeIdentifiers, params.feeValues, params.withdrawers],\n account: accounts[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async setDefaultFeeAndWithdrawalPermission(\n params: DefaultFeeManagerConfigParams\n ): Promise<SteerResponse<Hash>> {\n try {\n if (\n params.feeIdentifiers.length !== params.feeValues.length ||\n params.feeIdentifiers.length !== params.withdrawers.length\n ) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'feeIdentifiers, feeValues, and withdrawers must have the same length',\n };\n }\n\n const isAdmin = await this.validateAdminPermission();\n if (!isAdmin.success) {\n throw new Error(isAdmin.error ?? 'Unknown error occurred');\n }\n if (!isAdmin.data) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'Caller is not FeeManager owner',\n };\n }\n\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const { request } = await this.publicClient.simulateContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'setDefaultFeeAndWithdrawalPermission',\n args: [\n params.vault,\n params.totalVaultFees,\n params.feeIdentifiers,\n params.feeValues,\n params.withdrawers,\n ],\n account: accounts[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async setMigratedVaultFeeAndWithdrawalPermission(): Promise<SteerResponse<Hash>> {\n try {\n const isAdmin = await this.validateAdminPermission();\n if (!isAdmin.success) {\n throw new Error(isAdmin.error ?? 'Unknown error occurred');\n }\n if (!isAdmin.data) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'Caller is not FeeManager owner',\n };\n }\n\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const { request } = await this.publicClient.simulateContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'setMigratedVaultFeeAndWithdrawalPermission',\n args: [],\n account: accounts[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async setTotalFees(vault: Address, newTotalFees: bigint): Promise<SteerResponse<Hash>> {\n try {\n const isAdmin = await this.validateAdminPermission();\n if (!isAdmin.success) {\n throw new Error(isAdmin.error ?? 'Unknown error occurred');\n }\n if (!isAdmin.data) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'Caller is not FeeManager owner',\n };\n }\n\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const { request } = await this.publicClient.simulateContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'setTotalFees',\n args: [vault, newTotalFees],\n account: accounts[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async changeFeeWithdrawer(\n vault: Address,\n feeIdentifier: string,\n newWithdrawer: Address\n ): Promise<SteerResponse<Hash>> {\n try {\n const isAdmin = await this.validateAdminPermission();\n if (!isAdmin.success) {\n throw new Error(isAdmin.error ?? 'Unknown error occurred');\n }\n if (!isAdmin.data) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'Caller is not FeeManager owner',\n };\n }\n\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const { request } = await this.publicClient.simulateContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'changeFeeWithdrawer',\n args: [vault, feeIdentifier, newWithdrawer],\n account: accounts[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async withdrawFee(params: FeeWithdrawalParams): Promise<SteerResponse<Hash>> {\n try {\n const canWithdraw = await this.validateWithdrawerPermission(\n params.vault,\n params.feeIdentifier\n );\n if (!canWithdraw.success) {\n throw new Error(canWithdraw.error ?? 'Unknown error occurred');\n }\n if (!canWithdraw.data) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'Caller is not authorized withdrawer',\n };\n }\n\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const { request } = await this.publicClient.simulateContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'withdrawFee',\n args: [params.vault, params.feeIdentifier, params.amount0, params.amount1],\n account: accounts[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async withdrawMultipleFees(\n params: MultipleFeeWithdrawalParams\n ): Promise<SteerResponse<Hash>> {\n try {\n if (\n params.feeIdentifiers.length !== params.amounts0.length ||\n params.feeIdentifiers.length !== params.amounts1.length\n ) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'feeIdentifiers, amounts0, and amounts1 must have the same length',\n };\n }\n\n for (const feeIdentifier of params.feeIdentifiers) {\n const canWithdraw = await this.validateWithdrawerPermission(params.vault, feeIdentifier);\n if (!canWithdraw.success) {\n throw new Error(canWithdraw.error ?? 'Unknown error occurred');\n }\n if (!canWithdraw.data) {\n return {\n data: null,\n status: 400,\n success: false,\n error: `Caller is not authorized withdrawer for ${feeIdentifier}`,\n };\n }\n }\n\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const { request } = await this.publicClient.simulateContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'withdrawMultipleFees',\n args: [params.vault, params.feeIdentifiers, params.amounts0, params.amounts1],\n account: accounts[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n public async withdrawFeesFromMultipleVaults(\n params: MultiVaultFeeWithdrawalParams\n ): Promise<SteerResponse<Hash>> {\n try {\n if (\n params.vaults.length !== params.feeIdentifiers.length ||\n params.vaults.length !== params.amounts0.length ||\n params.vaults.length !== params.amounts1.length\n ) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'vaults, feeIdentifiers, amounts0, and amounts1 must have the same length',\n };\n }\n\n for (let i = 0; i < params.vaults.length; i++) {\n const vault = params.vaults[i];\n const identifiers = params.feeIdentifiers[i];\n const amount0 = params.amounts0[i];\n const amount1 = params.amounts1[i];\n\n if (identifiers.length !== amount0.length || identifiers.length !== amount1.length) {\n return {\n data: null,\n status: 400,\n success: false,\n error: 'feeIdentifiers[i], amounts0[i], and amounts1[i] must have the same length',\n };\n }\n\n for (const feeIdentifier of identifiers) {\n const canWithdraw = await this.validateWithdrawerPermission(vault, feeIdentifier);\n if (!canWithdraw.success) {\n throw new Error(canWithdraw.error ?? 'Unknown error occurred');\n }\n if (!canWithdraw.data) {\n return {\n data: null,\n status: 400,\n success: false,\n error: `Caller is not authorized withdrawer for ${feeIdentifier}`,\n };\n }\n }\n }\n\n const accounts = await this.walletClient.getAddresses();\n if (!accounts[0]) {\n throw new Error('No account found');\n }\n\n const { request } = await this.publicClient.simulateContract({\n address: this.feeManagerAddress,\n abi: FEE_MANAGER_ABI,\n functionName: 'withdrawFeesFromMultipleVaults',\n args: [params.vaults, params.feeIdentifiers, params.amounts0, params.amounts1],\n account: accounts[0],\n });\n\n const hash = await this.walletClient.writeContract(request);\n\n return {\n data: hash,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Gets the accrued revenue for a specific fee identifier in a vault\n * @param vault The vault address\n * @param feeIdentifier The fee identifier (e.g., 'STEER_FEES', 'STRATEGIST_FEES')\n * @returns Promise resolving to the accrued amounts for token0 and token1\n */\n public async getAccruedRevenue(\n vault: Address,\n feeIdentifier: string\n ): Promise<SteerResponse<{ amount0: bigint; amount1: bigint }>> {\n try {\n const [amount0, amount1] = await Promise.all([\n this.publicClient.readContract({\n address: vault,\n abi: VAULT_FEES_ABI,\n functionName: 'accruedFees0',\n args: [feeIdentifier],\n }),\n this.publicClient.readContract({\n address: vault,\n abi: VAULT_FEES_ABI,\n functionName: 'accruedFees1',\n args: [feeIdentifier],\n }),\n ]);\n\n return {\n data: { amount0, amount1 },\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n\n /**\n * Gets a summary of accrued revenue for all configured fee identifiers in a vault\n * @param vault The vault address\n * @returns Promise resolving to a list of fee identifiers and their accrued amounts\n */\n public async getVaultRevenueSummary(\n vault: Address\n ): Promise<SteerResponse<{ feeIdentifier: string; amount0: bigint; amount1: bigint }[]>> {\n try {\n const feesResponse = await this.getFees(vault);\n if (!feesResponse.success || !feesResponse.data) {\n throw new Error(feesResponse.error || 'Failed to fetch vault fees configuration');\n }\n\n const summary = await Promise.all(\n feesResponse.data.map(async (fee) => {\n const revenue = await this.getAccruedRevenue(vault, fee.feeIdentifier);\n return {\n feeIdentifier: fee.feeIdentifier,\n amount0: revenue.data?.amount0 ?? 0n,\n amount1: revenue.data?.amount1 ?? 0n,\n };\n })\n );\n\n return {\n data: summary,\n status: 200,\n success: true,\n };\n } catch (error) {\n return {\n data: null,\n status: 500,\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n }\n}\n"]}
|