@berachain/berajs 0.1.2 → 0.2.1
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/{BeraError-D1HS_rbb.d.cts → BeraError-_mQdkanr.d.cts} +35 -10
- package/dist/{BeraError-D1HS_rbb.d.ts → BeraError-_mQdkanr.d.ts} +35 -10
- package/dist/HoneyConfigProvider-CK6mOKFH.d.ts +390 -0
- package/dist/HoneyConfigProvider-Ca3ouozs.d.cts +390 -0
- package/dist/{RequestError-D8AE6xnI.d.cts → RequestError-A8XJ6QR9.d.cts} +1 -1
- package/dist/{RequestError-m4jxyM7D.d.ts → RequestError-Dk97z8rm.d.ts} +1 -1
- package/dist/abi/exports.cjs +2 -0
- package/dist/abi/exports.cjs.map +1 -0
- package/dist/abi/{index.d.cts → exports.d.cts} +12369 -9122
- package/dist/abi/{index.d.ts → exports.d.ts} +12369 -9122
- package/dist/abi/exports.mjs +2 -0
- package/dist/abi/exports.mjs.map +1 -0
- package/dist/actions/exports.cjs +2 -0
- package/dist/actions/exports.cjs.map +1 -0
- package/dist/actions/{index.d.cts → exports.d.cts} +79 -107
- package/dist/actions/{index.d.ts → exports.d.ts} +79 -107
- package/dist/actions/exports.mjs +2 -0
- package/dist/actions/exports.mjs.map +1 -0
- package/dist/chunk-22J3YJDN.cjs +2 -0
- package/dist/chunk-22J3YJDN.cjs.map +1 -0
- package/dist/chunk-2LL3P5PN.mjs +2 -0
- package/dist/chunk-2LL3P5PN.mjs.map +1 -0
- package/dist/chunk-3YXSUBA5.mjs +2 -0
- package/dist/chunk-3YXSUBA5.mjs.map +1 -0
- package/dist/chunk-55L7STYD.mjs +2 -0
- package/dist/chunk-55L7STYD.mjs.map +1 -0
- package/dist/chunk-575OK77P.mjs +2 -0
- package/dist/chunk-575OK77P.mjs.map +1 -0
- package/dist/chunk-6LDOG5RL.cjs +2 -0
- package/dist/chunk-6LDOG5RL.cjs.map +1 -0
- package/dist/chunk-7LNBSOVV.cjs +2 -0
- package/dist/chunk-7LNBSOVV.cjs.map +1 -0
- package/dist/chunk-7SMWQ6SN.mjs +2 -0
- package/dist/chunk-7SMWQ6SN.mjs.map +1 -0
- package/dist/chunk-7WRTK7RJ.mjs +2 -0
- package/dist/chunk-7WRTK7RJ.mjs.map +1 -0
- package/dist/chunk-A4UDYSB6.mjs +4 -0
- package/dist/chunk-A4UDYSB6.mjs.map +1 -0
- package/dist/chunk-AX2YQQFQ.mjs +2 -0
- package/dist/chunk-AX2YQQFQ.mjs.map +1 -0
- package/dist/chunk-C3FHGFLK.mjs +2 -0
- package/dist/chunk-C3FHGFLK.mjs.map +1 -0
- package/dist/chunk-C6ZGUO4H.cjs +2 -0
- package/dist/chunk-C6ZGUO4H.cjs.map +1 -0
- package/dist/chunk-CYKCYPFR.cjs +2 -0
- package/dist/chunk-CYKCYPFR.cjs.map +1 -0
- package/dist/chunk-ECRMUMTA.mjs +2 -0
- package/dist/chunk-ECRMUMTA.mjs.map +1 -0
- package/dist/chunk-F4BKSBEM.mjs +2 -0
- package/dist/chunk-F4BKSBEM.mjs.map +1 -0
- package/dist/chunk-FCWDGE62.cjs +2 -0
- package/dist/chunk-FCWDGE62.cjs.map +1 -0
- package/dist/chunk-FL2N3XHK.cjs +2 -0
- package/dist/chunk-FL2N3XHK.cjs.map +1 -0
- package/dist/chunk-MUCEYO3E.cjs +4 -0
- package/dist/chunk-MUCEYO3E.cjs.map +1 -0
- package/dist/chunk-NAXAZJJY.mjs +2 -0
- package/dist/chunk-NAXAZJJY.mjs.map +1 -0
- package/dist/chunk-OGJMSGB2.mjs +2 -0
- package/dist/chunk-OGJMSGB2.mjs.map +1 -0
- package/dist/chunk-OIYXOKTT.cjs +2 -0
- package/dist/chunk-OIYXOKTT.cjs.map +1 -0
- package/dist/chunk-P2Q7CMUD.cjs +2 -0
- package/dist/chunk-P2Q7CMUD.cjs.map +1 -0
- package/dist/chunk-PKXAW6MO.cjs +2 -0
- package/dist/chunk-PKXAW6MO.cjs.map +1 -0
- package/dist/chunk-Q3SCM6WL.mjs +2 -0
- package/dist/chunk-Q3SCM6WL.mjs.map +1 -0
- package/dist/chunk-SWMJQOH6.cjs +2 -0
- package/dist/chunk-SWMJQOH6.cjs.map +1 -0
- package/dist/chunk-TEBJWAVU.mjs +2 -0
- package/dist/chunk-TEBJWAVU.mjs.map +1 -0
- package/dist/chunk-THATXCJK.mjs +2 -0
- package/dist/chunk-THATXCJK.mjs.map +1 -0
- package/dist/chunk-VP7XUOSI.cjs +2 -0
- package/dist/chunk-VP7XUOSI.cjs.map +1 -0
- package/dist/chunk-VXL2ZZ4X.cjs +2 -0
- package/dist/chunk-VXL2ZZ4X.cjs.map +1 -0
- package/dist/chunk-WRFDB3QJ.cjs +2 -0
- package/dist/chunk-WRFDB3QJ.cjs.map +1 -0
- package/dist/chunk-XNJLSA6P.cjs +2 -0
- package/dist/chunk-XNJLSA6P.cjs.map +1 -0
- package/dist/chunk-YXLFOEZN.mjs +2 -0
- package/dist/chunk-YXLFOEZN.mjs.map +1 -0
- package/dist/chunk-YZV5LKIP.cjs +2 -0
- package/dist/chunk-YZV5LKIP.cjs.map +1 -0
- package/dist/contexts/exports.cjs +2 -0
- package/dist/contexts/exports.cjs.map +1 -0
- package/dist/contexts/{index.d.cts → exports.d.cts} +10 -27
- package/dist/contexts/{index.d.ts → exports.d.ts} +10 -27
- package/dist/contexts/exports.mjs +2 -0
- package/dist/contexts/exports.mjs.map +1 -0
- package/dist/{defaultFlags-V-tJs2K8.d.cts → defaultFlags-d0kPbT0i.d.cts} +1 -1
- package/dist/{defaultFlags-V-tJs2K8.d.ts → defaultFlags-d0kPbT0i.d.ts} +1 -1
- package/dist/dex-C_BB0b0O.d.cts +37 -0
- package/dist/dex-C_BB0b0O.d.ts +37 -0
- package/dist/enum/exports.cjs +2 -0
- package/dist/enum/exports.cjs.map +1 -0
- package/dist/enum/exports.d.cts +23 -0
- package/dist/enum/exports.d.ts +23 -0
- package/dist/enum/exports.mjs +2 -0
- package/dist/enum/exports.mjs.map +1 -0
- package/dist/errors/exports.cjs +2 -0
- package/dist/errors/exports.cjs.map +1 -0
- package/dist/errors/exports.d.cts +408 -0
- package/dist/errors/exports.d.ts +408 -0
- package/dist/errors/exports.mjs +2 -0
- package/dist/{getValidatorQueuedOperatorAddress-Ne2zoiiV.d.ts → getValidatorQueuedOperatorAddress-Dstyaomr.d.cts} +125 -15
- package/dist/{getValidatorQueuedOperatorAddress-9xY2RUGe.d.cts → getValidatorQueuedOperatorAddress-RW4OMcD1.d.ts} +125 -15
- package/dist/global.d-CN6l2b9E.d.cts +473 -0
- package/dist/global.d-wYu8G8IQ.d.ts +473 -0
- package/dist/honey-CYm0RWf4.d.cts +14 -0
- package/dist/honey-CYm0RWf4.d.ts +14 -0
- package/dist/hooks/exports.cjs +4 -0
- package/dist/hooks/exports.cjs.map +1 -0
- package/dist/hooks/{index.d.cts → exports.d.cts} +218 -176
- package/dist/hooks/{index.d.ts → exports.d.ts} +218 -176
- package/dist/hooks/exports.mjs +4 -0
- package/dist/hooks/exports.mjs.map +1 -0
- package/dist/{txnEnum-BQKDfaeH.d.cts → txnEnum-BlBYhNRl.d.cts} +75 -1
- package/dist/{txnEnum-BQKDfaeH.d.ts → txnEnum-BlBYhNRl.d.ts} +75 -1
- package/dist/types/exports.cjs +1 -0
- package/dist/types/exports.cjs.map +1 -0
- package/dist/types/exports.d.cts +57 -0
- package/dist/types/exports.d.ts +57 -0
- package/dist/types/exports.mjs +1 -0
- package/dist/{useHoneySwapState-C-9BV4VB.d.cts → useHoneySwapState-B-vmIP1b.d.cts} +1 -1
- package/dist/{useHoneySwapState-CUY5Sm1b.d.ts → useHoneySwapState-D1DKG_Of.d.ts} +1 -1
- package/dist/utils/exports.cjs +2 -0
- package/dist/utils/exports.cjs.map +1 -0
- package/dist/utils/{index.d.cts → exports.d.cts} +83 -20
- package/dist/utils/{index.d.ts → exports.d.ts} +83 -20
- package/dist/utils/exports.mjs +2 -0
- package/dist/utils/exports.mjs.map +1 -0
- package/package.json +19 -20
- package/src/abi/{index.ts → exports.ts} +3 -0
- package/src/abi/pol/LSTStakerVault.ts +2032 -0
- package/src/abi/utils/openChainErrors.ts +71 -30
- package/src/abi/utils/thirdwebMinimalAccount.ts +616 -0
- package/src/actions/clients/BeraApolloClient.ts +8 -6
- package/src/actions/dex/__tests__/aggregators.unit.test.ts +2 -5
- package/src/actions/dex/aggregators/base.ts +74 -16
- package/src/actions/dex/aggregators/bex.ts +54 -74
- package/src/actions/dex/aggregators/bgt.ts +31 -8
- package/src/actions/dex/aggregators/{enso.ts → enso/enso.ts} +18 -14
- package/src/actions/dex/aggregators/enso/ensoErc4626.debug.test.ts +37 -0
- package/src/actions/dex/aggregators/enso/ensoErc4626.ts +176 -0
- package/src/actions/dex/aggregators/erc4626.ts +122 -0
- package/src/actions/dex/aggregators/fly.ts +59 -53
- package/src/actions/dex/aggregators/haiku.ts +52 -54
- package/src/actions/dex/aggregators/honey.ts +54 -45
- package/src/actions/dex/aggregators/kyberswap.ts +41 -39
- package/src/actions/dex/aggregators/oogabooga.ts +47 -46
- package/src/actions/dex/aggregators/openOcean.ts +51 -46
- package/src/actions/dex/aggregators/wbera.ts +54 -42
- package/src/actions/dex/b-sdk.ts +5 -2
- package/src/actions/dex/getIsTokenExploited.ts +2 -2
- package/src/actions/enso/{zap.ts → getEnsoSwapBundle.ts} +4 -5
- package/src/actions/enso/getEnsoUserTokensWithBalances.debug.test.ts +73 -0
- package/src/actions/enso/{getEnsoUserToken.ts → getEnsoUserTokensWithBalances.ts} +42 -30
- package/src/actions/enso/util.ts +1 -1
- package/src/actions/{index.ts → exports.ts} +5 -0
- package/src/actions/governance/__tests__/checkProposalField.unit.test.ts +1 -1
- package/src/actions/governance/__tests__/getQuorum.integration.test.ts +1 -1
- package/src/actions/governance/checkProposalField.ts +1 -1
- package/src/actions/governance/computeActualStatus.ts +1 -1
- package/src/actions/governance/getBodyErrors.ts +1 -1
- package/src/actions/governance/getDecodedFunctionData.ts +1 -4
- package/src/actions/governance/getProposalDetails.ts +2 -2
- package/src/actions/governance/getProposalFromTx.ts +1 -2
- package/src/actions/governance/getProposalParams.ts +7 -8
- package/src/actions/governance/getQuorum.ts +1 -2
- package/src/actions/honey/getCollateralWeights.ts +1 -1
- package/src/actions/honey/getHoneyCollaterals.ts +1 -0
- package/src/actions/honey/getHoneyVaultsBalance.ts +51 -55
- package/src/actions/honey/getSwapPayload.ts +37 -35
- package/src/actions/honey/tests/pyth.integration.test.ts +0 -1
- package/src/actions/pol/__tests__/getAllValidators.integration.test.ts +1 -1
- package/src/actions/pol/getEarnedStakedBeraVault.ts +31 -0
- package/src/actions/pol/getGlobalData.ts +14 -13
- package/src/actions/pol/getLSTStakeConfig.ts +67 -0
- package/src/actions/pol/getMarkets.ts +1 -1
- package/src/actions/pol/getRewardProofsByValidator.ts +1 -1
- package/src/actions/pol/getRewardVaultIncentives.ts +3 -5
- package/src/actions/pol/getRewardVaults.ts +2 -3
- package/src/actions/pol/getSWBeraVaultMetadata.ts +7 -5
- package/src/actions/pol/getSWBeraWithdrawal.ts +41 -27
- package/src/actions/pol/getStakeWithdrawalCooldown.ts +5 -7
- package/src/actions/pol/getStakingDailyAssets.ts +24 -0
- package/src/actions/pol/getStakingTokenInformation.ts +3 -4
- package/src/actions/pol/getTotalStakedAmount.ts +47 -0
- package/src/actions/pol/getUserClaimableIncentives.ts +1 -1
- package/src/actions/pol/getUserVaults.ts +8 -6
- package/src/actions/pol/getUserVaultsBalance.ts +4 -16
- package/src/actions/prices/getTokenCurrentPrices.ts +8 -3
- package/src/actions/tokens/getAllowances.ts +68 -41
- package/src/actions/tokens/getTokenInformation.ts +4 -1
- package/src/actions/tokens/getTokens.ts +1 -1
- package/src/actions/tokens/getUnderlyingToken.ts +53 -0
- package/src/actions/tokens/getWalletBalances.integration.test.ts +53 -14
- package/src/actions/tokens/getWalletBalances.ts +69 -43
- package/src/actions/transactions/beraWriteContract.integration.test.ts +18 -6
- package/src/actions/transactions/beraWriteContract.ts +3 -3
- package/src/actions/validators/getUserActiveValidators.ts +2 -3
- package/src/actions/validators/getUserBoostsOnValidator.ts +2 -3
- package/src/contexts/BeraFlags/defaultFlags.ts +4 -0
- package/src/contexts/SwrFallback.tsx +13 -3
- package/src/contexts/TokensProvider.tsx +35 -8
- package/src/contexts/block-time-provider.tsx +1 -1
- package/src/contexts/{index.ts → exports.ts} +0 -1
- package/src/data/contracts.ts +17 -2
- package/src/enum/contracts.ts +13 -0
- package/src/enum/dex.ts +29 -0
- package/src/enum/{index.ts → exports.ts} +3 -0
- package/src/enum/governance.ts +61 -0
- package/src/enum/honey.ts +12 -0
- package/src/enum/txnEnum.ts +1 -0
- package/src/errors/BeraError.ts +61 -13
- package/src/errors/BeraMonitoring.ts +66 -0
- package/src/errors/BeraTracing.ts +79 -0
- package/src/errors/BeraTracing.unit.test.ts +198 -0
- package/src/errors/RequestError.ts +29 -3
- package/src/errors/assert.ts +4 -2
- package/src/errors/assert.unit.test.ts +6 -2
- package/src/errors/errorMap.ts +19 -8
- package/src/errors/{index.ts → exports.ts} +7 -0
- package/src/errors/getErrorMessage.ts +67 -9
- package/src/errors/getRevertReason.integration.test.ts +18 -6
- package/src/errors/getRevertReason.ts +41 -2
- package/src/errors/initBeraError.ts +52 -7
- package/src/errors/parseViemError.ts +114 -27
- package/src/errors/severity.ts +12 -0
- package/src/hooks/bend/useGetConvertToAssets.ts +3 -2
- package/src/hooks/dex/useAggregatorsQuotes.ts +126 -365
- package/src/hooks/dex/useAllUserPools.ts +1 -1
- package/src/hooks/dex/useApiPool.ts +1 -1
- package/src/hooks/dex/useCreatePool.ts +6 -5
- package/src/hooks/dex/useExploitedTokens.ts +1 -1
- package/src/hooks/dex/useLiquidityMismatch.ts +2 -5
- package/src/hooks/dex/useLpPosition.ts +21 -20
- package/src/hooks/dex/useMultipleTokenApprovalsWithSlippage.ts +40 -29
- package/src/hooks/dex/usePollPoolCreationRelayerApproval.ts +1 -1
- package/src/hooks/dex/usePoolEvents.ts +1 -1
- package/src/hooks/dex/usePools.ts +1 -1
- package/src/hooks/dex/usePriceImpact.ts +40 -0
- package/src/hooks/dex/useSingleAggregatorQuote.ts +350 -0
- package/src/hooks/enso/useBendZapSupply.ts +216 -0
- package/src/hooks/enso/useEnsoSwapBundle.ts +107 -0
- package/src/hooks/enso/useEnsoUserTokensWithBalances.ts +43 -0
- package/src/hooks/enso/useZapStakeBera.ts +113 -0
- package/src/hooks/{index.ts → exports.ts} +17 -10
- package/src/hooks/governance/useCreateProposal.ts +8 -8
- package/src/hooks/governance/usePollAllProposals.ts +1 -1
- package/src/hooks/governance/usePollProposal.ts +1 -1
- package/src/hooks/governance/usePollProposalThreshold.ts +1 -1
- package/src/hooks/governance/usePollUserDelegates.ts +1 -1
- package/src/hooks/governance/useProposalState.ts +2 -2
- package/src/hooks/honey/useCappedGlobally.ts +2 -1
- package/src/hooks/honey/useCappedRelatively.ts +1 -1
- package/src/hooks/honey/useCollateralWeights.ts +2 -1
- package/src/hooks/honey/useHoneyAlerts.ts +11 -11
- package/src/hooks/honey/useHoneyBalances.ts +7 -3
- package/src/hooks/honey/useHoneyGlobalData.ts +2 -1
- package/src/hooks/honey/useHoneySwapState.ts +2 -1
- package/src/hooks/honey/useHoneyVaultsBalance.ts +1 -1
- package/src/hooks/honey/useIsBadCollateralAsset.ts +2 -1
- package/src/hooks/honey/useIsBasketModeEnabled.ts +1 -1
- package/src/hooks/honey/usePythLatestPrices.ts +1 -1
- package/src/hooks/pol/useOnChainRewardVault.ts +3 -2
- package/src/hooks/pol/usePollGlobalData.ts +1 -1
- package/src/hooks/pol/usePollMarkets.ts +1 -1
- package/src/hooks/pol/useQueuedBeraUnlock.ts +17 -15
- package/src/hooks/pol/useRewardTokenToBeraRate.ts +6 -3
- package/src/hooks/pol/useRewardVault.ts +1 -1
- package/src/hooks/pol/useRewardVaults.ts +1 -1
- package/src/hooks/pol/useSWBeraVaultMetadata.ts +35 -0
- package/src/hooks/pol/useStakedAPR.ts +38 -0
- package/src/hooks/pol/useStakedData.ts +117 -0
- package/src/hooks/pol/useStakedSnapshots.ts +52 -0
- package/src/hooks/pol/useTotalStakedAmount.ts +30 -0
- package/src/hooks/pol/useUserVaultInfo.ts +1 -1
- package/src/hooks/pol/useVaultValidators.ts +1 -1
- package/src/hooks/tokens/useMultipleTokenInformation.ts +15 -6
- package/src/hooks/tokens/usePollAllowances.ts +15 -19
- package/src/hooks/tokens/usePollBalance.ts +8 -4
- package/src/hooks/tokens/usePollWalletBalances.ts +14 -11
- package/src/hooks/tokens/useStakingTokenInformation.ts +2 -1
- package/src/hooks/tokens/useTokenCurrentPrice.ts +4 -2
- package/src/hooks/tokens/useTokenCurrentPrices.ts +92 -13
- package/src/hooks/tokens/useTokenInformation.ts +11 -6
- package/src/hooks/tokens/useTokenPrice.ts +21 -0
- package/src/hooks/tokens/useTokenPrices.ts +133 -0
- package/src/hooks/tokens/useTokens.ts +1 -0
- package/src/hooks/tokens/useUnderlyingAsset.ts +23 -0
- package/src/hooks/useContractWrite/useBeraContractWrite.ts +2 -1
- package/src/hooks/validators/useAllValidators.ts +1 -1
- package/src/hooks/validators/useApiValidator.ts +1 -1
- package/src/hooks/validators/useDailyValidatorBlockStats.ts +1 -1
- package/src/hooks/validators/useManagedValidatorByAccount.ts +1 -1
- package/src/hooks/validators/useManagedValidatorRole.ts +1 -1
- package/src/hooks/validators/useOnChainValidator.ts +1 -1
- package/src/hooks/validators/useStakingPoolBatch.ts +1 -1
- package/src/hooks/validators/useUserActiveValidators.ts +1 -1
- package/src/hooks/validators/useUserBoostsOnValidator.ts +1 -1
- package/src/hooks/validators/useUserClaimableIncentives.ts +8 -8
- package/src/hooks/validators/useValidator.ts +1 -1
- package/src/hooks/validators/useValidatorAnalytics.ts +1 -1
- package/src/hooks/validators/useValidatorCommission.ts +1 -1
- package/src/hooks/validators/useValidatorQueuedCommission.ts +1 -1
- package/src/hooks/validators/useValidatorQueuedOperatorAddress.ts +1 -1
- package/src/hooks/validators/useValidatorQueuedRewardAllocation.ts +1 -1
- package/src/hooks/validators/useValidatorRewardAllocation.ts +1 -1
- package/src/types/{dex.ts → dex.d.ts} +96 -67
- package/src/types/{enso.ts → enso.d.ts} +1 -1
- package/src/types/exports.ts +8 -0
- package/src/types/{global.ts → global.d.ts} +1 -30
- package/src/types/{governance.ts → governance.d.ts} +2 -64
- package/src/types/{honeySwap.ts → honeySwap.d.ts} +1 -13
- package/src/types/{pol.ts → pol.d.ts} +12 -1
- package/src/types/staking.d.ts +22 -0
- package/src/utils/createEmitter.ts +122 -0
- package/src/utils/createEmitter.unit.test.ts +149 -0
- package/src/utils/{index.ts → exports.ts} +3 -2
- package/src/utils/filter.ts +34 -0
- package/src/utils/formatNumber.ts +1 -1
- package/src/utils/formatNumber.unit.test.ts +2 -1
- package/src/utils/formatTokenList.ts +4 -10
- package/src/utils/getHoneySwapMessage.test.ts +1 -2
- package/src/utils/getServerSideClient.ts +4 -5
- package/src/utils/isDifferenceExceedingThreshold.ts +1 -1
- package/src/utils/layerZeroScan.ts +122 -0
- package/src/utils/math.ts +1 -1
- package/src/utils/parseWhiskToken.ts +15 -0
- package/src/utils/poolNamings.ts +1 -1
- package/src/utils/tokens.ts +23 -7
- package/dist/HoneyConfigProvider-6PXZJMSU.d.cts +0 -562
- package/dist/HoneyConfigProvider-CwDFrt02.d.ts +0 -562
- package/dist/abi/index.cjs +0 -2
- package/dist/abi/index.cjs.map +0 -1
- package/dist/abi/index.mjs +0 -2
- package/dist/actions/index.cjs +0 -2
- package/dist/actions/index.cjs.map +0 -1
- package/dist/actions/index.mjs +0 -2
- package/dist/aggregatorsRouter-Cny4B_MB.d.cts +0 -593
- package/dist/aggregatorsRouter-Cny4B_MB.d.ts +0 -593
- package/dist/chunk-22MQVFHP.cjs +0 -2
- package/dist/chunk-22MQVFHP.cjs.map +0 -1
- package/dist/chunk-3TKSVFZ3.mjs +0 -2
- package/dist/chunk-3TKSVFZ3.mjs.map +0 -1
- package/dist/chunk-6VF3RF53.cjs +0 -3
- package/dist/chunk-6VF3RF53.cjs.map +0 -1
- package/dist/chunk-6W22TFYA.mjs +0 -2
- package/dist/chunk-6W22TFYA.mjs.map +0 -1
- package/dist/chunk-AMRJ4B36.mjs +0 -2
- package/dist/chunk-AMRJ4B36.mjs.map +0 -1
- package/dist/chunk-DS2ZDVKU.mjs +0 -2
- package/dist/chunk-DS2ZDVKU.mjs.map +0 -1
- package/dist/chunk-ED43NYSE.cjs +0 -2
- package/dist/chunk-ED43NYSE.cjs.map +0 -1
- package/dist/chunk-EU4WFADK.cjs +0 -2
- package/dist/chunk-EU4WFADK.cjs.map +0 -1
- package/dist/chunk-HCTFDGXL.mjs +0 -2
- package/dist/chunk-HCTFDGXL.mjs.map +0 -1
- package/dist/chunk-IOSYBHKU.mjs +0 -2
- package/dist/chunk-IOSYBHKU.mjs.map +0 -1
- package/dist/chunk-JMKLDDKY.cjs +0 -2
- package/dist/chunk-JMKLDDKY.cjs.map +0 -1
- package/dist/chunk-KMKUXP2S.mjs +0 -3
- package/dist/chunk-KMKUXP2S.mjs.map +0 -1
- package/dist/chunk-OJXJ6CZ4.mjs +0 -4
- package/dist/chunk-OJXJ6CZ4.mjs.map +0 -1
- package/dist/chunk-PHIOKO3A.mjs +0 -2
- package/dist/chunk-PHIOKO3A.mjs.map +0 -1
- package/dist/chunk-QCK474XD.cjs +0 -2
- package/dist/chunk-QCK474XD.cjs.map +0 -1
- package/dist/chunk-REDXXUK7.cjs +0 -2
- package/dist/chunk-REDXXUK7.cjs.map +0 -1
- package/dist/chunk-S74ZMG2G.cjs +0 -2
- package/dist/chunk-S74ZMG2G.cjs.map +0 -1
- package/dist/chunk-TOAXF4YW.cjs +0 -2
- package/dist/chunk-TOAXF4YW.cjs.map +0 -1
- package/dist/chunk-UZ5CB33M.cjs +0 -2
- package/dist/chunk-UZ5CB33M.cjs.map +0 -1
- package/dist/chunk-VYWYJR63.mjs +0 -2
- package/dist/chunk-VYWYJR63.mjs.map +0 -1
- package/dist/chunk-XFPTQMAK.cjs +0 -4
- package/dist/chunk-XFPTQMAK.cjs.map +0 -1
- package/dist/chunk-YK4NINF5.mjs +0 -2
- package/dist/chunk-YK4NINF5.mjs.map +0 -1
- package/dist/contexts/index.cjs +0 -2
- package/dist/contexts/index.cjs.map +0 -1
- package/dist/contexts/index.mjs +0 -2
- package/dist/contexts/index.mjs.map +0 -1
- package/dist/enum/index.cjs +0 -2
- package/dist/enum/index.cjs.map +0 -1
- package/dist/enum/index.d.cts +0 -31
- package/dist/enum/index.d.ts +0 -31
- package/dist/enum/index.mjs +0 -2
- package/dist/enum/index.mjs.map +0 -1
- package/dist/errors/index.cjs +0 -2
- package/dist/errors/index.cjs.map +0 -1
- package/dist/errors/index.d.cts +0 -204
- package/dist/errors/index.d.ts +0 -204
- package/dist/errors/index.mjs +0 -2
- package/dist/errors/index.mjs.map +0 -1
- package/dist/hooks/index.cjs +0 -4
- package/dist/hooks/index.cjs.map +0 -1
- package/dist/hooks/index.mjs +0 -4
- package/dist/hooks/index.mjs.map +0 -1
- package/dist/staking-F9Nx9TKD.d.ts +0 -246
- package/dist/staking-f4BpYH7l.d.cts +0 -246
- package/dist/types/index.cjs +0 -2
- package/dist/types/index.cjs.map +0 -1
- package/dist/types/index.d.cts +0 -56
- package/dist/types/index.d.ts +0 -56
- package/dist/types/index.mjs +0 -2
- package/dist/types/index.mjs.map +0 -1
- package/dist/utils/index.cjs +0 -2
- package/dist/utils/index.cjs.map +0 -1
- package/dist/utils/index.mjs +0 -2
- package/dist/utils/index.mjs.map +0 -1
- package/src/actions/dex/getTransactionCount.ts +0 -29
- package/src/actions/enso/bend.ts +0 -143
- package/src/actions/enso/getEnsoUserToken.debug.test.ts +0 -57
- package/src/contexts/berajsProvider/context.tsx +0 -49
- package/src/contexts/berajsProvider/index.ts +0 -2
- package/src/contexts/berajsProvider/useBeraJs.ts +0 -18
- package/src/hooks/dex/usePollVaultIsPaused.ts +0 -30
- package/src/hooks/enso/useBendTransactionRequests.ts +0 -247
- package/src/hooks/enso/useEnsoZap.ts +0 -166
- package/src/hooks/enso/useZapTransactionRequests.ts +0 -81
- package/src/hooks/pol/useEarnedStakedBeraVault.ts +0 -59
- package/src/hooks/pol/useStakedBeraSnapshots.ts +0 -27
- package/src/hooks/transactions/TransactionStoreContext.tsx +0 -59
- package/src/hooks/transactions/transactionStore.ts +0 -275
- package/src/hooks/transactions/transactionStore.unit.test.ts +0 -508
- package/src/hooks/transactions/useAddRecentTransaction.ts +0 -29
- package/src/hooks/transactions/useRecentTransactions.ts +0 -27
- package/src/hooks/validators/validatorRoleManager.ts +0 -0
- package/src/types/index.ts +0 -8
- package/src/types/staking.ts +0 -7
- package/src/utils/formatAggregatorsQuotes.ts +0 -57
- package/src/utils/formatAggregatorsQuotes.unit.test.ts +0 -191
- package/src/utils/sentryBeforeSend.ts +0 -52
- /package/dist/{abi/index.mjs.map → errors/exports.mjs.map} +0 -0
- /package/dist/{actions/index.mjs.map → types/exports.mjs.map} +0 -0
- /package/src/actions/dex/{__tests__ → aggregators}/haiku.integration.test.ts +0 -0
- /package/src/types/{bribe-boost.ts → bribe-boost.d.ts} +0 -0
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } async function _asyncNullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return await rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } async function _asyncOptionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = await fn(value); } else if (op === 'call' || op === 'optionalCall') { value = await fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class; var _class2; var _class3; var _class4; var _class5; var _class6; var _class7; var _class8; var _class9; var _class10; var _class11; var _class12;var _chunkCYKCYPFRcjs = require('../chunk-CYKCYPFR.cjs');var _chunkMUCEYO3Ecjs = require('../chunk-MUCEYO3E.cjs');var _chunkVP7XUOSIcjs = require('../chunk-VP7XUOSI.cjs');var _chunkYZV5LKIPcjs = require('../chunk-YZV5LKIP.cjs');var _chunkFCWDGE62cjs = require('../chunk-FCWDGE62.cjs');require('../chunk-OIYXOKTT.cjs');require('../chunk-SWMJQOH6.cjs');require('../chunk-WRFDB3QJ.cjs');require('../chunk-XNJLSA6P.cjs');var _chunk6LDOG5RLcjs = require('../chunk-6LDOG5RL.cjs');var _chunk7LNBSOVVcjs = require('../chunk-7LNBSOVV.cjs');var _chunkP2Q7CMUDcjs = require('../chunk-P2Q7CMUD.cjs');var _chunkPKXAW6MOcjs = require('../chunk-PKXAW6MO.cjs');require('../chunk-VXL2ZZ4X.cjs');var _chunk22J3YJDNcjs = require('../chunk-22J3YJDN.cjs');var _chunkC6ZGUO4Hcjs = require('../chunk-C6ZGUO4H.cjs');var _swr = require('swr'); var _swr2 = _interopRequireDefault(_swr);var _hooks = require('@berachain/wagmi/hooks');var Gr=({sharesAmount:e,vaultAddress:t,vaultChainId:r},o)=>{let s=_hooks.usePublicClient.call(void 0, {chainId:r}),a=_swr2.default.call(void 0, s&&e&&t?["useGetConvertToAssets",e,t,r]:null,async([i,n,l])=>(_chunk7LNBSOVVcjs.c.call(void 0, s),_chunkMUCEYO3Ecjs.a.call(void 0, {sharesAmount:n,vaultAddress:l,publicClient:s})),{..._optionalChain([o, 'optionalAccess', _2 => _2.opts])});return{...a,refresh:()=>{a.mutate()}}};var _react = require('react');var _viem = require('viem');var _internal = require('@berachain/config/internal');var _berancersdk = require('@berachain-foundation/berancer-sdk');var _config = require('@berachain/config');var Rs=300,ws=.05,Ge=_berancersdk.SwapKind.GivenIn,Fe= (_class =class extends _chunkMUCEYO3Ecjs.e{constructor(...args2) { super(...args2); _class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);_class.prototype.__init4.call(this); }__init() {this.name="Hub Pools"}__init2() {this.supportedChains=[_internal.ChainId.MAINNET,_internal.ChainId.BEPOLIA]}__init3() {this.url=_config.getUriFromLink.call(void 0, this.config.api)}__init4() {this.type="graphql"}convertZeroToWrapped(t){return _chunk22J3YJDNcjs.e.call(void 0, t,"BERA")?this.config.tokens.wbera:t}calculatePriceImpact(t){return t.error?(console.error("Swap price impact error",t),0):Number(t.priceImpact)}checkStalePrices({onChainAmount:t,sorPaths:r,sorAmount:o,queryData:s}){let a=Number.parseFloat(_viem.formatEther.call(void 0, t.scale18))/Number.parseFloat(o);if(Math.abs(1-a)>ws){console.warn("SOR returned stale prices. Delta from return amount is more than 5%",{deltaFromSorAmount:a});let i=new (0, _chunkC6ZGUO4Hcjs.f)({reason:"SOR_STALE_PRICES",level:"warning",message:"SOR returned stale prices. Delta from return amount is more than 5%",extra:{deltaFromSorAmount:a,pools:r.map(n=>n.pools),onChainAmount:_viem.formatEther.call(void 0, t.scale18),sorAmount:o,queryData:s},fingerprint:["SOR_STALE_PRICES"]});_chunk7LNBSOVVcjs.f.captureException(i)}}async getQuote(t){let r=new (0, _chunkMUCEYO3Ecjs.f)(this.url,this.chainId),{tokenIn:o,tokenOut:s,amount:a,slippage:i,account:n=_viem.zeroAddress,publicClient:l}=t;this.assertChainSupport({tokenIn:o,tokenOut:s}),_chunk7LNBSOVVcjs.c.call(void 0, l);let u=_chunk22J3YJDNcjs.e.call(void 0, o,"BERA")||_chunk22J3YJDNcjs.e.call(void 0, s,"BERA"),m=new (0, _berancersdk.Token)(this.chainId,this.convertZeroToWrapped(o.address),o.decimals),p=new (0, _berancersdk.Token)(this.chainId,this.convertZeroToWrapped(s.address),s.decimals),c=_berancersdk.TokenAmount.fromRawAmount(m,a),{paths:d,priceImpact:f,returnAmount:y}=await r.sorSwapPaths.fetchSorSwapPaths({chainId:this.chainId,tokenIn:m.address,tokenOut:p.address,swapKind:Ge,swapAmount:c});if(!_optionalChain([d, 'optionalAccess', _3 => _3.length]))throw new (0, _chunkC6ZGUO4Hcjs.g)({response:void 0,endpoint:{url:this.url,name:this.name,type:this.type},reason:_chunkMUCEYO3Ecjs.e.PATH_NOT_FOUND_REASON,chainId:this.chainId,payload:{tokenIn:m.address,tokenOut:p.address,swapKind:Ge,swapAmount:c},message:"No swap paths returned from Balancer API"});let A=new (0, _berancersdk.Swap)({chainId:this.chainId,paths:d,swapKind:Ge,userData:"0x"}),R=await A.query(l.transport.url);if(!("expectedAmountOut"in R))throw new Error("No Bex paths found");return this.checkStalePrices({onChainAmount:R.expectedAmountOut,sorPaths:d,sorAmount:y,queryData:t}),{amountOut:R.expectedAmountOut.amount.toString(),amountIn:a,allowanceRequirements:this.parseAllowanceRequirements({tokenIn:o,rawAmount:a,spender:R.to}),name:this.name,priceImpactPercentage:this.calculatePriceImpact(f),swapFeeBps:0,getCalldata:({account:w})=>{let b=A.buildCall({slippage:_berancersdk.Slippage.fromPercentage(i.toString()),deadline:BigInt(Math.round(Date.now()/1e3)+Rs),queryOutput:R,sender:w,recipient:w,wethIsEth:u}),{args:C,functionName:P}=_viem.decodeFunctionData.call(void 0, {abi:_chunkVP7XUOSIcjs.b,data:b.callData});return{params:C,functionName:P,abi:_chunkVP7XUOSIcjs.b,address:b.to,value:b.value||BigInt(0)}}}}}, _class),Ke=new Fe;var qe= (_class2 =class extends _chunkMUCEYO3Ecjs.e{constructor(...args3) { super(...args3); _class2.prototype.__init5.call(this);_class2.prototype.__init6.call(this);_class2.prototype.__init7.call(this); }__init5() {this.name="RedeemBgt"}__init6() {this.supportedChains=[_internal.ChainId.MAINNET,_internal.ChainId.BEPOLIA]}__init7() {this.type="rpc"}checkChainSupport({tokenIn:t,tokenOut:r}){return super.checkChainSupport({tokenIn:t,tokenOut:r})?t.chainId===r.chainId&&_chunk22J3YJDNcjs.e.call(void 0, t,"BGT",{chainId:t.chainId})&&_chunk22J3YJDNcjs.e.call(void 0, r,"BERA"):!1}async getQuote({tokenIn:t,amount:r}){if(this.assertChainSupport({tokenIn:t,tokenOut:{..._chunk22J3YJDNcjs.b,chainId:t.chainId}}),!_chunk22J3YJDNcjs.e.call(void 0, t,"BGT",{config:this.config}))throw new (0, _chunkC6ZGUO4Hcjs.h)({property:"tokenIn",value:t,expected:"BGT",level:"warning"});return{amountOut:r,amountIn:r,allowanceRequirements:[],name:"RedeemBgt",isNativeSwap:!0,swapFeeBps:0}}}, _class2),zr=new qe;var $e= (_class3 =class extends _chunkMUCEYO3Ecjs.e{constructor(...args4) { super(...args4); _class3.prototype.__init8.call(this);_class3.prototype.__init9.call(this);_class3.prototype.__init10.call(this);_class3.prototype.__init11.call(this);_class3.prototype.__init12.call(this); }__init8() {this.name="Enso"}__init9() {this.supportedChains=[_internal.ChainId.MAINNET]}__init10() {this.type="rest"}__init11() {this.needsAccountForQuote=!0}__init12() {this.notFoundMessages=["Could not build shortcuts for route","Could not quote shortcuts for route","Swap not found for a required underlying of defi route,","No route found from"]}async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:s,account:a=_viem.zeroAddress,aggregatorsFeeBps:i,proxyAggregatorsThroughVercel:n=!1,rewardVault:l}){this.assertChainSupport({tokenIn:t,tokenOut:r});let{tokenInAddress:u,tokenOutAddress:m,isTokenInNative:p,isTokenOutNative:c}=this.parseAddresses(t.address,r.address),d=this.getAmountAfterFees(o,i);this.url=n?"/api/aggregators?aggregator=enso":`${this.config.bex.aggregatorsProxyUrl}/enso/api/v1/shortcuts/route?`;let f=new URL(this.url);f.searchParams.set("fromAddress",this.config.bex.aggregatorsRouterExecutor),f.searchParams.set("receiver",this.config.bex.aggregatorsRouterExecutor),f.searchParams.set("spender",this.config.bex.aggregatorsRouterExecutor),f.searchParams.set("amountIn",d),f.searchParams.set("tokenIn",u),f.searchParams.set("tokenOut",m),f.searchParams.set("chainId",_internal.ChainId.MAINNET.toString()),f.searchParams.set("slippage",(Number(s)*100).toString()),f.searchParams.set("refundReceiver",a);let A=await(await this.fetch(f)).json(),R=this.getInputData({tokenIn:u,amountIn:o,isNative:p}),w={tokenOut:m,receiver:a,minAmountOut:this.getMinAmountOut(A.amountOut.toString(),s),isNative:c},b={aggregator:_optionalChain([A, 'access', _4 => _4.tx, 'optionalAccess', _5 => _5.to]),data:_optionalChain([A, 'access', _6 => _6.tx, 'optionalAccess', _7 => _7.data])};return{amountOut:A.amountOut.toString(),amountIn:o,allowanceRequirements:this.parseAllowanceRequirements({tokenIn:t,rawAmount:o,spender:this.config.bex.aggregatorsRouter}),name:this.name,swapFeeBps:i,getCalldata:()=>({params:[R,w,b,{rewardVault:_nullishCoalesce(l, () => (_viem.zeroAddress)),isSwapAndStake:!!l}],functionName:"swap",abi:_chunkCYKCYPFRcjs.a,value:BigInt(p?o:"0"),address:this.config.bex.aggregatorsRouter})}}}, _class3),ze=new $e;var Ze= (_class4 =class extends _chunkMUCEYO3Ecjs.e{constructor(...args5) { super(...args5); _class4.prototype.__init13.call(this);_class4.prototype.__init14.call(this);_class4.prototype.__init15.call(this); }__init13() {this.name="Mint"}__init14() {this.supportedChains=null}__init15() {this.type="rpc"}checkChainSupport({tokenIn:t,tokenOut:r,underlyingToken:o}){return super.checkChainSupport({tokenIn:t,tokenOut:r,underlyingToken:o})&&!!o&&_optionalChain([o, 'optionalAccess', _8 => _8.chainId])===r.chainId&&(_chunk22J3YJDNcjs.e.call(void 0, o,t)||_chunk22J3YJDNcjs.e.call(void 0, t,"BERA")&&_chunk22J3YJDNcjs.e.call(void 0, r,"SWBERA"))}async getQuote({tokenIn:t,tokenOut:r,amount:o,underlyingToken:s,publicClient:a}){this.assertChainSupport({tokenIn:t,tokenOut:r,underlyingToken:s}),_chunk7LNBSOVVcjs.b.call(void 0, s,"underlyingToken"),_chunk7LNBSOVVcjs.c.call(void 0, a);let i=await a.readContract({address:r.address,abi:_viem.erc4626Abi,functionName:"convertToShares",args:[BigInt(o)]}),n=_chunk22J3YJDNcjs.e.call(void 0, r,"SWBERA")&&_chunk22J3YJDNcjs.e.call(void 0, t,"BERA");return{amountOut:i.toString(),amountIn:o,allowanceRequirements:n?[]:[{token:t,spender:r.address,amount:{raw:o,formatted:_viem.formatUnits.call(void 0, BigInt(o),t.decimals)}}],name:"Mint",isNativeSwap:!1,swapFeeBps:0,getCalldata:({account:l})=>n?{abi:_chunkVP7XUOSIcjs.m,address:r.address,functionName:"depositNative",params:[BigInt(o),l],value:BigInt(o)}:{abi:_viem.erc4626Abi,address:r.address,functionName:"deposit",contractName:"others.erc4626",params:[BigInt(o),l],value:0n}}}}, _class4),je=new Ze;var Xr="https://api.fly.trade/aggregator",Je= (_class5 =class extends _chunkMUCEYO3Ecjs.e{constructor(...args6) { super(...args6); _class5.prototype.__init16.call(this);_class5.prototype.__init17.call(this);_class5.prototype.__init18.call(this);_class5.prototype.__init19.call(this); }__init16() {this.name="Fly"}__init17() {this.supportedChains=[_internal.ChainId.MAINNET]}__init18() {this.type="rest"}__init19() {this.notFoundMessages=["Couldn't recognize to token","Couldn't recognize from token","There is not enough liquidity. Amount is too high.","Routes were not found"]}async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:s,account:a,aggregatorsFeeBps:i,rewardVault:n}){this.assertChainSupport({tokenIn:t,tokenOut:r});let{tokenInAddress:l,tokenOutAddress:u,isTokenInNative:m,isTokenOutNative:p}=this.parseAddresses(t.address,r.address),c=this.getAmountAfterFees(o,i),d=new URL(`${Xr}/quote`);this.url=d.toString();let f=new URLSearchParams({fromTokenAddress:l,toTokenAddress:u,sellAmount:c,slippage:(s/100).toString(),gasless:"false",network:"berachain"});f.set("fromAddress",this.config.bex.aggregatorsRouterExecutor),f.set("toAddress",this.config.bex.aggregatorsRouterExecutor),d.search=f.toString();let A=await(await this.fetch(d)).json(),R={amountOut:A.amountOut,amountIn:o,allowanceRequirements:this.parseAllowanceRequirements({tokenIn:t,rawAmount:o,spender:this.config.bex.aggregatorsRouter}),name:this.name,swapFeeBps:_nullishCoalesce(i, () => (0))},w=new URL(`${Xr}/transaction`);this.url=w.toString();let b=new URLSearchParams({quoteId:A.id,estimateGas:"false"});w.search=b.toString();let P=await(await this.fetch(w)).json();return{...R,getCalldata:({account:T})=>{let E=this.getInputData({tokenIn:l,amountIn:o,isNative:m}),B={tokenOut:u,receiver:T,minAmountOut:this.getMinAmountOut(A.amountOut,s),isNative:p},V={aggregator:_optionalChain([P, 'optionalAccess', _9 => _9.to]),data:_optionalChain([P, 'optionalAccess', _10 => _10.data])};return{params:[E,B,V,{rewardVault:_nullishCoalesce(n, () => (_viem.zeroAddress)),isSwapAndStake:!!n}],functionName:"swap",abi:_chunkCYKCYPFRcjs.a,value:_chunk22J3YJDNcjs.e.call(void 0, t,"BERA")?BigInt(o):BigInt("0"),address:this.config.bex.aggregatorsRouter}}}}}, _class5),Xe=new Je;var et= (_class6 =class extends _chunkMUCEYO3Ecjs.e{constructor(...args7) { super(...args7); _class6.prototype.__init20.call(this);_class6.prototype.__init21.call(this);_class6.prototype.__init22.call(this);_class6.prototype.__init23.call(this); }__init20() {this.name="Haiku"}__init21() {this.supportedChains=[_internal.ChainId.MAINNET]}__init22() {this.type="rest"}__init23() {this.notFoundMessages=["token not found","Token is not supported","No route found for the given input or the liquidity is not enough","Invalid input amount. Please ensure the total amount of input is greater than 0.001 USD"]}async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:s,aggregatorsFeeBps:a,proxyAggregatorsThroughVercel:i=!1,referrer:n,rewardVault:l}){if(t.decimals===void 0||r.decimals===void 0)throw new (0, _chunkC6ZGUO4Hcjs.f)({message:"Missing required params",level:"error"});this.assertChainSupport({tokenIn:t,tokenOut:r});let{tokenInAddress:u,tokenOutAddress:m,isTokenInNative:p,isTokenOutNative:c}=this.parseAddresses(t.address,r.address),d=this.getAmountAfterFees(o,a),f={intent:{allowancesMode:"approve",slippage:s/100,receiver:this.config.bex.aggregatorsRouterExecutor,input_positions:{[`bera:${u}`]:_viem.formatUnits.call(void 0, BigInt(d),t.decimals)},target_weights:{[`bera:${m}`]:1}}},y=n==="ZAP"?"zap-haiku":"haiku";this.url=i?"/api/aggregators?aggregator=haikuQuote":`${this.config.bex.aggregatorsProxyUrl}/${y}/v1/quoteIntent`;let R=await(await this.fetch(this.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f)})).json(),w={amountOut:_viem.parseUnits.call(void 0, R.balances[0].amount,r.decimals).toString(),amountIn:o,allowanceRequirements:this.parseAllowanceRequirements({tokenIn:t,rawAmount:o,spender:this.config.bex.aggregatorsRouter}),name:this.name,swapFeeBps:a};this.url=i?"/api/aggregators?aggregator=haikuSolve":`${this.config.bex.aggregatorsProxyUrl}/${y}/v1/solveIntent`;let C=await(await this.fetch(this.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({quoteId:R.quoteId})})).json();return{...w,getCalldata:({account:P})=>{let T=this.getInputData({tokenIn:u,amountIn:o,isNative:p,isPermit2Approval:!0,permit2SpenderAddress:this.config.bex.haikuAgentAddress}),E={tokenOut:m,receiver:P,minAmountOut:this.getMinAmountOut(w.amountOut,s),isNative:c},B={aggregator:C.to,data:C.data};return{params:[T,E,B,{rewardVault:_nullishCoalesce(l, () => (_viem.zeroAddress)),isSwapAndStake:!!l}],functionName:"swap",abi:_chunkCYKCYPFRcjs.a,value:BigInt(p?o:"0"),address:this.config.bex.aggregatorsRouter}}}}}, _class6),tt=new et;function vs(e){return e?"previewMintHoney":"previewRedeemCollaterals"}var rt= (_class7 =class extends _chunkMUCEYO3Ecjs.e{constructor(...args8) { super(...args8); _class7.prototype.__init24.call(this);_class7.prototype.__init25.call(this);_class7.prototype.__init26.call(this);_class7.prototype.__init27.call(this); }__init24() {this.name="Honey"}__init25() {this.supportedChains=[_internal.ChainId.MAINNET]}__init26() {this.type="rpc"}__init27() {this.honeyToken=_chunk22J3YJDNcjs.d.call(void 0, this)}isHoneyNativeSwap({tokenIn:t,tokenOut:r,honeyNativeState:o,...s}){if(!_optionalChain([o, 'optionalAccess', _11 => _11.collateralList]))return!1;let a=_chunk22J3YJDNcjs.e.call(void 0, r,"HONEY",s),i=_chunk22J3YJDNcjs.e.call(void 0, t,"HONEY",s);return!a&&!i?!1:o.collateralList.some(n=>_chunk22J3YJDNcjs.e.call(void 0, n.address,a?t:r))}checkChainSupport({tokenIn:t,tokenOut:r,honeyNativeState:o}){return super.checkChainSupport({tokenIn:t,tokenOut:r})&&t.chainId===r.chainId&&this.isHoneyNativeSwap({tokenIn:t.address,tokenOut:r.address,honeyNativeState:o})}async getQuote({tokenIn:t,tokenOut:r,amount:o,publicClient:s,account:a,honeyNativeState:i}){let{collateralList:n}=_nullishCoalesce(i, () => ({}));if(!n)throw new (0, _chunkC6ZGUO4Hcjs.h)({message:"Invalid Honey Context state",property:"collaterals",value:n,expected:"TokenWithOrder[]"});_chunk7LNBSOVVcjs.c.call(void 0, s),this.assertChainSupport({tokenIn:t,tokenOut:r});let l=_chunk22J3YJDNcjs.e.call(void 0, r,this.honeyToken),u=n,m=n.find(T=>_chunk22J3YJDNcjs.e.call(void 0, T.address,l?t.address:r.address));if(!m)throw new (0, _chunkC6ZGUO4Hcjs.f)({message:"This collateral is not part of the Honey protocol"});let[p,c]=await Promise.all([_chunkMUCEYO3Ecjs.G.call(void 0, {client:s,collateralList:[m]}),_chunkMUCEYO3Ecjs.L.call(void 0, {client:s,isMint:l,collateralList:n,latestPrices:void 0,isPythWrapperEnabled:!1})]);if(!p)throw new (0, _chunkC6ZGUO4Hcjs.f)({message:"Failed to fetch the Honey vault balances"});if(c)return;let d=p[0],f=m.order;u.length>1&&f!==0&&(u.splice(f,1),u.unshift(m));let y=_viem.formatUnits.call(void 0, BigInt(o),l?m.decimals:this.honeyToken.decimals),A={client:s,collateral:m,collateralList:n,amount:y,method:vs(l),latestPrices:void 0,isPythWrapperEnabled:!1},R=await _chunkMUCEYO3Ecjs.F.call(void 0, A);if(!R)throw new (0, _chunkC6ZGUO4Hcjs.f)({message:"Failed to fetch the Honey preview"});let{honey:w,collaterals:b}=R;if(!(l?!0:new (0, _chunkPKXAW6MOcjs.a)(_nullishCoalesce(_optionalChain([d, 'optionalAccess', _12 => _12.balance, 'access', _13 => _13.formatted]), () => ("0"))).gte(_viem.formatUnits.call(void 0, b[m.address],m.decimals))))return;let P=await _chunkMUCEYO3Ecjs.K.call(void 0, {state:{actionType:l?"mint":"redeem",fromAmount:[y],collaterals:u,isBasketModeEnabled:!1},collateralList:u,publicClient:s,priceFeedMap:void 0,isPythWrapperEnabled:!1});if(!P&&a)throw new (0, _chunkC6ZGUO4Hcjs.f)({message:"Failed to fetch the Honey swap payload"});return{amountIn:o,amountOut:l?w.toString():b[m.address].toString(),allowanceRequirements:this.parseAllowanceRequirements({tokenIn:t,rawAmount:o,spender:this.config.bex.aggregatorsRouter}),name:"Honey",swapFeeBps:0,getCalldata:({account:T})=>P({account:T})}}}, _class7),ot=new rt;var st= (_class8 =class extends _chunkMUCEYO3Ecjs.e{constructor(...args9) { super(...args9); _class8.prototype.__init28.call(this);_class8.prototype.__init29.call(this);_class8.prototype.__init30.call(this);_class8.prototype.__init31.call(this); }__init28() {this.name="KyberSwap"}__init29() {this.supportedChains=[_internal.ChainId.MAINNET]}__init30() {this.type="rest"}__init31() {this.notFoundMessages=["token not found","route not found","amountIn is greater than max allowed"]}async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:s,account:a=_viem.zeroAddress,aggregatorsFeeBps:i,proxyAggregatorsThroughVercel:n=!1,rewardVault:l}){this.assertChainSupport({tokenIn:t,tokenOut:r});let{isTokenInNative:u,isTokenOutNative:m,tokenInAddress:p,tokenOutAddress:c}=this.parseAddresses(t.address,r.address),d=this.getAmountAfterFees(o,i);this.url=n?"/api/aggregators?aggregator=kyberswapRoutes":`${this.config.bex.aggregatorsProxyUrl}/kyberswap/berachain/api/v1/routes`;let f=new URL(this.url);f.searchParams.set("tokenIn",p),f.searchParams.set("tokenOut",c),f.searchParams.set("amountIn",d),f.searchParams.set("slippageTolerance",(s/100).toString()),f.searchParams.set("to",this.config.bex.aggregatorsRouterExecutor),f.searchParams.set("clientData",JSON.stringify({source:"berachain"}));let A=await(await this.fetch(f)).json(),R={amountOut:A.data.routeSummary.amountOut,amountIn:o,name:this.name,swapFeeBps:i,allowanceRequirements:this.parseAllowanceRequirements({tokenIn:t,rawAmount:o,spender:this.config.bex.aggregatorsRouter})},w={routeSummary:A.data.routeSummary,sender:this.config.bex.aggregatorsRouterExecutor,recipient:this.config.bex.aggregatorsRouterExecutor,slippageTolerance:s*100,deadline:Math.floor(Date.now()/1e3)+300,source:"berachain"},b=f.searchParams.entries(),C=new URL(n?"/api/aggregators?aggregator=kyberswapBuild":`${this.config.bex.aggregatorsProxyUrl}/kyberswap/berachain/api/v1/route/build`);for(let[B,V]of b)C.searchParams.set(B,V);let T=await(await this.fetch(C,{method:"POST",body:JSON.stringify(w)})).json(),E=this.getInputData({tokenIn:p,amountIn:o,isNative:u});return{...R,getCalldata:({account:B})=>{let V={tokenOut:c,receiver:B,minAmountOut:this.getMinAmountOut(R.amountOut,s),isNative:m},F={aggregator:T.data.routerAddress,data:T.data.data};return{params:[E,V,F,{rewardVault:_nullishCoalesce(l, () => (_viem.zeroAddress)),isSwapAndStake:!!l}],functionName:"swap",abi:_chunkCYKCYPFRcjs.a,value:BigInt(u?o:"0"),address:this.config.bex.aggregatorsRouter}}}}}, _class8),at=new st;var nt= (_class9 =class extends _chunkMUCEYO3Ecjs.e{constructor(...args10) { super(...args10); _class9.prototype.__init32.call(this);_class9.prototype.__init33.call(this);_class9.prototype.__init34.call(this); }__init32() {this.name="Oogabooga"}__init33() {this.supportedChains=[_internal.ChainId.MAINNET]}__init34() {this.type="rest"}async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:s,aggregatorsFeeBps:a,proxyAggregatorsThroughVercel:i=!1,rewardVault:n}){this.assertChainSupport({tokenIn:t,tokenOut:r});let{tokenInAddress:l,tokenOutAddress:u,isTokenInNative:m,isTokenOutNative:p}=this.parseAddresses(t.address,r.address),c=this.getAmountAfterFees(o,a),d=new URLSearchParams({tokenIn:l,tokenOut:u,amount:c,slippage:(s/100).toString(),to:this.config.bex.aggregatorsRouterExecutor,referrer:this.config.bex.aggregatorsRouter});this.url=i?`/api/aggregators?aggregator=oogabooga&${d.toString()}`:`${this.config.bex.aggregatorsProxyUrl}/oogabooga/v1/swap?${d.toString()}`;let y=await(await this.fetch(this.url)).json(),A={amountOut:y.assumedAmountOut,amountIn:o,allowanceRequirements:this.parseAllowanceRequirements({tokenIn:t,spender:this.config.bex.aggregatorsRouter,rawAmount:o}),name:this.name,priceImpactPercentage:y.priceImpact,swapFeeBps:a};return{...A,getCalldata:({account:R})=>{let w=this.getInputData({tokenIn:l,amountIn:o,isNative:m}),b={tokenOut:u,receiver:R,minAmountOut:this.getMinAmountOut(A.amountOut,s),isNative:p},C={aggregator:_optionalChain([y, 'access', _14 => _14.tx, 'optionalAccess', _15 => _15.to]),data:_optionalChain([y, 'access', _16 => _16.tx, 'optionalAccess', _17 => _17.data])};return{params:[w,b,C,{rewardVault:_nullishCoalesce(n, () => (_viem.zeroAddress)),isSwapAndStake:!!n}],functionName:"swap",abi:_chunkCYKCYPFRcjs.a,value:BigInt(m?o:"0"),address:this.config.bex.aggregatorsRouter}}}}}, _class9),it=new nt;var lt= (_class10 =class extends _chunkMUCEYO3Ecjs.e{constructor(...args11) { super(...args11); _class10.prototype.__init35.call(this);_class10.prototype.__init36.call(this);_class10.prototype.__init37.call(this);_class10.prototype.__init38.call(this);_class10.prototype.__init39.call(this); }__init35() {this.name="OpenOcean"}__init36() {this.supportedChains=[_internal.ChainId.MAINNET]}__init37() {this.type="rest"}__init38() {this.url="https://open-api.openocean.finance/v4/bera/swap"}__init39() {this.notFoundMessages=["No avail liquidity for the pair"]}async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:s,account:a=_viem.zeroAddress,aggregatorsFeeBps:i,publicClient:n,rewardVault:l}){if(_chunk7LNBSOVVcjs.c.call(void 0, n),!t.decimals)throw new (0, _chunkC6ZGUO4Hcjs.h)({property:"tokenIn.decimals",value:t.decimals,expected:"number",chainId:this.chainId});this.assertChainSupport({tokenIn:t,tokenOut:r});let u=this.getAmountAfterFees(o,i),{tokenInAddress:m,tokenOutAddress:p,isTokenInNative:c,isTokenOutNative:d}=this.parseAddresses(t.address,r.address),f=(await n.getGasPrice()).toString(),y=new URLSearchParams({chain:_internal.ChainId.MAINNET.toString(),inTokenAddress:m,outTokenAddress:p,amountDecimals:u,slippage:s<.01?"0.01":s.toString(),account:this.config.bex.aggregatorsRouterExecutor,referrer:this.config.bex.aggregatorsRouter,gasPrice:f}),A=await this.fetch(`${this.url}?${y.toString()}`),R=await A.json();if(R.code!==200||!R.data){let b=this.notFoundMessages.some(C=>R.error.includes(C));throw new (0, _chunkC6ZGUO4Hcjs.g)({response:A,endpoint:{url:this.url,name:this.name,type:this.type},cause:R,reason:b?_chunkMUCEYO3Ecjs.e.PATH_NOT_FOUND_REASON:R.error})}let w={amountOut:R.data.outAmount,amountIn:o,allowanceRequirements:this.parseAllowanceRequirements({tokenIn:t,rawAmount:o,spender:this.config.bex.aggregatorsRouter}),name:this.name,swapFeeBps:i};return{...w,getCalldata:({account:b})=>{let C=this.getInputData({tokenIn:m,amountIn:o,isNative:c}),P={tokenOut:p,receiver:b,minAmountOut:this.getMinAmountOut(w.amountOut,s),isNative:d},T={aggregator:R.data.to,data:R.data.data};return{params:[C,P,T,{rewardVault:_nullishCoalesce(l, () => (_viem.zeroAddress)),isSwapAndStake:!!l}],functionName:"swap",abi:_chunkCYKCYPFRcjs.a,value:BigInt(c?o:"0"),address:this.config.bex.aggregatorsRouter}}}}}, _class10),ut=new lt;var pt= (_class11 =class extends _chunkMUCEYO3Ecjs.e{constructor(...args12) { super(...args12); _class11.prototype.__init40.call(this);_class11.prototype.__init41.call(this);_class11.prototype.__init42.call(this); }__init40() {this.name="Wrap"}__init41() {this.supportedChains=[_internal.ChainId.MAINNET,_internal.ChainId.BEPOLIA]}__init42() {this.type="rpc"}checkChainSupport({tokenIn:t,tokenOut:r}){return t.chainId!==r.chainId||!super.checkChainSupport({tokenIn:t,tokenOut:r})?!1:_chunk22J3YJDNcjs.e.call(void 0, t,"BERA")&&_chunk22J3YJDNcjs.e.call(void 0, r,"WBERA")||_chunk22J3YJDNcjs.e.call(void 0, t,"WBERA")&&_chunk22J3YJDNcjs.e.call(void 0, r,"BERA")}async getQuote({tokenIn:t,tokenOut:r,amount:o}){this.assertChainSupport({tokenIn:t,tokenOut:r});let s=_chunk22J3YJDNcjs.e.call(void 0, t,"BERA")&&_chunk22J3YJDNcjs.e.call(void 0, r,"WBERA");return{amountOut:o,amountIn:o,allowanceRequirements:[],name:s?"Wrap":"Unwrap",isNativeSwap:!0,swapFeeBps:0,getCalldata:()=>s?{abi:_chunkCYKCYPFRcjs.d,address:this.config.tokens.wbera,functionName:"deposit",params:[],value:BigInt(o)}:{abi:_chunkCYKCYPFRcjs.d,address:this.config.tokens.wbera,functionName:"withdraw",params:[BigInt(o)],value:BigInt(0)}}}}, _class11),mt=new pt;var _immutable = require('swr/immutable'); var _immutable2 = _interopRequireDefault(_immutable);var Ce=()=>{let e=_hooks.usePublicClient.call(void 0, ),{config:t}=_chunk22J3YJDNcjs.a.call(void 0, {chainId:_optionalChain([e, 'access', _18 => _18.chain, 'optionalAccess', _19 => _19.id])}),r=_immutable2.default.call(void 0, e&&t.bex.aggregatorsRouter&&t.bex.aggregatorsRouter!==_viem.zeroAddress?["useAggregatorsRouterFeeBps",t.bex.aggregatorsRouter]:null,async([,o])=>{let s=await e.readContract({address:o,abi:_chunkCYKCYPFRcjs.a,functionName:"SWAP_FEE_RATE"});return Number(s)});return{...r,refresh:r.mutate}};var _core = require('@wagmi/core');async function ao({token:e,wagmiConfig:t}){try{if(_chunk22J3YJDNcjs.e.call(void 0, e,"BERA"))return null;let r=_core.getPublicClient.call(void 0, t,{chainId:e.chainId});_chunk7LNBSOVVcjs.c.call(void 0, r);let o=await r.readContract({address:e.address,abi:_viem.erc4626Abi,functionName:"asset"});return await _chunkMUCEYO3Ecjs.z.call(void 0, {address:o,publicClient:r,chainId:e.chainId})}catch(r){let o=_chunk7LNBSOVVcjs.a.call(void 0, {cause:r});if(o.reason==='The contract function "asset" reverted.')return null;throw o}}function no({token:e}){let t=_hooks.useConfig.call(void 0, );return _immutable2.default.call(void 0, e&&t&&!_chunk22J3YJDNcjs.e.call(void 0, e,"BERA")?["useUnderlyingAsset",e]:null,async([,r])=>ao({token:r,wagmiConfig:t}))}var io="useAggregatorsQuotes";function Ks({aggregator:e,account:t,args:r,feeBps:o,options:s,activeAggregators:a,isMAEnabled:i}){if(_optionalChain([s, 'optionalAccess', _20 => _20.opts, 'optionalAccess', _21 => _21.isEnabled])!==void 0&&!_optionalChain([s, 'optionalAccess', _22 => _22.opts, 'optionalAccess', _23 => _23.isEnabled])||!Number(r.amount)||!e.checkChainSupport({tokenIn:r.tokenIn,tokenOut:r.tokenOut,underlyingToken:r.underlyingToken,honeyNativeState:r.honeyNativeState}))return null;let n=e.name,l=!["Hub Pools","Honey","Wrap","Unwrap","Mint"].includes(n);if(!i&&l)return null;let{tokenIn:u,tokenOut:m,amount:p,slippage:c,referrer:d,rewardVault:f}=r,y=_viem.parseUnits.call(void 0, p,u.decimals).toString();if(!(e.name==="Wrap"||e.name==="RedeemBgt"||e.name==="Honey"||!a||a.includes(n.toLowerCase().replaceAll(" ","")))||e.name==="Honey"&&_optionalChain([r, 'access', _24 => _24.honeyNativeState, 'optionalAccess', _25 => _25.protocol, 'access', _26 => _26.isPaused]))return null;let R=e.name==="Mint"||e.name==="Enso (Mint)";return l&&o===void 0?null:[io,n,u,m,y,c,e.needsAccountForQuote?t:void 0,l?o:0,d,f,R?r.underlyingToken:void 0,e.name==="Honey"?_optionalChain([r, 'access', _27 => _27.honeyNativeState, 'optionalAccess', _28 => _28.collateralList]):void 0]}function qs({aggregator:e,publicClient:t,proxyAggregatorsThroughVercel:r}){return async([,,o,s,a,i,n,l,u,m,p,c])=>e.getQuote({tokenIn:o,tokenOut:s,amount:a,slippage:i,account:n,aggregatorsFeeBps:l,publicClient:t,proxyAggregatorsThroughVercel:r,referrer:u,rewardVault:m,underlyingToken:p,honeyNativeState:{collateralList:_nullishCoalesce(c, () => ([]))}})}function H({feeBps:e,publicClient:t,account:r,proxyAggregatorsThroughVercel:o,activeAggregators:s,isMAEnabled:a,...i},n){return _swr2.default.call(void 0, Ks({aggregator:i.aggregator,account:r,args:i,feeBps:e,options:n,activeAggregators:s,isMAEnabled:a}),qs({aggregator:i.aggregator,proxyAggregatorsThroughVercel:o,publicClient:t}),_optionalChain([n, 'optionalAccess', _29 => _29.opts]))}function dt(e){return{refreshInterval:1e4,errorRetryCount:3,..._optionalChain([e, 'optionalAccess', _30 => _30.opts]),onErrorRetry(t,r,o,s,a){if(_optionalChain([e, 'optionalAccess', _31 => _31.opts, 'optionalAccess', _32 => _32.onErrorRetry, 'optionalCall', _33 => _33(t,r,o,s,a)]),!(t instanceof _chunkC6ZGUO4Hcjs.f&&t.reason===_chunkMUCEYO3Ecjs.e.PATH_NOT_FOUND_REASON)){if(t instanceof _chunkC6ZGUO4Hcjs.g&&t.statusCode===403){console.warn(r[1],"returned error 403, stopping retries");return}a.retryCount>(_nullishCoalesce(o.errorRetryCount, () => (3)))||setTimeout(()=>{s()},_nullishCoalesce(o.errorRetryInterval, () => (_chunkPKXAW6MOcjs.m.call(void 0, 10))))}}}}function $s(e,t){let{address:r}=_hooks.useBeraWallet.call(void 0, ),o=_chunkYZV5LKIPcjs.c.call(void 0, "proxyAggregatorsThroughVercel"),s=_chunkYZV5LKIPcjs.c.call(void 0, "aggregators"),a=_hooks.usePublicClient.call(void 0, ),{data:i}=Ce();if(e.aggregator.name!=="Wrap"&&!((_chunk22J3YJDNcjs.e.call(void 0, e.tokenIn.address,"BERA")||_chunk22J3YJDNcjs.e.call(void 0, e.tokenIn.address,"WBERA"))&&(_chunk22J3YJDNcjs.e.call(void 0, e.tokenOut.address,"BERA")||_chunk22J3YJDNcjs.e.call(void 0, e.tokenOut.address,"WBERA"))))return null;let{config:n}=_chunk22J3YJDNcjs.a.call(void 0, e),l=n.bex.aggregatorsRouter!==_viem.zeroAddress;return H({...e,aggregator:e.aggregator,feeBps:i,activeAggregators:s,account:r,isMAEnabled:l,publicClient:a,proxyAggregatorsThroughVercel:o},{...t,opts:dt(t)})}var ea=[it,Xe,at,ut,tt,ze,Ke,ot,je];function Fc(e,t){let{address:r}=_hooks.useBeraWallet.call(void 0, ),o=_chunkYZV5LKIPcjs.c.call(void 0, "proxyAggregatorsThroughVercel"),s=_chunkYZV5LKIPcjs.c.call(void 0, "aggregators"),a=_hooks.usePublicClient.call(void 0, ),{data:i}=Ce(),n=(_chunk22J3YJDNcjs.e.call(void 0, e.tokenIn.address,"BERA")||_chunk22J3YJDNcjs.e.call(void 0, e.tokenIn.address,"WBERA"))&&(_chunk22J3YJDNcjs.e.call(void 0, e.tokenOut.address,"BERA")||_chunk22J3YJDNcjs.e.call(void 0, e.tokenOut.address,"WBERA")),l=_chunk22J3YJDNcjs.e.call(void 0, e.tokenIn.address,"BGT",{chainId:_internal.defaultChainId}),{data:u}=no({token:e.tokenOut}),m=n||l,{config:p}=_chunk22J3YJDNcjs.a.call(void 0, e),c=p.bex.aggregatorsRouter!==_viem.zeroAddress,d=dt(t),f={activeAggregators:s,isMAEnabled:c,underlyingToken:u,isNativeSwap:m,account:r,publicClient:a,proxyAggregatorsThroughVercel:o,feeBps:i},y=H({...f,...e,aggregator:it},{opts:d}),A=H({...f,...e,aggregator:Xe},{opts:d}),R=H({...f,...e,aggregator:je},{opts:d}),w=H({...f,...e,aggregator:at},{opts:d}),b=H({...f,...e,aggregator:ut},{opts:d}),C=H({...f,...e,aggregator:tt},{opts:d}),P=H({...f,...e,aggregator:ze},{opts:d}),{protocol:T}=_chunkYZV5LKIPcjs.e.call(void 0, ),E=H({...f,...e,aggregator:Ke},{opts:{...d,isEnabled:T.isPaused===!1}}),B=H({...f,...e,aggregator:mt}),V=H({...f,...e,aggregator:zr},{opts:d}),F=H({...f,...e,aggregator:ot},{opts:d}),W=n?[B]:l?[V]:[y,R,A,w,b,C,P,F,T.isPaused===!1?E:null].filter(z=>z!==null);return{..._react.useMemo.call(void 0, ()=>{let z=W.reduce((_,He)=>_||He.error,void 0),le=W.map((_,He)=>_.isLoading?m?mt.name:ea[He].name:null).filter(Boolean),Tt=W.filter(_=>_!==void 0&&!_.isLoading&&!_.error&&_optionalChain([_, 'access', _34 => _34.data, 'optionalAccess', _35 => _35.amountOut])).map(({data:_})=>_),ps=Tt.length===0&&le.length>0;return{quotes:Tt,loadingAggregatorsNames:le,isLoading:ps,error:z}},[W]),refresh:()=>W.map(z=>z.mutate())}}var ra=({query:e}={})=>["useAllUserPools",e],lo= exports.useAllUserPools =(e,t)=>{let r=_swr2.default.call(void 0, ra({query:e}),async([o,s])=>_chunkMUCEYO3Ecjs.g.call(void 0, {...s,fetchPolicy:"no-cache"}),{refreshInterval:18e4,..._optionalChain([t, 'optionalAccess', _36 => _36.opts])});return{...r,refresh:()=>{r.mutate()}}};var aa=({poolId:e,account:t})=>e?["usePool-api",e,t]:null;function uo({poolId:e,account:t}){let r=_swr2.default.call(void 0, aa({poolId:e,account:t}),async([,o,s])=>{if(s&&!_viem.isAddress.call(void 0, s))throw new (0, _chunkC6ZGUO4Hcjs.h)({property:"account",value:s,expected:"Address"});return _chunkMUCEYO3Ecjs.h.call(void 0, {poolId:o,account:s})},{refreshInterval:1e5});return{...r,refresh:()=>{r.mutate()}}}var _subgraph = require('@berachain/graphql/dex/subgraph');var ct=e=>[...e].sort((t,r)=>t.address.toLowerCase().localeCompare(r.address.toLowerCase())),mo=e=>e.length===0?"":ct(e).map(t=>t.symbol).join(" | "),co=(e,t,r)=>{let o;switch(r){case _berancersdk.PoolType.ComposableStable:o="STABLE";break;default:o=r.toString().toUpperCase();break}return r===_berancersdk.PoolType.Weighted?t.length===0?"":`${ct(e).map((s,a)=>{let i=t[a];return`${(Number.parseFloat(_viem.formatUnits.call(void 0, i,18))*100).toFixed(0)}${s.symbol}`}).join("-")}-${o}`:`${ct(e).map(s=>s.symbol).join("-")}-${o}`};var ma=.005,da= exports.OracleMode =(r=>(r.None="None",r.Custom="Custom",r))(da||{}),ca=({poolCreationHelper:e,poolCreateTokens:t,initialLiquidityTokens:r,swapFeePercentage:o,salt:s,poolName:a,poolSymbol:i,owner:n,amplification:l,oracles:u,message:m,actionType:p,gasLimit:c=_chunkPKXAW6MOcjs.j})=>{let d=t.map(P=>P.address.toLowerCase()).sort((P,T)=>P<T?-1:1),f=d.map(P=>{let T=r.find(W=>W.address.toLowerCase()===P||_chunk22J3YJDNcjs.e.call(void 0, P,"WBERA")&&_chunk22J3YJDNcjs.e.call(void 0, W.address,"BERA")),E=T?_viem.parseUnits.call(void 0, T.amount,T.decimals):0n,B=u.find(W=>W.tokenAddress.toLowerCase()===P.toLowerCase()),V=B?B.address:_viem.zeroAddress,F=BigInt(B?B.cacheDuration:100);return{amountIn:E,rateProvider:V,cacheDuration:F}}),y=f.map(P=>P.amountIn),A=f.map(P=>P.rateProvider),R=f.map(P=>P.cacheDuration),w=r.findIndex(P=>_chunk22J3YJDNcjs.e.call(void 0, P.address,"BERA")),b=w!==-1?_viem.parseUnits.call(void 0, r[w].amount,r[w].decimals):0n,C=b>0n;return{address:e,abi:_chunkCYKCYPFRcjs.b,functionName:"createAndJoinStablePool",params:[a,i,d,BigInt(l),A,R,!1,o,y,n,s,C],message:m,actionType:p,value:b,gasLimit:c,track:{eventName:"hub_pool_create",eventData:{poolName:a,poolSymbol:i}}}},fa=({poolCreationHelper:e,poolCreateTokens:t,initialLiquidityTokens:r,normalizedWeights:o,swapFeePercentage:s,salt:a,poolName:i,poolSymbol:n,owner:l,message:u,actionType:m,gasLimit:p=_chunkPKXAW6MOcjs.j})=>{let c=[],d=[],f=[],y=[];t.map((w,b)=>({createToken:w.address,joinToken:r[b].address,weight:o[b],amountIn:_viem.parseUnits.call(void 0, r[b].amount,r[b].decimals)})).sort((w,b)=>w.createToken.toLowerCase()<b.createToken.toLowerCase()?-1:1).forEach(w=>{c.push(w.createToken),d.push(w.joinToken),f.push(w.weight),y.push(w.amountIn)});let A=d.indexOf(_viem.zeroAddress),R=A!==-1?y[A]:0n;return{address:e,abi:_chunkCYKCYPFRcjs.b,functionName:"createAndJoinWeightedPool",params:[i,n,c,d,f,Array(c.length).fill(_viem.zeroAddress),s,y,l,a],message:u,actionType:m,value:R,gasLimit:p,track:{eventName:"hub_pool_create",eventData:{poolName:i,poolSymbol:n}}}},Af= exports.useCreatePool =({poolCreateTokens:e,initialLiquidityTokens:t,normalizedWeights:r,poolType:o,poolName:s,poolSymbol:a,swapFee:i,owner:n,amplification:l,oracles:u,weightsDuplicationThreshold:m=ma,...p})=>{let{data:c,error:d,isLoading:f}=_immutable2.default.call(void 0, ["useCreatePool__deduped_pool",e,o,r],async()=>{if(e.length===0||!o)return null;let w=_chunkMUCEYO3Ecjs.c.call(void 0, "bex.subgraph",{});try{let b=_chunkP2Q7CMUDcjs.b.call(void 0, e).map(T=>T.address.toLowerCase()).sort((T,E)=>T.toLowerCase()<E.toLowerCase()?-1:1);returnawait _asyncNullishCoalesce(await _asyncOptionalChain([(await w.query({query:_subgraph.GetDedupedSubgraphPools,variables:{tokens:b,type:o}})), 'access', async _37 => _37.data, 'access', async _38 => _38.pools, 'access', async _39 => _39.filter, 'call', async _40 => _40(T=>_optionalChain([T, 'access', _41 => _41.tokens, 'optionalAccess', _42 => _42.every, 'call', _43 => _43(E=>o===_berancersdk.PoolType.Weighted?b.includes(E.address)&&Math.abs(Number(E.weight)-Number(_viem.formatUnits.call(void 0, r[b.indexOf(E.address)],18)))<m:b.includes(E.address)||E.address===T.address)])), 'optionalAccess', async _44 => _44.at, 'call', async _45 => _45(0)]), async () => (null))}catch (e2){return null}}),{generatedPoolName:y,generatedPoolSymbol:A}=_react.useMemo.call(void 0, ()=>{if(!e)return{generatedPoolName:"",generatedPoolSymbol:""};let w=mo(e),b=co(e,r,o);return{generatedPoolName:w,generatedPoolSymbol:b}},[e,r,o]),R=_react.useMemo.call(void 0, ()=>{if(!n||s===""||a===""||e.length!==t.length||e.length===0)return null;let w=_viem.parseUnits.call(void 0, i.toString(),16),b=_viem.keccak256.call(void 0, Buffer.from(`${s}-${n}`)),{config:C}=_chunk22J3YJDNcjs.a.call(void 0, p);return o===_berancersdk.PoolType.Weighted?fa({poolCreationHelper:C.bex.poolCreationHelper,poolCreateTokens:e,initialLiquidityTokens:t,normalizedWeights:r,swapFeePercentage:w,salt:b,poolName:s,poolSymbol:a,owner:n,message:`Create pool ${s}`,actionType:"Create Pool"}):o===_berancersdk.PoolType.ComposableStable||o===_berancersdk.PoolType.MetaStable?ca({poolCreationHelper:C.bex.poolCreationHelper,poolCreateTokens:e,initialLiquidityTokens:t,swapFeePercentage:w,salt:b,poolName:s,poolSymbol:a,owner:n,amplification:l,oracles:u,message:`Create pool ${s}`,actionType:"Create Pool"}):null},[e,t,r,o,i,s,a,n,l,u]);return{generatedPoolName:y,generatedPoolSymbol:A,isDupePool:!!c,dupePool:c,createPoolArgs:R,isLoadingPools:f,errorLoadingPools:d}};var ba=1e-4;async function go({token:e,publicClient:t,...r}){let o=_chunkMUCEYO3Ecjs.c.call(void 0, "bex.subgraph",r),s=await t.readContract({address:e.address,abi:_viem.erc20Abi,functionName:"totalSupply"}),a=_chunkPKXAW6MOcjs.a.call(void 0, _viem.formatUnits.call(void 0, s,e.decimals)).multipliedBy(ba),{data:i}=await o.query({query:_subgraph.GetExploitedTokens,variables:{token:e.address,balance:a.toFixed()}});return i.userInternalBalances.length>0}var wa=e=>{let t=_optionalChain([e, 'optionalAccess', _46 => _46.filter, 'call', _47 => _47(r=>r.address)]);return!t||t.length===0?null:["useExploitedTokens",t]},Ef= exports.useExploitedTokens =({tokens:e})=>{let t=wa(e),r=_hooks.usePublicClient.call(void 0, ),o=_swr2.default.call(void 0, r?t:null,async([,s])=>(_chunk7LNBSOVVcjs.c.call(void 0, r),(await Promise.all(s.map(i=>go({token:i,publicClient:r})))).reduce((i,n,l)=>(n!==void 0&&(i[s[l].address]=n),i),{})));return{...o,refresh:()=>o.mutate()}};var Pa=()=>{let e=_swr2.default.call(void 0, "useGlobalLiquidityAndSwapVolume",async()=>_chunkMUCEYO3Ecjs.i.call(void 0, ));return{...e,data:{totalLiquidity:Number(_optionalChain([e, 'access', _48 => _48.data, 'optionalAccess', _49 => _49.protocolMetricsAggregated, 'access', _50 => _50.totalLiquidity])),swapVolume24h:Number(_optionalChain([e, 'access', _51 => _51.data, 'optionalAccess', _52 => _52.protocolMetricsAggregated, 'access', _53 => _53.swapVolume24h]))},refresh:()=>e.mutate()}};var Ia=.05,Nf= exports.useLiquidityMismatch =({currentStep:e,tokenPrices:t,isLoadingTokenPrices:r,tokens:o,weights:s,weightsError:a,poolType:i,liquidityMismatchTolerancePercent:n=Ia,oracles:l})=>{let[u,m]=_react.useState.call(void 0, {title:null,message:null});return _react.useEffect.call(void 0, ()=>{if(!t||r||!o||!s||a||o.some(b=>!b.address)||l.some(b=>b.mode==="Custom")){m({title:null,message:null});return}let p=0,c=[],d=o.length,y=_chunkP2Q7CMUDcjs.b.call(void 0, o).map(b=>{let C=_nullishCoalesce(_optionalChain([t, 'access', _54 => _54[b.address.toLowerCase()], 'optionalAccess', _55 => _55.price]), () => (0));if(!C||C===0)return c.push(0),null;let P=C*Number.parseFloat(b.amount);return c.push(P),p+=P,C});if(y.some(b=>b===null)||y.length!==d){m({title:"Missing token price data",message:`One or more token(s) do not have valid market price data. Please verify that token market prices align with the pool
|
|
2
|
+
weightings and your initial liquidity amounts.`});return}if(e==="Select Tokens"&&i===_berancersdk.PoolType.ComposableStable){let b=y.map(P=>P/y[0]);Math.max(...b)-Math.min(...b)>n?m({title:"Selected tokens have a significant price deviation",message:"Did you mean to create a Weighted pool instead?",suggestWeighted:!0}):m({title:null,message:null});return}if(p===0||c.some(b=>b===0)){m({title:null,message:null});return}let A=0;if(i===_berancersdk.PoolType.ComposableStable){let b=p/d;c.forEach(C=>{A+=Math.abs(b-C)})}else i===_berancersdk.PoolType.Weighted&&c.forEach((b,C)=>{let P=Number(s[C])/1e18,T=p*P;A+=Math.abs(T-b)});let R=A>=p*.9;A=Math.min(A,p);let w=A/p;w>n?m({title:R?"You could lose all of your initial liquidity":`You could lose $${A.toFixed(2)} (~${(w*100).toFixed(2)}%)`,message:`Based on the market token prices, the value of tokens does not align with the specified pool weights.
|
|
3
|
+
This discrepancy could expose you to potential losses from arbitrageurs. ${i===_berancersdk.PoolType.ComposableStable?"Did you mean to create a Weighted pool instead?":""}`,suggestWeighted:i===_berancersdk.PoolType.ComposableStable}):m({title:null,message:null})},[e,t,r,o,s,a,i,n,l]),u};var gt=({tokenAddress:e},{isEnabled:t=!0}={})=>{let r=_hooks.usePublicClient.call(void 0, ),o=r&&e&&_viem.isAddress.call(void 0, e)&&t?["useRewardVaultFromToken",e]:null,s=_immutable2.default.call(void 0, o,async([,a])=>{if(!a)throw new Error("useRewardVaultFromToken needs a valid token address");_chunk7LNBSOVVcjs.c.call(void 0, r);let{config:i}=_chunk22J3YJDNcjs.a.call(void 0, {chainId:r.chain.id}),n=await r.readContract({address:i.pol.factory,abi:_chunkVP7XUOSIcjs.l,functionName:"getVault",args:[a]});return n===_viem.zeroAddress?void 0:n});return{...s,refresh:()=>s.mutate()}};var Ao=({stakingToken:e,rewardVaultAddress:t},r)=>{let{address:o}=_hooks.useBeraWallet.call(void 0, ),s=_hooks.usePublicClient.call(void 0, ),a=_nullishCoalesce(_optionalChain([r, 'optionalAccess', _56 => _56.opts, 'optionalAccess', _57 => _57.isEnabled]), () => (!0)),{data:i=t,error:n,mutate:l,isLoading:u}=gt({tokenAddress:e},{isEnabled:!t&&a}),m=_swr2.default.call(void 0, i&&o&&s&&_viem.isAddress.call(void 0, i)&&_viem.isAddress.call(void 0, o)&&a?["useVaultBalanceFromStakingToken",i,o]:null,async([,p,c])=>{if(_chunk7LNBSOVVcjs.c.call(void 0, s),p===_viem.zeroAddress)return{address:p,balance:0n};let d=await s.readContract({address:p,abi:_chunkVP7XUOSIcjs.k,functionName:"balanceOf",args:[c]});return{address:p,balance:d}});return{...m,refresh:()=>{l(),m.mutate()},isLoading:m.isLoading||u}};function bo(e,t){let r=_hooks.usePublicClient.call(void 0, {chainId:e.chainId}),o=_optionalChain([e, 'optionalAccess', _58 => _58.address])&&r&&_viem.isAddress.call(void 0, e.address)?["useTokenInformation",e.address,e.chainId]:null,s=_immutable2.default.call(void 0, o,async([a,i,n=_internal.defaultChainId])=>_chunk22J3YJDNcjs.e.call(void 0, i,"BERA")?{address:_viem.zeroAddress,decimals:_chunk22J3YJDNcjs.b.decimals,name:_chunk22J3YJDNcjs.b.name,symbol:_chunk22J3YJDNcjs.b.symbol,chainId:n}:(_chunk7LNBSOVVcjs.c.call(void 0, r),await _chunkMUCEYO3Ecjs.z.call(void 0, {address:i,publicClient:r,chainId:n})),{..._optionalChain([t, 'optionalAccess', _59 => _59.opts])});return{...s,refresh:()=>_optionalChain([s, 'optionalAccess', _60 => _60.mutate, 'optionalCall', _61 => _61()])}}function Se({address:e,owner:t,chainId:r=_internal.defaultChainId},o){let s=e;_chunk22J3YJDNcjs.e.call(void 0, s,"ETH")&&(s=_viem.zeroAddress);let a=_hooks.usePublicClient.call(void 0, {chainId:r}),{address:i}=_hooks.useBeraWallet.call(void 0, ),n=_nullishCoalesce(t, () => (i)),l=(_nullishCoalesce(_optionalChain([o, 'optionalAccess', _62 => _62.opts, 'optionalAccess', _63 => _63.isEnabled]), () => (!0)))&&a&&n&&_viem.isAddress.call(void 0, n)&&s&&_viem.isAddress.call(void 0, s)?["usePollBalance",n,s,r]:null,{data:u,isLoading:m}=bo({address:s,chainId:r}),p=_chunk22J3YJDNcjs.e.call(void 0, s,"BERA"),{isLoading:c,data:d,error:f,...y}=_swr2.default.call(void 0, l,async([,w,b])=>(_chunk7LNBSOVVcjs.c.call(void 0, a),_chunk22J3YJDNcjs.e.call(void 0, b,"BERA")?await a.getBalance({address:w}):await a.readContract({address:b,abi:_viem.erc20Abi,functionName:"balanceOf",args:[w]})),{refreshInterval:1e4}),A=!f&&d?_chunk22J3YJDNcjs.e.call(void 0, s,"BERA")?_viem.formatEther.call(void 0, d):u&&!m?_viem.formatUnits.call(void 0, d,u.decimals):void 0:void 0,R={chainId:r,balance:d?{raw:d.toString(),formatted:_nullishCoalesce(A, () => ("0"))}:{raw:"0",formatted:"0"},address:s,decimals:p?_chunk22J3YJDNcjs.b.decimals:_nullishCoalesce(_optionalChain([u, 'optionalAccess', _64 => _64.decimals]), () => (0)),symbol:p?_chunk22J3YJDNcjs.b.symbol:_nullishCoalesce(_optionalChain([u, 'optionalAccess', _65 => _65.symbol]), () => ("")),name:p?_chunk22J3YJDNcjs.b.name:_nullishCoalesce(_optionalChain([u, 'optionalAccess', _66 => _66.name]), () => (""))};return{...y,refresh:()=>{y.mutate()},isLoading:c||p?m:!1,error:f||!p?f:void 0,data:R}}var bg=({pool:e,vaultAddress:t},r)=>{let{data:o,...s}=Se({address:_optionalChain([e, 'optionalAccess', _67 => _67.address])}),{data:a,refresh:i}=Ao({stakingToken:_optionalChain([e, 'optionalAccess', _68 => _68.address]),rewardVaultAddress:_nullishCoalesce(t, () => (_optionalChain([e, 'optionalAccess', _69 => _69.rewardVault, 'optionalAccess', _70 => _70.vaultAddress])))},r),n=e?Number.parseFloat(_nullishCoalesce(_optionalChain([e, 'optionalAccess', _71 => _71.dynamicData, 'optionalAccess', _72 => _72.totalShares]), () => ("0"))):0,l=_optionalChain([e, 'optionalAccess', _73 => _73.dynamicData, 'optionalAccess', _74 => _74.totalLiquidity])?Number(_nullishCoalesce(_optionalChain([e, 'optionalAccess', _75 => _75.dynamicData, 'optionalAccess', _76 => _76.totalLiquidity]), () => (0))):null,u=n&&l?l/Number(n):0,m=_optionalChain([e, 'optionalAccess', _77 => _77.tokens, 'optionalAccess', _78 => _78.map, 'call', _79 => _79(p=>({address:p.address,ratio:n?Number(p.balance)/Number(n):0}))]);return{data:{lpTokenPrice:u,lpBalance:o?{...o,usdValue:o?Number(o.balance.formatted)*u:void 0}:void 0,tokenBalances:_optionalChain([e, 'optionalAccess', _80 => _80.tokens, 'optionalAccess', _81 => _81.map, 'call', _82 => _82(p=>{let c=_nullishCoalesce(_optionalChain([m, 'optionalAccess', _83 => _83.find, 'call', _84 => _84(y=>_viem.isAddressEqual.call(void 0, y.address,p.address)), 'optionalAccess', _85 => _85.ratio]), () => (0)),d=c?_chunkPKXAW6MOcjs.a.call(void 0, _nullishCoalesce(_optionalChain([o, 'optionalAccess', _86 => _86.balance, 'access', _87 => _87.formatted]), () => ("0"))).times(c):_chunkPKXAW6MOcjs.a.call(void 0, 0),f=Number(p.balanceUSD)/Number(p.balance);return{...p,balance:{raw:_optionalChain([d, 'optionalAccess', _88 => _88.isGreaterThan, 'call', _89 => _89(0)])?d.times(10**p.decimals).toFixed(0).toString():"0",formatted:d.toString()},price:f,usdValue:Number.isNaN(f)||!d?void 0:Number.parseFloat(d.toString())*f}})]),stakedBalance:_optionalChain([a, 'optionalAccess', _90 => _90.address])?{...a,balance:{raw:a.balance.toString(),formatted:_viem.formatEther.call(void 0, a.balance)},usdValue:Number(_viem.formatEther.call(void 0, a.balance))*u}:void 0},...s,refresh:()=>{_optionalChain([s, 'access', _91 => _91.refresh, 'optionalCall', _92 => _92()]),i()}}};function wo(e,t){let r=_hooks.useConfig.call(void 0, ),{address:o}=_hooks.useBeraWallet.call(void 0, ),s=r&&o&&_optionalChain([e, 'optionalAccess', _93 => _93.items])?["usePollAllowances",o,_optionalChain([e, 'optionalAccess', _94 => _94.items])]:null,a=_swr2.default.call(void 0, s,async([,i,n])=>_chunkMUCEYO3Ecjs.la.call(void 0, {items:n,account:i,config:r}),{..._optionalChain([t, 'optionalAccess', _95 => _95.opts]),refreshInterval:_nullishCoalesce(_optionalChain([t, 'optionalAccess', _96 => _96.opts, 'optionalAccess', _97 => _97.refreshInterval]), () => (1e5))});return{...a,refresh:()=>_optionalChain([a, 'optionalAccess', _98 => _98.mutate, 'optionalCall', _99 => _99()])}}function en({amount:e,decimals:t,slippage:r}){let o=_viem.parseUnits.call(void 0, (_nullishCoalesce(r, () => (0))).toString(),t);return e+e*o/BigInt(100*10**t)}function tn(e,t){let{slippage:r}=_nullishCoalesce(t, () => ({})),o=_react.useMemo.call(void 0, ()=>e.filter(l=>l.token.address!==_viem.zeroAddress).filter(l=>_chunkPKXAW6MOcjs.a.call(void 0, l.amount.formatted).gt(0)),[e]),{data:s,refresh:a,isLoading:i}=wo({items:o});return{needsApproval:_react.useMemo.call(void 0, ()=>_nullishCoalesce(_optionalChain([s, 'optionalAccess', _100 => _100.map, 'call', _101 => _101(l=>{let u=o.find(p=>_chunk22J3YJDNcjs.e.call(void 0, p.token.address,l.token));if(!u)throw new (0, _chunkC6ZGUO4Hcjs.f)({message:"Token not found when matching allowance in useMultipleTokenApprovalsWithSlippage",cause:{allowance:l,items:o}});let m=en({decimals:u.token.decimals,amount:BigInt(u.amount.raw),slippage:r});if(_chunkPKXAW6MOcjs.a.call(void 0, l.allowance.raw).lt(m))return{...u,needsApproval:!0,maxAmountIn:m,allowance:{raw:l.allowance.raw,formatted:l.allowance.formatted}}}), 'access', _102 => _102.filter, 'call', _103 => _103(l=>l!==void 0)]), () => ([])),[s,r,o]),refresh:a,isLoading:i}}function Po(e,t){let r=_hooks.usePublicClient.call(void 0, ),o=r&&e.addresses?["useMultipleTokenInformation",e.addresses,_nullishCoalesce(e.chainId, () => (_internal.defaultChainId))]:null,s=_immutable2.default.call(void 0, o,async([,a,i])=>(_chunk7LNBSOVVcjs.c.call(void 0, r),Promise.all(a.map(async n=>{if(!n||!_viem.isAddress.call(void 0, n,{strict:!1}))throw new Error("Invalid address");let l=await _chunkMUCEYO3Ecjs.z.call(void 0, {address:n,publicClient:r,chainId:i});if(!l)throw new Error(`Token ${n} not found`);return l}))),{..._optionalChain([t, 'optionalAccess', _104 => _104.opts])});return{...s,refresh:()=>_optionalChain([s, 'optionalAccess', _105 => _105.mutate, 'optionalCall', _106 => _106()])}}function ee(){let e=_react.useContext.call(void 0, _chunkYZV5LKIPcjs.m);if(!e)throw new (0, _chunkC6ZGUO4Hcjs.f)({message:"useTokens must be used within a TokensProvider",level:"fatal"});return{...e,data:{tokenList:e.tokenList,customTokenList:e.userTokens,featuredTokenList:e.featuredTokens}}}function re({addressIn:e}={},t={opts:{refreshInterval:1e5,revalidateOnFocus:!0}}){let{tokenList:r,ensoTokens:o}=ee(),s=_react.useMemo.call(void 0, ()=>{let p=[];return e&&p.push(...e.filter(c=>_viem.isAddress.call(void 0, c))),p.map(c=>c.toLowerCase())},[r]),i=_react.useMemo.call(void 0, ()=>{let p=new Set(_optionalChain([r, 'optionalAccess', _107 => _107.map, 'call', _108 => _108(c=>c.address.toLowerCase())]));return r.some(c=>_chunk22J3YJDNcjs.e.call(void 0, c,"WBERA"))&&p.add(_viem.zeroAddress),_optionalChain([s, 'optionalAccess', _109 => _109.some, 'call', _110 => _110(c=>!p.has(c))])},[s,r])?s:r.map(p=>p.address),n=i&&(_nullishCoalesce(_optionalChain([t, 'access', _111 => _111.opts, 'optionalAccess', _112 => _112.isEnabled]), () => (!0)))?["useTokenCurrentPrices",i.map(p=>p.toLowerCase())]:null,l=_swr2.default.call(void 0, n,async([,p])=>_chunkMUCEYO3Ecjs.ka.call(void 0, {addressIn:p}),t.opts),u=_react.useMemo.call(void 0, ()=>{if(!o)return{};let p=new Map([[_internal.defaultChainId,new Map]]);for(let c of o)c.price===void 0||c.chainId!==_internal.defaultChainId||_optionalChain([p, 'access', _113 => _113.get, 'call', _114 => _114(_internal.defaultChainId), 'optionalAccess', _115 => _115.set, 'call', _116 => _116(c.address.toLowerCase(),{...c,price:c.price,chainId:_internal.defaultChainId})]);return Object.fromEntries(i.map(c=>{let d=_optionalChain([p, 'access', _117 => _117.get, 'call', _118 => _118(_internal.defaultChainId), 'optionalAccess', _119 => _119.get, 'call', _120 => _120(c), 'optionalAccess', _121 => _121.price]);return d?[c.toLowerCase(),{price:d,chainId:_internal.defaultChainId,updatedAt:Date.now()}]:[null,null]}))},[o]),m=_react.useMemo.call(void 0, ()=>({...u,...l.data}),[u,l.data]);return{...l,data:m}}function yn(e){let t="poolId"in e?_optionalChain([e, 'access', _122 => _122.poolId, 'optionalAccess', _123 => _123.slice, 'call', _124 => _124(0,42)]):e.address;return _viem.isAddress.call(void 0, t)&&t?["useOnChainPoolData",t]:null}function Co(e){let t=_hooks.usePublicClient.call(void 0, ),r=_optionalChain([e, 'optionalAccess', _125 => _125.slice, 'call', _126 => _126(0,42)]),o=yn({poolId:e}),{data:s,error:a,isLoading:i,mutate:n}=_immutable2.default.call(void 0, t?o:null,async([,d])=>_chunkMUCEYO3Ecjs.k.call(void 0, {poolId:d,publicClient:t})),{data:l,isLoading:u}=Po({addresses:_optionalChain([s, 'optionalAccess', _127 => _127.poolTokens, 'access', _128 => _128[0]])}),{data:m,isLoading:p}=re({addressIn:_optionalChain([s, 'optionalAccess', _129 => _129.poolTokens, 'access', _130 => _130[0]])});return{data:_react.useMemo.call(void 0, ()=>{if(!s||!l)return;let d={address:r.toLowerCase(),id:e.toLowerCase(),type:s.type,factory:s.factory,totalShares:s.totalSupply,totalLiquidity:"0",swapFee:s.swapFee,createTime:0,name:s.name,tokens:l.map((y,A)=>({address:y.address.toLowerCase(),name:y.name,decimals:y.decimals,symbol:y.symbol,index:A,weight:_nullishCoalesce(_optionalChain([s, 'access', _131 => _131.weights, 'optionalAccess', _132 => _132[A]]), () => (void 0)),balance:_viem.formatUnits.call(void 0, BigInt(s.poolTokens[1][A]),y.decimals),token:{__typename:"Token",token:y,latestUSDPrice:_optionalChain([m, 'optionalAccess', _133 => _133[y.address]])}})),amplificationParameter:_optionalChain([s, 'optionalAccess', _134 => _134.amplificationParameter])&&{currentFormattedValue:Number(s.amplificationParameter[0])/Number(s.amplificationParameter[2])}},f=_optionalChain([d, 'access', _135 => _135.tokens, 'optionalAccess', _136 => _136.reduce, 'call', _137 => _137((y,A)=>{let R=Number(_nullishCoalesce(_optionalChain([m, 'optionalAccess', _138 => _138[A.address.toLowerCase()], 'optionalAccess', _139 => _139.price]), () => (0)));return R?y+R*Number(A.balance):y},0)]);return d.totalLiquidity=_nullishCoalesce(_optionalChain([f, 'optionalAccess', _140 => _140.toString, 'call', _141 => _141()]), () => ("")),d},[s,l,m,r,e]),error:a,isLoading:i||u||p,mutate:n,refresh:()=>n()}}var Rn=e=>{let{address:t}=_hooks.useBeraWallet.call(void 0, ),r=_hooks.usePublicClient.call(void 0, ),o=t&&r?["usePollPoolCreationRelayerApproval",t,r.chain.id]:null,s=_swr2.default.call(void 0, o,async([,i])=>{_chunk7LNBSOVVcjs.c.call(void 0, r);let{config:n}=_chunk22J3YJDNcjs.a.call(void 0, {chainId:r.chain.id});return await r.readContract({address:n.bex.vault,abi:_chunkVP7XUOSIcjs.b,functionName:"hasApprovedRelayer",args:[i,n.bex.poolCreationHelper]})},{..._optionalChain([e, 'optionalAccess', _142 => _142.opts])});return{...s,refreshPoolCreationApproval:()=>{s.mutate()}}};function Pn({poolId:e}){return e?["usePool-subgraph",e]:null}var gy=({poolId:e})=>{let t=_swr2.default.call(void 0, Pn({poolId:e}),async([,n])=>_chunkMUCEYO3Ecjs.n.call(void 0, {poolId:n}),{refreshInterval:1e5}),r=uo({poolId:e}),{data:o,isLoading:s,refresh:a}=Co(e);return{data:[_react.useMemo.call(void 0, ()=>{if(!t.data)return o;let n={...t.data};return o&&(n.swapFee=o.swapFee,n.totalShares=o.totalShares,n.createTime=_nullishCoalesce(o.createTime, () => (n.createTime))),n},[o,t]),r.data,o],isLoading:r.isLoading||t.isLoading||s,isError:r.error||t.error,refresh:()=>{r.refresh(),t.mutate(),a()}}};var hy=({poolId:e,typeInArray:t})=>_immutable2.default.call(void 0, e?["usePoolEvents",e,t]:null,async([,r,o])=>_chunkMUCEYO3Ecjs.l.call(void 0, {poolId:r,typeInArray:o}),{refreshInterval:18e4});var Cy=({poolId:e,...t},r)=>{let{config:o}=_chunk22J3YJDNcjs.a.call(void 0, t),a=_swr2.default.call(void 0, e?["usePoolHistoricalData",e]:null,async([,i])=>await _chunkMUCEYO3Ecjs.m.call(void 0, {poolId:i,chain:o.bex.chainName}),_optionalChain([r, 'optionalAccess', _143 => _143.opts]));return{...a,refresh:()=>void a.mutate()}};var En=({query:e}={})=>["useAllPools",e],By= exports.usePools =(e,t)=>{let{address:r}=_hooks.useBeraWallet.call(void 0, ),{data:o,isLoading:s,mutate:a}=lo({userAddress:r,chain:e.chain}),{data:i,isLoading:n,mutate:l}=_swr2.default.call(void 0, En({query:e}),async([p,c])=>_chunkMUCEYO3Ecjs.g.call(void 0, c),{refreshInterval:18e4,..._optionalChain([t, 'optionalAccess', _144 => _144.opts])}),u=_react.useMemo.call(void 0, ()=>{if(!i||!_optionalChain([o, 'optionalAccess', _145 => _145.pools, 'optionalAccess', _146 => _146.length]))return _nullishCoalesce(_optionalChain([i, 'optionalAccess', _147 => _147.pools]), () => ([]));let p=Object.fromEntries(o.pools.map(c=>[c.id.toLowerCase(),c]));return i.pools.map(c=>({...c,...p[c.id.toLowerCase()]||{}})).filter(Boolean)},[i,o]),m=_react.useMemo.call(void 0, ()=>({page:Math.ceil((_nullishCoalesce(_optionalChain([e, 'optionalAccess', _148 => _148.skip]), () => (0)))/(_nullishCoalesce(_optionalChain([e, 'optionalAccess', _149 => _149.first]), () => (10)))),pageSize:_optionalChain([e, 'optionalAccess', _150 => _150.first]),count:Math.ceil((_nullishCoalesce(_optionalChain([i, 'optionalAccess', _151 => _151.count]), () => (0)))/(_nullishCoalesce(_optionalChain([e, 'optionalAccess', _152 => _152.first]), () => (10))))}),[i,e.skip,e.first]);return{pools:_nullishCoalesce(u, () => ([])),walletPools:_nullishCoalesce(_optionalChain([i, 'optionalAccess', _153 => _153.pools]), () => ([])),isLoading:n||s,refresh:()=>{l(),a()},pagination:m}};function se({tokens:e}={},t={opts:{refreshInterval:1e5,revalidateOnFocus:!0}}){let{ensoTokens:r}=ee(),o=re({addressIn:_optionalChain([e, 'optionalAccess', _154 => _154.filter, 'call', _155 => _155(n=>n.chainId===_internal.defaultChainId), 'access', _156 => _156.map, 'call', _157 => _157(n=>n.address)])},t),s=_react.useMemo.call(void 0, ()=>{let n=[];if(!e)return[];let l=new Map;for(let u of e){let m=_nullishCoalesce(u.chainId, () => (_internal.defaultChainId));l.has(m)||l.set(m,new Map),_optionalChain([l, 'access', _158 => _158.get, 'call', _159 => _159(m), 'optionalAccess', _160 => _160.set, 'call', _161 => _161(u.address.toLowerCase(),u)])}if(o.data){for(let[u,m]of Object.entries(o.data))if(m&&_optionalChain([l, 'access', _162 => _162.get, 'call', _163 => _163(_nullishCoalesce(m.chainId, () => (_internal.defaultChainId))), 'optionalAccess', _164 => _164.get, 'call', _165 => _165(u.toLowerCase())])&&m.price!==void 0){let p=_optionalChain([l, 'access', _166 => _166.get, 'call', _167 => _167(_nullishCoalesce(m.chainId, () => (_internal.defaultChainId))), 'optionalAccess', _168 => _168.get, 'call', _169 => _169(u.toLowerCase())]);if(!p)continue;n.push({...p,chainId:m.chainId,price:m.price})}}if(r)for(let u of r)u.price!==void 0&&u.chainId!==void 0&&n.push({...u,chainId:u.chainId,price:u.price});return n},[o.data,r,e]),a=_react.useMemo.call(void 0, ()=>{let n={};for(let l of s){let u=_nullishCoalesce(l.chainId, () => (_internal.defaultChainId));n[u]||(n[u]={}),n[u][l.address.toLowerCase()]=l.price}return n},[s]),i=_react.useCallback.call(void 0, n=>n?_nullishCoalesce(_optionalChain([a, 'access', _170 => _170[_nullishCoalesce(n.chainId, () => (_internal.defaultChainId))], 'optionalAccess', _171 => _171[_optionalChain([n, 'access', _172 => _172.address, 'optionalAccess', _173 => _173.toLowerCase, 'call', _174 => _174()])]]), () => (void 0)):void 0,[a]);return{isLoading:o.isLoading,data:s,priceMap:a,getTokenPrice:i}}function xe({tokenIn:e,tokenOut:t,formattedAmountIn:r,formattedAmountOut:o}){let{getTokenPrice:s,isLoading:a}=se({tokens:e&&t?[e,t]:void 0});return{data:_react.useMemo.call(void 0, ()=>{if(!e||!t||!r||!o)return;let n=s(e),l=s(t);return!n||!l?null:_chunkP2Q7CMUDcjs.c.call(void 0, n.toString(),l.toString(),r,o)},[e,t,r,o]),isLoading:a}}var At= (_class12 =class extends _chunkMUCEYO3Ecjs.e{constructor(...args13) { super(...args13); _class12.prototype.__init43.call(this);_class12.prototype.__init44.call(this);_class12.prototype.__init45.call(this);_class12.prototype.__init46.call(this);_class12.prototype.__init47.call(this); }__init43() {this.name="Enso (Mint)"}__init44() {this.supportedChains=null}__init45() {this.type="rest"}__init46() {this.needsAccountForQuote=!0}__init47() {this.notFoundMessages=["Could not build shortcuts for route","Could not quote shortcuts for route","Swap not found for a required underlying of defi route,","No route found from"]}async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:s,account:a=_viem.zeroAddress,aggregatorsFeeBps:i,proxyAggregatorsThroughVercel:n=!1,rewardVault:l,underlyingToken:u}){this.assertChainSupport({tokenIn:t,tokenOut:r}),_chunk7LNBSOVVcjs.d.call(void 0, a,"account");let m=_chunkFCWDGE62cjs.a.call(void 0, {useProxy:!n});t.address===_viem.zeroAddress&&(t.address=_viem.ethAddress),r.address===_viem.zeroAddress&&(r.address=_viem.ethAddress);let p=_nullishCoalesce(u, () => (r)),c=[{protocol:"enso",action:"route",args:{tokenIn:t.address,tokenOut:p.address,destinationChainId:t.chainId===p.chainId?void 0:p.chainId,refundReceiver:a,amountIn:o,slippage:s*100}}];if(u&&c.push({protocol:"erc4626",action:"deposit",args:{amountIn:{useOutputOfCallAt:0},tokenIn:u.address,primaryAddress:r.address,tokenOut:r.address}}),l){let A=c.length;c.push({protocol:"enso",action:"balance",args:{token:r.address}},{protocol:"erc20",action:"approve",args:{amount:{useOutputOfCallAt:A},spender:l,token:r.address}},{protocol:"enso",action:"call",args:{address:l,args:[a,{useOutputOfCallAt:A}],method:"stakeOnBehalf",abi:"function stakeOnBehalf(address account, uint256 amount) external"}},{protocol:"enso",action:"balance",args:{token:l}})}let d=await m.getBundleData({fromAddress:a,receiver:a,spender:a,chainId:t.chainId,routingStrategy:"router"},c),f=_nullishCoalesce(_optionalChain([l, 'optionalAccess', _175 => _175.toLowerCase, 'call', _176 => _176()]), () => (r.address.toLowerCase()));return{amountOut:_nullishCoalesce(_nullishCoalesce(d.minAmountsOut[f], () => (d.amountsOut[f])), () => ("0")),amountIn:o,allowanceRequirements:this.parseAllowanceRequirements({tokenIn:t,rawAmount:o,spender:d.tx.to}),name:this.name,swapFeeBps:0,priceImpactPercentage:d.priceImpact?d.priceImpact/100:null,getCalldata:()=>({address:d.tx.to,data:d.tx.data,value:BigInt(_nullishCoalesce(d.tx.value, () => (0)))})}}}, _class12),ve=new At;function sA({tokenIn:e,loanToken:t,bendVault:r,rewardVault:o,amount:s,slippage:a},i){let{getTokenPrice:n}=se({tokens:e&&t?[e,t]:void 0}),l=Hn({tokenIn:e,loanToken:t,bendVault:r,rewardVault:o,amount:s?_viem.parseUnits.call(void 0, s,_nullishCoalesce(_optionalChain([e, 'optionalAccess', _177 => _177.decimals]), () => (18))).toString():void 0,slippage:a},i),{data:u}=Gr({sharesAmount:BigInt(_nullishCoalesce(_optionalChain([l, 'access', _178 => _178.data, 'optionalAccess', _179 => _179.amountOut]), () => (0))),vaultAddress:r.address}),{data:m}=xe({tokenIn:e,tokenOut:t,formattedAmountIn:s,formattedAmountOut:_nullishCoalesce(_optionalChain([u, 'optionalAccess', _180 => _180.formatted]), () => ("0"))}),p=_optionalChain([e, 'optionalAccess', _181 => _181.chainId])&&e.chainId!==_internal.defaultChainId,{data:c,isLoading:d}=Se({address:_viem.zeroAddress,chainId:p?_optionalChain([e, 'optionalAccess', _182 => _182.chainId]):void 0},{opts:{isEnabled:!!p}}),f=_nullishCoalesce(_optionalChain([l, 'access', _183 => _183.data, 'optionalAccess', _184 => _184.getCalldata, 'optionalCall', _185 => _185({account:_viem.zeroAddress}), 'optionalAccess', _186 => _186.value]), () => (0n)),y=_nullishCoalesce(_optionalChain([c, 'optionalAccess', _187 => _187.balance]), () => ({raw:"0",formatted:"0"})),A=p&&f>0n&&!d&&f>BigInt(y.raw),R=p&&f>0n?_viem.formatEther.call(void 0, f):void 0;return{...l,zapSupplyAmount:u,priceImpact:m,hasInsufficientNativeBalance:A,isCrossChain:p,nativeFee:R,refresh:()=>{l.mutate()}}}function Hn({tokenIn:e,loanToken:t,bendVault:r,rewardVault:o,amount:s,slippage:a},i){let{address:n}=_hooks.useBeraWallet.call(void 0, ),l=!!e&&!!t&&!!r&&!!s&&!!n&&!_chunk22J3YJDNcjs.e.call(void 0, t.address,e.address)&&e.chainId&&Number(s)>0&&!!a,u=_hooks.usePublicClient.call(void 0, );return _swr2.default.call(void 0, l?["useBendZapSupply",e,t,r,o,s,a]:null,async([,p,c,d,f,y,A])=>(_chunk7LNBSOVVcjs.c.call(void 0, u),_chunk7LNBSOVVcjs.d.call(void 0, n,"fromAddress"),_chunk7LNBSOVVcjs.d.call(void 0, _optionalChain([p, 'optionalAccess', _188 => _188.address]),"tokenInAddress"),_chunk7LNBSOVVcjs.b.call(void 0, _optionalChain([p, 'optionalAccess', _189 => _189.chainId]),"tokenInChainId"),await ve.getQuote({tokenIn:p,tokenOut:d,underlyingToken:c,amount:y,slippage:A,account:n,rewardVault:f})),{..._optionalChain([i, 'optionalAccess', _190 => _190.opts]),refreshInterval:1e5})}var xo=async({fromAddress:e,amountIn:t,tokenIn:r,chainId:o,ensoClient:s,bundle:a,publicClient:i})=>{let n=[];if(r!==_viem.ethAddress){let l=await s.getApprovalData({fromAddress:e,tokenAddress:r,chainId:o,amount:t}),u=!0;i&&(u=await i.readContract({address:r,abi:_viem.erc20Abi,functionName:"allowance",args:[e,l.spender]})<BigInt(t)),u&&n.push({to:l.tx.to,data:l.tx.data,value:l.tx.value,gasLimit:BigInt(l.gas)})}return n.push({to:a.tx.to,data:a.tx.data,value:a.tx.value,gasLimit:BigInt(a.gas)}),n};async function vo({fromAddress:e,amountIn:t,tokenIn:r,tokenOut:o,chainId:s,ensoClient:a,destinationChainId:i,slippage:n,publicClient:l}){if(!e)throw new (0, _chunkC6ZGUO4Hcjs.h)({property:"fromAddress",value:e,expected:"address"});o===_viem.zeroAddress&&(o=_viem.ethAddress);let u={protocol:"enso",action:"route",args:{tokenIn:r,tokenOut:o,amountIn:t,slippage:n*100}};i&&i!==s&&(u.args={...u.args,destinationChainId:i,refundReceiver:e});let m=await a.getBundleData({fromAddress:e,receiver:e,spender:e,chainId:s,routingStrategy:"router"},[u]),p=await xo({fromAddress:e,amountIn:t,tokenIn:r,chainId:s,ensoClient:a,bundle:m,publicClient:l});return{bundle:m,transactions:p}}function Bo(e,t){let r=_hooks.usePublicClient.call(void 0, ),o=_hooks.useConfig.call(void 0, ),{address:s}=_hooks.useBeraWallet.call(void 0, ),{tokenList:a,refresh:i}=ee(),n=_nullishCoalesce(_optionalChain([e, 'optionalAccess', _191 => _191.walletAddress]), () => (s)),l=_react.useMemo.call(void 0, ()=>new Map(_nullishCoalesce(_optionalChain([(_nullishCoalesce(_optionalChain([e, 'optionalAccess', _192 => _192.tokens]), () => (a))), 'optionalAccess', _193 => _193.map, 'call', _194 => _194(p=>[p.address.toLowerCase(),p])]), () => ([]))),[a,_optionalChain([e, 'optionalAccess', _195 => _195.tokens])]),u=r&&a!==void 0&&n?["usePollWalletBalances",n,Array.from(l.values())]:null,m=_swr2.default.call(void 0, u,async([,p,c])=>_chunkFCWDGE62cjs.c.call(void 0, {account:p,tokenList:c,wagmiConfig:o}),{refreshInterval:1e5,..._optionalChain([t, 'optionalAccess', _196 => _196.opts])});return{...m,refresh:()=>{_optionalChain([m, 'optionalAccess', _197 => _197.mutate, 'optionalCall', _198 => _198()]),i()}}}function SA({tokenIn:e,tokenOut:t,amount:r,slippage:o}){let{address:s}=_hooks.useBeraWallet.call(void 0, ),a=_hooks.useConfig.call(void 0, ),i=_chunkFCWDGE62cjs.a.call(void 0, ),{refresh:n}=Bo(),l=!!e&&!!t&&!!r&&Number(r)>0&&!!o&&!!s&&!!e.chainId,m=_swr2.default.call(void 0, l?["useEnsoSwapBundle",e,t,r,o]:null,async([,p,c,d,f])=>{_chunk7LNBSOVVcjs.d.call(void 0, s,"fromAddress"),_chunk7LNBSOVVcjs.d.call(void 0, _optionalChain([p, 'optionalAccess', _199 => _199.address]),"tokenInAddress"),_chunk7LNBSOVVcjs.b.call(void 0, _optionalChain([p, 'optionalAccess', _200 => _200.chainId]),"tokenInChainId"),_chunk7LNBSOVVcjs.d.call(void 0, _optionalChain([c, 'optionalAccess', _201 => _201.address]),"tokenOutAddress"),_chunk7LNBSOVVcjs.e.call(void 0, d,"amount"),_chunk7LNBSOVVcjs.e.call(void 0, f,"slippage");let y=_core.getPublicClient.call(void 0, a,{chainId:p.chainId});_chunk7LNBSOVVcjs.c.call(void 0, y);let A=_viem.parseUnits.call(void 0, d,p.decimals).toString();return vo({fromAddress:s,amountIn:A,tokenIn:p.address,tokenOut:c.address,chainId:p.chainId,ensoClient:i,destinationChainId:_internal.defaultChainId,slippage:f,publicClient:y})},{refreshInterval:1e5,isEnabled:l});return{...m,refresh:()=>{m.mutate(),n()}}}function UA({inputToken:e,amount:t,underlyingToken:r,slippage:o,tokenOut:s},a){let{address:i}=_hooks.useBeraWallet.call(void 0, ),n=_nullishCoalesce(i, () => (_internal.chainConfigs[_internal.defaultChainId].bex.aggregatorsRouterExecutor)),u=!!e&&!!t&&Number(t)>0&&!!e.chainId&&!!r&&!!o?["useZapStakeBera",e,t,n,o,r,s]:null,m=_swr2.default.call(void 0, u,async([,c,d,f,y,A,R])=>{let w=_viem.parseUnits.call(void 0, d,c.decimals).toString();return ve.getQuote({account:f,amount:w,tokenIn:c,underlyingToken:A,tokenOut:R,slippage:y})},{..._optionalChain([a, 'optionalAccess', _202 => _202.opts]),refreshInterval:1e5}),{data:p}=xe({tokenIn:e,tokenOut:s,formattedAmountIn:t,formattedAmountOut:_viem.formatUnits.call(void 0, BigInt(_nullishCoalesce(_optionalChain([m, 'access', _203 => _203.data, 'optionalAccess', _204 => _204.amountOut]), () => ("0"))),s.decimals)});return{...m,data:{...m.data,priceImpactPercentage:p,isCrossChain:e&&s.chainId!==_optionalChain([e, 'optionalAccess', _205 => _205.chainId])},refresh:()=>{m.mutate()}}}var _graymatter = require('gray-matter'); var _graymatter2 = _interopRequireDefault(_graymatter);function Be(e){return Object.values(e).some(t=>Array.isArray(t)?t.some(r=>typeof r=="object"&&r!==null?Be(r):!!r):typeof t=="object"&&t!==null?Be(t):!!t)}var Do=({proposal:e,currentTopic:t,onError:r})=>{let o=_chunkMUCEYO3Ecjs.s.call(void 0, e,t),s=[];if(o.actions=e.actions.map((n,l)=>{let u={};if(u.target=_chunkMUCEYO3Ecjs.o.call(void 0, {fieldOrType:"address",value:n.target}),n.type==="custom-action")if(n.input==="ABI")if(u.ABI=_chunkMUCEYO3Ecjs.o.call(void 0, {fieldOrType:"abi",value:n.ABI}),!n.functionSignature)u.functionSignature="Required";else try{let p=_viem.parseAbiItem.call(void 0, n.functionSignature);p.type!=="function"?(console.error("parsedSignatureAbi is not a function",p),u.functionSignature="Invalid ABI"):(u.args=p.inputs.map((c,d)=>{try{return"components"in c?_chunkMUCEYO3Ecjs.o.call(void 0, {fieldOrType:c.type,value:_optionalChain([n, 'access', _206 => _206.args, 'optionalAccess', _207 => _207[d]]),components:c.components}):_chunkMUCEYO3Ecjs.o.call(void 0, {fieldOrType:c.type,value:_optionalChain([n, 'access', _208 => _208.args, 'optionalAccess', _209 => _209[d]])})}catch (e3){return null}}),u.args.some(c=>c)||(s[l]=_viem.encodeFunctionData.call(void 0, {abi:[p],args:n.args})))}catch (e4){u.functionSignature="Invalid ABI"}else if(n.input==="rawCalldata")u.rawCalldata=_chunkMUCEYO3Ecjs.o.call(void 0, {fieldOrType:"hex",value:n.rawCalldata}),s[l]=n.rawCalldata;else if(n.input==="message")u.message=_chunkMUCEYO3Ecjs.o.call(void 0, {fieldOrType:"string",value:n.message}),s[l]=_viem.toHex.call(void 0, n.message);else throw new Error("Invalid input type");else if(n.type==="whitelist-reward-vault"||n.type==="blacklist-reward-vault"){if(u.vault=_chunkMUCEYO3Ecjs.o.call(void 0, {fieldOrType:"address",value:n.vault}),!u.vault){let p=n.type==="whitelist-reward-vault";s[l]=_viem.encodeFunctionData.call(void 0, {abi:_chunkVP7XUOSIcjs.i,functionName:"setVaultWhitelistedStatus",args:[n.vault,p,""]})}}else n.type==="whitelist-reward-vault-incentive"?(u.token=_chunkMUCEYO3Ecjs.o.call(void 0, {fieldOrType:"address",value:n.token}),u.minIncentiveRate=_chunkMUCEYO3Ecjs.o.call(void 0, {fieldOrType:"uint256",value:n.minIncentiveRate}),u.managerAddress=_chunkMUCEYO3Ecjs.o.call(void 0, {fieldOrType:"address",value:n.managerAddress}),!u.token&&!u.minIncentiveRate&&!u.managerAddress&&(s[l]=_viem.encodeFunctionData.call(void 0, {abi:_chunkVP7XUOSIcjs.k,functionName:"whitelistIncentiveToken",args:[n.token,BigInt(n.minIncentiveRate),n.managerAddress]}))):n.type==="erc20-transfer"&&(u.amount=_chunkMUCEYO3Ecjs.o.call(void 0, {fieldOrType:"uint256",value:n.amount}),u.to=_chunkMUCEYO3Ecjs.o.call(void 0, {fieldOrType:"address",value:n.to}),!u.amount&&!u.to&&(s[l]=_viem.encodeFunctionData.call(void 0, {abi:_viem.erc20Abi,functionName:"transfer",args:[n.to,BigInt(n.amount)]})));return Be(u)?u:null}),_optionalChain([r, 'optionalCall', _210 => _210(o)]),Object.getOwnPropertyNames(o).map(n=>o[n]).some(n=>Array.isArray(n)?n.filter(l=>l).length>0:n===null?!1:!!n)){console.warn("Proposal has errors",o);return}if(s.length===0)throw new Error("No actions submitted in proposal");let a=new URL(e.forumLink),i=_graymatter2.default.stringify(e.description,{title:e.title,topics:Array.from(e.topic.values()),forumLink:a.toString(),version:"1.0.0","content-encoding":"utf-8","content-type":"text/markdown",actions:e.actions.map(n=>{let l={type:n.type};return n.type==="custom-action"&&(l.inputType=n.input),l})});return[e.actions.map(n=>n.target),e.actions.map(n=>_nullishCoalesce(n.value, () => (0n))),s,i]};var Oo={type:"custom-action",target:"",ABI:"",value:0n,functionSignature:"",args:[],input:"ABI",rawCalldata:"0x",message:""},mi= exports.useCreateProposal =({initialData:e={},currentTopic:t,onError:r})=>{let[o,s]=_react.useState.call(void 0, {title:"",description:"",forumLink:"",actions:[Oo],...e,topic:new Set});_react.useEffect.call(void 0, ()=>{s(l=>({...l,topic:new Set([t.id])}))},[t]);let a=_react.useCallback.call(void 0, ()=>{s(l=>({...l,actions:[...l.actions,Oo]}))},[]),i=_react.useCallback.call(void 0, l=>{s(u=>{let m=[...u.actions];return m.splice(l,1),{...u,actions:m}})},[s]),n=_react.useCallback.call(void 0, ()=>o?Do({proposal:o,currentTopic:t,onError:r}):void 0,[o,t]);return{proposal:o,setProposal:s,addProposalAction:a,removeProposalAction:i,computeParamsAndErrors:n}};var Lo=({proposalId:e})=>{let t=_hooks.usePublicClient.call(void 0, );return _immutable2.default.call(void 0, t&&e?["useProposalSnapshot",e]:null,async([,o])=>{_chunk7LNBSOVVcjs.c.call(void 0, t);let{config:s}=_chunk22J3YJDNcjs.a.call(void 0, {chainId:t.chain.id});return(await t.readContract({abi:_chunkVP7XUOSIcjs.c,address:s.governance.governor,functionName:"proposalSnapshot",args:[BigInt(o)]})).toString()})};var lb=e=>{let{address:t}=_hooks.useBeraWallet.call(void 0, ),r=_hooks.usePublicClient.call(void 0, ),o=e.wallet||t,{data:s}=Lo({proposalId:e.proposalId}),a=e.timepoint||s;return _immutable2.default.call(void 0, a&&r&&o?["useGetPastVotes",a,o]:null,async([,n,l])=>{_chunk7LNBSOVVcjs.c.call(void 0, r);let{config:u}=_chunk22J3YJDNcjs.a.call(void 0, {chainId:r.chain.id});if(Number(n)>Date.now()/1e3)throw new Error("timepoint is in the future");let m=await r.readContract({abi:_chunkVP7XUOSIcjs.j,address:u.tokens.bgt,functionName:"getPastVotes",args:[l,BigInt(n)]});return _viem.formatUnits.call(void 0, m,18)})};var yb=({proposalId:e,wallet:t})=>{let{address:r}=_hooks.useBeraWallet.call(void 0, ),o=_hooks.usePublicClient.call(void 0, ),s=t||r;return _swr2.default.call(void 0, o&&s&&_viem.isAddress.call(void 0, s)?["useHasVoted",e,s]:null,([,a,i])=>{_chunk7LNBSOVVcjs.c.call(void 0, o);let{config:n}=_chunk22J3YJDNcjs.a.call(void 0, {chainId:o.chain.id});return o.readContract({address:n.governance.governor,abi:_chunkVP7XUOSIcjs.c,functionName:"hasVoted",args:[BigInt(a),i]})})};var Uo="0xfd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783";var Tb=({account:e,...t})=>{let r=_hooks.usePublicClient.call(void 0, ),{config:o}=_chunk22J3YJDNcjs.a.call(void 0, t);return _swr2.default.call(void 0, e&&r?["useCancellerRole",e]:null,async([,a])=>(_chunk7LNBSOVVcjs.c.call(void 0, r),await r.readContract({abi:_chunkCYKCYPFRcjs.c,address:o.governance.timelock,functionName:"hasRole",args:[Uo,a]})),{refreshInterval:18e4,revalidateOnFocus:!1})};var _infinite = require('swr/infinite'); var _infinite2 = _interopRequireDefault(_infinite);var _governance = require('@berachain/graphql/governance');var Ho=10,Ei=e=>{switch(e){case _governance.ProposalStatus.QuorumNotReached:return[_governance.ProposalStatus.Active,_governance.ProposalStatus.Pending];case _governance.ProposalStatus.PendingQueue:case _governance.ProposalStatus.Defeated:return[_governance.ProposalStatus.Active];case _governance.ProposalStatus.PendingExecution:return[_governance.ProposalStatus.InQueue];default:return[e]}};function xi(e,t={}){let r=2*(_nullishCoalesce(t.perPage, () => (Ho)));return(o,s)=>{if(o!==0&&s&&s.length<r)return null;let a=_optionalChain([t, 'access', _211 => _211.status_in, 'optionalAccess', _212 => _212.flatMap, 'call', _213 => _213(Ei), 'access', _214 => _214.filter, 'call', _215 => _215((i,n,l)=>l.indexOf(i)===n)]);return["usePollAllProposals",o,e,t.where,a,t.orderBy,t.orderDirection,r,t.text]}}function Bb(e,t){let r=_nullishCoalesce(_optionalChain([t, 'optionalAccess', _216 => _216.autoRefresh]), () => (!1)),o=_nullishCoalesce(e.perPage, () => (Ho)),s=2*o,a=xi(e.topic,e);async function i(d){if(!d)return[];let[,f,y,A,R,w,b,C,P]=d;return(await _asyncNullishCoalesce(await _chunkMUCEYO3Ecjs.r.call(void 0, {where:{topics_contains:[y],status_in:_optionalChain([R, 'optionalAccess', _217 => _217.length])?R:void 0,...A},orderBy:w,orderDirection:b,text:P,perPage:C,offset:f*C}), async () => ([]))).filter(Boolean)}let n=_infinite2.default.call(void 0, a,i,{initialSize:1,refreshInterval:_nullishCoalesce(_optionalChain([t, 'optionalAccess', _218 => _218.opts, 'optionalAccess', _219 => _219.refreshInterval]), () => (18e4)),..._optionalChain([t, 'optionalAccess', _220 => _220.opts])}),l=_react.useMemo.call(void 0, ()=>{if(!n.data)return[];let d=n.data.flat().filter(y=>y?_optionalChain([e, 'access', _221 => _221.status_in, 'optionalAccess', _222 => _222.length])?e.status_in.includes(y.status):!0:!1).sort((y,A)=>{if(!e.text)return 0;if(e.orderBy===_governance.Proposal_OrderBy.CreatedAt){let R=Number(A.createdAt)-Number(y.createdAt);return e.orderDirection==="asc"?R:-R}return 0}),f=[];for(let y=0;y<d.length;y+=o)f.push(d.slice(y,y+o));return f},[n.data,e,o]),u=_optionalChain([n, 'access', _223 => _223.data, 'optionalAccess', _224 => _224[n.data.length-1]]),m=!!u&&u.length===s,[p,c]=_react.useState.call(void 0, Date.now()/1e3);return _react.useEffect.call(void 0, ()=>{if(!r)return;let d=setInterval(()=>{c(Date.now()/1e3)},1e4);return()=>clearInterval(d)},[r]),_react.useEffect.call(void 0, ()=>{if(!n.data)return;let d=!1;for(let f of n.data.flat()){switch(f.status){case _governance.ProposalStatus.Pending:p>=Number(f.voteStartAt)&&(d=!0);break;case _governance.ProposalStatus.Active:p>=Number(f.voteEndAt)&&(d=!0);break;case _governance.ProposalStatus.InQueue:Date.now()/1e3+1>=Number(f.queueEnd)&&(d=!0);break;default:break}if(d)break}d&&n.mutate()},[n.data,p]),{...n,data:l,hasMore:m}}var Wb=(e,t)=>{let r=_nullishCoalesce(_optionalChain([t, 'optionalAccess', _225 => _225.autoRefresh]), () => (!1)),o=_hooks.usePublicClient.call(void 0, ),a=_swr2.default.call(void 0, e&&o?["usePollProposal",e]:null,([,l])=>(_chunk7LNBSOVVcjs.c.call(void 0, o),_chunkMUCEYO3Ecjs.t.call(void 0, {proposalId:l,client:o})),{..._optionalChain([t, 'optionalAccess', _226 => _226.opts]),refreshInterval:_nullishCoalesce(_optionalChain([t, 'optionalAccess', _227 => _227.opts, 'optionalAccess', _228 => _228.refreshInterval]), () => (18e4))}),[i,n]=_react.useState.call(void 0, Date.now());return _react.useEffect.call(void 0, ()=>{if(!r)return;let l=setInterval(()=>{n(Date.now()/1e3)},1e4);return()=>clearInterval(l)},[]),_react.useEffect.call(void 0, ()=>{if(a.data!==void 0)switch(a.data.status){case _governance.ProposalStatus.Pending:i>=Number(a.data.voteStartAt)&&a.mutate();break;case _governance.ProposalStatus.Active:i>=Number(a.data.voteEndAt)&&a.mutate();break;case _governance.ProposalStatus.InQueue:Date.now()/1e3+1>=Number(a.data.queueEnd)&&a.mutate();break}},[_optionalChain([a, 'access', _229 => _229.data, 'optionalAccess', _230 => _230.status]),i]),{...a,refresh:()=>_optionalChain([a, 'optionalAccess', _231 => _231.mutate, 'optionalCall', _232 => _232()])}};var Kb=e=>{let t=_hooks.usePublicClient.call(void 0, ),o=_swr2.default.call(void 0, t?["usePollProposalThreshold",e]:null,async([,s])=>{_chunk7LNBSOVVcjs.c.call(void 0, t);let a=await t.readContract({address:s,abi:_chunkVP7XUOSIcjs.c,functionName:"proposalThreshold"});return{votesThreshold:_viem.formatEther.call(void 0, a)}},{refreshInterval:18e4});return{...o,refresh:o.mutate}};var Oe=1e3,Zb= exports.usePollProposalVotes =(e,t)=>_infinite2.default.call(void 0, Hi(e,t),async([r,o])=>_chunkMUCEYO3Ecjs.w.call(void 0, {variables:{...e,limit:Oe,offset:Oe*o}}),{parallel:!0,initialSize:Number.POSITIVE_INFINITY}),Hi= exports.usePollProposalVotesQueryKey =({...e},t)=>r=>r>Math.floor(t/Oe)?null:["usePollProposalVotes",r,Oe,e.proposalId,e.orderBy,e.orderDirection];var sh=e=>{let{address:t}=_hooks.useBeraWallet.call(void 0, ),r=_hooks.usePublicClient.call(void 0, ),s=_swr2.default.call(void 0, t?["usePollUserDelegates",t]:null,async([,a])=>{_chunk7LNBSOVVcjs.c.call(void 0, r);let{config:i}=_chunk22J3YJDNcjs.a.call(void 0, {chainId:r.chain.id});if(!r||!a)throw new Error("usePollUserDelegates needs publicClient and account");let[n,l]=await Promise.all([r.readContract({address:i.tokens.bgt,abi:_chunkVP7XUOSIcjs.j,functionName:"delegates",args:[a]}),r.readContract({address:i.tokens.bgt,abi:_chunkVP7XUOSIcjs.j,functionName:"getVotes",args:[a]})]);return{delegate:n,currentVotes:_viem.formatEther.call(void 0, l)}},{..._optionalChain([e, 'optionalAccess', _233 => _233.opts]),refreshInterval:_nullishCoalesce(_optionalChain([e, 'optionalAccess', _234 => _234.opts, 'optionalAccess', _235 => _235.refreshInterval]), () => (18e4))});return{...s,refresh:()=>_optionalChain([s, 'optionalAccess', _236 => _236.mutate, 'optionalCall', _237 => _237()])}};var uh=e=>{let{data:t}=_hooks.useTransactionReceipt.call(void 0, {hash:e}),r=_hooks.usePublicClient.call(void 0, );return _swr2.default.call(void 0, t&&r?["useProposalFromTx",e]:null,async([,a])=>{if(!t)throw new Error("Transaction not found");if(t.transactionHash!==a)throw new Error("Transaction hash mismatch");return _chunkMUCEYO3Ecjs.v.call(void 0, {tx:t,publicClient:r})})};var qi={0:"pending",1:"active",2:"canceled",3:"defeated",4:"succeeded",5:"queued",6:"expired",7:"executed"},gh= exports.useProposalState =({proposalId:e,governorAddress:t})=>{let r=_hooks.usePublicClient.call(void 0, );return _immutable2.default.call(void 0, t&&r&&e?["useProposalState",e]:null,async([,s])=>{_chunk7LNBSOVVcjs.c.call(void 0, r);let a=await r.readContract({abi:_chunkVP7XUOSIcjs.c,address:t,functionName:"state",args:[BigInt(s)]});return qi[a]})};var Zi={0:"unset",1:"waiting",2:"ready",3:"done"},wh= exports.useProposalTimelockState =({proposalTimelockId:e,timelockAddress:t})=>{let r=_hooks.usePublicClient.call(void 0, );return _swr2.default.call(void 0, t&&r&&e?["useProposalTimelockState",e,t]:null,async([,s,a])=>{_chunk7LNBSOVVcjs.c.call(void 0, r);let i=await r.readContract({abi:_chunkCYKCYPFRcjs.c,address:a,functionName:"getOperationState",args:[s]});return Zi[i]},{refreshInterval:18e4})};async function Rt({at:e,publicClient:t,...r}){let{config:o}=_chunk22J3YJDNcjs.a.call(void 0, r);_chunk7LNBSOVVcjs.c.call(void 0, t);let s=await t.readContract({address:o.governance.governor,abi:_chunkVP7XUOSIcjs.c,functionName:"quorum",blockTag:"pending",args:[BigInt(_nullishCoalesce(e, () => (Math.floor(Date.now()/1e3))))]});return _viem.formatEther.call(void 0, s)}function Bh({at:e},{isEnabled:t=!0}){let r=Math.floor(Date.now()/1e3),o=_hooks.usePublicClient.call(void 0, ),s=t&&o?["useQuorum",Number(e)>r?"now":e]:null,a=_swr2.default.call(void 0, s,async([,i])=>i==="now"?Rt({publicClient:o}):Rt({at:i,publicClient:o}));return{...a,data:a.data?Number(a.data):void 0}}function ae({priceFeedMap:e},t){let r=e?Object.values(e):null,o=(_nullishCoalesce(_optionalChain([t, 'optionalAccess', _238 => _238.opts, 'optionalAccess', _239 => _239.isEnabled]), () => (!0)))&&r?["usePythLatestPrices",r]:null;return _swr2.default.call(void 0, o,async([a,i])=>await _chunkMUCEYO3Ecjs.H.call(void 0, {priceFeedId:i}))}var Wo=({asset:e,amount:t,isMint:r,isBasketModeEnabled:o},s)=>{let a=_hooks.usePublicClient.call(void 0, ),{priceFeedMap:i,flags:n}=_chunkYZV5LKIPcjs.l.call(void 0, ),{data:l}=ae({priceFeedMap:_optionalChain([e, 'optionalAccess', _240 => _240.address])&&i?{[e.address]:i[e.address]}:void 0},{opts:{isEnabled:n.isPythWrapperEnabled&&!!_optionalChain([e, 'optionalAccess', _241 => _241.address])}}),u=t&&e&&(n.isPythWrapperEnabled&&_optionalChain([l, 'optionalAccess', _242 => _242.prices, 'access', _243 => _243.length])||!n.isPythWrapperEnabled)?["useCappedGlobally",t,e,l,n.isPythWrapperEnabled,o]:null,m=_swr2.default.call(void 0, u,async([p,c,d,f,y,A])=>A?!1:(_chunk7LNBSOVVcjs.c.call(void 0, a),await _chunkMUCEYO3Ecjs.C.call(void 0, {client:a,asset:d,amount:r?c:`-${c}`,isMint:r,latestPrices:f,isPythWrapperEnabled:y})),{..._optionalChain([s, 'optionalAccess', _244 => _244.opts]),refreshInterval:0});return{...m,refresh:()=>void m.mutate()}};var Mo=({asset:e,amount:t,isMint:r,isBasketModeEnabled:o},s)=>{let a=_hooks.usePublicClient.call(void 0, ),{collateralList:i,referenceCollateral:n}=_chunkYZV5LKIPcjs.l.call(void 0, ),u=_swr2.default.call(void 0, e&&t?["useCappedRelatively",e,t,i,n]:null,async([m,p,c,d,f])=>{if(o)return!1;if(_chunk7LNBSOVVcjs.c.call(void 0, a),!r){let y=`-${c}`;return f.address!==p?!1:(await Promise.all(d.map(R=>_chunkMUCEYO3Ecjs.I.call(void 0, {client:a,asset:R.address,amount:y,isMint:r,referenceCollateral:f})))).some(R=>R)}return await _chunkMUCEYO3Ecjs.I.call(void 0, {client:a,asset:p,amount:c,isMint:r,referenceCollateral:f})},{refreshInterval:0,..._optionalChain([s, 'optionalAccess', _245 => _245.opts])});return{...u,refresh:()=>void u.mutate()}};var Xh=({collateralList:e},t)=>{let r=_hooks.usePublicClient.call(void 0, ),s=_swr2.default.call(void 0, r&&e?["useCollateralWeights",e]:void 0,async([a,i])=>(_chunk7LNBSOVVcjs.c.call(void 0, r),await _chunkMUCEYO3Ecjs.y.call(void 0, {client:r,collateralList:i})),{..._optionalChain([t, 'optionalAccess', _246 => _246.opts]),refreshInterval:_nullishCoalesce(_optionalChain([t, 'optionalAccess', _247 => _247.opts, 'optionalAccess', _248 => _248.refreshInterval]), () => (1e5))});return{...s,refresh:()=>void s.mutate()}};var _o=()=>{let e=_hooks.usePublicClient.call(void 0, ),{address:t}=_hooks.useBeraWallet.call(void 0, ),{collateralList:r}=_chunkYZV5LKIPcjs.l.call(void 0, ),o=_hooks.useConfig.call(void 0, ),a=_swr2.default.call(void 0, t&&r&&e?["useHoneyBalances",t,r]:null,async([i,n,l])=>{_chunk7LNBSOVVcjs.c.call(void 0, e);let u=[..._nullishCoalesce(l, () => ([])),_chunk22J3YJDNcjs.d.call(void 0, {})];returnawait _asyncOptionalChain([(await _chunkFCWDGE62cjs.c.call(void 0, {account:n,tokenList:u,wagmiConfig:o})), 'optionalAccess', async _249 => _249.reduce, 'call', async _250 => _250((c,d)=>(c[d.address]=d,c),{})])},{refreshInterval:1e4});return{...a,refresh:()=>a.mutate()}};var Qo=e=>{let t=_hooks.usePublicClient.call(void 0, ),{collateralList:r}=_chunkYZV5LKIPcjs.l.call(void 0, ),s=_swr2.default.call(void 0, r&&t?["useHoneyVaultsBalance",r]:null,async([a,i])=>(_chunk7LNBSOVVcjs.c.call(void 0, t),await _chunkMUCEYO3Ecjs.G.call(void 0, {client:t,collateralList:i})),{..._optionalChain([e, 'optionalAccess', _251 => _251.opts]),refreshInterval:1e5});return{...s,refresh:()=>void s.mutate()}};var Yo=({collateral:e},t)=>{let r=_hooks.usePublicClient.call(void 0, ),{priceFeedMap:o,flags:s}=_chunkYZV5LKIPcjs.l.call(void 0, ),{data:a}=ae({priceFeedMap:_optionalChain([e, 'optionalAccess', _252 => _252.address])?{[e.address]:o[e.address]}:void 0},{opts:{isEnabled:s.isPythWrapperEnabled&&!!_optionalChain([e, 'optionalAccess', _253 => _253.address])}}),i=r&&e&&(s.isPythWrapperEnabled&&_optionalChain([a, 'optionalAccess', _254 => _254.prices, 'access', _255 => _255.length])||!s.isPythWrapperEnabled)?["useIsBadCollateralAsset",e,a,s.isPythWrapperEnabled]:null,n=_swr2.default.call(void 0, i,async([l,u,m,p])=>(_chunk7LNBSOVVcjs.c.call(void 0, r),await _chunkMUCEYO3Ecjs.B.call(void 0, {client:r,collateral:u,latestPrices:m,isPythWrapperEnabled:p})),{..._optionalChain([t, 'optionalAccess', _256 => _256.opts]),refreshInterval:_nullishCoalesce(_optionalChain([t, 'optionalAccess', _257 => _257.opts, 'optionalAccess', _258 => _258.refreshInterval]), () => (1e5))});return{...n,refresh:()=>void n.mutate()}};var Go=({lowerThan:e,vaultsBalances:t,state:r,collateralList:o})=>{if(!(r.actionType==="mint")&&!r.isBasketModeEnabled){let a=_optionalChain([t, 'optionalAccess', _259 => _259.find, 'call', _260 => _260(l=>l.address.toLowerCase()===r.collaterals[0].address.toLowerCase())]),i=new (0, _chunkPKXAW6MOcjs.a)(_nullishCoalesce(_optionalChain([a, 'optionalAccess', _261 => _261.balance, 'access', _262 => _262.formatted]), () => ("0"))).lte(e),n=o.filter(l=>{let u=_optionalChain([t, 'optionalAccess', _263 => _263.find, 'call', _264 => _264(m=>m.address.toLowerCase()===l.address.toLowerCase())]);return new (0, _chunkPKXAW6MOcjs.a)(_nullishCoalesce(_optionalChain([u, 'optionalAccess', _265 => _265.balance, 'access', _266 => _266.formatted]), () => ("0"))).lte(e)});return{isLow:i,isLiquidityLowCollaterals:n}}return{isLow:!1,isLiquidityLowCollaterals:[]}},gl=({vaultsBalances:e,redeemedVaultBalance:t,state:r,collateralList:o})=>{if(!(r.actionType==="mint")&&e&&t){let a=o.filter(i=>{let n=e.find(u=>u.address.toLowerCase()===i.address.toLowerCase()),l=r.toAmount[r.collaterals.indexOf(i)];return new (0, _chunkPKXAW6MOcjs.a)(_nullishCoalesce(_optionalChain([n, 'optionalAccess', _267 => _267.balance, 'access', _268 => _268.formatted]), () => ("0"))).lt(_nullishCoalesce(l, () => ("0")))});return{isMore:!!a.find(i=>_chunk22J3YJDNcjs.e.call(void 0, i,r.collaterals[0])),isRedeemMoreThanLiquidityCollaterals:a}}return{isMore:!1,isRedeemMoreThanLiquidityCollaterals:void 0}};function yl({state:e,honeyBalances:t,...r}){let{config:o}=_chunk22J3YJDNcjs.a.call(void 0, r),s=e.actionType==="mint";return!s&&t?new (0, _chunkPKXAW6MOcjs.a)(e.fromAmount[0]).gt(_nullishCoalesce(_optionalChain([t, 'access', _269 => _269[o.honey.token], 'optionalAccess', _270 => _270.balance, 'access', _271 => _271.formatted]), () => ("0"))):s&&t&&e.isBasketModeEnabled!==void 0&&e.collaterals.length>0?e.isBasketModeEnabled?e.collaterals.some((a,i)=>{let n=e.fromAmount[i];return new (0, _chunkPKXAW6MOcjs.a)(_optionalChain([t, 'access', _272 => _272[a.address], 'optionalAccess', _273 => _273.balance, 'access', _274 => _274.formatted])).lt(n)}):new (0, _chunkPKXAW6MOcjs.a)(_optionalChain([t, 'access', _275 => _275[e.collaterals[0].address], 'optionalAccess', _276 => _276.balance, 'access', _277 => _277.formatted])).lt(e.fromAmount[0]):!1}var BR=({actionType:e,collaterals:t,fromAmount:r,toAmount:o,isBasketModeEnabled:s})=>{let a={actionType:e,collaterals:t,fromAmount:r,toAmount:o,isBasketModeEnabled:s},i=e==="mint",{data:n}=Yo({collateral:t[0]}),{collateralList:l}=_chunkYZV5LKIPcjs.l.call(void 0, ),{isBlacklisted:u,isDepegged:m}=_nullishCoalesce(n, () => ({isBlacklisted:!1,isDepegged:!1})),{data:p}=Wo({asset:t[0],amount:i?r[0]:o[0],isMint:i,isBasketModeEnabled:s}),{data:c}=Mo({asset:_optionalChain([t, 'access', _278 => _278[0], 'optionalAccess', _279 => _279.address]),amount:i?r[0]:o[0],isMint:i,isBasketModeEnabled:s}),{data:d}=_o(),{data:f}=Qo(),y=_optionalChain([t, 'access', _280 => _280[0], 'optionalAccess', _281 => _281.address]),A=_optionalChain([f, 'optionalAccess', _282 => _282.find, 'call', _283 => _283(T=>T.address.toLowerCase()===y.toLowerCase())]),[R,w]=_react.useMemo.call(void 0, ()=>{let T=Go({lowerThan:1,vaultsBalances:f,state:a,collateralList:l}),E=Go({lowerThan:1e3,vaultsBalances:f,state:a,collateralList:l});return[T,E]},[f,a]),{isMore:b,isRedeemMoreThanLiquidityCollaterals:C}=_react.useMemo.call(void 0, ()=>gl({vaultsBalances:f,redeemedVaultBalance:A,state:a,collateralList:l}),[f,A,a,l]),P=_react.useMemo.call(void 0, ()=>yl({state:a,honeyBalances:d}),[a,d]);return{isLiquidityDepleted:R.isLow,isLiquidityDepletedCollaterals:R.isLiquidityLowCollaterals,isRedeemMoreThanLiquidity:b,isRedeemMoreThanLiquidityCollaterals:C,isLowLiquidity:w.isLow,isLiquidityLowCollaterals:w.isLiquidityLowCollaterals,isBlacklisted:a.isBasketModeEnabled?!1:u,isDepegged:a.isBasketModeEnabled?!1:m,isCappedGlobally:p,isCappedRelatively:c,isExceedingBalance:P}};function UR({days:e}){let t=_swr2.default.call(void 0, ["useHoneyChartData",e],async([r,o])=>await _chunkMUCEYO3Ecjs.x.call(void 0, {days:o}));return{...t,refresh:()=>t.mutate()}}function MR(){let e=_swr2.default.call(void 0, ["useHoneyGlobalData"],()=>_chunkMUCEYO3Ecjs.D.call(void 0, )),t=_optionalChain([e, 'access', _284 => _284.data, 'optionalAccess', _285 => _285.honeySnapshots, 'access', _286 => _286.reduce, 'call', _287 => _287((r,o)=>new (0, _chunkPKXAW6MOcjs.a)(o.totalVolume).plus(r),new (0, _chunkPKXAW6MOcjs.a)(0))]);return{...e,data:{...e.data,dailyVolume:t},refresh:()=>e.mutate()}}function Fo({state:e},t){let r=_hooks.usePublicClient.call(void 0, ),{priceFeedMap:o,flags:s,collateralList:a}=_chunkYZV5LKIPcjs.l.call(void 0, ),{data:i}=ae({priceFeedMap:o},{opts:{isEnabled:s.isPythWrapperEnabled&&!!a.length}}),n=e.actionType==="mint",l=r&&e&&a.length>0&&(s.isPythWrapperEnabled&&_optionalChain([i, 'optionalAccess', _288 => _288.prices, 'access', _289 => _289.length])||!s.isPythWrapperEnabled)?["useIsBasketModeEnabled",n,i,s.isPythWrapperEnabled,a]:null,u=_swr2.default.call(void 0, l,async([m,p,c,d,f])=>(_chunk7LNBSOVVcjs.c.call(void 0, r),await _chunkMUCEYO3Ecjs.L.call(void 0, {client:r,isMint:p,collateralList:f,latestPrices:c,isPythWrapperEnabled:d})),{..._optionalChain([t, 'optionalAccess', _290 => _290.opts]),refreshInterval:_nullishCoalesce(_optionalChain([t, 'optionalAccess', _291 => _291.opts, 'optionalAccess', _292 => _292.refreshInterval]), () => (1e4))});return{...u,data:u.data,refresh:()=>void u.mutate()}}var Cl={actionType:"mint",collaterals:[],fromAmount:[],toAmount:[],isBasketModeEnabled:!1,isTyping:!1,isSubmitting:!1,isLoading:!1};function qo(e,t){switch(t.type){case"RESET_AMOUNTS":return{...e,fromAmount:[],toAmount:[]};case"ACTION_TYPE_CHANGE":return qo({...e,actionType:t.value},{type:"RESET_AMOUNTS"});case"COLLATERALS_CHANGE":return{...e,collaterals:t.value,fromAmount:[],toAmount:[]};case"FROM_AMOUNT_CHANGE":{let r=e.fromAmount;return r[t.index]=t.value,{...e,fromAmount:r}}case"TO_AMOUNT_CHANGE":{let r=e.toAmount;return r[t.index]=t.value,{...e,toAmount:r}}case"PREVIEW_CHANGE":{let r=t.value,o=e.actionType==="mint",s=e.collaterals.map((i,n)=>t.changedAsset===i.address?o?e.fromAmount[n]:e.toAmount[n]:r.collaterals[i.address]?_viem.formatUnits.call(void 0, r.collaterals[i.address],i.decimals):e.isBasketModeEnabled?"0":""),a=_chunk22J3YJDNcjs.e.call(void 0, t.changedAsset,"HONEY",{chainId:_internal.defaultChainId})?o?e.toAmount[0]:e.fromAmount[0]:r.honey?_viem.formatUnits.call(void 0, r.honey,18):e.isBasketModeEnabled?"0":"";return{...e,fromAmount:o?s:[a],toAmount:o?[a]:s}}case"IS_BASKET_MODE_ENABLED_CHANGE":return{...e,isBasketModeEnabled:t.value,fromAmount:[],toAmount:[]};case"IS_TYPING_CHANGE":return{...e,isTyping:t.value};case"IS_SUBMITTING_CHANGE":return{...e,isSubmitting:t.value};case"IS_LOADING_CHANGE":return{...e,isLoading:t.value};default:throw new Error(`Unknown action type: ${t}`)}}var tw=()=>{let{collateralList:e}=_chunkYZV5LKIPcjs.l.call(void 0, ),[t,r]=_react.useReducer.call(void 0, qo,Cl,s=>({...s,collaterals:e})),{data:o}=Fo({state:t});return _react.useEffect.call(void 0, ()=>{o!==void 0&&t.isBasketModeEnabled!==o&&(r({type:"IS_LOADING_CHANGE",value:!0}),r({type:"IS_BASKET_MODE_ENABLED_CHANGE",value:o}),r({type:"IS_LOADING_CHANGE",value:!1}))},[o]),{state:t,dispatch:r}};var lw=({pythPriceFeedCalldata:e,tokenListLength:t},r)=>{let o=_hooks.usePublicClient.call(void 0, ),s=(_nullishCoalesce(_optionalChain([r, 'optionalAccess', _293 => _293.opts, 'optionalAccess', _294 => _294.isEnabled]), () => (!0)))&&e&&e.length>0?["usePythUpdateFee",e]:null,{data:a=_chunkPKXAW6MOcjs.k.call(void 0, t),isLoading:i}=_immutable2.default.call(void 0, s,async([n,l])=>(_chunk7LNBSOVVcjs.c.call(void 0, o),await _chunkMUCEYO3Ecjs.J.call(void 0, {client:o,priceFeedId:l})));return{QUERY_KEY:s,data:a,isLoading:i}};function dw(e){return _react.useMemo.call(void 0, ()=>{if(e)return _chunkMUCEYO3Ecjs.P.call(void 0, e)},[e])}var Dl=e=>{let{address:t}=_hooks.useBeraWallet.call(void 0, ),r=_hooks.usePublicClient.call(void 0, ),s=_swr2.default.call(void 0, t&&r?["useBgtUnstakedBalance",t]:null,async([,a])=>{_chunk7LNBSOVVcjs.c.call(void 0, r);let{config:i}=_chunk22J3YJDNcjs.a.call(void 0, {chainId:r.chain.id}),n=await r.readContract({address:i.tokens.bgt,abi:_chunkVP7XUOSIcjs.j,functionName:"unboostedBalanceOf",args:[a]});return _viem.formatEther.call(void 0, n)},{...e,refreshInterval:_nullishCoalesce(_optionalChain([e, 'optionalAccess', _295 => _295.opts, 'optionalAccess', _296 => _296.refreshInterval]), () => (1e5))});return{...s,refresh:()=>s.mutate()}};var Hl=()=>{let{address:e}=_hooks.useBeraWallet.call(void 0, ),t=_hooks.usePublicClient.call(void 0, ),o=_swr2.default.call(void 0, e&&t?["useClaimableFees",e]:null,async([,s])=>{_chunk7LNBSOVVcjs.c.call(void 0, t);let{config:a}=_chunk22J3YJDNcjs.a.call(void 0, {chainId:t.chain.id}),i=await _chunkMUCEYO3Ecjs.fa.call(void 0, {account:s,vaultAddress:a.pol.staker,publicClient:t});return _viem.formatUnits.call(void 0, i,18)},{refreshInterval:18e4*2});return{...o,refresh:()=>_optionalChain([o, 'optionalAccess', _297 => _297.mutate, 'optionalCall', _298 => _298()])}};var _api = require('@berachain/graphql/pol/api');var Ml=(e,t=!1)=>["useRewardVaults",e,t],kt= exports.useRewardVaults =(e,t)=>{let r=Ml(e.filter,e.onChainIncentives),o=_hooks.usePublicClient.call(void 0, ),s=_swr2.default.call(void 0, _nullishCoalesce(_optionalChain([t, 'optionalAccess', _299 => _299.opts, 'optionalAccess', _300 => _300.isEnabled]), () => (!0))?r:null,async([,a,i])=>await _chunkMUCEYO3Ecjs.R.call(void 0, {filter:a,publicClient:i?o:void 0}),{..._optionalChain([t, 'optionalAccess', _301 => _301.opts])});return{...s,refresh:s.mutate}};var Lw=(e={},{isEnabled:t=!0}={})=>{let r=kt({filter:{orderBy:_api.GqlRewardVaultOrderBy.Apr,orderDirection:_api.GqlRewardVaultOrderDirection.Desc,pageSize:1,where:e}},{opts:{refreshInterval:0,revalidateOnFocus:!1,refreshWhenOffline:!1,isEnabled:t}});return{isLoading:r.isLoading,highestApr:_optionalChain([r, 'access', _302 => _302.data, 'optionalAccess', _303 => _303.gaugeList, 'access', _304 => _304[0], 'access', _305 => _305.dynamicData, 'optionalAccess', _306 => _306.apr]),refresh:r.mutate}};var $o=e=>{let t=_hooks.usePublicClient.call(void 0, ),r=_swr2.default.call(void 0, t?"usePollGlobalData":null,async()=>(_chunk7LNBSOVVcjs.c.call(void 0, t),_chunkMUCEYO3Ecjs.S.call(void 0, t)),{revalidateOnFocus:!1,..._optionalChain([e, 'optionalAccess', _307 => _307.opts])});return{...r,refresh:r.mutate}};var Kl=()=>"usePollMarkets",Yw= exports.usePollMarkets =e=>{let t=Kl(),r=_immutable2.default.call(void 0, t,async()=>await _chunkMUCEYO3Ecjs.U.call(void 0, ),{..._optionalChain([e, 'optionalAccess', _308 => _308.opts])});return{...r,refresh:()=>r.mutate()}};function Zw({receiptTokenAddresses:e,account:t,version:r},o){let s=_hooks.usePublicClient.call(void 0, ),a=e&&t&&s&&_viem.isAddress.call(void 0, t)&&r?["useQueuedBeraUnlock",e,t,r]:null,i=_immutable2.default.call(void 0, a,async([,n,l,u])=>(_chunk7LNBSOVVcjs.c.call(void 0, s),await Promise.all(n.map(async m=>await _chunkMUCEYO3Ecjs.ca.call(void 0, {contractAddress:m,accountAddress:l,publicClient:s,version:u}))).then(m=>m.flat())),{refreshInterval:1e4,..._optionalChain([o, 'optionalAccess', _309 => _309.opts])});return{...i,refresh:()=>i.mutate()}}var ak=({address:e},t)=>{let r=e?["useRewardTokenToBeraRate",e]:null,o=_hooks.usePublicClient.call(void 0, {chainId:_internal.defaultChainId});return _swr2.default.call(void 0, r,async([s,a])=>{if(!a||!_viem.isAddress.call(void 0, a))throw new (0, _chunkC6ZGUO4Hcjs.h)({property:"address",value:a,expected:"Address"});return _chunk7LNBSOVVcjs.c.call(void 0, o),_chunkMUCEYO3Ecjs.W.call(void 0, {address:a,publicClient:o})},{..._optionalChain([t, 'optionalAccess', _310 => _310.opts])})};async function Ue({address:e,publicClient:t}){_chunk7LNBSOVVcjs.c.call(void 0, t);let[r,o,s,a]=await t.multicall({contracts:[{address:e,abi:_viem.erc20Abi,functionName:"decimals"},{address:e,abi:_viem.erc20Abi,functionName:"name"},{address:e,abi:_viem.erc20Abi,functionName:"symbol"},{address:e,abi:_viem.erc20Abi,functionName:"totalSupply"}],allowFailure:!0});return{address:e,decimals:r.result,name:o.result,symbol:s.result,totalSupply:a.result!==void 0?r.status==="success"?_viem.formatUnits.call(void 0, a.result,r.result):a.result.toString():void 0}}var nu=e=>e&&_viem.isAddress.call(void 0, e)?["onChainRewardVault",e.toLowerCase()]:null,zo=({address:e},t)=>{let r=_hooks.usePublicClient.call(void 0, ),o=_nullishCoalesce(_optionalChain([t, 'access', _311 => _311.opts, 'optionalAccess', _312 => _312.isEnabled]), () => (!0)),s=nu(e);return _swr2.default.call(void 0, o&&r?s:null,async([,a])=>{_chunk7LNBSOVVcjs.c.call(void 0, r);let{config:i}=_chunk22J3YJDNcjs.a.call(void 0, {chainId:r.chain.id}),n=await _chunkMUCEYO3Ecjs.Z.call(void 0, {address:a,publicClient:r}),[l,u,m]=await Promise.all([_chunkMUCEYO3Ecjs.Y.call(void 0, {address:a,stakingToken:n,publicClient:r}),r.readContract({address:i.pol.beraChef,abi:_chunkVP7XUOSIcjs.i,functionName:"isWhitelistedVault",args:[a]}),r.readContract({address:n,abi:_viem.erc20Abi,functionName:"balanceOf",args:[a]})]),[p,c]=await Promise.all([Ue({address:n,publicClient:r}),Promise.all(l.map(d=>_chunkMUCEYO3Ecjs.z.call(void 0, {address:d.token,chainId:r.chain.id,publicClient:r})))]);if(!p)throw new Error("Staking token not found");return{id:a,address:a,vaultAddress:a,stakingToken:{address:n,name:_nullishCoalesce(p.name, () => ("")),symbol:_nullishCoalesce(p.symbol, () => ("")),decimals:_nullishCoalesce(p.decimals, () => (0))},stakingTokenAmount:_viem.formatUnits.call(void 0, m,_nullishCoalesce(p.decimals, () => (18))),isVaultWhitelisted:u,activeIncentives:l.map((d,f)=>({active:!!d.remainingAmount,remainingAmount:d.remainingAmount,remainingAmountUsd:"0",incentiveRate:d.incentiveRate,incentiveRateUsd:"0",tokenAddress:d.token,token:c[f]}))}})};var lu=e=>e?["useRewardVault",e.toLowerCase()]:null,Ck= exports.useRewardVault =(e,t)=>{let r=lu(e),o=_swr2.default.call(void 0, r,async([i,n])=>_chunkMUCEYO3Ecjs.X.call(void 0, {address:n}),{..._optionalChain([t, 'optionalAccess', _313 => _313.opts])}),s=_nullishCoalesce(_optionalChain([t, 'optionalAccess', _314 => _314.opts, 'optionalAccess', _315 => _315.isEnabled]), () => (((!!o.error||!o.isLoading)&&!o.data))),a=zo({address:e},{opts:{..._optionalChain([t, 'optionalAccess', _316 => _316.opts]),isEnabled:s}});return{data:_nullishCoalesce(a.data, () => (o.data)),error:_nullishCoalesce(a.error, () => (o.error)),isLoading:a.isLoading||o.isLoading,isValidating:_nullishCoalesce(a.isValidating, () => (o.isValidating)),refresh:()=>{o.mutate(),a.mutate()}}};function vk({address:e,stakingToken:t}){let r=_hooks.usePublicClient.call(void 0, ),s=_swr2.default.call(void 0, r&&e&&t?["useRewardVaultIncentives",e,t]:null,async([,a,i])=>(_chunk7LNBSOVVcjs.c.call(void 0, r),await _chunkMUCEYO3Ecjs.Y.call(void 0, {address:a,stakingToken:i,publicClient:r})));return{...s,refresh:()=>_optionalChain([s, 'optionalAccess', _317 => _317.mutate, 'optionalCall', _318 => _318()])}}var cu=(e,t)=>{let r=_hooks.usePublicClient.call(void 0, ),s=_swr2.default.call(void 0, r&&e?["useRewardVaultRewards",e]:null,async([,a])=>(_chunk7LNBSOVVcjs.c.call(void 0, r),await _chunkMUCEYO3Ecjs.O.call(void 0, a,r)),{..._optionalChain([t, 'optionalAccess', _319 => _319.opts])});return{...s,refresh:()=>_optionalChain([s, 'optionalAccess', _320 => _320.mutate, 'optionalCall', _321 => _321()])}};var Ne=e=>{let t=[],r="";for(let o of e){if(!o.timestamp&&!o._timestamp)continue;let s=(_nullishCoalesce(_nullishCoalesce(_optionalChain([o, 'optionalAccess', _322 => _322.timestamp]), () => (_optionalChain([o, 'optionalAccess', _323 => _323._timestamp]))), () => (0)))*1e3,a=new Date(s),i=a.toDateString();if(i!==r){let n=new Date(a.setHours(0,0,0,0)).getTime()/1e3;t.push({...o,timestamp:n,_timestamp:n}),r=i}}return t};function _k({range:e}){let r=_swr2.default.call(void 0, e?["useStakedAPR",e]:null,async([,o])=>{let s=await _chunkMUCEYO3Ecjs.$.call(void 0, {range:o});return Ne(s.sort((i,n)=>i.timestamp-n.timestamp)).map(i=>({_timestamp:i.timestamp,apr:i.apr}))});return{...r,refresh:()=>r.mutate()}}var Xk=e=>{let t=_chunkYZV5LKIPcjs.c.call(void 0, "swberaAprWindow"),r=_hooks.useConfig.call(void 0, ),o=_hooks.usePublicClient.call(void 0, ),{address:s}=_hooks.useBeraWallet.call(void 0, );return _swr2.default.call(void 0, s&&r&&e?["useStakedData",s,e,t]:null,async([,i,n,l])=>{_chunk7LNBSOVVcjs.b.call(void 0, r,"wagmiConfig"),_chunk7LNBSOVVcjs.c.call(void 0, o);let u=await _chunkMUCEYO3Ecjs._.call(void 0, {window:l}),m=n.map(d=>d.receiptToken),p=await _chunkFCWDGE62cjs.c.call(void 0, {account:i,tokenList:m,wagmiConfig:r});return await Promise.all(n.map(async d=>{let f=d.receiptToken,y=d.inputTokens[0],[A,R,w]=await Promise.all([_chunkMUCEYO3Ecjs.Q.call(void 0, {address:f.address,account:i}),_chunkMUCEYO3Ecjs.ka.call(void 0, {addressIn:[y.address]}),_chunkMUCEYO3Ecjs.W.call(void 0, {address:f.address,publicClient:o})]),b=_nullishCoalesce(_optionalChain([R, 'access', _324 => _324[y.address], 'optionalAccess', _325 => _325.price]), () => (0)),C=_nullishCoalesce(_optionalChain([p, 'optionalAccess', _326 => _326.find, 'call', _327 => _327(le=>le.address===f.address), 'optionalAccess', _328 => _328.balance, 'access', _329 => _329.raw]), () => ("0")),P=_nullishCoalesce(w, () => (0)),T=new (0, _chunkPKXAW6MOcjs.a)(A.earningsTotal).minus(A.earningsRealized),V=new (0, _chunkPKXAW6MOcjs.a)(C).multipliedBy(P).minus(T).dividedBy(10**y.decimals),F=T.dividedBy(10**y.decimals),W=V.multipliedBy(b),Ct=F.multipliedBy(b);return{token:y,apr:_nullishCoalesce(u, () => (0)),stakedAmount:V.toNumber(),earnedAmount:F.toNumber(),stakedAmountUsd:W.toNumber(),earnedAmountUsd:Ct.toNumber()}}))},{refreshInterval:1e4})};async function Zo({address:e,range:t}){let r=new Date,o=new Date(r.getTime()-Number(t)*24*60*60*1e3),{config:s}=_chunk22J3YJDNcjs.a.call(void 0, {}),a=`${s.bonder}/vaults/${e}/total-assets-by-day?start=${o.toISOString().split("T")[0]}`;return _chunkPKXAW6MOcjs.d.call(void 0, {url:a,type:"rest"})}function iP({range:e,addresses:t}){let o=_swr2.default.call(void 0, e?["useStakedSnapshots",e,t]:null,async([,s,a])=>{let[...i]=await Promise.all([...a.map(async n=>{let l=await Zo({address:n,range:s}),u=Ne(l.sort((m,p)=>m._timestamp-p._timestamp));return{[n]:u}})]);return i.reduce((n,l)=>({...n,...l}),{})});return{...o,refresh:()=>o.mutate()}}var fP=e=>{let t=_hooks.usePublicClient.call(void 0, ),r=_chunkYZV5LKIPcjs.g.call(void 0, );return _swr2.default.call(void 0, e&&t&&r?["useStakingVaultMetadata",e,t,r]:null,async([,s,a,i])=>(_chunk7LNBSOVVcjs.c.call(void 0, a),_chunkMUCEYO3Ecjs.ba.call(void 0, {address:s,publicClient:a,blockTime:i})),{refreshInterval:1e4})};function hP({vaultAddresses:e}){let t=_hooks.usePublicClient.call(void 0, ),r=_swr2.default.call(void 0, e&&t?["useTotalStakedAmount",e]:null,([,o])=>_chunkMUCEYO3Ecjs.da.call(void 0, {vaultAddresses:o,publicClient:t}));return{...r,refresh:()=>r.mutate()}}var Su=(e,t)=>{let{address:r}=_hooks.useBeraWallet.call(void 0, ),o=_hooks.usePublicClient.call(void 0, ),s=r&&o&&e.vaultAddress?["useUserVaultInfo",r,e.vaultAddress]:null,a=_swr2.default.call(void 0, s,async([,i,n])=>(_chunk7LNBSOVVcjs.c.call(void 0, o),_chunkMUCEYO3Ecjs.ga.call(void 0, {account:i,vaultAddress:n,publicClient:o})),{...t,refreshInterval:_nullishCoalesce(_optionalChain([t, 'optionalAccess', _330 => _330.opts, 'optionalAccess', _331 => _331.refreshInterval]), () => (1e5))});return{...a,refresh:()=>a.mutate()}};var Bu=e=>{let{address:t}=_hooks.useBeraWallet.call(void 0, ),r=_hooks.usePublicClient.call(void 0, ),s=_swr2.default.call(void 0, t&&r?["useUserVaults",t]:null,async([,a])=>(_chunk7LNBSOVVcjs.c.call(void 0, r),await _chunkMUCEYO3Ecjs.ha.call(void 0, {account:a,publicClient:r})),{...e,refreshInterval:_nullishCoalesce(_optionalChain([e, 'optionalAccess', _332 => _332.opts, 'optionalAccess', _333 => _333.refreshInterval]), () => (1e5)),keepPreviousData:!0});return{...s,refresh:()=>_optionalChain([s, 'optionalAccess', _334 => _334.mutate, 'optionalCall', _335 => _335()])}};var UP=e=>{let t=_hooks.usePublicClient.call(void 0, );return _swr2.default.call(void 0, e&&t?["useVaultAddress",e]:null,async([,o])=>{_chunk7LNBSOVVcjs.c.call(void 0, t);let[s]=await Promise.all([_chunkMUCEYO3Ecjs.Z.call(void 0, {address:o,publicClient:t})]);return{stakeToken:s,address:o}})};var WP=({vault:e,range:t,resolution:r})=>{let s=_swr2.default.call(void 0, e?["useVaultHistory",e,t,r]:null,([,a,i,n])=>_chunkMUCEYO3Ecjs.ia.call(void 0, {vault:a,range:i,resolution:n}));return{...s,refresh:()=>s.mutate()}};var Nu=(e,t)=>{let o=_swr2.default.call(void 0, e?["useVaultValidators",e]:null,async([,s])=>await _chunkMUCEYO3Ecjs.ja.call(void 0, {address:s}),{..._optionalChain([t, 'optionalAccess', _336 => _336.opts])});return{...o,refresh:()=>o.mutate()}};function jo({address:e},t){let r=re({addressIn:e?[e]:void 0},t);return{...r,data:e?_optionalChain([r, 'access', _337 => _337.data, 'optionalAccess', _338 => _338[e.toLowerCase()]]):void 0}}function $P(e){return jo({address:_viem.zeroAddress},e)}var tC=(e,t)=>{let r=_hooks.usePublicClient.call(void 0, ),o=_optionalChain([e, 'optionalAccess', _339 => _339.address])&&r&&_viem.isAddress.call(void 0, e.address)?["useStakingTokenInformation",e.address]:null,s=_immutable2.default.call(void 0, o,async([a,i])=>_chunk22J3YJDNcjs.e.call(void 0, i,"BERA")?{address:_viem.zeroAddress,decimals:_chunk22J3YJDNcjs.b.decimals,name:_chunk22J3YJDNcjs.b.name,symbol:_chunk22J3YJDNcjs.b.symbol}:await Ue({address:i,publicClient:r}),{..._optionalChain([t, 'optionalAccess', _340 => _340.opts])});return{...s,refresh:()=>_optionalChain([s, 'optionalAccess', _341 => _341.mutate, 'optionalCall', _342 => _342()])}};function sC({token:e},t){let{isLoading:r,priceMap:o}=se({tokens:e?[e]:void 0},t);return{data:e?_optionalChain([o, 'access', _343 => _343[e.chainId], 'optionalAccess', _344 => _344[e.address.toLowerCase()]]):void 0,isLoading:r}}function pC({address:e}){let t=_hooks.usePublicClient.call(void 0, );return _swr2.default.call(void 0, e&&t?["useTotalSupply",e]:null,([,r])=>(_chunk7LNBSOVVcjs.c.call(void 0, t),t.readContract({address:r,abi:_viem.erc20Abi,functionName:"totalSupply",args:[]})))}function hC(e){let t=_hooks.usePublicClient.call(void 0, ),{config:r}=_chunk22J3YJDNcjs.a.call(void 0, {chainId:_optionalChain([t, 'optionalAccess', _345 => _345.chain, 'access', _346 => _346.id])}),{data:o,isLoading:s}=_hooks.useBlockNumber.call(void 0, {cacheTime:_chunkPKXAW6MOcjs.m.call(void 0, r.averageBlockTime)}),{data:a}=_immutable2.default.call(void 0, o&&t&&Number(e)>0?["useBlockToTimestamp",e,o]:null,async([,n,l])=>(_chunk7LNBSOVVcjs.c.call(void 0, t),_chunkMUCEYO3Ecjs.M.call(void 0, {block:n,currentBlock:l,blockTime:i,publicClient:t}))),i=_chunkYZV5LKIPcjs.g.call(void 0, );if(a)return Number(a.timestamp);if(!(s||!o))return Math.floor(_chunkPKXAW6MOcjs.l.call(void 0, Date.now())+i*(Number(e)-Number(o)))}var Pt={confirmState:"idle",txnHash:"",message:""},Jo=(e,t)=>{switch(t.type){case"confirm_sending":return{...e,confirmState:"loading"};case"confirm_receipt":return{...e,confirmState:"success"};case"confirm_error":return{...e,confirmState:"fail"};case"confirm_submitting":return{...e,confirmState:"submitting"};case"confirm_reset":return{...Pt};default:return e}};function ju({onlyPermissionless:e,onSuccess:t,onError:r,onLoading:o,onWarning:s,onSubmission:a}={}){let[i,n]=_react.useReducer.call(void 0, Jo,Pt),{account:l,onSmartAccountRejection:u}=_hooks.useBeraWagmi.call(void 0, ),m=_hooks.useConfig.call(void 0, ),p=_optionalChain([l, 'optionalAccess', _347 => _347.wallet, 'optionalAccess', _348 => _348.isContract])?6e4*10:12e4,c=_react.useCallback.call(void 0, ()=>{n({type:"confirm_reset"})},[]),d=_chunkYZV5LKIPcjs.c.call(void 0, "enableSimulateCalls"),f=_react.useCallback.call(void 0, y=>{if(e&&!y.permissionless){let A=new (0, _chunk6LDOG5RLcjs.c)({message:"Trying to send a non-permissionless transaction with an overridden account",displayMessage:"You can't send this transaction with an overridden account. Please reset the account in the settings popover.",level:"info",input:y});throw _optionalChain([s, 'optionalCall', _349 => _349(A,y)]),_optionalChain([r, 'optionalCall', _350 => _350(A,y)]),A}return _chunkMUCEYO3Ecjs.na.call(void 0, {wagmiConfig:m,...y,txConfirmationTimeout:p,enableSimulateCalls:d,onLoading(...A){n({type:"confirm_sending"}),_optionalChain([y, 'access', _351 => _351.onLoading, 'optionalCall', _352 => _352(y)]),_optionalChain([o, 'optionalCall', _353 => _353(...A)])},onWarning(...A){_optionalChain([y, 'access', _354 => _354.onWarning, 'optionalCall', _355 => _355(A[0],y)]),_optionalChain([s, 'optionalCall', _356 => _356(...A)])},onSubmission(...A){n({type:"confirm_submitting"}),_optionalChain([y, 'access', _357 => _357.onSubmission, 'optionalCall', _358 => _358(A[0],y)]),_optionalChain([a, 'optionalCall', _359 => _359(...A)])},onSuccess(...A){n({type:"confirm_receipt"}),_optionalChain([y, 'access', _360 => _360.onSuccess, 'optionalCall', _361 => _361(A[0],y)]),_optionalChain([t, 'optionalCall', _362 => _362(...A)])},onError(...A){n({type:"confirm_error"}),_optionalChain([y, 'access', _363 => _363.onError, 'optionalCall', _364 => _364(A[0],y)]),A[0].reason==="AtomicReadyWalletRejectedUpgradeError"&&u(),_optionalChain([r, 'optionalCall', _365 => _365(...A)])}})},[m,o,s,a,t,r,e,d]);return{isLoading:i.confirmState==="loading",isSubmitting:i.confirmState==="submitting",isSuccess:i.confirmState==="success",isError:i.confirmState==="fail",write:f,reset:c}}var Ju=ju;async function op(e){let t=await _chunkPKXAW6MOcjs.d.call(void 0, {url:`https://api.routescan.io/v2/network/testnet/evm/${_internal.chainId}/etherscan/api?module=contract&action=getabi&address=${e}`,type:"rest",name:"RouteScan"});if(t.status==="0")throw new Error(t.result);return t.result}var HC=e=>_immutable2.default.call(void 0, e&&_viem.isAddress.call(void 0, e)&&e!==_viem.zeroAddress?["useGetVerifiedAbi",e]:null,()=>e?op(e):Promise.resolve(""),{});function MC({key:e,defaultValue:t}){let r=_react.useCallback.call(void 0, ()=>{if(typeof window>"u")return t;let i=_optionalChain([window, 'access', _366 => _366.history, 'access', _367 => _367.state, 'optionalAccess', _368 => _368[e]]);return i!==void 0?i:t},[e,t]),[o,s]=_react.useState.call(void 0, r()),a=_react.useCallback.call(void 0, i=>{let n=r(),l=i instanceof Function?i(n):i,m={...window.history.state||{},[e]:l};window.history.replaceState(m,""),s(l)},[e,r]);return _react.useEffect.call(void 0, ()=>{if(_optionalChain([window, 'access', _369 => _369.history, 'access', _370 => _370.state, 'optionalAccess', _371 => _371[e]])===void 0){let l={...window.history.state||{},[e]:t};window.history.replaceState(l,"")}},[e,t]),[o,a]}function YC(e){let t=_react.useRef.call(void 0, void 0);return _react.useEffect.call(void 0, ()=>{t.current=e}),t.current}var up=({variables:e}={})=>["useAllValidators",e],$C= exports.useAllValidators =(e,t)=>{let{config:r}=_chunk22J3YJDNcjs.a.call(void 0, e),o=_swr2.default.call(void 0, up({variables:e}),async([,s])=>await _chunkMUCEYO3Ecjs.oa.call(void 0, {variables:{chain:r.bex.chainName,...s}}),{refreshInterval:18e4,..._optionalChain([t, 'optionalAccess', _372 => _372.opts])});return{...o,refresh:()=>o.mutate()}};function JC({allocation:e}){return _swr2.default.call(void 0, e?["useApiEnrichedAllocation",e]:null,([,t])=>_chunkMUCEYO3Ecjs.pa.call(void 0, {allocation:t}))}var cp=e=>e?["useApiValidator",e]:null,ts= exports.useApiValidator =(e,t)=>{let r=cp(e),o=_nullishCoalesce(_optionalChain([t, 'optionalAccess', _373 => _373.opts, 'optionalAccess', _374 => _374.isEnabled]), () => (!0)),s=_swr2.default.call(void 0, o&&e?r:null,async([,a])=>{if(!a||!_viem.isHex.call(void 0, a))throw new Error(`Invalid validator ID: ${a}`);return _chunkMUCEYO3Ecjs.qa.call(void 0, {id:a})},{..._optionalChain([t, 'optionalAccess', _375 => _375.opts])});return{...s,refresh:()=>s.mutate()}};var rs=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccessControlBadConfirmation",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"bytes32",name:"neededRole",type:"bytes32"}],name:"AccessControlUnauthorizedAccount",type:"error"},{inputs:[{internalType:"address",name:"target",type:"address"}],name:"AddressEmptyCode",type:"error"},{inputs:[],name:"AmountGreaterThanReward",type:"error"},{inputs:[],name:"AmountLessThanMinIncentiveRate",type:"error"},{inputs:[],name:"CannotRecoverIncentiveToken",type:"error"},{inputs:[],name:"CannotRecoverRewardToken",type:"error"},{inputs:[],name:"CannotRecoverStakingToken",type:"error"},{inputs:[],name:"CommissionChangeAlreadyQueued",type:"error"},{inputs:[],name:"CommissionNotQueuedOrDelayNotPassed",type:"error"},{inputs:[],name:"DepositNotMultipleOfGwei",type:"error"},{inputs:[],name:"DepositValueTooHigh",type:"error"},{inputs:[],name:"DonateAmountLessThanPayoutAmount",type:"error"},{inputs:[{internalType:"address",name:"receiver",type:"address"}],name:"DuplicateReceiver",type:"error"},{inputs:[],name:"DurationChangeNotAllowed",type:"error"},{inputs:[{internalType:"address",name:"implementation",type:"address"}],name:"ERC1967InvalidImplementation",type:"error"},{inputs:[],name:"ERC1967NonPayable",type:"error"},{inputs:[],name:"FailedCall",type:"error"},{inputs:[],name:"IncentiveRateTooHigh",type:"error"},{inputs:[],name:"IndexOutOfRange",type:"error"},{inputs:[],name:"InsolventReward",type:"error"},{inputs:[],name:"InsufficientDelegateStake",type:"error"},{inputs:[],name:"InsufficientDeposit",type:"error"},{inputs:[],name:"InsufficientIncentiveTokens",type:"error"},{inputs:[],name:"InsufficientNativeValue",type:"error"},{inputs:[],name:"InsufficientSelfStake",type:"error"},{inputs:[],name:"InsufficientStake",type:"error"},{inputs:[],name:"InvalidActivateBoostDelay",type:"error"},{inputs:[],name:"InvalidArray",type:"error"},{inputs:[],name:"InvalidBaseRate",type:"error"},{inputs:[],name:"InvalidBoostMultiplier",type:"error"},{inputs:[],name:"InvalidCommissionChangeDelay",type:"error"},{inputs:[],name:"InvalidCommissionValue",type:"error"},{inputs:[],name:"InvalidCredentialsLength",type:"error"},{inputs:[],name:"InvalidDistribution",type:"error"},{inputs:[],name:"InvalidDropBoostDelay",type:"error"},{inputs:[],name:"InvalidIncentiveFeeRate",type:"error"},{inputs:[],name:"InvalidIncentiveRate",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"InvalidMaxIncentiveTokensCount",type:"error"},{inputs:[],name:"InvalidMaxWeightPerVault",type:"error"},{inputs:[],name:"InvalidMerkleRoot",type:"error"},{inputs:[],name:"InvalidMinBoostedRewardRate",type:"error"},{inputs:[],name:"InvalidProof",type:"error"},{inputs:[],name:"InvalidPubKeyLength",type:"error"},{inputs:[],name:"InvalidRewardAllocationInactivityBlockSpan",type:"error"},{inputs:[],name:"InvalidRewardAllocationWeights",type:"error"},{inputs:[],name:"InvalidRewardClaimDelay",type:"error"},{inputs:[],name:"InvalidRewardConvexity",type:"error"},{inputs:[],name:"InvalidRewardDuration",type:"error"},{inputs:[],name:"InvalidRewardRate",type:"error"},{inputs:[],name:"InvalidSignatureLength",type:"error"},{inputs:[],name:"InvalidStartBlock",type:"error"},{inputs:[],name:"InvalidToken",type:"error"},{inputs:[],name:"InvalidWeight",type:"error"},{inputs:[],name:"InvalidateDefaultRewardAllocation",type:"error"},{inputs:[],name:"InvariantCheckFailed",type:"error"},{inputs:[],name:"MaxNumWeightsPerRewardAllocationIsZero",type:"error"},{inputs:[],name:"MethodNotAllowed",type:"error"},{inputs:[],name:"MinIncentiveRateIsZero",type:"error"},{inputs:[],name:"NonTransferable",type:"error"},{inputs:[],name:"NotAContract",type:"error"},{inputs:[],name:"NotApprovedSender",type:"error"},{inputs:[],name:"NotBGT",type:"error"},{inputs:[],name:"NotBlockRewardController",type:"error"},{inputs:[],name:"NotDelegate",type:"error"},{inputs:[],name:"NotDistributor",type:"error"},{inputs:[],name:"NotEnoughBalance",type:"error"},{inputs:[],name:"NotEnoughBoostedBalance",type:"error"},{inputs:[],name:"NotEnoughTime",type:"error"},{inputs:[],name:"NotFactoryVault",type:"error"},{inputs:[],name:"NotFeeCollector",type:"error"},{inputs:[],name:"NotIncentiveManager",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[],name:"NotNewOperator",type:"error"},{inputs:[],name:"NotOperator",type:"error"},{inputs:[],name:"NotRewardAllocator",type:"error"},{inputs:[],name:"NotRewardDurationManager",type:"error"},{inputs:[],name:"NotRewardVaultManager",type:"error"},{inputs:[],name:"NotSystemAddress",type:"error"},{inputs:[],name:"NotWBERAStakerVault",type:"error"},{inputs:[],name:"NotWhitelistedVault",type:"error"},{inputs:[],name:"OnlyNFTOwnerAllowed",type:"error"},{inputs:[],name:"OnlySystemCallAllowed",type:"error"},{inputs:[],name:"OperatorAlreadySet",type:"error"},{inputs:[],name:"PayoutAmountIsZero",type:"error"},{inputs:[],name:"RewardAllocationAlreadyQueued",type:"error"},{inputs:[],name:"RewardAllocationBlockDelayTooLarge",type:"error"},{inputs:[],name:"RewardCycleNotEnded",type:"error"},{inputs:[],name:"RewardDurationCoolDownPeriodNotPassed",type:"error"},{inputs:[],name:"RewardInactive",type:"error"},{inputs:[],name:"RewardsDurationIsZero",type:"error"},{inputs:[],name:"StakeAmountIsZero",type:"error"},{inputs:[],name:"TimestampAlreadyProcessed",type:"error"},{inputs:[],name:"TokenAlreadyWhitelistedOrLimitReached",type:"error"},{inputs:[],name:"TokenNotWhitelisted",type:"error"},{inputs:[],name:"TooManyWeights",type:"error"},{inputs:[],name:"TotalSupplyOverflow",type:"error"},{inputs:[],name:"UUPSUnauthorizedCallContext",type:"error"},{inputs:[{internalType:"bytes32",name:"slot",type:"bytes32"}],name:"UUPSUnsupportedProxiableUUID",type:"error"},{inputs:[],name:"UnauthorizedETHTransfer",type:"error"},{inputs:[],name:"WithdrawAmountIsZero",type:"error"},{inputs:[],name:"WithdrawalAlreadyRequested",type:"error"},{inputs:[],name:"WithdrawalNotReady",type:"error"},{inputs:[],name:"WithdrawalNotRequested",type:"error"},{inputs:[],name:"ZeroAddress",type:"error"},{inputs:[],name:"ZeroOperatorOnFirstDeposit",type:"error"},{inputs:[],name:"ZeroPercentageWeight",type:"error"},{anonymous:!1,inputs:[{components:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint96",name:"percentageNumerator",type:"uint96"}],indexed:!1,internalType:"struct IBeraChef.Weight[]",name:"weights",type:"tuple[]"}],name:"BaselineAllocationSet",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[],name:"ALLOCATION_SETTER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"UPGRADE_INTERFACE_VERSION",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"beraChef",outputs:[{internalType:"contract IBeraChef",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBaselineAllocation",outputs:[{components:[{internalType:"uint64",name:"startBlock",type:"uint64"},{components:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint96",name:"percentageNumerator",type:"uint96"}],internalType:"struct IBeraChef.Weight[]",name:"weights",type:"tuple[]"}],internalType:"struct IBeraChef.RewardAllocation",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_governance",type:"address"},{internalType:"address",name:"_beraChef",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"proxiableUUID",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"callerConfirmation",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint96",name:"percentageNumerator",type:"uint96"}],internalType:"struct IBeraChef.Weight[]",name:"weights",type:"tuple[]"}],name:"setBaselineAllocation",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable",type:"function"}];async function os({publicClient:e,...t}){let{config:r}=_chunk22J3YJDNcjs.a.call(void 0, t),o=await e.readContract({abi:rs,address:r.pol.rewardAllocationFactory,functionName:"getBaselineAllocation"}),s=o.startBlock!==0n?await e.getBlock({blockNumber:o.startBlock}):{timestamp:0};return _chunkMUCEYO3Ecjs.sa.call(void 0, o,Number(s.timestamp))}function cT(){let e=_hooks.usePublicClient.call(void 0, );return _swr2.default.call(void 0, e?["baselineRewardAllocation"]:null,()=>(_chunk7LNBSOVVcjs.c.call(void 0, e),os({publicClient:e})))}var Ap=({pubKey:e,first:t=1})=>{let o=_swr2.default.call(void 0, e?["useDailyValidatorBlockStats",e,t]:null,async([,s,a])=>await _chunkMUCEYO3Ecjs.ra.call(void 0, {pubKey:s,first:a}),{refreshInterval:18e4});return{...o,refresh:()=>o.mutate()}};function Rp(e){let t=_hooks.usePublicClient.call(void 0, ),o=_swr2.default.call(void 0, t?["useDefaultRewardAllocation"]:null,async()=>(_chunk7LNBSOVVcjs.c.call(void 0, t),await _chunkMUCEYO3Ecjs.wa.call(void 0, {client:t})),{..._optionalChain([e, 'optionalAccess', _376 => _376.opts])});return{...o,refresh:()=>o.mutate()}}var kp=({account:e},t)=>{let o=_immutable2.default.call(void 0, e?["useManagedValidatorByAccount",e]:null,async([,s])=>await _chunkMUCEYO3Ecjs.xa.call(void 0, {account:s}),{..._optionalChain([t, 'optionalAccess', _377 => _377.opts])});return{...o,refresh:()=>o.mutate()}};async function ss({client:e,pubKey:t,...r}){let{config:o}=_chunk22J3YJDNcjs.a.call(void 0, r);try{let s=await e.readContract({address:o.pol.beraChef,abi:_chunkVP7XUOSIcjs.i,functionName:"valRewardAllocator",args:[t]});return s===_viem.zeroAddress?null:s}catch(s){throw console.log("getValidatorRewardAllocatorAddress:",s),s}}function ns(e,t){return!e||!t?!1:_optionalChain([t, 'access', _378 => _378.operator, 'optionalAccess', _379 => _379.toLowerCase, 'call', _380 => _380()])===e.toLowerCase()}function Sp(e,t){return!e||!t?!1:t.rewardAllocator?t.rewardAllocator.toLowerCase()===e.toLowerCase():ns(e,t)}function Ep({pubKey:e,account:t},r){let o=_hooks.usePublicClient.call(void 0, ),s=_chunkYZV5LKIPcjs.c.call(void 0, "mockValidatorOperator"),a=_chunkYZV5LKIPcjs.c.call(void 0, "mockValidatorRewardAllocator"),i=o&&e?["useManagedValidatorRole",e]:null,{address:n}=_hooks.useBeraWallet.call(void 0, ),l=_nullishCoalesce(t, () => (n)),u=_swr2.default.call(void 0, i,async([,c])=>{_chunk7LNBSOVVcjs.c.call(void 0, o);let[d,f]=await Promise.all([_chunkMUCEYO3Ecjs.Fa.call(void 0, {client:o,pubKey:c}),ss({client:o,pubKey:c})]);return{operator:_nullishCoalesce(d, () => (null)),rewardAllocator:f}},{..._optionalChain([r, 'optionalAccess', _381 => _381.opts])}),m=_react.useMemo.call(void 0, ()=>s||ns(l,u.data),[l,s,u.data]),p=_react.useMemo.call(void 0, ()=>a||Sp(l,u.data),[l,a,u.data]);return{...u,data:u.data?{...u.data,hasOperatorRole:m,hasRewardAllocatorRole:p}:void 0,refresh:()=>u.mutate()}}var is=({pubkey:e},t)=>{let r=_hooks.usePublicClient.call(void 0, ),o=e?["useOnChainValidator",e]:null,s=_nullishCoalesce(_optionalChain([t, 'access', _382 => _382.opts, 'optionalAccess', _383 => _383.isEnabled]), () => (!0)),a=_swr2.default.call(void 0, s&&r?o:null,async([,i])=>{_chunk7LNBSOVVcjs.c.call(void 0, r);let{config:n}=_chunk22J3YJDNcjs.a.call(void 0, {chainId:r.chain.id}),[l,u,m]=await Promise.all([r.readContract({address:n.depositContract,abi:_chunkVP7XUOSIcjs.h,functionName:"getOperator",args:[i]}),_optionalChain([r, 'optionalAccess', _384 => _384.readContract, 'call', _385 => _385({address:n.tokens.bgt,abi:_chunkVP7XUOSIcjs.j,functionName:"boostees",args:[i]})]),r.readContract({address:n.pol.beraChef,abi:_chunkVP7XUOSIcjs.i,functionName:"getActiveRewardAllocation",args:[i]})]);return{id:_viem.keccak256.call(void 0, i),pubkey:i,operator:l,votingPower:Number(u)}});return{...a,refresh:()=>{a.mutate()}}};var jT=({valPubKey:e,options:t})=>{let r=_hooks.usePublicClient.call(void 0, ),s=(_nullishCoalesce(_optionalChain([t, 'optionalAccess', _386 => _386.opts, 'optionalAccess', _387 => _387.isEnabled]), () => (!0)))&&r&&e?["useStakingPoolBatch",e]:null,a=_swr2.default.call(void 0, s,async([,i])=>(_chunk7LNBSOVVcjs.c.call(void 0, r),await _chunkMUCEYO3Ecjs.ya.call(void 0, {client:r,valPubKey:i})),{refreshInterval:1e4,..._optionalChain([t, 'optionalAccess', _388 => _388.opts])});return{...a,refresh:()=>a.mutate()}};var _subgraph3 = require('@berachain/graphql/pol/subgraph');var Hp=({account:e}={})=>{let{address:t}=_hooks.useBeraWallet.call(void 0, ),r=_nullishCoalesce(e, () => (t));return _swr2.default.call(void 0, r?["useSubgraphUserValidators",r]:null,async([,s])=>{let a=_chunkMUCEYO3Ecjs.c.call(void 0, "pol.subgraph",{}),{data:i}=await a.query({query:_subgraph3.GetUserValidatorInformation,variables:{address:s}});return i.userValidatorInformations})};var _p=e=>{let{address:t}=_hooks.useBeraWallet.call(void 0, ),r=_hooks.usePublicClient.call(void 0, ),s=_swr2.default.call(void 0, r&&t?["useUserActiveValidators",t]:null,async([,a])=>await _chunkMUCEYO3Ecjs.Aa.call(void 0, {account:a,publicClient:r}),{...e,refreshInterval:_nullishCoalesce(_optionalChain([e, 'optionalAccess', _389 => _389.opts, 'optionalAccess', _390 => _390.refreshInterval]), () => (18e4)),keepPreviousData:!0});return{...s,refresh:()=>_optionalChain([s, 'optionalAccess', _391 => _391.mutate, 'optionalCall', _392 => _392()])}};var Fp=({pubkey:e,...t})=>{let{address:r}=_hooks.useBeraWallet.call(void 0, ),o=_hooks.usePublicClient.call(void 0, ),s=_nullishCoalesce(t.account, () => (r)),i=_swr2.default.call(void 0, s&&e?["useUserBoostsOnValidator",e,s]:null,async([,n,l])=>await _chunkMUCEYO3Ecjs.za.call(void 0, {account:l,pubkey:n,publicClient:o}),{refreshInterval:1e5});return{...i,refresh:()=>i.mutate()}};var ls=e=>{let t=new Set;return e.forEach(r=>{Array.isArray(r.rewards)&&r.rewards.forEach(o=>{o.token&&t.add(o.token)})}),t};var zp=()=>{let{address:e}=_hooks.useBeraWallet.call(void 0, ),r=_swr2.default.call(void 0, e?["useUserClaimableIncentives",e]:null,async([,l])=>{if(!l)throw new (0, _chunkC6ZGUO4Hcjs.f)({message:"useUserClaimableIncentives needs a logged in account",level:"error"});return await _chunkMUCEYO3Ecjs.ea.call(void 0, {account:l})},{revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateIfStale:!1,refreshInterval:18e4}),o=_optionalChain([r, 'optionalAccess', _393 => _393.data]),s=_react.useMemo.call(void 0, ()=>{if(o){if(!Array.isArray(o)){_chunk7LNBSOVVcjs.f.captureException(new (0, _chunkC6ZGUO4Hcjs.f)({message:"Incorrect aggregated incentives data receieved.",level:"error",extra:{allRewards:o,account:e}}));return}return ls(o)}},[o,e]),i=_swr2.default.call(void 0, e&&o?["useUserClaimableIncentives",e,o]:null,async([,l,u])=>{if(!l)throw new (0, _chunkC6ZGUO4Hcjs.h)({property:"account",value:l,expected:"Address"});if(!u)return[];if(!Array.isArray(u))throw new (0, _chunkC6ZGUO4Hcjs.h)({message:"Incorrect aggregated incentives data receieved to calculate proofs.",property:"allRewards",value:u,expected:"Array",level:"error"});let m=new Set(u.map(c=>c.validator)),p=Array.from(m);return await Promise.all(p.map(async c=>({...await _chunkMUCEYO3Ecjs.V.call(void 0, {account:l,validator:c,page:1,perPage:1e4}),validator:c})))},{revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateIfStale:!1,refreshInterval:18e4}),n=_react.useCallback.call(void 0, ()=>{_optionalChain([r, 'optionalAccess', _394 => _394.mutate, 'call', _395 => _395()]),_optionalChain([i, 'optionalAccess', _396 => _396.mutate, 'call', _397 => _397()])},[r,i]);return{...i,isLoading:_optionalChain([r, 'optionalAccess', _398 => _398.isLoading])||_optionalChain([i, 'optionalAccess', _399 => _399.isLoading]),tokenMap:s,refresh:n}};var TI=({account:e,validatorAddress:t})=>{let o=_immutable2.default.call(void 0, e?["useUserStakingPositions",e,t]:null,async([s,a,i])=>{let n=await _chunkMUCEYO3Ecjs.Ba.call(void 0, a);return i?n.filter(l=>l.validatorAddress.toLowerCase()===i.toLowerCase()):n});return{...o,refresh:()=>{o.mutate()}}};function vI({pubkey:e},t){let{data:{validator:r,uptime:o}={},isLoading:s,error:a}=ts(_viem.keccak256.call(void 0, e),t),{data:i,isLoading:n,error:l}=is({pubkey:e},t);return{data:{uptime:o,validator:r||i?{...r,...i,operator:_nullishCoalesce(_optionalChain([i, 'optionalAccess', _400 => _400.operator]), () => (_optionalChain([r, 'optionalAccess', _401 => _401.operator]))),dynamicData:{activeBoostAmount:_nullishCoalesce(_nullishCoalesce(_optionalChain([i, 'optionalAccess', _402 => _402.dynamicData, 'optionalAccess', _403 => _403.activeBoostAmount]), () => (_optionalChain([r, 'optionalAccess', _404 => _404.dynamicData, 'optionalAccess', _405 => _405.activeBoostAmount]))), () => ("")),queuedBoostAmount:_nullishCoalesce(_optionalChain([r, 'optionalAccess', _406 => _406.dynamicData, 'optionalAccess', _407 => _407.queuedBoostAmount]), () => ("")),usersActiveBoostCount:_nullishCoalesce(_optionalChain([r, 'optionalAccess', _408 => _408.dynamicData, 'optionalAccess', _409 => _409.usersActiveBoostCount]), () => (0)),usersQueuedBoostCount:_nullishCoalesce(_optionalChain([r, 'optionalAccess', _410 => _410.dynamicData, 'optionalAccess', _411 => _411.usersQueuedBoostCount]), () => (0)),allTimeDistributedBGTAmount:_nullishCoalesce(_optionalChain([r, 'optionalAccess', _412 => _412.dynamicData, 'optionalAccess', _413 => _413.allTimeDistributedBGTAmount]), () => ("0")),rewardRate:_nullishCoalesce(_nullishCoalesce(_optionalChain([i, 'optionalAccess', _414 => _414.dynamicData, 'optionalAccess', _415 => _415.rewardRate]), () => (_optionalChain([r, 'optionalAccess', _416 => _416.dynamicData, 'optionalAccess', _417 => _417.rewardRate]))), () => ("")),stakedBeraAmount:_nullishCoalesce(_optionalChain([r, 'optionalAccess', _418 => _418.dynamicData, 'optionalAccess', _419 => _419.stakedBeraAmount]), () => ("")),lastDayDistributedBGTAmount:_nullishCoalesce(_optionalChain([r, 'optionalAccess', _420 => _420.dynamicData, 'optionalAccess', _421 => _421.lastDayDistributedBGTAmount]), () => ("")),activeBoostAmountRank:_nullishCoalesce(_optionalChain([r, 'optionalAccess', _422 => _422.dynamicData, 'optionalAccess', _423 => _423.activeBoostAmountRank]), () => (0)),boostApr:_nullishCoalesce(_optionalChain([r, 'optionalAccess', _424 => _424.dynamicData, 'optionalAccess', _425 => _425.boostApr]), () => (0)),commissionOnIncentives:_nullishCoalesce(_optionalChain([r, 'optionalAccess', _426 => _426.dynamicData, 'optionalAccess', _427 => _427.commissionOnIncentives]), () => (0))},id:_nullishCoalesce(_optionalChain([i, 'optionalAccess', _428 => _428.id]), () => (_optionalChain([r, 'optionalAccess', _429 => _429.id]))),pubkey:_nullishCoalesce(_optionalChain([i, 'optionalAccess', _430 => _430.pubkey]), () => (_optionalChain([r, 'optionalAccess', _431 => _431.pubkey]))),metadata:_nullishCoalesce(_optionalChain([i, 'optionalAccess', _432 => _432.metadata]), () => (_optionalChain([r, 'optionalAccess', _433 => _433.metadata]))),rewardAllocationWeights:_nullishCoalesce(_nullishCoalesce(_optionalChain([i, 'optionalAccess', _434 => _434.rewardAllocationWeights]), () => (_optionalChain([r, 'optionalAccess', _435 => _435.rewardAllocationWeights]))), () => ([]))}:null},isLoading:s||n,error:a||l}}function Xp({pubkey:e,dayRange:t}){let o=_swr2.default.call(void 0, e&&t?["useValidatorAnalytics",e,t]:null,async([,s,a])=>await _chunkMUCEYO3Ecjs.Ca.call(void 0, {pubkey:s,dayRange:a}),{refreshInterval:18e4});return{...o,refresh:()=>o.mutate()}}var rm=(e,t)=>{let r=_hooks.usePublicClient.call(void 0, ),s=_swr2.default.call(void 0, r&&e?["useValidatorCommission",e]:null,async([,a])=>await _chunkMUCEYO3Ecjs.Da.call(void 0, {client:r,pubKey:a}),{..._optionalChain([t, 'optionalAccess', _436 => _436.opts])});return{...s,refresh:()=>s.mutate()}};var om=e=>{let{data:t,isLoading:r}=$o(),o=_chunkYZV5LKIPcjs.g.call(void 0, );return{data:t?_chunkMUCEYO3Ecjs.Ea.call(void 0, e,Number(_optionalChain([t, 'optionalAccess', _437 => _437.totalStakedBeraAmount])),o):void 0,isLoading:r}};function nm(e,t){let r=_hooks.usePublicClient.call(void 0, ),s=_swr2.default.call(void 0, r&&e?["useValidatorQueuedCommission",e]:null,async([,a])=>(_chunk7LNBSOVVcjs.c.call(void 0, r),await _chunkMUCEYO3Ecjs.Ga.call(void 0, {client:r,pubKey:a})),{..._optionalChain([t, 'optionalAccess', _438 => _438.opts])});return{...s,refresh:()=>s.mutate()}}var um=(e,t)=>{let r=_hooks.usePublicClient.call(void 0, ),s=_swr2.default.call(void 0, r&&e?["useValidatorQueuedOperatorAddress",e]:null,async([,a])=>await _chunkMUCEYO3Ecjs.Ha.call(void 0, {client:r,pubKey:a}),{..._optionalChain([t, 'optionalAccess', _439 => _439.opts])});return{...s,refresh:()=>s.mutate()}};var dm=(e,t)=>{let r=_hooks.usePublicClient.call(void 0, ),s=_swr2.default.call(void 0, r&&e?["useValidatorQueuedRewardAllocation",e]:null,async([,a])=>await _chunkMUCEYO3Ecjs.Ia.call(void 0, {client:r,pubKey:a}),{..._optionalChain([t, 'optionalAccess', _440 => _440.opts])});return{...s,refresh:()=>s.mutate()}};function gm(e,t){let r=_hooks.usePublicClient.call(void 0, ),s=_swr2.default.call(void 0, r&&e?["useValidatorRewardAllocation",e]:null,async([,a])=>await _chunkMUCEYO3Ecjs.ua.call(void 0, {client:r,pubKey:a}),{..._optionalChain([t, 'optionalAccess', _441 => _441.opts])});return{...s,refresh:()=>s.mutate()}}exports.OracleMode = da; exports.USE_AGGREGATORS_QUOTES_QUERY_KEY = io; exports.reducer = qo; exports.useAggregatorsQuotes = Fc; exports.useAggregatorsRouterFeeBps = Ce; exports.useAllUserPools = lo; exports.useAllUserPoolsQueryKey = ra; exports.useAllValidators = $C; exports.useAllValidatorsQueryKey = up; exports.useApiEnrichedAllocation = JC; exports.useApiPool = uo; exports.useApiPoolQueryKey = aa; exports.useApiValidator = ts; exports.useApiValidatorQueryKey = cp; exports.useBaselineRewardAllocation = cT; exports.useBendZapSupply = sA; exports.useBendZapSupplyHelper = Hn; exports.useBeraContractWrite = Ju; exports.useBeraCurrentPrice = $P; exports.useBexStatus = _chunkYZV5LKIPcjs.e; exports.useBgtAprSimulation = dw; exports.useBgtUnstakedBalance = Dl; exports.useBlockToTimestamp = hC; exports.useCappedGlobally = Wo; exports.useCappedRelatively = Mo; exports.useClaimableFees = Hl; exports.useCollateralWeights = Xh; exports.useCreatePool = Af; exports.useCreateProposal = mi; exports.useDailyValidatorBlockStats = Ap; exports.useDefaultRewardAllocation = Rp; exports.useEnsoSwapBundle = SA; exports.useExploitedTokens = Ef; exports.useExploitedTokensQueryKey = wa; exports.useGetConvertToAssets = Gr; exports.useGetPastVotes = lb; exports.useGetVerifiedAbi = HC; exports.useGlobalLiquidityAndSwapVolume = Pa; exports.useHasVoted = yb; exports.useHighestVaultsAPR = Lw; exports.useHistoryState = MC; exports.useHoneyAlerts = BR; exports.useHoneyBalances = _o; exports.useHoneyChartData = UR; exports.useHoneyGlobalData = MR; exports.useHoneySwapState = tw; exports.useHoneyVaultsBalance = Qo; exports.useIsBadCollateralAsset = Yo; exports.useIsBasketModeEnabled = Fo; exports.useIsCanceller = Tb; exports.useLiquidityMismatch = Nf; exports.useLpPosition = bg; exports.useManagedValidatorByAccount = kp; exports.useManagedValidatorRole = Ep; exports.useMultipleTokenApprovalsWithSlippage = tn; exports.useMultipleTokenInformation = Po; exports.useOnChainPoolData = Co; exports.useOnChainPoolDataQueryKey = yn; exports.useOnChainValidator = is; exports.usePollAllProposals = Bb; exports.usePollAllProposalsQueryKey = xi; exports.usePollAllowances = wo; exports.usePollBalance = Se; exports.usePollGlobalData = $o; exports.usePollMarkets = Yw; exports.usePollMarketsQueryKey = Kl; exports.usePollPoolCreationRelayerApproval = Rn; exports.usePollProposal = Wb; exports.usePollProposalThreshold = Kb; exports.usePollProposalVotes = Zb; exports.usePollProposalVotesQueryKey = Hi; exports.usePollUserDelegates = sh; exports.usePollWalletBalances = Bo; exports.usePool = gy; exports.usePoolEvents = hy; exports.usePoolHistoricalData = Cy; exports.usePools = By; exports.usePoolsQueryKey = En; exports.usePrevious = YC; exports.usePriceImpact = xe; exports.useProposalFromTx = uh; exports.useProposalSnapshot = Lo; exports.useProposalState = gh; exports.useProposalTimelockState = wh; exports.usePythLatestPrices = ae; exports.usePythUpdateFee = lw; exports.useQueuedBeraUnlock = Zw; exports.useQuorum = Bh; exports.useRewardTokenToBeraRate = ak; exports.useRewardVault = Ck; exports.useRewardVaultBalanceFromStakingToken = Ao; exports.useRewardVaultFromToken = gt; exports.useRewardVaultIncentives = vk; exports.useRewardVaultQueryKey = lu; exports.useRewardVaultRewards = cu; exports.useRewardVaults = kt; exports.useRewardVaultsQueryKey = Ml; exports.useSWBeraVaultMetadata = fP; exports.useSingleAggregatorQuote = $s; exports.useStakedAPR = _k; exports.useStakedData = Xk; exports.useStakedSnapshots = iP; exports.useStakingPoolBatch = jT; exports.useStakingTokenInformation = tC; exports.useSubgraphPoolQueryKey = Pn; exports.useSubgraphUserValidators = Hp; exports.useTokenCurrentPrice = jo; exports.useTokenCurrentPrices = re; exports.useTokenInformation = bo; exports.useTokenPrice = sC; exports.useTokenPrices = se; exports.useTokens = ee; exports.useTotalStakedAmount = hP; exports.useTotalSupply = pC; exports.useUserActiveValidators = _p; exports.useUserBoostsOnValidator = Fp; exports.useUserClaimableIncentives = zp; exports.useUserStakingPositions = TI; exports.useUserVaultInfo = Su; exports.useUserVaults = Bu; exports.useValidator = vI; exports.useValidatorAnalytics = Xp; exports.useValidatorCommission = rm; exports.useValidatorEstimatedBgtPerYear = om; exports.useValidatorQueuedCommission = nm; exports.useValidatorQueuedOperatorAddress = um; exports.useValidatorQueuedRewardAllocation = dm; exports.useValidatorRewardAllocation = gm; exports.useVaultAddress = UP; exports.useVaultHistory = WP; exports.useVaultValidators = Nu; exports.useZapStakeBera = UA;
|
|
4
|
+
//# sourceMappingURL=exports.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/liammcaweeney/Work/bera/monobera/packages/berajs/dist/hooks/exports.cjs","../../src/hooks/bend/useGetConvertToAssets.ts","../../src/hooks/dex/useAggregatorsQuotes.ts","../../src/actions/dex/aggregators/bex.ts","../../src/actions/dex/aggregators/bgt.ts","../../src/actions/dex/aggregators/enso/enso.ts","../../src/hooks/dex/useLiquidityMismatch.ts","../../src/hooks/tokens/useTokenCurrentPrices.ts"],"names":["useGetConvertToAssets","sharesAmount","vaultAddress","vaultChainId","options","publicClient","usePublicClient","swrResponse","useSWR","_","assertPublicClient","getConvertToAssets","DEFAULT_DEADLINE","STALE_PRICE_THRESHOLD","swapKind","SwapKind","BexAggregator","BaseAggregator","ChainId","getUriFromLink","address","isToken","priceImpact","onChainAmount","sorPaths","sorAmount","queryData","deltaFromSorAmount","formatEther","error","BeraError","p","BeraMonitoring","args","balancerApi","BalancerApi","tokenIn","tokenOut","amount","slippage","account","zeroAddress","wberaIsBera","tokenInV3","Token","tokenOutV3","tokenAmount","TokenAmount","RequestError","swap","Swap","queryOutput","callData","Slippage","params","functionName","decodeFunctionData","balancerVaultAbi","bex","RedeemBgtAggregator","beraToken","InvalidArgumentError","bgtRedeem","EnsoAggregator","aggregatorsFeeBps","proxyAggregatorsThroughVercel","rewardVault","tokenInAddress","tokenOutAddress","isTokenInNative","isTokenOutNative","inputAmountAfterFees"],"mappings":"AAAA,wnDAAiE,yDAAspB,yDAAgG,yDAAwE,yDAAkD,iCAA8B,iCAA8B,iCAA8B,iCAA8B,yDAA2C,yDAAgF,yDAAmD,yDAAkF,iCAA8B,yDAAgE,yDAAwD,oECA56C,+CAEa,IAOnBA,EAAAA,CAAwB,CACnC,CACE,YAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CACF,CAAA,CACAC,CAAAA,CAAAA,EACG,CACH,IAAMC,CAAAA,CAAeC,oCAAAA,CAAkB,OAAA,CAASH,CAAa,CAAC,CAAA,CACxDI,CAAAA,CAAcC,2BAAAA,CAClBH,EAAgBJ,CAAAA,EAAgBC,CAAAA,CAC5B,CAAC,uBAAA,CAAyBD,CAAAA,CAAcC,CAAAA,CAAcC,CAAY,CAAA,CAClE,IAAA,CACJ,KAAA,CAAO,CAACM,CAAAA,CAAGR,CAAAA,CAAcC,CAAY,CAAA,CAAA,EAAA,CACnCQ,iCAAAA,CAA+B,CAAA,CAExBC,iCAAAA,CACL,YAAA,CAAAV,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,YAAA,CAAAG,CACF,CAAC,CAAA,CAAA,CAEH,CACE,mBAAGD,CAAAA,6BAAS,MACd,CACF,CAAA,CAEA,MAAO,CACL,GAAGG,CAAAA,CACH,OAAA,CAAS,CAAA,CAAA,EAAM,CACbA,CAAAA,CAAY,MAAA,CAAO,CACrB,CACF,CACF,CAAA,CC1CA,8BAAwB,4BACkB,sDAEX,iECKxB,2CAGwB,IAezBK,EAAAA,CAAmB,GAAA,CACnBC,EAAAA,CAAwB,GAAA,CACxBC,EAAAA,CAAWC,qBAAAA,CAAS,OAAA,CAEpBC,EAAAA,WAAN,MAAA,QAA4BC,mBAAe,0MACzC,IAAA,CAAA,YAAA,gBACA,eAAA,CAAkB,CAACC,iBAAAA,CAAQ,OAAA,CAASA,iBAAAA,CAAQ,OAAO,EAAA,gBAC1C,GAAA,CAAMC,oCAAAA,IAAe,CAAK,MAAA,CAAO,GAAG,EAAA,gBACpC,IAAA,CAAO,UAAA,oBAKR,CAAqBC,CAAAA,CAA2B,CACtD,OAAOC,iCAAAA,CAAQD,CAAS,MAAM,CAAA,CAAI,IAAA,CAAK,MAAA,CAAO,MAAA,CAAO,KAAA,CAAQA,CAC/D,CAKQ,oBAAA,CAAqBE,CAAAA,CAGlB,CACT,OAAIA,CAAAA,CAAY,KAAA,CAAA,CACd,OAAA,CAAQ,KAAA,CAAM,yBAAA,CAA2BA,CAAW,CAAA,CAC7C,CAAA,CAAA,CAGF,MAAA,CAAOA,CAAAA,CAAY,WAAW,CACvC,CAKQ,gBAAA,CAAiB,CACvB,aAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,SAAA,CAAAC,CAAAA,CACA,SAAA,CAAAC,CACF,CAAA,CAKS,CAEP,IAAMC,CAAAA,CACJ,MAAA,CAAO,UAAA,CAAWC,+BAAAA,CAAYL,CAAc,OAAO,CAAC,CAAA,CACpD,MAAA,CAAO,UAAA,CAAWE,CAAS,CAAA,CAE7B,EAAA,CAAI,IAAA,CAAK,GAAA,CAAI,CAAA,CAAIE,CAAkB,CAAA,CAAId,EAAAA,CAAuB,CAC5D,OAAA,CAAQ,IAAA,CACN,qEAAA,CACA,CACE,kBAAA,CAAAc,CACF,CACF,CAAA,CAEA,IAAME,CAAAA,CAAQ,IAAIC,wBAAAA,CAAU,CAC1B,MAAA,CAAQ,kBAAA,CACR,KAAA,CAAO,SAAA,CACP,OAAA,CACE,qEAAA,CACF,KAAA,CAAO,CACL,kBAAA,CAAAH,CAAAA,CACA,KAAA,CAAOH,CAAAA,CAAS,GAAA,CAAKO,CAAAA,EAAMA,CAAAA,CAAE,KAAK,CAAA,CAClC,aAAA,CAAeH,+BAAAA,CAAYL,CAAc,OAAO,CAAA,CAChD,SAAA,CAAAE,CAAAA,CACA,SAAA,CAAAC,CACF,CAAA,CACA,WAAA,CAAa,CAAC,kBAAkB,CAClC,CAAC,CAAA,CACDM,mBAAAA,CAAe,gBAAA,CAAiBH,CAAK,CACvC,CACF,CAEA,MAAM,QAAA,CAASI,CAAAA,CAAqD,CAClE,IAAMC,CAAAA,CAAc,IAAIC,wBAAAA,CACtB,IAAA,CAAK,GAAA,CAEL,IAAA,CAAK,OACP,CAAA,CACM,CACJ,OAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,MAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CAAUC,iBAAAA,CACV,YAAA,CAAApC,CACF,CAAA,CAAI4B,CAAAA,CACJ,IAAA,CAAK,kBAAA,CAAmB,CAAE,OAAA,CAAAG,CAAAA,CAAS,QAAA,CAAAC,CAAS,CAAC,CAAA,CAE7C3B,iCAAAA,CAA+B,CAAA,CAE/B,IAAMgC,CAAAA,CAAcrB,iCAAAA,CAAQe,CAAS,MAAM,CAAA,EAAKf,iCAAAA,CAAQgB,CAAU,MAAM,CAAA,CAGlEM,CAAAA,CAAY,IAAIC,uBAAAA,CACpB,IAAA,CAAK,OAAA,CACL,IAAA,CAAK,oBAAA,CAAqBR,CAAAA,CAAQ,OAAO,CAAA,CACzCA,CAAAA,CAAQ,QACV,CAAA,CACMS,CAAAA,CAAa,IAAID,uBAAAA,CACrB,IAAA,CAAK,OAAA,CACL,IAAA,CAAK,oBAAA,CAAqBP,CAAAA,CAAS,OAAO,CAAA,CAC1CA,CAAAA,CAAS,QACX,CAAA,CAEMS,CAAAA,CAAcC,wBAAAA,CAAY,aAAA,CAC9BJ,CAAAA,CACAL,CACF,CAAA,CAGM,CACJ,KAAA,CAAOd,CAAAA,CACP,WAAA,CAAAF,CAAAA,CACA,YAAA,CAAcG,CAChB,CAAA,CAAmB,MAAMS,CAAAA,CAAY,YAAA,CAAa,iBAAA,CAAkB,CAElE,OAAA,CAAS,IAAA,CAAK,OAAA,CACd,OAAA,CAASS,CAAAA,CAAU,OAAA,CACnB,QAAA,CAAUE,CAAAA,CAAW,OAAA,CACrB,QAAA,CAAA/B,EAAAA,CACA,UAAA,CAAYgC,CACd,CAAC,CAAA,CAED,EAAA,CAAI,iBAACtB,CAAAA,6BAAU,QAAA,CACb,MAAM,IAAIwB,wBAAAA,CAAa,CACrB,QAAA,CAAU,KAAA,CAAA,CACV,QAAA,CAAU,CACR,GAAA,CAAK,IAAA,CAAK,GAAA,CACV,IAAA,CAAM,IAAA,CAAK,IAAA,CACX,IAAA,CAAM,IAAA,CAAK,IACb,CAAA,CACA,MAAA,CAAQ/B,mBAAAA,CAAe,qBAAA,CACvB,OAAA,CAAS,IAAA,CAAK,OAAA,CACd,OAAA,CAAS,CACP,OAAA,CAAS0B,CAAAA,CAAU,OAAA,CACnB,QAAA,CAAUE,CAAAA,CAAW,OAAA,CACrB,QAAA,CAAA/B,EAAAA,CACA,UAAA,CAAYgC,CACd,CAAA,CACA,OAAA,CAAS,0CACX,CAAC,CAAA,CAIH,IAAMG,CAAAA,CAAO,IAAIC,sBAAAA,CAAK,CACpB,OAAA,CAAS,IAAA,CAAK,OAAA,CACd,KAAA,CAAO1B,CAAAA,CACP,QAAA,CAAAV,EAAAA,CACA,QAAA,CAAU,IACZ,CAAC,CAAA,CACKqC,CAAAA,CAAc,MAAMF,CAAAA,CAAK,KAAA,CAAM5C,CAAAA,CAAa,SAAA,CAAU,GAAG,CAAA,CAE/D,EAAA,CAAI,CAAA,CAAE,mBAAA,GAAuB8C,CAAAA,CAAAA,CAC3B,MAAM,IAAI,KAAA,CAAM,oBAAoB,CAAA,CAGtC,OAAA,IAAA,CAAK,gBAAA,CAAiB,CACpB,aAAA,CAAeA,CAAAA,CAAY,iBAAA,CAC3B,QAAA,CAAA3B,CAAAA,CACA,SAAA,CAAAC,CAAAA,CACA,SAAA,CAAWQ,CACb,CAAC,CAAA,CAGM,CACL,SAAA,CAAWkB,CAAAA,CAAY,iBAAA,CAAkB,MAAA,CAAO,QAAA,CAAS,CAAA,CACzD,QAAA,CAAUb,CAAAA,CACV,qBAAA,CAAuB,IAAA,CAAK,0BAAA,CAA2B,CACrD,OAAA,CAAAF,CAAAA,CACA,SAAA,CAAWE,CAAAA,CACX,OAAA,CAASa,CAAAA,CAAY,EACvB,CAAC,CAAA,CACD,IAAA,CAAM,IAAA,CAAK,IAAA,CACX,qBAAA,CAAuB,IAAA,CAAK,oBAAA,CAAqB7B,CAAW,CAAA,CAC5D,UAAA,CAAY,CAAA,CACZ,WAAA,CAAa,CAAC,CAAE,OAAA,CAAAkB,CAAQ,CAAA,CAAA,EAAM,CAE5B,IAAMY,CAAAA,CAAWH,CAAAA,CAAK,SAAA,CAAU,CAC9B,QAAA,CAAUI,qBAAAA,CAAS,cAAA,CAAed,CAAAA,CAAS,QAAA,CAAS,CAAgB,CAAA,CACpE,QAAA,CAAU,MAAA,CAAO,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,GAAA,CAAI,CAAA,CAAI,GAAI,CAAA,CAAI3B,EAAgB,CAAA,CACjE,WAAA,CAAAuC,CAAAA,CACA,MAAA,CAAQX,CAAAA,CACR,SAAA,CAAWA,CAAAA,CACX,SAAA,CAAWE,CACb,CAAC,CAAA,CAEK,CAAE,IAAA,CAAMY,CAAAA,CAAQ,YAAA,CAAAC,CAAa,CAAA,CAAIC,sCAAAA,CACrC,GAAA,CAAKC,mBAAAA,CACL,IAAA,CAAML,CAAAA,CAAS,QACjB,CAAC,CAAA,CAED,MAAO,CACL,MAAA,CAAAE,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,GAAA,CAAKE,mBAAAA,CACL,OAAA,CAASL,CAAAA,CAAS,EAAA,CAClB,KAAA,CAAOA,CAAAA,CAAS,KAAA,EAAS,MAAA,CAAO,CAAC,CACnC,CACF,CACF,CACF,CACF,UAAA,CAEaM,EAAAA,CAAM,IAAI1C,EAAAA,CC1OvB,IAYM2C,EAAAA,YAAN,MAAA,QAAkC1C,mBAAe,2KAC/C,IAAA,CAAA,YAAA,gBACA,eAAA,CAAkB,CAACC,iBAAAA,CAAQ,OAAA,CAASA,iBAAAA,CAAQ,OAAO,EAAA,gBAC1C,IAAA,CAAO,MAAA,iBAEhB,CAAkB,CAChB,OAAA,CAAAkB,CAAAA,CACA,QAAA,CAAAC,CACF,CAAA,CAGY,CACV,OAAK,KAAA,CAAM,iBAAA,CAAkB,CAAE,OAAA,CAAAD,CAAAA,CAAS,QAAA,CAAAC,CAAS,CAAC,CAAA,CAMhDD,CAAAA,CAAQ,OAAA,GAAYC,CAAAA,CAAS,OAAA,EAC7BhB,iCAAAA,CAAQe,CAAS,KAAA,CAAO,CAAE,OAAA,CAASA,CAAAA,CAAQ,OAAQ,CAAC,CAAA,EACpDf,iCAAAA,CAAQgB,CAAU,MAAM,CAAA,CAPjB,CAAA,CASX,CAEA,MAAM,QAAA,CAAS,CACb,OAAA,CAAAD,CAAAA,CACA,MAAA,CAAAE,CACF,CAAA,CAGiC,CAM/B,EAAA,CALA,IAAA,CAAK,kBAAA,CAAmB,CACtB,OAAA,CAAAF,CAAAA,CACA,QAAA,CAAU,CAAE,GAAGwB,mBAAAA,CAAW,OAAA,CAASxB,CAAAA,CAAQ,OAAQ,CACrD,CAAC,CAAA,CAEG,CAACf,iCAAAA,CAAQe,CAAS,KAAA,CAAO,CAAE,MAAA,CAAQ,IAAA,CAAK,MAAO,CAAC,CAAA,CAClD,MAAM,IAAIyB,wBAAAA,CAAqB,CAC7B,QAAA,CAAU,SAAA,CACV,KAAA,CAAOzB,CAAAA,CACP,QAAA,CAAU,KAAA,CACV,KAAA,CAAO,SACT,CAAC,CAAA,CAGH,MAAO,CACL,SAAA,CAAWE,CAAAA,CACX,QAAA,CAAUA,CAAAA,CACV,qBAAA,CAAuB,CAAC,CAAA,CACxB,IAAA,CAAA,WAAA,CACA,YAAA,CAAc,CAAA,CAAA,CACd,UAAA,CAAY,CAKd,CACF,CACF,WAAA,CAEawB,EAAAA,CAAY,IAAIH,EAAAA,CCxE7B,IASaI,EAAAA,YAAN,MAAA,QAA6B9C,mBAAe,wPACjD,IAAA,CAAA,OAAA,gBACA,eAAA,CAAkB,CAACC,iBAAAA,CAAQ,OAAO,EAAA,iBACzB,IAAA,CAAO,OAAA,iBAChB,oBAAA,CAAuB,CAAA,EAAA,iBAEvB,gBAAA,CAA6B,CAC3B,qCAAA,CACA,qCAAA,CACA,yDAAA,CACA,qBACF,EAAA,MAEM,QAAA,CAAS,CACb,OAAA,CAAAkB,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,MAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CAAUC,iBAAAA,CACV,iBAAA,CAAAuB,CAAAA,CACA,6BAAA,CAAAC,CAAAA,CAAgC,CAAA,CAAA,CAChC,WAAA,CAAAC,CACF,CAAA,CAAkD,CAChD,IAAA,CAAK,kBAAA,CAAmB,CAAE,OAAA,CAAA9B,CAAAA,CAAS,QAAA,CAAAC,CAAS,CAAC,CAAA,CAE7C,GAAM,CACJ,cAAA,CAAA8B,CAAAA,CACA,eAAA,CAAAC,CAAAA,CACA,eAAA,CAAAC,CAAAA,CACA,gBAAA,CAAAC,CACF,CAAA,CAAI,IAAA,CAAK,cAAA,CAAelC,CAAAA,CAAQ,OAAA,CAASC,CAAAA,CAAS,OAAO,CAAA,CAEnDkC,CAAAA,CAAuB,IAAA,CAAK,kBAAA,CAChCjC,CAAAA,CACA0B,CACF,CAAA,CAEA,IAAA,CAAK,GAAA,CAAMC,CAAAA,CACP,kCAAA,CACA,CAAA,EAAA;ACuHS,gEAAA;ACnKjB,mFAAA","file":"/Users/liammcaweeney/Work/bera/monobera/packages/berajs/dist/hooks/exports.cjs","sourcesContent":[null,"import useSWR from \"swr\";\n\nimport { usePublicClient } from \"@berachain/wagmi/hooks\";\n\nimport type { GetConvertToAssetsProps } from \"~/actions/bend/getConvertToAssets\";\nimport { getConvertToAssets } from \"~/actions/bend/getConvertToAssets\";\nimport { assertPublicClient } from \"~/errors/assert\";\nimport type { DefaultHookOptions } from \"~/types/global\";\n\nexport const useGetConvertToAssets = (\n {\n sharesAmount,\n vaultAddress,\n vaultChainId,\n }: Omit<GetConvertToAssetsProps, \"publicClient\"> & { vaultChainId?: number },\n options?: DefaultHookOptions,\n) => {\n const publicClient = usePublicClient({ chainId: vaultChainId });\n const swrResponse = useSWR(\n publicClient && sharesAmount && vaultAddress\n ? [\"useGetConvertToAssets\", sharesAmount, vaultAddress, vaultChainId]\n : null,\n async ([_, sharesAmount, vaultAddress]) => {\n assertPublicClient(publicClient);\n\n return getConvertToAssets({\n sharesAmount,\n vaultAddress,\n publicClient,\n });\n },\n {\n ...options?.opts,\n },\n );\n\n return {\n ...swrResponse,\n refresh: () => {\n swrResponse.mutate();\n },\n };\n};\n","import { useMemo } from \"react\";\nimport { type Address, zeroAddress } from \"viem\";\n\nimport { defaultChainId } from \"@berachain/config/internal\";\n\nimport { useBeraWallet, usePublicClient } from \"@berachain/wagmi/hooks\";\n\nimport { bex } from \"~/actions/dex/aggregators/bex\";\nimport { bgtRedeem } from \"~/actions/dex/aggregators/bgt\";\nimport { enso } from \"~/actions/dex/aggregators/enso/enso\";\nimport { erc4626Deposit } from \"~/actions/dex/aggregators/erc4626\";\nimport { fly } from \"~/actions/dex/aggregators/fly\";\nimport { haiku } from \"~/actions/dex/aggregators/haiku\";\nimport { honeyNative } from \"~/actions/dex/aggregators/honey\";\nimport { kyberswap } from \"~/actions/dex/aggregators/kyberswap\";\nimport { oogabooga } from \"~/actions/dex/aggregators/oogabooga\";\nimport { openOcean } from \"~/actions/dex/aggregators/openOcean\";\nimport { wberaSwap } from \"~/actions/dex/aggregators/wbera\";\nimport { useBeraFlag } from \"~/contexts/BeraFlags/BeraFlags\";\nimport type { HoneyConfigContextReturn } from \"~/contexts/HoneyConfigProvider\";\nimport type { SwapReferrer } from \"~/enum/dex\";\nimport { useAggregatorsRouterFeeBps } from \"~/hooks/dex/useAggregatorsRouterFeeBps\";\nimport type { IRawAggregatorQuote, MinimalERC20 } from \"~/types/dex\";\nimport type { DefaultHookOptions } from \"~/types/global\";\nimport { parseBaseArgs } from \"~/utils/parseBaseArgs\";\nimport { isToken } from \"~/utils/tokens\";\nimport { useUnderlyingAsset } from \"../tokens/useUnderlyingAsset\";\nimport { useBexStatus } from \"./useBexStatus\";\nimport {\n getAggregatorsSWROptions,\n raw_useSingleAggregatorQuote,\n} from \"./useSingleAggregatorQuote\";\n\nconst AGGREGATORS = [\n oogabooga,\n fly,\n kyberswap,\n openOcean,\n haiku,\n enso,\n bex,\n honeyNative,\n erc4626Deposit,\n];\n\ntype IUseAggregatorsQuotesArgs = BeraJS.BaseFunctionArgs & {\n tokenIn: MinimalERC20;\n tokenOut: MinimalERC20;\n amount: string;\n slippage: number;\n referrer?: SwapReferrer;\n rewardVault?: Address;\n /**\n * Useful cause the collaterals are provided byt he honeyContext and this way we can\n * use the Provider only in the swap page where is needed.\n *\n * The collaterals for the honey mint/redeem aggregator.\n */\n honeyNativeState?: Pick<\n HoneyConfigContextReturn,\n \"collateralList\" | \"protocol\"\n >;\n};\n\nexport function useAggregatorsQuotes(\n args: IUseAggregatorsQuotesArgs,\n options?: DefaultHookOptions,\n) {\n const { address: account } = useBeraWallet();\n const proxyAggregatorsThroughVercel = useBeraFlag(\n \"proxyAggregatorsThroughVercel\",\n );\n const activeAggregators = useBeraFlag(\"aggregators\");\n const publicClient = usePublicClient();\n const { data: feeBps } = useAggregatorsRouterFeeBps();\n\n const isWrapOrUnwrap =\n (isToken(args.tokenIn.address, \"BERA\") ||\n isToken(args.tokenIn.address, \"WBERA\")) &&\n (isToken(args.tokenOut.address, \"BERA\") ||\n isToken(args.tokenOut.address, \"WBERA\"));\n\n const isBgtRedeem = isToken(args.tokenIn.address, \"BGT\", {\n chainId: defaultChainId,\n });\n\n const { data: underlyingToken } = useUnderlyingAsset({\n token: args.tokenOut,\n });\n\n /**\n * Whether it's a native swap (wrap/unwrap) or BGT redeem\n */\n const isNativeSwap = isWrapOrUnwrap || isBgtRedeem;\n\n const { config } = parseBaseArgs(args);\n\n const isMAEnabled = config.bex.aggregatorsRouter !== zeroAddress;\n\n const swrOptions = getAggregatorsSWROptions(options);\n\n const sharedArgs = {\n activeAggregators,\n isMAEnabled,\n underlyingToken,\n isNativeSwap,\n account,\n publicClient,\n proxyAggregatorsThroughVercel,\n feeBps,\n } as const;\n\n // we're using independent useSWRs so we can show quotes as they come\n // instead of waiting for all of them to load\n const oogaBogaResult = raw_useSingleAggregatorQuote(\n {\n ...sharedArgs,\n ...args,\n aggregator: oogabooga,\n },\n { opts: swrOptions },\n );\n\n const flyResult = raw_useSingleAggregatorQuote(\n {\n ...sharedArgs,\n ...args,\n aggregator: fly,\n },\n { opts: swrOptions },\n );\n\n const erc4626Result = raw_useSingleAggregatorQuote(\n {\n ...sharedArgs,\n ...args,\n aggregator: erc4626Deposit,\n },\n { opts: swrOptions },\n );\n\n const kyberswapResult = raw_useSingleAggregatorQuote(\n {\n ...sharedArgs,\n ...args,\n aggregator: kyberswap,\n },\n { opts: swrOptions },\n );\n\n const openOceanResult = raw_useSingleAggregatorQuote(\n {\n ...sharedArgs,\n ...args,\n aggregator: openOcean,\n },\n { opts: swrOptions },\n );\n\n const haikuResult = raw_useSingleAggregatorQuote(\n {\n ...sharedArgs,\n ...args,\n aggregator: haiku,\n },\n { opts: swrOptions },\n );\n\n const ensoResult = raw_useSingleAggregatorQuote(\n {\n ...sharedArgs,\n ...args,\n aggregator: enso,\n },\n { opts: swrOptions },\n );\n\n const { protocol: bexProtocol } = useBexStatus();\n\n const bexResult = raw_useSingleAggregatorQuote(\n {\n ...sharedArgs,\n ...args,\n aggregator: bex,\n },\n { opts: { ...swrOptions, isEnabled: bexProtocol.isPaused === false } },\n );\n\n const wberaSwapResult = raw_useSingleAggregatorQuote({\n ...sharedArgs,\n ...args,\n aggregator: wberaSwap,\n });\n\n const bgtRedeemResult = raw_useSingleAggregatorQuote(\n {\n ...sharedArgs,\n ...args,\n aggregator: bgtRedeem,\n },\n { opts: swrOptions },\n );\n\n const honeyResult = raw_useSingleAggregatorQuote(\n {\n ...sharedArgs,\n ...args,\n aggregator: honeyNative,\n },\n { opts: swrOptions },\n );\n\n const results = isWrapOrUnwrap\n ? [wberaSwapResult]\n : isBgtRedeem\n ? [bgtRedeemResult]\n : [\n oogaBogaResult,\n erc4626Result,\n flyResult,\n kyberswapResult,\n openOceanResult,\n haikuResult,\n ensoResult,\n honeyResult,\n bexProtocol.isPaused === false ? bexResult : null,\n ].filter((i): i is NonNullable<typeof i> => i !== null);\n\n const data = useMemo(() => {\n const error = results.reduce<(typeof results)[number][\"error\"]>(\n (error, result) => error || result.error,\n undefined,\n );\n\n const loadingAggregatorsNames = results\n .map((r, i) =>\n r.isLoading\n ? isNativeSwap\n ? wberaSwap.name\n : AGGREGATORS[i].name\n : null,\n )\n .filter(Boolean);\n\n const quotes = results\n .filter(\n (result) =>\n result !== undefined &&\n !result.isLoading &&\n !result.error &&\n result.data?.amountOut,\n )\n .map(({ data }) => data) as IRawAggregatorQuote[];\n\n const isLoading = quotes.length === 0 && loadingAggregatorsNames.length > 0;\n return { quotes, loadingAggregatorsNames, isLoading, error };\n }, [results]);\n\n return {\n ...data,\n refresh: () => results.map((r) => r.mutate()),\n };\n}\n","import {\n type Address,\n Slippage,\n type SorSwapResult,\n Swap,\n SwapKind,\n Token,\n TokenAmount,\n} from \"@berachain-foundation/berancer-sdk\";\nimport { decodeFunctionData, formatEther, zeroAddress } from \"viem\";\n\nimport { getUriFromLink } from \"@berachain/config\";\nimport { ChainId } from \"@berachain/config/internal\";\n\nimport { balancerVaultAbi } from \"~/abi/bex/balancerVault\";\nimport { BalancerApi } from \"~/actions/dex/b-sdk\";\nimport { Aggregators } from \"~/enum/dex\";\nimport { assertPublicClient } from \"~/errors/assert\";\nimport { BeraError } from \"~/errors/BeraError\";\nimport { BeraMonitoring } from \"~/errors/BeraMonitoring\";\nimport { RequestError } from \"~/errors/RequestError\";\nimport type { IAggregatorArgs, IRawAggregatorQuote } from \"~/types/dex\";\nimport { isToken } from \"~/utils/tokens\";\nimport { BaseAggregator } from \"./base\";\n\n// Constants\nconst DEFAULT_DEADLINE = 60 * 5; // default transaction deadline in seconds\nconst STALE_PRICE_THRESHOLD = 0.05; // 5% threshold for stale prices\nconst swapKind = SwapKind.GivenIn;\n\nclass BexAggregator extends BaseAggregator {\n name = Aggregators.HubPools;\n supportedChains = [ChainId.MAINNET, ChainId.BEPOLIA];\n readonly url = getUriFromLink(this.config.api);\n readonly type = \"graphql\";\n\n /**\n * Helper function to convert zero address to wrapped token address\n */\n private convertZeroToWrapped(address: Address): Address {\n return isToken(address, \"BERA\") ? this.config.tokens.wbera : address;\n }\n\n /**\n * Helper to calculate price impact percentage\n */\n private calculatePriceImpact(priceImpact: {\n error: string | null;\n priceImpact?: string;\n }): number {\n if (priceImpact.error) {\n console.error(\"Swap price impact error\", priceImpact);\n return 0;\n }\n\n return Number(priceImpact.priceImpact);\n }\n\n /**\n * Helper to check for stale SOR prices\n */\n private checkStalePrices({\n onChainAmount,\n sorPaths,\n sorAmount,\n queryData,\n }: {\n onChainAmount: TokenAmount;\n sorPaths: { pools: string[] }[];\n sorAmount: string;\n queryData: IAggregatorArgs;\n }): void {\n // Check for stale prices\n const deltaFromSorAmount =\n Number.parseFloat(formatEther(onChainAmount.scale18)) /\n Number.parseFloat(sorAmount);\n\n if (Math.abs(1 - deltaFromSorAmount) > STALE_PRICE_THRESHOLD) {\n console.warn(\n \"SOR returned stale prices. Delta from return amount is more than 5%\",\n {\n deltaFromSorAmount,\n },\n );\n\n const error = new BeraError({\n reason: \"SOR_STALE_PRICES\",\n level: \"warning\",\n message:\n \"SOR returned stale prices. Delta from return amount is more than 5%\",\n extra: {\n deltaFromSorAmount,\n pools: sorPaths.map((p) => p.pools),\n onChainAmount: formatEther(onChainAmount.scale18),\n sorAmount,\n queryData,\n },\n fingerprint: [\"SOR_STALE_PRICES\"],\n });\n BeraMonitoring.captureException(error);\n }\n }\n\n async getQuote(args: IAggregatorArgs): Promise<IRawAggregatorQuote> {\n const balancerApi = new BalancerApi(\n this.url,\n // @ts-expect-error b-sdk has more chains than berajs\n this.chainId,\n );\n const {\n tokenIn,\n tokenOut,\n amount,\n slippage,\n account = zeroAddress,\n publicClient,\n } = args;\n this.assertChainSupport({ tokenIn, tokenOut });\n\n assertPublicClient(publicClient);\n\n const wberaIsBera = isToken(tokenIn, \"BERA\") || isToken(tokenOut, \"BERA\");\n\n // Initialize tokens\n const tokenInV3 = new Token(\n this.chainId,\n this.convertZeroToWrapped(tokenIn.address),\n tokenIn.decimals,\n );\n const tokenOutV3 = new Token(\n this.chainId,\n this.convertZeroToWrapped(tokenOut.address),\n tokenOut.decimals,\n );\n\n const tokenAmount = TokenAmount.fromRawAmount(\n tokenInV3,\n amount as `${number}`,\n );\n\n // swap paths\n const {\n paths: sorPaths,\n priceImpact,\n returnAmount: sorAmount,\n }: SorSwapResult = await balancerApi.sorSwapPaths.fetchSorSwapPaths({\n // @ts-expect-error b-sdk has more chains than berajs\n chainId: this.chainId,\n tokenIn: tokenInV3.address,\n tokenOut: tokenOutV3.address,\n swapKind,\n swapAmount: tokenAmount,\n });\n\n if (!sorPaths?.length) {\n throw new RequestError({\n response: undefined,\n endpoint: {\n url: this.url,\n name: this.name,\n type: this.type,\n },\n reason: BaseAggregator.PATH_NOT_FOUND_REASON,\n chainId: this.chainId,\n payload: {\n tokenIn: tokenInV3.address,\n tokenOut: tokenOutV3.address,\n swapKind,\n swapAmount: tokenAmount,\n },\n message: `No swap paths returned from Balancer API`,\n });\n }\n\n // execute swap query\n const swap = new Swap({\n chainId: this.chainId,\n paths: sorPaths,\n swapKind,\n userData: \"0x\" as `0x${string}`,\n });\n const queryOutput = await swap.query(publicClient.transport.url);\n\n if (!(\"expectedAmountOut\" in queryOutput)) {\n throw new Error(\"No Bex paths found\");\n }\n\n this.checkStalePrices({\n onChainAmount: queryOutput.expectedAmountOut,\n sorPaths,\n sorAmount,\n queryData: args,\n });\n\n // format quote response\n return {\n amountOut: queryOutput.expectedAmountOut.amount.toString(),\n amountIn: amount,\n allowanceRequirements: this.parseAllowanceRequirements({\n tokenIn,\n rawAmount: amount,\n spender: queryOutput.to,\n }),\n name: this.name,\n priceImpactPercentage: this.calculatePriceImpact(priceImpact),\n swapFeeBps: 0,\n getCalldata: ({ account }) => {\n // generate user transaction data\n const callData = swap.buildCall({\n slippage: Slippage.fromPercentage(slippage.toString() as `${number}`),\n deadline: BigInt(Math.round(Date.now() / 1000) + DEFAULT_DEADLINE),\n queryOutput,\n sender: account as Address,\n recipient: account as Address,\n wethIsEth: wberaIsBera,\n });\n\n const { args: params, functionName } = decodeFunctionData({\n abi: balancerVaultAbi,\n data: callData.callData,\n });\n\n return {\n params,\n functionName,\n abi: balancerVaultAbi,\n address: callData.to,\n value: callData.value || BigInt(0),\n };\n },\n };\n }\n}\n\nexport const bex = new BexAggregator();\n","import { ChainId } from \"@berachain/config/internal\";\n\nimport { Aggregators } from \"~/enum/dex\";\nimport { InvalidArgumentError } from \"~/errors/InvalidArgumentError\";\nimport type {\n IAggregatorArgs,\n IRawAggregatorQuote,\n MinimalERC20,\n} from \"~/types/dex\";\nimport { beraToken, isToken } from \"~/utils/tokens\";\nimport { BaseAggregator } from \"./base\";\n\nclass RedeemBgtAggregator extends BaseAggregator {\n name = Aggregators.RedeemBgt;\n supportedChains = [ChainId.MAINNET, ChainId.BEPOLIA];\n readonly type = \"rpc\";\n\n checkChainSupport({\n tokenIn,\n tokenOut,\n }: {\n tokenIn: MinimalERC20;\n tokenOut: MinimalERC20;\n }): boolean {\n if (!super.checkChainSupport({ tokenIn, tokenOut })) {\n return false;\n }\n\n return (\n // only supported on same chain\n tokenIn.chainId === tokenOut.chainId &&\n isToken(tokenIn, \"BGT\", { chainId: tokenIn.chainId }) &&\n isToken(tokenOut, \"BERA\")\n );\n }\n // handles native swaps: wrap and unwrap\n async getQuote({\n tokenIn,\n amount,\n }: Omit<\n IAggregatorArgs,\n \"slippage\" | \"feeBps\" | \"tokenOut\" | \"account\"\n >): Promise<IRawAggregatorQuote> {\n this.assertChainSupport({\n tokenIn,\n tokenOut: { ...beraToken, chainId: tokenIn.chainId },\n });\n\n if (!isToken(tokenIn, \"BGT\", { config: this.config })) {\n throw new InvalidArgumentError({\n property: \"tokenIn\",\n value: tokenIn,\n expected: \"BGT\",\n level: \"warning\",\n });\n }\n\n return {\n amountOut: amount,\n amountIn: amount,\n allowanceRequirements: [],\n name: Aggregators.RedeemBgt,\n isNativeSwap: true,\n swapFeeBps: 0,\n // not adding calldata here because it depends on the connected wallet\n // bgt redeem requires a receiver address\n // moreover this is a sensitive operation, better be sure of what data is being sent\n // by controlling it on the consumer side\n } as const;\n }\n}\n\nexport const bgtRedeem = new RedeemBgtAggregator();\n","import { zeroAddress } from \"viem\";\n\nimport { ChainId } from \"@berachain/config/internal\";\n\nimport { aggregatorsRouterAbi } from \"~/abi/bex/aggregatorsRouter\";\nimport { Aggregators } from \"~/enum/dex\";\nimport type { IAggregatorArgs, IRawAggregatorQuote } from \"~/types/dex\";\nimport { BaseAggregator } from \"../base\";\n\nexport class EnsoAggregator extends BaseAggregator {\n name = Aggregators.Enso;\n supportedChains = [ChainId.MAINNET];\n readonly type = \"rest\";\n needsAccountForQuote = true;\n\n notFoundMessages: string[] = [\n \"Could not build shortcuts for route\",\n \"Could not quote shortcuts for route\",\n \"Swap not found for a required underlying of defi route,\",\n \"No route found from\",\n ];\n\n async getQuote({\n tokenIn,\n tokenOut,\n amount,\n slippage,\n account = zeroAddress,\n aggregatorsFeeBps,\n proxyAggregatorsThroughVercel = false,\n rewardVault,\n }: IAggregatorArgs): Promise<IRawAggregatorQuote> {\n this.assertChainSupport({ tokenIn, tokenOut });\n\n const {\n tokenInAddress,\n tokenOutAddress,\n isTokenInNative,\n isTokenOutNative,\n } = this.parseAddresses(tokenIn.address, tokenOut.address);\n\n const inputAmountAfterFees = this.getAmountAfterFees(\n amount,\n aggregatorsFeeBps,\n );\n\n this.url = proxyAggregatorsThroughVercel\n ? `/api/aggregators?aggregator=enso`\n : `${this.config.bex.aggregatorsProxyUrl}/enso/api/v1/shortcuts/route?`;\n\n const url = new URL(this.url);\n url.searchParams.set(\n \"fromAddress\",\n this.config.bex.aggregatorsRouterExecutor,\n );\n url.searchParams.set(\"receiver\", this.config.bex.aggregatorsRouterExecutor);\n url.searchParams.set(\"spender\", this.config.bex.aggregatorsRouterExecutor);\n url.searchParams.set(\"amountIn\", inputAmountAfterFees);\n url.searchParams.set(\"tokenIn\", tokenInAddress);\n url.searchParams.set(\"tokenOut\", tokenOutAddress);\n url.searchParams.set(\"chainId\", ChainId.MAINNET.toString());\n url.searchParams.set(\"slippage\", (Number(slippage) * 100).toString());\n url.searchParams.set(\"refundReceiver\", account);\n\n const response = await this.fetch(url);\n\n const quote = await response.json();\n\n const inputData = this.getInputData({\n tokenIn: tokenInAddress,\n amountIn: amount,\n isNative: isTokenInNative,\n });\n\n const outputData = {\n tokenOut: tokenOutAddress,\n receiver: account,\n minAmountOut: this.getMinAmountOut(quote.amountOut.toString(), slippage),\n isNative: isTokenOutNative,\n };\n\n const aggregatorData = {\n aggregator: quote.tx?.to,\n data: quote.tx?.data,\n };\n\n return {\n amountOut: quote.amountOut.toString(),\n amountIn: amount,\n allowanceRequirements: this.parseAllowanceRequirements({\n tokenIn,\n rawAmount: amount,\n spender: this.config.bex.aggregatorsRouter,\n }),\n name: this.name,\n swapFeeBps: aggregatorsFeeBps!,\n getCalldata: () => ({\n params: [\n inputData,\n outputData,\n aggregatorData,\n {\n rewardVault: rewardVault ?? zeroAddress,\n isSwapAndStake: !!rewardVault,\n },\n ],\n functionName: \"swap\",\n abi: aggregatorsRouterAbi,\n // send full amount to router first, which will deduct the swap fee before executing trade\n value: isTokenInNative ? BigInt(amount) : BigInt(\"0\"),\n address: this.config.bex.aggregatorsRouter,\n }),\n };\n }\n}\n\nexport const enso = new EnsoAggregator();\n","import { useEffect, useState } from \"react\";\nimport { PoolType } from \"@berachain-foundation/berancer-sdk\";\n\nimport { PoolCreationStep } from \"~/enum/dex\";\nimport type { TokenCurrentPriceMap, TokenWithAmount } from \"~/types/dex\";\nimport { wrapNativeTokens } from \"~/utils/tokenWrapping\";\nimport { type Oracle, OracleMode } from \"./useCreatePool\";\n\nconst DEFAULT_LIQUIDITY_MISMATCH_TOLERANCE_PERCENT = 0.05; // 5%\n\nexport type LiquidityMismatchInfo = {\n title: string | null;\n message: string | null;\n suggestWeighted?: boolean;\n};\n\ninterface UseLiquidityMismatchParams {\n currentStep: PoolCreationStep;\n tokenPrices?: TokenCurrentPriceMap;\n isLoadingTokenPrices: boolean;\n tokens: TokenWithAmount[] | null;\n weights: bigint[] | null;\n weightsError: string | null;\n poolType: PoolType;\n liquidityMismatchTolerancePercent?: number;\n oracles: Oracle[];\n}\n\n/**\n * Hook for detecting liquidity mismatches.\n *\n * @param {PoolCreationStep} currentStep - The current step of the pool creation process.\n * @param {Record<string, number>} tokenPrices - The current token prices.\n * @param {boolean} isLoadingTokenPrices - Whether the token prices are still loading.\n * @param {Array<{ address: string, amount: number }>} tokens - The tokens in the pool, including their addresses and amounts.\n * @param {Record<string, number>} weights - The per-token weights in the pool we are creating.\n * @param {string | null} weightsError - An error message for the weights indicating that the weights are invalid.\n * @param {string} poolType - The type of pool being created.\n * @param {number} liquidityMismatchTolerancePercent - The tolerance for liquidity mismatches in percent.\n * @returns {Object} The liquidity mismatch info.\n */\nexport const useLiquidityMismatch = ({\n currentStep,\n tokenPrices,\n isLoadingTokenPrices,\n tokens,\n weights,\n weightsError,\n poolType,\n liquidityMismatchTolerancePercent = DEFAULT_LIQUIDITY_MISMATCH_TOLERANCE_PERCENT,\n oracles,\n}: UseLiquidityMismatchParams): LiquidityMismatchInfo => {\n // NOTE: would be nice to use Maps/Records more in here, as the zipping/unzipping is cumbersome.\n // NOTE: if we pull in string literal for currentStep things would also be a bit clearer in here.\n const [liquidityMismatchInfo, setLiquidityMismatchInfo] =\n useState<LiquidityMismatchInfo>({ title: null, message: null });\n\n useEffect(() => {\n // If we are either using custom rate-providing oracles or have incorrect/loading token prices, we cant do validation.\n if (\n !tokenPrices ||\n isLoadingTokenPrices ||\n !tokens ||\n !weights ||\n weightsError ||\n tokens.some((token) => !token.address) ||\n oracles.some((oracle) => oracle.mode === OracleMode.Custom) // Oracles give prices on their own, we dont support that here yet.\n ) {\n setLiquidityMismatchInfo({ title: null, message: null });\n return;\n }\n\n // Calculate some basic metrics we'll use to determine per-token contributions and model potential losses from arbitrage.\n let totalLiquidityUSD = 0;\n const tokenUSDAmounts: number[] = [];\n const numTokens = tokens.length;\n const wrappedTokens = wrapNativeTokens(tokens);\n const tokenUSDPrices = wrappedTokens.map((token) => {\n const tokenPriceUSD =\n tokenPrices[token.address.toLowerCase()]?.price ?? 0;\n if (!tokenPriceUSD || tokenPriceUSD === 0) {\n tokenUSDAmounts.push(0);\n return null;\n }\n const tokenAmountUSD = tokenPriceUSD * Number.parseFloat(token.amount);\n tokenUSDAmounts.push(tokenAmountUSD);\n totalLiquidityUSD += tokenAmountUSD;\n return tokenPriceUSD;\n });\n\n // Doesn't matter what step it is, if we have missing token prices for tokens we have selected, we cant issue a real warning.\n if (\n tokenUSDPrices.some((price) => price === null) ||\n tokenUSDPrices.length !== numTokens\n ) {\n setLiquidityMismatchInfo({\n title: \"Missing token price data\",\n message: `One or more token(s) do not have valid market price data. Please verify that token market prices align with the pool\n weightings and your initial liquidity amounts.`,\n });\n return;\n }\n\n // Step 1 - During token selection we check for a deviation in the quote prices of the tokens selected (for stable pools).\n if (\n currentStep === PoolCreationStep.SELECT_TOKENS &&\n poolType === PoolType.ComposableStable\n ) {\n const normalizedUSDPrices = tokenUSDPrices.map(\n (priceUSD) => priceUSD! / tokenUSDPrices[0]!, // always normalize on the first token's price\n );\n const maxDifference =\n Math.max(...normalizedUSDPrices) - Math.min(...normalizedUSDPrices);\n\n if (maxDifference > liquidityMismatchTolerancePercent) {\n setLiquidityMismatchInfo({\n title: \"Selected tokens have a significant price deviation\",\n message: \"Did you mean to create a Weighted pool instead?\",\n suggestWeighted: true,\n });\n } else {\n setLiquidityMismatchInfo({ title: null, message: null });\n }\n\n return;\n }\n\n // Validation During Liquidity Input and onwards.\n if (\n totalLiquidityUSD === 0 ||\n tokenUSDAmounts.some((value) => value === 0)\n ) {\n // User has not yet entered fully their liquidity values, so return early.\n setLiquidityMismatchInfo({ title: null, message: null });\n return;\n }\n\n // Simulate arbitrage for the pool to determine potential losses from arbitrageurs.\n // NOTE: we assume shortfalls and excesses are losses, but in reality the actual losses would be more complex to realise.\n // Balancer does this similarily https://github.com/balancer/frontend-v2/blob/8563b8d33b6bff266148bd48d7ebc89f921374f4/src/components/cards/CreatePool/InitialLiquidity.vue#L75\n let totalLossUSD = 0;\n if (poolType === PoolType.ComposableStable) {\n const expectedPerTokenLiquidityUSD = totalLiquidityUSD / numTokens;\n tokenUSDAmounts.forEach((value) => {\n totalLossUSD += Math.abs(expectedPerTokenLiquidityUSD - value);\n });\n } else if (poolType === PoolType.Weighted) {\n tokenUSDAmounts.forEach((value, index) => {\n const weightProportion = Number(weights[index]) / 1e18;\n const expectedValueUSD = totalLiquidityUSD * weightProportion;\n totalLossUSD += Math.abs(expectedValueUSD - value);\n });\n }\n\n // We'll show a total loss if it's 90% or more\n const isTotalLoss = totalLossUSD >= totalLiquidityUSD * 0.9;\n totalLossUSD = Math.min(totalLossUSD, totalLiquidityUSD);\n const totalLossPercentage = totalLossUSD / totalLiquidityUSD;\n\n if (totalLossPercentage > liquidityMismatchTolerancePercent) {\n setLiquidityMismatchInfo({\n // If it's a total loss we dont display a percentage\n title: isTotalLoss\n ? \"You could lose all of your initial liquidity\"\n : `You could lose $${totalLossUSD.toFixed(2)} (~${(\n totalLossPercentage * 100\n ).toFixed(2)}%)`,\n message: `Based on the market token prices, the value of tokens does not align with the specified pool weights. \n This discrepancy could expose you to potential losses from arbitrageurs. ${\n poolType === PoolType.ComposableStable\n ? \"Did you mean to create a Weighted pool instead?\"\n : \"\"\n }`,\n suggestWeighted: poolType === PoolType.ComposableStable,\n });\n } else {\n // All good bb bb\n setLiquidityMismatchInfo({ title: null, message: null });\n }\n }, [\n currentStep,\n tokenPrices,\n isLoadingTokenPrices,\n tokens,\n weights,\n weightsError,\n poolType,\n liquidityMismatchTolerancePercent,\n oracles,\n ]);\n return liquidityMismatchInfo;\n};\n","import { useMemo } from \"react\";\nimport useSWR from \"swr\";\nimport { type Address, isAddress, zeroAddress } from \"viem\";\n\nimport { defaultChainId } from \"@berachain/config/internal\";\n\nimport { getTokenCurrentPrices } from \"~/actions/prices/getTokenCurrentPrices\";\nimport { POLLING } from \"~/enum/polling\";\nimport { useTokens } from \"~/hooks/tokens/useTokens\";\nimport type { TokenCurrentPriceMap, TokenWithPrice } from \"~/types/dex\";\nimport type { DefaultHookOptions } from \"~/types/global\";\nimport { isToken } from \"~/utils/tokens\";\n\n/**\n * @deprecated use useTokenPrices instead that supports multichain tokens\n */\nexport function useTokenCurrentPrices(\n {\n addressIn,\n }: {\n addressIn?: string[] | readonly string[];\n } = {},\n options: DefaultHookOptions = {\n opts: {\n refreshInterval: POLLING.NORMAL,\n revalidateOnFocus: true,\n },\n },\n) {\n const { tokenList, ensoTokens } = useTokens();\n\n /**\n * Berachain or Bepolia Tokens. All tokens from other chains are excluded since API doesn't price them.\n */\n const beraAddresses = useMemo<Address[]>(() => {\n const addresses: Address[] = [];\n\n if (addressIn) {\n addresses.push(\n ...(addressIn.filter((a): a is Address => isAddress(a)) as Address[]),\n );\n }\n return addresses.map((a) => a.toLowerCase() as Address);\n }, [tokenList]);\n\n const hasAddressesNotInTokenList = useMemo(() => {\n const tokenSet = new Set(\n tokenList?.map((token) => token.address.toLowerCase() as Address),\n );\n // Native BERA (zero address) is priced via WBERA in getTokenCurrentPrices.\n // Treat zero address as \"known\" whenever WBERA exists in token list.\n if (tokenList.some((token) => isToken(token, \"WBERA\"))) {\n tokenSet.add(zeroAddress);\n }\n\n return beraAddresses?.some((a) => !tokenSet.has(a));\n }, [beraAddresses, tokenList]);\n\n /**\n * If no addressIn is provided, use default token list\n * If all addressIn are in the token list, use default token list\n * If some addressIn are not in the token list, use addressIn\n */\n const addresses = hasAddressesNotInTokenList\n ? beraAddresses\n : tokenList.map((token) => token.address);\n\n const QUERY_KEY =\n addresses && (options.opts?.isEnabled ?? true)\n ? ([\n \"useTokenCurrentPrices\",\n addresses.map((a) => a.toLowerCase() as Address),\n ] as const)\n : null;\n\n const apiResponse = useSWR(\n QUERY_KEY,\n async ([, addresses]) => {\n // this only works for Berachain tokens\n return getTokenCurrentPrices({ addressIn: addresses });\n },\n options.opts,\n );\n\n const ensoMatchingPrices = useMemo<TokenCurrentPriceMap>(() => {\n if (!ensoTokens) return {};\n\n const ensoPricesMap = new Map<number, Map<Address, TokenWithPrice>>([\n [defaultChainId, new Map()],\n ]);\n\n for (const token of ensoTokens) {\n if (token.price === undefined || token.chainId !== defaultChainId)\n continue;\n\n ensoPricesMap\n .get(defaultChainId)\n ?.set(token.address.toLowerCase() as Address, {\n ...token,\n price: token.price,\n chainId: defaultChainId,\n });\n }\n\n return Object.fromEntries(\n addresses.map((address) => {\n const price = ensoPricesMap.get(defaultChainId)?.get(address)?.price;\n\n if (!price) return [null, null];\n\n return [\n address.toLowerCase() as Address,\n {\n price,\n chainId: defaultChainId,\n updatedAt: Date.now(),\n },\n ];\n }),\n );\n }, [ensoTokens]);\n\n const data = useMemo(\n () => ({\n ...ensoMatchingPrices,\n // in this deprecated hook, we let api override enso prices, since there's no multichain support\n ...apiResponse.data,\n }),\n [ensoMatchingPrices, apiResponse.data],\n );\n\n return {\n ...apiResponse,\n data,\n };\n}\n"]}
|