@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
package/dist/hooks/index.cjs
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } 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 _chunk6VF3RF53cjs = require('../chunk-6VF3RF53.cjs');var _chunkXFPTQMAKcjs = require('../chunk-XFPTQMAK.cjs');var _chunkQCK474XDcjs = require('../chunk-QCK474XD.cjs');var _chunkEU4WFADKcjs = require('../chunk-EU4WFADK.cjs');require('../chunk-TOAXF4YW.cjs');require('../chunk-UZ5CB33M.cjs');var _chunkS74ZMG2Gcjs = require('../chunk-S74ZMG2G.cjs');var _chunkREDXXUK7cjs = require('../chunk-REDXXUK7.cjs');var _chunk22MQVFHPcjs = require('../chunk-22MQVFHP.cjs');var _chunkED43NYSEcjs = require('../chunk-ED43NYSE.cjs');var _chunkJMKLDDKYcjs = require('../chunk-JMKLDDKY.cjs');var _swr = require('swr'); var _swr2 = _interopRequireDefault(_swr);var _hooks = require('@berachain/wagmi/hooks');var zp=({sharesAmount:e,vaultAddress:t,vaultChainId:r},o)=>{let n=_hooks.usePublicClient.call(void 0, {chainId:r}),s=_swr2.default.call(void 0, n&&e&&t?["useGetConvertToAssets",e,t,r]:null,async([a,i,l])=>(_chunkS74ZMG2Gcjs.c.call(void 0, n),_chunkXFPTQMAKcjs.a.call(void 0, {sharesAmount:i,vaultAddress:l,publicClient:n})),{..._optionalChain([o, 'optionalAccess', _2 => _2.opts])});return{...s,refresh:()=>{s.mutate()}}};var _react = require('react');var _viem = require('viem');var _internal = require('@berachain/config/internal');var _berancersdk = require('@berachain-foundation/berancer-sdk');var _nextjs = require('@sentry/nextjs'); var Wr = _interopRequireWildcard(_nextjs); var ko = _interopRequireWildcard(_nextjs); var mn = _interopRequireWildcard(_nextjs);var _config = require('@berachain/config');var Rn=300,kn=.05,je=_berancersdk.SwapKind.GivenIn,Je= (_class =class extends _chunkXFPTQMAKcjs.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 _chunk22MQVFHPcjs.f.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(t,r,o,n){let s=Number.parseFloat(_viem.formatEther.call(void 0, t.scale18))/Number.parseFloat(o);if(Math.abs(1-s)>kn){console.warn("SOR returned stale prices. Delta from return amount is more than 5%",{deltaFromSorAmount:s});let a=new (0, _chunkJMKLDDKYcjs.f)({reason:"SOR_STALE_PRICES",level:"warning",message:"SOR returned stale prices. Delta from return amount is more than 5%"});Wr.captureException(a,{level:"warning",extra:{deltaFromSorAmount:s,pools:r.map(i=>i.pools),onChainAmount:_viem.formatEther.call(void 0, t.scale18),sorAmount:o,queryData:n},fingerprint:["SOR_STALE_PRICES"]})}}async getQuote(t){let r=new (0, _chunkXFPTQMAKcjs.f)(this.url,this.chainId),{tokenIn:o,tokenOut:n,tokenInDecimals:s,tokenOutDecimals:a,amount:i,slippage:l,account:u=_viem.zeroAddress,publicClient:m}=t;if(this.checkChainSupport(),_chunkS74ZMG2Gcjs.c.call(void 0, m),!s)throw new (0, _chunkJMKLDDKYcjs.g)({property:"tokenInDecimals",value:s,expected:"number",chainId:this.chainId});if(!a)throw new (0, _chunkJMKLDDKYcjs.g)({property:"tokenOutDecimals",value:a,expected:"number",chainId:this.chainId});let p=_chunk22MQVFHPcjs.f.call(void 0, o,"BERA")||_chunk22MQVFHPcjs.f.call(void 0, n,"BERA"),d=new (0, _berancersdk.Token)(this.chainId,this.convertZeroToWrapped(o),s),c=new (0, _berancersdk.Token)(this.chainId,this.convertZeroToWrapped(n),a),f=_berancersdk.TokenAmount.fromRawAmount(d,i),{paths:g,priceImpact:A,returnAmount:R}=await r.sorSwapPaths.fetchSorSwapPaths({chainId:this.chainId,tokenIn:d.address,tokenOut:c.address,swapKind:je,swapAmount:f});if(!_optionalChain([g, 'optionalAccess', _3 => _3.length]))throw new (0, _chunkED43NYSEcjs.a)({response:void 0,endpoint:{url:this.url,name:this.name,type:this.type},reason:_chunkXFPTQMAKcjs.e.PATH_NOT_FOUND_REASON,chainId:this.chainId,payload:{tokenIn:d.address,tokenOut:c.address,swapKind:je,swapAmount:f},message:"No swap paths returned from Balancer API"});let h=new (0, _berancersdk.Swap)({chainId:this.chainId,paths:g,swapKind:je,userData:"0x"}),b=await h.query(m.transport.url);if(!("expectedAmountOut"in b))throw new Error("No Bex paths found");this.checkStalePrices(b.expectedAmountOut,g,R,t);let T={amountOut:b.expectedAmountOut.amount.toString(),amountIn:i,spender:b.to,name:this.name,priceImpactPercentage:this.calculatePriceImpact(A),swapFeeBps:0};if(u===_viem.zeroAddress)return T;let w=h.buildCall({slippage:_berancersdk.Slippage.fromPercentage(l.toString()),deadline:BigInt(Math.round(Date.now()/1e3)+Rn),queryOutput:b,sender:u,recipient:u,wethIsEth:p}),{args:I,functionName:C}=_viem.decodeFunctionData.call(void 0, {abi:_chunkEU4WFADKcjs.b,data:w.callData});return{...T,calldata:{params:I,functionName:C,abi:_chunkEU4WFADKcjs.b,address:w.to,value:w.value||BigInt(0)}}}}, _class),we=new Je;var Xe= (_class2 =class extends _chunkXFPTQMAKcjs.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"}async getQuote({tokenIn:t,amount:r}){if(this.checkChainSupport(),!_chunk22MQVFHPcjs.f.call(void 0, t,"BGT",{config:this.config}))throw new (0, _chunkJMKLDDKYcjs.g)({property:"tokenIn",value:t,expected:"BGT",level:"warning"});return{amountOut:r,amountIn:r,spender:void 0,name:"RedeemBgt",isNativeSwap:!0,swapFeeBps:0}}}, _class2),Pe=new Xe;var et= (_class3 =class extends _chunkXFPTQMAKcjs.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); }__init8() {this.name="Enso"}__init9() {this.supportedChains=[_internal.ChainId.MAINNET]}__init10() {this.type="rest"}__init11() {this.notFoundMessages=["Could not build shortcuts for route","Swap not found for a required underlying of defi route,"]}async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:n,account:s=_viem.zeroAddress,aggregatorsFeeBps:a,proxyAggregatorsThroughVercel:i=!1,rewardVault:l}){this.checkChainSupport();let{tokenInAddress:u,tokenOutAddress:m,isTokenInNative:p,isTokenOutNative:d}=this.parseAddresses(t,r),c=this.getAmountAfterFees(o,a);this.url=i?"/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",c),f.searchParams.set("tokenIn",u),f.searchParams.set("tokenOut",m),f.searchParams.set("chainId",_internal.ChainId.MAINNET.toString()),f.searchParams.set("slippage",(Number(n)*100).toString()),f.searchParams.set("refundReceiver",s);let A=await(await this.fetch(f)).json(),R=this.getInputData({tokenIn:u,amountIn:o,isNative:p}),h={tokenOut:m,receiver:s,minAmountOut:this.getMinAmountOut(A.amountOut.toString(),n),isNative:d},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,spender:this.config.bex.aggregatorsRouter,name:this.name,swapFeeBps:a,calldata:{params:[R,h,b,{rewardVault:_nullishCoalesce(l, () => (_viem.zeroAddress)),isSwapAndStake:!!l}],functionName:"swap",abi:_chunkQCK474XDcjs.f,value:BigInt(p?o:"0"),address:this.config.bex.aggregatorsRouter}}}}, _class3),Te=new et;var Mr="https://api.magpiefi.xyz/aggregator",tt= (_class4 =class extends _chunkXFPTQMAKcjs.e{constructor(...args5) { super(...args5); _class4.prototype.__init12.call(this);_class4.prototype.__init13.call(this);_class4.prototype.__init14.call(this);_class4.prototype.__init15.call(this); }__init12() {this.name="Fly"}__init13() {this.supportedChains=[_internal.ChainId.MAINNET]}__init14() {this.type="rest"}__init15() {this.notFoundMessages=["Couldn't recognize to token","There is not enough liquidity. Amount is too high.","Routes were not found"]}async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:n,account:s=_viem.zeroAddress,aggregatorsFeeBps:a,rewardVault:i}){this.checkChainSupport();let{tokenInAddress:l,tokenOutAddress:u,isTokenInNative:m,isTokenOutNative:p}=this.parseAddresses(t,r),d=this.getAmountAfterFees(o,a),c=new URL(`${Mr}/quote`);this.url=c.toString();let f=new URLSearchParams({fromTokenAddress:l,toTokenAddress:u,sellAmount:d,slippage:(n/100).toString(),gasless:"false",network:"berachain"});s!==_viem.zeroAddress&&(f.set("fromAddress",this.config.bex.aggregatorsRouterExecutor),f.set("toAddress",this.config.bex.aggregatorsRouterExecutor)),c.search=f.toString();let A=await(await this.fetch(c)).json(),R={amountOut:A.amountOut,amountIn:o,spender:this.config.bex.aggregatorsRouter,name:this.name,swapFeeBps:_nullishCoalesce(a, () => (0))};if(s===_viem.zeroAddress)return R;let h=new URL(`${Mr}/transaction`);this.url=h.toString();let b=new URLSearchParams({quoteId:A.id,estimateGas:"false"});h.search=b.toString();let w=await(await this.fetch(h)).json(),I=this.getInputData({tokenIn:l,amountIn:o,isNative:m}),C={tokenOut:u,receiver:s,minAmountOut:this.getMinAmountOut(A.amountOut,n),isNative:p},v={aggregator:w.to,data:w.data};return{...R,calldata:{params:[I,C,v,{rewardVault:_nullishCoalesce(i, () => (_viem.zeroAddress)),isSwapAndStake:!!i}],functionName:"swap",abi:_chunkQCK474XDcjs.f,value:_chunk22MQVFHPcjs.f.call(void 0, t,"BERA")?BigInt(o):BigInt("0"),address:this.config.bex.aggregatorsRouter}}}}, _class4),Ce=new tt;var ot= (_class5 =class extends _chunkXFPTQMAKcjs.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="Haiku"}__init17() {this.supportedChains=[_internal.ChainId.MAINNET]}__init18() {this.type="rest"}__init19() {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:n,account:s=_viem.zeroAddress,tokenInDecimals:a,tokenOutDecimals:i,aggregatorsFeeBps:l,proxyAggregatorsThroughVercel:u=!1,referrer:m,rewardVault:p}){if(a===void 0||i===void 0)throw new (0, _chunkJMKLDDKYcjs.f)({message:"Missing required params",level:"error"});this.checkChainSupport();let{tokenInAddress:d,tokenOutAddress:c,isTokenInNative:f,isTokenOutNative:g}=this.parseAddresses(t,r),A=this.getAmountAfterFees(o,l),R={intent:{allowancesMode:"approve",slippage:n/100,receiver:this.config.bex.aggregatorsRouterExecutor,input_positions:{[`bera:${d}`]:_viem.formatUnits.call(void 0, BigInt(A),a)},target_weights:{[`bera:${c}`]:1}}},h=m==="ZAP"?"zap-haiku":"haiku";this.url=u?"/api/aggregators?aggregator=haikuQuote":`${this.config.bex.aggregatorsProxyUrl}/${h}/v1/quoteIntent`;let T=await(await this.fetch(this.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(R)})).json(),w={amountOut:_viem.parseUnits.call(void 0, T.balances[0].amount,i).toString(),amountIn:o,spender:this.config.bex.aggregatorsRouter,name:this.name,swapFeeBps:l};if(s===_viem.zeroAddress)return w;this.url=u?"/api/aggregators?aggregator=haikuSolve":`${this.config.bex.aggregatorsProxyUrl}/${h}/v1/solveIntent`;let C=await(await this.fetch(this.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({quoteId:T.quoteId})})).json(),v=this.getInputData({tokenIn:d,amountIn:o,isNative:f,isPermit2Approval:!0,permit2SpenderAddress:this.config.bex.haikuAgentAddress}),M={tokenOut:c,receiver:s,minAmountOut:this.getMinAmountOut(w.amountOut,n),isNative:g},W={aggregator:C.to,data:C.data};return{...w,calldata:{params:[v,M,W,{rewardVault:_nullishCoalesce(p, () => (_viem.zeroAddress)),isSwapAndStake:!!p}],functionName:"swap",abi:_chunkQCK474XDcjs.f,value:BigInt(f?o:"0"),address:this.config.bex.aggregatorsRouter}}}}, _class5),Ee=new ot;var _bignumberjs = require('bignumber.js'); var _bignumberjs2 = _interopRequireDefault(_bignumberjs);function Sn(e){return e?"previewMintHoney":"previewRedeemCollaterals"}var se= (_class6 =class e extends _chunkXFPTQMAKcjs.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="Honey"}__init21() {this.supportedChains=[_internal.ChainId.MAINNET]}__init22() {this.type="rpc"}__init23() {this.honeyToken=_chunk22MQVFHPcjs.e.call(void 0, this)}static isHoneyNativeSwap({tokenIn:t,tokenOut:r,honeyNativeState:o,...n}){if(!_optionalChain([o, 'optionalAccess', _8 => _8.collateralList]))return!1;let s=_chunk22MQVFHPcjs.f.call(void 0, r,"HONEY",n),a=_chunk22MQVFHPcjs.f.call(void 0, t,"HONEY",n);return!s&&!a?!1:o.collateralList.some(i=>_chunk22MQVFHPcjs.f.call(void 0, i.address,s?t:r))}async getQuote({tokenIn:t,tokenOut:r,amount:o,publicClient:n,account:s,honeyNativeState:a}){let{collateralList:i}=_nullishCoalesce(a, () => ({}));if(!i)throw new (0, _chunkJMKLDDKYcjs.g)({message:"Invalid Honey Context state",property:"collaterals",value:i,expected:"TokenWithOrder[]"});_chunkS74ZMG2Gcjs.c.call(void 0, n),this.checkChainSupport();let l=_chunk22MQVFHPcjs.f.call(void 0, r,this.honeyToken);if(!e.isHoneyNativeSwap({tokenIn:t,tokenOut:r,honeyNativeState:a}))throw new (0, _chunkJMKLDDKYcjs.f)({message:"Honey Aggregator only supports minting or redeeming Honey"});let u=i,m=i.find(I=>_chunk22MQVFHPcjs.f.call(void 0, I.address,l?t:r));if(!m)throw new (0, _chunkJMKLDDKYcjs.f)({message:"This collateral is not part of the Honey protocol"});let[p,d]=await Promise.all([_chunkXFPTQMAKcjs.N.call(void 0, {client:n,collateralList:[m]}),_chunkXFPTQMAKcjs.S.call(void 0, {client:n,isMint:l,collateralList:i,latestPrices:void 0,isPythWrapperEnabled:!1})]);if(!p)throw new (0, _chunkJMKLDDKYcjs.f)({message:"Failed to fetch the Honey vault balances"});if(d)return;let c=p[0],f=m.order;u.length>1&&f!==0&&(u.splice(f,1),u.unshift(m));let g=_viem.formatUnits.call(void 0, BigInt(o),l?m.decimals:this.honeyToken.decimals),A={client:n,collateral:m,collateralList:i,amount:g,method:Sn(l),latestPrices:void 0,isPythWrapperEnabled:!1},R=await _chunkXFPTQMAKcjs.K.call(void 0, A);if(!R)throw new (0, _chunkJMKLDDKYcjs.f)({message:"Failed to fetch the Honey preview"});let{honey:h,collaterals:b}=R;if(!(l?!0:new (0, _bignumberjs.BigNumber)(_nullishCoalesce(_optionalChain([c, 'optionalAccess', _9 => _9.formattedBalance]), () => ("0"))).gte(_viem.formatUnits.call(void 0, b[m.address],m.decimals))))return;let w=s?await _chunkXFPTQMAKcjs.R.call(void 0, {state:{actionType:l?"mint":"redeem",fromAmount:[g],collaterals:u,isBasketModeEnabled:!1},account:s,collateralList:u,publicClient:n,priceFeedMap:void 0,isPythWrapperEnabled:!1}):void 0;if(!w&&s)throw new (0, _chunkJMKLDDKYcjs.f)({message:"Failed to fetch the Honey swap payload"});return{amountIn:o,amountOut:l?h.toString():b[m.address].toString(),spender:this.config.honey.factory,name:"Honey",swapFeeBps:0,calldata:w}}}, _class6),Se=new se;var st= (_class7 =class extends _chunkXFPTQMAKcjs.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="KyberSwap"}__init25() {this.supportedChains=[_internal.ChainId.MAINNET]}__init26() {this.type="rest"}__init27() {this.notFoundMessages=["token not found","route not found","amountIn is greater than max allowed"]}async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:n,account:s=_viem.zeroAddress,aggregatorsFeeBps:a,proxyAggregatorsThroughVercel:i=!1,rewardVault:l}){this.checkChainSupport();let{isTokenInNative:u,isTokenOutNative:m,tokenInAddress:p,tokenOutAddress:d}=this.parseAddresses(t,r),c=this.getAmountAfterFees(o,a);this.url=i?"/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",d),f.searchParams.set("amountIn",c),f.searchParams.set("slippageTolerance",(n/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,spender:this.config.bex.aggregatorsRouter,name:this.name,swapFeeBps:a};if(s===_viem.zeroAddress)return R;let h={routeSummary:A.data.routeSummary,sender:this.config.bex.aggregatorsRouterExecutor,recipient:this.config.bex.aggregatorsRouterExecutor,slippageTolerance:n*100,deadline:Math.floor(Date.now()/1e3)+300,source:"berachain"},b=f.searchParams.entries(),T=new URL(i?"/api/aggregators?aggregator=kyberswapBuild":`${this.config.bex.aggregatorsProxyUrl}/kyberswap/berachain/api/v1/route/build`);for(let[W,O]of b)T.searchParams.set(W,O);let I=await(await this.fetch(T,{method:"POST",body:JSON.stringify(h)})).json(),C=this.getInputData({tokenIn:p,amountIn:o,isNative:u}),v={tokenOut:d,receiver:s,minAmountOut:this.getMinAmountOut(R.amountOut,n),isNative:m},M={aggregator:I.data.routerAddress,data:I.data.data};return{...R,calldata:{params:[C,v,M,{rewardVault:_nullishCoalesce(l, () => (_viem.zeroAddress)),isSwapAndStake:!!l}],functionName:"swap",abi:_chunkQCK474XDcjs.f,value:BigInt(u?o:"0"),address:this.config.bex.aggregatorsRouter}}}}, _class7),xe=new st;var it= (_class8 =class extends _chunkXFPTQMAKcjs.e{constructor(...args9) { super(...args9); _class8.prototype.__init28.call(this);_class8.prototype.__init29.call(this);_class8.prototype.__init30.call(this); }__init28() {this.name="Oogabooga"}__init29() {this.supportedChains=[_internal.ChainId.MAINNET]}__init30() {this.type="rest"}async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:n,account:s=_viem.zeroAddress,aggregatorsFeeBps:a,proxyAggregatorsThroughVercel:i=!1,rewardVault:l}){this.checkChainSupport();let{tokenInAddress:u,tokenOutAddress:m,isTokenInNative:p,isTokenOutNative:d}=this.parseAddresses(t,r),c=this.getAmountAfterFees(o,a),f=new URLSearchParams({tokenIn:u,tokenOut:m,amount:c,slippage:(n/100).toString(),to:this.config.bex.aggregatorsRouterExecutor,referrer:this.config.bex.aggregatorsRouter});this.url=i?`/api/aggregators?aggregator=oogabooga&${f.toString()}`:`${this.config.bex.aggregatorsProxyUrl}/oogabooga/v1/swap?${f.toString()}`;let A=await(await this.fetch(this.url)).json(),R={amountOut:A.assumedAmountOut,amountIn:o,spender:this.config.bex.aggregatorsRouter,name:this.name,priceImpactPercentage:A.priceImpact,swapFeeBps:a};if(s===_viem.zeroAddress)return R;let h=this.getInputData({tokenIn:u,amountIn:o,isNative:p}),b={tokenOut:m,receiver:s,minAmountOut:this.getMinAmountOut(R.amountOut,n),isNative:d},T={aggregator:_optionalChain([A, 'access', _10 => _10.tx, 'optionalAccess', _11 => _11.to]),data:_optionalChain([A, 'access', _12 => _12.tx, 'optionalAccess', _13 => _13.data])};return{...R,calldata:{params:[h,b,T,{rewardVault:_nullishCoalesce(l, () => (_viem.zeroAddress)),isSwapAndStake:!!l}],functionName:"swap",abi:_chunkQCK474XDcjs.f,value:BigInt(p?o:"0"),address:this.config.bex.aggregatorsRouter}}}}, _class8),ve=new it;var lt= (_class9 =class extends _chunkXFPTQMAKcjs.e{constructor(...args10) { super(...args10); _class9.prototype.__init31.call(this);_class9.prototype.__init32.call(this);_class9.prototype.__init33.call(this);_class9.prototype.__init34.call(this);_class9.prototype.__init35.call(this); }__init31() {this.name="OpenOcean"}__init32() {this.supportedChains=[_internal.ChainId.MAINNET]}__init33() {this.type="rest"}__init34() {this.url="https://open-api.openocean.finance/v4/bera/swap"}__init35() {this.notFoundMessages=["No avail liquidity for the pair"]}async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:n,account:s=_viem.zeroAddress,aggregatorsFeeBps:a,tokenInDecimals:i,publicClient:l,rewardVault:u}){if(_chunkS74ZMG2Gcjs.c.call(void 0, l),!i)throw new (0, _chunkJMKLDDKYcjs.g)({property:"tokenInDecimals",value:i,expected:"number",chainId:this.chainId});this.checkChainSupport();let m=this.getAmountAfterFees(o,a),{tokenInAddress:p,tokenOutAddress:d,isTokenInNative:c,isTokenOutNative:f}=this.parseAddresses(t,r),g=(await l.getGasPrice()).toString(),A=new URLSearchParams({chain:_internal.ChainId.MAINNET.toString(),inTokenAddress:p,outTokenAddress:d,amountDecimals:m,slippage:n<.01?"0.01":n.toString(),account:this.config.bex.aggregatorsRouterExecutor,referrer:this.config.bex.aggregatorsRouter,gasPrice:g}),R=await this.fetch(`${this.url}?${A.toString()}`),h=await R.json();if(h.code!==200||!h.data){let C=this.notFoundMessages.some(v=>h.error.includes(v));throw new (0, _chunkED43NYSEcjs.a)({response:R,endpoint:{url:this.url,name:this.name,type:this.type},cause:h,reason:C?_chunkXFPTQMAKcjs.e.PATH_NOT_FOUND_REASON:h.error})}let b={amountOut:h.data.outAmount,amountIn:o,spender:this.config.bex.aggregatorsRouter,name:this.name,swapFeeBps:a},T=this.getInputData({tokenIn:p,amountIn:o,isNative:c}),w={tokenOut:d,receiver:s,minAmountOut:this.getMinAmountOut(b.amountOut,n),isNative:f},I={aggregator:h.data.to,data:h.data.data};return{...b,calldata:{params:[T,w,I,{rewardVault:_nullishCoalesce(u, () => (_viem.zeroAddress)),isSwapAndStake:!!u}],functionName:"swap",abi:_chunkQCK474XDcjs.f,value:BigInt(c?o:"0"),address:this.config.bex.aggregatorsRouter}}}}, _class9),Be=new lt;var ut= (_class10 =class extends _chunkXFPTQMAKcjs.e{constructor(...args11) { super(...args11); _class10.prototype.__init36.call(this);_class10.prototype.__init37.call(this);_class10.prototype.__init38.call(this); }__init36() {this.name="Wrap"}__init37() {this.supportedChains=[_internal.ChainId.MAINNET,_internal.ChainId.BEPOLIA]}__init38() {this.type="rpc"}async getQuote({tokenIn:t,tokenOut:r,amount:o}){if(this.checkChainSupport(),!_chunk22MQVFHPcjs.f.call(void 0, t,"BERA")&&!_chunk22MQVFHPcjs.f.call(void 0, t,"WBERA")||!_chunk22MQVFHPcjs.f.call(void 0, r,"WBERA")&&!_chunk22MQVFHPcjs.f.call(void 0, r,"BERA"))throw new (0, _chunkJMKLDDKYcjs.f)({message:"Invalid token pair",level:"error"});let n=_chunk22MQVFHPcjs.f.call(void 0, t,"BERA")&&_chunk22MQVFHPcjs.f.call(void 0, r,"WBERA");return{amountOut:o,amountIn:o,spender:void 0,name:n?"Wrap":"Unwrap",isNativeSwap:!0,swapFeeBps:0,calldata:n?{abi:_chunkQCK474XDcjs.n,address:this.config.tokens.wbera,functionName:"deposit",params:[],value:BigInt(o)}:{abi:_chunkQCK474XDcjs.n,address:this.config.tokens.wbera,functionName:"withdraw",params:[BigInt(o)],value:BigInt(0)}}}}, _class10),Oe=new ut;var Nn=[ve,Ce,xe,Be,Ee,Te,we,Se],Un= exports.USE_AGGREGATORS_QUOTES_QUERY_KEY ="useAggregatorsQuotes";function Y({name:e,account:t,args:r,feeBps:o,options:n,activeAggregators:s,honeyNativeState:a}){if(e!==Pe.name&&(_chunk22MQVFHPcjs.f.call(void 0, r.tokenIn,"BGT",{chainId:_internal.defaultChainId})||_chunk22MQVFHPcjs.f.call(void 0, r.tokenOut,"BGT",{chainId:_internal.defaultChainId})))return null;let{tokenIn:i,tokenOut:l,tokenInDecimals:u,tokenOutDecimals:m,amount:p,slippage:d,referrer:c,rewardVault:f}=r,g=_viem.parseUnits.call(void 0, p,u).toString(),A=!s||s.includes(e.toLowerCase().replaceAll(" ",""));return _optionalChain([n, 'optionalAccess', _14 => _14.opts, 'optionalAccess', _15 => _15.isEnabled])&&Number(p)&&o!==void 0&&A?[Un,e,i,l,g,d,t,o,u,m,c,f,_optionalChain([a, 'optionalAccess', _16 => _16.collateralList])]:null}function Z({aggregator:e,publicClient:t,proxyAggregatorsThroughVercel:r}){return async([,,o,n,s,a,i,l,u,m,p,d,c])=>e.getQuote({tokenIn:o,tokenOut:n,amount:s,slippage:a,account:i,aggregatorsFeeBps:l,tokenInDecimals:u,tokenOutDecimals:m,publicClient:t,proxyAggregatorsThroughVercel:r,referrer:p,rewardVault:d,honeyNativeState:{collateralList:_nullishCoalesce(c, () => ([]))}})}var Yd=(e,t)=>{let{address:r}=_hooks.useBeraWallet.call(void 0, ),o=_chunk6VF3RF53cjs.c.call(void 0, "proxyAggregatorsThroughVercel"),n=_chunk6VF3RF53cjs.c.call(void 0, "aggregators"),s=_hooks.usePublicClient.call(void 0, ),{data:a}=Zr(),{collateralList:i,protocol:l}=_nullishCoalesce(e.honeyNativeState, () => ({})),u=(_chunk22MQVFHPcjs.f.call(void 0, e.tokenIn,"BERA")||_chunk22MQVFHPcjs.f.call(void 0, e.tokenIn,"WBERA"))&&(_chunk22MQVFHPcjs.f.call(void 0, e.tokenOut,"BERA")||_chunk22MQVFHPcjs.f.call(void 0, e.tokenOut,"WBERA")),m=_chunk22MQVFHPcjs.f.call(void 0, e.tokenIn,"BGT",{chainId:_internal.defaultChainId}),p=_react.useMemo.call(void 0, ()=>se.isHoneyNativeSwap(e),[e.tokenOut,e.tokenIn,i]),d=u||m,{config:c}=_chunk22MQVFHPcjs.b.call(void 0, e),f=c.bex.aggregatorsRouter!==_viem.zeroAddress,g={refreshInterval:1e4,errorRetryCount:3,onErrorRetry(D,F,z,re,U){if(!(D instanceof _chunkJMKLDDKYcjs.f&&D.reason===_chunkXFPTQMAKcjs.e.PATH_NOT_FOUND_REASON)){if(D instanceof _chunkED43NYSEcjs.a&&D.statusCode===403){console.warn(F[1],"returned error 403, stopping retries");return}U.retryCount>(_nullishCoalesce(z.errorRetryCount, () => (3)))||setTimeout(()=>{re()},_nullishCoalesce(z.errorRetryInterval, () => (_chunkREDXXUK7cjs.e.call(void 0, 10))))}}},A=_swr2.default.call(void 0, d||!f?null:Y({name:ve.name,account:r,args:e,feeBps:a,options:t,activeAggregators:n}),Z({aggregator:ve,proxyAggregatorsThroughVercel:o}),g),R=_swr2.default.call(void 0, d||!f?null:Y({name:Ce.name,account:r,args:e,feeBps:a,options:t,activeAggregators:n}),Z({aggregator:Ce,proxyAggregatorsThroughVercel:o}),g),h=_swr2.default.call(void 0, d||!f?null:Y({name:xe.name,account:r,args:e,feeBps:a,options:t,activeAggregators:n}),Z({aggregator:xe,proxyAggregatorsThroughVercel:o}),g),b=_swr2.default.call(void 0, d||!f?null:Y({name:Be.name,account:r,args:e,feeBps:a,options:t,activeAggregators:n}),Z({aggregator:Be,publicClient:s,proxyAggregatorsThroughVercel:o}),g),T=_swr2.default.call(void 0, d||!f?null:Y({name:Ee.name,account:r,args:e,feeBps:a,options:t,activeAggregators:n}),Z({aggregator:Ee,publicClient:s,proxyAggregatorsThroughVercel:o}),g),w=_swr2.default.call(void 0, d||!f?null:Y({name:Te.name,account:r,args:e,feeBps:a,options:t,activeAggregators:n}),Z({aggregator:Te,proxyAggregatorsThroughVercel:o}),g),{protocol:I}=_chunk6VF3RF53cjs.e.call(void 0, ),C=_swr2.default.call(void 0, d||I.isPaused===!0||e.rewardVault?null:Y({name:we.name,account:r,args:e,feeBps:0,options:t,activeAggregators:n}),Z({aggregator:we,publicClient:s}),g),v=_swr2.default.call(void 0, u?Y({name:Oe.name,account:r,args:e,feeBps:0,options:t,activeAggregators:void 0}):null,async([,,D,F,z,,re])=>Oe.getQuote({tokenIn:D,tokenOut:F,amount:z,account:re}),g),M=_swr2.default.call(void 0, m?Y({name:Pe.name,account:r,args:e,feeBps:0,options:t,activeAggregators:void 0}):null,async([,,D,,F])=>Pe.getQuote({tokenIn:D,amount:F}),g),W=_swr2.default.call(void 0, !p||d||_optionalChain([l, 'optionalAccess', _17 => _17.isPaused])===!0||!i?null:Y({name:Se.name,account:r,args:e,feeBps:0,options:t,activeAggregators:void 0,honeyNativeState:{collateralList:i}}),Z({aggregator:Se,publicClient:s,proxyAggregatorsThroughVercel:o}),g),O=u?[v]:m?[M]:[A,R,h,b,T,w,W,I.isPaused===!1?C:null].filter(D=>D!==null);return{..._react.useMemo.call(void 0, ()=>{let D=O.reduce((U,Me)=>U||Me.error,void 0),F=O.map((U,Me)=>U.isLoading?d?Oe.name:Nn[Me].name:null).filter(Boolean),z=O.filter(U=>U!==void 0&&!U.isLoading&&!U.error&&_optionalChain([U, 'access', _18 => _18.data, 'optionalAccess', _19 => _19.amountOut])).map(({data:U})=>U),re=z.length===0&&F.length>0;return{quotes:z,loadingAggregatorsNames:F,isLoading:re,error:D}},[O]),refresh:()=>O.map(D=>D.mutate())}};var _immutable = require('swr/immutable'); var _immutable2 = _interopRequireDefault(_immutable);var Zr=()=>{let e=_hooks.usePublicClient.call(void 0, ),{config:t}=_chunk22MQVFHPcjs.b.call(void 0, {chainId:_optionalChain([e, 'access', _20 => _20.chain, 'optionalAccess', _21 => _21.id])}),r=_immutable2.default.call(void 0, e&&t.bex.aggregatorsRouter&&t.bex.aggregatorsRouter!==_viem.zeroAddress?["useAggregatorsRouterFeeBps",t.bex.aggregatorsRouter]:null,async([,o])=>{let n=await e.readContract({address:o,abi:_chunkQCK474XDcjs.f,functionName:"SWAP_FEE_RATE"});return Number(n)});return{...r,refresh:r.mutate}};var Qn=({query:e}={})=>["useAllUserPools",e],zr= exports.useAllUserPools =(e,t)=>{let r=_swr2.default.call(void 0, Qn({query:e}),async([o,n])=>_chunkXFPTQMAKcjs.g.call(void 0, {...n,fetchPolicy:"no-cache"}),{refreshInterval:18e4,..._optionalChain([t, 'optionalAccess', _22 => _22.opts])});return{...r,refresh:()=>{r.mutate()}}};var Gn=({poolId:e,account:t})=>e?["usePool-api",e,t]:null;function jr({poolId:e,account:t}){let r=_swr2.default.call(void 0, Gn({poolId:e,account:t}),async([,o,n])=>{if(n&&!_viem.isAddress.call(void 0, n))throw new (0, _chunkJMKLDDKYcjs.g)({property:"account",value:n,expected:"Address"});return _chunkXFPTQMAKcjs.h.call(void 0, {poolId:o,account:n})},{refreshInterval:1e5});return{...r,refresh:()=>{r.mutate()}}}var _subgraph = require('@berachain/graphql/dex/subgraph');var mt=e=>[...e].sort((t,r)=>t.address.toLowerCase().localeCompare(r.address.toLowerCase())),Xr=e=>e.length===0?"":mt(e).map(t=>t.symbol).join(" | "),eo=(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?"":`${mt(e).map((n,s)=>{let a=t[s];return`${(Number.parseFloat(_viem.formatUnits.call(void 0, a,18))*100).toFixed(0)}${n.symbol}`}).join("-")}-${o}`:`${mt(e).map(n=>n.symbol).join("-")}-${o}`};var zn=.005,jn= exports.OracleMode =(r=>(r.None="None",r.Custom="Custom",r))(jn||{}),Jn=({poolCreationHelper:e,poolCreateTokens:t,initialLiquidityTokens:r,swapFeePercentage:o,salt:n,poolName:s,poolSymbol:a,owner:i,amplification:l,oracles:u,message:m,actionType:p,gasLimit:d=_chunkREDXXUK7cjs.w})=>{let c=t.map(w=>w.address.toLowerCase()).sort((w,I)=>w<I?-1:1),f=c.map(w=>{let I=r.find(O=>O.address.toLowerCase()===w||_chunk22MQVFHPcjs.f.call(void 0, w,"WBERA")&&_chunk22MQVFHPcjs.f.call(void 0, O.address,"BERA")),C=I?_viem.parseUnits.call(void 0, I.amount,I.decimals):0n,v=u.find(O=>O.tokenAddress.toLowerCase()===w.toLowerCase()),M=v?v.address:_viem.zeroAddress,W=BigInt(v?v.cacheDuration:100);return{amountIn:C,rateProvider:M,cacheDuration:W}}),g=f.map(w=>w.amountIn),A=f.map(w=>w.rateProvider),R=f.map(w=>w.cacheDuration),h=r.findIndex(w=>_chunk22MQVFHPcjs.f.call(void 0, w.address,"BERA")),b=h!==-1?_viem.parseUnits.call(void 0, r[h].amount,r[h].decimals):0n,T=b>0n;return{address:e,abi:_chunkQCK474XDcjs.h,functionName:"createAndJoinStablePool",params:[s,a,c,BigInt(l),A,R,!1,o,g,i,n,T],message:m,actionType:p,value:b,gasLimit:d,track:{eventName:"hub_pool_create",eventData:{poolName:s,poolSymbol:a}}}},Xn=({poolCreationHelper:e,poolCreateTokens:t,initialLiquidityTokens:r,normalizedWeights:o,swapFeePercentage:n,salt:s,poolName:a,poolSymbol:i,owner:l,message:u,actionType:m,gasLimit:p=_chunkREDXXUK7cjs.w})=>{let d=[],c=[],f=[],g=[];t.map((h,b)=>({createToken:h.address,joinToken:r[b].address,weight:o[b],amountIn:_viem.parseUnits.call(void 0, r[b].amount,r[b].decimals)})).sort((h,b)=>h.createToken.toLowerCase()<b.createToken.toLowerCase()?-1:1).forEach(h=>{d.push(h.createToken),c.push(h.joinToken),f.push(h.weight),g.push(h.amountIn)});let A=c.indexOf(_viem.zeroAddress),R=A!==-1?g[A]:0n;return{address:e,abi:_chunkQCK474XDcjs.h,functionName:"createAndJoinWeightedPool",params:[a,i,d,c,f,Array(d.length).fill(_viem.zeroAddress),n,g,l,s],message:u,actionType:m,value:R,gasLimit:p,track:{eventName:"hub_pool_create",eventData:{poolName:a,poolSymbol:i}}}},hc= exports.useCreatePool =({poolCreateTokens:e,initialLiquidityTokens:t,normalizedWeights:r,poolType:o,poolName:n,poolSymbol:s,swapFee:a,owner:i,amplification:l,oracles:u,weightsDuplicationThreshold:m=zn,...p})=>{let{data:d,error:c,isLoading:f}=_immutable2.default.call(void 0, ["useCreatePool__deduped_pool",e,o,r],async()=>{if(e.length===0||!o)return null;let h=_chunkXFPTQMAKcjs.c.call(void 0, "bex.subgraph",{});try{let b=_chunkREDXXUK7cjs.Q.call(void 0, e).map(I=>I.address.toLowerCase()).sort((I,C)=>I.toLowerCase()<C.toLowerCase()?-1:1);returnawait _asyncNullishCoalesce(await _asyncOptionalChain([(await h.query({query:_subgraph.GetDedupedSubgraphPools,variables:{tokens:b,type:o}})), 'access', async _23 => _23.data, 'access', async _24 => _24.pools, 'access', async _25 => _25.filter, 'call', async _26 => _26(I=>_optionalChain([I, 'access', _27 => _27.tokens, 'optionalAccess', _28 => _28.every, 'call', _29 => _29(C=>o===_berancersdk.PoolType.Weighted?b.includes(C.address)&&Math.abs(Number(C.weight)-Number(_viem.formatUnits.call(void 0, r[b.indexOf(C.address)],18)))<m:b.includes(C.address)||C.address===I.address)])), 'optionalAccess', async _30 => _30.at, 'call', async _31 => _31(0)]), async () => (null))}catch (e2){return null}}),{generatedPoolName:g,generatedPoolSymbol:A}=_react.useMemo.call(void 0, ()=>{if(!e)return{generatedPoolName:"",generatedPoolSymbol:""};let h=Xr(e),b=eo(e,r,o);return{generatedPoolName:h,generatedPoolSymbol:b}},[e,r,o]),R=_react.useMemo.call(void 0, ()=>{if(!i||n===""||s===""||e.length!==t.length||e.length===0)return null;let h=_viem.parseUnits.call(void 0, a.toString(),16),b=_viem.keccak256.call(void 0, Buffer.from(`${n}-${i}`)),{config:T}=_chunk22MQVFHPcjs.b.call(void 0, p);return o===_berancersdk.PoolType.Weighted?Xn({poolCreationHelper:T.bex.poolCreationHelper,poolCreateTokens:e,initialLiquidityTokens:t,normalizedWeights:r,swapFeePercentage:h,salt:b,poolName:n,poolSymbol:s,owner:i,message:`Create pool ${n}`,actionType:"Create Pool"}):o===_berancersdk.PoolType.ComposableStable||o===_berancersdk.PoolType.MetaStable?Jn({poolCreationHelper:T.bex.poolCreationHelper,poolCreateTokens:e,initialLiquidityTokens:t,swapFeePercentage:h,salt:b,poolName:n,poolSymbol:s,owner:i,amplification:l,oracles:u,message:`Create pool ${n}`,actionType:"Create Pool"}):null},[e,t,r,o,a,n,s,i,l,u]);return{generatedPoolName:g,generatedPoolSymbol:A,isDupePool:!!d,dupePool:d,createPoolArgs:R,isLoadingPools:f,errorLoadingPools:c}};var ns=1e-4;async function ro({token:e,publicClient:t,...r}){let o=_chunkXFPTQMAKcjs.c.call(void 0, "bex.subgraph",r),n=await t.readContract({address:e.address,abi:_viem.erc20Abi,functionName:"totalSupply"}),s=_bignumberjs2.default.call(void 0, _viem.formatUnits.call(void 0, n,e.decimals)).multipliedBy(ns),{data:a}=await o.query({query:_subgraph.GetExploitedTokens,variables:{token:e.address,balance:s.toFixed()}});return a.userInternalBalances.length>0}var is=e=>{let t=_optionalChain([e, 'optionalAccess', _32 => _32.filter, 'call', _33 => _33(r=>r.address)]);return!t||t.length===0?null:["useExploitedTokens",t]},vc= exports.useExploitedTokens =({tokens:e})=>{let t=is(e),r=_hooks.usePublicClient.call(void 0, ),o=_swr2.default.call(void 0, r?t:null,async([,n])=>(_chunkS74ZMG2Gcjs.c.call(void 0, r),(await Promise.all(n.map(a=>ro({token:a,publicClient:r})))).reduce((a,i,l)=>(i!==void 0&&(a[n[l].address]=i),a),{})));return{...o,refresh:()=>o.mutate()}};var us=()=>{let e=_swr2.default.call(void 0, "useGlobalLiquidityAndSwapVolume",async()=>_chunkXFPTQMAKcjs.i.call(void 0, ));return{...e,data:{totalLiquidity:Number(_optionalChain([e, 'access', _34 => _34.data, 'optionalAccess', _35 => _35.protocolMetricsAggregated, 'access', _36 => _36.totalLiquidity])),swapVolume24h:Number(_optionalChain([e, 'access', _37 => _37.data, 'optionalAccess', _38 => _38.protocolMetricsAggregated, 'access', _39 => _39.swapVolume24h]))},refresh:()=>e.mutate()}};var ds=.05,Vc= exports.useLiquidityMismatch =({currentStep:e,tokenPrices:t,isLoadingTokenPrices:r,tokens:o,weights:n,weightsError:s,poolType:a,liquidityMismatchTolerancePercent:i=ds,oracles:l})=>{let[u,m]=_react.useState.call(void 0, {title:null,message:null});return _react.useEffect.call(void 0, ()=>{if(!t||r||!o||!n||s||o.some(b=>!b.address)||l.some(b=>b.mode==="Custom")){m({title:null,message:null});return}let p=0,d=[],c=o.length,g=_chunkREDXXUK7cjs.Q.call(void 0, o).map(b=>{let T=_nullishCoalesce(_optionalChain([t, 'access', _40 => _40[b.address.toLowerCase()], 'optionalAccess', _41 => _41.price]), () => (0));if(!T||T===0)return d.push(0),null;let w=T*Number.parseFloat(b.amount);return d.push(w),p+=w,T});if(g.some(b=>b===null)||g.length!==c){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"&&a===_berancersdk.PoolType.ComposableStable){let b=g.map(w=>w/g[0]);Math.max(...b)-Math.min(...b)>i?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||d.some(b=>b===0)){m({title:null,message:null});return}let A=0;if(a===_berancersdk.PoolType.ComposableStable){let b=p/c;d.forEach(T=>{A+=Math.abs(b-T)})}else a===_berancersdk.PoolType.Weighted&&d.forEach((b,T)=>{let w=Number(n[T])/1e18,I=p*w;A+=Math.abs(I-b)});let R=A>=p*.9;A=Math.min(A,p);let h=A/p;h>i?m({title:R?"You could lose all of your initial liquidity":`You could lose $${A.toFixed(2)} (~${(h*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. ${a===_berancersdk.PoolType.ComposableStable?"Did you mean to create a Weighted pool instead?":""}`,suggestWeighted:a===_berancersdk.PoolType.ComposableStable}):m({title:null,message:null})},[e,t,r,o,n,s,a,i,l]),u};var ct=({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,n=_immutable2.default.call(void 0, o,async([,s])=>{if(!s)throw new Error("useRewardVaultFromToken needs a valid token address");_chunkS74ZMG2Gcjs.c.call(void 0, r);let{config:a}=_chunk22MQVFHPcjs.b.call(void 0, {chainId:r.chain.id}),i=await r.readContract({address:a.pol.factory,abi:_chunkEU4WFADKcjs.o,functionName:"getVault",args:[s]});return i===_viem.zeroAddress?void 0:i});return{...n,refresh:()=>n.mutate()}};var no=({stakingToken:e,rewardVaultAddress:t},r)=>{let{address:o}=_hooks.useBeraWallet.call(void 0, ),n=_hooks.usePublicClient.call(void 0, ),s=_nullishCoalesce(_optionalChain([r, 'optionalAccess', _42 => _42.opts, 'optionalAccess', _43 => _43.isEnabled]), () => (!0)),{data:a=t,error:i,mutate:l,isLoading:u}=ct({tokenAddress:e},{isEnabled:!t&&s}),m=_swr2.default.call(void 0, a&&o&&n&&_viem.isAddress.call(void 0, a)&&_viem.isAddress.call(void 0, o)&&s?["useVaultBalanceFromStakingToken",a,o]:null,async([,p,d])=>{if(_chunkS74ZMG2Gcjs.c.call(void 0, n),p===_viem.zeroAddress)return{address:p,balance:0n};let c=await n.readContract({address:p,abi:_chunkEU4WFADKcjs.d,functionName:"balanceOf",args:[d]});return{address:p,balance:c}});return{...m,refresh:()=>{l(),m.mutate()},isLoading:m.isLoading||u}};var so=(e,t)=>{let r=_hooks.usePublicClient.call(void 0, {chainId:e.chainId}),o=_optionalChain([e, 'optionalAccess', _44 => _44.address])&&r&&_viem.isAddress.call(void 0, e.address)?["useTokenInformation",e.address,e.chainId]:null,n=_immutable2.default.call(void 0, o,async([s,a])=>_chunk22MQVFHPcjs.f.call(void 0, a,"BERA")?{address:_viem.zeroAddress,decimals:_chunk22MQVFHPcjs.c.decimals,name:_chunk22MQVFHPcjs.c.name,symbol:_chunk22MQVFHPcjs.c.symbol}:(_chunkS74ZMG2Gcjs.c.call(void 0, r),await _chunkXFPTQMAKcjs.C.call(void 0, {address:a,publicClient:r})),{..._optionalChain([t, 'optionalAccess', _45 => _45.opts])});return{...n,refresh:()=>_optionalChain([n, 'optionalAccess', _46 => _46.mutate, 'optionalCall', _47 => _47()])}};function io({address:e,owner:t,chainId:r=_internal.defaultChainId},o){let n=e;_chunk22MQVFHPcjs.f.call(void 0, n,"ETH")&&(n=_viem.zeroAddress);let s=_hooks.usePublicClient.call(void 0, {chainId:r}),{address:a}=_hooks.useBeraWallet.call(void 0, ),i=_nullishCoalesce(t, () => (a)),l=(_nullishCoalesce(_optionalChain([o, 'optionalAccess', _48 => _48.opts, 'optionalAccess', _49 => _49.isEnabled]), () => (!0)))&&s&&i&&_viem.isAddress.call(void 0, i)&&n&&_viem.isAddress.call(void 0, n)?["usePollBalance",i,n,r]:null,{data:u,isLoading:m}=so({address:n,chainId:r}),p=_chunk22MQVFHPcjs.f.call(void 0, n,"BERA"),{isLoading:d,data:c,error:f,...g}=_swr2.default.call(void 0, l,async([,h,b])=>(_chunkS74ZMG2Gcjs.c.call(void 0, s),_chunk22MQVFHPcjs.f.call(void 0, b,"BERA")?await s.getBalance({address:h}):await s.readContract({address:b,abi:_viem.erc20Abi,functionName:"balanceOf",args:[h]})),{refreshInterval:1e4}),A=!f&&c?_chunk22MQVFHPcjs.f.call(void 0, n,"BERA")?_viem.formatEther.call(void 0, c):u&&!m?_viem.formatUnits.call(void 0, c,u.decimals):void 0:void 0,R={balance:_nullishCoalesce(c, () => (0n)),formattedBalance:_nullishCoalesce(A, () => ("0")),address:n,decimals:p?_chunk22MQVFHPcjs.c.decimals:_nullishCoalesce(_optionalChain([u, 'optionalAccess', _50 => _50.decimals]), () => (0)),symbol:p?_chunk22MQVFHPcjs.c.symbol:_nullishCoalesce(_optionalChain([u, 'optionalAccess', _51 => _51.symbol]), () => ("")),name:p?_chunk22MQVFHPcjs.c.name:_nullishCoalesce(_optionalChain([u, 'optionalAccess', _52 => _52.name]), () => (""))};return{...g,refresh:()=>{g.mutate()},isLoading:d||p?m:!1,error:f||!p?f:void 0,data:R}}var Rf=({pool:e,vaultAddress:t},r)=>{let{data:o,...n}=io({address:_optionalChain([e, 'optionalAccess', _53 => _53.address])}),{data:s,refresh:a}=no({stakingToken:_optionalChain([e, 'optionalAccess', _54 => _54.address]),rewardVaultAddress:_nullishCoalesce(t, () => (_optionalChain([e, 'optionalAccess', _55 => _55.rewardVault, 'optionalAccess', _56 => _56.vaultAddress])))},r),i=e?Number.parseFloat(_nullishCoalesce(_optionalChain([e, 'optionalAccess', _57 => _57.dynamicData, 'optionalAccess', _58 => _58.totalShares]), () => ("0"))):0,l=_optionalChain([e, 'optionalAccess', _59 => _59.dynamicData, 'optionalAccess', _60 => _60.totalLiquidity])?Number(_nullishCoalesce(_optionalChain([e, 'optionalAccess', _61 => _61.dynamicData, 'optionalAccess', _62 => _62.totalLiquidity]), () => (0))):null,u=i&&l?l/Number(i):0,m=_optionalChain([e, 'optionalAccess', _63 => _63.tokens, 'optionalAccess', _64 => _64.map, 'call', _65 => _65(p=>({address:p.address,ratio:i?Number(p.balance)/Number(i):0}))]);return{data:{lpTokenPrice:u,lpBalance:o?{...o,usdValue:o?Number(o.formattedBalance)*u:void 0}:void 0,tokenBalances:_optionalChain([e, 'optionalAccess', _66 => _66.tokens, 'optionalAccess', _67 => _67.map, 'call', _68 => _68(p=>{let d=_nullishCoalesce(_optionalChain([m, 'optionalAccess', _69 => _69.find, 'call', _70 => _70(g=>_viem.isAddressEqual.call(void 0, g.address,p.address)), 'optionalAccess', _71 => _71.ratio]), () => (0)),c=d?_bignumberjs2.default.call(void 0, _nullishCoalesce(_optionalChain([o, 'optionalAccess', _72 => _72.formattedBalance]), () => ("0"))).times(d):_bignumberjs2.default.call(void 0, 0),f=Number(p.balanceUSD)/Number(p.balance);return{balance:_optionalChain([c, 'optionalAccess', _73 => _73.isGreaterThan, 'call', _74 => _74(0)])?BigInt(c.times(10**p.decimals).toFixed(0).toString()):0n,formattedBalance:c.toString(),address:p.address,usdValue:Number.isNaN(f)||!c?void 0:Number.parseFloat(c.toString())*f}})]),stakedBalance:_optionalChain([s, 'optionalAccess', _75 => _75.address])?{address:s.address,balance:s.balance,formattedBalance:_viem.formatEther.call(void 0, s.balance),usdValue:Number(_viem.formatEther.call(void 0, s.balance))*u}:void 0},...n,refresh:()=>{_optionalChain([n, 'access', _76 => _76.refresh, 'optionalCall', _77 => _77()]),a()}}};var po=(e,t)=>{let r=_hooks.usePublicClient.call(void 0, ),{address:o}=_hooks.useBeraWallet.call(void 0, ),n=r&&o&&_optionalChain([e, 'optionalAccess', _78 => _78.tokens])&&_optionalChain([e, 'optionalAccess', _79 => _79.spender])?["usePollAllowances",o,_optionalChain([e, 'optionalAccess', _80 => _80.tokens]),_optionalChain([e, 'optionalAccess', _81 => _81.spender])]:null,s=_swr2.default.call(void 0, n,async([,a,i,l])=>_chunkXFPTQMAKcjs.ua.call(void 0, {tokens:i,account:a,spender:l,publicClient:r}),{..._optionalChain([t, 'optionalAccess', _82 => _82.opts]),refreshInterval:_nullishCoalesce(_optionalChain([t, 'optionalAccess', _83 => _83.opts, 'optionalAccess', _84 => _84.refreshInterval]), () => (1e5))});return{...s,refresh:()=>_optionalChain([s, 'optionalAccess', _85 => _85.mutate, 'optionalCall', _86 => _86()])}};function _s({amount:e,decimals:t,slippage:r}){let o=_viem.parseUnits.call(void 0, e,t),n=_viem.parseUnits.call(void 0, (_nullishCoalesce(r, () => (0))).toString(),t);return o+o*n/BigInt(100*10**t)}var Qs=(e,t,r)=>{let o=_react.useMemo.call(void 0, ()=>e.filter(l=>l.address!==_berancersdk.ZERO_ADDRESS).filter(l=>l!==void 0).filter(l=>_bignumberjs2.default.call(void 0, l.amount).gt(0)),[e]),{data:n,refresh:s,isLoading:a}=po({spender:t,tokens:o});return{needsApproval:_react.useMemo.call(void 0, ()=>_nullishCoalesce(_optionalChain([n, 'optionalAccess', _87 => _87.map, 'call', _88 => _88(l=>{let u=o.find(p=>_viem.isAddressEqual.call(void 0, p.address,l.address));if(!u)throw new (0, _chunkJMKLDDKYcjs.f)({message:"Token not found when matching allowance in useMultipleTokenApprovalsWithSlippage",cause:{allowance:l,tokens:o}});let m=_s({...u,slippage:r});if(l.allowance===0n||l.allowance<m)return{...l,maxAmountIn:m}}), 'access', _89 => _89.filter, 'call', _90 => _90(l=>l!==void 0)]), () => ([])),[n,r,o]),refresh:s,isLoading:a}};var fo=(e,t)=>{let r=_hooks.usePublicClient.call(void 0, ),o=r&&e.addresses?["useMultipleTokenInformation",e.addresses]:null,n=_immutable2.default.call(void 0, o,async([,s])=>(_chunkS74ZMG2Gcjs.c.call(void 0, r),Promise.all(s.map(async a=>{if(!a||!_viem.isAddress.call(void 0, a,{strict:!1}))throw new Error("Invalid address");let i=await _chunkXFPTQMAKcjs.C.call(void 0, {address:a,publicClient:r});if(!i)throw new Error(`Token ${a} not found`);return i}))),{..._optionalChain([t, 'optionalAccess', _91 => _91.opts])});return{...n,refresh:()=>_optionalChain([n, 'optionalAccess', _92 => _92.mutate, 'optionalCall', _93 => _93()])}};function Ne(){let e=_react.useContext.call(void 0, _chunk6VF3RF53cjs.t);if(!e)throw new (0, _chunkJMKLDDKYcjs.f)({message:"useTokens must be used within a TokensProvider",level:"fatal"});return{...e,data:{tokenList:e.tokenList,customTokenList:e.userTokens,featuredTokenList:e.featuredTokens}}}function Ue({addressIn:e}={},t={opts:{refreshInterval:1e5,revalidateOnFocus:!0}}){let{tokenList:r}=Ne(),o=_optionalChain([e, 'optionalAccess', _94 => _94.some, 'call', _95 => _95(a=>_optionalChain([r, 'optionalAccess', _96 => _96.findIndex, 'call', _97 => _97(i=>_chunk22MQVFHPcjs.f.call(void 0, i,a))])===-1)])?e:_optionalChain([r, 'optionalAccess', _98 => _98.map, 'call', _99 => _99(a=>a.address)]),n=o&&(_nullishCoalesce(_optionalChain([t, 'access', _100 => _100.opts, 'optionalAccess', _101 => _101.isEnabled]), () => (!0)))?["useTokenCurrentPrices",o.map(a=>a.toLowerCase())]:null,s=_swr2.default.call(void 0, n,async([,a])=>_chunkXFPTQMAKcjs.sa.call(void 0, {addressIn:a}),t.opts);return{...s,refresh:()=>void s.mutate()}}function Js(e){let t="poolId"in e?_optionalChain([e, 'access', _102 => _102.poolId, 'optionalAccess', _103 => _103.slice, 'call', _104 => _104(0,42)]):e.address;return _viem.isAddress.call(void 0, t)&&t?["useOnChainPoolData",t]:null}function go(e){let t=_hooks.usePublicClient.call(void 0, ),r=_optionalChain([e, 'optionalAccess', _105 => _105.slice, 'call', _106 => _106(0,42)]),o=Js({poolId:e}),{data:n,error:s,isLoading:a,mutate:i}=_immutable2.default.call(void 0, t?o:null,async([,c])=>_chunkXFPTQMAKcjs.k.call(void 0, {poolId:c,publicClient:t})),{data:l,isLoading:u}=fo({addresses:_optionalChain([n, 'optionalAccess', _107 => _107.poolTokens, 'access', _108 => _108[0]])}),{data:m,isLoading:p}=Ue({addressIn:_optionalChain([n, 'optionalAccess', _109 => _109.poolTokens, 'access', _110 => _110[0]])});return{data:_react.useMemo.call(void 0, ()=>{if(!n||!l)return;let c={address:r.toLowerCase(),id:e.toLowerCase(),type:n.type,factory:n.factory,totalShares:n.totalSupply,totalLiquidity:"0",swapFee:n.swapFee,createTime:0,name:n.name,tokens:l.map((g,A)=>({address:g.address.toLowerCase(),name:g.name,decimals:g.decimals,symbol:g.symbol,index:A,weight:_nullishCoalesce(_optionalChain([n, 'access', _111 => _111.weights, 'optionalAccess', _112 => _112[A]]), () => (void 0)),balance:_viem.formatUnits.call(void 0, BigInt(n.poolTokens[1][A]),g.decimals),token:{__typename:"Token",token:g,latestUSDPrice:_optionalChain([m, 'optionalAccess', _113 => _113[g.address]])}})),amplificationParameter:_optionalChain([n, 'optionalAccess', _114 => _114.amplificationParameter])&&{currentFormattedValue:Number(n.amplificationParameter[0])/Number(n.amplificationParameter[2])}},f=_optionalChain([c, 'access', _115 => _115.tokens, 'optionalAccess', _116 => _116.reduce, 'call', _117 => _117((g,A)=>{let R=Number(_nullishCoalesce(_optionalChain([m, 'optionalAccess', _118 => _118[A.address.toLowerCase()], 'optionalAccess', _119 => _119.price]), () => (0)));return R?g+R*Number(A.balance):g},0)]);return c.totalLiquidity=_nullishCoalesce(_optionalChain([f, 'optionalAccess', _120 => _120.toString, 'call', _121 => _121()]), () => ("")),c},[n,l,m,r,e]),error:s,isLoading:a||u||p,mutate:i,refresh:()=>i()}}var ra=e=>{let{address:t}=_hooks.useBeraWallet.call(void 0, ),r=_hooks.usePublicClient.call(void 0, ),o=t&&r?["usePollPoolCreationRelayerApproval",t,r.chain.id]:null,n=_swr2.default.call(void 0, o,async([,a])=>{_chunkS74ZMG2Gcjs.c.call(void 0, r);let{config:i}=_chunk22MQVFHPcjs.b.call(void 0, {chainId:r.chain.id});return await r.readContract({address:i.bex.vault,abi:_chunkEU4WFADKcjs.b,functionName:"hasApprovedRelayer",args:[a,i.bex.poolCreationHelper]})},{..._optionalChain([e, 'optionalAccess', _122 => _122.opts])});return{...n,refreshPoolCreationApproval:()=>{n.mutate()}}};function sa({poolId:e}){return e?["usePool-subgraph",e]:null}var cg=({poolId:e})=>{let t=_swr2.default.call(void 0, sa({poolId:e}),async([,i])=>_chunkXFPTQMAKcjs.o.call(void 0, {poolId:i}),{refreshInterval:1e5}),r=jr({poolId:e}),{data:o,isLoading:n,refresh:s}=go(e);return{data:[_react.useMemo.call(void 0, ()=>{if(!t.data)return o;let i={...t.data};return o&&(i.swapFee=o.swapFee,i.totalShares=o.totalShares,i.createTime=_nullishCoalesce(o.createTime, () => (i.createTime))),i},[o,t]),r.data,o],isLoading:r.isLoading||t.isLoading||n,isError:r.error||t.error,refresh:()=>{r.refresh(),t.mutate(),s()}}};var Ag=({poolId:e,typeInArray:t})=>_immutable2.default.call(void 0, e?["usePoolEvents",e,t]:null,async([,r,o])=>_chunkXFPTQMAKcjs.l.call(void 0, {poolId:r,typeInArray:o}),{refreshInterval:18e4});var wg=({poolId:e,...t},r)=>{let{config:o}=_chunk22MQVFHPcjs.b.call(void 0, t),s=_swr2.default.call(void 0, e?["usePoolHistoricalData",e]:null,async([,a])=>await _chunkXFPTQMAKcjs.m.call(void 0, {poolId:a,chain:o.bex.chainName}),_optionalChain([r, 'optionalAccess', _123 => _123.opts]));return{...s,refresh:()=>void s.mutate()}};var pa=({query:e}={})=>["useAllPools",e],xg= exports.usePools =(e,t)=>{let{address:r}=_hooks.useBeraWallet.call(void 0, ),{data:o,isLoading:n,mutate:s}=zr({userAddress:r,chain:e.chain}),{data:a,isLoading:i,mutate:l}=_swr2.default.call(void 0, pa({query:e}),async([p,d])=>_chunkXFPTQMAKcjs.g.call(void 0, d),{refreshInterval:18e4,..._optionalChain([t, 'optionalAccess', _124 => _124.opts])}),u=_react.useMemo.call(void 0, ()=>{if(!a||!_optionalChain([o, 'optionalAccess', _125 => _125.pools, 'optionalAccess', _126 => _126.length]))return _nullishCoalesce(_optionalChain([a, 'optionalAccess', _127 => _127.pools]), () => ([]));let p=Object.fromEntries(o.pools.map(d=>[d.id.toLowerCase(),d]));return a.pools.map(d=>({...d,...p[d.id.toLowerCase()]||{}})).filter(Boolean)},[a,o]),m=_react.useMemo.call(void 0, ()=>({page:Math.ceil((_nullishCoalesce(_optionalChain([e, 'optionalAccess', _128 => _128.skip]), () => (0)))/(_nullishCoalesce(_optionalChain([e, 'optionalAccess', _129 => _129.first]), () => (10)))),pageSize:_optionalChain([e, 'optionalAccess', _130 => _130.first]),count:Math.ceil((_nullishCoalesce(_optionalChain([a, 'optionalAccess', _131 => _131.count]), () => (0)))/(_nullishCoalesce(_optionalChain([e, 'optionalAccess', _132 => _132.first]), () => (10))))}),[a,e.skip,e.first]);return{pools:_nullishCoalesce(u, () => ([])),walletPools:_nullishCoalesce(_optionalChain([a, 'optionalAccess', _133 => _133.pools]), () => ([])),isLoading:i||n,refresh:()=>{l(),s()},pagination:m}};var _core = require('@wagmi/core');var He=async({fromAddress:e,amountIn:t,tokenIn:r,chainId:o,ensoClient:n,bundle:s,publicClient:a})=>{let i=[];if(r!==_viem.ethAddress){let l=await n.getApprovalData({fromAddress:e,tokenAddress:r,chainId:o,amount:t}),u=!0;a&&(u=await a.readContract({address:r,abi:_viem.erc20Abi,functionName:"allowance",args:[e,l.spender]})<BigInt(t)),u&&i.push({to:l.tx.to,data:l.tx.data,value:l.tx.value,gasLimit:BigInt(l.gas)})}return i.push({to:s.tx.to,data:s.tx.data,value:s.tx.value,gasLimit:BigInt(s.gas)}),i};async function Ao({fromAddress:e,amountIn:t,tokenIn:r,loanToken:o,bendVault:n,rewardVault:s,chainId:a,ensoClient:i,destinationChainId:l,slippage:u,publicClient:m}){if(!e)throw new (0, _chunkJMKLDDKYcjs.g)({property:"fromAddress",value:e,expected:"string"});o===_viem.zeroAddress&&(o=_viem.ethAddress);let p=[{protocol:"enso",action:"route",args:{tokenIn:r,tokenOut:o,amountIn:t,slippage:u*100}}];l&&l!==a&&(p[0].args={...p[0].args,destinationChainId:l,refundReceiver:e}),p.push({protocol:"erc4626",action:"deposit",args:{amountIn:{useOutputOfCallAt:0},tokenIn:o,primaryAddress:n,tokenOut:n}}),s&&p.push({protocol:"enso",action:"balance",args:{token:n}},{protocol:"erc20",action:"approve",args:{amount:{useOutputOfCallAt:2},spender:s,token:n}},{protocol:"enso",action:"call",args:{address:s,args:[e,{useOutputOfCallAt:2}],method:"stakeOnBehalf",abi:"function stakeOnBehalf(address account, uint256 amount) external"}},{protocol:"enso",action:"balance",args:{token:s}});let d=await i.getBundleData({fromAddress:e,receiver:e,spender:e,chainId:a,routingStrategy:"router"},p),c=await He({fromAddress:e,amountIn:t,tokenIn:r,chainId:a,ensoClient:i,bundle:d,publicClient:m});return{bundle:d,transactions:c}}async function bo({fromAddress:e,amountIn:t,tokenIn:r,tokenOut:o,chainId:n,ensoClient:s,destinationChainId:a,slippage:i,publicClient:l}){if(!e)throw new (0, _chunkJMKLDDKYcjs.g)({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:i*100}};a&&a!==n&&(u.args={...u.args,destinationChainId:a,refundReceiver:e});let m=await s.getBundleData({fromAddress:e,receiver:e,spender:e,chainId:n,routingStrategy:"router"},[u]),p=await He({fromAddress:e,amountIn:t,tokenIn:r,chainId:n,ensoClient:s,bundle:m,publicClient:l});return{bundle:m,transactions:p}}var _sdk = require('@ensofinance/sdk');var ha=process.env.NODE_ENV!=="development"&&process.env.NODE_ENV!=="test";function ho({useProxy:e=ha,...t}={}){let{config:r}=_chunk22MQVFHPcjs.b.call(void 0, t);return new (0, _sdk.EnsoClient)({baseURL:e?`${r.bex.aggregatorsProxyUrl}/enso/api/v1/`:void 0,apiKey:e?"":_internal.appConfig.apiKeys.public.enso})}async function wo({account:e,wagmiConfig:t,chainId:r,ensoClient:o}){let s=(await o.getBalances({useEoa:!0,chainId:_nullishCoalesce(r, () => ("all")),eoaAddress:e})).map(u=>({name:u.name,symbol:u.symbol,decimals:u.decimals,address:u.token,logoURI:u.logoUri,balance:BigInt(u.amount),formattedBalance:_viem.formatUnits.call(void 0, BigInt(u.amount),u.decimals),chainId:Number(u.chainId),price:Number(u.price)})),a=Object.groupBy(s,u=>_nullishCoalesce(u.chainId, () => (0))),i=await Promise.allSettled(Object.entries(a).map(async([u,m])=>{if(!m)return;let p=_core.getChains.call(void 0, t).find(A=>A.id===Number(u));if(!p)return;let c=_optionalChain([p, 'access', _134 => _134.contracts, 'optionalAccess', _135 => _135.multicall3, 'optionalAccess', _136 => _136.address]);if(!c)return ko.captureException(new (0, _chunkJMKLDDKYcjs.g)({property:"multicallAddress",value:c,expected:"Address",chainId:Number(u)})),m;let f=await _core.multicall.call(void 0, t,{chainId:Number(u),contracts:m.map(A=>_chunkXFPTQMAKcjs.wa.call(void 0, {token:A,account:e,multicallAddress:c})),allowFailure:!0}),g=[];for(let A=0;A<m.length;A++){let R=m[A];f[A].status==="success"?g.push({...R,balance:f[A].result,formattedBalance:_viem.formatUnits.call(void 0, f[A].result,R.decimals)}):(console.error("error getting balance",f[A].error),captureException(_chunkS74ZMG2Gcjs.a.call(void 0, {cause:f[A].error})),g.push(R))}return g})),l=[];for(let u of i)u.status==="fulfilled"?l.push(..._nullishCoalesce(u.value, () => ([]))):captureException(_chunkS74ZMG2Gcjs.a.call(void 0, {cause:u.reason}));return l.sort((u,m)=>{let p=Number(u.formattedBalance)*(_nullishCoalesce(u.price, () => (0)));return Number(m.formattedBalance)*(_nullishCoalesce(m.price, () => (0)))-p})}function Ta({ensoClient:e,chainId:t},r){let{address:o}=_hooks.useBeraWallet.call(void 0, ),n=_hooks.useConfig.call(void 0, ),s=!!o&&_viem.isAddress.call(void 0, o),i=_swr2.default.call(void 0, s&&n?["useEnsoBalances",o,t]:null,async([,l,u])=>wo({account:l,wagmiConfig:n,chainId:_nullishCoalesce(u, () => ("all")),ensoClient:e}),{refreshInterval:1e4,isEnabled:s,..._optionalChain([r, 'optionalAccess', _137 => _137.opts])});return{...i,refresh:()=>i.mutate()}}function ie({chainId:e}){let{address:t}=_hooks.useBeraWallet.call(void 0, ),r=_hooks.useConfig.call(void 0, ),o=ho(),{data:n,refresh:s}=Ta({ensoClient:o,chainId:e}),a=_react.useCallback.call(void 0, async({tokenIn:l,tokenOut:u,amount:m,slippage:p})=>{_chunkS74ZMG2Gcjs.d.call(void 0, t,"fromAddress"),_chunkS74ZMG2Gcjs.d.call(void 0, _optionalChain([l, 'optionalAccess', _138 => _138.address]),"tokenInAddress"),_chunkS74ZMG2Gcjs.b.call(void 0, _optionalChain([l, 'optionalAccess', _139 => _139.chainId]),"tokenInChainId");let d=_core.getPublicClient.call(void 0, r,{chainId:l.chainId});_chunkS74ZMG2Gcjs.c.call(void 0, d);let c=_viem.parseUnits.call(void 0, m,l.decimals).toString();return bo({fromAddress:t,amountIn:c,tokenIn:_optionalChain([l, 'optionalAccess', _140 => _140.address]),tokenOut:u,chainId:l.chainId,ensoClient:o,destinationChainId:_internal.defaultChainId,slippage:p,publicClient:d})},[t,o,r]),i=_react.useCallback.call(void 0, async({tokenIn:l,amount:u,loanToken:m,bendVault:p,rewardVault:d,slippage:c})=>{_chunkS74ZMG2Gcjs.d.call(void 0, t,"fromAddress"),_chunkS74ZMG2Gcjs.d.call(void 0, _optionalChain([l, 'optionalAccess', _141 => _141.address]),"tokenInAddress"),_chunkS74ZMG2Gcjs.b.call(void 0, _optionalChain([l, 'optionalAccess', _142 => _142.chainId]),"tokenInChainId");let f=_core.getPublicClient.call(void 0, r,{chainId:l.chainId});_chunkS74ZMG2Gcjs.c.call(void 0, f);let g=_viem.parseUnits.call(void 0, u,l.decimals).toString();return Ao({fromAddress:t,amountIn:g,tokenIn:l.address,loanToken:m,bendVault:p,rewardVault:d,chainId:l.chainId,ensoClient:o,destinationChainId:_internal.defaultChainId,slippage:c,publicClient:f})},[t,o,r]);return{tokens:n,getBendTransactionRequests:i,getZapTransactionRequests:a,refreshTokens:s}}function yy({tokenIn:e,loanTokenAddress:t,loanTokenPrice:r,bendVault:o,rewardVault:n,amount:s,slippage:a,chainId:i},l){let{tokens:u,refreshTokens:m}=ie({chainId:i}),{data:p,error:d}=vo({tokenIn:e,loanTokenAddress:t,loanTokenPrice:r,bendVault:o,rewardVault:n,amount:_optionalChain([e, 'optionalAccess', _143 => _143.formattedBalance]),slippage:a,chainId:_optionalChain([e, 'optionalAccess', _144 => _144.chainId])},l),c=_nullishCoalesce(_optionalChain([p, 'optionalAccess', _145 => _145.transactions, 'optionalAccess', _146 => _146.reduce, 'call', _147 => _147((R,h)=>R+BigInt(_nullishCoalesce(h.value, () => (0n))),0n)]), () => (0n)),f=_optionalChain([u, 'optionalAccess', _148 => _148.find, 'call', _149 => _149(R=>_chunk22MQVFHPcjs.f.call(void 0, R,"ETH")&&R.chainId===_optionalChain([e, 'optionalAccess', _150 => _150.chainId]))]),g=BigInt(c)-BigInt(_nullishCoalesce(_optionalChain([f, 'optionalAccess', _151 => _151.balance]), () => (0n))),A=vo({tokenIn:e,loanTokenAddress:t,loanTokenPrice:r,bendVault:o,rewardVault:n,amount:s,slippage:a,chainId:i},l);return{...A,nativeFee:g,error:d||A.error,tokens:u,refresh:()=>{A.mutate(),m()}}}function vo({tokenIn:e,loanTokenAddress:t,loanTokenPrice:r,bendVault:o,rewardVault:n,amount:s,slippage:a,chainId:i},l){let{address:u}=_hooks.useBeraWallet.call(void 0, ),{getBendTransactionRequests:m}=ie({chainId:i}),p=!!e&&!!t&&!!o&&!!s&&!!u&&!_chunk22MQVFHPcjs.f.call(void 0, t,_optionalChain([e, 'optionalAccess', _152 => _152.address]))&&e.chainId&&Number(s)>0&&!!a,d=_hooks.usePublicClient.call(void 0, {chainId:i}),c=_hooks.usePublicClient.call(void 0, );return _swr2.default.call(void 0, p?["useBendTransactionRequests",e,t,r,o,n,s,a]:null,async([,g,A,R,h,b,T,w])=>{if(!d||!c)throw new (0, _chunkJMKLDDKYcjs.g)({property:"publicClient",value:d,expected:"PublicClient"});let I=await m({amount:T,tokenIn:g,loanToken:A,bendVault:h,rewardVault:b,slippage:w}),C=I.bundle.amountsOut,v=b?b.toLowerCase():h.toLowerCase(),M=C[v],W=await _chunkXFPTQMAKcjs.a.call(void 0, {sharesAmount:BigInt(M),vaultAddress:h,publicClient:c}),O=_optionalChain([g, 'optionalAccess', _153 => _153.price])&&R?_chunkREDXXUK7cjs.y.call(void 0, _optionalChain([g, 'optionalAccess', _154 => _154.price, 'optionalAccess', _155 => _155.toString, 'call', _156 => _156()]),_optionalChain([R, 'optionalAccess', _157 => _157.toString, 'call', _158 => _158()]),T,W.formatted):void 0;return{supplyAmount:W,priceImpact:O,...I}},{..._optionalChain([l, 'optionalAccess', _159 => _159.opts]),refreshInterval:1e5})}var ky=({tokenIn:e,tokenOut:t,amount:r,slippage:o,chainId:n})=>{let{getZapTransactionRequests:s,refreshTokens:a,tokens:i}=ie({chainId:n}),l=!!e&&!!t&&!!r&&Number(r)>0&&!!o,m=_swr2.default.call(void 0, l?["useZapTransactionRequests",e,t,r,o]:null,async([,p,d,c,f])=>(_chunkS74ZMG2Gcjs.b.call(void 0, p,"tokenIn"),_chunkS74ZMG2Gcjs.d.call(void 0, _optionalChain([d, 'optionalAccess', _160 => _160.address]),"tokenOutAddress"),_chunkS74ZMG2Gcjs.e.call(void 0, c,"amount"),_chunkS74ZMG2Gcjs.e.call(void 0, f,"slippage"),s({amount:c,tokenIn:p,tokenOut:d.address,slippage:f})),{refreshInterval:1e5,isEnabled:l});return{...m,tokens:i,refresh:()=>{m.mutate(),a()}}};var _graymatter = require('gray-matter'); var _graymatter2 = _interopRequireDefault(_graymatter);function Ve(e){return Object.values(e).some(t=>Array.isArray(t)?t.some(r=>typeof r=="object"&&r!==null?Ve(r):!!r):typeof t=="object"&&t!==null?Ve(t):!!t)}var Bo=({proposal:e,currentTopic:t,onError:r})=>{let o=_chunkXFPTQMAKcjs.u.call(void 0, e,t),n=[];if(o.actions=e.actions.map((i,l)=>{let u={};if(u.target=_chunkXFPTQMAKcjs.q.call(void 0, {fieldOrType:"address",value:i.target}),i.type==="custom-action")if(i.input==="ABI")if(u.ABI=_chunkXFPTQMAKcjs.q.call(void 0, {fieldOrType:"abi",value:i.ABI}),!i.functionSignature)u.functionSignature="Required";else try{let p=_viem.parseAbiItem.call(void 0, i.functionSignature);p.type!=="function"?(console.error("parsedSignatureAbi is not a function",p),u.functionSignature="Invalid ABI"):(u.args=p.inputs.map((d,c)=>{try{return"components"in d?_chunkXFPTQMAKcjs.q.call(void 0, {fieldOrType:d.type,value:_optionalChain([i, 'access', _161 => _161.args, 'optionalAccess', _162 => _162[c]]),components:d.components}):_chunkXFPTQMAKcjs.q.call(void 0, {fieldOrType:d.type,value:_optionalChain([i, 'access', _163 => _163.args, 'optionalAccess', _164 => _164[c]])})}catch (e3){return null}}),u.args.some(d=>d)||(n[l]=_viem.encodeFunctionData.call(void 0, {abi:[p],args:i.args})))}catch (e4){u.functionSignature="Invalid ABI"}else if(i.input==="rawCalldata")u.rawCalldata=_chunkXFPTQMAKcjs.q.call(void 0, {fieldOrType:"hex",value:i.rawCalldata}),n[l]=i.rawCalldata;else if(i.input==="message")u.message=_chunkXFPTQMAKcjs.q.call(void 0, {fieldOrType:"string",value:i.message}),n[l]=_viem.toHex.call(void 0, i.message);else throw new Error("Invalid input type");else if(i.type==="whitelist-reward-vault"||i.type==="blacklist-reward-vault"){if(u.vault=_chunkXFPTQMAKcjs.q.call(void 0, {fieldOrType:"address",value:i.vault}),!u.vault){let p=i.type==="whitelist-reward-vault";n[l]=_viem.encodeFunctionData.call(void 0, {abi:_chunkEU4WFADKcjs.c,functionName:"setVaultWhitelistedStatus",args:[i.vault,p,""]})}}else i.type==="whitelist-reward-vault-incentive"?(u.token=_chunkXFPTQMAKcjs.q.call(void 0, {fieldOrType:"address",value:i.token}),u.minIncentiveRate=_chunkXFPTQMAKcjs.q.call(void 0, {fieldOrType:"uint256",value:i.minIncentiveRate}),u.managerAddress=_chunkXFPTQMAKcjs.q.call(void 0, {fieldOrType:"address",value:i.managerAddress}),!u.token&&!u.minIncentiveRate&&!u.managerAddress&&(n[l]=_viem.encodeFunctionData.call(void 0, {abi:_chunkEU4WFADKcjs.d,functionName:"whitelistIncentiveToken",args:[i.token,BigInt(i.minIncentiveRate),i.managerAddress]}))):i.type==="erc20-transfer"&&(u.amount=_chunkXFPTQMAKcjs.q.call(void 0, {fieldOrType:"uint256",value:i.amount}),u.to=_chunkXFPTQMAKcjs.q.call(void 0, {fieldOrType:"address",value:i.to}),!u.amount&&!u.to&&(n[l]=_viem.encodeFunctionData.call(void 0, {abi:_viem.erc20Abi,functionName:"transfer",args:[i.to,BigInt(i.amount)]})));return Ve(u)?u:null}),_optionalChain([r, 'optionalCall', _165 => _165(o)]),Object.getOwnPropertyNames(o).map(i=>o[i]).some(i=>Array.isArray(i)?i.filter(l=>l).length>0:i===null?!1:!!i)){console.warn("Proposal has errors",o);return}if(n.length===0)throw new Error("No actions submitted in proposal");let s=new URL(e.forumLink),a=_graymatter2.default.stringify(e.description,{title:e.title,topics:Array.from(e.topic.values()),forumLink:s.toString(),version:"1.0.0","content-encoding":"utf-8","content-type":"text/markdown",actions:e.actions.map(i=>{let l={type:i.type};return i.type==="custom-action"&&(l.inputType=i.input),l})});return[e.actions.map(i=>i.target),e.actions.map(i=>_nullishCoalesce(i.value, () => (0n))),n,a]};var Oo={type:"custom-action",target:"",ABI:"",value:0n,functionSignature:"",args:[],input:"ABI",rawCalldata:"0x",message:""},La= exports.useCreateProposal =({initialData:e={},currentTopic:t,onError:r})=>{let[o,n]=_react.useState.call(void 0, {title:"",description:"",forumLink:"",actions:[Oo],...e,topic:new Set});_react.useEffect.call(void 0, ()=>{n(l=>({...l,topic:new Set([t.id])}))},[t]);let s=_react.useCallback.call(void 0, ()=>{n(l=>({...l,actions:[...l.actions,Oo]}))},[]),a=_react.useCallback.call(void 0, l=>{n(u=>{let m=[...u.actions];return m.splice(l,1),{...u,actions:m}})},[n]),i=_react.useCallback.call(void 0, ()=>o?Bo({proposal:o,currentTopic:t,onError:r}):void 0,[o,t]);return{proposal:o,setProposal:n,addProposalAction:s,removeProposalAction:a,computeParamsAndErrors:i}};var Do=({proposalId:e})=>{let t=_hooks.usePublicClient.call(void 0, );return _immutable2.default.call(void 0, t&&e?["useProposalSnapshot",e]:null,async([,o])=>{_chunkS74ZMG2Gcjs.c.call(void 0, t);let{config:n}=_chunk22MQVFHPcjs.b.call(void 0, {chainId:t.chain.id});return(await t.readContract({abi:_chunkEU4WFADKcjs.e,address:n.governance.governor,functionName:"proposalSnapshot",args:[BigInt(o)]})).toString()})};var $y=e=>{let{address:t}=_hooks.useBeraWallet.call(void 0, ),r=_hooks.usePublicClient.call(void 0, ),o=e.wallet||t,{data:n}=Do({proposalId:e.proposalId}),s=e.timepoint||n;return _immutable2.default.call(void 0, s&&r&&o?["useGetPastVotes",s,o]:null,async([,i,l])=>{_chunkS74ZMG2Gcjs.c.call(void 0, r);let{config:u}=_chunk22MQVFHPcjs.b.call(void 0, {chainId:r.chain.id});if(Number(i)>Date.now()/1e3)throw new Error("timepoint is in the future");let m=await r.readContract({abi:_chunkEU4WFADKcjs.m,address:u.tokens.bgt,functionName:"getPastVotes",args:[l,BigInt(i)]});return _viem.formatUnits.call(void 0, m,18)})};var rA=({proposalId:e,wallet:t})=>{let{address:r}=_hooks.useBeraWallet.call(void 0, ),o=_hooks.usePublicClient.call(void 0, ),n=t||r;return _swr2.default.call(void 0, o&&n&&_viem.isAddress.call(void 0, n)?["useHasVoted",e,n]:null,([,s,a])=>{_chunkS74ZMG2Gcjs.c.call(void 0, o);let{config:i}=_chunk22MQVFHPcjs.b.call(void 0, {chainId:o.chain.id});return o.readContract({address:i.governance.governor,abi:_chunkEU4WFADKcjs.e,functionName:"hasVoted",args:[BigInt(s),a]})})};var Lo="0xfd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783";var mA=({account:e,...t})=>{let r=_hooks.usePublicClient.call(void 0, ),{config:o}=_chunk22MQVFHPcjs.b.call(void 0, t);return _swr2.default.call(void 0, e&&r?["useCancellerRole",e]:null,async([,s])=>(_chunkS74ZMG2Gcjs.c.call(void 0, r),await r.readContract({abi:_chunkQCK474XDcjs.i,address:o.governance.timelock,functionName:"hasRole",args:[Lo,s]})),{refreshInterval:18e4,revalidateOnFocus:!1})};var _infinite = require('swr/infinite'); var _infinite2 = _interopRequireDefault(_infinite);var _governance = require('@berachain/graphql/governance');var Uo=10,ja=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 Ja(e,t={}){let r=2*(_nullishCoalesce(t.perPage, () => (Uo)));return(o,n)=>{if(o!==0&&n&&n.length<r)return null;let s=_optionalChain([t, 'access', _166 => _166.status_in, 'optionalAccess', _167 => _167.flatMap, 'call', _168 => _168(ja), 'access', _169 => _169.filter, 'call', _170 => _170((a,i,l)=>l.indexOf(a)===i)]);return["usePollAllProposals",o,e,t.where,s,t.orderBy,t.orderDirection,r,t.text]}}function AA(e,t){let r=_nullishCoalesce(_optionalChain([t, 'optionalAccess', _171 => _171.autoRefresh]), () => (!1)),o=_nullishCoalesce(e.perPage, () => (Uo)),n=2*o,s=Ja(e.topic,e);async function a(c){if(!c)return[];let[,f,g,A,R,h,b,T,w]=c;return(await _asyncNullishCoalesce(await _chunkXFPTQMAKcjs.t.call(void 0, {where:{topics_contains:[g],status_in:_optionalChain([R, 'optionalAccess', _172 => _172.length])?R:void 0,...A},orderBy:h,orderDirection:b,text:w,perPage:T,offset:f*T}), async () => ([]))).filter(Boolean)}let i=_infinite2.default.call(void 0, s,a,{initialSize:1,refreshInterval:_nullishCoalesce(_optionalChain([t, 'optionalAccess', _173 => _173.opts, 'optionalAccess', _174 => _174.refreshInterval]), () => (18e4)),..._optionalChain([t, 'optionalAccess', _175 => _175.opts])}),l=_react.useMemo.call(void 0, ()=>{if(!i.data)return[];let c=i.data.flat().filter(g=>g?_optionalChain([e, 'access', _176 => _176.status_in, 'optionalAccess', _177 => _177.length])?e.status_in.includes(g.status):!0:!1).sort((g,A)=>{if(!e.text)return 0;if(e.orderBy===_governance.Proposal_OrderBy.CreatedAt){let R=Number(A.createdAt)-Number(g.createdAt);return e.orderDirection==="asc"?R:-R}return 0}),f=[];for(let g=0;g<c.length;g+=o)f.push(c.slice(g,g+o));return f},[i.data,e,o]),u=_optionalChain([i, 'access', _178 => _178.data, 'optionalAccess', _179 => _179[i.data.length-1]]),m=!!u&&u.length===n,[p,d]=_react.useState.call(void 0, Date.now()/1e3);return _react.useEffect.call(void 0, ()=>{if(!r)return;let c=setInterval(()=>{d(Date.now()/1e3)},1e4);return()=>clearInterval(c)},[r]),_react.useEffect.call(void 0, ()=>{if(!i.data)return;let c=!1;for(let f of i.data.flat()){switch(f.status){case _governance.ProposalStatus.Pending:p>=Number(f.voteStartAt)&&(c=!0);break;case _governance.ProposalStatus.Active:p>=Number(f.voteEndAt)&&(c=!0);break;case _governance.ProposalStatus.InQueue:Date.now()/1e3+1>=Number(f.queueEnd)&&(c=!0);break;default:break}if(c)break}c&&i.mutate()},[i.data,p]),{...i,data:l,hasMore:m}}var IA=(e,t)=>{let r=_nullishCoalesce(_optionalChain([t, 'optionalAccess', _180 => _180.autoRefresh]), () => (!1)),o=_hooks.usePublicClient.call(void 0, ),s=_swr2.default.call(void 0, e&&o?["usePollProposal",e]:null,([,l])=>(_chunkS74ZMG2Gcjs.c.call(void 0, o),_chunkXFPTQMAKcjs.w.call(void 0, {proposalId:l,client:o})),{..._optionalChain([t, 'optionalAccess', _181 => _181.opts]),refreshInterval:_nullishCoalesce(_optionalChain([t, 'optionalAccess', _182 => _182.opts, 'optionalAccess', _183 => _183.refreshInterval]), () => (18e4))}),[a,i]=_react.useState.call(void 0, Date.now());return _react.useEffect.call(void 0, ()=>{if(!r)return;let l=setInterval(()=>{i(Date.now()/1e3)},1e4);return()=>clearInterval(l)},[]),_react.useEffect.call(void 0, ()=>{if(s.data!==void 0)switch(s.data.status){case _governance.ProposalStatus.Pending:a>=Number(s.data.voteStartAt)&&s.mutate();break;case _governance.ProposalStatus.Active:a>=Number(s.data.voteEndAt)&&s.mutate();break;case _governance.ProposalStatus.InQueue:Date.now()/1e3+1>=Number(s.data.queueEnd)&&s.mutate();break}},[_optionalChain([s, 'access', _184 => _184.data, 'optionalAccess', _185 => _185.status]),a]),{...s,refresh:()=>_optionalChain([s, 'optionalAccess', _186 => _186.mutate, 'optionalCall', _187 => _187()])}};var OA=e=>{let t=_hooks.usePublicClient.call(void 0, ),o=_swr2.default.call(void 0, t?["usePollProposalThreshold",e]:null,async([,n])=>{_chunkS74ZMG2Gcjs.c.call(void 0, t);let s=await t.readContract({address:n,abi:_chunkEU4WFADKcjs.e,functionName:"proposalThreshold"});return{votesThreshold:_viem.formatEther.call(void 0, s)}},{refreshInterval:18e4});return{...o,refresh:o.mutate}};var _e=1e3,UA= exports.usePollProposalVotes =(e,t)=>_infinite2.default.call(void 0, ai(e,t),async([r,o])=>_chunkXFPTQMAKcjs.z.call(void 0, {variables:{...e,limit:_e,offset:_e*o}}),{parallel:!0,initialSize:Number.POSITIVE_INFINITY}),ai= exports.usePollProposalVotesQueryKey =({...e},t)=>r=>r>Math.floor(t/_e)?null:["usePollProposalVotes",r,_e,e.proposalId,e.orderBy,e.orderDirection];var GA=e=>{let{address:t}=_hooks.useBeraWallet.call(void 0, ),r=_hooks.usePublicClient.call(void 0, ),n=_swr2.default.call(void 0, t?["usePollUserDelegates",t]:null,async([,s])=>{_chunkS74ZMG2Gcjs.c.call(void 0, r);let{config:a}=_chunk22MQVFHPcjs.b.call(void 0, {chainId:r.chain.id});if(!r||!s)throw new Error("usePollUserDelegates needs publicClient and account");let[i,l]=await Promise.all([r.readContract({address:a.tokens.bgt,abi:_chunkEU4WFADKcjs.m,functionName:"delegates",args:[s]}),r.readContract({address:a.tokens.bgt,abi:_chunkEU4WFADKcjs.m,functionName:"getVotes",args:[s]})]);return{delegate:i,currentVotes:_viem.formatEther.call(void 0, l)}},{..._optionalChain([e, 'optionalAccess', _188 => _188.opts]),refreshInterval:_nullishCoalesce(_optionalChain([e, 'optionalAccess', _189 => _189.opts, 'optionalAccess', _190 => _190.refreshInterval]), () => (18e4))});return{...n,refresh:()=>_optionalChain([n, 'optionalAccess', _191 => _191.mutate, 'optionalCall', _192 => _192()])}};var ZA=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([,s])=>{if(!t)throw new Error("Transaction not found");if(t.transactionHash!==s)throw new Error("Transaction hash mismatch");return _chunkXFPTQMAKcjs.y.call(void 0, {tx:t,publicClient:r})})};var yi={0:"pending",1:"active",2:"canceled",3:"defeated",4:"succeeded",5:"queued",6:"expired",7:"executed"},tb= 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([,n])=>{_chunkS74ZMG2Gcjs.c.call(void 0, r);let s=await r.readContract({abi:_chunkEU4WFADKcjs.e,address:t,functionName:"state",args:[BigInt(n)]});return yi[s]})};var hi={0:"unset",1:"waiting",2:"ready",3:"done"},ib= 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([,n,s])=>{_chunkS74ZMG2Gcjs.c.call(void 0, r);let a=await r.readContract({abi:_chunkQCK474XDcjs.i,address:s,functionName:"getOperationState",args:[n]});return hi[a]},{refreshInterval:18e4})};async function yt({at:e,publicClient:t,...r}){let{config:o}=_chunk22MQVFHPcjs.b.call(void 0, r);_chunkS74ZMG2Gcjs.c.call(void 0, t);let n=await t.readContract({address:o.governance.governor,abi:_chunkEU4WFADKcjs.e,functionName:"quorum",blockTag:"pending",args:[BigInt(_nullishCoalesce(e, () => (Math.floor(Date.now()/1e3))))]});return _viem.formatEther.call(void 0, n)}function Ab({at:e},{isEnabled:t=!0}){let r=Math.floor(Date.now()/1e3),o=_hooks.usePublicClient.call(void 0, ),n=t&&o?["useQuorum",Number(e)>r?"now":e]:null,s=_swr2.default.call(void 0, n,async([,a])=>a==="now"?yt({publicClient:o}):yt({at:a,publicClient:o}));return{...s,data:s.data?Number(s.data):void 0}}function ee({priceFeedMap:e},t){let r=e?Object.values(e):null,o=(_nullishCoalesce(_optionalChain([t, 'optionalAccess', _193 => _193.opts, 'optionalAccess', _194 => _194.isEnabled]), () => (!0)))&&r?["usePythLatestPrices",r]:null;return _swr2.default.call(void 0, o,async([s,a])=>await _chunkXFPTQMAKcjs.O.call(void 0, {priceFeedId:a}))}var Vo=({asset:e,amount:t,isMint:r,isBasketModeEnabled:o},n)=>{let s=_hooks.usePublicClient.call(void 0, ),{priceFeedMap:a,flags:i}=_chunk6VF3RF53cjs.s.call(void 0, ),{data:l}=ee({priceFeedMap:_optionalChain([e, 'optionalAccess', _195 => _195.address])&&a?{[e.address]:a[e.address]}:void 0},{opts:{isEnabled:i.isPythWrapperEnabled&&!!_optionalChain([e, 'optionalAccess', _196 => _196.address])}}),u=t&&e&&(i.isPythWrapperEnabled&&_optionalChain([l, 'optionalAccess', _197 => _197.prices, 'access', _198 => _198.length])||!i.isPythWrapperEnabled)?["useCappedGlobally",t,e,l,i.isPythWrapperEnabled,o]:null,m=_swr2.default.call(void 0, u,async([p,d,c,f,g,A])=>A?!1:(_chunkS74ZMG2Gcjs.c.call(void 0, s),await _chunkXFPTQMAKcjs.F.call(void 0, {client:s,asset:c,amount:r?d:`-${d}`,isMint:r,latestPrices:f,isPythWrapperEnabled:g})),{..._optionalChain([n, 'optionalAccess', _199 => _199.opts]),refreshInterval:0});return{...m,refresh:()=>void m.mutate()}};var Wo=({asset:e,amount:t,isMint:r,isBasketModeEnabled:o},n)=>{let s=_hooks.usePublicClient.call(void 0, ),{collateralList:a,referenceCollateral:i}=_chunk6VF3RF53cjs.s.call(void 0, ),u=_swr2.default.call(void 0, e&&t?["useCappedRelatively",e,t,a,i]:null,async([m,p,d,c,f])=>{if(o)return!1;if(_chunkS74ZMG2Gcjs.c.call(void 0, s),!r){let g=`-${d}`;return f.address!==p?!1:(await Promise.all(c.map(R=>_chunkXFPTQMAKcjs.P.call(void 0, {client:s,asset:R.address,amount:g,isMint:r,referenceCollateral:f})))).some(R=>R)}return await _chunkXFPTQMAKcjs.P.call(void 0, {client:s,asset:p,amount:d,isMint:r,referenceCollateral:f})},{refreshInterval:0,..._optionalChain([n, 'optionalAccess', _200 => _200.opts])});return{...u,refresh:()=>void u.mutate()}};var Wb=({collateralList:e},t)=>{let r=_hooks.usePublicClient.call(void 0, ),n=_swr2.default.call(void 0, r&&e?["useCollateralWeights",e]:void 0,async([s,a])=>(_chunkS74ZMG2Gcjs.c.call(void 0, r),await _chunkXFPTQMAKcjs.B.call(void 0, {client:r,collateralList:a})),{..._optionalChain([t, 'optionalAccess', _201 => _201.opts]),refreshInterval:_nullishCoalesce(_optionalChain([t, 'optionalAccess', _202 => _202.opts, 'optionalAccess', _203 => _203.refreshInterval]), () => (1e5))});return{...n,refresh:()=>void n.mutate()}};var _o=()=>{let e=_hooks.usePublicClient.call(void 0, ),{address:t}=_hooks.useBeraWallet.call(void 0, ),{collateralList:r}=_chunk6VF3RF53cjs.s.call(void 0, ),n=_swr2.default.call(void 0, t&&r&&e?["useHoneyBalances",t,r]:null,async([s,a,i])=>{_chunkS74ZMG2Gcjs.c.call(void 0, e);let l=[..._nullishCoalesce(i, () => ([])),_chunk22MQVFHPcjs.e.call(void 0, {})];returnawait _asyncOptionalChain([(await _chunkXFPTQMAKcjs.xa.call(void 0, {account:a,tokenList:l,publicClient:e})), 'optionalAccess', async _204 => _204.reduce, 'call', async _205 => _205((p,d)=>(p[d.address]=d,p),{})])},{refreshInterval:1e4});return{...n,refresh:()=>n.mutate()}};var Qo=e=>{let t=_hooks.usePublicClient.call(void 0, ),{collateralList:r}=_chunk6VF3RF53cjs.s.call(void 0, ),n=_swr2.default.call(void 0, r&&t?["useHoneyVaultsBalance",r]:null,async([s,a])=>(_chunkS74ZMG2Gcjs.c.call(void 0, t),await _chunkXFPTQMAKcjs.N.call(void 0, {client:t,collateralList:a})),{..._optionalChain([e, 'optionalAccess', _206 => _206.opts]),refreshInterval:1e5});return{...n,refresh:()=>void n.mutate()}};var Yo=({collateral:e},t)=>{let r=_hooks.usePublicClient.call(void 0, ),{priceFeedMap:o,flags:n}=_chunk6VF3RF53cjs.s.call(void 0, ),{data:s}=ee({priceFeedMap:_optionalChain([e, 'optionalAccess', _207 => _207.address])?{[e.address]:o[e.address]}:void 0},{opts:{isEnabled:n.isPythWrapperEnabled&&!!_optionalChain([e, 'optionalAccess', _208 => _208.address])}}),a=r&&e&&(n.isPythWrapperEnabled&&_optionalChain([s, 'optionalAccess', _209 => _209.prices, 'access', _210 => _210.length])||!n.isPythWrapperEnabled)?["useIsBadCollateralAsset",e,s,n.isPythWrapperEnabled]:null,i=_swr2.default.call(void 0, a,async([l,u,m,p])=>(_chunkS74ZMG2Gcjs.c.call(void 0, r),await _chunkXFPTQMAKcjs.E.call(void 0, {client:r,collateral:u,latestPrices:m,isPythWrapperEnabled:p})),{..._optionalChain([t, 'optionalAccess', _211 => _211.opts]),refreshInterval:_nullishCoalesce(_optionalChain([t, 'optionalAccess', _212 => _212.opts, 'optionalAccess', _213 => _213.refreshInterval]), () => (1e5))});return{...i,refresh:()=>void i.mutate()}};var Mo=({lowerThan:e,vaultsBalances:t,state:r,collateralList:o})=>{if(!(r.actionType==="mint")&&!r.isBasketModeEnabled){let s=_optionalChain([t, 'optionalAccess', _214 => _214.find, 'call', _215 => _215(l=>l.address.toLowerCase()===r.collaterals[0].address.toLowerCase())]),a=new (0, _bignumberjs2.default)(_nullishCoalesce(_optionalChain([s, 'optionalAccess', _216 => _216.formattedBalance]), () => ("0"))).lte(e),i=o.filter(l=>{let u=_optionalChain([t, 'optionalAccess', _217 => _217.find, 'call', _218 => _218(m=>m.address.toLowerCase()===l.address.toLowerCase())]);return new (0, _bignumberjs2.default)(_nullishCoalesce(_optionalChain([u, 'optionalAccess', _219 => _219.formattedBalance]), () => ("0"))).lte(e)});return{isLow:a,isLiquidityLowCollaterals:i}}return{isLow:!1,isLiquidityLowCollaterals:[]}},Hi=({vaultsBalances:e,redeemedVaultBalance:t,state:r,collateralList:o})=>{if(!(r.actionType==="mint")&&e&&t){let s=o.filter(a=>{let i=e.find(u=>u.address.toLowerCase()===a.address.toLowerCase()),l=r.toAmount[r.collaterals.indexOf(a)];return new (0, _bignumberjs2.default)(_nullishCoalesce(_optionalChain([i, 'optionalAccess', _220 => _220.formattedBalance]), () => ("0"))).lt(_nullishCoalesce(l, () => ("0")))});return{isMore:!!s.find(a=>a.address.toLowerCase()===r.collaterals[0].address.toLowerCase()),isRedeemMoreThanLiquidityCollaterals:s}}return{isMore:!1,isRedeemMoreThanLiquidityCollaterals:void 0}};function Vi({state:e,honeyBalances:t,...r}){let{config:o}=_chunk22MQVFHPcjs.b.call(void 0, r),n=e.actionType==="mint";return!n&&t?new (0, _bignumberjs2.default)(e.fromAmount[0]).gt(_nullishCoalesce(_optionalChain([t, 'access', _221 => _221[o.honey.token], 'optionalAccess', _222 => _222.formattedBalance]), () => ("0"))):n&&t&&e.isBasketModeEnabled!==void 0&&e.collaterals.length>0?e.isBasketModeEnabled?e.collaterals.some((s,a)=>{let i=e.fromAmount[a];return new (0, _bignumberjs2.default)(_optionalChain([t, 'access', _223 => _223[s.address], 'optionalAccess', _224 => _224.formattedBalance])).lt(i)}):new (0, _bignumberjs2.default)(_optionalChain([t, 'access', _225 => _225[e.collaterals[0].address], 'optionalAccess', _226 => _226.formattedBalance])).lt(e.fromAmount[0]):!1}var yh=({actionType:e,collaterals:t,fromAmount:r,toAmount:o,isBasketModeEnabled:n})=>{let s={actionType:e,collaterals:t,fromAmount:r,toAmount:o,isBasketModeEnabled:n},a=e==="mint",{data:i}=Yo({collateral:t[0]}),{collateralList:l}=_chunk6VF3RF53cjs.s.call(void 0, ),{isBlacklisted:u,isDepegged:m}=_nullishCoalesce(i, () => ({isBlacklisted:!1,isDepegged:!1})),{data:p}=Vo({asset:t[0],amount:a?r[0]:o[0],isMint:a,isBasketModeEnabled:n}),{data:d}=Wo({asset:_optionalChain([t, 'access', _227 => _227[0], 'optionalAccess', _228 => _228.address]),amount:a?r[0]:o[0],isMint:a,isBasketModeEnabled:n}),{data:c}=_o(),{data:f}=Qo(),g=_optionalChain([t, 'access', _229 => _229[0], 'optionalAccess', _230 => _230.address]),A=_optionalChain([f, 'optionalAccess', _231 => _231.find, 'call', _232 => _232(I=>I.address.toLowerCase()===g.toLowerCase())]),[R,h]=_react.useMemo.call(void 0, ()=>{let I=Mo({lowerThan:1,vaultsBalances:f,state:s,collateralList:l}),C=Mo({lowerThan:1e3,vaultsBalances:f,state:s,collateralList:l});return[I,C]},[f,s]),{isMore:b,isRedeemMoreThanLiquidityCollaterals:T}=_react.useMemo.call(void 0, ()=>Hi({vaultsBalances:f,redeemedVaultBalance:A,state:s,collateralList:l}),[f,A,s,l]),w=_react.useMemo.call(void 0, ()=>Vi({state:s,honeyBalances:c}),[s,c]);return{isLiquidityDepleted:R.isLow,isLiquidityDepletedCollaterals:R.isLiquidityLowCollaterals,isRedeemMoreThanLiquidity:b,isRedeemMoreThanLiquidityCollaterals:T,isLowLiquidity:h.isLow,isLiquidityLowCollaterals:h.isLiquidityLowCollaterals,isBlacklisted:s.isBasketModeEnabled?!1:u,isDepegged:s.isBasketModeEnabled?!1:m,isCappedGlobally:p,isCappedRelatively:d,isExceedingBalance:w}};function Rh({days:e}){let t=_swr2.default.call(void 0, ["useHoneyChartData",e],async([r,o])=>await _chunkXFPTQMAKcjs.A.call(void 0, {days:o}));return{...t,refresh:()=>t.mutate()}}function Ih(){let e=_swr2.default.call(void 0, ["useHoneyGlobalData"],()=>_chunkXFPTQMAKcjs.H.call(void 0, )),t=_optionalChain([e, 'access', _233 => _233.data, 'optionalAccess', _234 => _234.honeySnapshots, 'access', _235 => _235.reduce, 'call', _236 => _236((r,o)=>new (0, _bignumberjs2.default)(o.totalVolume).plus(r),new (0, _bignumberjs2.default)(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:n,collateralList:s}=_chunk6VF3RF53cjs.s.call(void 0, ),{data:a}=ee({priceFeedMap:o},{opts:{isEnabled:n.isPythWrapperEnabled&&!!s.length}}),i=e.actionType==="mint",l=r&&e&&s.length>0&&(n.isPythWrapperEnabled&&_optionalChain([a, 'optionalAccess', _237 => _237.prices, 'access', _238 => _238.length])||!n.isPythWrapperEnabled)?["useIsBasketModeEnabled",i,a,n.isPythWrapperEnabled,s]:null,u=_swr2.default.call(void 0, l,async([m,p,d,c,f])=>(_chunkS74ZMG2Gcjs.c.call(void 0, r),await _chunkXFPTQMAKcjs.S.call(void 0, {client:r,isMint:p,collateralList:f,latestPrices:d,isPythWrapperEnabled:c})),{..._optionalChain([t, 'optionalAccess', _239 => _239.opts]),refreshInterval:_nullishCoalesce(_optionalChain([t, 'optionalAccess', _240 => _240.opts, 'optionalAccess', _241 => _241.refreshInterval]), () => (1e4))});return{...u,data:u.data,refresh:()=>void u.mutate()}}var Ki={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",n=e.collaterals.map((a,i)=>t.changedAsset===a.address?o?e.fromAmount[i]:e.toAmount[i]:r.collaterals[a.address]?_viem.formatUnits.call(void 0, r.collaterals[a.address],a.decimals):e.isBasketModeEnabled?"0":""),s=_chunk22MQVFHPcjs.f.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?n:[s],toAmount:o?[s]:n}}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 _h=()=>{let{collateralList:e}=_chunk6VF3RF53cjs.s.call(void 0, ),[t,r]=_react.useReducer.call(void 0, qo,Ki,n=>({...n,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 qh=({pythPriceFeedCalldata:e,tokenListLength:t},r)=>{let o=_hooks.usePublicClient.call(void 0, ),n=(_nullishCoalesce(_optionalChain([r, 'optionalAccess', _242 => _242.opts, 'optionalAccess', _243 => _243.isEnabled]), () => (!0)))&&e&&e.length>0?["usePythUpdateFee",e]:null,{data:s=_chunkREDXXUK7cjs.x.call(void 0, t),isLoading:a}=_immutable2.default.call(void 0, n,async([i,l])=>(_chunkS74ZMG2Gcjs.c.call(void 0, o),await _chunkXFPTQMAKcjs.Q.call(void 0, {client:o,priceFeedId:l})));return{QUERY_KEY:n,data:s,isLoading:a}};function jh(e){return _react.useMemo.call(void 0, ()=>{if(e)return _chunkXFPTQMAKcjs.W.call(void 0, e)},[e])}var el=e=>{let{address:t}=_hooks.useBeraWallet.call(void 0, ),r=_hooks.usePublicClient.call(void 0, ),n=_swr2.default.call(void 0, t&&r?["useBgtUnstakedBalance",t]:null,async([,s])=>{_chunkS74ZMG2Gcjs.c.call(void 0, r);let{config:a}=_chunk22MQVFHPcjs.b.call(void 0, {chainId:r.chain.id}),i=await r.readContract({address:a.tokens.bgt,abi:_chunkEU4WFADKcjs.m,functionName:"unboostedBalanceOf",args:[s]});return _viem.formatEther.call(void 0, i)},{...e,refreshInterval:_nullishCoalesce(_optionalChain([e, 'optionalAccess', _244 => _244.opts, 'optionalAccess', _245 => _245.refreshInterval]), () => (1e5))});return{...n,refresh:()=>n.mutate()}};var sl=()=>{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([,n])=>{_chunkS74ZMG2Gcjs.c.call(void 0, t);let{config:s}=_chunk22MQVFHPcjs.b.call(void 0, {chainId:t.chain.id}),a=await _chunkXFPTQMAKcjs.na.call(void 0, {account:n,vaultAddress:s.pol.staker,publicClient:t});return _viem.formatUnits.call(void 0, a,18)},{refreshInterval:18e4*2});return{...o,refresh:()=>_optionalChain([o, 'optionalAccess', _246 => _246.mutate, 'optionalCall', _247 => _247()])}};var _api = require('@berachain/graphql/pol/api');function AR({receiptToken:e},t){let{address:r}=_hooks.useBeraWallet.call(void 0, ),o=e.address&&r?["useEarnedStakedBeraVault",e.address,r]:null,n=_swr2.default.call(void 0, o,async([s,,a])=>await _asyncOptionalChain([(await _chunkXFPTQMAKcjs.c.call(void 0, "api",{}).query({query:_api.GetStakeBeraVaultEarningsByOwner,variables:{owner:a}})), 'access', async _248 => _248.data, 'optionalAccess', async _249 => _249.polGetStakeBeraVaultEarningsByOwner, 'optionalAccess', async _250 => _250.earnings]),{refreshInterval:18e4,..._optionalChain([t, 'optionalAccess', _251 => _251.opts])});return{...n,refresh:n.mutate}}var ml=(e,t=!1)=>["useRewardVaults",e,t],bt= exports.useRewardVaults =(e,t)=>{let r=ml(e.filter,e.onChainIncentives),o=_hooks.usePublicClient.call(void 0, ),n=_swr2.default.call(void 0, _nullishCoalesce(_optionalChain([t, 'optionalAccess', _252 => _252.opts, 'optionalAccess', _253 => _253.isEnabled]), () => (!0))?r:null,async([,s,a])=>await _chunkXFPTQMAKcjs.Y.call(void 0, {filter:s,publicClient:a?o:void 0}),{..._optionalChain([t, 'optionalAccess', _254 => _254.opts])});return{...n,refresh:n.mutate}};var IR=(e={},{isEnabled:t=!0}={})=>{let r=bt({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', _255 => _255.data, 'optionalAccess', _256 => _256.gaugeList, 'access', _257 => _257[0], 'access', _258 => _258.dynamicData, 'optionalAccess', _259 => _259.apr]),refresh:r.mutate}};var $o=e=>{let t=_hooks.usePublicClient.call(void 0, ),r=_swr2.default.call(void 0, t?"usePollGlobalData":null,async()=>(_chunkS74ZMG2Gcjs.c.call(void 0, t),_chunkXFPTQMAKcjs.Z.call(void 0, t)),{revalidateOnFocus:!1,..._optionalChain([e, 'optionalAccess', _260 => _260.opts])});return{...r,refresh:r.mutate}};var Al=()=>"usePollMarkets",LR= exports.usePollMarkets =e=>{let t=Al(),r=_immutable2.default.call(void 0, t,async()=>await _chunkXFPTQMAKcjs.$.call(void 0, ),{..._optionalChain([e, 'optionalAccess', _261 => _261.opts])});return{...r,refresh:()=>r.mutate()}};function QR({receiptTokenAddress:e,account:t,version:r},o){let n=_hooks.usePublicClient.call(void 0, ),s=e&&_viem.isAddress.call(void 0, e)&&t&&n&&_viem.isAddress.call(void 0, t)&&r?["useQueuedBeraUnlock",e,t,r]:null,a=_immutable2.default.call(void 0, s,async([,i,l,u])=>(_chunkS74ZMG2Gcjs.c.call(void 0, n),await _chunkXFPTQMAKcjs.la.call(void 0, i,l,n,u)),{refreshInterval:1e4,..._optionalChain([o, 'optionalAccess', _262 => _262.opts])});return{...a,refresh:()=>a.mutate()}}var $R=({address:e},t)=>{let r=e?["useRewardTokenToBeraRate",e]:null,o=_hooks.usePublicClient.call(void 0, );return _swr2.default.call(void 0, r,async([n,s])=>{if(!s||!_viem.isAddress.call(void 0, s))throw new (0, _chunkJMKLDDKYcjs.g)({property:"address",value:s,expected:"Address"});return _chunkS74ZMG2Gcjs.c.call(void 0, o),_chunkXFPTQMAKcjs.ba.call(void 0, {address:s,publicClient:o})},{..._optionalChain([t, 'optionalAccess', _263 => _263.opts])})};async function Ye({address:e,publicClient:t}){_chunkS74ZMG2Gcjs.c.call(void 0, t);let[r,o,n,s]=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:n.result,totalSupply:s.result!==void 0?r.status==="success"?_viem.formatUnits.call(void 0, s.result,r.result):s.result.toString():void 0}}var xl=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', _264 => _264.opts, 'optionalAccess', _265 => _265.isEnabled]), () => (!0)),n=xl(e);return _swr2.default.call(void 0, o&&r?n:null,async([,s])=>{_chunkS74ZMG2Gcjs.c.call(void 0, r);let{config:a}=_chunk22MQVFHPcjs.b.call(void 0, {chainId:r.chain.id}),i=await _chunkXFPTQMAKcjs.ga.call(void 0, {address:s,publicClient:r}),[l,u,m]=await Promise.all([_chunkXFPTQMAKcjs.fa.call(void 0, {address:s,stakingToken:i,publicClient:r}),r.readContract({address:a.pol.beraChef,abi:_chunkEU4WFADKcjs.c,functionName:"isWhitelistedVault",args:[s]}),r.readContract({address:i,abi:_viem.erc20Abi,functionName:"balanceOf",args:[s]})]),[p,d]=await Promise.all([Ye({address:i,publicClient:r}),Promise.all(l.map(c=>_chunkXFPTQMAKcjs.C.call(void 0, {address:c.token,publicClient:r})))]);if(!p)throw new Error("Staking token not found");return{id:s,address:s,vaultAddress:s,stakingToken:{address:i,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((c,f)=>({active:!!c.remainingAmount,remainingAmount:c.remainingAmount,remainingAmountUsd:"0",incentiveRate:c.incentiveRate,incentiveRateUsd:"0",tokenAddress:c.token,token:d[f]}))}})};var Bl=e=>e?["useRewardVault",e.toLowerCase()]:null,ck= exports.useRewardVault =(e,t)=>{let r=Bl(e),o=_swr2.default.call(void 0, r,async([a,i])=>_chunkXFPTQMAKcjs.ca.call(void 0, {address:i}),{..._optionalChain([t, 'optionalAccess', _266 => _266.opts])}),n=_nullishCoalesce(_optionalChain([t, 'optionalAccess', _267 => _267.opts, 'optionalAccess', _268 => _268.isEnabled]), () => (((!!o.error||!o.isLoading)&&!o.data))),s=zo({address:e},{opts:{..._optionalChain([t, 'optionalAccess', _269 => _269.opts]),isEnabled:n}});return{data:_nullishCoalesce(s.data, () => (o.data)),error:_nullishCoalesce(s.error, () => (o.error)),isLoading:s.isLoading||o.isLoading,isValidating:_nullishCoalesce(s.isValidating, () => (o.isValidating)),refresh:()=>{o.mutate(),s.mutate()}}};function hk({address:e,stakingToken:t}){let r=_hooks.usePublicClient.call(void 0, ),n=_swr2.default.call(void 0, r&&e&&t?["useRewardVaultIncentives",e,t]:null,async([,s,a])=>(_chunkS74ZMG2Gcjs.c.call(void 0, r),await _chunkXFPTQMAKcjs.fa.call(void 0, {address:s,stakingToken:a,publicClient:r})));return{...n,refresh:()=>_optionalChain([n, 'optionalAccess', _270 => _270.mutate, 'optionalCall', _271 => _271()])}}var Ul=(e,t)=>{let r=_hooks.usePublicClient.call(void 0, ),n=_swr2.default.call(void 0, r&&e?["useRewardVaultRewards",e]:null,async([,s])=>(_chunkS74ZMG2Gcjs.c.call(void 0, r),await _chunkXFPTQMAKcjs.V.call(void 0, s,r)),{..._optionalChain([t, 'optionalAccess', _272 => _272.opts])});return{...n,refresh:()=>_optionalChain([n, 'optionalAccess', _273 => _273.mutate, 'optionalCall', _274 => _274()])}};var Sk=({range:e})=>{let r=_swr2.default.call(void 0, e?["useStakedBeraSnapshots",e]:null,([,o])=>_chunkXFPTQMAKcjs.ia.call(void 0, {range:o}));return{...r,refresh:()=>r.mutate()}};var Ql=(e,t)=>{let{address:r}=_hooks.useBeraWallet.call(void 0, ),o=_hooks.usePublicClient.call(void 0, ),n=r&&o&&e.vaultAddress?["useUserVaultInfo",r,e.vaultAddress]:null,s=_swr2.default.call(void 0, n,async([,a,i])=>(_chunkS74ZMG2Gcjs.c.call(void 0, o),_chunkXFPTQMAKcjs.oa.call(void 0, {account:a,vaultAddress:i,publicClient:o})),{...t,refreshInterval:_nullishCoalesce(_optionalChain([t, 'optionalAccess', _275 => _275.opts, 'optionalAccess', _276 => _276.refreshInterval]), () => (1e5))});return{...s,refresh:()=>s.mutate()}};var Fl=e=>{let{address:t}=_hooks.useBeraWallet.call(void 0, ),r=_hooks.usePublicClient.call(void 0, ),n=_swr2.default.call(void 0, t&&r?["useUserVaults",t]:null,async([,s])=>(_chunkS74ZMG2Gcjs.c.call(void 0, r),await _chunkXFPTQMAKcjs.pa.call(void 0, {account:s,publicClient:r})),{...e,refreshInterval:_nullishCoalesce(_optionalChain([e, 'optionalAccess', _277 => _277.opts, 'optionalAccess', _278 => _278.refreshInterval]), () => (1e5)),keepPreviousData:!0});return{...n,refresh:()=>_optionalChain([n, 'optionalAccess', _279 => _279.mutate, 'optionalCall', _280 => _280()])}};var Gk=e=>{let t=_hooks.usePublicClient.call(void 0, );return _swr2.default.call(void 0, e&&t?["useVaultAddress",e]:null,async([,o])=>{_chunkS74ZMG2Gcjs.c.call(void 0, t);let[n]=await Promise.all([_chunkXFPTQMAKcjs.ga.call(void 0, {address:o,publicClient:t})]);return{stakeToken:n,address:o}})};var $k=({vault:e,range:t,resolution:r})=>{let n=_swr2.default.call(void 0, e?["useVaultHistory",e,t,r]:null,([,s,a,i])=>_chunkXFPTQMAKcjs.qa.call(void 0, {vault:s,range:a,resolution:i}));return{...n,refresh:()=>n.mutate()}};var zl=(e,t)=>{let o=_swr2.default.call(void 0, e?["useVaultValidators",e]:null,async([,n])=>await _chunkXFPTQMAKcjs.ra.call(void 0, {address:n}),{..._optionalChain([t, 'optionalAccess', _281 => _281.opts])});return{...o,refresh:()=>o.mutate()}};function jo({address:e},t){let r=Ue({addressIn:e?[e]:void 0},t);return{...r,data:e?_optionalChain([r, 'access', _282 => _282.data, 'optionalAccess', _283 => _283[e.toLowerCase()]]):void 0}}function ow(e){return jo({address:_viem.zeroAddress},e)}function pw(e,t){let r=_hooks.usePublicClient.call(void 0, ),{address:o}=_hooks.useBeraWallet.call(void 0, ),{tokenList:n}=Ne(),s=_nullishCoalesce(_optionalChain([e, 'optionalAccess', _284 => _284.walletAddress]), () => (o)),a=_react.useMemo.call(void 0, ()=>new Map(_nullishCoalesce(_optionalChain([(_nullishCoalesce(_optionalChain([e, 'optionalAccess', _285 => _285.tokens]), () => (n))), 'optionalAccess', _286 => _286.map, 'call', _287 => _287(u=>[u.address.toLowerCase(),u])]), () => ([]))),[n,_optionalChain([e, 'optionalAccess', _288 => _288.tokens])]),i=r&&n!==void 0&&s?["usePollWalletBalances",s,Array.from(a.values())]:null,l=_swr2.default.call(void 0, i,async([,u,m])=>_chunkXFPTQMAKcjs.xa.call(void 0, {account:u,tokenList:m,publicClient:r}),{refreshInterval:1e5,..._optionalChain([t, 'optionalAccess', _289 => _289.opts])});return{...l,refresh:()=>_optionalChain([l, 'optionalAccess', _290 => _290.mutate, 'optionalCall', _291 => _291()])}}var Aw=(e,t)=>{let r=_hooks.usePublicClient.call(void 0, ),o=_optionalChain([e, 'optionalAccess', _292 => _292.address])&&r&&_viem.isAddress.call(void 0, e.address)?["useStakingTokenInformation",e.address]:null,n=_immutable2.default.call(void 0, o,async([s,a])=>_chunk22MQVFHPcjs.f.call(void 0, a,"BERA")?{address:_viem.zeroAddress,decimals:_chunk22MQVFHPcjs.c.decimals,name:_chunk22MQVFHPcjs.c.name,symbol:_chunk22MQVFHPcjs.c.symbol}:await Ye({address:a,publicClient:r}),{..._optionalChain([t, 'optionalAccess', _293 => _293.opts])});return{...n,refresh:()=>_optionalChain([n, 'optionalAccess', _294 => _294.mutate, 'optionalCall', _295 => _295()])}};function Pw({address:e}){let t=_hooks.usePublicClient.call(void 0, );return _swr2.default.call(void 0, e&&t?["useTotalSupply",e]:null,([,r])=>(_chunkS74ZMG2Gcjs.c.call(void 0, t),t.readContract({address:r,abi:_viem.erc20Abi,functionName:"totalSupply",args:[]})))}function xw(){let e=_chunk6VF3RF53cjs.m.call(void 0, ),{account:t}=_hooks.useBeraWagmi.call(void 0, ),r=_optionalChain([t, 'optionalAccess', _296 => _296.wallet, 'optionalAccess', _297 => _297.address]);return _react.useCallback.call(void 0, o=>{if(!r)throw new (0, _chunkJMKLDDKYcjs.g)({property:"address",value:r,expected:"Address"});e.addTransaction(r,o)},[e,r])}function Lw(){let e=_chunk6VF3RF53cjs.m.call(void 0, ),{address:t}=_hooks.useBeraWallet.call(void 0, ),[r,o]=_react.useState.call(void 0, ()=>e&&t?e.getTransactions(t):[]);return _react.useEffect.call(void 0, ()=>{if(e&&t)return o(e.getTransactions(t)),e.onChange(()=>{o(e.getTransactions(t))})},[e,t]),r}function Mw(e){let t=_hooks.usePublicClient.call(void 0, ),{config:r}=_chunk22MQVFHPcjs.b.call(void 0, {chainId:_optionalChain([t, 'optionalAccess', _298 => _298.chain, 'access', _299 => _299.id])}),{data:o,isLoading:n}=_hooks.useBlockNumber.call(void 0, {cacheTime:_chunkREDXXUK7cjs.e.call(void 0, r.averageBlockTime)}),{data:s}=_immutable2.default.call(void 0, o&&t&&Number(e)>0?["useBlockToTimestamp",e,o]:null,async([,i,l])=>(_chunkS74ZMG2Gcjs.c.call(void 0, t),_chunkXFPTQMAKcjs.T.call(void 0, {block:i,currentBlock:l,blockTime:a,publicClient:t}))),a=_chunk6VF3RF53cjs.n.call(void 0, );if(s)return Number(s.timestamp);if(!(n||!o))return Math.floor(_chunkREDXXUK7cjs.d.call(void 0, Date.now())+a*(Number(e)-Number(o)))}var ht={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{...ht};default:return e}};function Ru({onlyPermissionless:e,onSuccess:t,onError:r,onLoading:o,onWarning:n,onSubmission:s}={}){let[a,i]=_react.useReducer.call(void 0, Jo,ht),{account:l,onSmartAccountRejection:u}=_hooks.useBeraWagmi.call(void 0, ),m=_hooks.useConfig.call(void 0, ),p=_optionalChain([l, 'optionalAccess', _300 => _300.wallet, 'optionalAccess', _301 => _301.isContract])?6e4*10:12e4,d=_react.useCallback.call(void 0, ()=>{i({type:"confirm_reset"})},[]),c=_chunk6VF3RF53cjs.c.call(void 0, "enableSimulateCalls"),f=_react.useCallback.call(void 0, g=>{if(e&&!g.permissionless){let A=new (0, _chunkS74ZMG2Gcjs.g)({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:g});throw _optionalChain([n, 'optionalCall', _302 => _302(A,g)]),_optionalChain([r, 'optionalCall', _303 => _303(A,g)]),A}return _chunkXFPTQMAKcjs.za.call(void 0, {wagmiConfig:m,...g,txConfirmationTimeout:p,enableSimulateCalls:c,onLoading(...A){i({type:"confirm_sending"}),_optionalChain([g, 'access', _304 => _304.onLoading, 'optionalCall', _305 => _305(g)]),_optionalChain([o, 'optionalCall', _306 => _306(...A)])},onWarning(...A){_optionalChain([g, 'access', _307 => _307.onWarning, 'optionalCall', _308 => _308(A[0],g)]),_optionalChain([n, 'optionalCall', _309 => _309(...A)])},onSubmission(...A){i({type:"confirm_submitting"}),_optionalChain([g, 'access', _310 => _310.onSubmission, 'optionalCall', _311 => _311(A[0],g)]),_optionalChain([s, 'optionalCall', _312 => _312(...A)])},onSuccess(...A){i({type:"confirm_receipt"}),_optionalChain([g, 'access', _313 => _313.onSuccess, 'optionalCall', _314 => _314(A[0],g)]),_optionalChain([t, 'optionalCall', _315 => _315(...A)])},onError(...A){i({type:"confirm_error"}),_optionalChain([g, 'access', _316 => _316.onError, 'optionalCall', _317 => _317(A[0],g)]),A[0].reason==="AtomicReadyWalletRejectedUpgradeError"&&u(),_optionalChain([r, 'optionalCall', _318 => _318(...A)])}})},[m,o,n,s,t,r,e,c]);return{isLoading:a.confirmState==="loading",isSubmitting:a.confirmState==="submitting",isSuccess:a.confirmState==="success",isError:a.confirmState==="fail",write:f,reset:d}}var ku=Ru;async function Cu(e){let t=await _chunkREDXXUK7cjs.c.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 iP=e=>_immutable2.default.call(void 0, e&&_viem.isAddress.call(void 0, e)&&e!==_viem.zeroAddress?["useGetVerifiedAbi",e]:null,()=>e?Cu(e):Promise.resolve(""),{});function pP({key:e,defaultValue:t}){let r=_react.useCallback.call(void 0, ()=>{if(typeof window>"u")return t;let a=_optionalChain([window, 'access', _319 => _319.history, 'access', _320 => _320.state, 'optionalAccess', _321 => _321[e]]);return a!==void 0?a:t},[e,t]),[o,n]=_react.useState.call(void 0, r()),s=_react.useCallback.call(void 0, a=>{let i=r(),l=a instanceof Function?a(i):a,m={...window.history.state||{},[e]:l};window.history.replaceState(m,""),n(l)},[e,r]);return _react.useEffect.call(void 0, ()=>{if(_optionalChain([window, 'access', _322 => _322.history, 'access', _323 => _323.state, 'optionalAccess', _324 => _324[e]])===void 0){let l={...window.history.state||{},[e]:t};window.history.replaceState(l,"")}},[e,t]),[o,s]}function cP(e){let t=_react.useRef.call(void 0, void 0);return _react.useEffect.call(void 0, ()=>{t.current=e}),t.current}var Ou=({variables:e}={})=>["useAllValidators",e],bP= exports.useAllValidators =(e,t)=>{let{config:r}=_chunk22MQVFHPcjs.b.call(void 0, e),o=_swr2.default.call(void 0, Ou({variables:e}),async([,n])=>await _chunkXFPTQMAKcjs.Ba.call(void 0, {variables:{chain:r.bex.chainName,...n}}),{refreshInterval:18e4,..._optionalChain([t, 'optionalAccess', _325 => _325.opts])});return{...o,refresh:()=>o.mutate()}};function wP({allocation:e}){return _swr2.default.call(void 0, e?["useApiEnrichedAllocation",e]:null,([,t])=>_chunkXFPTQMAKcjs.Ca.call(void 0, {allocation:t}))}var Uu=e=>e?["useApiValidator",e]:null,tn= exports.useApiValidator =(e,t)=>{let r=Uu(e),o=_nullishCoalesce(_optionalChain([t, 'optionalAccess', _326 => _326.opts, 'optionalAccess', _327 => _327.isEnabled]), () => (!0)),n=_swr2.default.call(void 0, o&&e?r:null,async([,s])=>{if(!s||!_viem.isHex.call(void 0, s))throw new Error(`Invalid validator ID: ${s}`);return _chunkXFPTQMAKcjs.Da.call(void 0, {id:s})},{..._optionalChain([t, 'optionalAccess', _328 => _328.opts])});return{...n,refresh:()=>n.mutate()}};var rn=[{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 on({publicClient:e,...t}){let{config:r}=_chunk22MQVFHPcjs.b.call(void 0, t),o=await e.readContract({abi:rn,address:r.pol.rewardAllocationFactory,functionName:"getBaselineAllocation"}),n=o.startBlock!==0n?await e.getBlock({blockNumber:o.startBlock}):{timestamp:0};return _chunkXFPTQMAKcjs.Fa.call(void 0, o,Number(n.timestamp))}function HP(){let e=_hooks.usePublicClient.call(void 0, );return _swr2.default.call(void 0, e?["baselineRewardAllocation"]:null,()=>(_chunkS74ZMG2Gcjs.c.call(void 0, e),on({publicClient:e})))}var _u=({pubKey:e,first:t=1})=>{let o=_swr2.default.call(void 0, e?["useDailyValidatorBlockStats",e,t]:null,async([,n,s])=>await _chunkXFPTQMAKcjs.Ea.call(void 0, {pubKey:n,first:s}),{refreshInterval:18e4});return{...o,refresh:()=>o.mutate()}};function Mu(e){let t=_hooks.usePublicClient.call(void 0, ),o=_swr2.default.call(void 0, t?["useDefaultRewardAllocation"]:null,async()=>(_chunkS74ZMG2Gcjs.c.call(void 0, t),await _chunkXFPTQMAKcjs.Ja.call(void 0, {client:t})),{..._optionalChain([e, 'optionalAccess', _329 => _329.opts])});return{...o,refresh:()=>o.mutate()}}var Fu=({account:e},t)=>{let o=_immutable2.default.call(void 0, e?["useManagedValidatorByAccount",e]:null,async([,n])=>await _chunkXFPTQMAKcjs.Ka.call(void 0, {account:n}),{..._optionalChain([t, 'optionalAccess', _330 => _330.opts])});return{...o,refresh:()=>o.mutate()}};async function nn({client:e,pubKey:t,...r}){let{config:o}=_chunk22MQVFHPcjs.b.call(void 0, r);try{let n=await e.readContract({address:o.pol.beraChef,abi:_chunkEU4WFADKcjs.c,functionName:"valRewardAllocator",args:[t]});return n===_viem.zeroAddress?null:n}catch(n){throw console.log("getValidatorRewardAllocatorAddress:",n),n}}function an(e,t){return!e||!t?!1:_optionalChain([t, 'access', _331 => _331.operator, 'optionalAccess', _332 => _332.toLowerCase, 'call', _333 => _333()])===e.toLowerCase()}function zu(e,t){return!e||!t?!1:t.rewardAllocator?t.rewardAllocator.toLowerCase()===e.toLowerCase():an(e,t)}function ju({pubKey:e,account:t},r){let o=_hooks.usePublicClient.call(void 0, ),n=_chunk6VF3RF53cjs.c.call(void 0, "mockValidatorOperator"),s=_chunk6VF3RF53cjs.c.call(void 0, "mockValidatorRewardAllocator"),a=o&&e?["useManagedValidatorRole",e]:null,{address:i}=_hooks.useBeraWallet.call(void 0, ),l=_nullishCoalesce(t, () => (i)),u=_swr2.default.call(void 0, a,async([,d])=>{_chunkS74ZMG2Gcjs.c.call(void 0, o);let[c,f]=await Promise.all([_chunkXFPTQMAKcjs.Sa.call(void 0, {client:o,pubKey:d}),nn({client:o,pubKey:d})]);return{operator:_nullishCoalesce(c, () => (null)),rewardAllocator:f}},{..._optionalChain([r, 'optionalAccess', _334 => _334.opts])}),m=_react.useMemo.call(void 0, ()=>n||an(l,u.data),[l,n,u.data]),p=_react.useMemo.call(void 0, ()=>s||zu(l,u.data),[l,s,u.data]);return{...u,data:u.data?{...u.data,hasOperatorRole:m,hasRewardAllocatorRole:p}:void 0,refresh:()=>u.mutate()}}var ln=({pubkey:e},t)=>{let r=_hooks.usePublicClient.call(void 0, ),o=e?["useOnChainValidator",e]:null,n=_nullishCoalesce(_optionalChain([t, 'access', _335 => _335.opts, 'optionalAccess', _336 => _336.isEnabled]), () => (!0)),s=_swr2.default.call(void 0, n&&r?o:null,async([,a])=>{_chunkS74ZMG2Gcjs.c.call(void 0, r);let{config:i}=_chunk22MQVFHPcjs.b.call(void 0, {chainId:r.chain.id}),[l,u,m]=await Promise.all([r.readContract({address:i.depositContract,abi:_chunkEU4WFADKcjs.r,functionName:"getOperator",args:[a]}),_optionalChain([r, 'optionalAccess', _337 => _337.readContract, 'call', _338 => _338({address:i.tokens.bgt,abi:_chunkEU4WFADKcjs.m,functionName:"boostees",args:[a]})]),r.readContract({address:i.pol.beraChef,abi:_chunkEU4WFADKcjs.c,functionName:"getActiveRewardAllocation",args:[a]})]);return{id:_viem.keccak256.call(void 0, a),pubkey:a,operator:l,votingPower:Number(u)}});return{...s,refresh:()=>{s.mutate()}}};var kT=({valPubKey:e,options:t})=>{let r=_hooks.usePublicClient.call(void 0, ),n=(_nullishCoalesce(_optionalChain([t, 'optionalAccess', _339 => _339.opts, 'optionalAccess', _340 => _340.isEnabled]), () => (!0)))&&r&&e?["useStakingPoolBatch",e]:null,s=_swr2.default.call(void 0, n,async([,a])=>(_chunkS74ZMG2Gcjs.c.call(void 0, r),await _chunkXFPTQMAKcjs.La.call(void 0, {client:r,valPubKey:a})),{refreshInterval:1e4,..._optionalChain([t, 'optionalAccess', _341 => _341.opts])});return{...s,refresh:()=>s.mutate()}};var _subgraph3 = require('@berachain/graphql/pol/subgraph');var ap=({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([,n])=>{let s=_chunkXFPTQMAKcjs.c.call(void 0, "pol.subgraph",{}),{data:a}=await s.query({query:_subgraph3.GetUserValidatorInformation,variables:{address:n}});return a.userValidatorInformations})};var pp=e=>{let{address:t}=_hooks.useBeraWallet.call(void 0, ),r=_hooks.usePublicClient.call(void 0, ),n=_swr2.default.call(void 0, r&&t?["useUserActiveValidators",t]:null,async([,s])=>await _chunkXFPTQMAKcjs.Na.call(void 0, {account:s,publicClient:r}),{...e,refreshInterval:_nullishCoalesce(_optionalChain([e, 'optionalAccess', _342 => _342.opts, 'optionalAccess', _343 => _343.refreshInterval]), () => (18e4)),keepPreviousData:!0});return{...n,refresh:()=>_optionalChain([n, 'optionalAccess', _344 => _344.mutate, 'optionalCall', _345 => _345()])}};var fp=({pubkey:e,...t})=>{let{address:r}=_hooks.useBeraWallet.call(void 0, ),o=_hooks.usePublicClient.call(void 0, ),n=_nullishCoalesce(t.account, () => (r)),a=_swr2.default.call(void 0, n&&e?["useUserBoostsOnValidator",e,n]:null,async([,i,l])=>await _chunkXFPTQMAKcjs.Ma.call(void 0, {account:l,pubkey:i,publicClient:o}),{refreshInterval:1e5});return{...a,refresh:()=>a.mutate()}};var un=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 bp=()=>{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, _chunkJMKLDDKYcjs.f)({message:"useUserClaimableIncentives needs a logged in account",level:"error"});return await _chunkXFPTQMAKcjs.ma.call(void 0, {account:l})},{revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateIfStale:!1,refreshInterval:18e4}),o=_optionalChain([r, 'optionalAccess', _346 => _346.data]),n=_react.useMemo.call(void 0, ()=>{if(o){if(!Array.isArray(o)){mn.captureException(new (0, _chunkJMKLDDKYcjs.f)({message:"Incorrect aggregated incentives data receieved.",level:"error"}),{extra:{allRewards:o,account:e}});return}return un(o)}},[o,e]),a=_swr2.default.call(void 0, e&&o?["useUserClaimableIncentives",e,o]:null,async([,l,u])=>{if(!l)throw new (0, _chunkJMKLDDKYcjs.g)({property:"account",value:l,expected:"Address"});if(!u)return[];if(!Array.isArray(u))throw new (0, _chunkJMKLDDKYcjs.g)({message:"Incorrect aggregated incentives data receieved to calculate proofs.",property:"allRewards",value:u,expected:"Array",level:"error"});let m=new Set(u.map(d=>d.validator)),p=Array.from(m);return await Promise.all(p.map(async d=>({...await _chunkXFPTQMAKcjs.aa.call(void 0, {account:l,validator:d,page:1,perPage:1e4}),validator:d})))},{revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateIfStale:!1,refreshInterval:18e4}),i=_react.useCallback.call(void 0, ()=>{_optionalChain([r, 'optionalAccess', _347 => _347.mutate, 'call', _348 => _348()]),_optionalChain([a, 'optionalAccess', _349 => _349.mutate, 'call', _350 => _350()])},[r,a]);return{...a,isLoading:_optionalChain([r, 'optionalAccess', _351 => _351.isLoading])||_optionalChain([a, 'optionalAccess', _352 => _352.isLoading]),tokenMap:n,refresh:i}};var $T=({account:e,validatorAddress:t})=>{let o=_immutable2.default.call(void 0, e?["useUserStakingPositions",e,t]:null,async([n,s,a])=>{let i=await _chunkXFPTQMAKcjs.Oa.call(void 0, s);return a?i.filter(l=>l.validatorAddress.toLowerCase()===a.toLowerCase()):i});return{...o,refresh:()=>{o.mutate()}}};function XT({pubkey:e},t){let{data:{validator:r,uptime:o}={},isLoading:n,error:s}=tn(_viem.keccak256.call(void 0, e),t),{data:a,isLoading:i,error:l}=ln({pubkey:e},t);return{data:{uptime:o,validator:r||a?{...r,...a,operator:_nullishCoalesce(_optionalChain([a, 'optionalAccess', _353 => _353.operator]), () => (_optionalChain([r, 'optionalAccess', _354 => _354.operator]))),dynamicData:{activeBoostAmount:_nullishCoalesce(_nullishCoalesce(_optionalChain([a, 'optionalAccess', _355 => _355.dynamicData, 'optionalAccess', _356 => _356.activeBoostAmount]), () => (_optionalChain([r, 'optionalAccess', _357 => _357.dynamicData, 'optionalAccess', _358 => _358.activeBoostAmount]))), () => ("")),queuedBoostAmount:_nullishCoalesce(_optionalChain([r, 'optionalAccess', _359 => _359.dynamicData, 'optionalAccess', _360 => _360.queuedBoostAmount]), () => ("")),usersActiveBoostCount:_nullishCoalesce(_optionalChain([r, 'optionalAccess', _361 => _361.dynamicData, 'optionalAccess', _362 => _362.usersActiveBoostCount]), () => (0)),usersQueuedBoostCount:_nullishCoalesce(_optionalChain([r, 'optionalAccess', _363 => _363.dynamicData, 'optionalAccess', _364 => _364.usersQueuedBoostCount]), () => (0)),allTimeDistributedBGTAmount:_nullishCoalesce(_optionalChain([r, 'optionalAccess', _365 => _365.dynamicData, 'optionalAccess', _366 => _366.allTimeDistributedBGTAmount]), () => ("0")),rewardRate:_nullishCoalesce(_nullishCoalesce(_optionalChain([a, 'optionalAccess', _367 => _367.dynamicData, 'optionalAccess', _368 => _368.rewardRate]), () => (_optionalChain([r, 'optionalAccess', _369 => _369.dynamicData, 'optionalAccess', _370 => _370.rewardRate]))), () => ("")),stakedBeraAmount:_nullishCoalesce(_optionalChain([r, 'optionalAccess', _371 => _371.dynamicData, 'optionalAccess', _372 => _372.stakedBeraAmount]), () => ("")),lastDayDistributedBGTAmount:_nullishCoalesce(_optionalChain([r, 'optionalAccess', _373 => _373.dynamicData, 'optionalAccess', _374 => _374.lastDayDistributedBGTAmount]), () => ("")),activeBoostAmountRank:_nullishCoalesce(_optionalChain([r, 'optionalAccess', _375 => _375.dynamicData, 'optionalAccess', _376 => _376.activeBoostAmountRank]), () => (0)),boostApr:_nullishCoalesce(_optionalChain([r, 'optionalAccess', _377 => _377.dynamicData, 'optionalAccess', _378 => _378.boostApr]), () => (0)),commissionOnIncentives:_nullishCoalesce(_optionalChain([r, 'optionalAccess', _379 => _379.dynamicData, 'optionalAccess', _380 => _380.commissionOnIncentives]), () => (0))},id:_nullishCoalesce(_optionalChain([a, 'optionalAccess', _381 => _381.id]), () => (_optionalChain([r, 'optionalAccess', _382 => _382.id]))),pubkey:_nullishCoalesce(_optionalChain([a, 'optionalAccess', _383 => _383.pubkey]), () => (_optionalChain([r, 'optionalAccess', _384 => _384.pubkey]))),metadata:_nullishCoalesce(_optionalChain([a, 'optionalAccess', _385 => _385.metadata]), () => (_optionalChain([r, 'optionalAccess', _386 => _386.metadata]))),rewardAllocationWeights:_nullishCoalesce(_nullishCoalesce(_optionalChain([a, 'optionalAccess', _387 => _387.rewardAllocationWeights]), () => (_optionalChain([r, 'optionalAccess', _388 => _388.rewardAllocationWeights]))), () => ([]))}:null},isLoading:n||i,error:s||l}}function wp({pubkey:e,dayRange:t}){let o=_swr2.default.call(void 0, e&&t?["useValidatorAnalytics",e,t]:null,async([,n,s])=>await _chunkXFPTQMAKcjs.Pa.call(void 0, {pubkey:n,dayRange:s}),{refreshInterval:18e4});return{...o,refresh:()=>o.mutate()}}var Ip=(e,t)=>{let r=_hooks.usePublicClient.call(void 0, ),n=_swr2.default.call(void 0, r&&e?["useValidatorCommission",e]:null,async([,s])=>await _chunkXFPTQMAKcjs.Qa.call(void 0, {client:r,pubKey:s}),{..._optionalChain([t, 'optionalAccess', _389 => _389.opts])});return{...n,refresh:()=>n.mutate()}};var Cp=e=>{let{data:t,isLoading:r}=$o(),o=_chunk6VF3RF53cjs.n.call(void 0, );return{data:t?_chunkXFPTQMAKcjs.Ra.call(void 0, e,Number(_optionalChain([t, 'optionalAccess', _390 => _390.totalStakedBeraAmount])),o):void 0,isLoading:r}};function xp(e,t){let r=_hooks.usePublicClient.call(void 0, ),n=_swr2.default.call(void 0, r&&e?["useValidatorQueuedCommission",e]:null,async([,s])=>(_chunkS74ZMG2Gcjs.c.call(void 0, r),await _chunkXFPTQMAKcjs.Ta.call(void 0, {client:r,pubKey:s})),{..._optionalChain([t, 'optionalAccess', _391 => _391.opts])});return{...n,refresh:()=>n.mutate()}}var Op=(e,t)=>{let r=_hooks.usePublicClient.call(void 0, ),n=_swr2.default.call(void 0, r&&e?["useValidatorQueuedOperatorAddress",e]:null,async([,s])=>await _chunkXFPTQMAKcjs.Ua.call(void 0, {client:r,pubKey:s}),{..._optionalChain([t, 'optionalAccess', _392 => _392.opts])});return{...n,refresh:()=>n.mutate()}};var Np=(e,t)=>{let r=_hooks.usePublicClient.call(void 0, ),n=_swr2.default.call(void 0, r&&e?["useValidatorQueuedRewardAllocation",e]:null,async([,s])=>await _chunkXFPTQMAKcjs.Va.call(void 0, {client:r,pubKey:s}),{..._optionalChain([t, 'optionalAccess', _393 => _393.opts])});return{...n,refresh:()=>n.mutate()}};function Vp(e,t){let r=_hooks.usePublicClient.call(void 0, ),n=_swr2.default.call(void 0, r&&e?["useValidatorRewardAllocation",e]:null,async([,s])=>await _chunkXFPTQMAKcjs.Ha.call(void 0, {client:r,pubKey:s}),{..._optionalChain([t, 'optionalAccess', _394 => _394.opts])});return{...n,refresh:()=>n.mutate()}}exports.OracleMode = jn; exports.TransactionStoreProvider = _chunk6VF3RF53cjs.l; exports.USE_AGGREGATORS_QUOTES_QUERY_KEY = Un; exports.convertLegacyDataToNewData = _chunk6VF3RF53cjs.h; exports.createTransactionStore = _chunk6VF3RF53cjs.k; exports.filterDuplicatefn = _chunk6VF3RF53cjs.i; exports.mergeData = _chunk6VF3RF53cjs.j; exports.reducer = qo; exports.safeParseJsonData = _chunk6VF3RF53cjs.g; exports.useAddRecentTransaction = xw; exports.useAggregatorsQuotes = Yd; exports.useAggregatorsRouterFeeBps = Zr; exports.useAllUserPools = zr; exports.useAllUserPoolsQueryKey = Qn; exports.useAllValidators = bP; exports.useAllValidatorsQueryKey = Ou; exports.useApiEnrichedAllocation = wP; exports.useApiPool = jr; exports.useApiPoolQueryKey = Gn; exports.useApiValidator = tn; exports.useApiValidatorQueryKey = Uu; exports.useBaselineRewardAllocation = HP; exports.useBendTransactionRequests = yy; exports.useBendTransactionRequestsHelper = vo; exports.useBeraContractWrite = ku; exports.useBeraCurrentPrice = ow; exports.useBexStatus = _chunk6VF3RF53cjs.e; exports.useBgtAprSimulation = jh; exports.useBgtUnstakedBalance = el; exports.useBlockToTimestamp = Mw; exports.useCappedGlobally = Vo; exports.useCappedRelatively = Wo; exports.useClaimableFees = sl; exports.useCollateralWeights = Wb; exports.useCreatePool = hc; exports.useCreateProposal = La; exports.useDailyValidatorBlockStats = _u; exports.useDefaultRewardAllocation = Mu; exports.useEarnedStakedBeraVault = AR; exports.useEnsoZap = ie; exports.useExploitedTokens = vc; exports.useExploitedTokensQueryKey = is; exports.useGetConvertToAssets = zp; exports.useGetPastVotes = $y; exports.useGetVerifiedAbi = iP; exports.useGlobalLiquidityAndSwapVolume = us; exports.useHasVoted = rA; exports.useHighestVaultsAPR = IR; exports.useHistoryState = pP; exports.useHoneyAlerts = yh; exports.useHoneyBalances = _o; exports.useHoneyChartData = Rh; exports.useHoneyGlobalData = Ih; exports.useHoneySwapState = _h; exports.useHoneyVaultsBalance = Qo; exports.useIsBadCollateralAsset = Yo; exports.useIsBasketModeEnabled = Fo; exports.useIsCanceller = mA; exports.useLiquidityMismatch = Vc; exports.useLpPosition = Rf; exports.useManagedValidatorByAccount = Fu; exports.useManagedValidatorRole = ju; exports.useMultipleTokenApprovalsWithSlippage = Qs; exports.useMultipleTokenInformation = fo; exports.useOnChainPoolData = go; exports.useOnChainPoolDataQueryKey = Js; exports.useOnChainValidator = ln; exports.usePollAllProposals = AA; exports.usePollAllProposalsQueryKey = Ja; exports.usePollAllowances = po; exports.usePollBalance = io; exports.usePollGlobalData = $o; exports.usePollMarkets = LR; exports.usePollMarketsQueryKey = Al; exports.usePollPoolCreationRelayerApproval = ra; exports.usePollProposal = IA; exports.usePollProposalThreshold = OA; exports.usePollProposalVotes = UA; exports.usePollProposalVotesQueryKey = ai; exports.usePollUserDelegates = GA; exports.usePollWalletBalances = pw; exports.usePool = cg; exports.usePoolEvents = Ag; exports.usePoolHistoricalData = wg; exports.usePools = xg; exports.usePoolsQueryKey = pa; exports.usePrevious = cP; exports.useProposalFromTx = ZA; exports.useProposalSnapshot = Do; exports.useProposalState = tb; exports.useProposalTimelockState = ib; exports.usePythLatestPrices = ee; exports.usePythUpdateFee = qh; exports.useQueuedBeraUnlock = QR; exports.useQuorum = Ab; exports.useRecentTransactions = Lw; exports.useRewardTokenToBeraRate = $R; exports.useRewardVault = ck; exports.useRewardVaultBalanceFromStakingToken = no; exports.useRewardVaultFromToken = ct; exports.useRewardVaultIncentives = hk; exports.useRewardVaultQueryKey = Bl; exports.useRewardVaultRewards = Ul; exports.useRewardVaults = bt; exports.useRewardVaultsQueryKey = ml; exports.useStakedBeraSnapshots = Sk; exports.useStakingPoolBatch = kT; exports.useStakingTokenInformation = Aw; exports.useSubgraphPoolQueryKey = sa; exports.useSubgraphUserValidators = ap; exports.useTokenCurrentPrice = jo; exports.useTokenCurrentPrices = Ue; exports.useTokenInformation = so; exports.useTokens = Ne; exports.useTotalSupply = Pw; exports.useTransactionStore = _chunk6VF3RF53cjs.m; exports.useUserActiveValidators = pp; exports.useUserBoostsOnValidator = fp; exports.useUserClaimableIncentives = bp; exports.useUserStakingPositions = $T; exports.useUserVaultInfo = Ql; exports.useUserVaults = Fl; exports.useValidator = XT; exports.useValidatorAnalytics = wp; exports.useValidatorCommission = Ip; exports.useValidatorEstimatedBgtPerYear = Cp; exports.useValidatorQueuedCommission = xp; exports.useValidatorQueuedOperatorAddress = Op; exports.useValidatorQueuedRewardAllocation = Np; exports.useValidatorRewardAllocation = Vp; exports.useVaultAddress = Gk; exports.useVaultHistory = $k; exports.useVaultValidators = zl; exports.useZapTransactionRequests = ky;
|
|
4
|
-
//# sourceMappingURL=index.cjs.map
|
package/dist/hooks/index.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/pong/coding/monobera/packages/berajs/dist/hooks/index.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.ts","../../src/hooks/dex/useLiquidityMismatch.ts","../../src/hooks/tokens/useMultipleTokenInformation.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","args","balancerApi","BalancerApi","tokenIn","tokenOut","tokenInDecimals","tokenOutDecimals","amount","slippage","account","zeroAddress","InvalidArgumentError","wberaIsBera","tokenInV3","Token","tokenOutV3","tokenAmount","TokenAmount","RequestError","swap","Swap","queryOutput","formattedQuote","callData","Slippage","params","functionName","decodeFunctionData","balancerVaultAbi","bex","RedeemBgtAggregator","bgtRedeem","EnsoAggregator","aggregatorsFeeBps","proxyAggregatorsThroughVercel","rewardVault","tokenInAddress","tokenOutAddress","isTokenInNative","isTokenOutNative","inputAmountAfterFees"],"mappings":"AAAA,82DAAgI,yDAA4oB,yDAAkE,yDAAwF,iCAA8B,iCAA8B,yDAAiF,yDAA2F,yDAAgE,yDAA0C,yDAAiD,oECAtxC,+CAEa,IAMnBA,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,CCzCA,8BAAwB,4BAEiD,sDAE1C,iECIxB,yKACiB,2CAGO,IAkBzBK,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,CACNC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACM,CAEN,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,qEACJ,CAAC,CAAA,CACM,EAAA,CAAA,gBAAA,CAAiBD,CAAAA,CAAO,CAC7B,KAAA,CAAO,SAAA,CACP,KAAA,CAAO,CACL,kBAAA,CAAAF,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,CACH,CACF,CAEA,MAAM,QAAA,CAASM,CAAAA,CAA4D,CACzE,IAAMC,CAAAA,CAAc,IAAIC,wBAAAA,CACtB,IAAA,CAAK,GAAA,CAEL,IAAA,CAAK,OACP,CAAA,CACM,CACJ,OAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,eAAA,CAAAC,CAAAA,CACA,gBAAA,CAAAC,CAAAA,CACA,MAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CAAUC,iBAAAA,CACV,YAAA,CAAArC,CACF,CAAA,CAAI2B,CAAAA,CAKJ,EAAA,CAJA,IAAA,CAAK,iBAAA,CAAkB,CAAA,CAEvBtB,iCAAAA,CAA+B,CAAA,CAE3B,CAAC2B,CAAAA,CACH,MAAM,IAAIM,wBAAAA,CAAqB,CAC7B,QAAA,CAAU,iBAAA,CACV,KAAA,CAAON,CAAAA,CACP,QAAA,CAAU,QAAA,CACV,OAAA,CAAS,IAAA,CAAK,OAChB,CAAC,CAAA,CAGH,EAAA,CAAI,CAACC,CAAAA,CACH,MAAM,IAAIK,wBAAAA,CAAqB,CAC7B,QAAA,CAAU,kBAAA,CACV,KAAA,CAAOL,CAAAA,CACP,QAAA,CAAU,QAAA,CACV,OAAA,CAAS,IAAA,CAAK,OAChB,CAAC,CAAA,CAGH,IAAMM,CAAAA,CAAcvB,iCAAAA,CAAQc,CAAS,MAAM,CAAA,EAAKd,iCAAAA,CAAQe,CAAU,MAAM,CAAA,CAGlES,CAAAA,CAAY,IAAIC,uBAAAA,CACpB,IAAA,CAAK,OAAA,CACL,IAAA,CAAK,oBAAA,CAAqBX,CAAkB,CAAA,CAC5CE,CACF,CAAA,CACMU,CAAAA,CAAa,IAAID,uBAAAA,CACrB,IAAA,CAAK,OAAA,CACL,IAAA,CAAK,oBAAA,CAAqBV,CAAmB,CAAA,CAC7CE,CACF,CAAA,CAEMU,CAAAA,CAAcC,wBAAAA,CAAY,aAAA,CAC9BJ,CAAAA,CACAN,CACF,CAAA,CAGM,CACJ,KAAA,CAAOf,CAAAA,CACP,WAAA,CAAAF,CAAAA,CACA,YAAA,CAAcG,CAChB,CAAA,CAAmB,MAAMQ,CAAAA,CAAY,YAAA,CAAa,iBAAA,CAAkB,CAElE,OAAA,CAAS,IAAA,CAAK,OAAA,CACd,OAAA,CAASY,CAAAA,CAAU,OAAA,CACnB,QAAA,CAAUE,CAAAA,CAAW,OAAA,CACrB,QAAA,CAAAjC,EAAAA,CACA,UAAA,CAAYkC,CACd,CAAC,CAAA,CAED,EAAA,CAAI,iBAACxB,CAAAA,6BAAU,QAAA,CACb,MAAM,IAAI0B,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,CAAQjC,mBAAAA,CAAe,qBAAA,CACvB,OAAA,CAAS,IAAA,CAAK,OAAA,CACd,OAAA,CAAS,CACP,OAAA,CAAS4B,CAAAA,CAAU,OAAA,CACnB,QAAA,CAAUE,CAAAA,CAAW,OAAA,CACrB,QAAA,CAAAjC,EAAAA,CACA,UAAA,CAAYkC,CACd,CAAA,CACA,OAAA,CAAS,0CACX,CAAC,CAAA,CAIH,IAAMG,CAAAA,CAAO,IAAIC,sBAAAA,CAAK,CACpB,OAAA,CAAS,IAAA,CAAK,OAAA,CACd,KAAA,CAAO5B,CAAAA,CACP,QAAA,CAAAV,EAAAA,CACA,QAAA,CAAU,IACZ,CAAC,CAAA,CACKuC,CAAAA,CAAc,MAAMF,CAAAA,CAAK,KAAA,CAAM9C,CAAAA,CAAa,SAAA,CAAU,GAAG,CAAA,CAE/D,EAAA,CAAI,CAAA,CAAE,mBAAA,GAAuBgD,CAAAA,CAAAA,CAC3B,MAAM,IAAI,KAAA,CAAM,oBAAoB,CAAA,CAGtC,IAAA,CAAK,gBAAA,CACHA,CAAAA,CAAY,iBAAA,CACZ7B,CAAAA,CACAC,CAAAA,CACAO,CACF,CAAA,CAGA,IAAMsB,CAAAA,CAAiB,CACrB,SAAA,CAAWD,CAAAA,CAAY,iBAAA,CAAkB,MAAA,CAAO,QAAA,CAAS,CAAA,CACzD,QAAA,CAAUd,CAAAA,CACV,OAAA,CAASc,CAAAA,CAAY,EAAA,CACrB,IAAA,CAAM,IAAA,CAAK,IAAA,CACX,qBAAA,CAAuB,IAAA,CAAK,oBAAA,CAAqB/B,CAAW,CAAA,CAC5D,UAAA,CAAY,CACd,CAAA,CACA,EAAA,CAAImB,CAAAA,GAAYC,iBAAAA,CAAa,OAAOY,CAAAA,CAGpC,IAAMC,CAAAA,CAAWJ,CAAAA,CAAK,SAAA,CAAU,CAC9B,QAAA,CAAUK,qBAAAA,CAAS,cAAA,CAAehB,CAAAA,CAAS,QAAA,CAAS,CAAgB,CAAA,CACpE,QAAA,CAAU,MAAA,CAAO,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,GAAA,CAAI,CAAA,CAAI,GAAI,CAAA,CAAI5B,EAAgB,CAAA,CACjE,WAAA,CAAAyC,CAAAA,CACA,MAAA,CAAQZ,CAAAA,CACR,SAAA,CAAWA,CAAAA,CACX,SAAA,CAAWG,CACb,CAAC,CAAA,CAEK,CAAE,IAAA,CAAMa,CAAAA,CAAQ,YAAA,CAAAC,CAAa,CAAA,CAAIC,sCAAAA,CACrC,GAAA,CAAKC,mBAAAA,CACL,IAAA,CAAML,CAAAA,CAAS,QACjB,CAAC,CAAA,CAED,MAAO,CACL,GAAGD,CAAAA,CACH,QAAA,CAAU,CACR,MAAA,CAAAG,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,UAAA,CAEaM,EAAAA,CAAM,IAAI7C,EAAAA,CC9PvB,IAWM8C,EAAAA,YAAN,MAAA,QAAkC7C,mBAAe,2KAC/C,IAAA,CAAA,YAAA,gBACA,eAAA,CAAkB,CAACC,iBAAAA,CAAQ,OAAA,CAASA,iBAAAA,CAAQ,OAAO,EAAA,gBAC1C,IAAA,CAAO,MAAA,MAEV,QAAA,CAAS,CACb,OAAA,CAAAiB,CAAAA,CACA,MAAA,CAAAI,CACF,CAAA,CAGiC,CAG/B,EAAA,CAFA,IAAA,CAAK,iBAAA,CAAkB,CAAA,CAEnB,CAAClB,iCAAAA,CAAQc,CAAS,KAAA,CAAO,CAAE,MAAA,CAAQ,IAAA,CAAK,MAAO,CAAC,CAAA,CAClD,MAAM,IAAIQ,wBAAAA,CAAqB,CAC7B,QAAA,CAAU,SAAA,CACV,KAAA,CAAOR,CAAAA,CACP,QAAA,CAAU,KAAA,CACV,KAAA,CAAO,SACT,CAAC,CAAA,CAGH,MAAO,CACL,SAAA,CAAWI,CAAAA,CACX,QAAA,CAAUA,CAAAA,CACV,OAAA,CAAS,KAAA,CAAA,CACT,IAAA,CAAA,WAAA,CACA,YAAA,CAAc,CAAA,CAAA,CACd,UAAA,CAAY,CAKd,CACF,CACF,WAAA,CAEawB,EAAAA,CAAY,IAAID,EAAAA,CCjD7B,IAYME,EAAAA,YAAN,MAAA,QAA6B/C,mBAAe,kNAC1C,IAAA,CAAA,OAAA,gBACA,eAAA,CAAkB,CAACC,iBAAAA,CAAQ,OAAO,EAAA,iBACzB,IAAA,CAAO,OAAA,iBAEhB,gBAAA,CAA6B,CAC3B,qCAAA,CACA,yDACF,EAAA,MACM,QAAA,CAAS,CACb,OAAA,CAAAiB,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,MAAA,CAAAG,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,iBAAA,CAAkB,CAAA,CAEvB,GAAM,CACJ,cAAA,CAAAC,CAAAA,CACA,eAAA,CAAAC,CAAAA,CACA,eAAA,CAAAC,CAAAA,CACA,gBAAA,CAAAC,CACF,CAAA,CAAI,IAAA,CAAK,cAAA,CAAepC,CAAAA,CAASC,CAAQ,CAAA,CAEnCoC,CAAAA,CAAuB,IAAA,CAAK,kBAAA,CAChCjC,CAAAA,CACA0B,CACF,CAAA,CAEA,IAAA,CAAK,GAAA,CAAMC,CAAAA,CACP,kCAAA,CACA,CAAA,EAAA;AC2HS,gEAAA;ACjIP,mFAAA","file":"/Users/pong/coding/monobera/packages/berajs/dist/hooks/index.cjs","sourcesContent":[null,"import useSWR from \"swr\";\n\nimport { usePublicClient } from \"@berachain/wagmi/hooks\";\n\nimport { type GetConvertToAssetsProps, getConvertToAssets } from \"~/actions\";\nimport { assertPublicClient } from \"~/errors/assert\";\nimport type { DefaultHookOptions } from \"~/types\";\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 useSWR, { type SWRConfiguration } from \"swr\";\nimport { type Address, type PublicClient, parseUnits, zeroAddress } from \"viem\";\n\nimport { defaultChainId } from \"@berachain/config/internal\";\n\nimport { useBeraWallet, usePublicClient } from \"@berachain/wagmi/hooks\";\n\nimport { BaseAggregator } from \"~/actions/dex/aggregators/base\";\nimport { bex } from \"~/actions/dex/aggregators/bex\";\nimport { bgtRedeem } from \"~/actions/dex/aggregators/bgt\";\nimport { enso } from \"~/actions/dex/aggregators/enso\";\nimport { fly } from \"~/actions/dex/aggregators/fly\";\nimport { haiku } from \"~/actions/dex/aggregators/haiku\";\nimport {\n HoneyNativeAggregator,\n honeyNative,\n} 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 {\n HoneyConfigContextReturn,\n TokenWithOrder,\n} from \"~/contexts/HoneyConfigProvider\";\nimport { POLLING } from \"~/enum\";\nimport { BeraError } from \"~/errors/BeraError\";\nimport { RequestError } from \"~/errors/RequestError\";\nimport { useAggregatorsRouterFeeBps } from \"~/hooks\";\nimport type {\n DefaultHookOptions,\n IRawAggregatorQuote,\n SwapReferrer,\n} from \"~/types\";\nimport type { Aggregators } from \"~/types/dex\";\nimport { parseBaseArgs } from \"~/utils/parseBaseArgs\";\nimport { seconds } from \"~/utils/time\";\nimport { isToken } from \"~/utils/tokens\";\nimport { useBexStatus } from \"./useBexStatus\";\n\nconst AGGREGATORS = [\n oogabooga,\n fly,\n kyberswap,\n openOcean,\n haiku,\n enso,\n bex,\n honeyNative,\n];\n\ntype IUseAggregatorsQuotesArgs = BeraJS.BaseFunctionArgs & {\n tokenIn: Address;\n tokenOut: Address;\n tokenInDecimals: number;\n tokenOutDecimals: number;\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\ntype IQueryKey = readonly [\n string, // \"useAggregatorsQuotes\n string, // name\n Address, // tokenIn\n Address, // tokenOut\n string, // parsedAmount\n number, // slippage\n Address | undefined, // account\n number | undefined, // feeBps\n number, // tokenInDecimals\n number, // tokenOutDecimals\n SwapReferrer | undefined, // referrer\n Address | undefined, // rewardVault\n TokenWithOrder[] | undefined, // collateralList\n];\n\nexport const USE_AGGREGATORS_QUOTES_QUERY_KEY = \"useAggregatorsQuotes\";\n\nfunction getQueryKey({\n name,\n account,\n args,\n feeBps,\n options,\n activeAggregators,\n honeyNativeState,\n}: {\n name: Aggregators;\n account: Address | undefined;\n args: IUseAggregatorsQuotesArgs;\n feeBps: number | undefined;\n options?: DefaultHookOptions;\n /**\n * List of active aggregators fetched from edge config flags.\n *\n * If undefined, all aggregators are enabled.\n */\n activeAggregators: string[] | undefined;\n honeyNativeState?: Pick<HoneyConfigContextReturn, \"collateralList\">;\n}): IQueryKey | null {\n if (name !== bgtRedeem.name) {\n if (\n isToken(args.tokenIn, \"BGT\", { chainId: defaultChainId }) ||\n isToken(args.tokenOut, \"BGT\", { chainId: defaultChainId })\n ) {\n // can't happen, but just in case\n return null;\n }\n }\n\n const {\n tokenIn,\n tokenOut,\n tokenInDecimals,\n tokenOutDecimals,\n amount,\n slippage,\n referrer,\n rewardVault,\n } = args;\n const parsedAmount = parseUnits(amount, tokenInDecimals).toString();\n\n const isEnabledOnConfig =\n !activeAggregators ||\n activeAggregators.includes(name.toLowerCase().replaceAll(\" \", \"\"));\n\n return options?.opts?.isEnabled &&\n Number(amount) &&\n feeBps !== undefined &&\n isEnabledOnConfig\n ? [\n USE_AGGREGATORS_QUOTES_QUERY_KEY,\n name,\n tokenIn,\n tokenOut,\n parsedAmount,\n slippage,\n account,\n feeBps,\n tokenInDecimals,\n tokenOutDecimals,\n referrer,\n rewardVault,\n honeyNativeState?.collateralList,\n ]\n : null;\n}\n\nfunction getQueryFn({\n aggregator,\n publicClient,\n proxyAggregatorsThroughVercel,\n}: {\n aggregator: BaseAggregator;\n publicClient?: PublicClient;\n proxyAggregatorsThroughVercel?: boolean;\n}) {\n return async ([\n ,\n ,\n tokenIn,\n tokenOut,\n amount,\n slippage,\n account,\n aggregatorsFeeBps,\n tokenInDecimals,\n tokenOutDecimals,\n referrer,\n rewardVault,\n honeyCollaterals,\n ]: IQueryKey) =>\n aggregator.getQuote({\n tokenIn,\n tokenOut,\n amount,\n slippage,\n account,\n aggregatorsFeeBps,\n tokenInDecimals,\n tokenOutDecimals,\n publicClient,\n proxyAggregatorsThroughVercel,\n referrer,\n rewardVault,\n honeyNativeState: {\n collateralList: honeyCollaterals ?? [],\n },\n });\n}\n\nexport const 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 { collateralList: collaterals, protocol: honeyProtocol } =\n args.honeyNativeState ?? {};\n\n const isWrapOrUnwrap =\n (isToken(args.tokenIn, \"BERA\") || isToken(args.tokenIn, \"WBERA\")) &&\n (isToken(args.tokenOut, \"BERA\") || isToken(args.tokenOut, \"WBERA\"));\n\n const isBgtRedeem = isToken(args.tokenIn, \"BGT\", { chainId: defaultChainId });\n\n // retrieve the honey collaterals in order to check if the swap is a honey mint or redeem\n const isHoneyNative = useMemo(\n () => HoneyNativeAggregator.isHoneyNativeSwap(args),\n [args.tokenOut, args.tokenIn, collaterals],\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: SWRConfiguration = {\n refreshInterval: POLLING.FAST, // every 10s\n errorRetryCount: 3,\n // biome-ignore lint/nursery/useMaxParams: the function is defined in the SWRConfiguration type\n onErrorRetry(err, key, config, revalidate, revalidateOpts) {\n if (err instanceof BeraError) {\n if (err.reason === BaseAggregator.PATH_NOT_FOUND_REASON) {\n return;\n }\n }\n\n if (err instanceof RequestError && err.statusCode === 403) {\n console.warn(key[1], \"returned error 403, stopping retries\");\n return;\n }\n\n if (revalidateOpts.retryCount > (config.errorRetryCount ?? 3)) {\n return;\n }\n\n setTimeout(() => {\n revalidate();\n }, config.errorRetryInterval ?? seconds(10));\n },\n };\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 = useSWR(\n isNativeSwap || !isMAEnabled\n ? null\n : getQueryKey({\n name: oogabooga.name,\n account,\n args,\n feeBps,\n options,\n activeAggregators,\n }),\n getQueryFn({ aggregator: oogabooga, proxyAggregatorsThroughVercel }),\n swrOptions,\n );\n const flyResult = useSWR(\n isNativeSwap || !isMAEnabled\n ? null\n : getQueryKey({\n name: fly.name,\n account,\n args,\n feeBps,\n options,\n activeAggregators,\n }),\n getQueryFn({ aggregator: fly, proxyAggregatorsThroughVercel }),\n swrOptions,\n );\n const kyberswapResult = useSWR(\n isNativeSwap || !isMAEnabled\n ? null\n : getQueryKey({\n name: kyberswap.name,\n account,\n args,\n feeBps,\n options,\n activeAggregators,\n }),\n getQueryFn({ aggregator: kyberswap, proxyAggregatorsThroughVercel }),\n swrOptions,\n );\n const openOceanResult = useSWR(\n isNativeSwap || !isMAEnabled\n ? null\n : getQueryKey({\n name: openOcean.name,\n account,\n args,\n feeBps,\n options,\n activeAggregators,\n }),\n getQueryFn({\n aggregator: openOcean,\n publicClient,\n proxyAggregatorsThroughVercel,\n }),\n swrOptions,\n );\n const haikuResult = useSWR(\n isNativeSwap || !isMAEnabled\n ? null\n : getQueryKey({\n name: haiku.name,\n account,\n args,\n feeBps,\n options,\n activeAggregators,\n }),\n getQueryFn({\n aggregator: haiku,\n publicClient,\n proxyAggregatorsThroughVercel,\n }),\n\n swrOptions,\n );\n const ensoResult = useSWR(\n isNativeSwap || !isMAEnabled\n ? null\n : getQueryKey({\n name: enso.name,\n account,\n args,\n feeBps,\n options,\n activeAggregators,\n }),\n getQueryFn({ aggregator: enso, proxyAggregatorsThroughVercel }),\n swrOptions,\n );\n const { protocol: bexProtocol } = useBexStatus();\n\n const bexResult = useSWR(\n isNativeSwap ||\n // dont use undefined as falsy\n bexProtocol.isPaused === true ||\n // BEX is not able to stake in a single transaction\n args.rewardVault\n ? null\n : getQueryKey({\n name: bex.name,\n account,\n args,\n // Always zero on bex swaps\n feeBps: 0,\n options,\n activeAggregators,\n }),\n getQueryFn({ aggregator: bex, publicClient }),\n swrOptions,\n );\n const wberaSwapResult = useSWR(\n isWrapOrUnwrap\n ? getQueryKey({\n name: wberaSwap.name,\n account,\n args,\n // Always 0 for wrap/unwrap\n feeBps: 0,\n options,\n // wbera is always enabled\n activeAggregators: undefined,\n })\n : null,\n async ([, , tokenIn, tokenOut, amount, , account]: IQueryKey) => {\n return wberaSwap.getQuote({\n tokenIn,\n tokenOut,\n amount,\n account,\n });\n },\n swrOptions,\n );\n const bgtRedeemResult = useSWR(\n isBgtRedeem\n ? getQueryKey({\n name: bgtRedeem.name,\n account,\n args,\n // Always 0 for native swaps\n feeBps: 0,\n options,\n // BGT redeem is always enabled\n activeAggregators: undefined,\n })\n : null,\n async ([, , tokenIn, , amount]: IQueryKey) => {\n return bgtRedeem.getQuote({\n tokenIn,\n amount,\n });\n },\n swrOptions,\n );\n const honeyResult = useSWR(\n !isHoneyNative ||\n isNativeSwap ||\n honeyProtocol?.isPaused === true ||\n !collaterals\n ? null\n : getQueryKey({\n name: honeyNative.name,\n account,\n args,\n // Always 0 for honey mint/redeem\n feeBps: 0,\n options,\n // honey mint/redeem is always enabled\n activeAggregators: undefined,\n honeyNativeState: {\n collateralList: collaterals,\n },\n }),\n getQueryFn({\n aggregator: honeyNative,\n publicClient,\n proxyAggregatorsThroughVercel,\n }),\n swrOptions,\n );\n const results = isWrapOrUnwrap\n ? [wberaSwapResult]\n : isBgtRedeem\n ? [bgtRedeemResult]\n : [\n oogaBogaResult,\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 * as Sentry from \"@sentry/nextjs\";\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 { assertPublicClient } from \"~/errors/assert\";\nimport { BeraError } from \"~/errors/BeraError\";\nimport { InvalidArgumentError } from \"~/errors/InvalidArgumentError\";\nimport { RequestError } from \"~/errors/RequestError\";\nimport {\n Aggregators,\n type IAggregatorArgs,\n type IRawAggregatorQuote,\n} from \"~/types\";\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: 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 });\n Sentry.captureException(error, {\n level: \"warning\",\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 }\n }\n\n async getQuote(args: IAggregatorArgs): Promise<IRawAggregatorQuote<false>> {\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 tokenInDecimals,\n tokenOutDecimals,\n amount,\n slippage,\n account = zeroAddress,\n publicClient,\n } = args;\n this.checkChainSupport();\n\n assertPublicClient(publicClient);\n\n if (!tokenInDecimals) {\n throw new InvalidArgumentError({\n property: \"tokenInDecimals\",\n value: tokenInDecimals,\n expected: \"number\",\n chainId: this.chainId,\n });\n }\n\n if (!tokenOutDecimals) {\n throw new InvalidArgumentError({\n property: \"tokenOutDecimals\",\n value: tokenOutDecimals,\n expected: \"number\",\n chainId: this.chainId,\n });\n }\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 as Address),\n tokenInDecimals,\n );\n const tokenOutV3 = new Token(\n this.chainId,\n this.convertZeroToWrapped(tokenOut as Address),\n tokenOutDecimals,\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 queryOutput.expectedAmountOut,\n sorPaths,\n sorAmount,\n args,\n );\n\n // format quote response\n const formattedQuote = {\n amountOut: queryOutput.expectedAmountOut.amount.toString(),\n amountIn: amount,\n spender: queryOutput.to,\n name: this.name,\n priceImpactPercentage: this.calculatePriceImpact(priceImpact),\n swapFeeBps: 0,\n };\n if (account === zeroAddress) return formattedQuote;\n\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 ...formattedQuote,\n calldata: {\n params,\n functionName,\n abi: balancerVaultAbi,\n address: callData.to,\n value: callData.value || BigInt(0),\n },\n };\n }\n}\n\nexport const bex = new BexAggregator();\n","import { ChainId } from \"@berachain/config/internal\";\n\nimport { InvalidArgumentError } from \"~/errors/InvalidArgumentError\";\nimport {\n Aggregators,\n type IAggregatorArgs,\n type IRawAggregatorQuote,\n} from \"~/types\";\nimport { 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 // 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.checkChainSupport();\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 spender: undefined,\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 {\n Aggregators,\n type IAggregatorArgs,\n type IRawAggregatorQuote,\n} from \"~/types\";\nimport { BaseAggregator } from \"./base\";\n\nclass EnsoAggregator extends BaseAggregator {\n name = Aggregators.Enso;\n supportedChains = [ChainId.MAINNET];\n readonly type = \"rest\";\n\n notFoundMessages: string[] = [\n \"Could not build shortcuts for route\",\n \"Swap not found for a required underlying of defi route,\",\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.checkChainSupport();\n\n const {\n tokenInAddress,\n tokenOutAddress,\n isTokenInNative,\n isTokenOutNative,\n } = this.parseAddresses(tokenIn, tokenOut);\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 spender: this.config.bex.aggregatorsRouter,\n name: this.name,\n swapFeeBps: aggregatorsFeeBps!,\n\n calldata: {\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 {\n PoolCreationStep,\n type TokenCurrentPriceMap,\n type TokenWithAmount,\n} from \"~/types\";\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 useSWRImmutable from \"swr/immutable\";\nimport { isAddress } from \"viem\";\n\nimport { usePublicClient } from \"@berachain/wagmi/hooks\";\n\nimport { getTokenInformation } from \"~/actions/tokens/getTokenInformation\";\nimport { assertPublicClient } from \"~/errors/assert\";\nimport type { DefaultHookOptions, DefaultHookReturnType, Token } from \"~/types\";\n\nexport type UseMultipleTokenInformationResponse = DefaultHookReturnType<\n Token[]\n>;\n\nexport type useMultipleTokenInformationArgs = {\n addresses: string[] | readonly string[] | undefined;\n};\nexport const useMultipleTokenInformation = (\n args: useMultipleTokenInformationArgs,\n options?: DefaultHookOptions,\n): UseMultipleTokenInformationResponse => {\n const publicClient = usePublicClient();\n\n const QUERY_KEY =\n publicClient && args.addresses\n ? ([\"useMultipleTokenInformation\", args.addresses] as const)\n : null;\n\n const swrResponse = useSWRImmutable<Token[], unknown, typeof QUERY_KEY>(\n QUERY_KEY,\n async ([, addresses]) => {\n // We already checked for publicClient in the QUERY_KEY\n // so we can safely assume that publicClient is defined\n // but we need this for correct type inference\n assertPublicClient(publicClient);\n\n return Promise.all(\n addresses.map(async (address) => {\n if (!address || !isAddress(address, { strict: false })) {\n throw new Error(\"Invalid address\");\n }\n\n const tk = await getTokenInformation({\n address: address,\n publicClient,\n });\n\n if (!tk) {\n throw new Error(`Token ${address} not found`);\n }\n\n return tk;\n }),\n );\n },\n { ...options?.opts },\n );\n\n return {\n ...swrResponse,\n refresh: () => swrResponse?.mutate?.(),\n };\n};\n"]}
|