@berachain/berajs 0.2.4 → 0.2.6-patch.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/README.md +0 -0
- package/dist/abi/exports.cjs +1 -1
- package/dist/abi/exports.cjs.map +1 -1
- package/dist/abi/exports.d.cts +17 -1
- package/dist/abi/exports.d.ts +17 -1
- package/dist/abi/exports.mjs +1 -1
- package/dist/abi/exports.mjs.map +1 -1
- package/dist/actions/exports.cjs +1 -1
- package/dist/actions/exports.cjs.map +1 -1
- package/dist/actions/exports.d.cts +9 -38
- package/dist/actions/exports.d.ts +9 -38
- package/dist/actions/exports.mjs +1 -1
- package/dist/actions/exports.mjs.map +1 -1
- package/dist/chunk-2YBHAMDV.cjs +2 -0
- package/dist/chunk-2YBHAMDV.cjs.map +1 -0
- package/dist/chunk-57RINXU6.cjs +2 -0
- package/dist/chunk-57RINXU6.cjs.map +1 -0
- package/dist/{chunk-AX2YQQFQ.mjs → chunk-74QD4JAH.mjs} +2 -2
- package/dist/chunk-74QD4JAH.mjs.map +1 -0
- package/dist/chunk-74WA35RI.cjs +2 -0
- package/dist/chunk-74WA35RI.cjs.map +1 -0
- package/dist/{chunk-7WRTK7RJ.mjs → chunk-BEKH5EYT.mjs} +2 -2
- package/dist/chunk-BEKH5EYT.mjs.map +1 -0
- package/dist/{chunk-FCWDGE62.cjs → chunk-CF3LFNXG.cjs} +2 -2
- package/dist/chunk-CF3LFNXG.cjs.map +1 -0
- package/dist/chunk-COMMLZ3O.mjs +2 -0
- package/dist/chunk-COMMLZ3O.mjs.map +1 -0
- package/dist/chunk-DDEQFR3M.cjs +2 -0
- package/dist/chunk-DDEQFR3M.cjs.map +1 -0
- package/dist/{chunk-6LDOG5RL.cjs → chunk-DK42F2ZM.cjs} +2 -2
- package/dist/chunk-DK42F2ZM.cjs.map +1 -0
- package/dist/{chunk-7SMWQ6SN.mjs → chunk-FM3WDBFH.mjs} +2 -2
- package/dist/chunk-FM3WDBFH.mjs.map +1 -0
- package/dist/chunk-HWOGQSNL.cjs +4 -0
- package/dist/chunk-HWOGQSNL.cjs.map +1 -0
- package/dist/chunk-I7M43BB4.cjs +2 -0
- package/dist/chunk-I7M43BB4.cjs.map +1 -0
- package/dist/chunk-IBJOI5SN.mjs +4 -0
- package/dist/chunk-IBJOI5SN.mjs.map +1 -0
- package/dist/chunk-IDFMLLDY.mjs +2 -0
- package/dist/chunk-IDFMLLDY.mjs.map +1 -0
- package/dist/{chunk-YZV5LKIP.cjs → chunk-LNVR4BW6.cjs} +2 -2
- package/dist/chunk-LNVR4BW6.cjs.map +1 -0
- package/dist/chunk-MJZHJFZO.mjs +2 -0
- package/dist/{chunk-YNO7BCCM.mjs.map → chunk-MJZHJFZO.mjs.map} +1 -1
- package/dist/chunk-MK5NS5B5.mjs +2 -0
- package/dist/chunk-MK5NS5B5.mjs.map +1 -0
- package/dist/{chunk-C6ZGUO4H.cjs → chunk-NMH7LHPW.cjs} +2 -2
- package/dist/chunk-NMH7LHPW.cjs.map +1 -0
- package/dist/chunk-NVHV2LDK.cjs +2 -0
- package/dist/chunk-NVHV2LDK.cjs.map +1 -0
- package/dist/chunk-OGBD5YOG.mjs +2 -0
- package/dist/chunk-OGBD5YOG.mjs.map +1 -0
- package/dist/chunk-OIYXOKTT.cjs.map +1 -1
- package/dist/chunk-OUD27MU7.cjs.map +1 -1
- package/dist/chunk-PLIH6KQM.mjs +2 -0
- package/dist/chunk-PLIH6KQM.mjs.map +1 -0
- package/dist/chunk-QRAIGQF2.mjs +2 -0
- package/dist/chunk-QRAIGQF2.mjs.map +1 -0
- package/dist/chunk-RWOICHRW.cjs +2 -0
- package/dist/chunk-RWOICHRW.cjs.map +1 -0
- package/dist/chunk-T5FSQ3YE.mjs +2 -0
- package/dist/chunk-T5FSQ3YE.mjs.map +1 -0
- package/dist/chunk-WRFDB3QJ.cjs.map +1 -1
- package/dist/chunk-XNJLSA6P.cjs.map +1 -1
- package/dist/contexts/exports.cjs +1 -1
- package/dist/contexts/exports.cjs.map +1 -1
- package/dist/contexts/exports.d.cts +1 -1
- package/dist/contexts/exports.d.ts +1 -1
- package/dist/contexts/exports.mjs +1 -1
- package/dist/contexts/exports.mjs.map +1 -1
- package/dist/{defaultFlags-d0kPbT0i.d.cts → defaultFlags-D6KfkTZx.d.cts} +1 -1
- package/dist/{defaultFlags-d0kPbT0i.d.ts → defaultFlags-D6KfkTZx.d.ts} +1 -1
- package/dist/enum/exports.cjs +1 -1
- package/dist/enum/exports.cjs.map +1 -1
- package/dist/enum/exports.d.cts +1 -1
- package/dist/enum/exports.d.ts +1 -1
- package/dist/enum/exports.mjs +1 -1
- package/dist/errors/exports.cjs +1 -1
- package/dist/errors/exports.cjs.map +1 -1
- package/dist/errors/exports.d.cts +8 -3
- package/dist/errors/exports.d.ts +8 -3
- package/dist/errors/exports.mjs +1 -1
- package/dist/{getValidatorQueuedOperatorAddress-DZgrPmZ2.d.cts → getValidatorQueuedOperatorAddress-BdDYHycN.d.cts} +15 -4
- package/dist/{getValidatorQueuedOperatorAddress-CqR6cyqC.d.ts → getValidatorQueuedOperatorAddress-CmiPJmsr.d.ts} +15 -4
- package/dist/{global.d-BeYWDreg.d.ts → global.d-3GQMgC9k.d.ts} +1 -1
- package/dist/{global.d-DghRxpHd.d.cts → global.d-CwT1Phzf.d.cts} +1 -1
- package/dist/hooks/exports.cjs +3 -3
- package/dist/hooks/exports.cjs.map +1 -1
- package/dist/hooks/exports.d.cts +54 -75
- package/dist/hooks/exports.d.ts +54 -75
- package/dist/hooks/exports.mjs +3 -3
- package/dist/hooks/exports.mjs.map +1 -1
- package/dist/{txnEnum-DxPRHSJt.d.cts → txnEnum-CCuQUFlh.d.cts} +7 -0
- package/dist/{txnEnum-DxPRHSJt.d.ts → txnEnum-CCuQUFlh.d.ts} +7 -0
- package/dist/types/exports.cjs.map +1 -1
- package/dist/types/exports.d.cts +37 -4
- package/dist/types/exports.d.ts +37 -4
- package/dist/utils/exports.cjs +1 -1
- package/dist/utils/exports.cjs.map +1 -1
- package/dist/utils/exports.d.cts +2 -2
- package/dist/utils/exports.d.ts +2 -2
- package/dist/utils/exports.mjs +1 -1
- package/dist/utils/exports.mjs.map +1 -1
- package/package.json +25 -25
- package/src/abi/enso/ensoWalletV2Factory.ts +9 -0
- package/src/abi/exports.ts +1 -0
- package/src/abi/pyth/pyth.ts +0 -0
- package/src/actions/clients/BeraApolloClient.ts +3 -3
- package/src/actions/clients/getApolloClient.ts +5 -5
- package/src/actions/clients/getEnsoClient.ts +1 -1
- package/src/actions/dex/__tests__/aggregators.unit.test.ts +3 -3
- package/src/actions/dex/__tests__/getOnChainPool.unit.test.ts +1 -1
- package/src/actions/dex/aggregators/base.ts +12 -8
- package/src/actions/dex/aggregators/bex.ts +8 -8
- package/src/actions/dex/aggregators/bgt.ts +4 -4
- package/src/actions/dex/aggregators/enso/enso.ts +28 -20
- package/src/actions/dex/aggregators/enso/ensoErc4626.debug.test.ts +1 -1
- package/src/actions/dex/aggregators/enso/ensoErc4626.ts +7 -4
- package/src/actions/dex/aggregators/erc4626.ts +10 -6
- package/src/actions/dex/aggregators/fly.ts +9 -5
- package/src/actions/dex/aggregators/haiku.integration.test.ts +3 -3
- package/src/actions/dex/aggregators/haiku.ts +9 -5
- package/src/actions/dex/aggregators/honey.ts +15 -15
- package/src/actions/dex/aggregators/kyberswap.ts +8 -4
- package/src/actions/dex/aggregators/oogabooga.ts +8 -4
- package/src/actions/dex/aggregators/openOcean.ts +12 -8
- package/src/actions/dex/aggregators/wbera.ts +8 -4
- package/src/actions/dex/b-sdk.ts +2 -2
- package/src/actions/dex/getAllPools.ts +2 -2
- package/src/actions/dex/getApiPool.ts +2 -2
- package/src/actions/dex/getGlobalLiquidityAndSwapVolume.ts +2 -2
- package/src/actions/dex/getIsTokenExploited.ts +1 -1
- package/src/actions/dex/getOnChainPool.ts +3 -3
- package/src/actions/dex/getPoolEvents.ts +2 -2
- package/src/actions/dex/getPoolHistoricalData.ts +2 -2
- package/src/actions/dex/getVaultPausedState.ts +1 -1
- package/src/actions/enso/__tests__/getBendDemultiplyBundle.action.unit.test.ts +175 -0
- package/src/actions/enso/__tests__/getBendDemultiplyBundle.unit.test.ts +150 -0
- package/src/actions/enso/__tests__/getBendMultiplyBundle.action.unit.test.ts +138 -0
- package/src/actions/enso/__tests__/getBendMultiplyBundle.unit.test.ts +194 -0
- package/src/actions/enso/{getEnsoUserTokensWithBalances.debug.test.ts → __tests__/getEnsoUserTokensWithBalances.debug.test.ts} +3 -3
- package/src/actions/enso/__tests__/helpers.ts +42 -0
- package/src/actions/enso/__tests__/util.unit.test.ts +95 -0
- package/src/actions/enso/flashloan.ts +127 -0
- package/src/actions/enso/getBendDemultiplyBundle.ts +325 -0
- package/src/actions/enso/getBendMultiplyBundle.ts +348 -0
- package/src/actions/enso/getEnsoSwapBundle.ts +2 -2
- package/src/actions/enso/getEnsoUserTokensWithBalances.ts +5 -5
- package/src/actions/enso/util.ts +150 -5
- package/src/actions/exports.ts +0 -2
- package/src/actions/governance/__tests__/checkProposalField.unit.test.ts +2 -2
- package/src/actions/governance/__tests__/getDecodedFunctionData.integration.test.ts +2 -2
- package/src/actions/governance/__tests__/getQuorum.integration.test.ts +2 -2
- package/src/actions/governance/checkProposalField.ts +1 -1
- package/src/actions/governance/computeActualStatus.ts +1 -1
- package/src/actions/governance/getAllProposals.ts +1 -1
- package/src/actions/governance/getBodyErrors.ts +1 -1
- package/src/actions/governance/getProposalDetails.ts +1 -1
- package/src/actions/governance/getProposalFromTx.ts +1 -1
- package/src/actions/governance/getProposalParams.ts +3 -3
- package/src/actions/governance/getProposalVotes.ts +1 -1
- package/src/actions/governance/getQuorum.ts +2 -2
- package/src/actions/honey/getCollateralWeights.ts +2 -2
- package/src/actions/honey/getGlobalCapLimit.ts +4 -4
- package/src/actions/honey/getHoneyCollaterals.ts +5 -5
- package/src/actions/honey/getHoneyFees.ts +1 -1
- package/src/actions/honey/getHoneyPausedState.ts +1 -1
- package/src/actions/honey/getHoneyPreview.ts +3 -3
- package/src/actions/honey/getHoneyRootPriceOracle.ts +1 -1
- package/src/actions/honey/getHoneyVaultsBalance.ts +2 -2
- package/src/actions/honey/getRelativeCapLimit.ts +3 -3
- package/src/actions/honey/getSharesWithoutFees.ts +1 -1
- package/src/actions/honey/getSwapPayload.ts +6 -6
- package/src/actions/honey/isBadCollateralAsset.ts +2 -2
- package/src/actions/honey/isBasketModeEnabled.ts +2 -2
- package/src/actions/honey/tests/pyth.integration.test.ts +3 -3
- package/src/actions/misc/getBlockTimestamp.ts +2 -2
- package/src/actions/pol/__tests__/getAllValidators.integration.test.ts +2 -2
- package/src/actions/pol/__tests__/rewardVaults.integration.test.ts +1 -1
- package/src/actions/pol/getBGTGlobalInfo.ts +2 -2
- package/src/actions/pol/getBgtAprSimulation.ts +1 -1
- package/src/actions/pol/getBgtAprSimultaion.unit.test.ts +1 -1
- package/src/actions/pol/getBgtTokenTotalBoosts.ts +2 -2
- package/src/actions/pol/getBgtTokenTotalSupply.ts +2 -2
- package/src/actions/pol/getBlockTime.debug.test.ts +13 -0
- package/src/actions/pol/getBlockTime.ts +14 -23
- package/src/actions/pol/getEarnedStakedBeraVault.ts +3 -3
- package/src/actions/pol/getGlobalCuttingBoard.ts +0 -0
- package/src/actions/pol/getGlobalData.ts +2 -2
- package/src/actions/pol/getIncentiveFeeClaimStats.ts +4 -4
- package/src/actions/pol/getLSTStakeConfig.ts +5 -5
- package/src/actions/pol/getMarkets.ts +2 -2
- package/src/actions/pol/getRewardProofsByValidator.ts +4 -4
- package/src/actions/pol/getRewardTokenToBeraRate.ts +1 -1
- package/src/actions/pol/getRewardVault.ts +3 -3
- package/src/actions/pol/getRewardVaultBeaconImplementation.integration.test.ts +1 -1
- package/src/actions/pol/getRewardVaultBeaconImplementation.ts +3 -3
- package/src/actions/pol/getRewardVaultDurationConstants.integration.test.ts +1 -1
- package/src/actions/pol/getRewardVaultDurationConstants.ts +1 -1
- package/src/actions/pol/getRewardVaultFromToken.ts +1 -1
- package/src/actions/pol/getRewardVaultIncentives.ts +2 -2
- package/src/actions/pol/getRewardVaultRewards.ts +1 -1
- package/src/actions/pol/getRewardVaults.ts +1 -1
- package/src/actions/pol/getSWBeraVaultMetadata.ts +20 -22
- package/src/actions/pol/getSWBeraWithdrawal.ts +4 -4
- package/src/actions/pol/getStakedBeraAPR.ts +2 -2
- package/src/actions/pol/getStakedBeraSnapshots.ts +2 -2
- package/src/actions/pol/getStakingDailyAssets.ts +3 -3
- package/src/actions/pol/getStakingTokenInformation.ts +2 -2
- package/src/actions/pol/getTotalStakedAmount.ts +1 -1
- package/src/actions/pol/getUserClaimableIncentives.ts +4 -4
- package/src/actions/pol/getUserVaultInfo.ts +1 -1
- package/src/actions/pol/getUserVaults.ts +4 -4
- package/src/actions/pol/getUserVaultsBalance.ts +1 -1
- package/src/actions/pol/getUserVaultsReward.ts +0 -0
- package/src/actions/pol/getVaultHistory.ts +2 -2
- package/src/actions/pol/getVaultValidators.ts +1 -1
- package/src/actions/pol/getVaultsSupply.ts +0 -0
- package/src/actions/prices/__tests__/prices.integration.test.ts +2 -2
- package/src/actions/prices/getTokenCurrentPrices.ts +5 -5
- package/src/actions/pyth/getHoneyPythFeeds.ts +2 -2
- package/src/actions/pyth/getUpdateFee.ts +2 -2
- package/src/actions/tokens/getAllowances.ts +2 -2
- package/src/actions/tokens/getTokenInformation.ts +2 -2
- package/src/actions/tokens/getTokens.ts +3 -3
- package/src/actions/tokens/getUnderlyingToken.ts +4 -4
- package/src/actions/tokens/getWalletBalances.integration.test.ts +1 -1
- package/src/actions/tokens/getWalletBalances.ts +4 -4
- package/src/actions/transactions/beraWriteContract.integration.test.ts +6 -6
- package/src/actions/transactions/beraWriteContract.ts +12 -12
- package/src/actions/validators/getActiveBoostAndCommissionChangeDelay.integration.test.ts +1 -1
- package/src/actions/validators/getActiveBoostAndCommissionChangeDelay.ts +1 -1
- package/src/actions/validators/getAllValidators.ts +2 -2
- package/src/actions/validators/getApiValidator.ts +2 -2
- package/src/actions/validators/getBaselineRewardAllocation.ts +1 -1
- package/src/actions/validators/getDailyValidatorBlockStats.ts +1 -1
- package/src/actions/validators/getDefaultRewardAllocation.ts +1 -1
- package/src/actions/validators/getUserActiveValidators.ts +31 -33
- package/src/actions/validators/getUserBoosts.ts +12 -8
- package/src/actions/validators/getUserBoostsOnValidator.ts +15 -3
- package/src/actions/validators/getUserStakingPositions.ts +1 -1
- package/src/actions/validators/getValidatorAnalytics.ts +2 -2
- package/src/actions/validators/getValidatorCommission.ts +1 -1
- package/src/actions/validators/getValidatorEstimatedBgtPerYear.ts +1 -1
- package/src/actions/validators/getValidatorOperatorAddress.ts +1 -1
- package/src/actions/validators/getValidatorQueuedCommission.ts +1 -1
- package/src/actions/validators/getValidatorQueuedOperatorAddress.ts +1 -1
- package/src/actions/validators/getValidatorQueuedRewardAllocation.ts +1 -1
- package/src/actions/validators/getValidatorRewardAllocation.ts +1 -1
- package/src/actions/validators/getValidatorRewardAllocatorAddress.ts +1 -1
- package/src/actions/validators/utils/__tests__/validatorUtils.integration.test.ts +4 -4
- package/src/contexts/BeraFlags/defaultFlags.ts +4 -0
- package/src/contexts/BexStatusProvider.tsx +1 -1
- package/src/contexts/HoneyConfigProvider.tsx +3 -3
- package/src/contexts/SwrFallback.tsx +2 -2
- package/src/contexts/TokensProvider.tsx +3 -3
- package/src/contexts/block-time-provider.tsx +1 -1
- package/src/contexts/exports.ts +0 -0
- package/src/data/contracts.ts +10 -0
- package/src/enum/exports.ts +0 -0
- package/src/enum/polling.ts +0 -0
- package/src/enum/txnEnum.ts +9 -0
- package/src/errors/BeraMonitoring.ts +2 -2
- package/src/errors/BeraTracing.ts +2 -2
- package/src/errors/RequestError.ts +1 -1
- package/src/errors/assert.ts +18 -0
- package/src/errors/getErrorMessage.ts +0 -0
- package/src/errors/getRevertReason.integration.test.ts +7 -7
- package/src/errors/getRevertReason.ts +1 -1
- package/src/errors/parseViemError.ts +1 -1
- package/src/hooks/bend/useGetConvertToAssets.ts +4 -4
- package/src/hooks/dex/useAggregatorsQuotes.ts +19 -19
- package/src/hooks/dex/useAggregatorsRouterFeeBps.ts +2 -2
- package/src/hooks/dex/useAllUserPools.ts +3 -3
- package/src/hooks/dex/useApiPool.ts +3 -3
- package/src/hooks/dex/useBexStatus.ts +1 -1
- package/src/hooks/dex/useCreatePool.ts +9 -9
- package/src/hooks/dex/useExploitedTokens.ts +3 -3
- package/src/hooks/dex/useGlobalLiquidityAndSwapVolume.ts +1 -1
- package/src/hooks/dex/useLiquidityMismatch.ts +3 -3
- package/src/hooks/dex/useLpPosition.ts +7 -4
- package/src/hooks/dex/useMultipleTokenApprovalsWithSlippage.ts +4 -4
- package/src/hooks/dex/useOnChainPoolData.ts +3 -3
- package/src/hooks/dex/usePollPoolCreationRelayerApproval.ts +3 -3
- package/src/hooks/dex/usePool.ts +7 -40
- package/src/hooks/dex/usePoolEvents.ts +2 -2
- package/src/hooks/dex/usePoolHistoricalData.ts +6 -3
- package/src/hooks/dex/usePools.ts +3 -3
- package/src/hooks/dex/usePriceImpact.ts +2 -2
- package/src/hooks/dex/useSingleAggregatorQuote.ts +13 -13
- package/src/hooks/enso/useBendDemultiply.ts +158 -0
- package/src/hooks/enso/useBendMultiply.ts +163 -0
- package/src/hooks/enso/useBendZapSupply.ts +7 -7
- package/src/hooks/enso/useEnsoSwapBundle.ts +6 -6
- package/src/hooks/enso/useEnsoUserTokensWithBalances.ts +5 -5
- package/src/hooks/enso/useEnsoWalletV2Address.ts +38 -0
- package/src/hooks/enso/useIsBendAuthorized.ts +47 -0
- package/src/hooks/enso/useZapStakeBera.ts +4 -4
- package/src/hooks/exports.ts +4 -3
- package/src/hooks/governance/useCreateProposal.ts +3 -3
- package/src/hooks/governance/useGetPastVotes.ts +2 -2
- package/src/hooks/governance/useHasVoted.ts +2 -2
- package/src/hooks/governance/useIsCanceller.ts +4 -4
- package/src/hooks/governance/usePollAllProposals.ts +3 -3
- package/src/hooks/governance/usePollProposal.ts +7 -4
- package/src/hooks/governance/usePollProposalThreshold.ts +3 -3
- package/src/hooks/governance/usePollProposalVotes.ts +1 -1
- package/src/hooks/governance/usePollUserDelegates.ts +7 -4
- package/src/hooks/governance/useProposalFromTx.ts +1 -1
- package/src/hooks/governance/useProposalSnapshot.ts +2 -2
- package/src/hooks/governance/useProposalState.ts +2 -2
- package/src/hooks/governance/useProposalTimelockState.ts +2 -2
- package/src/hooks/governance/useQuorum.ts +1 -1
- package/src/hooks/honey/useCappedGlobally.ts +8 -5
- package/src/hooks/honey/useCappedRelatively.ts +7 -4
- package/src/hooks/honey/useCollateralWeights.ts +8 -5
- package/src/hooks/honey/useHoneyAlerts.ts +5 -5
- package/src/hooks/honey/useHoneyBalances.ts +7 -7
- package/src/hooks/honey/useHoneyChartData.ts +1 -1
- package/src/hooks/honey/useHoneySwapState.ts +4 -4
- package/src/hooks/honey/useHoneyVaultsBalance.ts +8 -5
- package/src/hooks/honey/useIsBadCollateralAsset.ts +9 -6
- package/src/hooks/honey/useIsBasketModeEnabled.ts +8 -5
- package/src/hooks/honey/usePythLatestPrices.ts +4 -4
- package/src/hooks/perps/usePythUpdateFee.ts +4 -4
- package/src/hooks/pol/useBgtAprSimulation.ts +1 -1
- package/src/hooks/pol/useBgtUnstakedBalance.ts +7 -4
- package/src/hooks/pol/useClaimableFees.ts +4 -4
- package/src/hooks/pol/useOnChainRewardVault.ts +7 -7
- package/src/hooks/pol/usePollGlobalData.ts +9 -3
- package/src/hooks/pol/usePollMarkets.ts +5 -2
- package/src/hooks/pol/useQueuedBeraUnlock.ts +4 -4
- package/src/hooks/pol/useRewardTokenToBeraRate.ts +4 -4
- package/src/hooks/pol/useRewardVault.ts +5 -2
- package/src/hooks/pol/useRewardVaultBalanceFromStakingToken.ts +2 -2
- package/src/hooks/pol/useRewardVaultFromToken.ts +2 -2
- package/src/hooks/pol/useRewardVaultIncentives.ts +2 -2
- package/src/hooks/pol/useRewardVaultRewards.ts +3 -3
- package/src/hooks/pol/useRewardVaults.ts +2 -2
- package/src/hooks/pol/useStakedAPR.ts +3 -3
- package/src/hooks/pol/useStakedData.ts +10 -10
- package/src/hooks/pol/useStakedSnapshots.ts +3 -3
- package/src/hooks/pol/useStakingVaultsMetadata.ts +40 -0
- package/src/hooks/pol/useTotalStakedAmount.ts +2 -2
- package/src/hooks/pol/useUserVaultInfo.ts +8 -5
- package/src/hooks/pol/useUserVaults.ts +7 -4
- package/src/hooks/pol/useVaultAddress.ts +2 -2
- package/src/hooks/pol/useVaultHistory.ts +2 -2
- package/src/hooks/pol/useVaultValidators.ts +5 -2
- package/src/hooks/tokens/useBeraCurrentPrice.ts +1 -1
- package/src/hooks/tokens/useMultipleTokenInformation.ts +7 -4
- package/src/hooks/tokens/usePollAllowances.ts +7 -4
- package/src/hooks/tokens/usePollBalance.ts +8 -5
- package/src/hooks/tokens/usePollWalletBalances.ts +8 -5
- package/src/hooks/tokens/useStakingTokenInformation.ts +7 -4
- package/src/hooks/tokens/useTokenCurrentPrice.ts +1 -1
- package/src/hooks/tokens/useTokenCurrentPrices.ts +6 -6
- package/src/hooks/tokens/useTokenInformation.ts +8 -5
- package/src/hooks/tokens/useTokenPrice.ts +1 -1
- package/src/hooks/tokens/useTokenPrices.ts +4 -4
- package/src/hooks/tokens/useTokens.ts +3 -3
- package/src/hooks/tokens/useTotalSupply.ts +1 -1
- package/src/hooks/tokens/useUnderlyingAsset.ts +3 -3
- package/src/hooks/useBlockToTimestamp.ts +5 -5
- package/src/hooks/useContractWrite/index.ts +0 -0
- package/src/hooks/useContractWrite/stateReducer.ts +0 -0
- package/src/hooks/useContractWrite/types.ts +2 -2
- package/src/hooks/useContractWrite/useBeraContractWrite.ts +5 -6
- package/src/hooks/useGetVerifiedAbi.ts +1 -1
- package/src/hooks/usePrevious.ts +0 -0
- package/src/hooks/validators/useAllValidators.ts +7 -4
- package/src/hooks/validators/useApiEnrichedAllocation.ts +2 -2
- package/src/hooks/validators/useApiValidator.ts +5 -2
- package/src/hooks/validators/useBaselineRewardAllocation.ts +2 -2
- package/src/hooks/validators/useDailyValidatorBlockStats.ts +3 -3
- package/src/hooks/validators/useDefaultRewardAllocation.ts +4 -4
- package/src/hooks/validators/useManagedValidatorRole.ts +8 -5
- package/src/hooks/validators/useOnChainValidator.ts +6 -3
- package/src/hooks/validators/useStakingPoolBatch.ts +7 -4
- package/src/hooks/validators/useUserActiveValidators.ts +6 -3
- package/src/hooks/validators/useUserBoostsOnValidator.ts +3 -3
- package/src/hooks/validators/useUserClaimableIncentives.ts +9 -9
- package/src/hooks/validators/useUserStakingPositions.ts +1 -1
- package/src/hooks/validators/useValidator.ts +1 -1
- package/src/hooks/validators/useValidatorAnalytics.ts +3 -3
- package/src/hooks/validators/useValidatorCommission.ts +5 -2
- package/src/hooks/validators/useValidatorEstimatedBgtPerYear.ts +3 -3
- package/src/hooks/validators/useValidatorQueuedCommission.ts +6 -3
- package/src/hooks/validators/useValidatorQueuedOperatorAddress.ts +5 -2
- package/src/hooks/validators/useValidatorQueuedRewardAllocation.ts +6 -3
- package/src/hooks/validators/useValidatorRewardAllocation.ts +2 -2
- package/src/types/dex.d.ts +1 -1
- package/src/types/enso.d.ts +34 -0
- package/src/types/exports.ts +0 -0
- package/src/types/global.d.ts +3 -3
- package/src/types/governance.d.ts +1 -1
- package/src/types/honeySwap.d.ts +3 -3
- package/src/types/staking.d.ts +0 -0
- package/src/utils/beraFetch.ts +1 -1
- package/src/utils/createEmitter.ts +1 -1
- package/src/utils/exports.ts +0 -0
- package/src/utils/filter.ts +0 -0
- package/src/utils/formatIncentivesTokenMap.ts +1 -1
- package/src/utils/formatInputTokenValue.ts +0 -0
- package/src/utils/formatNumber.ts +0 -0
- package/src/utils/getContractName.ts +1 -1
- package/src/utils/getHoneySwapMessage.test.ts +1 -1
- package/src/utils/getHoneySwapMessage.ts +1 -1
- package/src/utils/parseBaseArgs.ts +1 -1
- package/src/utils/parseBaseArgs.unit.test.ts +1 -1
- package/src/utils/parseWhiskToken.ts +1 -1
- package/src/utils/poolNamings.ts +1 -1
- package/src/utils/tokens.ts +2 -2
- package/src/utils/tokens.unit.test.ts +1 -1
- package/src/utils/truncateHash.ts +0 -0
- package/.claude/skills/berajs/SKILL.md +0 -222
- package/.claude/skills/berajs/references/dex.md +0 -235
- package/.claude/skills/berajs/references/pol.md +0 -194
- package/.claude/skills/berajs/references/staking.md +0 -198
- package/.claude/skills/berajs/references/tokens.md +0 -170
- package/LICENSE +0 -21
- package/dist/chunk-22J3YJDN.cjs +0 -2
- package/dist/chunk-22J3YJDN.cjs.map +0 -1
- package/dist/chunk-2LL3P5PN.mjs +0 -2
- package/dist/chunk-2LL3P5PN.mjs.map +0 -1
- package/dist/chunk-4GU2O2OW.cjs +0 -4
- package/dist/chunk-4GU2O2OW.cjs.map +0 -1
- package/dist/chunk-55L7STYD.mjs +0 -2
- package/dist/chunk-55L7STYD.mjs.map +0 -1
- package/dist/chunk-5XWELBWR.mjs +0 -2
- package/dist/chunk-5XWELBWR.mjs.map +0 -1
- package/dist/chunk-6LDOG5RL.cjs.map +0 -1
- package/dist/chunk-7LNBSOVV.cjs +0 -2
- package/dist/chunk-7LNBSOVV.cjs.map +0 -1
- package/dist/chunk-7SMWQ6SN.mjs.map +0 -1
- package/dist/chunk-7WRTK7RJ.mjs.map +0 -1
- package/dist/chunk-AX2YQQFQ.mjs.map +0 -1
- package/dist/chunk-BS6K7HGH.cjs +0 -2
- package/dist/chunk-BS6K7HGH.cjs.map +0 -1
- package/dist/chunk-C3FHGFLK.mjs +0 -2
- package/dist/chunk-C3FHGFLK.mjs.map +0 -1
- package/dist/chunk-C6ZGUO4H.cjs.map +0 -1
- package/dist/chunk-FCWDGE62.cjs.map +0 -1
- package/dist/chunk-RW3JFPED.mjs +0 -4
- package/dist/chunk-RW3JFPED.mjs.map +0 -1
- package/dist/chunk-S3EAKCVM.cjs +0 -2
- package/dist/chunk-S3EAKCVM.cjs.map +0 -1
- package/dist/chunk-SWMJQOH6.cjs +0 -2
- package/dist/chunk-SWMJQOH6.cjs.map +0 -1
- package/dist/chunk-THATXCJK.mjs +0 -2
- package/dist/chunk-THATXCJK.mjs.map +0 -1
- package/dist/chunk-VXL2ZZ4X.cjs +0 -2
- package/dist/chunk-VXL2ZZ4X.cjs.map +0 -1
- package/dist/chunk-YNO7BCCM.mjs +0 -2
- package/dist/chunk-YXLFOEZN.mjs +0 -2
- package/dist/chunk-YXLFOEZN.mjs.map +0 -1
- package/dist/chunk-YZV5LKIP.cjs.map +0 -1
- package/src/actions/dex/getSubgraphPool.ts +0 -30
- package/src/actions/validators/getManagedValidatorByAccount.ts +0 -32
- package/src/hooks/pol/useSWBeraVaultMetadata.ts +0 -35
- package/src/hooks/validators/useManagedValidatorByAccount.ts +0 -40
- package/src/hooks/validators/useSubgraphUserValidators.ts +0 -36
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
# BeraJS — Tokens Reference
|
|
2
|
-
|
|
3
|
-
## Wallet Balances
|
|
4
|
-
|
|
5
|
-
### `usePollWalletBalances` / `getWalletBalances`
|
|
6
|
-
|
|
7
|
-
Fetch all ERC-20 token balances for a wallet address.
|
|
8
|
-
|
|
9
|
-
```tsx
|
|
10
|
-
import { usePollWalletBalances } from "@berachain/berajs/hooks";
|
|
11
|
-
|
|
12
|
-
const { data: balances, isLoading } = usePollWalletBalances({
|
|
13
|
-
account: "0x...",
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
// balances: BalanceToken[]
|
|
17
|
-
balances?.map((token) => (
|
|
18
|
-
<div key={token.address}>
|
|
19
|
-
{token.symbol}: {token.balance.formatted} (${token.usdValue?.toFixed(2)})
|
|
20
|
-
</div>
|
|
21
|
-
));
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
```ts
|
|
25
|
-
// Server-side:
|
|
26
|
-
import { getWalletBalances } from "@berachain/berajs/actions";
|
|
27
|
-
const balances = await getWalletBalances({ account: "0x..." });
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
**`BalanceToken` type:**
|
|
31
|
-
```ts
|
|
32
|
-
type BalanceToken = Token & {
|
|
33
|
-
balance: {
|
|
34
|
-
raw: string; // wei as string — safe to pass to BigInt()
|
|
35
|
-
formatted: string; // human-readable e.g. "1.5"
|
|
36
|
-
};
|
|
37
|
-
price?: number; // USD price per token
|
|
38
|
-
usdValue?: number; // balance * price
|
|
39
|
-
};
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
## Allowances
|
|
43
|
-
|
|
44
|
-
### `usePollAllowances` / `getAllowances`
|
|
45
|
-
|
|
46
|
-
Check ERC-20 spending approvals. Returns whether each token needs approval before a transaction.
|
|
47
|
-
|
|
48
|
-
```tsx
|
|
49
|
-
import { usePollAllowances } from "@berachain/berajs/hooks";
|
|
50
|
-
import type { AllowanceQueryItem } from "@berachain/berajs/types";
|
|
51
|
-
|
|
52
|
-
const items: AllowanceQueryItem[] = [{
|
|
53
|
-
token: {
|
|
54
|
-
address: "0xHONEY",
|
|
55
|
-
decimals: 18,
|
|
56
|
-
symbol: "HONEY",
|
|
57
|
-
name: "Honey",
|
|
58
|
-
chainId: 80094,
|
|
59
|
-
},
|
|
60
|
-
amount: { raw: "1000000000000000000", formatted: "1.0" },
|
|
61
|
-
spender: "0xVaultAddress",
|
|
62
|
-
}];
|
|
63
|
-
|
|
64
|
-
const { data: allowances } = usePollAllowances({
|
|
65
|
-
account: "0x...",
|
|
66
|
-
allowanceQueryList: items,
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
// allowances[0].needsApproval → true if approval required before tx
|
|
70
|
-
// allowances[0].allowance.formatted → current approved amount
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
## Token Metadata
|
|
74
|
-
|
|
75
|
-
### `useTokenInformation` / `getTokenInformation`
|
|
76
|
-
|
|
77
|
-
Resolve a token address to its metadata.
|
|
78
|
-
|
|
79
|
-
```ts
|
|
80
|
-
import { useTokenInformation } from "@berachain/berajs/hooks";
|
|
81
|
-
|
|
82
|
-
const { data: token } = useTokenInformation({ address: "0x..." });
|
|
83
|
-
// token: TokenWithMetadata | undefined
|
|
84
|
-
// { address, decimals, symbol, name, chainId, logoURI?, tags? }
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
## Prices
|
|
88
|
-
|
|
89
|
-
### `useTokenCurrentPrices` / `getTokenCurrentPrices`
|
|
90
|
-
|
|
91
|
-
USD prices for multiple tokens at once.
|
|
92
|
-
|
|
93
|
-
```tsx
|
|
94
|
-
import { useTokenCurrentPrices } from "@berachain/berajs/hooks";
|
|
95
|
-
|
|
96
|
-
const { data: priceMap } = useTokenCurrentPrices({
|
|
97
|
-
tokenAddresses: ["0xHONEY", "0xWBERA"],
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
// priceMap: TokenCurrentPriceMap
|
|
101
|
-
// priceMap["0xhoney"]?.price → 1.0
|
|
102
|
-
// Keys are lowercased addresses
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
## Key Types
|
|
106
|
-
|
|
107
|
-
```ts
|
|
108
|
-
// Base for all tokens
|
|
109
|
-
type MinimalERC20 = {
|
|
110
|
-
address: Address;
|
|
111
|
-
decimals: number;
|
|
112
|
-
symbol: string;
|
|
113
|
-
name: string;
|
|
114
|
-
chainId: number;
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
// Full token with optional display metadata
|
|
118
|
-
type Token = MinimalERC20 & {
|
|
119
|
-
tags?: string[];
|
|
120
|
-
logoURI?: string;
|
|
121
|
-
totalSupply?: string;
|
|
122
|
-
weight?: number | string | null;
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
// For allowance checking
|
|
126
|
-
type AllowanceQueryItem = {
|
|
127
|
-
token: MinimalERC20;
|
|
128
|
-
amount: { raw: string; formatted: string };
|
|
129
|
-
spender: Address;
|
|
130
|
-
};
|
|
131
|
-
|
|
132
|
-
type AllowanceToken = AllowanceQueryItem & {
|
|
133
|
-
allowance: { raw: string; formatted: string };
|
|
134
|
-
needsApproval: boolean;
|
|
135
|
-
};
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
## Complete Example: Token Balance List
|
|
139
|
-
|
|
140
|
-
```tsx
|
|
141
|
-
"use client";
|
|
142
|
-
import { usePollWalletBalances } from "@berachain/berajs/hooks";
|
|
143
|
-
import { useAccount } from "wagmi";
|
|
144
|
-
|
|
145
|
-
export function TokenBalanceList() {
|
|
146
|
-
const { address } = useAccount();
|
|
147
|
-
const { data: balances, isLoading } = usePollWalletBalances(
|
|
148
|
-
{ account: address },
|
|
149
|
-
{ opts: { isEnabled: !!address } }
|
|
150
|
-
);
|
|
151
|
-
|
|
152
|
-
if (!address) return <div>Connect wallet</div>;
|
|
153
|
-
if (isLoading) return <div>Loading...</div>;
|
|
154
|
-
if (!balances?.length) return <div>No tokens found</div>;
|
|
155
|
-
|
|
156
|
-
return (
|
|
157
|
-
<ul>
|
|
158
|
-
{balances.map((token) => (
|
|
159
|
-
<li key={token.address}>
|
|
160
|
-
<span>{token.symbol}</span>
|
|
161
|
-
<span>{token.balance.formatted}</span>
|
|
162
|
-
{token.usdValue !== undefined && (
|
|
163
|
-
<span>${token.usdValue.toFixed(2)}</span>
|
|
164
|
-
)}
|
|
165
|
-
</li>
|
|
166
|
-
))}
|
|
167
|
-
</ul>
|
|
168
|
-
);
|
|
169
|
-
}
|
|
170
|
-
```
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) Berachain Foundation
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
package/dist/chunk-22J3YJDN.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var _chunkC6ZGUO4Hcjs = require('./chunk-C6ZGUO4H.cjs');var _internal = require('@berachain/config/internal');function i(o){let n=_nullishCoalesce(o.chainId, () => (_internal.defaultChainId)),e=_nullishCoalesce(o.config, () => (_internal.chainConfigs[n]));if(o.chainId&&o.chainId!==e.chainId)throw new (0, _chunkC6ZGUO4Hcjs.h)({property:"chainId",value:n,expected:`config.chainId: ${e.chainId}`});return{config:e,chainId:e.chainId}}var _viem = require('viem');var _mainnet = require('@berachain/config/mainnet');var I={address:_viem.zeroAddress,decimals:18,name:"Bera",symbol:"BERA",logoURI:"https://res.cloudinary.com/duv0g402y/image/upload/v1738720154/brand/berachain-chain-logo.png.png"},l= exports.c ={address:_mainnet.mainnet.tokens.wbera,decimals:18,name:"WBera",symbol:"WBERA"};function R(o){let{config:n,chainId:e}=i(o);return{address:n.honey.token,symbol:"HONEY",name:"Honey",decimals:18,chainId:e}}function b(...o){let[n,e,r]=o;if(n===void 0)return!1;let s=typeof n=="string"?n:n.address;if(typeof e=="string"&&!_viem.isAddress.call(void 0, e)&&!e.startsWith("0x")){if(e==="BERA")return s.toLowerCase()===_viem.zeroAddress;if(e==="WBERA")return s.toLowerCase()===_mainnet.mainnet.tokens.wbera;if(e==="ETH")return s.toLowerCase()===_viem.ethAddress;if(e==="SWBERA")return s.toLowerCase()===_mainnet.mainnet.tokens.swbera.toLowerCase();if(r===void 0)throw new (0, _chunkC6ZGUO4Hcjs.h)({property:"baseArgs",value:r,expected:"BeraJS.BaseFunctionArgs",message:"baseArgs is required when compared to a known token different than BERA or WBERA. Checking against token: "+e+" and token address: "+s});let{config:a}=i(r),c={BGT:a.tokens.bgt,HONEY:a.honey.token,SWBERA:a.tokens.swbera,ETH:_viem.ethAddress};if(e in c)return s.toLowerCase()===c[e].toLowerCase()}let k=typeof e=="object"?e.address:e;return s.toLowerCase()===k.toLowerCase()}exports.a = i; exports.b = I; exports.c = l; exports.d = R; exports.e = b;
|
|
2
|
-
//# sourceMappingURL=chunk-22J3YJDN.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/liammcaweeney/Work/bera/monobera/packages/berajs/dist/chunk-22J3YJDN.cjs","../src/utils/parseBaseArgs.ts"],"names":["parseBaseArgs","args","chainId","defaultChainId","config","chainConfigs","InvalidArgumentError"],"mappings":"AAAA,qOAAwC,sDCIjC,SAISA,CAAAA,CAAcC,CAAAA,CAA+B,CAC3D,IAAMC,CAAAA,kBAAUD,CAAAA,CAAK,OAAA,SAAWE,0BAAAA,CAC1BC,CAAAA,kBAAqBH,CAAAA,CAAK,MAAA,SAAUI,sBAAAA,CAAaH,CAAO,GAAA,CAE9D,EAAA,CAAID,CAAAA,CAAK,OAAA,EAAWA,CAAAA,CAAK,OAAA,GAAYG,CAAAA,CAAO,OAAA,CAE1C,MAAM,IAAIE,wBAAAA,CAAqB,CAC7B,QAAA,CAAU,SAAA,CACV,KAAA,CAAOJ,CAAAA,CACP,QAAA,CAAU,CAAA,gBAAA,EAAmBE,CAAAA,CAAO,OAAO,CAAA,CAAA","file":"/Users/liammcaweeney/Work/bera/monobera/packages/berajs/dist/chunk-22J3YJDN.cjs","sourcesContent":[null,"import {\n type BeraConfig,\n chainConfigs,\n defaultChainId,\n} from \"@berachain/config/internal\";\n\nimport { InvalidArgumentError } from \"~/errors/InvalidArgumentError\";\n\nexport function parseBaseArgs(args: BeraJS.BaseFunctionArgs) {\n const chainId = args.chainId ?? defaultChainId;\n const config: BeraConfig = args.config ?? chainConfigs[chainId];\n\n if (args.chainId && args.chainId !== config.chainId) {\n // this matches unless the config is explicitly provided\n throw new InvalidArgumentError({\n property: \"chainId\",\n value: chainId,\n expected: `config.chainId: ${config.chainId}`,\n });\n }\n\n return { config, chainId: config.chainId };\n}\n"]}
|
package/dist/chunk-2LL3P5PN.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{e as o,f as i,g as a,h as p}from"./chunk-AX2YQQFQ.mjs";import{BaseError as u}from"viem";function k({cause:e,level:t}){if(e instanceof u){let n=o({error:e,revertIfUnknown:!1});if(n.isRequestError&&n.rootCause instanceof u&&"url"in n.rootCause&&typeof n.rootCause.url=="string")return new a({cause:n.rootCause,response:void 0,endpoint:{url:n.rootCause.url,type:"rpc"},level:t})}return e instanceof i?e:new i({cause:e,level:t})}import{isAddress as m}from"viem";function c(e){return e!=null}function x({value:e,property:t,fn:r}){let n=r(e);if(!n.isValid)throw new p({property:t,value:e,expected:n.expectedType})}function s({value:e,property:t,fn:r}){x({value:e,property:t,fn:n=>{let l=c(n),{isValid:E,expectedType:v}=r(n);return{expectedType:v,isValid:l&&E}}})}function y(e,t){s({value:e,property:t,fn:r=>({expectedType:"defined",isValid:c(r)})})}function D(e,t="publicClient"){y(e,t)}function K(e,t){s({value:e,property:t,fn:r=>({expectedType:"Address",isValid:typeof r=="string"&&m(r)})})}function M(e,t){s({value:e,property:t,fn:r=>({expectedType:"number",isValid:(typeof r=="string"||typeof r=="number")&&Number(r)>0})})}function f(){let e={};return{emit(t,...r){for(let n of e[t]||[])n(...r)},events:e,on(t,r){return e[t]||(e[t]=[]),e[t].push(r),()=>{e[t]=e[t]?.filter(n=>r!==n)}}}}var d=f(),_={captureException(e){let t={exception:e,timestamp:Date.now()};d.emit("exception",t)},on(...e){return d.on(...e)}};export{k as a,y as b,D as c,K as d,M as e,_ as f};
|
|
2
|
-
//# sourceMappingURL=chunk-2LL3P5PN.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/errors/initBeraError.ts","../src/errors/assert.ts","../src/utils/createEmitter.ts","../src/errors/BeraMonitoring.ts"],"sourcesContent":["import { BaseError } from \"viem\";\n\nimport { BeraError } from \"./BeraError\";\nimport { parseViemError } from \"./parseViemError\";\nimport { RequestError } from \"./RequestError\";\nimport type { SeverityLevel } from \"./severity\";\n\n/**\n * The preferred way to normalize any unknown error into a BeraError.\n *\n * This function acts as a smart factory that picks the correct BeraError subclass:\n *\n * 1. If `cause` is already a `BeraError`, returns it as-is (no double-wrapping).\n * 2. If `cause` is a viem `BaseError`, runs `parseViemError` to classify it:\n * - If the root cause is an `HttpRequestError` (RPC transport failure), wraps it\n * in a `RequestError` with the endpoint URL extracted from the error.\n * 3. Otherwise, wraps in a new `BeraError` — which triggers the automatic reason\n * detection pipeline in the BeraError constructor (parseViemError → errorMap → displayMessage).\n *\n * **Use this instead of `new BeraError({ cause })` when you don't know the error type.**\n * It ensures RequestErrors are correctly classified (important for Sentry filtering\n * and fingerprinting — RequestErrors are skipped from transaction error grouping).\n *\n * @example\n * ```ts\n * try {\n * await someOperation();\n * } catch (error) {\n * // Normalizes to the right subclass, reason auto-detected\n * throw initBeraError({ cause: error });\n * }\n * ```\n *\n * @example\n * ```ts\n * // Reporting to Sentry without rethrowing\n * catch (error) {\n * captureException(initBeraError({ cause: error }));\n * }\n * ```\n */\nexport function initBeraError({\n cause: error,\n level,\n}: {\n cause: unknown;\n /**\n * The severity level of the error, only used if the error is not a BeraError.\n */\n level?: SeverityLevel;\n}): BeraError {\n // ── Step 1: Check if it's a viem BaseError that wraps an RPC transport failure ──\n // parseViemError with revertIfUnknown=false won't throw — it returns { reason: undefined }\n // if the error chain doesn't match any known type.\n if (error instanceof BaseError) {\n const parsed = parseViemError({\n error,\n revertIfUnknown: false,\n });\n if (\n parsed.isRequestError &&\n parsed.rootCause instanceof BaseError &&\n \"url\" in parsed.rootCause &&\n typeof parsed.rootCause.url === \"string\"\n ) {\n // RPC transport failure (e.g. HTTP 502 from the RPC endpoint).\n // Wrapping in RequestError gives it proper endpoint tagging and level=\"warning\".\n return new RequestError({\n cause: parsed.rootCause,\n response: undefined,\n endpoint: {\n url: parsed.rootCause.url as string,\n type: \"rpc\",\n },\n level,\n });\n }\n }\n\n // ── Step 2: Return as-is if already a BeraError, otherwise wrap ──────────\n // The BeraError constructor will run automatic reason detection on the cause.\n const err =\n error instanceof BeraError\n ? error\n : new BeraError({\n cause: error,\n level,\n });\n\n return err;\n}\n","import type { GetPublicClientReturnType } from \"@wagmi/core\";\nimport { type Address, isAddress, type PublicClient } from \"viem\";\n\nimport { InvalidArgumentError } from \"./InvalidArgumentError\";\n\nfunction _isDefined<T>(value: T): value is NonNullable<T> {\n return value !== undefined && value !== null;\n}\n\ntype _AssertFn<T> = (value: T) => { expectedType: string; isValid: boolean };\n\n/**\n * Internal assertion function.\n * @throws An InvalidArgumentError if the value is not valid.\n */\nfunction _assert<T>({\n value,\n property,\n fn,\n}: {\n value: T;\n property: string;\n fn: _AssertFn<T>;\n}) {\n const result = fn(value);\n if (!result.isValid) {\n throw new InvalidArgumentError({\n property,\n value,\n expected: result.expectedType,\n });\n }\n}\n\nfunction _assertDefined<T>({\n value,\n property,\n fn,\n}: {\n value: T;\n property: string;\n fn: (value: T) => { expectedType: string; isValid: boolean };\n}) {\n _assert({\n value,\n property,\n fn: (value) => {\n const isDefined = _isDefined(value);\n const { isValid, expectedType } = fn(value);\n return {\n expectedType,\n isValid: isDefined && isValid,\n };\n },\n });\n}\n\n/**\n * Asserts that a value is defined.\n * @throws An InvalidArgumentError if the value is undefined or null.\n */\nexport function assertDefined<T>(\n /**\n * The value to assert.\n */\n value: T,\n /**\n * The property name.\n */\n property: string,\n): asserts value is NonNullable<T> {\n _assertDefined({\n value,\n property,\n fn: (value) => ({ expectedType: \"defined\", isValid: _isDefined(value) }),\n });\n}\n\n/**\n * Asserts that a value is a PublicClient.\n * @throws An InvalidArgumentError if the value is undefined or not a PublicClient.\n */\nexport function assertPublicClient(\n /**\n * The value to assert.\n */\n value: // it's important to have both types here because it helps with typescript build performance\n PublicClient | GetPublicClientReturnType | undefined,\n /**\n * The property name.\n */\n property: string = \"publicClient\",\n): asserts value is PublicClient {\n // there's no current way to check if a value is a PublicClient, so we just assert it's defined and `value: PublicClient` will do the rest\n assertDefined(value, property);\n}\n\n/**\n * Asserts that a value is an address (20 bytes).\n * @throws An InvalidArgumentError if the value is undefined, null, not a string, or not an address.\n */\nexport function assertAddress(\n /**\n * The value to assert.\n */\n value: string | undefined | null,\n /**\n * The property name.\n */\n property: string,\n): asserts value is Address {\n _assertDefined({\n value,\n property,\n fn: (value) => ({\n expectedType: \"Address\",\n isValid: typeof value === \"string\" && isAddress(value),\n }),\n });\n}\n\n/**\n * Asserts that a value is a number greater than 0.\n * @throws An InvalidArgumentError if the value is undefined, null, not a string or number, or not a number greater than 0.\n */\nexport function assertAmount(\n /**\n * The value to assert.\n */\n value: unknown,\n /**\n * The property name.\n */\n property: string,\n): asserts value is string | number {\n _assertDefined({\n value,\n property,\n fn: (value) => ({\n expectedType: \"number\",\n isValid:\n (typeof value === \"string\" || typeof value === \"number\") &&\n Number(value) > 0,\n }),\n });\n}\n","interface EventsMap {\n [event: string]: any;\n}\n\ninterface DefaultEvents extends EventsMap {\n [event: string]: (...args: any) => void;\n}\n\nexport type Unsubscribe = () => void;\n\nexport interface Emitter<Events extends EventsMap = DefaultEvents> {\n /**\n * Calls each of the listeners registered for a given event.\n *\n * ```js\n * ee.emit('tick', tickType, tickDuration)\n * ```\n *\n * @param event The event name.\n * @param args The arguments for listeners.\n */\n emit<K extends keyof Events>(event: K, ...args: Parameters<Events[K]>): void;\n\n /**\n * Add a listener for a given event.\n *\n * ```js\n * const unbind = ee.on('tick', (tickType, tickDuration) => {\n * count += 1\n * })\n *\n * disable () {\n * unbind()\n * }\n * ```\n *\n * @param event The event name.\n * @param cb The listener function.\n * @returns Unbind listener from event.\n */\n on<K extends keyof Events>(event: K, cb: Events[K]): Unsubscribe;\n events: Partial<{ [E in keyof Events]: Events[E][] }>;\n}\n\n/**\n * An interface for mixins that expose the `on` function (without the emitter\n * bound to `this`)\n *\n * ```js\n * import { createEmitter } from '~utils/createEmitter'\n *\n * class Ticker implements EmitterMixin<Events> {\n * constructor() {\n * this.emitter = createEmitter()\n * }\n * on(...args) {\n * return this.emitter.on(...args)\n * }\n * tick() {\n * this.emitter.emit('tick')\n * }\n * }\n * ```\n */\nexport interface EmitterMixin<Events extends EventsMap = DefaultEvents> {\n on<K extends keyof Events>(event: K, cb: Events[K]): Unsubscribe;\n}\n\n/**\n * Create event emitter.\n *\n * ```js\n * import { createEmitter } from '~/utils/createEmitter'\n *\n * class Ticker {\n * constructor() {\n * this.emitter = createEmitter()\n * }\n * on(...args) {\n * return this.emitter.on(...args)\n * }\n * tick() {\n * this.emitter.emit('tick')\n * }\n * }\n * ```\n *\n * Inspired by {@link https://github.com/ai/nanoevents}\n */\nexport function createEmitter<\n Events extends EventsMap = DefaultEvents,\n>(): Emitter<Events> {\n /**\n * Event names in keys and arrays with listeners in values.\n *\n * ```js\n * emitter1.events = emitter2.events\n * emitter2.events = { }\n * ```\n */\n const events: Partial<{ [E in keyof Events]: Events[E][] }> = {};\n\n return {\n emit(event, ...args) {\n for (const callback of events[event] || []) {\n callback(...args);\n }\n },\n events,\n on(event, cb) {\n if (!events[event]) {\n events[event] = [];\n }\n\n events[event].push(cb);\n\n return () => {\n events[event] = events[event]?.filter((i) => cb !== i);\n };\n },\n };\n}\n","import { createEmitter, type EmitterMixin } from \"~/utils/createEmitter\";\nimport type { BeraError } from \"./BeraError\";\nimport type { SeverityLevel } from \"./severity\";\n\n/**\n * Context passed alongside captured exceptions.\n * Mirrors the subset of Sentry's CaptureContext that berajs actually uses.\n */\nexport interface CaptureContext {\n level: SeverityLevel;\n extra?: Record<string, unknown>;\n tags?: Record<string, string | number | boolean | null | undefined>;\n fingerprint?: string[];\n data?: Record<string, unknown>;\n}\n\nexport interface ErrorEvent {\n exception: BeraError;\n timestamp: number;\n}\n\nconst _emitter = createEmitter<{ exception: (event: ErrorEvent) => void }>();\n\n/**\n * A generic error reporter for berajs.\n *\n * Instead of calling Sentry.captureException directly, berajs calls\n * `BeraMonitoring.captureException()`. Consumer apps subscribe via `.on()` and\n * forward events to their monitoring provider (Sentry, Datadog, etc.).\n *\n * @example\n * ```ts\n * // In berajs code:\n * import { BeraMonitoring } from \"~/errors/BeraMonitoring\";\n * BeraMonitoring.captureExceptionException(error);\n *\n * // In app instrumentation:\n * import { BeraMonitoring } from \"@berachain/berajs/errors\";\n * BeraMonitoring.on((event) => {\n * if (event.type === \"exception\") {\n * Sentry.captureException(event.exception);\n * }\n * });\n * ```\n */\nexport const BeraMonitoring: {\n captureException: (exception: BeraError) => void;\n} & EmitterMixin<{ exception: (event: ErrorEvent) => void }> = {\n /**\n * Capture an exception. Notifies all subscribers.\n */\n captureException(exception: BeraError): void {\n const event: ErrorEvent = {\n exception,\n timestamp: Date.now(),\n };\n _emitter.emit(\"exception\", event);\n },\n /**\n * Subscribe to error events.\n * @returns An unsubscribe function.\n */\n on(...args) {\n return _emitter.on(...args);\n },\n};\n"],"mappings":"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","names":["BaseError","initBeraError","error","level","BaseError","parsed","parseViemError","RequestError","BeraError","isAddress","_isDefined","value","_assert","property","fn","result","InvalidArgumentError","_assertDefined","isDefined","isValid","expectedType","assertDefined","assertPublicClient","assertAddress","isAddress","assertAmount","createEmitter","events","event","args","callback","cb","i","_emitter","createEmitter","BeraMonitoring","exception","event","args"]}
|
package/dist/chunk-4GU2O2OW.cjs
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } async function _asyncNullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return await rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } async function _asyncOptionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = await fn(value); } else if (op === 'call' || op === 'optionalCall') { value = await fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class;var _chunkOUD27MU7cjs = require('./chunk-OUD27MU7.cjs');var _chunk6LDOG5RLcjs = require('./chunk-6LDOG5RL.cjs');var _chunk7LNBSOVVcjs = require('./chunk-7LNBSOVV.cjs');var _chunkS3EAKCVMcjs = require('./chunk-S3EAKCVM.cjs');var _chunk22J3YJDNcjs = require('./chunk-22J3YJDN.cjs');var _chunkC6ZGUO4Hcjs = require('./chunk-C6ZGUO4H.cjs');var _viem = require('viem');var _metaMorphoV11 = require('@berachain/abis/bend-metamorpho/metaMorphoV11');async function yo({sharesAmount:e,vaultAddress:t,publicClient:r}){let a=await r.readContract({address:t,abi:_metaMorphoV11.metaMorphoV11Abi,functionName:"convertToAssets",args:[e]});return{raw:a,formatted:_viem.formatEther.call(void 0, a)}}var _client = require('@apollo/client');var _internal = require('@berachain/config/internal');var me=class extends _client.ApolloClient{constructor(t){super(t),this.url=t.url}async query(t){let r=_t(t.query),a={url:this.url,type:"graphql"},o={"operation.type":"query","operation.source.url":a.url,"operation.source.type":a.type,"operation.source.queryName":r};try{let i=()=>super.query(t),l=await _chunk6LDOG5RLcjs.a.startSpan({name:`GraphQL ${r}`,op:"BeraApolloClient.query",attributes:o},i);if(l.error||l.data===void 0)throw new (0, _chunkC6ZGUO4Hcjs.f)({level:"fatal",tags:o,message:"Bera Apollo Client: No data returned from query, but error should be thrown since errorPolicy is none"});return{data:l.data}}catch(i){throw!_internal.appConfig.env.isProduction&&console.error("BeraApolloClient error",i),_client.ServerError.is(i)?new (0, _chunkC6ZGUO4Hcjs.g)({response:i.response,cause:i,statusCode:i.statusCode,endpoint:a,tags:o}):i instanceof TypeError?new (0, _chunkC6ZGUO4Hcjs.g)({level:"fatal",reason:"TypeError",response:i,cause:i,endpoint:a,tags:o}):new (0, _chunkC6ZGUO4Hcjs.g)({response:i,tags:o,cause:i,endpoint:a})}}};function _t(e){return _optionalChain([e, 'access', _2 => _2.definitions, 'access', _3 => _3.find, 'call', _4 => _4(r=>r.kind==="OperationDefinition"), 'optionalAccess', _5 => _5.name, 'optionalAccess', _6 => _6.value])}var _http = require('@apollo/client/link/http');var _config = require('@berachain/config');var _api = require('@berachain/graphql/dex/api'); var _api2 = _interopRequireDefault(_api);function Kt(e){if(!_internal.currentDapp)return e;let t=typeof e=="string"?void 0:e.headers;return{uri:_config.getUriFromLink.call(void 0, e),headers:{...t,"x-graphql-client-name":`berachain.${_internal.currentDapp}.${process.env.NEXT_RUNTIME||"browser"}`,"x-graphql-client-version":`${process.env.VERCEL_TARGET_ENV}.${process.env.VERCEL_GIT_COMMIT_SHA}`}}}function _(e,{ssrMode:t,inMemoryCacheOptions:r}={}){let a=_config.getUriFromLink.call(void 0, e),o=typeof e=="string"?void 0:e.headers;return new me({url:a,link:new (0, _http.HttpLink)({uri:a,headers:o}),defaultOptions:{query:{errorPolicy:"none",fetchPolicy:"no-cache"}},cache:new (0, _client.InMemoryCache)(r),ssrMode:t})}function g(e,{...t}){let{config:r}=_chunk22J3YJDNcjs.a.call(void 0, t);switch(e){case"api":return _(Kt(r.api),{inMemoryCacheOptions:{possibleTypes:_api2.default.possibleTypes}});case"bend.whisk":if(!r.bend.whiskApi)throw new (0, _chunkC6ZGUO4Hcjs.f)({message:"Bend whisk API is not configured on this chain",level:"error"});return _(r.bend.whiskApi);case"honey.subgraph":return _(r.honey.subgraph);case"pol.subgraph":return _(r.pol.subgraph);case"governance.subgraph":return _(r.governance.subgraph);case"blocks.subgraph":return _(r.blocksSubgraph);case"bex.subgraph":return _(r.bex.subgraph)}}var _bignumberjs = require('@berachain/utils/pkg/bignumber.js'); var _bignumberjs2 = _interopRequireDefault(_bignumberjs);var Xe= (_class =class e{static __initStatic() {this.PATH_NOT_FOUND_REASON="NO_SWAP_PATHS"}__init() {this.needsAccountForQuote=!1}__init2() {this.notFoundMessages=[]}constructor(t={}){;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);let{config:r,chainId:a}=_chunk22J3YJDNcjs.a.call(void 0, t);this.config=r,this.chainId=a}__init3() {this.url=""}parseAddresses(t,r){if(!_viem.isAddress.call(void 0, t)||!_viem.isAddress.call(void 0, r))throw new (0, _chunkC6ZGUO4Hcjs.f)({message:`Invalid address: ${t} or ${r}`,level:"error"});return{tokenInAddress:_chunk22J3YJDNcjs.e.call(void 0, t,"BERA")?this.config.tokens.wbera:t,tokenOutAddress:_chunk22J3YJDNcjs.e.call(void 0, r,"BERA")?this.config.tokens.wbera:r,isTokenInNative:_chunk22J3YJDNcjs.e.call(void 0, t,"BERA"),isTokenOutNative:_chunk22J3YJDNcjs.e.call(void 0, r,"BERA")}}getAmountAfterFees(t,r){if(r===void 0)throw new (0, _chunkC6ZGUO4Hcjs.f)({message:"aggregatorsFeeBps is required",level:"error"});let a=new (0, _bignumberjs2.default)(t).times(r).dividedBy(1e4).toFixed(0,_bignumberjs2.default.ROUND_DOWN);return new (0, _bignumberjs2.default)(t).minus(a).toFixed(0,_bignumberjs2.default.ROUND_DOWN)}getInputData({tokenIn:t,amountIn:r,isNative:a,isPermit2Approval:o=!1,permit2SpenderAddress:i}){return{tokenIn:t,amountIn:BigInt(r),isNative:a,isPermit2Approval:o,permit2SpenderAddress:_nullishCoalesce(i, () => (_viem.zeroAddress))}}getMinAmountOut(t,r){if(r===void 0)throw new (0, _chunkC6ZGUO4Hcjs.f)({message:"slippage is required",level:"error"});let a=new (0, _bignumberjs2.default)(t).times(1-r/100);return a.isNaN()||a.isZero()?0n:BigInt(a.toFixed(0))}parseAllowanceRequirements({tokenIn:t,rawAmount:r,spender:a}){return _chunk22J3YJDNcjs.e.call(void 0, t,"BERA")?[]:[{token:t,amount:{raw:r,formatted:_viem.formatUnits.call(void 0, BigInt(r),t.decimals)},spender:a}]}checkChainSupport({tokenIn:t,tokenOut:r}){return this.supportedChains===null?!0:this.supportedChains.includes(t.chainId)&&this.supportedChains.includes(r.chainId)}assertChainSupport({tokenIn:t,tokenOut:r,underlyingToken:a}){if(!this.checkChainSupport({tokenIn:t,tokenOut:r,underlyingToken:a}))throw new (0, _chunkC6ZGUO4Hcjs.f)({message:`${this.name} does not support tokens chain ID: ${t.chainId} and ${r.chainId}`,level:"error"})}async fetch(t,r){try{return await _chunkS3EAKCVMcjs.b.call(void 0, {url:t,name:this.name,type:this.type},{method:"GET",headers:{"Content-Type":"application/json"},...r})}catch(a){let o=_chunk7LNBSOVVcjs.a.call(void 0, {cause:a});throw this.notFoundMessages.some(i=>o.message.includes(i))&&(o.reason=e.PATH_NOT_FOUND_REASON),o}}}, _class.__initStatic(), _class);var _berancersdk = require('@berachain-foundation/berancer-sdk');var _chains = require('viem/chains');for(let e of Object.keys(_internal.chainConfigs)){let{config:t,chainId:r}=_chunk22J3YJDNcjs.a.call(void 0, {chainId:Number(e)});_berancersdk.API_CHAIN_NAMES[r]=t.bex.chainName,_berancersdk.CHAINS[r]=r===_chains.berachain.id?_chains.berachain:_chains.berachainBepolia,_berancersdk.BALANCER_RELAYER[r]=t.bex.relayer,_berancersdk.VAULT[r]=t.bex.vault,_berancersdk.BALANCER_QUERIES[r]=t.bex.queries,_berancersdk.WEIGHTED_POOL_FACTORY_BALANCER_V2[r]=_viem.zeroAddress,_berancersdk.COMPOSABLE_STABLE_POOL_FACTORY[r]=_viem.zeroAddress;let a=new (0, _berancersdk.Token)(r,_viem.zeroAddress,_chunk22J3YJDNcjs.b.decimals,_chunk22J3YJDNcjs.b.name,_chunk22J3YJDNcjs.b.symbol,t.tokens.wbera);_berancersdk.NATIVE_ASSETS[r]=a}var _api3 = require('@berachain/graphql/pol/api');async function rn({textSearch:e,chain:t,first:r,orderBy:a,orderDirection:o,skip:i,fetchPolicy:l,userAddress:n,blacklistedPoolIds:s,...d}={}){let{config:u}=_chunk22J3YJDNcjs.a.call(void 0, d),f=await g("api",d).query({query:_api.GetPools,variables:{textSearch:e,chain:_nullishCoalesce(t, () => (u.bex.chainName)),first:r,orderBy:_nullishCoalesce(a, () => (_api3.GqlPoolOrderBy.TotalLiquidity)),orderDirection:_nullishCoalesce(o, () => (_api3.GqlPoolOrderDirection.Desc)),skip:i,userAddress:n,blacklistedPoolIds:s},fetchPolicy:l});return{pools:_nullishCoalesce(f.data.poolGetPools, () => ([])),count:_nullishCoalesce(f.data.count, () => (0))}}async function ln({poolId:e,account:t,...r}){let{config:a}=_chunk22J3YJDNcjs.a.call(void 0, r),l=(await g("api",r).query({query:_api.GetPool,variables:{id:e,userAddress:t,chain:a.bex.chainName},fetchPolicy:"no-cache"})).data.poolGetPool;if(!l)throw new Error(`Pool not found for id: ${e} and user ${t}`);return l}async function pn(e={}){let{config:t}=_chunk22J3YJDNcjs.a.call(void 0, e);return(await g("api",e).query({query:_api.GetGlobalLiquidityAndSwapVolume,variables:{chain:t.bex.chainName}})).data}async function et({publicClient:e,poolAddress:t}){let r=_berancersdk.weightedPoolV4Abi_V2,a=await e.multicall({contracts:[{address:t,abi:r,functionName:"inRecoveryMode"},{address:t,abi:r,functionName:"getPausedState"}],allowFailure:!1});return{isPoolInRecoveryMode:a[0],isPoolPaused:a[1][0]}}async function vn({poolId:e,publicClient:t,...r}){let{config:a}=_chunk22J3YJDNcjs.a.call(void 0, r),o=e.slice(0,42);if(!_viem.isAddress.call(void 0, o)||!_viem.isHex.call(void 0, e))throw new (0, _chunkC6ZGUO4Hcjs.h)({property:"poolId",value:e,expected:"Hex"});try{let[i,l,n,s,d,u,m,f,b]=await Promise.all([t.readContract({address:o,abi:_viem.erc20Abi,functionName:"name"}),t.readContract({address:a.bex.vault,abi:_berancersdk.vaultV2Abi,functionName:"getPoolTokens",args:[e]}),t.readContract({address:o,abi:_viem.erc20Abi,functionName:"totalSupply"}),t.readContract({address:o,abi:_berancersdk.weightedPoolV4Abi_V2,functionName:"getSwapFeePercentage"}),t.readContract({address:o,abi:_berancersdk.weightedPoolV4Abi_V2,functionName:"version"}),t.readContract({address:o,abi:_berancersdk.weightedPoolV4Abi_V2,functionName:"decimals"}),t.readContract({address:a.bex.factories.composableStable,abi:_berancersdk.weightedPoolFactoryAbi_V3,functionName:"isPoolFromFactory",args:[o]}),t.readContract({address:a.bex.factories.weighted,abi:_berancersdk.weightedPoolFactoryAbi_V3,functionName:"isPoolFromFactory",args:[o]}),et({publicClient:t,poolAddress:o})]),p=Number(u),A=JSON.parse(d),C,B,y;if(m?[C,y]=await Promise.all([t.readContract({address:o,abi:[{type:"function",name:"getActualSupply",stateMutability:"view",inputs:[],outputs:[{type:"uint256"}]}],functionName:"getActualSupply"}),t.readContract({address:o,abi:_berancersdk.stablePoolAbi_V3,functionName:"getAmplificationParameter"})]):A.name==="WeightedPool"&&(B=await t.readContract({address:o,abi:_berancersdk.weightedPoolV4Abi_V2,functionName:"getNormalizedWeights"})),!m&&!f)throw new Error(`Pool ${o} is not a valid BEX pool`);return{name:i,address:o,id:e,poolTokens:[l[0],l[1].map(String),Number(l[2])],totalSupply:_viem.formatUnits.call(void 0, _nullishCoalesce(C, () => (n)),p),swapFee:_viem.formatEther.call(void 0, s),decimals:p,weights:_optionalChain([B, 'optionalAccess', _7 => _7.map, 'call', _8 => _8(T=>_viem.formatEther.call(void 0, T))]),version:A,factory:m?a.bex.factories.composableStable:a.bex.factories.weighted,type:m?_api3.GqlPoolType.Stable:_api3.GqlPoolType.Weighted,amplificationParameter:y?[Number(y[0]),y[1],Number(y[2])]:void 0,pausedState:b}}catch(i){throw _chunk7LNBSOVVcjs.a.call(void 0, {cause:i})}}async function Nn({poolId:e,typeInArray:t,...r}){let{config:a}=_chunk22J3YJDNcjs.a.call(void 0, r);return(await g("api",r).query({query:_api.GetPoolEvents,variables:{poolId:e,typeIn:t,chain:a.bex.chainName}})).data}async function In({poolId:e,chain:t,...r}){if(!e||!_viem.isHex.call(void 0, e))throw new (0, _chunkC6ZGUO4Hcjs.h)({property:"poolId",value:e,expected:"hex string"});let a=g("api",r),{data:o}=await a.query({query:_api.GetPoolHistoricalData,variables:{poolId:e,chain:t}});return o.poolGetSnapshots}var _subgraph = require('@berachain/graphql/dex/subgraph');async function Wn({poolId:e,...t}){if(!_viem.isHex.call(void 0, e))throw new Error("poolId is not a valid hex string");return(await g("bex.subgraph",t).query({query:_subgraph.GetSubgraphPool,variables:{id:e}})).data.pool}var Y=({fieldOrType:e,value:t,required:r=!0,baseUrl:a,components:o})=>{if(!["bool","string"].includes(e)&&r&&(t==null||t===""))return"Required";if(e.startsWith("uint")||e.startsWith("int")){if(typeof t!="string")return"Invalid amount";try{let l=BigInt(t);if(e.startsWith("uint")&&l<0n)return"Negative amount"}catch (e2){return"Invalid amount"}return null}switch(e){case"string":return t!==void 0&&typeof t!="string"?"Invalid amount":null;case"bool":return typeof t!="boolean"?"Invalid amount":null;case"title":return t.length===0?"Required":null;case"description":return t.length===0?"Required":null;case"forumLink":if(t.length===0)return"Required";if(!URL.canParse(t))return"Invalid address";let l=new URL(a);return t.startsWith(l.toString())?null:"Must be a berachain forum link";case"address":return _viem.isAddress.call(void 0, t,{strict:!0})?null:"Invalid address";case"hex":return _viem.isHex.call(void 0, t,{strict:!0})?null:"Invalid address";case"abi":try{JSON.parse(t)}catch (e3){return"Invalid ABI"}return null;case"action":return _viem.isAddress.call(void 0, t,{strict:!0})?null:"Invalid address";case"tuple":if(typeof t=="object"&&Array.isArray(o)){let n={};for(let s of o)n[s.name]=Y({fieldOrType:s.type,value:t[s.name],components:s.components});return Object.values(n).every(s=>s===null)?null:n}return null;case"tuple[]":if(Array.isArray(t)){let n=t.map(s=>Y({fieldOrType:"tuple",value:s,components:o}));return n.every(s=>s===null)?null:n}return null;case"logoURI":return t===void 0||t===""||URL.canParse(t)&&new URL(t).protocol==="https:"?null:"Must be HTTPS or IPFS";case"url":return t===void 0||t===""||URL.canParse(t)&&new URL(t).protocol==="https:"?null:"Must be HTTPS";default:return console.error(`Invalid field or type: ${e}`),null}};var _governance = require('@berachain/graphql/governance');var Rr=!1,_n= exports.p =[_governance.ProposalStatus.Active,_governance.ProposalStatus.PendingQueue,_governance.ProposalStatus.PendingExecution,_governance.ProposalStatus.Defeated,_governance.ProposalStatus.QuorumNotReached];function fe(e,t){let r=Date.now()/1e3;if(t!==void 0){if(e.status===_governance.ProposalStatus.CanceledByGuardian)return _governance.ProposalStatus.CanceledByGuardian;if(t===2)return Number(e.voteStartAt)<r?_governance.ProposalStatus.CanceledByUser:_governance.ProposalStatus.CanceledByGuardian;if(t===3)return e.pollResult?!e.quorum||BigInt(e.quorum)>BigInt(e.pollResult.totalTowardsQuorum)?_governance.ProposalStatus.QuorumNotReached:_governance.ProposalStatus.Defeated:_governance.ProposalStatus.QuorumNotReached;if(t===4)return _governance.ProposalStatus.PendingQueue;if(t===5)return Number(e.queueEnd)<Date.now()/1e3?_governance.ProposalStatus.PendingExecution:_governance.ProposalStatus.InQueue;if(t===6)return console.warn("Unexpected expired state on proposal id: ",e.id),_governance.ProposalStatus.Defeated}return e.status===_governance.ProposalStatus.InQueue&&Number(e.queueEnd)<Date.now()/1e3?_governance.ProposalStatus.PendingExecution:Rr&&t===1&&e.quorum&&BigInt(e.quorum)<BigInt(e.pollResult.totalTowardsQuorum)&&Number(e.pollResult.forPercentage)>Number(e.pollResult.againstPercentage)?_governance.ProposalStatus.PendingQueue:e.status===_governance.ProposalStatus.Pending?Number(e.voteStartAt)<r&&Number(e.voteEndAt)>r?_governance.ProposalStatus.Active:Number(e.voteEndAt)<r?e.pollResult?!e.quorum||BigInt(e.quorum)>BigInt(e.pollResult.totalTowardsQuorum)?_governance.ProposalStatus.QuorumNotReached:_optionalChain([e, 'access', _9 => _9.pollResult, 'optionalAccess', _10 => _10.against])>_optionalChain([e, 'access', _11 => _11.pollResult, 'optionalAccess', _12 => _12.for])?_governance.ProposalStatus.Defeated:_governance.ProposalStatus.PendingQueue:_governance.ProposalStatus.QuorumNotReached:_governance.ProposalStatus.Pending:e.status===_governance.ProposalStatus.Active&&Number(e.voteEndAt)<r?!e.quorum||BigInt(e.quorum)>BigInt(e.pollResult.totalTowardsQuorum)?_governance.ProposalStatus.QuorumNotReached:BigInt(_nullishCoalesce(_optionalChain([e, 'access', _13 => _13.pollResult, 'optionalAccess', _14 => _14.against]), () => (0n)))>BigInt(_nullishCoalesce(_optionalChain([e, 'access', _15 => _15.pollResult, 'optionalAccess', _16 => _16.for]), () => (0n)))?_governance.ProposalStatus.Defeated:_governance.ProposalStatus.PendingQueue:e.status===_governance.ProposalStatus.InQueue&&Number(e.queueEnd)<Date.now()/1e3?_governance.ProposalStatus.PendingExecution:e.status}async function Yn({where:e,orderBy:t,orderDirection:r,offset:a=0,perPage:o=20,text:i,...l}){try{if(o>1e3)throw new Error("perPage must be less than 1000");let n=g("governance.subgraph",l),[s]=await Promise.all([i?n.query({query:_governance.SearchProposals,variables:{offset:a,limit:o,where:e,text:i}}):n.query({query:_governance.GetProposals,variables:{offset:a,limit:o,where:e,orderBy:t,orderDirection:r}})]);return s.data.proposals.map(d=>({...d,status:fe(d)}))}catch(n){throw console.error("getAllProposals:",n),n}}var Zn=(e,t)=>{let r={};return r.title=Y({fieldOrType:"title",value:e.title}),r.description=Y({fieldOrType:"description",value:e.description}),r.forumLink=Y({fieldOrType:"forumLink",value:e.forumLink,baseUrl:t.forumLink}),r};async function oi({proposalId:e,...t}){let a=await g("governance.subgraph",t).query({query:_governance.GetProposal,variables:{id:e}});if(a.data.proposal)return{...a.data.proposal,status:fe(a.data.proposal)}}var _graymatter = require('gray-matter'); var _graymatter2 = _interopRequireDefault(_graymatter);var Gr=e=>{let t=/#(?:([\w-]+)# )?(.+)\n([\s\S]*)/,r=e.match(t);if(r){let a=r[1]||null,o=r[2],i=r[3].replace(`
|
|
2
|
-
`,"<br />");return{type:a,title:o,content:i}}throw new Error("Invalid proposal body")},st= exports.u =e=>{if(!e)return{isFrontMatter:!1,data:{title:"Loading..."},content:"",matter:"",language:"",orig:"",stringify:()=>""};let t=_nullishCoalesce(_optionalChain([e, 'optionalAccess', _17 => _17.description]), () => (""));if(_graymatter2.default.test(t))return{..._graymatter2.default.call(void 0, t),isFrontMatter:!0};try{let r=Gr(t);return{isFrontMatter:!1,data:{title:r.title},content:r.content,matter:"",language:"",orig:t,stringify:()=>t}}catch (e4){return{isFrontMatter:!1,data:{title:_optionalChain([e, 'optionalAccess', _18 => _18.description, 'optionalAccess', _19 => _19.split, 'call', _20 => _20(`
|
|
3
|
-
`), 'access', _21 => _21[0], 'access', _22 => _22.slice, 'call', _23 => _23(0,100)])},content:t,matter:"",language:"",orig:t,stringify:()=>t}}};var _berachainGovernance = require('@berachain/abis/gov/berachainGovernance');async function pi(e){_chunk7LNBSOVVcjs.c.call(void 0, e.publicClient);let t;"tx"in e?t=e.tx:t=await e.publicClient.getTransactionReceipt({hash:e.txHash});let r=_optionalChain([t, 'optionalAccess', _24 => _24.logs])?_optionalChain([_viem.parseEventLogs.call(void 0, {abi:_berachainGovernance.berachainGovernanceAbi,logs:t.logs,eventName:"ProposalCreated"}), 'optionalAccess', _25 => _25.at, 'call', _26 => _26(0)]):void 0;if(!t||!r)return null;let a=await e.publicClient.getBlock({blockNumber:t.blockNumber}),o=st({description:_optionalChain([r, 'optionalAccess', _27 => _27.args, 'access', _28 => _28.description])});return{id:String(r.args.proposalId),proposalId:String(_optionalChain([r, 'optionalAccess', _29 => _29.args, 'access', _30 => _30.proposalId])),createdAt:a.timestamp.toString(),title:o.data.title,createdAtBlock:a.timestamp.toString(),voteStartAt:String(_optionalChain([r, 'optionalAccess', _31 => _31.args, 'access', _32 => _32.voteStart])),voteEndAt:String(_optionalChain([r, 'optionalAccess', _33 => _33.args, 'access', _34 => _34.voteEnd])),proposer:_optionalChain([r, 'optionalAccess', _35 => _35.args, 'access', _36 => _36.proposer]),description:o.content,unverifiedForumLink:o.data.forumLink,pollResult:{for:"0",forVotersCount:0,forPercentage:"0",against:"0",againstVotersCount:0,againstPercentage:"0",abstain:"0",abstainVotersCount:0,abstainPercentage:"0",total:"0",totalVotersCount:0,totalTowardsQuorum:"0"},status:_governance.ProposalStatus.Pending,quorum:null,topics:o.data.topics,votes:[],executableCalls:_optionalChain([r, 'optionalAccess', _37 => _37.args, 'access', _38 => _38.targets, 'access', _39 => _39.map, 'call', _40 => _40((i,l)=>({__typename:"ExecutableCall",id:`${t.transactionHash}-${l}`,target:i,value:String(_optionalChain([r, 'optionalAccess', _41 => _41.args, 'access', _42 => _42.values, 'access', _43 => _43[l]])),calldata:_optionalChain([r, 'optionalAccess', _44 => _44.args, 'access', _45 => _45.calldatas, 'access', _46 => _46[l]])}))]),timelock:void 0}}async function yi({variables:e,...t}){return g("governance.subgraph",t).query({query:_governance.GetProposalVotes,variables:e})}var _honey = require('@berachain/graphql/honey');async function Ci({days:e,...t}){return(await g("honey.subgraph",t).query({query:_honey.GetChartData,variables:{interval:_honey.Aggregation_Interval.Day,first:e}})).data}var _honeyFactory = require('@berachain/abis/honey/honeyFactory');async function Vi({client:e,collateralList:t,...r}){let{config:a}=_chunk22J3YJDNcjs.a.call(void 0, r);try{let o=await e.readContract({address:a.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"getWeights"});return t.reduce((l,n,s)=>Object.assign(l,{[n.address]:o[s]}),{})}catch(o){throw console.log(o),o}}async function lt({address:e,publicClient:t,chainId:r}){try{if(!t)throw new Error("Public client not found");let[a,o,i]=await Promise.all([t.readContract({address:e,abi:_viem.erc20Abi,functionName:"decimals"}),t.readContract({address:e,abi:_viem.erc20Abi,functionName:"name"}),t.readContract({address:e,abi:_viem.erc20Abi,functionName:"symbol"})]),l={address:e,decimals:a,name:o,symbol:i,chainId:r};if(typeof l.decimals!="number"||typeof l.name!="string"||typeof l.symbol!="string")throw new Error(`Invalid ERC20 token. Address: ${e}`);return l}catch(a){throw console.error(a),_chunk7LNBSOVVcjs.a.call(void 0, {cause:a})}}async function Re({client:e,tokenData:t,preferredCollateralOrder:r,...a}){let{config:o}=_chunk22J3YJDNcjs.a.call(void 0, a),[i,l]=await Promise.all([e.readContract({address:o.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"numRegisteredAssets"}),e.readContract({address:o.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"referenceCollateral"})]),n=[];for(let f=0;f<i;f++)n.push(e.readContract({address:o.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"registeredAssets",args:[BigInt(f)]}));let s=await Promise.all(n),u=(await Promise.all(s.map(f=>{let b=_optionalChain([t, 'optionalAccess', _47 => _47.find, 'call', _48 => _48(p=>_chunk22J3YJDNcjs.e.call(void 0, p,f))]);return b||lt({address:f,chainId:o.chainId,publicClient:e})}))).filter(f=>!!f).sort((f,b)=>s.indexOf(f.address)-s.indexOf(b.address)).map((f,b)=>({...f,order:b}));if(_optionalChain([r, 'optionalAccess', _49 => _49.length])){let f=[];for(let b of r){let p=u.find(A=>_chunk22J3YJDNcjs.e.call(void 0, A.address,b.address));p&&(f.push(p),u.splice(u.indexOf(p),1))}u.unshift(...f)}let m=u.find(f=>_chunk22J3YJDNcjs.e.call(void 0, f,l));if(!u)throw new Error("Collateral tokens not found");if(!m)throw new Error("Reference collateral address not found");return{collaterals:u,referenceCollateral:m}}var _honeyFactoryReader = require('@berachain/abis/honey/honeyFactoryReader');async function ct({client:e,collateral:t,latestPrices:r,isPythWrapperEnabled:a,...o}){let{config:i}=_chunk22J3YJDNcjs.a.call(void 0, o);try{let l=e.readContract({address:i.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"isBadCollateralAsset",args:[t.address]}),n=e.readContract({address:i.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"isPegged",args:[t.address]});if(a&&r){let u=r.prices.map(m=>_viem.parseUnits.call(void 0, m,18));n=e.readContract({address:i.honey.reader,abi:_honeyFactoryReader.honeyFactoryReaderAbi,functionName:"isPeggedWithPrice",args:[t.address,u[0]]})}let[s,d]=await Promise.all([l,n]);return{isBlacklisted:s,isDepegged:!d}}catch(l){throw console.log(l),l}}var _collateralVault = require('@berachain/abis/honey/collateralVault');async function ae({client:e,asset:t,amount:r,...a}){let{config:o}=_chunk22J3YJDNcjs.a.call(void 0, a);try{let[i,l]=await Promise.all([e.readContract({address:o.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"vaults",args:[t]}),e.readContract({address:o.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"collectedFees",args:[o.honey.factory,t]})]);return await e.readContract({address:i,abi:_collateralVault.collateralVaultAbi,functionName:"balanceOf",args:[o.honey.factory]})+_viem.parseEther.call(void 0, _nullishCoalesce(r, () => ("0")))-l}catch(i){throw console.log(i),i}}var Mr=_viem.parseEther.call(void 0, "1");async function Zi({client:e,asset:t,amount:r,isMint:a,isPythWrapperEnabled:o,latestPrices:i,...l}){let{config:n}=_chunk22J3YJDNcjs.a.call(void 0, l);try{let s=await e.readContract({address:n.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"globalCap"});if(s>=Mr)return!1;let[{collaterals:d},u]=await Promise.all([Re({client:e}),Hr({client:e,asset:t,amount:r,latestPrices:i,isPythWrapperEnabled:o})]);if(!u)return;for(let m in u)if((a&&_chunk22J3YJDNcjs.e.call(void 0, d[m],t)||!a&&_chunk22J3YJDNcjs.e.call(void 0, d[m],t))&&u[m]>s-_chunkS3EAKCVMcjs.d)return!0;return!1}catch(s){throw console.log(s),s}}async function Hr({client:e,asset:t,amount:r,latestPrices:a,isPythWrapperEnabled:o}){let{collaterals:i}=await Re({client:e}),l=0n,n=[];for(let s of i){let d=await ct({client:e,collateral:t,latestPrices:a,isPythWrapperEnabled:o});if(_optionalChain([d, 'optionalAccess', _50 => _50.isBlacklisted])||_optionalChain([d, 'optionalAccess', _51 => _51.isDepegged]))continue;let u=await ae({client:e,asset:s.address,amount:_chunk22J3YJDNcjs.e.call(void 0, s,t)?r:"0"});u&&(l+=u,n.push(u))}if(l===0n)return n;for(let s in i)n[s]=_viem.parseEther.call(void 0, n[s].toString())/l;return n}async function as({...e}={}){return(await g("honey.subgraph",e).query({query:_honey.GetGlobalData})).data}var Jr=(s=>(s.Mint="previewMintHoney",s.MintWithPrice="previewMintHoneyWithPrices",s.RequiredCollateral="previewMintCollaterals",s.RequiredCollateralWithPrice="previewMintCollateralsWithPrices",s.Redeem="previewRedeemCollaterals",s.RedeemWithPrice="previewRedeemCollateralsWithPrices",s.HoneyToRedeem="previewRedeemHoney",s.HoneyToRedeemWithPrice="previewRedeemHoneyWithPrices",s))(Jr||{});async function ls({client:e,collateral:t,collateralList:r,amount:a,method:o,latestPrices:i,isPythWrapperEnabled:l,...n}){let{config:s}=_chunk22J3YJDNcjs.a.call(void 0, n);try{let d=o==="previewMintHoney"||o==="previewRedeemHoney"||o==="previewMintHoneyWithPrices"||o==="previewRedeemHoneyWithPrices",u=_viem.parseUnits.call(void 0, a,d?t.decimals:18),m,f=[t.address,u];if(l&&i){let p=i.prices.map(A=>_viem.parseUnits.call(void 0, A,18));f=[t.address,u,p]}if(d){let p=await e.readContract({address:s.honey.reader,abi:_honeyFactoryReader.honeyFactoryReaderAbi,functionName:o,args:f});m={collaterals:p[0],honey:p[1]}}else m={collaterals:await e.readContract({address:s.honey.reader,abi:_honeyFactoryReader.honeyFactoryReaderAbi,functionName:o,args:f}),honey:u};let b=r.reduce((p,A)=>{let C=A.order;return A.address===t.address&&m.collaterals[C]===BigInt(0)?Object.assign(p,{[A.address]:m.collaterals[0]}):Object.assign(p,{[A.address]:m.collaterals[C]})},{});return b[t.address]===BigInt(0)&&(b[t.address]=m.collaterals[0]),{collaterals:b,honey:m.honey}}catch(d){throw console.log("error",d),d}}async function fs({client:e,collateralList:t,honeyFactoryAddress:r,...a}){let{config:o}=_chunk22J3YJDNcjs.a.call(void 0, a),i=_nullishCoalesce(r, () => (o.honey.factory));return await Promise.all(t.map(async n=>{let s=await e.readContract({address:o.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"vaults",args:[n.address]}),[d,u,[m,f]]=await Promise.all([e.readContract({address:s,abi:_collateralVault.collateralVaultAbi,functionName:"balanceOf",args:[i]}),e.readContract({address:i,abi:_honeyFactory.honeyFactoryAbi,functionName:"collectedAssetFees",args:[n.address]}),e.readContract({address:s,abi:_collateralVault.collateralVaultAbi,functionName:"custodyInfo"})]),b=await e.readContract({address:s,abi:_collateralVault.collateralVaultAbi,functionName:"convertToAssets",args:[d-u]});return{...n,balance:{raw:b.toString(),formatted:_viem.formatUnits.call(void 0, b,n.decimals)},vault:m?f:s}}))}var _hermesclient = require('@pythnetwork/hermes-client');var Yr="https://hermes.pyth.network";async function bt({priceFeedId:e}){let r=await new (0, _hermesclient.HermesClient)(Yr,{}).getLatestPriceUpdates(e,{encoding:"hex",parsed:!0});return{calldata:r.binary.data.map(a=>`0x${a}`),prices:_nullishCoalesce(_optionalChain([r, 'access', _52 => _52.parsed, 'optionalAccess', _53 => _53.flatMap, 'call', _54 => _54(a=>_viem.formatUnits.call(void 0, BigInt(a.price.price),a.price.expo*-1))]), () => ([]))}}async function vs({client:e,asset:t,amount:r,isMint:a,referenceCollateral:o,...i}){let{config:l}=_chunk22J3YJDNcjs.a.call(void 0, i);if(t===o.address)return!1;try{let[n]=await Promise.all([e.readContract({address:l.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"relativeCap",args:[t]})]),[s,d]=await Promise.all([ae({client:e,asset:t,amount:a?r:void 0}),ae({client:e,asset:o.address,amount:a?void 0:r})]);return d===0n?s!==0n:_viem.parseEther.call(void 0, (_nullishCoalesce(s, () => (0n))).toString())/(_nullishCoalesce(d, () => (0n)))>=n-_chunkS3EAKCVMcjs.d}catch(n){throw console.log(n),n}}async function yt({client:e,priceFeedId:t,...r}){let{config:a}=_chunk22J3YJDNcjs.a.call(void 0, r);try{return await e.readContract({address:a.external.pyth,abi:_chunkOUD27MU7cjs.a,functionName:"getUpdateFee",args:[t]})}catch(o){throw console.error("getPythUpdateFee",o),o}}var _honeyFactoryPythWrapper = require('@berachain/abis/honey/honeyFactoryPythWrapper');var Ds=async({state:e,publicClient:t,priceFeedMap:r,collateralList:a,isPythWrapperEnabled:o,...i})=>{let{config:l}=_chunk22J3YJDNcjs.a.call(void 0, i),n=_chunk22J3YJDNcjs.d.call(void 0, i),{actionType:s,fromAmount:d,collaterals:u,isBasketModeEnabled:m}=e,f=o?l.honey.pythWrapper:l.honey.factory,b=a.map(p=>p.address);if(d[0]&&b.length){let p=s==="mint";if(o&&t&&r){let C=(await bt({priceFeedId:Object.values(r)})).calldata,B=0n;try{B=await yt({client:t,priceFeedId:C})}catch (e5){B=_chunkS3EAKCVMcjs.j.call(void 0, u.length)}return({account:y})=>{let T=[C,_optionalChain([u, 'access', _55 => _55[0], 'optionalAccess', _56 => _56.address]),_viem.parseUnits.call(void 0, d[0],_nullishCoalesce((p?_optionalChain([u, 'access', _57 => _57[0], 'optionalAccess', _58 => _58.decimals]):_optionalChain([n, 'optionalAccess', _59 => _59.decimals])), () => (18))),y,!!m];return{address:f,abi:_honeyFactoryPythWrapper.honeyFactoryPythWrapperAbi,functionName:p?"mint":"redeem",params:T,value:B}}}return({account:A})=>{let C=[_optionalChain([u, 'access', _60 => _60[0], 'optionalAccess', _61 => _61.address]),_viem.parseUnits.call(void 0, d[0],_nullishCoalesce((p?_optionalChain([u, 'access', _62 => _62[0], 'optionalAccess', _63 => _63.decimals]):_optionalChain([n, 'optionalAccess', _64 => _64.decimals])), () => (18))),A,!!m];return{value:0n,address:f,abi:_honeyFactory.honeyFactoryAbi,functionName:p?"mint":"redeem",params:C}}}throw new Error("Something went wrong while creating the Honey swap payload")};async function Ms({client:e,isMint:t,collateralList:r,latestPrices:a,isPythWrapperEnabled:o,...i}){let{config:l}=_chunk22J3YJDNcjs.a.call(void 0, i);if(o&&a){if(r.length===0)return;let s=a.prices.map(u=>_viem.parseUnits.call(void 0, u,18));return await e.readContract({address:l.honey.reader,abi:_honeyFactoryReader.honeyFactoryReaderAbi,functionName:"isBasketModeEnabledWithPrices",args:[t,s]})}return await e.readContract({address:l.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"isBasketModeEnabled",args:[t]})}async function $s({block:e,currentBlock:t,blockTime:r,publicClient:a}){if(_chunk7LNBSOVVcjs.b.call(void 0, e,"block"),_chunk7LNBSOVVcjs.c.call(void 0, a),t>e){let i=await a.getBlock({blockNumber:BigInt(e),includeTransactions:!1});return{timestamp:Number(i.timestamp)}}return{timestamp:_chunkS3EAKCVMcjs.k.call(void 0, Date.now())+r*(Number(e)-Number(t))}}var _rewardVault = require('@berachain/abis/pol/rewards/rewardVault');var oa=(a=>(a.Duration="duration",a.TargetRate="targetRate",a.TargetApr="targetApr",a))(oa||{});async function Xs(e,t){let[r,a,o,i,l,n]=await Promise.all([t.readContract({address:e,abi:_rewardVault.rewardVaultAbi,functionName:"rewardsDuration"}),t.readContract({address:e,abi:_rewardVault.rewardVaultAbi,functionName:"rewardVaultManager"}),t.readContract({address:e,abi:_rewardVault.rewardVaultAbi,functionName:"rewardRate"}),t.readContract({address:e,abi:_rewardVault.rewardVaultAbi,functionName:"periodFinish"}),t.readContract({address:e,abi:_rewardVault.rewardVaultAbi,functionName:"targetRewardsPerSecond"}),t.readContract({address:e,abi:_rewardVault.rewardVaultAbi,functionName:"minRewardDurationForTargetRate"})]),s=o*(i-BigInt(_chunkS3EAKCVMcjs.k.call(void 0, Date.now())))/10n**18n;return{rewardsDuration:Number(r),mode:l===0n?"duration":"targetRate",manager:a,rewardRate:_viem.formatUnits.call(void 0, o,36),periodFinish:Number(i),availableRewards:_viem.formatUnits.call(void 0, s,18),minRewardDurationForTargetRate:Number(n),targetRewardsPerSecond:_viem.formatUnits.call(void 0, l,36)}}function ge(e,t,r){return e?r*t*_chunkS3EAKCVMcjs.x.call(void 0, 1)/e:null}function na(e,t,r){return r?e*r/(t*_chunkS3EAKCVMcjs.x.call(void 0, 1)):0}function tl({availableRewards:e,periodFinish:t,tvl:r,bgtPrice:a,MIN_REWARD_DURATION:o,MAX_REWARD_DURATION:i,...l}){let n=_chunkS3EAKCVMcjs.k.call(void 0, Date.now());if(n>t)return{apr:0,duration:0,rewardRate:0,targetRate:null,periodFinish:0,mode:null};if(l.mode==="targetRate"||l.mode==="targetApr"){let m,{minRewardDurationForTargetRate:f,currentDuration:b}=l;if(l.mode==="targetRate"?m=l.rewardRate:m=na(l.apr,a,r),m===0){let C=Math.min(b,i),B=e?e/C:0;return{apr:ge(r,a,B),duration:C,rewardRate:B,targetRate:null,periodFinish:C+n,mode:"duration"}}let p=f||o,A=e?e/m:0;if(A<p){let C=e?e/p:0;return{apr:ge(r,a,C),duration:p,rewardRate:C,targetRate:C.toString(),periodFinish:p+n,mode:null}}return{apr:ge(r,a,m),duration:A,rewardRate:m,targetRate:m.toString(),periodFinish:A+n,mode:null}}let{duration:s}=l,d=e/s;return{apr:ge(r,a,d),mode:null,targetRate:null,duration:s,rewardRate:d,periodFinish:s+n}}async function nl({address:e,account:t,...r}){let{config:a}=_chunk22J3YJDNcjs.a.call(void 0, r),o=`${a.bonder}/vaults/${e}/earnings/${t}`;return _chunkS3EAKCVMcjs.c.call(void 0, {url:o,type:"rest"})}async function be({filter:e,publicClient:t,...r}={}){let o=await g("api",r).query({query:_api3.GetVaults,variables:e}),i=await Promise.allSettled(o.data.polGetRewardVaults.vaults.map(async n=>{if(t)return Promise.allSettled(n.activeIncentives.map(s=>t.readContract({abi:_rewardVault.rewardVaultAbi,address:n.address,functionName:"incentives",args:[s.tokenAddress]})))})),l=o.data.polGetRewardVaults.vaults.map((n,s)=>{let d=0,u=n.activeIncentives.map((m,f)=>{let b=Number(m.remainingAmountUsd)&&Number(m.remainingAmount)?Number(m.remainingAmountUsd)/Number(m.remainingAmount):0,p=_optionalChain([i, 'access', _65 => _65[s], 'optionalAccess', _66 => _66.status])==="fulfilled"&&_optionalChain([i, 'access', _67 => _67[s], 'optionalAccess', _68 => _68.value, 'optionalAccess', _69 => _69[f], 'optionalAccess', _70 => _70.status])==="fulfilled"?_viem.formatUnits.call(void 0, BigInt(i[s].value[f].value[2]),m.token.decimals):m.remainingAmount;return d+=Number(p)*Number(b),{...m,remainingAmount:p}});return{...n,dynamicData:{...n.dynamicData,allTimeReceivedBGTAmount:_nullishCoalesce(_optionalChain([n, 'access', _71 => _71.dynamicData, 'optionalAccess', _72 => _72.allTimeReceivedBGTAmount]), () => ("0")),bgtCapturePercentage:_nullishCoalesce(_optionalChain([n, 'access', _73 => _73.dynamicData, 'optionalAccess', _74 => _74.bgtCapturePercentage]), () => ("0")),activeIncentivesValueUsd:d.toString(),activeIncentivesRateUsd:_nullishCoalesce(_optionalChain([n, 'access', _75 => _75.dynamicData, 'optionalAccess', _76 => _76.activeIncentivesRateUsd]), () => ("0")),bgtCapturePerBlock:_nullishCoalesce(_optionalChain([n, 'access', _77 => _77.dynamicData, 'optionalAccess', _78 => _78.bgtCapturePerBlock]), () => ("0"))},activeIncentives:u}});return{pagination:o.data.polGetRewardVaults.pagination,gaugeList:l}}async function ht(e={}){let{config:t}=_chunk22J3YJDNcjs.a.call(void 0, e),a=await g("api",e).query({query:_api3.GlobalData,variables:{chain:t.bex.chainName}});return{...a.data.polGetGlobalInfo,top3EmittingValidators:a.data.top3EmittingValidators.validators,allValidatorsCount:a.data.allValidatorsCount.pagination.totalCount}}var _bgt = require('@berachain/abis/pol/bgt');async function wt({publicClient:e,...t}){let{config:r}=_chunk22J3YJDNcjs.a.call(void 0, t);_chunk7LNBSOVVcjs.c.call(void 0, e);try{let a=await e.readContract({address:r.tokens.bgt,abi:_bgt.bgtAbi,functionName:"totalBoosts",args:[]});return _viem.formatEther.call(void 0, a)}catch(a){throw console.log(a),a}}async function Ct({publicClient:e,...t}){let{config:r}=_chunk22J3YJDNcjs.a.call(void 0, t);_chunk7LNBSOVVcjs.c.call(void 0, e);try{let a=await e.readContract({address:r.tokens.bgt,abi:_viem.erc20Abi,functionName:"totalSupply",args:[]});return _viem.formatEther.call(void 0, _nullishCoalesce(a, () => (0n)))}catch(a){throw console.log(a),a}}async function Pt(e){let{gaugeList:t}=await be({filter:{orderBy:_api3.GqlRewardVaultOrderBy.Apr,orderDirection:_api3.GqlRewardVaultOrderDirection.Desc,pageSize:e,where:{includeNonWhitelisted:!1}}});return t}async function Fl(e){let[t,r,a,o]=await Promise.allSettled([ht(),Pt(300),Ct({publicClient:e}),wt({publicClient:e})]);return t.status==="rejected"&&_chunk7LNBSOVVcjs.f.captureException(_chunk7LNBSOVVcjs.a.call(void 0, {cause:t.reason,level:"warning"})),r.status==="rejected"&&_chunk7LNBSOVVcjs.f.captureException(_chunk7LNBSOVVcjs.a.call(void 0, {cause:r.reason,level:"warning"})),a.status==="rejected"&&_chunk7LNBSOVVcjs.f.captureException(_chunk7LNBSOVVcjs.a.call(void 0, {cause:a.reason,level:"warning"})),o.status==="rejected"&&_chunk7LNBSOVVcjs.f.captureException(_chunk7LNBSOVVcjs.a.call(void 0, {cause:o.reason,level:"warning"})),{bgtTotalSupply:a.status==="fulfilled"?a.value:void 0,globalCuttingBoard:r.status==="fulfilled"?r.value:[],bgtTotalBoosts:o.status==="fulfilled"?o.value:void 0,...t.status==="fulfilled"?t.value:{}}}var _subgraph3 = require('@berachain/graphql/pol/subgraph');async function Bt({...e}){let t=g("pol.subgraph",e),{data:r}=await t.query({query:_subgraph3.GetIncentiveFeeClaimStats});if(r.incentiveFeeClaims.length>0){let a=_optionalChain([r, 'optionalAccess', _79 => _79.incentiveFeeClaims, 'access', _80 => _80.reduce, 'call', _81 => _81((l,n)=>l+Number(n.payoutAmount),3e4)]),i=(_optionalChain([r, 'optionalAccess', _82 => _82.incentiveFeeClaims, 'access', _83 => _83.filter, 'call', _84 => _84(l=>Number(l.timestamp)/1e3>Date.now()-_chunkS3EAKCVMcjs.q.call(void 0, 1))])).reduce((l,n)=>l+Number(n.payoutAmount),0);return{sumAllClaims:a,sumClaimsInLast24Hours:i}}return{sumAllClaims:0,sumClaimsInLast24Hours:0}}async function Ll(e={}){let{config:t}=_chunk22J3YJDNcjs.a.call(void 0, e);try{let a=await(await fetch(t.lists.rewardVaultList)).json();if(!a.protocols)throw new Error("Missing protocols in market list");return{marketList:a.protocols,marketDictionary:a.protocols.reduce((o,i)=>(o[i.name]=i,o),{})}}catch(r){throw console.error("Error fetching validator information",r),r}}async function Jl({account:e,validator:t,page:r=1,perPage:a=1e3,...o}){let{config:i}=_chunk22J3YJDNcjs.a.call(void 0, o),l=await fetch(`${i.pol.bribeBoostApi}/api/v1/wallets/${e.toLowerCase()}/proofs/validator/${t.toLowerCase()}?page=${r}&per_page=${a}`,{cache:"no-store"});if(!l.ok){let s=await _chunkS3EAKCVMcjs.a.call(void 0, l);throw new (0, _chunkC6ZGUO4Hcjs.f)({message:"Failed to fetch proofs on server",cause:{error:s,result:l,account:e,validator:t},reason:_optionalChain([s, 'optionalAccess', _85 => _85.reason])})}return await l.json()}var _wberaStakerVault = require('@berachain/abis/pol/wberaStakerVault');async function zl({address:e,publicClient:t}){return _chunk7LNBSOVVcjs.c.call(void 0, t),t.readContract({address:e,abi:_wberaStakerVault.wberaStakerVaultAbi,functionName:"previewRedeem",args:[_viem.parseUnits.call(void 0, "1",18)]}).then(r=>Number(_viem.formatUnits.call(void 0, r,18))).catch(()=>0)}async function au({address:e,chainName:t,...r}){let{config:a}=_chunk22J3YJDNcjs.a.call(void 0, r),o=_nullishCoalesce(t, () => (a.bex.chainName)),i=g("api",r),{data:l}=await i.query({query:_api3.GetRewardVault,variables:{vaultId:e,chain:o}});if(!_optionalChain([l, 'optionalAccess', _86 => _86.rewardVault]))throw new (0, _chunk6LDOG5RLcjs.b)({resource:"Reward vault",id:e,chainId:a.chainId});return l.rewardVault}async function cu({address:e,stakingToken:t,publicClient:r}){let a=await r.readContract({address:e,abi:_rewardVault.rewardVaultAbi,functionName:"getWhitelistedTokens"}),i=a.findIndex(n=>_berancersdk.isSameAddress.call(void 0, t,n))!==-1?await r.readContract({address:e,abi:_rewardVault.rewardVaultAbi,functionName:"totalSupply"}):0n,l=await Promise.allSettled(a.map(async n=>{let[s,d,u,m]=await Promise.all([r.readContract({address:e,abi:_rewardVault.rewardVaultAbi,functionName:"incentives",args:[n]}),r.readContract({address:n,abi:_viem.erc20Abi,functionName:"decimals"}),r.readContract({address:n,abi:_viem.erc20Abi,functionName:"symbol"}),r.readContract({address:n,abi:_viem.erc20Abi,functionName:"balanceOf",args:[e]})]),[f,b,p,A]=s;return{token:n,manager:A,minIncentiveRate:_viem.formatUnits.call(void 0, f,d),incentiveRate:_viem.formatUnits.call(void 0, b,d),remainingAmount:_viem.formatUnits.call(void 0, p,d),symbol:u,decimals:d,pendingAmount:_berancersdk.isSameAddress.call(void 0, t,n)?_viem.formatUnits.call(void 0, m-i-p,d):_viem.formatUnits.call(void 0, m-p,d)}}));return l.forEach((n,s)=>{n.status==="rejected"&&_chunk7LNBSOVVcjs.f.captureException(new (0, _chunkC6ZGUO4Hcjs.f)({reason:n.reason,message:"Incorrect incentives token received.",level:"error",extra:{token:a[s],address:e,error:n.reason}}))}),l.map(n=>n.status==="fulfilled"?n.value:null).filter(n=>n!==null)}async function pu({address:e,publicClient:t}){return await t.readContract({address:e,abi:_rewardVault.rewardVaultAbi,functionName:"stakeToken"})}function Ba(e){return e==="DAY"?_api3.GqlSWberaVaultMetadataResolution.OneDay:_api3.GqlSWberaVaultMetadataResolution.SevenDays}async function Au({window:e,...t}){let{config:r}=_chunk22J3YJDNcjs.a.call(void 0, t),a=g("api",t);try{let o=await a.query({query:_api3.GetSWberaVaultMetadata,variables:{chain:r.bex.chainName,resolution:Ba(_nullishCoalesce(e, () => ("DAY")))}}),{apr:i}=o.data.polGetSWberaVaultMetadata;return Number(i)}catch(o){throw console.error("Failed to get SW Bera APR",o),o}}async function Bu({chain:e,range:t=_api3.GqlVaultSnapshotDataRange.ThirtyDays,...r}={}){let{config:a}=_chunk22J3YJDNcjs.a.call(void 0, r),o=g("api",r);try{return(await o.query({query:_api3.GetSWberaVaultSnapshots,variables:{chain:_nullishCoalesce(e, () => (a.bex.chainName)),range:t}})).data.polGetSWberaVaultSnapshots}catch(i){throw console.error("Failed to get SW Bera Snapshots",i),i}}async function ne({publicClient:e,address:t}){let r=await e.readContract({address:t,abi:_wberaStakerVault.wberaStakerVaultAbi,functionName:"WITHDRAWAL_COOLDOWN"});return Number(r)}async function Fu({address:e,publicClient:t,blockTime:r,...a}){let{config:o}=_chunk22J3YJDNcjs.a.call(void 0, a);_chunk7LNBSOVVcjs.c.call(void 0, t);let i=26;try{let[l]=await Promise.all([t.getBlock({blockTag:"latest"})]),n=Math.floor(i*60*60/r),s=l.number-BigInt(n),[d,u,m,f,b,p,A,C,B,y,T]=await Promise.all([t.readContract({address:e,abi:_wberaStakerVault.wberaStakerVaultAbi,functionName:"totalAssets"}),t.readContract({address:e,abi:_wberaStakerVault.wberaStakerVaultAbi,functionName:"totalSupply"}),t.readContract({address:e,abi:_wberaStakerVault.wberaStakerVaultAbi,functionName:"previewRedeem",args:[10n**18n],blockNumber:l.number}),t.readContract({address:o.tokens.wbera,abi:_viem.erc20Abi,functionName:"balanceOf",args:[e]}),t.readContract({address:e,abi:_wberaStakerVault.wberaStakerVaultAbi,functionName:"totalAssets",blockNumber:s}),t.readContract({address:e,abi:_viem.erc20Abi,functionName:"totalSupply",blockNumber:s}),t.readContract({address:e,abi:_wberaStakerVault.wberaStakerVaultAbi,functionName:"previewRedeem",args:[10n**18n],blockNumber:s}),t.readContract({address:o.tokens.wbera,abi:_viem.erc20Abi,functionName:"balanceOf",args:[e],blockNumber:s}),t.readContract({address:o.tokens.wbera,abi:_viem.erc20Abi,functionName:"totalSupply"}),ne({publicClient:t,address:e}),Bt({})]),k=new (0, _bignumberjs2.default)(A.toString());return{current:{exchangeRate:new (0, _bignumberjs2.default)(m.toString()).toString(),totalSupply:new (0, _bignumberjs2.default)(u.toString()).dividedBy(1e18).toString(),totalAssets:new (0, _bignumberjs2.default)(d.toString()).dividedBy(1e18).toString(),tvl:new (0, _bignumberjs2.default)(f.toString()).dividedBy(1e18).toString()},previous:{exchangeRate:k.toString(),totalSupply:new (0, _bignumberjs2.default)(p.toString()).dividedBy(1e18).toString(),totalAssets:new (0, _bignumberjs2.default)(b.toString()).dividedBy(1e18).toString(),tvl:new (0, _bignumberjs2.default)(C.toString()).dividedBy(1e18).toString()},totalWBeraIssued:new (0, _bignumberjs2.default)(B.toString()).dividedBy(1e18).toString(),lockPeriod:y,totalBuyBacks:T.sumAllClaims,totalBuyBacksInLast24Hours:T.sumClaimsInLast24Hours}}catch(l){throw console.error("Failed to get SW Bera Vault Metadata",l),l}}function Rt(e){let t=Date.now(),r=e*1e3-t;if(r<=0)return;let a=_chunkS3EAKCVMcjs.k.call(void 0, r);return _chunkS3EAKCVMcjs.A.call(void 0, a,!0,!0)}async function Lu({contractAddress:e,accountAddress:t,publicClient:r,version:a}){let o=[];function i(l,n){let[s,d,u]=l,m=s,f=Number(u)+Number(n),b=_chunkS3EAKCVMcjs.k.call(void 0, Date.now()),p=f-b;if(m>0){let A=Rt(p<=0?0:f);o.push({receiptTokenAddress:e,withdrawalAmount:m,timeRemaining:A})}}switch(a){case"V1":{let[l,n]=await Promise.all([r.readContract({address:e,abi:_wberaStakerVault.wberaStakerVaultAbi,functionName:"withdrawalRequests",args:[t]}),ne({publicClient:r,address:e})]);return i(l,n),o}case"V2":{let[l,n]=await Promise.all([r.readContract({address:e,abi:_wberaStakerVault.wberaStakerVaultAbi,functionName:"getERC721WithdrawalRequestIds",args:[t]}),ne({publicClient:r,address:e})]);if(_chunk22J3YJDNcjs.e.call(void 0, e,"SWBERA")){let u=await r.readContract({address:e,abi:_wberaStakerVault.wberaStakerVaultAbi,functionName:"withdrawalRequests",args:[t]});i(u,n)}let d=(await Promise.all(l.map(async u=>{let m=await r.readContract({address:e,abi:_wberaStakerVault.wberaStakerVaultAbi,functionName:"getERC721WithdrawalRequest",args:[u]}),{assets:f,requestTime:b}=m;if(!f||!b)throw new Error("Invalid withdrawal request");let p=f,A=Number(b)+Number(n),C=_chunkS3EAKCVMcjs.k.call(void 0, Date.now()),B=A-C;if(p>0){let y=Rt(B<=0?0:A);return{withdrawalAmount:p,timeRemaining:y,withdrawalRequestId:u,receiptTokenAddress:e}}return null}))).filter(u=>u!==null);return o.push(...d),o}}}async function _u({vaultAddresses:e,publicClient:t}){_chunk7LNBSOVVcjs.c.call(void 0, t);try{let r=await Promise.all(e.map(async o=>await t.readContract({address:o,abi:_wberaStakerVault.wberaStakerVaultAbi,functionName:"totalAssets"})));return e.reduce((o,i,l)=>(o[i]=r[l],o),{})}catch(r){throw console.error("Failed to get total staked amount",r),r}}async function Yu({account:e,...t}){let{config:r}=_chunk22J3YJDNcjs.a.call(void 0, t),a=await fetch(`${r.pol.bribeBoostApi}/api/v1/wallets/${e.toLowerCase()}/rewards/aggregation`,{cache:"no-store"});if(!a.ok){let o=await _chunkS3EAKCVMcjs.a.call(void 0, a);throw new (0, _chunkC6ZGUO4Hcjs.f)({message:"Failed to fetch incentives on server",cause:{error:o,result:a,account:e},reason:_optionalChain([o, 'optionalAccess', _87 => _87.error])})}return await a.json()}async function St({account:e,vaultAddress:t,publicClient:r}){if(!r)throw new Error("Missing public client");if(!e)throw new Error("Missing user account");if(!t)throw new Error("Missing vault address");return await r.readContract({address:t,abi:_rewardVault.rewardVaultAbi,functionName:"earned",args:[e]})}async function Nt({account:e,vaultAddress:t,publicClient:r}){_chunk7LNBSOVVcjs.c.call(void 0, r),_chunk7LNBSOVVcjs.d.call(void 0, e,"account"),_chunk7LNBSOVVcjs.d.call(void 0, t,"vaultAddress");try{let[a,o]=await Promise.all([r.readContract({address:t,abi:_rewardVault.rewardVaultAbi,functionName:"balanceOf",args:[e]}),r.readContract({address:t,abi:_rewardVault.rewardVaultAbi,functionName:"getTotalDelegateStaked",args:[e]})]);return{balance:a,delegated:o}}catch(a){throw console.log(a),a}}async function Gt({vaultAddress:e,publicClient:t}){if(!t)throw new Error("Missing public client");if(!e)throw new Error("Missing vault address");try{return await t.readContract({address:e,abi:_rewardVault.rewardVaultAbi,functionName:"totalSupply",args:[]})}catch(r){throw console.log(r),r}}async function uc({account:e,vaultAddress:t,publicClient:r}){let[a,o,i]=await Promise.all([Nt({account:e,vaultAddress:t,publicClient:r}),St({account:e,vaultAddress:t,publicClient:r}),Gt({vaultAddress:t,publicClient:r})]),l=a.balance-a.delegated,n=i>0n?Number(Number.parseFloat(_viem.formatEther.call(void 0, a.balance))/Number.parseFloat(_viem.formatEther.call(void 0, i))).toString():"0";return{balance:a.balance,delegatedBalance:a.delegated,withdrawableBalance:l,rewards:_viem.formatEther.call(void 0, o),percentage:n}}async function Ac({account:e,publicClient:t,...r}){let{config:a}=_chunk22J3YJDNcjs.a.call(void 0, r),l=await _asyncOptionalChain([(await g("api",r).query({query:_api3.GetUserVaults,variables:{userId:e,chain:a.bex.chainName}})), 'access', async _88 => _88.data, 'optionalAccess', async _89 => _89.userVaultDeposits, 'optionalAccess', async _90 => _90.deposits]);if(!l)return{totalBgtRewards:"0",vaults:[],totalStakedValue:0};let[n,s]=await Promise.all([t.multicall({allowFailure:!1,contracts:l.map(b=>({address:b.vaultAddress,abi:_rewardVault.rewardVaultAbi,functionName:"earned",args:[e]}))}),t.multicall({allowFailure:!1,contracts:l.map(b=>({address:b.vaultAddress,abi:_rewardVault.rewardVaultAbi,functionName:"balanceOf",args:[e]}))})]),{userVaults:d,total:u}=l.reduce((b,p,A)=>{let C=n[A],B=s[A];if(b.total+=C,!p.vault)return _chunk7LNBSOVVcjs.f.captureException(new (0, _chunkC6ZGUO4Hcjs.f)({message:"Deposit data from API is missing vault",level:"error",extra:{deposit:p}})),console.error("Deposit data from API is missing vault",p),b;if(C>0n||B>0n){let y=_optionalChain([p, 'access', _91 => _91.vault, 'access', _92 => _92.dynamicData, 'optionalAccess', _93 => _93.tvl])&&Number(p.vault.stakingTokenAmount)!==0?Number(_nullishCoalesce(_optionalChain([p, 'access', _94 => _94.vault, 'access', _95 => _95.dynamicData, 'optionalAccess', _96 => _96.tvl]), () => (0)))/Number(p.vault.stakingTokenAmount):null;b.userVaults.push({...p,vault:p.vault,unclaimedBgt:_viem.formatUnits.call(void 0, C,18),formattedBalance:_viem.formatUnits.call(void 0, B,p.vault.stakingToken.decimals),stakingTokenPrice:y})}return b},{userVaults:[],total:0n}),m=[...d].sort((b,p)=>{if(b.vault.isVaultWhitelisted&&!p.vault.isVaultWhitelisted)return-1;if(!b.vault.isVaultWhitelisted&&p.vault.isVaultWhitelisted)return 1;let A=Number.parseFloat(b.unclaimedBgt);return Number.parseFloat(p.unclaimedBgt)-A});return{totalStakedValue:m.reduce((b,p)=>{let A=Number(_nullishCoalesce(_optionalChain([p, 'access', _97 => _97.vault, 'access', _98 => _98.dynamicData, 'optionalAccess', _99 => _99.tvl]), () => (0)));if(A===0)return b;let C=Number.parseFloat(p.vault.stakingTokenAmount),B=A/C;return b+B*Number(p.formattedBalance)},0),totalBgtRewards:_viem.formatUnits.call(void 0, u,18),vaults:m}}async function Bc({vault:e,chain:t,...r}){let{config:a}=_chunk22J3YJDNcjs.a.call(void 0, r);return(await g("api",r).query({query:_api3.GetVaultHistory,variables:{...r,vaultId:e,chain:_nullishCoalesce(t, () => (a.bex.chainName))}})).data.polGetRewardVaultSnapshots}async function Sc({address:e,onlyActiveValidators:t,...r}){returnawait _asyncNullishCoalesce((await g("api",r).query({query:_api3.GetVaultValidators,variables:{vaultId:e,isActive:t}})).data.validators.validators, async () => ([]))}async function Ic({addressIn:e,...t}){let{config:r,chainId:a}=_chunk22J3YJDNcjs.a.call(void 0, t),o=e.map(n=>n.toLowerCase()).filter((n,s,d)=>n&&d.indexOf(n)===s),i=g("api",t),{data:l}=await i.query({query:_api.GetTokenCurrentPrices,variables:{chains:[r.bex.chainName],addressIn:o}});return l.tokenGetCurrentPrices.reduce((n,s)=>{if(!s.price||!s.address)return n;let d=s.address;return n[_viem.getAddress.call(void 0, d)]={price:_chunkS3EAKCVMcjs.C.call(void 0, s.price.toString()),updatedAt:s.updatedAt,chainId:a},n[d.toLowerCase()]={price:_chunkS3EAKCVMcjs.C.call(void 0, s.price.toString()),updatedAt:s.updatedAt,chainId:a},_chunk22J3YJDNcjs.e.call(void 0, d,"WBERA")&&(n[_viem.zeroAddress]={price:_chunkS3EAKCVMcjs.C.call(void 0, s.price.toString()),updatedAt:s.updatedAt,chainId:a},n[r.tokens.bgt.toLowerCase()]={price:_chunkS3EAKCVMcjs.C.call(void 0, s.price.toString()),updatedAt:s.updatedAt,chainId:a},n[r.tokens.bgt]={price:_chunkS3EAKCVMcjs.C.call(void 0, s.price.toString()),updatedAt:s.updatedAt,chainId:a}),n},{})}var _core = require('@wagmi/core');async function Wc({items:e,account:t,config:r}){_chunk7LNBSOVVcjs.b.call(void 0, e,"items"),_chunk7LNBSOVVcjs.b.call(void 0, r,"config"),_chunk7LNBSOVVcjs.b.call(void 0, t,"account");let a=Object.groupBy(e,i=>i.token.chainId);return(await Promise.allSettled(Object.entries(a).map(async([i,l])=>{if(!l)return[];let n=_core.getPublicClient.call(void 0, r,{chainId:Number(i)});return _chunk7LNBSOVVcjs.c.call(void 0, n,`publicClient ${i}`),(await n.multicall({contracts:l.map(u=>({address:u.token.address,abi:_viem.erc20Abi,functionName:"allowance",args:[t,u.spender]}))})).map((u,m)=>{let f=l[m];return u.error?void 0:{token:f.token,spender:f.spender,amount:f.amount,allowance:{raw:u.result.toString(),formatted:_viem.formatUnits.call(void 0, u.result,f.token.decimals)},needsApproval:u.result<BigInt(f.amount.raw)}}).filter(u=>!!u)}))).flatMap(i=>i.status==="fulfilled"?i.value:void 0).filter(i=>!!i)}async function Tt({publicClient:e,abi:t,...r}){let a=[..._chunkC6ZGUO4Hcjs.c,..._nullishCoalesce(t, () => ([]))],o,i,l,n,s,d,u;if("txHash"in r){let m=await e.getTransaction({hash:r.txHash});if(!m.to)throw new (0, _chunkC6ZGUO4Hcjs.h)({property:"tx",value:m,expected:"Transaction",message:"Trying to get revert reason for a contract creation"});s=m.input,i=m.to,l=m.from,n=m.value,o=m.blockNumber}else if(o=r.blockNumber,i=r.to,l=r.account,n=r.value,"data"in r)s=r.data;else if("functionName"in r&&"args"in r)d=r.functionName,u=r.args;else if(!n)throw new (0, _chunkC6ZGUO4Hcjs.h)({property:"dataOrFunctionNameAndArgs",value:r,expected:"Hex or FunctionName and Args"});try{if(!a)if(s)await e.call({data:s,to:i,account:l,blockNumber:o,value:n});else throw new Error("Data is required if abi is not provided");if("functionName"in r&&"args"in r&&r.functionName)d=r.functionName,u=r.args;else if(s){if(!a){let m=await e.call({data:s,to:i,account:l,blockNumber:o,value:n});throw new Error(`Getting revert reason for successful simulation. Data: ${s}`,{cause:m})}try{let m=_viem.decodeFunctionData.call(void 0, {abi:a,data:s});d=m.functionName,u=m.args}catch(m){throw m instanceof _viem.AbiFunctionSignatureNotFoundError&&await e.call({data:s,to:i,account:l,blockNumber:o,value:n}),new Error("Data is required if abi is not provided")}}else throw new Error("No data or function name and args provided");throw a&&d?(await e.simulateContract({functionName:d,args:u,abi:a,address:i,account:l,blockNumber:o}),new (0, _chunk6LDOG5RLcjs.c)({message:"Getting revert reason for successful simulation",functionName:d,to:i,txHash:"txHash"in r?r.txHash:void 0,input:r})):new Error("No data or function name and args provided")}catch(m){if(m instanceof Error)return _chunkC6ZGUO4Hcjs.e.call(void 0, {error:m,abi:a,revertIfUnknown:!0});throw m}}var Ya=_chunkS3EAKCVMcjs.l.call(void 0, 1),Et=(e,t)=>e*(100n+BigInt(t))/100n;function Ee({nonceResult:e,onWarning:t}){if(e.status==="fulfilled"){if(e.value&&e.value>Number.MAX_SAFE_INTEGER){_optionalChain([t, 'optionalCall', _100 => _100(new (0, _chunkC6ZGUO4Hcjs.f)({message:"Nonce is too large. No nonce will be provided to avoid IntegerOutOfRangeError.",cause:e.value,level:"debug"}))]);return}return e.value}}function za(e=_internal.defaultChainId){return e===_internal.ChainId.BEPOLIA?process.env.NEXT_PUBLIC_80069_ANVIL_IMPERSONATE_ACCOUNT==="true":process.env.NEXT_PUBLIC_80094_ANVIL_IMPERSONATE_ACCOUNT==="true"}async function ld(e){if(process.env.NODE_ENV==="development"&&!e.contractName&&e.address&&!("calls"in e||e.calls))throw console.warn("beraWriteContract: Contract name is required. Either update the contract mapping in devrel or provide a contract name in ContractName enum","This is a development error and will be thrown in development mode only."),new (0, _chunkC6ZGUO4Hcjs.h)({property:"contractName",value:e.contractName,expected:"ContractName",displayMessage:`[DEV] Contract name is required as it's not mapped in the devrel's contract mapping ${e.address}`,level:"error"});let{address:t,calls:r,value:a,gasLimit:o,onLoading:i,onSuccess:l,onWarning:n,onError:s,onSubmission:d,wagmiConfig:u,walletClient:m,account:f,txConfirmationTimeout:b=12e4,chainId:p=_internal.defaultChainId,impersonateAccount:A=za(p),errorsAbi:C=[],pollingInterval:B=Ya,...y}=e;_optionalChain([i, 'optionalCall', _101 => _101(e)]);let T="data"in y?y.data:void 0,k=[..._chunkC6ZGUO4Hcjs.c,...C,..."abi"in y&&y.abi&&Array.isArray(y.abi)?y.abi:[]],N=m;if(!u){_optionalChain([s, 'optionalCall', _102 => _102(new (0, _chunkC6ZGUO4Hcjs.h)({property:"wagmiConfig",value:u,expected:"Config"}),e)]);return}if(!(_optionalChain([N, 'optionalAccess', _103 => _103.account, 'optionalAccess', _104 => _104.type])==="local"))try{await _core.switchChain.call(void 0, u,{chainId:p})}catch(V){let G=V;_optionalChain([s, 'optionalCall', _105 => _105(new (0, _chunkC6ZGUO4Hcjs.f)({cause:G,displayMessage:"There was an error switching to the chain."}),e)]);return}if(!N)try{N=await _core.getWalletClient.call(void 0, u,{chainId:p})}catch(V){_optionalChain([s, 'optionalCall', _106 => _106(new (0, _chunkC6ZGUO4Hcjs.f)({cause:V,displayMessage:"There was an error connecting to the wallet."}),e)]);return}if(!N){_optionalChain([s, 'optionalCall', _107 => _107(new (0, _chunkC6ZGUO4Hcjs.h)({displayMessage:"There was an error connecting to the wallet.",property:"walletClient",value:N,expected:"WalletClient"}),e)]);return}let I=f||N.account;if(!I){_optionalChain([s, 'optionalCall', _108 => _108(new (0, _chunkC6ZGUO4Hcjs.h)({property:"account",value:I,expected:"Account"}),e)]);return}let se=typeof I=="string"?I:I.address,U=_core.getPublicClient.call(void 0, u,{chainId:p});try{_chunk7LNBSOVVcjs.c.call(void 0, U)}catch(V){_optionalChain([s, 'optionalCall', _109 => _109(V,e)]);return}if(A){let V=_chunkS3EAKCVMcjs.E.call(void 0, p);await V.impersonateAccount({address:se}),N=_viem.createWalletClient.call(void 0, {transport:_viem.http.call(void 0, V.transport.url),account:I,chain:N.chain})}let E,Z={calls:"calls"in y?y.calls:void 0,params:"params"in y?y.params:void 0,value:a,data:"data"in y?y.data:void 0};try{let V=U.getTransactionCount({address:se,blockTag:"latest"}).catch(()=>{}),G={account:se,to:t,address:t,chainId:p,value:a};if(r){let F=r.map(h=>{if("abi"in h&&Array.isArray(k)&&k.push(...h.abi),"data"in h)return{to:h.address,data:h.data,value:_nullishCoalesce(h.value, () => (0n))};if("abi"in h&&"functionName"in h){let W="params"in h?h.params:void 0;return{to:h.address,abi:h.abi,functionName:h.functionName,args:W,value:_nullishCoalesce(h.value, () => (0n))}}return{to:h.address,value:_nullishCoalesce(h.value, () => (0n))}});if(e.enableSimulateCalls){let h=await U.simulateCalls({calls:F,account:I}),W=h.results.findIndex(L=>L.status==="failure");if(W!==-1){if(h.block.number===null)throw new (0, _chunkC6ZGUO4Hcjs.h)({property:"blockNumber",value:h.block.number,expected:"bigint",message:"Block number is null"});let L=h.results[W],{reason:he}=L.data&&L.data!=="0x"?{reason:_chunkC6ZGUO4Hcjs.d.call(void 0, _viem.decodeErrorResult.call(void 0, {data:L.data,abi:k}))}:_chunkC6ZGUO4Hcjs.e.call(void 0, {error:L.error,revertIfUnknown:!1,abi:k});_optionalChain([s, 'optionalCall', _110 => _110(new (0, _chunk6LDOG5RLcjs.c)({cause:L.error,txHash:E,chainId:p,reason:he,abi:k,input:Z,blockNumber:h.block.number}),e)]);return}}if(process.env.NODE_ENV==="test")throw new (0, _chunkC6ZGUO4Hcjs.h)({displayMessage:"Batch calls are not supported in test environment",expected:"not test",property:"NODE_ENV",value:process.env.NODE_ENV,level:"fatal"});let D=await N.sendCalls({calls:F,account:I,forceAtomic:!0});_optionalChain([d, 'optionalCall', _111 => _111({id:D.id},e)]);let Q=await N.waitForCallsStatus({id:D.id,pollingInterval:B,timeout:b});if(Q.status==="success"){let h=_optionalChain([Q, 'access', _112 => _112.receipts, 'optionalAccess', _113 => _113[0]]);if(!h)throw new (0, _chunkC6ZGUO4Hcjs.f)({message:"Call status is success but no receipt was found",cause:Q,level:"error",reason:"CALL_STATUS_SUCCESS_BUT_NO_RECEIPT"});return _optionalChain([l, 'optionalCall', _114 => _114(h,e)]),h}throw console.error("wallet_sendCalls: Call failed",Q),new (0, _chunk6LDOG5RLcjs.c)({cause:Q,level:"error",input:Z,txHash:E,abi:k,chainId:p})}if(T){let[F,D,Q]=await Promise.allSettled([U.call({...G,data:T}),_nullishCoalesce(o, () => (U.estimateGas({...G,data:T}))),V]);if(F.status==="rejected")throw F.reason;let h=D.status==="fulfilled"?Et(D.value,10):_chunkS3EAKCVMcjs.i;E=await N.sendTransaction({data:T,to:t,account:I,gas:h,chainId:p,nonce:Ee({nonceResult:Q,onWarning(W){_optionalChain([n, 'optionalCall', _115 => _115(W,e)])}}),value:a}),_optionalChain([d, 'optionalCall', _116 => _116({txHash:E},e)])}else if("abi"in y&&"functionName"in y){let{abi:F,functionName:D}=y,Q="params"in y?y.params:void 0,[h,W,L]=await Promise.allSettled([U.simulateContract({...G,abi:k,functionName:D,args:Q,account:I}),_nullishCoalesce(o, () => (U.estimateContractGas({...G,abi:k,functionName:D,args:Q}))),V]);if(h.status==="rejected")throw h.reason;let he=_nullishCoalesce(o, () => ((W.status==="fulfilled"?Et(W.value,10):_chunkS3EAKCVMcjs.i)));E=await N.writeContract({...h.value.request,chainId:p,gas:he,nonce:Ee({nonceResult:L,onWarning(Ut){_optionalChain([n, 'optionalCall', _117 => _117(Ut,e)])}})}),_optionalChain([d, 'optionalCall', _118 => _118({txHash:E},e)])}else{let[F]=await Promise.allSettled([V]);E=await N.sendTransaction({chainId:p,to:t,value:a,account:I,nonce:Ee({nonceResult:F,onWarning(D){_optionalChain([n, 'optionalCall', _119 => _119(D,e)])}})}),_optionalChain([d, 'optionalCall', _120 => _120({txHash:E},e)])}process.env.NODE_ENV==="test"&&await _chunkS3EAKCVMcjs.E.call(void 0, p).mine({blocks:1});let J=await U.waitForTransactionReceipt({hash:E,pollingInterval:B,timeout:b,confirmations:1});if(J.status==="success")_optionalChain([l, 'optionalCall', _121 => _121(J,e)]);else{let F=await Tt({publicClient:U,blockNumber:J.blockNumber,to:t,account:se,abi:k,args:"params"in y?y.params:void 0,functionName:"functionName"in y?y.functionName:void 0,value:a,data:T});process.env.NODE_ENV==="test"&&console.error("beraWriteContract: Revert reason",F),_optionalChain([s, 'optionalCall', _122 => _122(new (0, _chunk6LDOG5RLcjs.c)({reason:F.reason,txHash:E,receipt:J,to:t,functionName:"functionName"in y?y.functionName:void 0,input:Z,chainId:p,abi:k,blockNumber:J.blockNumber}),e)])}return J}catch(V){if(V instanceof _chunkC6ZGUO4Hcjs.f)_optionalChain([s, 'optionalCall', _123 => _123(V,e)]);else if(V instanceof Error){let G=_chunkC6ZGUO4Hcjs.e.call(void 0, {error:V,revertIfUnknown:!1,abi:k});if(G&&G.rootCause instanceof _viem.BaseError&&"url"in G.rootCause){_optionalChain([s, 'optionalCall', _124 => _124(new (0, _chunkC6ZGUO4Hcjs.g)({cause:G.rootCause,response:void 0,endpoint:{url:G.rootCause.url,type:"rpc"},statusCode:G.rootCause instanceof _viem.HttpRequestError?G.rootCause.status:void 0}),e)]);return}_optionalChain([s, 'optionalCall', _125 => _125(new (0, _chunk6LDOG5RLcjs.c)({cause:V,to:t,txHash:E,chainId:p,abi:k,functionName:"functionName"in y?y.functionName:void 0,input:Z}),e)])}else _optionalChain([s, 'optionalCall', _126 => _126(new (0, _chunk6LDOG5RLcjs.c)({cause:V,txHash:E,to:t,chainId:p,functionName:"functionName"in y?y.functionName:void 0,input:Z,abi:k}),e)])}}async function It({variables:e={},...t}={}){let{config:r}=_chunk22J3YJDNcjs.a.call(void 0, t);return(await g("api",t).query({query:_api3.GetValidators,variables:{chain:r.bex.chainName,...e}})).data}async function bd({allocation:e}){let t=await be({filter:{where:{vaultAddressIn:e.weights.map(a=>a.receiver)}}}),r=_nullishCoalesce(_optionalChain([e, 'optionalAccess', _127 => _127.start, 'access', _128 => _128.blockNumber]), () => (0));return _optionalChain([e, 'optionalAccess', _129 => _129.weights, 'access', _130 => _130.map, 'call', _131 => _131(a=>({percentage:a.percentage,receiver:a.receiver,startBlock:r,receivingVault:_optionalChain([t, 'optionalAccess', _132 => _132.gaugeList, 'access', _133 => _133.find, 'call', _134 => _134(o=>_viem.isAddressEqual.call(void 0, o.address,a.receiver))])}))])}async function Cd({id:e,...t}){let{config:r}=_chunk22J3YJDNcjs.a.call(void 0, t);return(await g("api",t).query({query:_api3.GetValidator,variables:{id:e,chain:r.bex.chainName}})).data}async function Vd({pubKey:e,first:t=1,...r}){let a=g("pol.subgraph",r);try{return(await a.query({query:_subgraph3.GetValidatorBlockStats,variables:{pubKey:e,first:t}})).data}catch(o){throw console.error("GetValidatorBlockStats:",o),o}}var _beraChef = require('@berachain/abis/pol/rewards/beraChef');function X(e,t){return{start:{blockNumber:Number(e.startBlock),timestamp:e.startBlock!==0n?t:0},weights:e.weights.map(r=>({receiver:r.receiver,percentage:Number(r.percentageNumerator)/1e4}))}}function ro(e,t){return e.start.blockNumber===t.start.blockNumber&&e.weights.every((r,a)=>r.percentage===t.weights[a].percentage)}async function Nd({client:e,pubKey:t,...r}){let{config:a}=_chunk22J3YJDNcjs.a.call(void 0, r);try{let[o,i]=await Promise.all([e.readContract({address:a.pol.beraChef,abi:_beraChef.beraChefAbi,functionName:"getActiveRewardAllocation",args:[t]}),e.readContract({address:a.pol.beraChef,abi:_beraChef.beraChefAbi,functionName:"getSetActiveRewardAllocation",args:[t]})]),[l,n]=await Promise.all([o.startBlock!==0n?e.getBlock({blockNumber:BigInt(o.startBlock)}):{timestamp:0},i.startBlock!==0n?e.getBlock({blockNumber:BigInt(i.startBlock)}):{timestamp:0}]),s=X(o,Number(l.timestamp)),d=X(i,Number(n.timestamp)),u=!1;return d.start.blockNumber===0?u=!0:u=!ro(d,s),{activeRewardAllocation:s,setRewardAllocation:d,isBaseline:u,isNeverSet:_optionalChain([d, 'optionalAccess', _135 => _135.start, 'access', _136 => _136.blockNumber])===0}}catch(o){throw console.log("getValidatorRewardAllocation:",o),o}}function Fd(e){return e.start.blockNumber===0}async function Id({client:e,...t}){let{config:r}=_chunk22J3YJDNcjs.a.call(void 0, t),a=await e.readContract({address:r.pol.beraChef,abi:_beraChef.beraChefAbi,functionName:"getDefaultRewardAllocation",args:[]});return X({...a,startBlock:0n},0)}async function Ud({account:e,...t}){try{return(await g("pol.subgraph",t).query({query:_subgraph3.GetValidatorByAccount,variables:{account:e}})).data}catch(r){throw console.error("getManagedValidatorByAccount:",r),r}}async function Ld({client:e,valPubKey:t}){return 5614}async function Dt({account:e,pubkey:t,publicClient:r,...a}){let{config:o}=_chunk22J3YJDNcjs.a.call(void 0, a);if(!e)throw new Error("account is required");if(!r)throw new Error("publicClient is required");let[i,l,n]=await Promise.all([r.readContract({address:o.tokens.bgt,abi:_bgt.bgtAbi,functionName:"boosted",args:[e,t]}),r.readContract({address:o.tokens.bgt,abi:_bgt.bgtAbi,functionName:"boostedQueue",args:[e,t]}),r.readContract({address:o.tokens.bgt,abi:_bgt.bgtAbi,functionName:"dropBoostQueue",args:[e,t]})]);return{pubkey:t,activeBoostAmount:_viem.formatEther.call(void 0, i),queuedBoostAmount:_viem.formatEther.call(void 0, l[1]),queuedDropBoostAmount:_viem.formatEther.call(void 0, n[1]),queuedBoostStartBlock:l[0],queuedDropBoostStartBlock:n[0],hasPendingBoosts:Number(l[1])>0||Number(n[1])>0,hasActiveBoosts:Number(i)>0}}async function Qt({account:e,block:t,...r}){return await g("pol.subgraph",r).query({query:_subgraph3.GetUserValidatorInformation,variables:{address:e.toLowerCase(),block:t}})}async function tm({account:e,publicClient:t,chain:r,...a}){let{config:o}=_chunk22J3YJDNcjs.a.call(void 0, a),i=_nullishCoalesce(r, () => (o.bex.chainName)),l=await Qt({account:e}),[n,s]=await Promise.all([It({variables:{chain:i,where:{idIn:l.data.userValidatorInformations.map(d=>d.validator.id)}}}),t&&_chunkS3EAKCVMcjs.F.call(void 0, {lastBlockTimestamp:_optionalChain([l, 'access', _137 => _137.data, 'access', _138 => _138._meta, 'optionalAccess', _139 => _139.block, 'access', _140 => _140.timestamp]),blockTime:o.averageBlockTime})?Promise.all(l.data.userValidatorInformations.map(d=>Dt({account:e,pubkey:d.validator.publicKey,publicClient:t}))):void 0]);return _optionalChain([n, 'optionalAccess', _141 => _141.validators, 'access', _142 => _142.validators, 'access', _143 => _143.map, 'call', _144 => _144(d=>{let u=s?s.find(m=>m.pubkey.toLowerCase()===d.pubkey.toLowerCase()):l.data.userValidatorInformations.find(m=>m.validator.id.toLowerCase()===d.id.toLowerCase());if(!u)throw new Error("User deposited not found");return{...d,userBoosts:{pubkey:"pubkey"in u?u.pubkey:u.validator.publicKey,activeBoostAmount:_optionalChain([u, 'optionalAccess', _145 => _145.activeBoostAmount]),queuedBoostAmount:_optionalChain([u, 'optionalAccess', _146 => _146.queuedBoostAmount]),queuedBoostStartBlock:Number(_optionalChain([u, 'optionalAccess', _147 => _147.queuedBoostStartBlock])),queuedDropBoostAmount:_optionalChain([u, 'optionalAccess', _148 => _148.queuedDropBoostAmount]),queuedDropBoostStartBlock:Number(_optionalChain([u, 'optionalAccess', _149 => _149.queuedDropBoostStartBlock])),hasPendingBoosts:Number(_optionalChain([u, 'optionalAccess', _150 => _150.queuedBoostAmount]))>0||Number(_optionalChain([u, 'optionalAccess', _151 => _151.queuedDropBoostAmount]))>0,hasActiveBoosts:Number(_optionalChain([u, 'optionalAccess', _152 => _152.activeBoostAmount]))>0}}})])}var io=[{validatorAddress:"0x8f51e63d9921a461be29e73dca1c2385e1adc5943fbb36ded4ba96025ee8a783184d1118da08171f6ea831153c878a6d",earning:.045,staked:{amount:16114000000000000000n,formattedAmount:"161.14"},rewards:{amount:15214000000000000000n,formattedAmount:"152.14"}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0x97b21253b17f4e814fe7505c15c18e68c85ab2477274ad370a762df50e3eb4cb1a48451e089bc22e158d7448549a8ab9",earning:.045,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{stake:[{amount:16159000000000000000n,formattedAmount:"161.59"}],unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:_chunkS3EAKCVMcjs.k.call(void 0, Date.now()-72e6)}]}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0xa2705d6b27891f3f5651f26547d1bb79e256f95f249d1ad717cef087d77d38b037e5d6dbaa2538930fd0731ec9b02f3a",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:_chunkS3EAKCVMcjs.k.call(void 0, Date.now()-72e6)}]}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0xa2705d6b27891f3f5651f26547d1bb79e256f95f249d1ad717cef087d77d38b037e5d6dbaa2538930fd0731ec9b02f3a",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:_chunkS3EAKCVMcjs.k.call(void 0, Date.now()-72e6)}]}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0xa2705d6b27891f3f5651f26547d1bb79e256f95f249d1ad717cef087d77d38b037e5d6dbaa2538930fd0731ec9b02f3a",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:_chunkS3EAKCVMcjs.k.call(void 0, Date.now()-72e6)}]}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0xa2705d6b27891f3f5651f26547d1bb79e256f95f249d1ad717cef087d77d38b037e5d6dbaa2538930fd0731ec9b02f3a",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:_chunkS3EAKCVMcjs.k.call(void 0, Date.now()-72e6)}]}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0xa2705d6b27891f3f5651f26547d1bb79e256f95f249d1ad717cef087d77d38b037e5d6dbaa2538930fd0731ec9b02f3a",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:_chunkS3EAKCVMcjs.k.call(void 0, Date.now()-72e6)}]}},{staked:{amount:241514000000000000000n,formattedAmount:"2415.14"},validatorAddress:"0xa4e4b63514f54d61da5197359f11ff1fc2930788ba2ffdd30c2fc059cbe0221020197bf9446b16ac347f36c7517a8686",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:1159000000000000000n,formattedAmount:"11.59",timestamp:_chunkS3EAKCVMcjs.k.call(void 0, Date.now()-36e6)}]}},{validatorAddress:"0xb0511ec039591e98bd4e183ba70b85572214a7ad8ca1a43e96ad3495d3821054927bc542e5482ec9733e35b7ef0b1f03",earning:.045,staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{stake:[{amount:1159000000000000000n,formattedAmount:"11.59"}]}}];async function om(e){return await new Promise(t=>setTimeout(t,2e3)),e==="0x4C368fFE3650379d6318C8d4630bc51f8Ad12bB6"?io:[]}async function um({pubkey:e,dayRange:t,...r}){return(await g("pol.subgraph",r).query({query:_subgraph3.GetValidatorAnalytics,variables:{pubKey:e,timestamp:_chunkS3EAKCVMcjs.y.call(void 0, t).toString()}})).data}async function pm({client:e,pubKey:t,...r}){let{config:a}=_chunk22J3YJDNcjs.a.call(void 0, r),o=await e.readContract({address:a.pol.beraChef,abi:_beraChef.beraChefAbi,functionName:"getValCommissionOnIncentiveTokens",args:[t]});return Number(_nullishCoalesce(o, () => (0n)))/1e4}var bm=(e,t,r)=>{if(!t||!e)return 0;let a=_chunkS3EAKCVMcjs.x.call(void 0, 1)/r;return(t?a*(Number(_optionalChain([e, 'access', _153 => _153.dynamicData, 'optionalAccess', _154 => _154.stakedBeraAmount]))/t):0)*Number.parseFloat(_nullishCoalesce(_optionalChain([e, 'access', _155 => _155.dynamicData, 'optionalAccess', _156 => _156.rewardRate]), () => ("0")))};var _beaconDeposit = require('@berachain/abis/pol/beaconDeposit');async function wm({client:e,pubKey:t,...r}){let{config:a}=_chunk22J3YJDNcjs.a.call(void 0, r);try{return await e.readContract({address:a.depositContract,abi:_beaconDeposit.beaconDepositAbi,functionName:"getOperator",args:[t]})}catch(o){throw console.log("getValidatorOperatorAddress:",o),o}}async function vm({client:e,pubKey:t,...r}){let{config:a}=_chunk22J3YJDNcjs.a.call(void 0, r),o=await e.readContract({address:a.pol.beraChef,abi:_beraChef.beraChefAbi,functionName:"getValQueuedCommissionOnIncentiveTokens",args:[t]});return{blockNumberLast:o.blockNumberLast,commissionRate:Number(o.commissionRate)/1e4}}async function km({client:e,pubKey:t,...r}){let{config:a}=_chunk22J3YJDNcjs.a.call(void 0, r);try{return await e.readContract({address:a.depositContract,abi:_beaconDeposit.beaconDepositAbi,functionName:"queuedOperator",args:[t]})}catch(o){throw console.log("getValidatorQueuedOperatorAddress:",o),o}}async function Em({client:e,pubKey:t,...r}){let{config:a}=_chunk22J3YJDNcjs.a.call(void 0, r);try{let o=await e.readContract({address:a.pol.beraChef,abi:_beraChef.beraChefAbi,functionName:"getQueuedRewardAllocation",args:[t]});return X(o,0)}catch(o){throw console.log("getValidatorQueuedRewardAllocation:",o),o}}exports.a = yo; exports.b = me; exports.c = g; exports.d = _client.gql; exports.e = Xe; exports.f = _berancersdk.BalancerApi; exports.g = rn; exports.h = ln; exports.i = pn; exports.j = et; exports.k = vn; exports.l = Nn; exports.m = In; exports.n = Wn; exports.o = Y; exports.p = _n; exports.q = fe; exports.r = Yn; exports.s = Zn; exports.t = oi; exports.u = st; exports.v = pi; exports.w = yi; exports.x = Ci; exports.y = Vi; exports.z = lt; exports.A = Re; exports.B = ct; exports.C = Zi; exports.D = as; exports.E = Jr; exports.F = ls; exports.G = fs; exports.H = bt; exports.I = vs; exports.J = yt; exports.K = Ds; exports.L = Ms; exports.M = $s; exports.N = oa; exports.O = Xs; exports.P = tl; exports.Q = nl; exports.R = be; exports.S = Fl; exports.T = Bt; exports.U = Ll; exports.V = Jl; exports.W = zl; exports.X = au; exports.Y = cu; exports.Z = pu; exports._ = Au; exports.$ = Bu; exports.aa = ne; exports.ba = Fu; exports.ca = Lu; exports.da = _u; exports.ea = Yu; exports.fa = St; exports.ga = uc; exports.ha = Ac; exports.ia = Bc; exports.ja = Sc; exports.ka = Ic; exports.la = Wc; exports.ma = za; exports.na = ld; exports.oa = It; exports.pa = bd; exports.qa = Cd; exports.ra = Vd; exports.sa = X; exports.ta = ro; exports.ua = Nd; exports.va = Fd; exports.wa = Id; exports.xa = Ud; exports.ya = Ld; exports.za = Dt; exports.Aa = tm; exports.Ba = om; exports.Ca = um; exports.Da = pm; exports.Ea = bm; exports.Fa = wm; exports.Ga = vm; exports.Ha = km; exports.Ia = Em;
|
|
4
|
-
//# sourceMappingURL=chunk-4GU2O2OW.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/liammcaweeney/Work/bera/monobera/packages/berajs/dist/chunk-4GU2O2OW.cjs","../src/actions/bend/getConvertToAssets.ts","../src/actions/clients/BeraApolloClient.ts","../src/actions/governance/parseProposalBody.ts","../src/actions/governance/getProposalFromTx.ts"],"names":["getConvertToAssets","sharesAmount","vaultAddress","publicClient","convertToAssets","metaMorphoAbi","formatEther","BeraApolloClient","ApolloClient","options","queryName","getQueryName","endpoint","tags","executeQuery","res","BeraTracing"],"mappings":"AAAA,q+CAAyC,wDAAyD,wDAAsE,wDAAwJ,wDAAgE,wDAA+E,4BCAlZ,8EAEX,MAQlD,SAAsBA,EAAAA,CAAmB,CACvC,YAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CACF,CAAA,CAAyE,CACvE,IAAMC,CAAAA,CAAkB,MAAMD,CAAAA,CAAa,YAAA,CAAa,CACtD,OAAA,CAASD,CAAAA,CACT,GAAA,CAAKG,+BAAAA,CACL,YAAA,CAAc,iBAAA,CACd,IAAA,CAAM,CAACJ,CAAY,CACrB,CAAC,CAAA,CACD,MAAO,CAAE,GAAA,CAAKG,CAAAA,CAAiB,SAAA,CAAWE,+BAAAA,CAA2B,CAAE,CACzE,CCtBA,wCAMO,sDAEmB,IAYbC,EAAAA,CAAN,MAAA,QAA+BC,oBAAa,CAIvC,WAEV,CACEC,CAAAA,CAMA,CACA,KAAA,CAAMA,CAAO,CAAA,CACb,IAAA,CAAK,GAAA,CAAMA,CAAAA,CAAQ,GACrB,CAEA,MAAM,KAAA,CAKJA,CAAAA,CAIC,CACD,IAAMC,CAAAA,CAAYC,EAAAA,CAAaF,CAAAA,CAAQ,KAAK,CAAA,CACtCG,CAAAA,CAAW,CACf,GAAA,CAAK,IAAA,CAAK,GAAA,CACV,IAAA,CAAM,SACR,CAAA,CAEMC,CAAAA,CAAO,CACX,gBAAA,CAAkB,OAAA,CAClB,sBAAA,CAAwBD,CAAAA,CAAS,GAAA,CACjC,uBAAA,CAAyBA,CAAAA,CAAS,IAAA,CAClC,4BAAA,CAA8BF,CAChC,CAAA,CAEA,GAAI,CACF,IAAMI,CAAAA,CAAe,CAAA,CAAA,EACnB,KAAA,CAAM,KAAA,CACJL,CACF,CAAA,CAEIM,CAAAA,CAAM,MAAMC,mBAAAA,CAAY,SAAA,CAC5B,CACE,IAAA,CAAM,CAAA,QAAA,EAAWN,CAAS,CAAA,CAAA;ACNQ;ACyBxC","file":"/Users/liammcaweeney/Work/bera/monobera/packages/berajs/dist/chunk-4GU2O2OW.cjs","sourcesContent":[null,"import { type Address, formatEther, type PublicClient } from \"viem\";\n\nimport { metaMorphoV11Abi as metaMorphoAbi } from \"@berachain/abis/bend-metamorpho/metaMorphoV11\";\n\nexport interface GetConvertToAssetsProps {\n sharesAmount: bigint;\n vaultAddress: Address;\n publicClient: PublicClient;\n}\n\nexport async function getConvertToAssets({\n sharesAmount,\n vaultAddress,\n publicClient,\n}: GetConvertToAssetsProps): Promise<{ raw: bigint; formatted: string }> {\n const convertToAssets = await publicClient.readContract({\n address: vaultAddress,\n abi: metaMorphoAbi,\n functionName: \"convertToAssets\",\n args: [sharesAmount],\n });\n return { raw: convertToAssets, formatted: formatEther(convertToAssets) };\n}\n","import {\n ApolloClient,\n type DocumentNode,\n type ErrorLike,\n type OperationVariables,\n ServerError,\n} from \"@apollo/client\";\n\nimport { appConfig } from \"@berachain/config/internal\";\n\nimport { BeraError } from \"~/errors/BeraError\";\nimport { BeraTracing } from \"~/errors/BeraTracing\";\nimport { RequestError } from \"~/errors/RequestError\";\n\n/**\n * This is a wrapper around the ApolloClient that throws a BeraError if the query returns an error or no data.\n *\n * It's mostly a typescript helper that keeps data always defined since we use errorPolicy: \"none\" by default.\n * Such setting will throw an error if the query returns an error, rather than returning an object with undefined data and an error property.\n */\nexport class BeraApolloClient extends ApolloClient {\n /**\n * The URL of the endpoint. Used for error reporting only.\n */\n protected url: string;\n\n constructor(\n options: ApolloClient.Options & {\n /**\n * The URL of the endpoint. Used for error reporting only.\n */\n url: string;\n },\n ) {\n super(options);\n this.url = options.url;\n }\n\n async query<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n // We handle errors in our custom logic so we don't need to pass errorPolicy here\n options: Omit<ApolloClient.QueryOptions<TData, TVariables>, \"errorPolicy\">,\n ): Promise<{\n // Only data is returned and we're sure it's not undefined due to errorPolicy\n data: TData;\n }> {\n const queryName = getQueryName(options.query);\n const endpoint = {\n url: this.url,\n type: \"graphql\",\n } as const;\n\n const tags = {\n \"operation.type\": \"query\",\n \"operation.source.url\": endpoint.url,\n \"operation.source.type\": endpoint.type,\n \"operation.source.queryName\": queryName,\n };\n\n try {\n const executeQuery = () =>\n super.query<TData, TVariables>(\n options as ApolloClient.QueryOptions<TData, TVariables>,\n );\n\n const res = await BeraTracing.startSpan(\n {\n name: `GraphQL ${queryName}`,\n op: \"BeraApolloClient.query\",\n attributes: tags,\n },\n executeQuery,\n );\n\n if (res.error || res.data === undefined) {\n throw new BeraError({\n level: \"fatal\",\n tags,\n message:\n \"Bera Apollo Client: No data returned from query, but error should be thrown since errorPolicy is none\",\n });\n }\n\n return { data: res.data } as const;\n } catch (error) {\n !appConfig.env.isProduction &&\n console.error(\"BeraApolloClient error\", error);\n\n if (ServerError.is(error)) {\n throw new RequestError({\n // reason: error,\n response: error.response,\n cause: error,\n statusCode: error.statusCode,\n endpoint,\n tags,\n });\n }\n if (error instanceof TypeError) {\n throw new RequestError({\n level: \"fatal\",\n reason: \"TypeError\",\n response: error,\n cause: error,\n endpoint,\n tags,\n });\n }\n throw new RequestError({\n response: error as ErrorLike,\n tags,\n cause: error,\n endpoint,\n });\n }\n }\n}\n\nfunction getQueryName(queryDefinition: DocumentNode) {\n const likelyNode = queryDefinition.definitions.find(\n (def) => def.kind === (\"OperationDefinition\" as const),\n );\n\n return likelyNode?.name?.value;\n}\n","import graymatter from \"gray-matter\";\n\nimport type { ProposalSelectionFragment } from \"@berachain/graphql/governance\";\n\nconst parseLegacyBody = (\n s: string,\n): { type: string | null; title: string; content: string } => {\n const pattern = /#(?:([\\w-]+)# )?(.+)\\n([\\s\\S]*)/;\n const match = s.match(pattern);\n\n if (match) {\n const type = match[1] || null;\n const title = match[2];\n const content = match[3].replace(\"\\n\", \"<br />\");\n return {\n type,\n title,\n content,\n };\n }\n\n throw new Error(\"Invalid proposal body\");\n};\n\nexport const parseProposalBody = (\n proposal?: Pick<ProposalSelectionFragment, \"description\">,\n): graymatter.GrayMatterFile<string> & {\n isFrontMatter: boolean;\n} => {\n if (!proposal) {\n return {\n isFrontMatter: false,\n data: { title: \"Loading...\" },\n content: \"\",\n matter: \"\",\n language: \"\",\n orig: \"\",\n stringify: () => \"\",\n };\n }\n\n const body = proposal?.description ?? \"\";\n\n if (graymatter.test(body)) {\n return { ...graymatter(body), isFrontMatter: true };\n }\n\n try {\n const legacyBody = parseLegacyBody(body);\n\n return {\n isFrontMatter: false,\n data: { title: legacyBody.title },\n content: legacyBody.content,\n matter: \"\",\n language: \"\",\n orig: body,\n stringify: () => body,\n };\n } catch {\n return {\n isFrontMatter: false,\n data: {\n title: proposal?.description?.split(\"\\n\")[0].slice(0, 100),\n },\n content: body,\n matter: \"\",\n language: \"\",\n orig: body,\n stringify: () => body,\n };\n }\n};\n","import {\n type Address,\n type PublicClient,\n parseEventLogs,\n type TransactionReceipt,\n} from \"viem\";\n\nimport { berachainGovernanceAbi as governanceAbi } from \"@berachain/abis/gov/berachainGovernance\";\n\nimport {\n type ExecutableCallSubsetFragment,\n ProposalStatus,\n type ProposalWithVotesFragment,\n} from \"@berachain/graphql/governance\";\n\nimport { assertPublicClient } from \"~/errors/assert\";\nimport { parseProposalBody } from \"./parseProposalBody\";\n\nexport async function getProposalFromTx(\n args: {\n publicClient: PublicClient | undefined;\n } & (\n | {\n tx: TransactionReceipt;\n }\n | {\n txHash: Address;\n }\n ),\n): Promise<ProposalWithVotesFragment | null> {\n assertPublicClient(args.publicClient);\n\n let tx: TransactionReceipt;\n\n if (\"tx\" in args) {\n tx = args.tx;\n } else {\n tx = await args.publicClient.getTransactionReceipt({ hash: args.txHash });\n }\n\n const creationEvent = tx?.logs\n ? parseEventLogs({\n abi: governanceAbi,\n logs: tx.logs,\n eventName: \"ProposalCreated\",\n })?.at(0)\n : undefined;\n\n if (!tx || !creationEvent) {\n return null;\n }\n\n const block = await args.publicClient.getBlock({\n blockNumber: tx.blockNumber,\n });\n const fm = parseProposalBody({\n description: creationEvent?.args.description as string,\n });\n\n return {\n id: String(creationEvent.args.proposalId),\n proposalId: String(creationEvent?.args.proposalId),\n createdAt: block.timestamp.toString(),\n title: fm.data.title,\n createdAtBlock: block.timestamp.toString(),\n voteStartAt: String(creationEvent?.args.voteStart),\n voteEndAt: String(creationEvent?.args.voteEnd),\n proposer: creationEvent?.args.proposer,\n description: fm.content,\n unverifiedForumLink: fm.data.forumLink,\n pollResult: {\n for: \"0\",\n forVotersCount: 0,\n forPercentage: \"0\",\n against: \"0\",\n againstVotersCount: 0,\n againstPercentage: \"0\",\n abstain: \"0\",\n abstainVotersCount: 0,\n abstainPercentage: \"0\",\n total: \"0\",\n totalVotersCount: 0,\n totalTowardsQuorum: \"0\",\n },\n status: ProposalStatus.Pending,\n quorum: null,\n topics: fm.data.topics,\n votes: [],\n executableCalls: creationEvent?.args.targets.map(\n (target, index) =>\n ({\n __typename: \"ExecutableCall\",\n id: `${tx.transactionHash}-${index}`,\n target: target as Address,\n value: String(creationEvent?.args.values[index]),\n calldata: creationEvent?.args.calldatas[index],\n }) satisfies ExecutableCallSubsetFragment,\n ),\n timelock: undefined,\n } satisfies ProposalWithVotesFragment;\n}\n"]}
|
package/dist/chunk-55L7STYD.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as B,b as E}from"./chunk-7SMWQ6SN.mjs";import{a as h,f as g}from"./chunk-2LL3P5PN.mjs";import{a as S}from"./chunk-C3FHGFLK.mjs";import{a as y,b as v,e as m}from"./chunk-THATXCJK.mjs";import{f as P,h as b}from"./chunk-AX2YQQFQ.mjs";import{createContext as N,useContext as O}from"react";import{isFlagEnabled as U}from"@berachain/config/internal/edge-config";import{jsx as Y}from"react/jsx-runtime";var W=N(void 0);function pe({children:e,flags:t,aggregators:a,swberaAprWindow:n="DAY"}){return Y(W.Provider,{value:{...S,...t,aggregators:a?Object.entries(a).filter(([,r])=>U(r)).map(([r])=>r):void 0,swberaAprWindow:n},children:e})}function D(){let e=O(W);if(!e)throw new Error("BeraFlagsProvider not found");return e}function fe(e){return D()[e]}import{createContext as V,useContext as q,useState as K}from"react";import{jsx as Q}from"react/jsx-runtime";var w=V({protocol:{isPaused:!1,factories:{composableStable:"enabled",weighted:"enabled",allPaused:!1}},onPoolChange:()=>{},pool:void 0});function Te(){let e=q(w);if(!e)throw new P({level:"fatal",message:"BexStateContext is not defined"});return e}function he({children:e,isVaultPaused:t,labels:a,factories:n}){let[r,u]=K(),s=(r?.isPaused&&!r?.isInRecoveryMode)??!1,l=t||r?.isPaused;return Q(w.Provider,{value:{protocol:{isPaused:t,factories:{...n,allPaused:n.composableStable==="paused"&&n.weighted==="paused"}},labels:a,onPoolChange:u,pool:r?{...r,disablePoolWithdrawals:!!s,disablePoolDeposits:!!l}:void 0},children:e})}import{createContext as _,useContext as G}from"react";import{mainnet as J}from"@berachain/config/mainnet";import{jsx as z}from"react/jsx-runtime";function ve(){return G(F)}var F=_(J.averageBlockTime);function Ee({children:e,blockTime:t,...a}){let{config:n}=y(a);return z(F.Provider,{value:t??n.averageBlockTime,children:e})}import{createContext as X,useContext as Z}from"react";import{jsx as $}from"react/jsx-runtime";var L=X(void 0);function Fe({children:e,...t}){return $(L.Provider,{value:t,children:e})}function Le(){let e=Z(L);if(!e)throw new Error("useHoneyConfig must be used within a HoneyConfigProvider");return e}import{createContext as re,useMemo as ae}from"react";import{isFlagEnabled as se}from"@berachain/config/internal/edge-config";import oe from"swr";import{useBeraWallet as te,useConfig as ne}from"@berachain/wagmi/hooks";import{getChains as j,multicall as ee}from"@wagmi/core";import{formatUnits as M}from"viem";async function R({account:e,wagmiConfig:t,chainId:a,ensoClient:n}){let u=(await n.getBalances({useEoa:!0,chainId:a??"all",eoaAddress:e})).map(o=>({name:o.name,symbol:o.symbol,decimals:o.decimals,address:m(o.token,"ETH")?v.address:o.token,logoURI:o.logoUri,balance:{raw:o.amount.toString(),formatted:M(BigInt(o.amount),o.decimals)},chainId:Number(o.chainId),price:Number(o.price)})),s=Object.groupBy(u,o=>o.chainId??0),l=await Promise.allSettled(Object.entries(s).map(async([o,i])=>{if(!i)return;let p=j(t).find(d=>d.id===Number(o));if(!p)return;let k=p.contracts?.multicall3?.address;if(!k)return g.captureException(new b({property:"multicallAddress",value:k,expected:"Address",chainId:Number(o)})),i;let f=await ee(t,{chainId:Number(o),contracts:i.map(d=>E({token:d,account:e,multicallAddress:k})),allowFailure:!0}),x=[];for(let d=0;d<i.length;d++){let T=i[d];if(f[d].status==="success"){let C=f[d].result;x.push({...T,balance:{raw:C?.toString()??"0",formatted:M(C??0n,T.decimals)}})}else console.error("error getting balance",f[d].error),g.captureException(h({cause:f[d].error})),x.push(T)}return x})),c=[];for(let o of l)o.status==="fulfilled"?c.push(...o.value??[]):g.captureException(h({cause:o.reason}));return c.sort((o,i)=>{let p=Number(o.balance.formatted)*(o.price??0);return Number(i.balance.formatted)*(i.price??0)-p})}function A({chainId:e}={},t){let{address:a}=te(),n=ne(),r=!!a&&(t?.opts?.isEnabled??!0),s=oe(r&&n?["useEnsoUserTokensWithBalances",a,e]:null,async([,l,c])=>R({account:l,wagmiConfig:n,chainId:c??"all",ensoClient:B()}),{refreshInterval:1e5,isEnabled:r,...t?.opts});return{...s,refresh:()=>s.mutate()}}function H({defaultTokenList:e=[],externalList:t=[]}){if(e.length===0)return{tokenList:t,customTokenList:t,featuredTokenList:[]};let a=e.map(s=>({...s,default:!0})),n=a.filter(s=>s.tags?.some(l=>l==="featured")),r=[...a,...t];return{tokenList:r.filter((s,l)=>r.findIndex(c=>m(c,s))===l),customTokenList:t,featuredTokenList:n}}import{jsx as le}from"react/jsx-runtime";var ie=re(void 0);function je({children:e,defaultTokens:t,edgeConfigTokenList:a,userTokens:n,onAddToken:r,onRemoveToken:u}){let{data:s,refresh:l}=A(),{tokenList:c=[],featuredTokenList:o=[]}=ae(()=>H({defaultTokenList:[...t,...a?.filter(i=>se(i.enabled))],externalList:[...n,...(s??[]).map(i=>({...i,balance:void 0,price:void 0}))]}),[t,n,a,s]);return le(ie.Provider,{value:{tokenList:c,userTokens:n,featuredTokens:o,ensoTokens:s,onAddToken(i){r(i,{defaultTokens:t,userTokens:n,tokenList:c})},onRemoveToken:u,refresh:()=>{l()}},children:e})}export{pe as a,D as b,fe as c,w as d,Te as e,he as f,ve as g,F as h,Ee as i,L as j,Fe as k,Le as l,ie as m,je as n};
|
|
2
|
-
//# sourceMappingURL=chunk-55L7STYD.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/contexts/BeraFlags/BeraFlags.tsx","../src/contexts/BexStatusProvider.tsx","../src/contexts/block-time-provider.tsx","../src/contexts/HoneyConfigProvider.tsx","../src/contexts/TokensProvider.tsx","../src/hooks/enso/useEnsoUserTokensWithBalances.ts","../src/actions/enso/getEnsoUserTokensWithBalances.ts","../src/utils/formatTokenList.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\nimport {\n type EdgeConfigSchema,\n isFlagEnabled,\n} from \"@berachain/config/internal/edge-config\";\n\nimport { type BeraFlags, defaultFlags } from \"./defaultFlags\";\n\nexport type { BeraFlags };\n\nexport type BeraFlagsContextReturn = BeraFlags & {\n /**\n * A list of aggregators that are enabled. If not provided, all aggregators are enabled.\n */\n aggregators: string[] | undefined;\n swberaAprWindow: Exclude<\n EdgeConfigSchema[\"pol\"][\"swberaAprWindow\"],\n undefined\n >;\n};\n\nconst BeraFlagContext = createContext<BeraFlagsContextReturn | undefined>(\n undefined,\n);\n\nexport function BeraFlagsProvider({\n children,\n flags,\n aggregators,\n swberaAprWindow = \"DAY\",\n}: {\n children: React.ReactNode;\n flags: BeraFlags;\n aggregators?: NonNullable<EdgeConfigSchema[\"bex\"]>[\"aggregators\"];\n swberaAprWindow?: EdgeConfigSchema[\"pol\"][\"swberaAprWindow\"];\n}) {\n return (\n <BeraFlagContext.Provider\n value={{\n ...defaultFlags,\n ...flags,\n aggregators: aggregators\n ? Object.entries(aggregators)\n .filter(([, value]) => isFlagEnabled(value))\n .map(([key]) => key)\n : undefined,\n swberaAprWindow,\n }}\n >\n {children}\n </BeraFlagContext.Provider>\n );\n}\n\nexport function useBeraFlags() {\n const context = useContext(BeraFlagContext);\n if (!context) {\n throw new Error(\"BeraFlagsProvider not found\");\n }\n return context;\n}\n\nexport function useBeraFlag<T extends keyof BeraFlagsContextReturn>(\n key: T,\n): BeraFlagsContextReturn[T] {\n const flags = useBeraFlags();\n return flags[key];\n}\n","import {\n createContext,\n type Dispatch,\n type PropsWithChildren,\n type SetStateAction,\n useContext,\n useState,\n} from \"react\";\nimport type { Hex } from \"viem\";\n\nimport type { EdgeConfigSchema } from \"@berachain/config/internal/edge-config\";\n\nimport { BeraError } from \"~/errors/BeraError\";\n\ntype FactoryStatus = {\n /**\n * If the composable stable factory is enabled\n */\n composableStable: \"paused\" | \"enabled\";\n /**\n * If the weighted factory is enabled\n */\n weighted: \"paused\" | \"enabled\";\n};\nexport interface BexStatusProviderProps {\n isVaultPaused: boolean;\n pool?: {\n id: Hex;\n isInRecoveryMode: boolean;\n isPaused: boolean;\n };\n factories: FactoryStatus;\n labels?: NonNullable<EdgeConfigSchema[\"bex\"]>[\"emergencyLabels\"];\n}\n\nexport const BexStateContext = createContext<{\n protocol: {\n isPaused: boolean;\n factories: FactoryStatus & { allPaused: boolean };\n };\n onPoolChange: Dispatch<SetStateAction<BexStatusProviderProps[\"pool\"]>>;\n pool?: {\n id: Hex;\n isInRecoveryMode: boolean;\n isPaused: boolean;\n disablePoolWithdrawals: boolean;\n disablePoolDeposits: boolean;\n };\n labels?: NonNullable<EdgeConfigSchema[\"bex\"]>[\"emergencyLabels\"];\n}>({\n protocol: {\n isPaused: false,\n factories: {\n composableStable: \"enabled\",\n weighted: \"enabled\",\n allPaused: false,\n },\n },\n onPoolChange: () => {},\n pool: undefined,\n});\n\n/**\n * @description Determines the status of a pool or vault and returns the appropriate messages and flags to disable functionality.\n * More information here https://www.notion.so/berachain/BEX-RecoveryMode-and-Pause-explained-17c6120abced80e0985dd589b57ff018\n *\n * @returns status flags to enable/disable/notify users across the BEX\n *\n **/\nexport function useBexStatus() {\n const context = useContext(BexStateContext);\n\n if (!context) {\n throw new BeraError({\n level: \"fatal\",\n message: \"BexStateContext is not defined\",\n });\n }\n\n return context;\n}\n\nexport function BexStatusProvider({\n children,\n isVaultPaused,\n labels,\n factories,\n}: PropsWithChildren<BexStatusProviderProps>) {\n const [poolState, setPoolState] = useState<BexStatusProviderProps[\"pool\"]>();\n // Determine whether to disable withdrawals for a pool (vault pause does not impact this)\n const disablePoolWithdrawals =\n (poolState?.isPaused && !poolState?.isInRecoveryMode) ?? false;\n\n // Determine whether to disable deposits for a pool (vault pause does not impact this)\n const disablePoolDeposits = isVaultPaused || poolState?.isPaused;\n\n // TODO: we dont yet support anything to disable staking/unstaking within reward vaults if they get paused\n\n return (\n <BexStateContext.Provider\n value={{\n protocol: {\n isPaused: isVaultPaused,\n factories: {\n ...factories,\n allPaused:\n factories.composableStable === \"paused\" &&\n factories.weighted === \"paused\",\n },\n },\n labels,\n onPoolChange: setPoolState,\n pool: poolState\n ? {\n ...poolState,\n disablePoolWithdrawals: !!disablePoolWithdrawals,\n disablePoolDeposits: !!disablePoolDeposits,\n }\n : undefined,\n }}\n >\n {children}\n </BexStateContext.Provider>\n );\n}\n","import { createContext, type PropsWithChildren, useContext } from \"react\";\n\nimport { mainnet } from \"@berachain/config/mainnet\";\n\nimport { parseBaseArgs } from \"~/utils/parseBaseArgs\";\n\n/**\n * Average berachain block time in seconds\n */\nexport function useBlockTime(): number {\n return useContext(BlockTimeContext);\n}\n\nexport const BlockTimeContext = createContext<number>(\n // this is the default block time for berachain, but actually overridden by the block time provider\n mainnet.averageBlockTime,\n);\n\nexport function BlockTimeProvider({\n children,\n blockTime,\n ...args\n}: PropsWithChildren<{\n blockTime?: number;\n}> &\n BeraJS.BaseFunctionArgs) {\n const { config } = parseBaseArgs(args);\n\n return (\n <BlockTimeContext.Provider value={blockTime ?? config.averageBlockTime}>\n {children}\n </BlockTimeContext.Provider>\n );\n}\n","import { createContext, useContext } from \"react\";\n\nimport type { HoneyFeeMap } from \"~/actions/honey/getHoneyFees\";\nimport type { TokenWithMetadata } from \"~/types/dex\";\nimport type { PythPriceFeedMap } from \"~/types/honeySwap\";\n\nexport const HoneyConfigContext = createContext<\n HoneyConfigContextReturn | undefined\n>(undefined);\n\nexport type TokenWithOrder = TokenWithMetadata & {\n order: number;\n};\nexport interface HoneyConfigContextReturn {\n /**\n * Map of the Pyth price feed ids for each collateral\n */\n priceFeedMap: PythPriceFeedMap;\n /**\n * This is the list of all the collaterals that are supported by the Honey protocol\n */\n collateralList: TokenWithOrder[];\n /**\n * This is the main collateral that is used to calculate the relative cap limit\n */\n referenceCollateral: TokenWithOrder;\n /**\n * An object that maps the redeem/mint rate for each collateral and the weighted rates for the basket mode\n */\n feeMap: HoneyFeeMap;\n flags: {\n /**\n * If true, mint/redeem will also update pyth prices\n */\n isPythWrapperEnabled: boolean;\n };\n /**\n * Honey protocol configs\n */\n protocol: {\n /**\n * Honey protocol paused state\n */\n isPaused: boolean;\n /**\n * The label for the Honey protocol paused message\n */\n pausedBannerLabel?: string;\n };\n}\n\nexport interface HoneyConfigProviderProps extends HoneyConfigContextReturn {\n children: React.ReactNode;\n}\n\nexport function HoneyConfigProvider({\n children,\n ...props\n}: HoneyConfigProviderProps) {\n return (\n <HoneyConfigContext.Provider value={props}>\n {children}\n </HoneyConfigContext.Provider>\n );\n}\n\nexport function useHoneyConfig() {\n const context = useContext(HoneyConfigContext);\n if (!context) {\n throw new Error(\"useHoneyConfig must be used within a HoneyConfigProvider\");\n }\n return context;\n}\n","import { createContext, type PropsWithChildren, useMemo } from \"react\";\n\nimport {\n type EdgeConfigSchema,\n isFlagEnabled,\n} from \"@berachain/config/internal/edge-config\";\n\nimport { useEnsoUserTokensWithBalances } from \"~/hooks/enso/useEnsoUserTokensWithBalances\";\nimport type { BalanceToken, Token, TokenWithMetadata } from \"~/types/dex\";\nimport { formatTokenList } from \"~/utils/formatTokenList\";\n\nexport interface TokensProviderContext {\n tokenList: TokenWithMetadata[];\n userTokens: Token[];\n featuredTokens: TokenWithMetadata[];\n onRemoveToken: (token: Token) => void;\n onAddToken: (token: Token) => void;\n refresh: () => void;\n ensoTokens: BalanceToken[] | undefined;\n}\n\nexport const TokenContext = createContext<TokensProviderContext | undefined>(\n undefined,\n);\n\nexport interface TokensProviderProps\n extends Omit<\n TokensProviderContext,\n \"tokenList\" | \"onAddToken\" | \"featuredTokens\" | \"ensoTokens\"\n > {\n onAddToken: (\n token: Token,\n context: {\n defaultTokens: TokenWithMetadata[];\n userTokens: Token[];\n tokenList: TokenWithMetadata[];\n },\n ) => void;\n defaultTokens: TokenWithMetadata[];\n edgeConfigTokenList: EdgeConfigSchema[\"tokens\"];\n}\n\nexport function TokensProvider({\n children,\n defaultTokens,\n edgeConfigTokenList,\n userTokens,\n onAddToken,\n onRemoveToken,\n}: PropsWithChildren<Omit<TokensProviderProps, \"refresh\">>) {\n const { data: ensoTokens, refresh } = useEnsoUserTokensWithBalances();\n\n const { tokenList = [], featuredTokenList = [] } = useMemo(\n () =>\n formatTokenList({\n defaultTokenList: [\n ...defaultTokens,\n ...(edgeConfigTokenList?.filter((token) =>\n isFlagEnabled(token.enabled),\n ) as TokenWithMetadata[]),\n ],\n externalList: [\n ...userTokens,\n ...(ensoTokens ?? []).map((t) => ({\n ...t,\n balance: undefined,\n price: undefined,\n })),\n ],\n }),\n [defaultTokens, userTokens, edgeConfigTokenList, ensoTokens],\n );\n\n return (\n <TokenContext.Provider\n value={{\n tokenList,\n userTokens,\n featuredTokens: featuredTokenList,\n ensoTokens,\n onAddToken(tk) {\n onAddToken(tk, { defaultTokens, userTokens, tokenList });\n },\n onRemoveToken,\n refresh: () => {\n refresh();\n },\n }}\n >\n {children}\n </TokenContext.Provider>\n );\n}\n","import useSWR from \"swr\";\n\nimport { useBeraWallet, useConfig } from \"@berachain/wagmi/hooks\";\n\nimport { getEnsoClient } from \"~/actions/clients/getEnsoClient\";\nimport { getEnsoUserTokensWithBalances } from \"~/actions/enso/getEnsoUserTokensWithBalances\";\nimport { POLLING } from \"~/enum/polling\";\nimport type { BalanceToken } from \"~/types/dex\";\nimport type { DefaultHookOptions } from \"~/types/global\";\n\nexport function useEnsoUserTokensWithBalances(\n { chainId }: { chainId?: number } = {},\n options?: DefaultHookOptions,\n) {\n const { address: fromAddress } = useBeraWallet();\n const wagmiConfig = useConfig();\n const isEnabled = !!fromAddress && (options?.opts?.isEnabled ?? true);\n\n const QUERY_KEY =\n isEnabled && wagmiConfig\n ? ([\"useEnsoUserTokensWithBalances\", fromAddress, chainId] as const)\n : null;\n\n const swrResponse = useSWR(\n QUERY_KEY,\n async ([, fromAddress, chainId]): Promise<BalanceToken[]> =>\n getEnsoUserTokensWithBalances({\n account: fromAddress,\n wagmiConfig,\n chainId: chainId ?? \"all\",\n ensoClient: getEnsoClient(),\n }),\n {\n refreshInterval: POLLING.NORMAL,\n isEnabled,\n ...options?.opts,\n },\n );\n return {\n ...swrResponse,\n refresh: () => swrResponse.mutate(),\n };\n}\n","import type { EnsoClient } from \"@ensofinance/sdk\";\nimport { type Config, getChains, multicall } from \"@wagmi/core\";\nimport { type Address, formatUnits } from \"viem\";\n\nimport { BeraMonitoring } from \"~/errors/BeraMonitoring\";\nimport { InvalidArgumentError } from \"~/errors/InvalidArgumentError\";\nimport { initBeraError } from \"~/errors/initBeraError\";\nimport type { BalanceToken } from \"~/types/dex\";\nimport { beraToken, isToken } from \"~/utils/tokens\";\nimport { getBalanceCall } from \"../tokens/getWalletBalances\";\n\n/**\n * Get user balances for each supported chain.\n *\n * This uses enso's balance endpoint to get the balances and RPC to get fresh balances.\n */\nexport async function getEnsoUserTokensWithBalances({\n account,\n wagmiConfig,\n chainId,\n ensoClient,\n}: {\n account: Address;\n wagmiConfig: Config;\n chainId: number | \"all\";\n ensoClient: EnsoClient;\n}): Promise<BalanceToken[]> {\n const ensoBalances = await ensoClient.getBalances({\n useEoa: true,\n chainId: chainId ?? \"all\",\n eoaAddress: account,\n });\n\n const tokens: BalanceToken[] = ensoBalances.map(\n (balance) =>\n ({\n name: balance.name,\n symbol: balance.symbol,\n decimals: balance.decimals,\n address: isToken(balance.token, \"ETH\")\n ? beraToken.address\n : balance.token,\n logoURI: balance.logoUri,\n balance: {\n raw: balance.amount.toString(),\n formatted: formatUnits(BigInt(balance.amount), balance.decimals),\n },\n\n chainId: Number(\n // @ts-expect-error - balance.chainId is defined just not typed by enso\n balance.chainId,\n ),\n price: Number(balance.price),\n }) as const satisfies BalanceToken,\n );\n\n const tokenByChainId = Object.groupBy(tokens, (a) => a.chainId ?? 0);\n\n const balances = await Promise.allSettled(\n Object.entries(tokenByChainId).map(async ([chainId, chainTokens]) => {\n if (!chainTokens) return undefined;\n const chainConfig = getChains(wagmiConfig).find(\n (chain) => chain.id === Number(chainId),\n );\n\n if (!chainConfig) {\n // if we've queried a chain that is not supported, we need to return undefined\n return undefined;\n }\n\n const multicall3 = chainConfig.contracts?.multicall3;\n\n const multicallAddress = multicall3?.address;\n\n if (!multicallAddress) {\n // if multicall is not supported on this chain, we need to use the enso balance\n // first let's report the error, as this is likely unexpected\n BeraMonitoring.captureException(\n new InvalidArgumentError({\n property: \"multicallAddress\",\n value: multicallAddress,\n expected: \"Address\",\n chainId: Number(chainId),\n }),\n );\n\n // we can return the tokens as is, as the balance is already set from the enso client\n return chainTokens;\n }\n\n const balances = await multicall(wagmiConfig, {\n chainId: Number(chainId),\n contracts: chainTokens.map((token) =>\n getBalanceCall({\n token,\n account,\n multicallAddress,\n }),\n ),\n allowFailure: true,\n });\n\n const tokensWithBalances: BalanceToken[] = [];\n\n for (let index = 0; index < chainTokens.length; index++) {\n const token = chainTokens[index];\n if (balances[index].status === \"success\") {\n const balance = balances[index].result;\n\n tokensWithBalances.push({\n ...token,\n balance: {\n raw: balance?.toString() ?? \"0\",\n formatted: formatUnits(balance ?? 0n, token.decimals),\n },\n });\n } else {\n console.error(\"error getting balance\", balances[index].error);\n BeraMonitoring.captureException(\n initBeraError({ cause: balances[index].error }),\n );\n // uses enso balance as fallback\n tokensWithBalances.push(token);\n }\n }\n\n return tokensWithBalances;\n }),\n );\n\n const flattenedBalances: BalanceToken[] = [];\n for (const result of balances) {\n if (result.status === \"fulfilled\") {\n flattenedBalances.push(...(result.value ?? []));\n } else {\n BeraMonitoring.captureException(initBeraError({ cause: result.reason }));\n }\n }\n\n return flattenedBalances.sort((a, b) => {\n const aValue = Number(a.balance.formatted) * (a.price ?? 0);\n const bValue = Number(b.balance.formatted) * (b.price ?? 0);\n return bValue - aValue;\n });\n}\n","import type { Token, TokenWithMetadata } from \"../types/dex\";\nimport { isToken } from \"./tokens\";\n\nexport interface FormatTokenListReturnType {\n /**\n * Token list including custom tokens\n */\n tokenList: Token[];\n /**\n * Custom token list (added by the user)\n */\n customTokenList?: Token[];\n /**\n * Featured token list\n */\n featuredTokenList?: Token[];\n}\n\nfunction formatTokenList({\n defaultTokenList = [],\n externalList = [],\n}: {\n defaultTokenList: TokenWithMetadata[];\n externalList?: Token[];\n}): FormatTokenListReturnType {\n if (defaultTokenList.length === 0) {\n return {\n tokenList: externalList,\n customTokenList: externalList,\n featuredTokenList: [],\n };\n }\n\n const defaultList = defaultTokenList.map((token) => {\n return { ...token, default: true };\n });\n\n const featuredTokenList = defaultList.filter((token) => {\n return token.tags?.some((tag) => tag === \"featured\");\n });\n\n const mergedList = [...defaultList, ...externalList];\n\n const uniqueList = mergedList.filter(\n (item, index) => mergedList.findIndex((i) => isToken(i, item)) === index,\n );\n\n return {\n tokenList: uniqueList,\n customTokenList: externalList,\n featuredTokenList,\n };\n}\n\nexport { formatTokenList };\n"],"mappings":"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","names":["createContext","useContext","isFlagEnabled","jsx","BeraFlagContext","createContext","BeraFlagsProvider","children","flags","aggregators","swberaAprWindow","defaultFlags","value","isFlagEnabled","key","useBeraFlags","context","useContext","useBeraFlag","createContext","useContext","useState","jsx","BexStateContext","createContext","useBexStatus","context","useContext","BeraError","BexStatusProvider","children","isVaultPaused","labels","factories","poolState","setPoolState","useState","disablePoolWithdrawals","disablePoolDeposits","createContext","useContext","mainnet","jsx","useBlockTime","useContext","BlockTimeContext","createContext","mainnet","BlockTimeProvider","children","blockTime","args","config","parseBaseArgs","createContext","useContext","jsx","HoneyConfigContext","HoneyConfigProvider","children","props","useHoneyConfig","context","createContext","useMemo","isFlagEnabled","useSWR","useBeraWallet","useConfig","getChains","multicall","formatUnits","getEnsoUserTokensWithBalances","account","wagmiConfig","chainId","ensoClient","tokens","balance","isToken","beraToken","formatUnits","tokenByChainId","a","balances","chainTokens","chainConfig","getChains","chain","multicallAddress","BeraMonitoring","InvalidArgumentError","multicall","token","getBalanceCall","tokensWithBalances","index","initBeraError","flattenedBalances","result","b","aValue","useEnsoUserTokensWithBalances","chainId","options","fromAddress","useBeraWallet","wagmiConfig","useConfig","isEnabled","swrResponse","useSWR","getEnsoUserTokensWithBalances","getEnsoClient","formatTokenList","defaultTokenList","externalList","defaultList","token","featuredTokenList","tag","mergedList","item","index","i","isToken","jsx","TokenContext","createContext","TokensProvider","children","defaultTokens","edgeConfigTokenList","userTokens","onAddToken","onRemoveToken","ensoTokens","refresh","useEnsoUserTokensWithBalances","tokenList","featuredTokenList","useMemo","formatTokenList","token","isFlagEnabled","t","tk"]}
|
package/dist/chunk-5XWELBWR.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{g as y}from"./chunk-AX2YQQFQ.mjs";async function F(e){if(e.headers.get("content-type")?.includes("application/json"))return await e.json();{let t=await e.text();try{return JSON.parse(t)}catch{return{message:"Unknown error, can't decode response into JSON",cause:t}}}}async function C(e,n){try{let t=await fetch(typeof e=="string"||e instanceof URL?e:e.url,{...n});if(!t.ok){let r=await F(t);throw new y({cause:r,response:t,endpoint:e})}return t}catch(t){throw t instanceof y?t:new y({cause:t,endpoint:e,response:void 0})}}async function ee(e,n){return(await C(e,{...n,headers:{Accept:"application/json",...n?.headers}})).json()}import{parseEther as P}from"viem";var re=P("0.005"),oe=1e5,se=1,ue=.1,ie=50,ae=7920027n;var ce=e=>2n*BigInt(e);function le(e){return Math.floor(e/1e3)}function O(e){return e*1e3}function V(e){return e*O(60)}function j(e){return e*60}function J(e){return e*V(60)}function q(e){return e*j(60)}function S(e){return e*J(24)}function w(e){return e*q(24)}function be(e){return e*S(7)}function pe(e){return e*w(7)}function de(e){return e*S(30)}function he(e){return e*w(30)}function ge(e){return e*S(365)}function Ne(e){return e*w(365)}function ye(e){let n=new Date;return n.setDate(n.getDate()-e)*1e3}var G=["January","February","March","April","May","June","July","August","September","October","November","December"],k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Me(e,n){let t=new Date(e*1e3),r=t.getDate(),u="th";return r===1||r===21||r===31?u="st":r===2||r===22?u="nd":(r===3||r===23)&&(u="rd"),n?`${k[t.getMonth()]} ${r}`:`${G[t.getMonth()]} ${r}${u}, ${t.getFullYear()}`}function Ie(...e){let n=e[0],t,r,u,l;if(typeof e[1]!="object")t=e[1]??!1,r=e[2]??!1,l=e[3]??!1,u=!0;else{let s=e[1];t=s.condensed??!1;let o=s.greaterUnit??"hours";o==="days"?(r=!0,u=!0):o==="hours"?(r=!1,u=!0,l=!1):(r=!1,u=!0),l=s.showSeconds??!1}let a=Math.floor(n/(3600*24)),i=Math.floor(n%(3600*24)/3600),c=Math.floor(n%3600/60),m=n%60;if(r||(i+=a*24,a=0),a===0&&i===0&&c===0)return t?"< 1 M":"less than a minute";let g=a>0?`${a}${t?"D":" day"}${!t&&a!==1?"s":""}`:"",N=i>0?`${i}${t?"H":" hour"}${!t&&i!==1?"s":""}`:"",M=c>0&&u||!a&&!i?`${c}${t?"M":" minute"}${!t&&c!==1?"s":""}`:"",I=m>0&&l?`${m}${t?"S":" second"}${!t&&m!==1?"s":""}`:"";return[g,N,M,I].filter(Boolean).join(t?" ":", ")}import A from"@berachain/utils/pkg/bignumber.js";var U=["","K","M","B","T","P","E","Z","Y"];function _(e){return e instanceof A?e:new A(e)}function X(e,n){return _(e).shiftedBy(n*-1)}function we(e,n={}){if(typeof n=="number"){let d=n;if(e==null)return"";if(typeof e=="object")throw new Error("Value must be a number if using deprecated version");let b=Number(e).toFixed(d);return b=b.replace(/(\.\d*?[1-9])0+$|\.0*$/,"$1"),b}let{visibleDecimals:t,compact:r=!0,percent:u=!1,roundDown:l=!1,roundUp:a=!1,compactThreshold:i,maxValue:c,symbol:m,prefixText:g="",suffixText:N="",showIsSmallerThanMin:M=!0,ifNullish:I=""}=n||{};if(e==null)return I;let s=u?Number(e)*100:Number(e);if(Number.isNaN(s))return"NaN";if(s===Number.POSITIVE_INFINITY)return"Infinity";if(s===Number.NEGATIVE_INFINITY)return"-Infinity";let o=t??0;s===0?o=0:t===void 0&&(Math.abs(s)>1||u||m==="USD"?o=2:o=7);let D=10**-o,$=s!==0&&Math.abs(s)<Math.abs(D),R=s<0,L=c?Math.abs(s)>c:!1,p=$?D:s,T=r&&(!i||Math.abs(s)>i);l&&!T?p=Math.trunc(Number(p)*10**o)/10**o:a&&!T&&(p=Math.ceil(Number(p)*10**o)/10**o);let x;if(L)x=s>c?"\u221E":"-\u221E";else if(T){let d=_(p),b=d.abs().toFixed(0).length;i&&Math.abs(s)<=i&&(b=0);let E=Math.min(Math.floor(b?(b-1)/3:0),U.length-1),B=U[E],h=X(d,3*E).toNumber();l?h=Math.trunc(Number(h)*10**o)/10**o:a&&(h=Math.ceil(Number(h)*10**o)/10**o),x=`${new Intl.NumberFormat("en-US",{maximumFractionDigits:o,minimumFractionDigits:o}).format(h)}${B}`}else{let d=new Intl.NumberFormat("en-US",{maximumFractionDigits:o,minimumFractionDigits:o}).format(Math.abs(p));x=`${R?"-":""}${d}`}let f=[];return g&&f.push(g),$&&M&&f.push(s<0?">":"<"),m?.toLowerCase()==="usd"&&!u&&f.push("$"),f.push(x),u&&f.push("%"),m?.toLowerCase()!=="usd"&&typeof m<"u"&&f.push(" ",m),N&&f.push(N),f.join("")}var De=e=>e?Number(e)>Number.MAX_SAFE_INTEGER?Number.MAX_SAFE_INTEGER:Number(e)??0:0,$e=(e,n)=>{if(!e)return"0";let[t="0",r="0"]=`${e}`.split(".");return`${t}.${r.substring(0,n)}`};import{createTestClient as Y,http as K}from"viem";import{defaultChainId as z,getRpcUrls as H}from"@berachain/config/internal";function Ue(e=z){let n=H(e);if(!n.isAnvil)throw new Error("No anvil RPC URL found");return Y({mode:"anvil",transport:K(n.jsonRpcUrl)})}function Re({lastBlockTimestamp:e,blockTime:n}){return e?e<Date.now()/1e3-n*10:!0}export{F as a,C as b,ee as c,re as d,oe as e,se as f,ue as g,ie as h,ae as i,ce as j,le as k,O as l,V as m,j as n,J as o,q as p,S as q,w as r,be as s,pe as t,de as u,he as v,ge as w,Ne as x,ye as y,Me as z,Ie as A,we as B,De as C,$e as D,Ue as E,Re as F};
|
|
2
|
-
//# sourceMappingURL=chunk-5XWELBWR.mjs.map
|