@berachain/berajs 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{dex-BaNHEuck.d.cts → HoneyConfigProvider-6PXZJMSU.d.cts} +171 -171
- package/dist/{dex-D6IK-4D9.d.ts → HoneyConfigProvider-CwDFrt02.d.ts} +171 -171
- package/dist/abi/index.cjs +1 -1
- package/dist/abi/index.cjs.map +1 -1
- package/dist/abi/index.mjs +1 -1
- package/dist/actions/index.cjs +1 -1
- package/dist/actions/index.d.cts +7 -7
- package/dist/actions/index.d.ts +7 -7
- package/dist/actions/index.mjs +1 -1
- package/dist/chunk-22MQVFHP.cjs +2 -0
- package/dist/chunk-22MQVFHP.cjs.map +1 -0
- package/dist/chunk-3TKSVFZ3.mjs +2 -0
- package/dist/chunk-3TKSVFZ3.mjs.map +1 -0
- package/dist/{chunk-GZ5YA2AZ.cjs → chunk-6VF3RF53.cjs} +3 -3
- package/dist/{chunk-GZ5YA2AZ.cjs.map → chunk-6VF3RF53.cjs.map} +1 -1
- package/dist/{chunk-3WCYP277.mjs → chunk-AMRJ4B36.mjs} +2 -2
- package/dist/chunk-EU4WFADK.cjs +2 -0
- package/dist/chunk-EU4WFADK.cjs.map +1 -0
- package/dist/{chunk-ZLCBHOSV.mjs → chunk-KMKUXP2S.mjs} +3 -3
- package/dist/chunk-OJXJ6CZ4.mjs +4 -0
- package/dist/{chunk-M5GUTM7K.mjs.map → chunk-OJXJ6CZ4.mjs.map} +1 -1
- package/dist/{chunk-V3PCHP2D.cjs → chunk-REDXXUK7.cjs} +2 -2
- package/dist/{chunk-V3PCHP2D.cjs.map → chunk-REDXXUK7.cjs.map} +1 -1
- package/dist/chunk-VYWYJR63.mjs +2 -0
- package/dist/chunk-VYWYJR63.mjs.map +1 -0
- package/dist/{chunk-GWBENQEV.cjs → chunk-XFPTQMAK.cjs} +3 -3
- package/dist/{chunk-GWBENQEV.cjs.map → chunk-XFPTQMAK.cjs.map} +1 -1
- package/dist/contexts/index.cjs +1 -1
- package/dist/contexts/index.d.cts +3 -3
- package/dist/contexts/index.d.ts +3 -3
- package/dist/contexts/index.mjs +1 -1
- package/dist/{getValidatorQueuedOperatorAddress-BhPVMCTj.d.ts → getValidatorQueuedOperatorAddress-9xY2RUGe.d.cts} +2 -2
- package/dist/{getValidatorQueuedOperatorAddress-Cmd7rgYK.d.cts → getValidatorQueuedOperatorAddress-Ne2zoiiV.d.ts} +2 -2
- package/dist/hooks/index.cjs +2 -2
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.d.cts +6 -6
- package/dist/hooks/index.d.ts +6 -6
- package/dist/hooks/index.mjs +2 -2
- package/dist/{staking-Bcb8DhoZ.d.cts → staking-F9Nx9TKD.d.ts} +1 -1
- package/dist/{staking-DvJOnMJG.d.ts → staking-f4BpYH7l.d.cts} +1 -1
- package/dist/types/index.d.cts +4 -4
- package/dist/types/index.d.ts +4 -4
- package/dist/{useHoneySwapState-DfmXCavx.d.cts → useHoneySwapState-C-9BV4VB.d.cts} +1 -1
- package/dist/{useHoneySwapState-AKDZI2MT.d.ts → useHoneySwapState-CUY5Sm1b.d.ts} +1 -1
- package/dist/utils/index.cjs +1 -1
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.cts +4 -4
- package/dist/utils/index.d.ts +4 -4
- package/dist/utils/index.mjs +1 -1
- package/package.json +3 -2
- package/src/abi/bend/bundler.ts +60 -0
- package/src/abi/bend/generalAdapter.ts +362 -0
- package/src/abi/bend/metaMorpho.ts +2584 -0
- package/src/abi/bend/morpho.ts +444 -0
- package/src/abi/bend/morphoVault.ts +1456 -0
- package/src/abi/bend/publicAllocator.ts +355 -0
- package/src/abi/bex/aggregatorsRouter.ts +492 -0
- package/src/abi/bex/balancerComposableStablePoolFactoryV6.ts +283 -0
- package/src/abi/bex/balancerPoolCreationHelper.ts +267 -0
- package/src/abi/bex/balancerVault.ts +757 -0
- package/src/abi/enso/ensoRouterAbi.ts +140 -0
- package/src/abi/governance/governance.ts +1016 -0
- package/src/abi/governance/governanceTimelock.ts +589 -0
- package/src/abi/honey/collateralVault.ts +1144 -0
- package/src/abi/honey/honey.ts +563 -0
- package/src/abi/honey/honeyFactory.ts +1270 -0
- package/src/abi/honey/honeyFactoryReader.ts +894 -0
- package/src/abi/honey/honeyRootOracle.ts +492 -0
- package/src/abi/honey/pythPriceOracle.ts +619 -0
- package/src/abi/honey/pythWrapper.ts +446 -0
- package/src/abi/index.ts +35 -0
- package/src/abi/pol/beaconDeposit.ts +595 -0
- package/src/abi/pol/beraChef.ts +1019 -0
- package/src/abi/pol/bgt.ts +1008 -0
- package/src/abi/pol/bgtIncentiveDistributor.ts +640 -0
- package/src/abi/pol/bgtStaker.ts +1034 -0
- package/src/abi/pol/rewardAllocationFactory.ts +408 -0
- package/src/abi/pol/rewardVault.ts +1928 -0
- package/src/abi/pol/rewardVaultFactory.ts +586 -0
- package/src/abi/pol/rewardVaultHelper.ts +882 -0
- package/src/abi/pol/stakeBeraVault.ts +1116 -0
- package/src/abi/pol/stakeBeraVaultWithdrawalRequest.ts +618 -0
- package/src/abi/pol/wbera.ts +366 -0
- package/src/abi/pyth/pyth.ts +566 -0
- package/src/abi/pyth/pythErrors.ts +72 -0
- package/src/abi/utils/EIP7702StatelessDelegator.ts +523 -0
- package/src/abi/utils/bundler3errors.ts +6 -0
- package/src/abi/utils/commonAbiErrors.ts +9 -0
- package/src/abi/utils/erc20errors.ts +74 -0
- package/src/abi/utils/merkleDistributor.ts +838 -0
- package/src/abi/utils/multicall3.ts +242 -0
- package/src/abi/utils/openChainErrors.ts +139 -0
- package/src/abi/utils/upgradableBeacon.ts +86 -0
- package/src/actions/bend/getConvertToAssets.ts +23 -0
- package/src/actions/bend/getMaxDeposit.ts +21 -0
- package/src/actions/clients/BeraApolloClient.ts +125 -0
- package/src/actions/clients/getApolloClient.ts +109 -0
- package/src/actions/clients/getEnsoClient.ts +24 -0
- package/src/actions/dex/__tests__/aggregators.unit.test.ts +112 -0
- package/src/actions/dex/__tests__/allPools.integration.test.ts +13 -0
- package/src/actions/dex/__tests__/getOnChainPool.unit.test.ts +15 -0
- package/src/actions/dex/__tests__/haiku.integration.test.ts +40 -0
- package/src/actions/dex/aggregators/base.ts +174 -0
- package/src/actions/dex/aggregators/bex.ts +255 -0
- package/src/actions/dex/aggregators/bgt.ts +50 -0
- package/src/actions/dex/aggregators/enso.ts +113 -0
- package/src/actions/dex/aggregators/fly.ts +136 -0
- package/src/actions/dex/aggregators/haiku.ts +171 -0
- package/src/actions/dex/aggregators/honey.ts +245 -0
- package/src/actions/dex/aggregators/kyberswap.ts +142 -0
- package/src/actions/dex/aggregators/oogabooga.ts +110 -0
- package/src/actions/dex/aggregators/openOcean.ts +142 -0
- package/src/actions/dex/aggregators/wbera.ts +72 -0
- package/src/actions/dex/b-sdk.ts +48 -0
- package/src/actions/dex/getAllPools.ts +60 -0
- package/src/actions/dex/getApiPool.ts +47 -0
- package/src/actions/dex/getGlobalLiquidityAndSwapVolume.ts +29 -0
- package/src/actions/dex/getIsTokenExploited.ts +63 -0
- package/src/actions/dex/getOnChainPool.ts +216 -0
- package/src/actions/dex/getPoolEvents.ts +35 -0
- package/src/actions/dex/getPoolHistoricalData.ts +51 -0
- package/src/actions/dex/getPoolPausedState.ts +40 -0
- package/src/actions/dex/getPoolWithState.ts +24 -0
- package/src/actions/dex/getSubgraphPool.ts +30 -0
- package/src/actions/dex/getTransactionCount.ts +29 -0
- package/src/actions/dex/getVaultPausedState.ts +21 -0
- package/src/actions/enso/bend.ts +143 -0
- package/src/actions/enso/getEnsoUserToken.debug.test.ts +57 -0
- package/src/actions/enso/getEnsoUserToken.ts +133 -0
- package/src/actions/enso/util.ts +60 -0
- package/src/actions/enso/zap.ts +78 -0
- package/src/actions/governance/__tests__/checkProposalField.unit.test.ts +108 -0
- package/src/actions/governance/__tests__/getDecodedFunctionData.integration.test.ts +127 -0
- package/src/actions/governance/__tests__/getQuorum.integration.test.ts +39 -0
- package/src/actions/governance/checkProposalField.ts +211 -0
- package/src/actions/governance/computeActualStatus.ts +154 -0
- package/src/actions/governance/constants.ts +7 -0
- package/src/actions/governance/getAllProposals.ts +75 -0
- package/src/actions/governance/getBodyErrors.ts +28 -0
- package/src/actions/governance/getDecodedFunctionData.ts +170 -0
- package/src/actions/governance/getProposalDetails.ts +40 -0
- package/src/actions/governance/getProposalFromTx.ts +101 -0
- package/src/actions/governance/getProposalParams.ts +247 -0
- package/src/actions/governance/getProposalVotes.ts +20 -0
- package/src/actions/governance/getQuorum.ts +38 -0
- package/src/actions/governance/parseProposalBody.ts +73 -0
- package/src/actions/honey/getChartData.ts +27 -0
- package/src/actions/honey/getCollateralWeights.ts +50 -0
- package/src/actions/honey/getGlobalCapLimit.ts +148 -0
- package/src/actions/honey/getHoneyCollaterals.ts +139 -0
- package/src/actions/honey/getHoneyFees.ts +100 -0
- package/src/actions/honey/getHoneyGlobalData.ts +21 -0
- package/src/actions/honey/getHoneyPausedState.ts +25 -0
- package/src/actions/honey/getHoneyPreview.ts +152 -0
- package/src/actions/honey/getHoneyPythPriceOracle.ts +21 -0
- package/src/actions/honey/getHoneyRootPriceOracle.ts +23 -0
- package/src/actions/honey/getHoneyVaultsBalance.ts +86 -0
- package/src/actions/honey/getPythLatestPrices.ts +54 -0
- package/src/actions/honey/getRelativeCapLimit.ts +83 -0
- package/src/actions/honey/getSharesWithoutFees.ts +65 -0
- package/src/actions/honey/getSwapPayload.ts +128 -0
- package/src/actions/honey/isBadCollateralAsset.ts +77 -0
- package/src/actions/honey/isBasketModeEnabled.ts +47 -0
- package/src/actions/honey/tests/pyth.integration.test.ts +63 -0
- package/src/actions/index.ts +105 -0
- package/src/actions/misc/getBlockTimestamp.ts +41 -0
- package/src/actions/pol/__tests__/getAllValidators.integration.test.ts +55 -0
- package/src/actions/pol/__tests__/getValidator.integration.test.ts +32 -0
- package/src/actions/pol/__tests__/rewardVaults.integration.test.ts +34 -0
- package/src/actions/pol/getBGTGlobalInfo.ts +43 -0
- package/src/actions/pol/getBgtAprSimulation.ts +207 -0
- package/src/actions/pol/getBgtAprSimultaion.unit.test.ts +297 -0
- package/src/actions/pol/getBgtTokenTotalBoosts.ts +30 -0
- package/src/actions/pol/getBgtTokenTotalSupply.ts +29 -0
- package/src/actions/pol/getBlockTime.ts +43 -0
- package/src/actions/pol/getGlobalCuttingBoard.ts +25 -0
- package/src/actions/pol/getGlobalData.ts +74 -0
- package/src/actions/pol/getIncentiveFeeClaimStats.ts +43 -0
- package/src/actions/pol/getMarkets.ts +36 -0
- package/src/actions/pol/getRewardProofsByValidator.ts +49 -0
- package/src/actions/pol/getRewardTokenToBeraRate.ts +30 -0
- package/src/actions/pol/getRewardVault.ts +54 -0
- package/src/actions/pol/getRewardVaultBeaconImplementation.integration.test.ts +18 -0
- package/src/actions/pol/getRewardVaultBeaconImplementation.ts +35 -0
- package/src/actions/pol/getRewardVaultDurationConstants.integration.test.ts +24 -0
- package/src/actions/pol/getRewardVaultDurationConstants.ts +45 -0
- package/src/actions/pol/getRewardVaultFromToken.ts +30 -0
- package/src/actions/pol/getRewardVaultIncentives.ts +122 -0
- package/src/actions/pol/getRewardVaultRewards.ts +109 -0
- package/src/actions/pol/getRewardVaultStakingToken.ts +19 -0
- package/src/actions/pol/getRewardVaults.ts +106 -0
- package/src/actions/pol/getSWBeraVaultMetadata.ts +166 -0
- package/src/actions/pol/getSWBeraWithdrawal.ts +165 -0
- package/src/actions/pol/getStakeWithdrawalCooldown.ts +21 -0
- package/src/actions/pol/getStakedBeraAPR.ts +56 -0
- package/src/actions/pol/getStakedBeraSnapshots.ts +48 -0
- package/src/actions/pol/getStakingTokenInformation.ts +60 -0
- package/src/actions/pol/getUserClaimableIncentives.ts +40 -0
- package/src/actions/pol/getUserVaultInfo.ts +52 -0
- package/src/actions/pol/getUserVaults.ts +185 -0
- package/src/actions/pol/getUserVaultsBalance.ts +54 -0
- package/src/actions/pol/getUserVaultsReward.ts +32 -0
- package/src/actions/pol/getVaultHistory.ts +43 -0
- package/src/actions/pol/getVaultValidators.ts +31 -0
- package/src/actions/pol/getVaultsSupply.ts +28 -0
- package/src/actions/prices/__tests__/prices.integration.test.ts +29 -0
- package/src/actions/prices/getTokenCurrentPrices.ts +79 -0
- package/src/actions/pyth/getHoneyPythFeeds.ts +46 -0
- package/src/actions/pyth/getUpdateFee.ts +27 -0
- package/src/actions/tokens/getAllowances.ts +59 -0
- package/src/actions/tokens/getTokenInformation.ts +57 -0
- package/src/actions/tokens/getTokens.ts +19 -0
- package/src/actions/tokens/getWalletBalances.integration.test.ts +40 -0
- package/src/actions/tokens/getWalletBalances.ts +123 -0
- package/src/actions/transactions/beraWriteContract.integration.test.ts +251 -0
- package/src/actions/transactions/beraWriteContract.ts +722 -0
- package/src/actions/validators/getActiveBoostAndCommissionChangeDelay.integration.test.ts +40 -0
- package/src/actions/validators/getActiveBoostAndCommissionChangeDelay.ts +109 -0
- package/src/actions/validators/getAllValidators.ts +33 -0
- package/src/actions/validators/getApiEnrichedAllocation.ts +33 -0
- package/src/actions/validators/getApiValidator.ts +38 -0
- package/src/actions/validators/getBaselineRewardAllocation.ts +26 -0
- package/src/actions/validators/getDailyValidatorBlockStats.ts +37 -0
- package/src/actions/validators/getDefaultRewardAllocation.ts +39 -0
- package/src/actions/validators/getManagedValidatorByAccount.ts +32 -0
- package/src/actions/validators/getStakingPoolBatch.ts +20 -0
- package/src/actions/validators/getUserActiveValidators.ts +101 -0
- package/src/actions/validators/getUserBoosts.ts +28 -0
- package/src/actions/validators/getUserBoostsOnValidator.ts +70 -0
- package/src/actions/validators/getUserStakingPositions.ts +225 -0
- package/src/actions/validators/getValidatorAnalytics.ts +34 -0
- package/src/actions/validators/getValidatorCommission.ts +24 -0
- package/src/actions/validators/getValidatorEstimatedBgtPerYear.ts +25 -0
- package/src/actions/validators/getValidatorOperatorAddress.ts +27 -0
- package/src/actions/validators/getValidatorQueuedCommission.ts +30 -0
- package/src/actions/validators/getValidatorQueuedOperatorAddress.ts +32 -0
- package/src/actions/validators/getValidatorQueuedRewardAllocation.ts +31 -0
- package/src/actions/validators/getValidatorRewardAllocation.ts +158 -0
- package/src/actions/validators/getValidatorRewardAllocatorAddress.ts +38 -0
- package/src/actions/validators/utils/__tests__/validatorUtils.integration.test.ts +36 -0
- package/src/actions/validators/utils/getValidatorBoostApy.ts +59 -0
- package/src/contexts/BeraFlags/BeraFlags.tsx +69 -0
- package/src/contexts/BeraFlags/defaultFlags.ts +42 -0
- package/src/contexts/BexStatusProvider.tsx +125 -0
- package/src/contexts/HoneyConfigProvider.tsx +73 -0
- package/src/contexts/SwrFallback.tsx +34 -0
- package/src/contexts/TokensProvider.tsx +66 -0
- package/src/contexts/berajsProvider/context.tsx +49 -0
- package/src/contexts/berajsProvider/index.ts +2 -0
- package/src/contexts/berajsProvider/useBeraJs.ts +18 -0
- package/src/contexts/block-time-provider.tsx +34 -0
- package/src/contexts/index.ts +14 -0
- package/src/data/contracts.ts +398 -0
- package/src/enum/dex.ts +10 -0
- package/src/enum/index.ts +4 -0
- package/src/enum/polling.ts +8 -0
- package/src/enum/slippage.ts +19 -0
- package/src/enum/txnEnum.ts +101 -0
- package/src/errors/BeraError.ts +202 -0
- package/src/errors/InvalidArgumentError.ts +81 -0
- package/src/errors/NotFoundError.ts +34 -0
- package/src/errors/RequestError.ts +207 -0
- package/src/errors/TransactionFailedError.ts +93 -0
- package/src/errors/assert.ts +144 -0
- package/src/errors/assert.unit.test.ts +110 -0
- package/src/errors/errorMap.ts +1157 -0
- package/src/errors/getErrorMessage.ts +40 -0
- package/src/errors/getRevertReason.integration.test.ts +449 -0
- package/src/errors/getRevertReason.ts +179 -0
- package/src/errors/index.ts +8 -0
- package/src/errors/initBeraError.ts +46 -0
- package/src/errors/parseViemError.ts +239 -0
- package/src/hooks/bend/useGetConvertToAssets.ts +42 -0
- package/src/hooks/dex/useAggregatorsQuotes.ts +502 -0
- package/src/hooks/dex/useAggregatorsRouterFeeBps.ts +34 -0
- package/src/hooks/dex/useAllUserPools.ts +38 -0
- package/src/hooks/dex/useApiPool.ts +53 -0
- package/src/hooks/dex/useBexStatus.ts +1 -0
- package/src/hooks/dex/useCreatePool.ts +437 -0
- package/src/hooks/dex/useExploitedTokens.ts +57 -0
- package/src/hooks/dex/useGlobalLiquidityAndSwapVolume.ts +22 -0
- package/src/hooks/dex/useLiquidityMismatch.ts +195 -0
- package/src/hooks/dex/useLpPosition.ts +115 -0
- package/src/hooks/dex/useMultipleTokenApprovalsWithSlippage.ts +92 -0
- package/src/hooks/dex/useOnChainPoolData.ts +126 -0
- package/src/hooks/dex/usePollPoolCreationRelayerApproval.ts +54 -0
- package/src/hooks/dex/usePollVaultIsPaused.ts +30 -0
- package/src/hooks/dex/usePool.ts +59 -0
- package/src/hooks/dex/usePoolEvents.ts +22 -0
- package/src/hooks/dex/usePoolHistoricalData.ts +44 -0
- package/src/hooks/dex/usePools.ts +83 -0
- package/src/hooks/enso/useBendTransactionRequests.ts +247 -0
- package/src/hooks/enso/useEnsoZap.ts +166 -0
- package/src/hooks/enso/useZapTransactionRequests.ts +81 -0
- package/src/hooks/governance/useCreateProposal.ts +88 -0
- package/src/hooks/governance/useGetPastVotes.ts +63 -0
- package/src/hooks/governance/useHasVoted.ts +38 -0
- package/src/hooks/governance/useIsCanceller.ts +43 -0
- package/src/hooks/governance/usePollAllProposals.ts +232 -0
- package/src/hooks/governance/usePollProposal.ts +96 -0
- package/src/hooks/governance/usePollProposalThreshold.ts +41 -0
- package/src/hooks/governance/usePollProposalVotes.ts +64 -0
- package/src/hooks/governance/usePollUserDelegates.ts +70 -0
- package/src/hooks/governance/useProposalFromTx.ts +37 -0
- package/src/hooks/governance/useProposalSnapshot.ts +44 -0
- package/src/hooks/governance/useProposalState.ts +48 -0
- package/src/hooks/governance/useProposalTimelockState.ts +61 -0
- package/src/hooks/governance/useQuorum.ts +42 -0
- package/src/hooks/honey/useCappedGlobally.ts +92 -0
- package/src/hooks/honey/useCappedRelatively.ts +88 -0
- package/src/hooks/honey/useCollateralWeights.ts +48 -0
- package/src/hooks/honey/useHoneyAlerts.ts +314 -0
- package/src/hooks/honey/useHoneyBalances.ts +79 -0
- package/src/hooks/honey/useHoneyChartData.ts +17 -0
- package/src/hooks/honey/useHoneyGlobalData.ts +22 -0
- package/src/hooks/honey/useHoneySwapState.ts +202 -0
- package/src/hooks/honey/useHoneyVaultsBalance.ts +41 -0
- package/src/hooks/honey/useIsBadCollateralAsset.ts +73 -0
- package/src/hooks/honey/useIsBasketModeEnabled.ts +70 -0
- package/src/hooks/honey/usePythLatestPrices.ts +41 -0
- package/src/hooks/index.ts +124 -0
- package/src/hooks/perps/usePythUpdateFee.ts +43 -0
- package/src/hooks/pol/useBgtAprSimulation.ts +22 -0
- package/src/hooks/pol/useBgtUnstakedBalance.ts +50 -0
- package/src/hooks/pol/useClaimableFees.ts +38 -0
- package/src/hooks/pol/useEarnedStakedBeraVault.ts +59 -0
- package/src/hooks/pol/useHighestVaultsAPR.ts +57 -0
- package/src/hooks/pol/useOnChainRewardVault.ts +114 -0
- package/src/hooks/pol/usePollGlobalData.ts +31 -0
- package/src/hooks/pol/usePollMarkets.ts +32 -0
- package/src/hooks/pol/useQueuedBeraUnlock.ts +70 -0
- package/src/hooks/pol/useRewardTokenToBeraRate.ts +45 -0
- package/src/hooks/pol/useRewardVault.ts +51 -0
- package/src/hooks/pol/useRewardVaultBalanceFromStakingToken.ts +82 -0
- package/src/hooks/pol/useRewardVaultFromToken.ts +58 -0
- package/src/hooks/pol/useRewardVaultIncentives.ts +37 -0
- package/src/hooks/pol/useRewardVaultRewards.ts +37 -0
- package/src/hooks/pol/useRewardVaults.ts +45 -0
- package/src/hooks/pol/useStakedBeraSnapshots.ts +27 -0
- package/src/hooks/pol/useUserVaultInfo.ts +46 -0
- package/src/hooks/pol/useUserVaults.ts +40 -0
- package/src/hooks/pol/useVaultAddress.ts +31 -0
- package/src/hooks/pol/useVaultHistory.ts +29 -0
- package/src/hooks/pol/useVaultValidators.ts +33 -0
- package/src/hooks/tokens/useBeraCurrentPrice.ts +12 -0
- package/src/hooks/tokens/useMultipleTokenInformation.ts +62 -0
- package/src/hooks/tokens/usePollAllowances.ts +60 -0
- package/src/hooks/tokens/usePollBalance.ts +113 -0
- package/src/hooks/tokens/usePollWalletBalances.ts +75 -0
- package/src/hooks/tokens/useStakingTokenInformation.ts +54 -0
- package/src/hooks/tokens/useTokenCurrentPrice.ts +19 -0
- package/src/hooks/tokens/useTokenCurrentPrices.ts +57 -0
- package/src/hooks/tokens/useTokenInformation.ts +59 -0
- package/src/hooks/tokens/useTokens.ts +26 -0
- package/src/hooks/tokens/useTotalSupply.ts +22 -0
- package/src/hooks/transactions/TransactionStoreContext.tsx +59 -0
- package/src/hooks/transactions/transactionStore.ts +275 -0
- package/src/hooks/transactions/transactionStore.unit.test.ts +508 -0
- package/src/hooks/transactions/useAddRecentTransaction.ts +29 -0
- package/src/hooks/transactions/useRecentTransactions.ts +27 -0
- package/src/hooks/useBlockToTimestamp.ts +51 -0
- package/src/hooks/useContractWrite/index.ts +2 -0
- package/src/hooks/useContractWrite/stateReducer.ts +60 -0
- package/src/hooks/useContractWrite/types.ts +88 -0
- package/src/hooks/useContractWrite/useBeraContractWrite.ts +137 -0
- package/src/hooks/useGetVerifiedAbi.ts +47 -0
- package/src/hooks/useHistoryState.ts +64 -0
- package/src/hooks/usePrevious.ts +13 -0
- package/src/hooks/validators/useAllValidators.ts +48 -0
- package/src/hooks/validators/useApiEnrichedAllocation.ts +17 -0
- package/src/hooks/validators/useApiValidator.ts +37 -0
- package/src/hooks/validators/useBaselineRewardAllocation.ts +16 -0
- package/src/hooks/validators/useDailyValidatorBlockStats.ts +35 -0
- package/src/hooks/validators/useDefaultRewardAllocation.ts +32 -0
- package/src/hooks/validators/useManagedValidatorByAccount.ts +40 -0
- package/src/hooks/validators/useManagedValidatorRole.ts +119 -0
- package/src/hooks/validators/useOnChainValidator.ts +66 -0
- package/src/hooks/validators/useStakingPoolBatch.ts +45 -0
- package/src/hooks/validators/useSubgraphUserValidators.ts +36 -0
- package/src/hooks/validators/useUserActiveValidators.ts +44 -0
- package/src/hooks/validators/useUserBoostsOnValidator.ts +45 -0
- package/src/hooks/validators/useUserClaimableIncentives.ts +149 -0
- package/src/hooks/validators/useUserStakingPositions.ts +62 -0
- package/src/hooks/validators/useValidator.ts +83 -0
- package/src/hooks/validators/useValidatorAnalytics.ts +36 -0
- package/src/hooks/validators/useValidatorCommission.ts +36 -0
- package/src/hooks/validators/useValidatorEstimatedBgtPerYear.ts +24 -0
- package/src/hooks/validators/useValidatorQueuedCommission.ts +41 -0
- package/src/hooks/validators/useValidatorQueuedOperatorAddress.ts +39 -0
- package/src/hooks/validators/useValidatorQueuedRewardAllocation.ts +37 -0
- package/src/hooks/validators/useValidatorRewardAllocation.ts +36 -0
- package/src/hooks/validators/validatorRoleManager.ts +0 -0
- package/src/types/bribe-boost.ts +50 -0
- package/src/types/dex.ts +196 -0
- package/src/types/enso.ts +42 -0
- package/src/types/global.ts +230 -0
- package/src/types/governance.ts +174 -0
- package/src/types/honeySwap.ts +35 -0
- package/src/types/index.ts +8 -0
- package/src/types/pol.ts +52 -0
- package/src/types/staking.ts +7 -0
- package/src/utils/beraFetch.ts +55 -0
- package/src/utils/constants.ts +35 -0
- package/src/utils/formatAggregatorsQuotes.ts +57 -0
- package/src/utils/formatAggregatorsQuotes.unit.test.ts +191 -0
- package/src/utils/formatIncentivesTokenMap.ts +19 -0
- package/src/utils/formatInputTokenValue.ts +12 -0
- package/src/utils/formatNumber.ts +225 -0
- package/src/utils/formatNumber.unit.test.ts +245 -0
- package/src/utils/formatTimestamps.ts +155 -0
- package/src/utils/formatTimestamps.unit.test.ts +395 -0
- package/src/utils/formatTokenList.ts +61 -0
- package/src/utils/formatUsd.ts +46 -0
- package/src/utils/getContractName.ts +27 -0
- package/src/utils/getContractName.unit.test.ts +64 -0
- package/src/utils/getErrorResponse.ts +20 -0
- package/src/utils/getHoneySwapMessage.test.ts +116 -0
- package/src/utils/getHoneySwapMessage.ts +70 -0
- package/src/utils/getServerSideClient.ts +49 -0
- package/src/utils/getTestClient.ts +19 -0
- package/src/utils/hasAnyTruthyValues.ts +17 -0
- package/src/utils/index.ts +27 -0
- package/src/utils/isDifferenceExceedingThreshold.ts +13 -0
- package/src/utils/isSubgraphStale.ts +10 -0
- package/src/utils/math.ts +28 -0
- package/src/utils/math.unit.test.ts +49 -0
- package/src/utils/parseBaseArgs.ts +23 -0
- package/src/utils/parseBaseArgs.unit.test.ts +55 -0
- package/src/utils/poolNamings.ts +54 -0
- package/src/utils/pythHoneyUtils.ts +3 -0
- package/src/utils/sentryBeforeSend.ts +52 -0
- package/src/utils/test-utils.ts +2 -0
- package/src/utils/time.ts +106 -0
- package/src/utils/time.unit.test.ts +76 -0
- package/src/utils/tokenWrapping.ts +16 -0
- package/src/utils/tokens.ts +106 -0
- package/src/utils/tokens.unit.test.ts +98 -0
- package/src/utils/truncateHash.ts +20 -0
- package/src/utils/truncateHash.unit.test.ts +19 -0
- package/src/utils/validatorUptimeStatus.ts +30 -0
- package/dist/chunk-5OAABMMU.mjs +0 -2
- package/dist/chunk-5OAABMMU.mjs.map +0 -1
- package/dist/chunk-EODAKI5K.cjs +0 -2
- package/dist/chunk-EODAKI5K.cjs.map +0 -1
- package/dist/chunk-IZDT74H4.mjs +0 -2
- package/dist/chunk-IZDT74H4.mjs.map +0 -1
- package/dist/chunk-M5GUTM7K.mjs +0 -4
- package/dist/chunk-YRJAQDEO.cjs +0 -2
- package/dist/chunk-YRJAQDEO.cjs.map +0 -1
- /package/dist/{chunk-3WCYP277.mjs.map → chunk-AMRJ4B36.mjs.map} +0 -0
- /package/dist/{chunk-ZLCBHOSV.mjs.map → chunk-KMKUXP2S.mjs.map} +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
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(); } } 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; }var
|
|
2
|
-
`));g(a,c=>[{...d,status:"pending"},...c.filter(({hash:u})=>u!==d.hash)])}function l(a){g(a,()=>[])}function i(a,d,f){g(a,c=>c.map(u=>u.hash===d?{...u,status:f}:u))}async function p(a){await Promise.all(n(a).filter(d=>d.status==="pending").map(async d=>{let{confirmations:f,hash:c,chainId:u}=d,m=r.get(c);if(m)return await m;let T=_core.getPublicClient.call(void 0, e,{chainId:u});if(!T)return;let x=T.waitForTransactionReceipt({confirmations:f,hash:c}).then(({status:y})=>{r.delete(c),y!==void 0&&i(a,c,Number(y)===0?"failed":"confirmed")});return r.set(c,x),await x}))}function g(a,d){t=B(),t[a]=_nullishCoalesce(t[a], () => ([]));let u=d(_nullishCoalesce(_optionalChain([t, 'optionalAccess', _7 => _7[a]]), () => ([]))).sort((m,T)=>T.timestamp-m.timestamp).slice(0,10);t[a]=u.length>0?u.filter(h):void 0,I(),H(),p(a)}function I(){localStorage.setItem(F,JSON.stringify(t)),localStorage.removeItem(L)}function H(){for(let a of o)a()}function E(a){return o.add(a),()=>{o.delete(a)}}return{addTransaction:s,clearTransactions:l,getTransactions:n,onChange:E,waitForPendingTransactions:p}}var _hooks = require('@berachain/wagmi/hooks');var D,W=_react.createContext.call(void 0, null);function Ie({children:e}){let{account:t}=_hooks.useBeraWagmi.call(void 0, ),o=_optionalChain([t, 'optionalAccess', _8 => _8.wallet, 'optionalAccess', _9 => _9.address]),r=_hooks.useConfig.call(void 0, ),[n]=_react.useState.call(void 0, ()=>_nullishCoalesce(D, () => ((D=R({config:r})))));return _react.useEffect.call(void 0, ()=>{o&&n.waitForPendingTransactions(o)},[n,o]),_jsxruntime.jsx.call(void 0, W.Provider,{value:n,children:e})}function He(){let e=_react.useContext.call(void 0, W);if(!e)throw new Error("Transaction hooks must be used within ");return e}var _mainnet = require('@berachain/config/mainnet'); var _mainnet2 = _interopRequireDefault(_mainnet);function Xe(){return _react.useContext.call(void 0, A)}var A=_react.createContext.call(void 0, _mainnet2.default.averageBlockTime);function _e({children:e,blockTime:t,...o}){let{config:r}=
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
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(); } } 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; }var _chunk22MQVFHPcjs = require('./chunk-22MQVFHP.cjs');var _chunkJMKLDDKYcjs = require('./chunk-JMKLDDKY.cjs');var _react = require('react');var _edgeconfig = require('@berachain/config/internal/edge-config');var _jsxruntime = require('react/jsx-runtime');var v=_react.createContext.call(void 0, void 0);function be({children:e,flags:t,aggregators:o,swberaAprWindow:r="DAY"}){return _jsxruntime.jsx.call(void 0, v.Provider,{value:{..._chunk22MQVFHPcjs.a,...t,aggregators:o?Object.entries(o).filter(([,n])=>_edgeconfig.isFlagEnabled.call(void 0, n)).map(([n])=>n):void 0,swberaAprWindow:r},children:e})}function K(){let e=_react.useContext.call(void 0, v);if(!e)throw new Error("BeraFlagsProvider not found");return e}function ke(e){return K()[e]}var S=_react.createContext.call(void 0, {protocol:{isPaused:!1,factories:{composableStable:"enabled",weighted:"enabled",allPaused:!1}},onPoolChange:()=>{},pool:void 0});function Be(){let e=_react.useContext.call(void 0, S);if(!e)throw new (0, _chunkJMKLDDKYcjs.f)({level:"fatal",message:"BexStateContext is not defined"});return e}function Le({children:e,isVaultPaused:t,labels:o,factories:r}){let[n,s]=_react.useState.call(void 0, ),l=_nullishCoalesce((_optionalChain([n, 'optionalAccess', _2 => _2.isPaused])&&!_optionalChain([n, 'optionalAccess', _3 => _3.isInRecoveryMode])), () => (!1)),i=t||_optionalChain([n, 'optionalAccess', _4 => _4.isPaused]);return _jsxruntime.jsx.call(void 0, S.Provider,{value:{protocol:{isPaused:t,factories:{...r,allPaused:r.composableStable==="paused"&&r.weighted==="paused"}},labels:o,onPoolChange:s,pool:n?{...n,disablePoolWithdrawals:!!l,disablePoolDeposits:!!i}:void 0},children:e})}var _core = require('@wagmi/core');var L="rk-transactions",F="transactions";function w(e){try{let t=e?JSON.parse(e):{};return typeof t=="object"?t:{}}catch (e2){return{}}}function z(e){return Object.entries(e).reduce((t,[o,r])=>({...t,[o]:Object.entries(r).reduce((n,[s,l])=>{if(!l)return n;let i=l.map(p=>({...p,chainId:Number(s)}));return n.push(...i),n},[])}),{})}var h=(e,t,o)=>o.findIndex(r=>r.hash===e.hash)===t;function G(e,t){let o=z(e);for(let[r,n]of Object.entries(t))o[r]&&n?o[r]=[...n,...o[r]].filter(h):o[r]=_optionalChain([n, 'optionalAccess', _5 => _5.filter, 'call', _6 => _6(h)]);return o}function B(){let e=w(typeof localStorage<"u"?localStorage.getItem(L):null),t=w(typeof localStorage<"u"?localStorage.getItem(F):null);return G(e,t)}var Q=/^0x([A-Fa-f0-9]{64})$/;function V(e){let t=[];return Q.test(e.hash)||t.push("Invalid transaction hash"),typeof e.description!="string"&&t.push("Transaction must have a description"),typeof e.confirmations<"u"&&(!Number.isInteger(e.confirmations)||e.confirmations<1)&&t.push("Transaction confirmations must be a positiver integer"),t}function R({config:e}){let t=B(),o=new Set,r=new Map;function n(a){return _nullishCoalesce(t[a], () => ([]))}function s(a,d){let f=V(d);if(f.length>0)throw new Error(["Unable to add transaction",...f].join(`
|
|
2
|
+
`));g(a,c=>[{...d,status:"pending"},...c.filter(({hash:u})=>u!==d.hash)])}function l(a){g(a,()=>[])}function i(a,d,f){g(a,c=>c.map(u=>u.hash===d?{...u,status:f}:u))}async function p(a){await Promise.all(n(a).filter(d=>d.status==="pending").map(async d=>{let{confirmations:f,hash:c,chainId:u}=d,m=r.get(c);if(m)return await m;let T=_core.getPublicClient.call(void 0, e,{chainId:u});if(!T)return;let x=T.waitForTransactionReceipt({confirmations:f,hash:c}).then(({status:y})=>{r.delete(c),y!==void 0&&i(a,c,Number(y)===0?"failed":"confirmed")});return r.set(c,x),await x}))}function g(a,d){t=B(),t[a]=_nullishCoalesce(t[a], () => ([]));let u=d(_nullishCoalesce(_optionalChain([t, 'optionalAccess', _7 => _7[a]]), () => ([]))).sort((m,T)=>T.timestamp-m.timestamp).slice(0,10);t[a]=u.length>0?u.filter(h):void 0,I(),H(),p(a)}function I(){localStorage.setItem(F,JSON.stringify(t)),localStorage.removeItem(L)}function H(){for(let a of o)a()}function E(a){return o.add(a),()=>{o.delete(a)}}return{addTransaction:s,clearTransactions:l,getTransactions:n,onChange:E,waitForPendingTransactions:p}}var _hooks = require('@berachain/wagmi/hooks');var D,W=_react.createContext.call(void 0, null);function Ie({children:e}){let{account:t}=_hooks.useBeraWagmi.call(void 0, ),o=_optionalChain([t, 'optionalAccess', _8 => _8.wallet, 'optionalAccess', _9 => _9.address]),r=_hooks.useConfig.call(void 0, ),[n]=_react.useState.call(void 0, ()=>_nullishCoalesce(D, () => ((D=R({config:r})))));return _react.useEffect.call(void 0, ()=>{o&&n.waitForPendingTransactions(o)},[n,o]),_jsxruntime.jsx.call(void 0, W.Provider,{value:n,children:e})}function He(){let e=_react.useContext.call(void 0, W);if(!e)throw new Error("Transaction hooks must be used within ");return e}var _mainnet = require('@berachain/config/mainnet'); var _mainnet2 = _interopRequireDefault(_mainnet);function Xe(){return _react.useContext.call(void 0, A)}var A=_react.createContext.call(void 0, _mainnet2.default.averageBlockTime);function _e({children:e,blockTime:t,...o}){let{config:r}=_chunk22MQVFHPcjs.b.call(void 0, o);return _jsxruntime.jsx.call(void 0, A.Provider,{value:_nullishCoalesce(t, () => (r.averageBlockTime)),children:e})}var N=_react.createContext.call(void 0, void 0);function je({children:e,...t}){return _jsxruntime.jsx.call(void 0, N.Provider,{value:t,children:e})}function ze(){let e=_react.useContext.call(void 0, N);if(!e)throw new Error("useHoneyConfig must be used within a HoneyConfigProvider");return e}var _internal = require('@berachain/config/internal');function M({defaultTokenList:e=[],externalList:t=[],chainId:o}){if(e.length===0)return{tokenList:t,customTokenList:t,featuredTokenList:[]};let r=e.filter(i=>!i.chainId||Number(i.chainId)===Number(o)).map(i=>({...i,default:!0})),n=r.filter(i=>_optionalChain([i, 'access', _10 => _10.tags, 'optionalAccess', _11 => _11.some, 'call', _12 => _12(p=>p==="featured")])),s=[...r,...t];return{tokenList:s.filter((i,p)=>s.findIndex(g=>_chunk22MQVFHPcjs.f.call(void 0, g,i))===p),customTokenList:t,featuredTokenList:n}}var Te=_react.createContext.call(void 0, void 0);function nt({children:e,defaultTokens:t,userTokens:o,onAddToken:r,onRemoveToken:n}){let{tokenList:s=[],featuredTokenList:l=[]}=_react.useMemo.call(void 0, ()=>M({defaultTokenList:t,externalList:o,chainId:_internal.defaultChainId}),[t,o]);return _jsxruntime.jsx.call(void 0, Te.Provider,{value:{tokenList:s,userTokens:o,featuredTokens:l,onAddToken(i){r(i,{defaultTokens:t,userTokens:o,tokenList:s})},onRemoveToken:n},children:e})}exports.a = be; exports.b = K; exports.c = ke; exports.d = S; exports.e = Be; exports.f = Le; exports.g = w; exports.h = z; exports.i = h; exports.j = G; exports.k = R; exports.l = Ie; exports.m = He; exports.n = Xe; exports.o = A; exports.p = _e; exports.q = N; exports.r = je; exports.s = ze; exports.t = Te; exports.u = nt;
|
|
3
|
+
//# sourceMappingURL=chunk-6VF3RF53.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/pong/coding/monobera/packages/berajs/dist/chunk-GZ5YA2AZ.cjs","../src/contexts/BeraFlags/BeraFlags.tsx","../src/contexts/BexStatusProvider.tsx","../src/hooks/transactions/transactionStore.ts","../src/hooks/transactions/TransactionStoreContext.tsx","../src/contexts/block-time-provider.tsx","../src/contexts/HoneyConfigProvider.tsx","../src/contexts/TokensProvider.tsx","../src/utils/formatTokenList.ts"],"names":["BeraFlagContext","createContext","BeraFlagsProvider","children","flags","aggregators","swberaAprWindow","jsx","defaultFlags","value","isFlagEnabled","key","useBeraFlags","context","useContext","useBeraFlag","BexStateContext","useBexStatus","BeraError","BexStatusProvider","isVaultPaused","labels","factories","poolState","setPoolState","useState","disablePoolWithdrawals","disablePoolDeposits","storageKeyLegacy","storageKey","safeParseJsonData","string","convertLegacyDataToNewData","legacyData","acc","account","chains","chainId","transactions","transactionsArray","transaction","filterDuplicatefn","tx","idx","arr","otherTx","mergeData","newData","mergedData","loadData","data","transactionHashRegex","validateTransaction","errors","createTransactionStore","config","listeners","transactionRequestCache","getTransactions","addTransaction","updateTransactions","hash","clearTransactions","setTransactionStatus","status","waitForPendingTransactions","confirmations","existingRequest","provider","getPublicClient","requestPromise","updateFn","a","b","persistData","notifyListeners","listener","onChange","fn","storeSingleton","TransactionStoreContext","TransactionStoreProvider","useBeraWagmi","address","useConfig","store","useEffect","useTransactionStore","useBlockTime","BlockTimeContext","mainnet","BlockTimeProvider","blockTime","args","parseBaseArgs","HoneyConfigContext","HoneyConfigProvider","props","useHoneyConfig","formatTokenList","defaultTokenList","externalList","defaultList","token","featuredTokenList","tag","mergedList","item","index","i","isToken","TokenContext","TokensProvider","defaultTokens","userTokens","onAddToken","onRemoveToken","tokenList","useMemo","defaultChainId","tk"],"mappings":"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","file":"/Users/pong/coding/monobera/packages/berajs/dist/chunk-GZ5YA2AZ.cjs","sourcesContent":[null,"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 { type Config, getPublicClient } from \"@wagmi/core\";\nimport type { Address } from \"viem\";\n\nimport type { TransactionActionType } from \"~/enum\";\n\nconst storageKeyLegacy = \"rk-transactions\";\nconst storageKey = \"transactions\";\n\ntype TransactionStatus = \"pending\" | \"confirmed\" | \"failed\";\n\nexport interface Transaction {\n hash: string;\n description: string;\n actionType?: TransactionActionType;\n timestamp: number;\n status: TransactionStatus;\n confirmations?: number;\n chainId: number;\n}\n\nexport type NewTransaction = Omit<Transaction, \"status\">;\n\nexport type DataLegacy = Record<\n string,\n Record<number, Transaction[] | undefined>\n>;\nexport type Data = Record<string, Transaction[] | undefined>;\n\nexport function safeParseJsonData<T = DataLegacy | Data>(\n string: string | null,\n): T {\n try {\n const value = string ? JSON.parse(string) : {};\n return typeof value === \"object\" ? value : {};\n } catch {\n return {} as T;\n }\n}\n/**\n *\n * @param legacyData - The legacy data to convert to the new data format.\n * removes the nested chains and converts the data to a flat array.\n * @returns Data in the new format with the chainId added to each transaction.\n */\nexport function convertLegacyDataToNewData(legacyData: DataLegacy): Data {\n return Object.entries(legacyData).reduce((acc, [account, chains]) => {\n return {\n ...acc,\n [account]: Object.entries(chains).reduce(\n (acc, [chainId, transactions]) => {\n if (!transactions) {\n return acc;\n }\n const transactionsArray = transactions.map(\n (transaction): Transaction => ({\n ...transaction,\n chainId: Number(chainId),\n }),\n );\n acc.push(...transactionsArray);\n return acc;\n },\n [] as NewTransaction[],\n ),\n };\n }, {});\n}\n\n/**\n * Filter out duplicate transactions by hash\n */\nexport const filterDuplicatefn = (\n tx: Transaction,\n idx: number,\n arr: Transaction[],\n) => arr.findIndex((otherTx) => otherTx.hash === tx.hash) === idx;\n\nexport function mergeData(legacyData: DataLegacy, newData: Data): Data {\n const mergedData = convertLegacyDataToNewData(legacyData);\n for (const [account, transactions] of Object.entries(newData)) {\n if (mergedData[account] && transactions) {\n // Merge and filter out duplicates by transaction hash\n mergedData[account] = [...transactions, ...mergedData[account]].filter(\n filterDuplicatefn,\n );\n } else {\n mergedData[account] = transactions?.filter(filterDuplicatefn);\n }\n }\n return mergedData;\n}\nfunction loadData(): Data {\n const legacyData = safeParseJsonData<DataLegacy>(\n typeof localStorage !== \"undefined\"\n ? localStorage.getItem(storageKeyLegacy)\n : null,\n );\n const data = safeParseJsonData<Data>(\n typeof localStorage !== \"undefined\"\n ? localStorage.getItem(storageKey)\n : null,\n );\n return mergeData(legacyData, data);\n}\n\nconst transactionHashRegex = /^0x([A-Fa-f0-9]{64})$/;\n\nfunction validateTransaction(\n transaction: Transaction | NewTransaction,\n): string[] {\n const errors: string[] = [];\n\n if (!transactionHashRegex.test(transaction.hash)) {\n errors.push(\"Invalid transaction hash\");\n }\n\n if (typeof transaction.description !== \"string\") {\n errors.push(\"Transaction must have a description\");\n }\n\n if (\n typeof transaction.confirmations !== \"undefined\" &&\n (!Number.isInteger(transaction.confirmations) ||\n transaction.confirmations < 1)\n ) {\n errors.push(\"Transaction confirmations must be a positiver integer\");\n }\n\n return errors;\n}\n\nexport function createTransactionStore({ config }: { config: Config }) {\n let data: Data = loadData();\n const listeners: Set<() => void> = new Set();\n const transactionRequestCache: Map<string, Promise<void>> = new Map();\n\n function getTransactions(account: string): Transaction[] {\n return data[account] ?? [];\n }\n\n function addTransaction(account: string, transaction: NewTransaction): void {\n const errors = validateTransaction(transaction);\n\n if (errors.length > 0) {\n throw new Error([\"Unable to add transaction\", ...errors].join(\"\\n\"));\n }\n\n updateTransactions(account, (transactions) => {\n return [\n { ...transaction, status: \"pending\" },\n ...transactions.filter(({ hash }) => {\n // Omit any duplicate transactions\n return hash !== transaction.hash;\n }),\n ];\n });\n }\n\n function clearTransactions(account: string): void {\n updateTransactions(account, () => {\n return [];\n });\n }\n\n function setTransactionStatus(\n account: string,\n hash: string,\n status: TransactionStatus,\n ): void {\n updateTransactions(account, (transactions) => {\n return transactions.map((transaction) =>\n transaction.hash === hash ? { ...transaction, status } : transaction,\n );\n });\n }\n\n async function waitForPendingTransactions(account: string): Promise<void> {\n await Promise.all(\n getTransactions(account)\n .filter((transaction) => transaction.status === \"pending\")\n .map(async (transaction) => {\n const { confirmations, hash, chainId } = transaction;\n\n const existingRequest = transactionRequestCache.get(hash);\n\n if (existingRequest) {\n return await existingRequest;\n }\n const provider = getPublicClient(config, { chainId });\n if (!provider) {\n return;\n }\n\n const requestPromise = provider\n .waitForTransactionReceipt({ confirmations, hash: hash as Address })\n .then(({ status }) => {\n transactionRequestCache.delete(hash);\n\n if (status === undefined) {\n return;\n }\n\n setTransactionStatus(\n account,\n hash,\n Number(status) === 0 ? \"failed\" : \"confirmed\",\n );\n });\n\n transactionRequestCache.set(hash, requestPromise);\n\n return await requestPromise;\n }),\n );\n }\n\n function updateTransactions(\n account: string,\n updateFn: (transactions: Transaction[]) => Transaction[],\n ): void {\n // Ensure we’re always operating on the latest data in case we have\n // multiple instances/tabs/etc. since we write all data back to\n // local storage after updating\n data = loadData();\n\n data[account] = data[account] ?? [];\n\n const MAX_TRANSACTIONS = 10;\n const updatedTransactions = updateFn(data?.[account] ?? []);\n\n const transactions = updatedTransactions\n // Sort by timestamp (latest first) and keep only the latest 10\n .sort((a, b) => b.timestamp - a.timestamp)\n .slice(0, MAX_TRANSACTIONS);\n\n data[account] =\n transactions.length > 0\n ? transactions.filter(filterDuplicatefn)\n : undefined;\n\n persistData();\n notifyListeners();\n waitForPendingTransactions(account);\n }\n\n function persistData(): void {\n localStorage.setItem(storageKey, JSON.stringify(data));\n // remove legacy data how that it has been converted to the new data format and saved to the new key\n localStorage.removeItem(storageKeyLegacy);\n }\n\n function notifyListeners(): void {\n for (const listener of listeners) {\n listener();\n }\n }\n\n function onChange(fn: () => void): () => void {\n listeners.add(fn);\n\n return () => {\n listeners.delete(fn);\n };\n }\n\n return {\n addTransaction,\n clearTransactions,\n getTransactions,\n onChange,\n waitForPendingTransactions,\n };\n}\n\nexport type TransactionStore = ReturnType<typeof createTransactionStore>;\n","import type React from \"react\";\nimport { createContext, useContext, useEffect, useState } from \"react\";\n\nimport { useBeraWagmi, useConfig } from \"@berachain/wagmi/hooks\";\n\nimport {\n createTransactionStore,\n type TransactionStore,\n} from \"./transactionStore\";\n\n// Only allow a single instance of the store to exist at once\n// so that multiple RainbowKitProvider instances can share the same store.\n// We delay the creation of the store until the first time it is used\n// so that it always has access to a provider.\nlet storeSingleton: ReturnType<typeof createTransactionStore> | undefined;\n\nconst TransactionStoreContext = createContext<TransactionStore | null>(null);\n\nexport function TransactionStoreProvider({\n children,\n}: {\n children: React.ReactNode;\n}) {\n const { account } = useBeraWagmi();\n const address = account?.wallet?.address;\n const config = useConfig();\n\n // Use existing store if it exists, or lazily create one\n const [store] = useState(\n () =>\n storeSingleton ??\n (storeSingleton = createTransactionStore({\n config,\n })),\n );\n\n // Wait for pending transactions whenever address changes\n useEffect(() => {\n if (address) {\n store.waitForPendingTransactions(address);\n }\n }, [store, address]);\n\n return (\n <TransactionStoreContext.Provider value={store}>\n {children}\n </TransactionStoreContext.Provider>\n );\n}\n\nexport function useTransactionStore(): TransactionStore {\n const store = useContext(TransactionStoreContext);\n\n if (!store) {\n throw new Error(\"Transaction hooks must be used within \");\n }\n\n return store;\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 { defaultChainId } from \"@berachain/config/internal\";\n\nimport type { 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}\nexport const TokenContext = createContext<TokensProviderContext | undefined>(\n undefined,\n);\n\nexport interface TokensProviderProps\n extends Omit<\n TokensProviderContext,\n \"tokenList\" | \"onAddToken\" | \"featuredTokens\"\n > {\n onAddToken: (\n token: Token,\n context: {\n defaultTokens: TokenWithMetadata[];\n userTokens: Token[];\n tokenList: TokenWithMetadata[];\n },\n ) => void;\n defaultTokens: TokenWithMetadata[];\n}\n\nexport function TokensProvider({\n children,\n defaultTokens,\n userTokens,\n onAddToken,\n onRemoveToken,\n}: PropsWithChildren<TokensProviderProps>) {\n const { tokenList = [], featuredTokenList = [] } = useMemo(\n () =>\n formatTokenList({\n defaultTokenList: defaultTokens,\n externalList: userTokens,\n chainId: defaultChainId,\n }),\n [defaultTokens, userTokens],\n );\n return (\n <TokenContext.Provider\n value={{\n tokenList,\n userTokens,\n featuredTokens: featuredTokenList,\n onAddToken(tk) {\n onAddToken(tk, { defaultTokens, userTokens, tokenList });\n },\n onRemoveToken,\n }}\n >\n {children}\n </TokenContext.Provider>\n );\n}\n","import type { Token, TokenWithMetadata } from \"../types\";\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 chainId,\n}: {\n defaultTokenList: TokenWithMetadata[];\n externalList?: Token[];\n chainId: number;\n}): FormatTokenListReturnType {\n if (defaultTokenList.length === 0) {\n return {\n tokenList: externalList,\n customTokenList: externalList,\n featuredTokenList: [],\n };\n }\n\n const defaultList = defaultTokenList\n .filter(\n (token) => !token.chainId || Number(token.chainId) === Number(chainId),\n )\n .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"]}
|
|
1
|
+
{"version":3,"sources":["/Users/pong/coding/monobera/packages/berajs/dist/chunk-6VF3RF53.cjs","../src/contexts/BeraFlags/BeraFlags.tsx","../src/contexts/BexStatusProvider.tsx","../src/hooks/transactions/transactionStore.ts","../src/hooks/transactions/TransactionStoreContext.tsx","../src/contexts/block-time-provider.tsx","../src/contexts/HoneyConfigProvider.tsx","../src/contexts/TokensProvider.tsx","../src/utils/formatTokenList.ts"],"names":["BeraFlagContext","createContext","BeraFlagsProvider","children","flags","aggregators","swberaAprWindow","jsx","defaultFlags","value","isFlagEnabled","key","useBeraFlags","context","useContext","useBeraFlag","BexStateContext","useBexStatus","BeraError","BexStatusProvider","isVaultPaused","labels","factories","poolState","setPoolState","useState","disablePoolWithdrawals","disablePoolDeposits","storageKeyLegacy","storageKey","safeParseJsonData","string","convertLegacyDataToNewData","legacyData","acc","account","chains","chainId","transactions","transactionsArray","transaction","filterDuplicatefn","tx","idx","arr","otherTx","mergeData","newData","mergedData","loadData","data","transactionHashRegex","validateTransaction","errors","createTransactionStore","config","listeners","transactionRequestCache","getTransactions","addTransaction","updateTransactions","hash","clearTransactions","setTransactionStatus","status","waitForPendingTransactions","confirmations","existingRequest","provider","getPublicClient","requestPromise","updateFn","a","b","persistData","notifyListeners","listener","onChange","fn","storeSingleton","TransactionStoreContext","TransactionStoreProvider","useBeraWagmi","address","useConfig","store","useEffect","useTransactionStore","useBlockTime","BlockTimeContext","mainnet","BlockTimeProvider","blockTime","args","parseBaseArgs","HoneyConfigContext","HoneyConfigProvider","props","useHoneyConfig","formatTokenList","defaultTokenList","externalList","defaultList","token","featuredTokenList","tag","mergedList","item","index","i","isToken","TokenContext","TokensProvider","defaultTokens","userTokens","onAddToken","onRemoveToken","tokenList","useMemo","defaultChainId","tk"],"mappings":"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","file":"/Users/pong/coding/monobera/packages/berajs/dist/chunk-6VF3RF53.cjs","sourcesContent":[null,"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 { type Config, getPublicClient } from \"@wagmi/core\";\nimport type { Address } from \"viem\";\n\nimport type { TransactionActionType } from \"~/enum\";\n\nconst storageKeyLegacy = \"rk-transactions\";\nconst storageKey = \"transactions\";\n\ntype TransactionStatus = \"pending\" | \"confirmed\" | \"failed\";\n\nexport interface Transaction {\n hash: string;\n description: string;\n actionType?: TransactionActionType;\n timestamp: number;\n status: TransactionStatus;\n confirmations?: number;\n chainId: number;\n}\n\nexport type NewTransaction = Omit<Transaction, \"status\">;\n\nexport type DataLegacy = Record<\n string,\n Record<number, Transaction[] | undefined>\n>;\nexport type Data = Record<string, Transaction[] | undefined>;\n\nexport function safeParseJsonData<T = DataLegacy | Data>(\n string: string | null,\n): T {\n try {\n const value = string ? JSON.parse(string) : {};\n return typeof value === \"object\" ? value : {};\n } catch {\n return {} as T;\n }\n}\n/**\n *\n * @param legacyData - The legacy data to convert to the new data format.\n * removes the nested chains and converts the data to a flat array.\n * @returns Data in the new format with the chainId added to each transaction.\n */\nexport function convertLegacyDataToNewData(legacyData: DataLegacy): Data {\n return Object.entries(legacyData).reduce((acc, [account, chains]) => {\n return {\n ...acc,\n [account]: Object.entries(chains).reduce(\n (acc, [chainId, transactions]) => {\n if (!transactions) {\n return acc;\n }\n const transactionsArray = transactions.map(\n (transaction): Transaction => ({\n ...transaction,\n chainId: Number(chainId),\n }),\n );\n acc.push(...transactionsArray);\n return acc;\n },\n [] as NewTransaction[],\n ),\n };\n }, {});\n}\n\n/**\n * Filter out duplicate transactions by hash\n */\nexport const filterDuplicatefn = (\n tx: Transaction,\n idx: number,\n arr: Transaction[],\n) => arr.findIndex((otherTx) => otherTx.hash === tx.hash) === idx;\n\nexport function mergeData(legacyData: DataLegacy, newData: Data): Data {\n const mergedData = convertLegacyDataToNewData(legacyData);\n for (const [account, transactions] of Object.entries(newData)) {\n if (mergedData[account] && transactions) {\n // Merge and filter out duplicates by transaction hash\n mergedData[account] = [...transactions, ...mergedData[account]].filter(\n filterDuplicatefn,\n );\n } else {\n mergedData[account] = transactions?.filter(filterDuplicatefn);\n }\n }\n return mergedData;\n}\nfunction loadData(): Data {\n const legacyData = safeParseJsonData<DataLegacy>(\n typeof localStorage !== \"undefined\"\n ? localStorage.getItem(storageKeyLegacy)\n : null,\n );\n const data = safeParseJsonData<Data>(\n typeof localStorage !== \"undefined\"\n ? localStorage.getItem(storageKey)\n : null,\n );\n return mergeData(legacyData, data);\n}\n\nconst transactionHashRegex = /^0x([A-Fa-f0-9]{64})$/;\n\nfunction validateTransaction(\n transaction: Transaction | NewTransaction,\n): string[] {\n const errors: string[] = [];\n\n if (!transactionHashRegex.test(transaction.hash)) {\n errors.push(\"Invalid transaction hash\");\n }\n\n if (typeof transaction.description !== \"string\") {\n errors.push(\"Transaction must have a description\");\n }\n\n if (\n typeof transaction.confirmations !== \"undefined\" &&\n (!Number.isInteger(transaction.confirmations) ||\n transaction.confirmations < 1)\n ) {\n errors.push(\"Transaction confirmations must be a positiver integer\");\n }\n\n return errors;\n}\n\nexport function createTransactionStore({ config }: { config: Config }) {\n let data: Data = loadData();\n const listeners: Set<() => void> = new Set();\n const transactionRequestCache: Map<string, Promise<void>> = new Map();\n\n function getTransactions(account: string): Transaction[] {\n return data[account] ?? [];\n }\n\n function addTransaction(account: string, transaction: NewTransaction): void {\n const errors = validateTransaction(transaction);\n\n if (errors.length > 0) {\n throw new Error([\"Unable to add transaction\", ...errors].join(\"\\n\"));\n }\n\n updateTransactions(account, (transactions) => {\n return [\n { ...transaction, status: \"pending\" },\n ...transactions.filter(({ hash }) => {\n // Omit any duplicate transactions\n return hash !== transaction.hash;\n }),\n ];\n });\n }\n\n function clearTransactions(account: string): void {\n updateTransactions(account, () => {\n return [];\n });\n }\n\n function setTransactionStatus(\n account: string,\n hash: string,\n status: TransactionStatus,\n ): void {\n updateTransactions(account, (transactions) => {\n return transactions.map((transaction) =>\n transaction.hash === hash ? { ...transaction, status } : transaction,\n );\n });\n }\n\n async function waitForPendingTransactions(account: string): Promise<void> {\n await Promise.all(\n getTransactions(account)\n .filter((transaction) => transaction.status === \"pending\")\n .map(async (transaction) => {\n const { confirmations, hash, chainId } = transaction;\n\n const existingRequest = transactionRequestCache.get(hash);\n\n if (existingRequest) {\n return await existingRequest;\n }\n const provider = getPublicClient(config, { chainId });\n if (!provider) {\n return;\n }\n\n const requestPromise = provider\n .waitForTransactionReceipt({ confirmations, hash: hash as Address })\n .then(({ status }) => {\n transactionRequestCache.delete(hash);\n\n if (status === undefined) {\n return;\n }\n\n setTransactionStatus(\n account,\n hash,\n Number(status) === 0 ? \"failed\" : \"confirmed\",\n );\n });\n\n transactionRequestCache.set(hash, requestPromise);\n\n return await requestPromise;\n }),\n );\n }\n\n function updateTransactions(\n account: string,\n updateFn: (transactions: Transaction[]) => Transaction[],\n ): void {\n // Ensure we’re always operating on the latest data in case we have\n // multiple instances/tabs/etc. since we write all data back to\n // local storage after updating\n data = loadData();\n\n data[account] = data[account] ?? [];\n\n const MAX_TRANSACTIONS = 10;\n const updatedTransactions = updateFn(data?.[account] ?? []);\n\n const transactions = updatedTransactions\n // Sort by timestamp (latest first) and keep only the latest 10\n .sort((a, b) => b.timestamp - a.timestamp)\n .slice(0, MAX_TRANSACTIONS);\n\n data[account] =\n transactions.length > 0\n ? transactions.filter(filterDuplicatefn)\n : undefined;\n\n persistData();\n notifyListeners();\n waitForPendingTransactions(account);\n }\n\n function persistData(): void {\n localStorage.setItem(storageKey, JSON.stringify(data));\n // remove legacy data how that it has been converted to the new data format and saved to the new key\n localStorage.removeItem(storageKeyLegacy);\n }\n\n function notifyListeners(): void {\n for (const listener of listeners) {\n listener();\n }\n }\n\n function onChange(fn: () => void): () => void {\n listeners.add(fn);\n\n return () => {\n listeners.delete(fn);\n };\n }\n\n return {\n addTransaction,\n clearTransactions,\n getTransactions,\n onChange,\n waitForPendingTransactions,\n };\n}\n\nexport type TransactionStore = ReturnType<typeof createTransactionStore>;\n","import type React from \"react\";\nimport { createContext, useContext, useEffect, useState } from \"react\";\n\nimport { useBeraWagmi, useConfig } from \"@berachain/wagmi/hooks\";\n\nimport {\n createTransactionStore,\n type TransactionStore,\n} from \"./transactionStore\";\n\n// Only allow a single instance of the store to exist at once\n// so that multiple RainbowKitProvider instances can share the same store.\n// We delay the creation of the store until the first time it is used\n// so that it always has access to a provider.\nlet storeSingleton: ReturnType<typeof createTransactionStore> | undefined;\n\nconst TransactionStoreContext = createContext<TransactionStore | null>(null);\n\nexport function TransactionStoreProvider({\n children,\n}: {\n children: React.ReactNode;\n}) {\n const { account } = useBeraWagmi();\n const address = account?.wallet?.address;\n const config = useConfig();\n\n // Use existing store if it exists, or lazily create one\n const [store] = useState(\n () =>\n storeSingleton ??\n (storeSingleton = createTransactionStore({\n config,\n })),\n );\n\n // Wait for pending transactions whenever address changes\n useEffect(() => {\n if (address) {\n store.waitForPendingTransactions(address);\n }\n }, [store, address]);\n\n return (\n <TransactionStoreContext.Provider value={store}>\n {children}\n </TransactionStoreContext.Provider>\n );\n}\n\nexport function useTransactionStore(): TransactionStore {\n const store = useContext(TransactionStoreContext);\n\n if (!store) {\n throw new Error(\"Transaction hooks must be used within \");\n }\n\n return store;\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 { defaultChainId } from \"@berachain/config/internal\";\n\nimport type { 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}\nexport const TokenContext = createContext<TokensProviderContext | undefined>(\n undefined,\n);\n\nexport interface TokensProviderProps\n extends Omit<\n TokensProviderContext,\n \"tokenList\" | \"onAddToken\" | \"featuredTokens\"\n > {\n onAddToken: (\n token: Token,\n context: {\n defaultTokens: TokenWithMetadata[];\n userTokens: Token[];\n tokenList: TokenWithMetadata[];\n },\n ) => void;\n defaultTokens: TokenWithMetadata[];\n}\n\nexport function TokensProvider({\n children,\n defaultTokens,\n userTokens,\n onAddToken,\n onRemoveToken,\n}: PropsWithChildren<TokensProviderProps>) {\n const { tokenList = [], featuredTokenList = [] } = useMemo(\n () =>\n formatTokenList({\n defaultTokenList: defaultTokens,\n externalList: userTokens,\n chainId: defaultChainId,\n }),\n [defaultTokens, userTokens],\n );\n return (\n <TokenContext.Provider\n value={{\n tokenList,\n userTokens,\n featuredTokens: featuredTokenList,\n onAddToken(tk) {\n onAddToken(tk, { defaultTokens, userTokens, tokenList });\n },\n onRemoveToken,\n }}\n >\n {children}\n </TokenContext.Provider>\n );\n}\n","import type { Token, TokenWithMetadata } from \"../types\";\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 chainId,\n}: {\n defaultTokenList: TokenWithMetadata[];\n externalList?: Token[];\n chainId: number;\n}): FormatTokenListReturnType {\n if (defaultTokenList.length === 0) {\n return {\n tokenList: externalList,\n customTokenList: externalList,\n featuredTokenList: [],\n };\n }\n\n const defaultList = defaultTokenList\n .filter(\n (token) => !token.chainId || Number(token.chainId) === Number(chainId),\n )\n .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"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{c as N,e as T}from"./chunk-5OAABMMU.mjs";import{a as p}from"./chunk-PHIOKO3A.mjs";import{f as P}from"./chunk-HCTFDGXL.mjs";async function O(e){if(e.headers.get("content-type")?.includes("application/json"))return await e.json();{let n=await e.text();try{return JSON.parse(n)}catch{return{message:"Unknown error, can't decode response into JSON",cause:n}}}}async function Y(e,t){try{let n=await fetch(typeof e=="string"||e instanceof URL?e:e.url,{...t});if(!n.ok){let a=await O(n);throw new p({cause:a,response:n,endpoint:e})}return n}catch(n){throw n instanceof p?n:new p({cause:n,endpoint:e,response:void 0})}}async function Ae(e,t){return(await Y(e,{...t,headers:{Accept:"application/json",...t?.headers}})).json()}import{parseEther as z}from"viem";var ye=z("0.005"),Ne=1e5,Te=1,we=.1,Ie=50,Se=7920027n;import A from"bignumber.js";import{formatUnits as V}from"viem";import w from"bignumber.js";var I=(e,t,n,a)=>{if(!e||!t||!n||!a)return 0;let s=new w(e).times(n),o=new w(t).times(a);if(s.lt(.01)||o.lt(.01)||s.isZero()||o.isZero())return 0;let r=o.div(s);return Number(new w(1).minus(r).toFixed())};var Oe=(e,t,n,a,s)=>e.map(o=>{let r=V(BigInt(o.amountOut),n?.decimals||18),c=V(BigInt(o.amountIn),t?.decimals||18),b=new A(r).times(s).toFixed(),u=new A(c).times(a).toFixed(),x=I((a||0).toString(),(s||0).toString(),c,r);return{...o,exchangeRate:new A(r).div(c).toNumber(),amountIn:c,amountOut:r,amountOutUsd:b,amountInUsd:u,priceImpactPercentage:x}}).sort((o,r)=>new A(r.amountOut).minus(o.amountOut).toNumber()).map((o,r,c)=>({...o,relativeLossPercentage:I("1","1",c[0].amountOut,o.amountOut)}));var _e=e=>{if(e==="0")return e;let t=e.replace(/^0+/,"").replaceAll(/[^0-9.]/g,"");return t.startsWith(".")&&(t=`0${t}`),t};import{BigNumber as _}from"bignumber.js";var L=["","K","M","B","T","P","E","Z","Y"];function v(e){return e instanceof _?e:new _(e)}function W(e,t){return v(e).shiftedBy(t*-1)}function d(e,t={}){if(typeof t=="number"){let E=t;if(e==null)return"";if(typeof e=="object")throw new Error("Value must be a number if using deprecated version");let l=Number(e).toFixed(E);return l=l.replace(/(\.\d*?[1-9])0+$|\.0*$/,"$1"),l}let{visibleDecimals:n,compact:a=!0,percent:s=!1,roundDown:o=!1,roundUp:r=!1,compactThreshold:c,maxValue:b,symbol:u,prefixText:x="",suffixText:B="",showIsSmallerThanMin:D=!0,ifNullish:h=""}=t||{};if(e==null)return h;let f=s?Number(e)*100:Number(e);if(Number.isNaN(f))return"NaN";if(f===Number.POSITIVE_INFINITY)return"Infinity";if(f===Number.NEGATIVE_INFINITY)return"-Infinity";let i=n??0;f===0?i=0:n===void 0&&(Math.abs(f)>1||s||u==="USD"?i=2:i=7);let R=10**-i,$=f!==0&&Math.abs(f)<Math.abs(R),q=f<0,Q=b?Math.abs(f)>b:!1,C=$?R:f,y=a&&(!c||Math.abs(f)>c);o&&!y?C=Math.trunc(Number(C)*10**i)/10**i:r&&!y&&(C=Math.ceil(Number(C)*10**i)/10**i);let g;if(Q)g=f>b?"\u221E":"-\u221E";else if(y){let E=v(C),l=E.abs().toFixed(0).length;c&&Math.abs(f)<=c&&(l=0);let U=Math.min(Math.floor(l?(l-1)/3:0),L.length-1),X=L[U],F=W(E,3*U).toNumber();o?F=Math.trunc(Number(F)*10**i)/10**i:r&&(F=Math.ceil(Number(F)*10**i)/10**i),g=`${new Intl.NumberFormat("en-US",{maximumFractionDigits:i,minimumFractionDigits:i}).format(F)}${X}`}else{let E=new Intl.NumberFormat("en-US",{maximumFractionDigits:i,minimumFractionDigits:i}).format(Math.abs(C));g=`${q?"-":""}${E}`}let m=[];return x&&m.push(x),$&&D&&m.push(f<0?">":"<"),u?.toLowerCase()==="usd"&&!s&&m.push("$"),m.push(g),s&&m.push("%"),u?.toLowerCase()!=="usd"&&typeof u<"u"&&m.push(" ",u),B&&m.push(B),m.join("")}var He=e=>e?Number(e)>Number.MAX_SAFE_INTEGER?Number.MAX_SAFE_INTEGER:Number(e)??0:0,je=(e,t)=>{if(!e)return"0";let[n="0",a="0"]=`${e}`.split(".");return`${n}.${a.substring(0,t)}`};function Je(e){let t=new Date;return t.setDate(t.getDate()-e)*1e3}var Z=["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 qe(e,t){let n=new Date(e*1e3),a=n.getDate(),s="th";return a===1||a===21||a===31?s="st":a===2||a===22?s="nd":(a===3||a===23)&&(s="rd"),t?`${K[n.getMonth()]} ${a}`:`${Z[n.getMonth()]} ${a}${s}, ${n.getFullYear()}`}function Qe(...e){let t=e[0],n,a,s,o;if(typeof e[1]!="object")n=e[1]??!1,a=e[2]??!1,o=e[3]??!1,s=!0;else{let f=e[1];n=f.condensed??!1;let i=f.greaterUnit??"hours";i==="days"?(a=!0,s=!0):i==="hours"?(a=!1,s=!0,o=!1):(a=!1,s=!0),o=f.showSeconds??!1}let r=Math.floor(t/(3600*24)),c=Math.floor(t%(3600*24)/3600),b=Math.floor(t%3600/60),u=t%60;if(a||(c+=r*24,r=0),r===0&&c===0&&b===0)return n?"< 1 M":"less than a minute";let x=r>0?`${r}${n?"D":" day"}${!n&&r!==1?"s":""}`:"",B=c>0?`${c}${n?"H":" hour"}${!n&&c!==1?"s":""}`:"",D=b>0&&s||!r&&!c?`${b}${n?"M":" minute"}${!n&&b!==1?"s":""}`:"",h=u>0&&o?`${u}${n?"S":" second"}${!n&&u!==1?"s":""}`:"";return[x,B,D,h].filter(Boolean).join(n?" ":", ")}function Ye(e,t){let n=t?{minimumFractionDigits:0,maximumFractionDigits:0}:{},a=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",...n});try{let s=c=>typeof c=="number",o=c=>typeof c=="string";if(!s(e)&&!o(e))return a.format(0);let r;return o(e)?(r=Number.parseFloat(e),Number.isNaN(r)&&(r=0)):(r=e,Number.isNaN(r)&&(r=0)),a.format(r)}catch(s){return console.log(s),a.format(0)}}import{defaultChainId as ee}from"@berachain/config/internal";var H=[{80069:"0x0000000000000000000000000000000000000000",80094:"0x0000000000000000000000000000000000000000",name:"zeroAddress"},{80094:"0x141De07E5D4C4759EC9301DA106115D4841f66cD",name:"nfts.bongBears"},{80094:"0xA0CF472E6132F6B822a944f6F31aA7b261c7c375",name:"nfts.bondBears"},{80094:"0xf49ec5db255854C4a567de5AB3826c9AAbaFc7cF",name:"nfts.booBears"},{80094:"0xDDeAf391c4be2d01ca52aBb8C159a06820ef078C",name:"nfts.babyBears"},{80094:"0x7711B2Eb2451259dbF211e30157ceB7CFeb79a19",name:"nfts.bandBears"},{80094:"0x72D876D9cdf4001b836f8E47254d0551EdA2eebB",name:"nfts.bitBears"},{80069:"",80094:"0x24147243f9c08d835C218Cda1e135f8dFD0517D0",name:"bend.morpho"},{80069:"",80094:"0xcf247Df3A2322Dea0D408f011c194906E77a6f62",name:"bend.adaptiveCurveIrm"},{80069:"",80094:"0xF920140A65D0f412f2AB3e76C4fEAB5Eef0657ae",name:"bend.bundler3"},{80069:"",80094:"0xd2B9667F5214115E27937C410cAeE83E3a901Df7",name:"bend.generalAdapter1"},{80069:"",80094:"0x5EDd48C6ACBd565Eeb31702FD9fa9Cbc86fbE616",name:"bend.metaMorphoFactoryV1_1"},{80069:"",80094:"0x80108Ee81A92091Db6B8B2326B1875ce9388f461",name:"bend.metaFeePartitioner"},{80069:"",80094:"0xB62F34Ab315eaDeAc698e8EaEB6Fc2650951BFe7",name:"bend.publicAllocator"},{80069:"",80094:"0xAf2FDC54f7bc9d6e8C2D2760E908f4e1beB04d9E",name:"bend.morphoChainlinkOracleV2Factory"},{80069:"",80094:"0x46fE2bc33b661E01A8946BbC3Bf43F2B8382d802",name:"bend.urdFactory"},{80069:"",80094:"0x30BbA9CD9Eb8c95824aa42Faa1Bb397b07545bc1",name:"bend.vaults.re7HoneyVault"},{80069:"0xb0d005Fe83E3F1ec876C1a64700c5F0d6265d9E3",80094:"0x77DA09bC82652f9A14d1b170a001e759640298e6",name:"pol.bgtIncentiveDistributor"},{80069:"0x1984Baf659607Cc5f206c55BB3B00eb3E180190B",80094:"0x1984Baf659607Cc5f206c55BB3B00eb3E180190B",name:"pol.bgtIncentiveFeeCollector"},{80069:"0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a",80094:"0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a",name:"pol.wberaStakerVault"},{80069:"0x4242424242424242424242424242424242424242",80094:"0x4242424242424242424242424242424242424242",name:"pol.beaconDeposit"},{80069:"0xdf960E8F3F19C481dDE769edEDD439ea1a63426a",80094:"0xdf960E8F3F19C481dDE769edEDD439ea1a63426a",name:"pol.berachef"},{80069:"0x1AE7dD7AE06F6C58B4524d9c1f816094B1bcCD8e",80094:"0x1AE7dD7AE06F6C58B4524d9c1f816094B1bcCD8e",name:"pol.blockRewardController"},{80069:"0xD2f19a79b026Fb636A7c300bF5947df113940761",80094:"0xD2f19a79b026Fb636A7c300bF5947df113940761",name:"pol.distributor"},{80069:"0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8",80094:"0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8",name:"pol.rewardVaultFactory"},{80069:"0x44F07Ce5AfeCbCC406e6beFD40cc2998eEb8c7C6",80094:"0x44F07Ce5AfeCbCC406e6beFD40cc2998eEb8c7C6",name:"pol.bgtStaker"},{80069:"0x7bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650",80094:"0x7Bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650",name:"pol.feeCollector"},{80069:"0x4f4A5c2194B8e856b7a05B348F6ba3978FB6f6D5",80094:"0x4f4A5c2194B8e856b7a05B348F6ba3978FB6f6D5",name:"pol.governance"},{80069:"0xb5f2000b5744f207c931526cAE2134cAa8b6862a",80094:"0xb5f2000b5744f207c931526cAE2134cAa8b6862a",name:"pol.timelock"},{80069:"0x656b95E550C07a9ffe548bd4085c72418Ceb1dba",80094:"0x656b95E550C07a9ffe548bd4085c72418Ceb1dba",name:"tokens.bgt"},{80069:"0xFCBD14DC51f0A4d49d5E53C2E0950e0bC26d0Dce",80094:"0xFCBD14DC51f0A4d49d5E53C2E0950e0bC26d0Dce",name:"tokens.honey"},{80069:"0xA4aFef880F5cE1f63c9fb48F661E27F8B4216401",80094:"0xA4aFef880F5cE1f63c9fb48F661E27F8B4216401",name:"tokens.honeyFactory"},{80069:"0x285e147060CDc5ba902786d3A471224ee6cE0F91",80094:"0x285e147060CDc5ba902786d3A471224ee6cE0F91",name:"tokens.honeyFactoryReader"},{80069:"0x6969696969696969696969696969696969696969",80094:"0x6969696969696969696969696969696969696969",name:"tokens.wbera"},{80069:"",80094:"0x549943e04f40284185054145c6E4e9568C1D3241",name:"tokens.usdc"},{80069:"",80094:"0x0555E30da8f98308EdB960aa94C0Db47230d2B9c",name:"tokens.wbtc"},{80069:"",80094:"0x2F6F07CDcf3588944Bf4C42aC74ff24bF56e7590",name:"tokens.weth"},{80069:"0x708cA656b68A6b7384a488A36aD33505a77241FE",80094:"0x4Be03f781C497A489E3cB0287833452cA9B9E80B",name:"bex.vault"},{80069:"0x05A607aCf3548E84DD1E44c3706F850c849058Da",80094:"0xB8Cf46Cf1b1476E707619913a70B2085d26f1707",name:"bex.protocolFeesCollector"},{80069:"0xC7c981ADcDC5d48fed0CD52807fb2bAB22676C8f",80094:"0x5083737EC75a728c265BE578C9d0d5333a2c5951",name:"bex.balancerHelpers"},{80069:"0x0dC9964F6CA33d9EF38DEB4925234766127C6B36",80094:"0x55dccE8165C88aAd4403a15A9cE3A8E244657dD2",name:"bex.poolCreationHelper"},{80069:"0x8c2D77f0CfcD4Af9cF41494EfE500FE324012c06",80094:"0x1635F0E1B3e8A6713d03aE155ba79458Ba3240C7",name:"bex.protocolFeesWithdrawer"},{80069:"0xB60DbBaCEaeC23486a64d12089F467ef949f1bb1",80094:"0xDfA30BDa0375d4763711AB0CC8D91B20bfCC87E1",name:"bex.stablePoolFactory"},{80069:"0xfD772657FC8c4Ed3884AfF151b680883814052FA",80094:"0xCB4AE3030bA06F7EEE54A7B96AfcA7457f9525cf",name:"bex.batchRelayerLibrary"},{80069:"0x263a1C5B2c5851beA2177eb8D6caefdfF2A25601",80094:"0x4151083172b2CEFB83A33fD7FC9F6cBabb3Fd08d",name:"bex.batchRelayerQueryLibrary"},{80069:"0x343215E156Ff586711a5B8C49Fe3099BAF22624C",80094:"0x6044f181aB5E9C05A4ed9Ce295f3B178d2492EE7",name:"bex.balancerRelayer"},{80069:"0xf1d23276C7b271B2aC595C78977b2312E9954D57",80094:"0xa966fA8F2d5B087FFFA499C0C1240589371Af409",name:"bex.weightedPoolFactory"},{80069:"0x8119E412E00fe3c857739E95dB147817Bf615dB8",80094:"0x33C88ffdEe710ed3908C791137Bd1D4421AabBBf",name:"bex.protocolFeePercentagesProvider"},{80069:"0xE3723383a0EA73D5c0dE424BAA97F97f86f6cF92",80094:"0x3C612e132624f4Bd500eE1495F54565F0bcc9b59",name:"bex.balancerQueries"},{80069:"0x1453b808C88AAa5e5965f8d86123921E96F045Aa",80094:"0x71047aE39A7aA4f7d923542F459e50B974644Ef2",name:"bex.authorizer"},{80069:"0x41675C099F32341bf84BFc5382aF534df5C7461a",80094:"0x41675C099F32341bf84BFc5382aF534df5C7461a",name:"safe.safe"},{80069:"0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67",80094:"0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67",name:"safe.safeProxyFactory"},{80069:"0x38869bf66a61cF6bDB996A6aE40D5853Fd43B526",80094:"0x38869bf66a61cF6bDB996A6aE40D5853Fd43B526",name:"safe.multiSend"},{80069:"0x9641d764fc13c8B624c04430C7356C1C7C8102e2",80094:"0x9641d764fc13c8B624c04430C7356C1C7C8102e2",name:"safe.multiSendCallOnly"},{80069:"0xfd0732Dc9E303f09fCEf3a7388Ad10A83459Ec99",80094:"0xfd0732Dc9E303f09fCEf3a7388Ad10A83459Ec99",name:"safe.compatibilityFallbackHandler"},{80069:"0xd53cd0aB83D845Ac265BE939c57F53AD838012c9",80094:"0xd53cd0aB83D845Ac265BE939c57F53AD838012c9",name:"safe.signMessageLib"},{80069:"0x3d4BA2E0884aa488718476ca2FB8Efc291A46199",80094:"0x3d4BA2E0884aa488718476ca2FB8Efc291A46199",name:"safe.simulateTxAccessor"},{80069:"0x9b35Af71d77eaf8d7e40252370304687390A1A52",80094:"0x9b35Af71d77eaf8d7e40252370304687390A1A52",name:"safe.createCall"},{80069:"0x4e59b44847b379578588920cA78FbF26c0B4956C",80094:"0x4e59b44847b379578588920cA78FbF26c0B4956C",name:"other.create2"},{80069:"0xcA11bde05977b3631167028862bE2a173976CA11",80094:"0xcA11bde05977b3631167028862bE2a173976CA11",name:"other.multicall3"},{80069:"0x000000000022D473030F116dDEE9F6B43aC78BA3",80094:"0x000000000022D473030F116dDEE9F6B43aC78BA3",name:"other.permit2"},{80069:"0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2",80094:"0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2",name:"pol.rewardVaultHelper"},{80069:"0x7f09Cf6958631513aF0400488F65c7B5c0313F52",80094:"0xc8FD9a3fB3Dad4C22c9F8Cfa7cecC318A667A791",name:"pol.rewardAllocationFactory"},{80069:"0xba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1b",80094:"0xba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1b",name:"bex.balancerDelegatedOwnership"},{80069:"0x0000000000000000000000000000000000000000",80094:"0x1BDB1cf792419d2eaB5aBa8076B8f4257744fA58",name:"bex.aggregatorsRouter"},{80069:"0x0000000000000000000000000000000000000000",80094:"0x4AD3c5A427Af60F8Dd982023aE012233A66CA1f8",name:"bex.aggregatorsRouterExecutor"},{80069:null,80094:"0x24aC999FF132B32c5b3956973b6213B0d07eB2C7",name:"bex.haikuRouter"},{80069:null,80094:"0x69495273D6Dc572A830A4D6e00400a1e9d5B8f71",name:"bex.haikuAgentAddress"},{80069:"0x0eFeC4379805fAFA7269Ec599a6921f388C8841a",80094:"0xB5787B8f7b07a00229b617c4B7a616185857C147",name:"bex.recoverFundsContract"},{80069:"0x5CA67e134c52B1d11E038A5a4eD8Ddcdb1238943",80094:"0x5CA67e134c52B1d11E038A5a4eD8Ddcdb1238943",name:"honey.pythOracle"},{80069:"0x4b7cb1c197f8EE4d309866B16C2c12E3B4E7E606",80094:"0x4b7cb1c197f8EE4d309866B16C2c12E3B4E7E606",name:"honey.pythWrapper"},{80069:"0x2880aB155794e7179c9eE2e38200202908C17B43",80094:"0x2880aB155794e7179c9eE2e38200202908C17B43",name:"external.pyth"},{80069:null,80094:"0xC5FabF3a7E98a2ed89f5d5057Ab010634Ca7e71f",name:"bend.staging.morpho"},{80069:null,80094:"0x1d5376e532CcF25b740270624111D665830E5dB9",name:"bend.staging.adaptiveCurveIrm"},{80069:null,80094:"0x524061B659380a5e4576d76F0951303B20B5932f",name:"bend.staging.metaMorphoFactory"},{80069:null,80094:"0xFD6e68bC20be2a01Ec1Df687c83f927087D52811",name:"bend.staging.publicAllocator"},{80069:null,80094:"0x56811e1BFfF951B98c7940d3aCe0e549Ec4fDee8",name:"bend.staging.bundler3"},{80069:null,80094:"0x257a41E20BBfe90D750646C2e00bA700D55958C5",name:"bend.staging.generalAdapter1"},{80094:"0x19DcFf4e8Ff0B554D8a1f22d289A449fd4FbddBa",name:"bend.staging.supportedVaults.0"},{80094:"0xC0808A144CE2ea85bF84EBD1dDF5D59429f59dDE",name:"bend.staging.supportedVaults.1"}];function e0({address:e,chainId:t=ee}){return e?H.find(a=>a[t]?.toLowerCase()===e.toLowerCase())?.name:void 0}function r0({collaterals:e,actionType:t,toAmount:n,fromAmount:a,isBasketModeEnabled:s}){if(e.length>0){if(t==="mint"){let r=["Minting"];if(r.push(d(Number(n[0]),5)),r.push("Honey from"),s)for(let c in e)r.push(d(Number(a[c]),5)),r.push(`${e[c].symbol}`),+c<e.length-2?r[r.length-1]=r[r.length-1].concat(","):+c===e.length-1?r[r.length-1]=r[r.length-1].concat("."):r.push("and");else r.push(d(Number(a[0]),5)),r.push(`${e[0].symbol}`);return r.join(" ")}let o=["Redeeming"];if(s)for(let r in e)o.push(d(Number(n[r]),5)),o.push(`${e[r].symbol}`),+r<e.length-2?o[o.length-1]=o[o.length-1].concat(","):+r===e.length-1?(o.push("for"),o.push(d(Number(a[0]),5)),o.push("Honey.")):o.push("and");else o.push(d(Number(n[0]),5)),o.push(`${e[0].symbol}`),o.push("for"),o.push(d(Number(a[0]),5)),o.push("Honey.");return o.join(" ")}return""}import{createPublicClient as ne,fallback as te,http as j}from"viem";import{defaultChainId as re,getRpcUrls as ae}from"@berachain/config/internal";import{defaultBeraNetworkConfig as oe}from"@berachain/wagmi/config";var S=new Map,i0=(e={})=>{let t=e.chainId??re;if(S.has(t))return S.get(t);let n=ae(t),a=[n.privateRcpUrl,n.jsonRpcUrl,n.alchemyJsonRpcUrl,n.publicJsonRpcUrl].filter(o=>o).map(o=>j(o));a.length===0&&a.push(j());let s=ne({chain:oe.chain,transport:te(a)});return S.set(t,s),s};import{createTestClient as se,http as ce}from"viem";import{defaultChainId as ie,getRpcUrls as fe}from"@berachain/config/internal";function ue(e=ie){let t=fe(e);if(!t.isAnvil)throw new Error("No anvil RPC URL found");return se({mode:"anvil",transport:ce(t.jsonRpcUrl)})}import G from"bignumber.js";var l0=(e,t,n)=>{let a=new G(1+n).times(e),s=new G(1-n).times(e);return a.isLessThan(t)||s.isGreaterThan(t)};function x0({lastBlockTimestamp:e,blockTime:t}){return e?e<Date.now()/1e3-t*10:!0}var E0=e=>2n*BigInt(e);function be(e,t){let n=t.originalException;return n&&(n instanceof P&&(e.extra={...n,...e.extra},e.tags={...n.tags,...e.tags},e.level=t.captureContext&&"level"in t.captureContext?t.captureContext.level:n.level),n instanceof TypeError&&(e.extra={...n},e.tags={"error.reason":p.isCorsError(n)?p.REASON_MAP.CORS_ERROR:n.name,level:"warning"})),e}function D0(e){return Math.floor(e/1e3)}function me(e){return e*1e3}function de(e){return e*me(60)}function le(e){return e*60}function pe(e){return e*de(60)}function xe(e){return e*le(60)}function M(e){return e*pe(24)}function k(e){return e*xe(24)}function h0(e){return e*M(7)}function y0(e){return e*k(7)}function N0(e){return e*M(30)}function T0(e){return e*k(30)}function w0(e){return e*M(365)}function I0(e){return e*k(365)}function Ce(e){return{...e,...T(e,"BERA")&&N}}function k0(e){return e.map(t=>Ce(t))}var $0=(e,t=4,n=4,a=!1)=>{if(!e)return"";let s=a?e.toUpperCase().replace(/^0X/,"0x"):e;return`${s.substring(0,t)}...${s.substring(s.length-n)}`};import{GqlValidatorBlockUptimeStatus as J}from"@berachain/graphql/pol/api";function O0(e){if(e)return e===J.Proposed}function V0(e){if(e)return e===J.Signed}export{O as a,Y as b,Ae as c,D0 as d,me as e,de as f,le as g,pe as h,xe as i,M as j,k,h0 as l,y0 as m,N0 as n,T0 as o,w0 as p,I0 as q,ye as r,Ne as s,Te as t,we as u,Ie as v,Se as w,E0 as x,I as y,Oe as z,_e as A,d as B,He as C,je as D,Je as E,qe as F,Qe as G,Ye as H,e0 as I,r0 as J,i0 as K,ue as L,l0 as M,x0 as N,be as O,Ce as P,k0 as Q,$0 as R,O0 as S,V0 as T};
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{d as N,f as T}from"./chunk-VYWYJR63.mjs";import{a as p}from"./chunk-PHIOKO3A.mjs";import{f as P}from"./chunk-HCTFDGXL.mjs";async function O(e){if(e.headers.get("content-type")?.includes("application/json"))return await e.json();{let n=await e.text();try{return JSON.parse(n)}catch{return{message:"Unknown error, can't decode response into JSON",cause:n}}}}async function Y(e,t){try{let n=await fetch(typeof e=="string"||e instanceof URL?e:e.url,{...t});if(!n.ok){let a=await O(n);throw new p({cause:a,response:n,endpoint:e})}return n}catch(n){throw n instanceof p?n:new p({cause:n,endpoint:e,response:void 0})}}async function Ae(e,t){return(await Y(e,{...t,headers:{Accept:"application/json",...t?.headers}})).json()}import{parseEther as z}from"viem";var ye=z("0.005"),Ne=1e5,Te=1,we=.1,Ie=50,Se=7920027n;import A from"bignumber.js";import{formatUnits as V}from"viem";import w from"bignumber.js";var I=(e,t,n,a)=>{if(!e||!t||!n||!a)return 0;let s=new w(e).times(n),o=new w(t).times(a);if(s.lt(.01)||o.lt(.01)||s.isZero()||o.isZero())return 0;let r=o.div(s);return Number(new w(1).minus(r).toFixed())};var Oe=(e,t,n,a,s)=>e.map(o=>{let r=V(BigInt(o.amountOut),n?.decimals||18),c=V(BigInt(o.amountIn),t?.decimals||18),b=new A(r).times(s).toFixed(),u=new A(c).times(a).toFixed(),x=I((a||0).toString(),(s||0).toString(),c,r);return{...o,exchangeRate:new A(r).div(c).toNumber(),amountIn:c,amountOut:r,amountOutUsd:b,amountInUsd:u,priceImpactPercentage:x}}).sort((o,r)=>new A(r.amountOut).minus(o.amountOut).toNumber()).map((o,r,c)=>({...o,relativeLossPercentage:I("1","1",c[0].amountOut,o.amountOut)}));var _e=e=>{if(e==="0")return e;let t=e.replace(/^0+/,"").replaceAll(/[^0-9.]/g,"");return t.startsWith(".")&&(t=`0${t}`),t};import{BigNumber as _}from"bignumber.js";var L=["","K","M","B","T","P","E","Z","Y"];function v(e){return e instanceof _?e:new _(e)}function W(e,t){return v(e).shiftedBy(t*-1)}function d(e,t={}){if(typeof t=="number"){let E=t;if(e==null)return"";if(typeof e=="object")throw new Error("Value must be a number if using deprecated version");let l=Number(e).toFixed(E);return l=l.replace(/(\.\d*?[1-9])0+$|\.0*$/,"$1"),l}let{visibleDecimals:n,compact:a=!0,percent:s=!1,roundDown:o=!1,roundUp:r=!1,compactThreshold:c,maxValue:b,symbol:u,prefixText:x="",suffixText:B="",showIsSmallerThanMin:D=!0,ifNullish:h=""}=t||{};if(e==null)return h;let f=s?Number(e)*100:Number(e);if(Number.isNaN(f))return"NaN";if(f===Number.POSITIVE_INFINITY)return"Infinity";if(f===Number.NEGATIVE_INFINITY)return"-Infinity";let i=n??0;f===0?i=0:n===void 0&&(Math.abs(f)>1||s||u==="USD"?i=2:i=7);let R=10**-i,$=f!==0&&Math.abs(f)<Math.abs(R),q=f<0,Q=b?Math.abs(f)>b:!1,C=$?R:f,y=a&&(!c||Math.abs(f)>c);o&&!y?C=Math.trunc(Number(C)*10**i)/10**i:r&&!y&&(C=Math.ceil(Number(C)*10**i)/10**i);let g;if(Q)g=f>b?"\u221E":"-\u221E";else if(y){let E=v(C),l=E.abs().toFixed(0).length;c&&Math.abs(f)<=c&&(l=0);let U=Math.min(Math.floor(l?(l-1)/3:0),L.length-1),X=L[U],F=W(E,3*U).toNumber();o?F=Math.trunc(Number(F)*10**i)/10**i:r&&(F=Math.ceil(Number(F)*10**i)/10**i),g=`${new Intl.NumberFormat("en-US",{maximumFractionDigits:i,minimumFractionDigits:i}).format(F)}${X}`}else{let E=new Intl.NumberFormat("en-US",{maximumFractionDigits:i,minimumFractionDigits:i}).format(Math.abs(C));g=`${q?"-":""}${E}`}let m=[];return x&&m.push(x),$&&D&&m.push(f<0?">":"<"),u?.toLowerCase()==="usd"&&!s&&m.push("$"),m.push(g),s&&m.push("%"),u?.toLowerCase()!=="usd"&&typeof u<"u"&&m.push(" ",u),B&&m.push(B),m.join("")}var He=e=>e?Number(e)>Number.MAX_SAFE_INTEGER?Number.MAX_SAFE_INTEGER:Number(e)??0:0,je=(e,t)=>{if(!e)return"0";let[n="0",a="0"]=`${e}`.split(".");return`${n}.${a.substring(0,t)}`};function Je(e){let t=new Date;return t.setDate(t.getDate()-e)*1e3}var Z=["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 qe(e,t){let n=new Date(e*1e3),a=n.getDate(),s="th";return a===1||a===21||a===31?s="st":a===2||a===22?s="nd":(a===3||a===23)&&(s="rd"),t?`${K[n.getMonth()]} ${a}`:`${Z[n.getMonth()]} ${a}${s}, ${n.getFullYear()}`}function Qe(...e){let t=e[0],n,a,s,o;if(typeof e[1]!="object")n=e[1]??!1,a=e[2]??!1,o=e[3]??!1,s=!0;else{let f=e[1];n=f.condensed??!1;let i=f.greaterUnit??"hours";i==="days"?(a=!0,s=!0):i==="hours"?(a=!1,s=!0,o=!1):(a=!1,s=!0),o=f.showSeconds??!1}let r=Math.floor(t/(3600*24)),c=Math.floor(t%(3600*24)/3600),b=Math.floor(t%3600/60),u=t%60;if(a||(c+=r*24,r=0),r===0&&c===0&&b===0)return n?"< 1 M":"less than a minute";let x=r>0?`${r}${n?"D":" day"}${!n&&r!==1?"s":""}`:"",B=c>0?`${c}${n?"H":" hour"}${!n&&c!==1?"s":""}`:"",D=b>0&&s||!r&&!c?`${b}${n?"M":" minute"}${!n&&b!==1?"s":""}`:"",h=u>0&&o?`${u}${n?"S":" second"}${!n&&u!==1?"s":""}`:"";return[x,B,D,h].filter(Boolean).join(n?" ":", ")}function Ye(e,t){let n=t?{minimumFractionDigits:0,maximumFractionDigits:0}:{},a=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",...n});try{let s=c=>typeof c=="number",o=c=>typeof c=="string";if(!s(e)&&!o(e))return a.format(0);let r;return o(e)?(r=Number.parseFloat(e),Number.isNaN(r)&&(r=0)):(r=e,Number.isNaN(r)&&(r=0)),a.format(r)}catch(s){return console.log(s),a.format(0)}}import{defaultChainId as ee}from"@berachain/config/internal";var H=[{80069:"0x0000000000000000000000000000000000000000",80094:"0x0000000000000000000000000000000000000000",name:"zeroAddress"},{80094:"0x141De07E5D4C4759EC9301DA106115D4841f66cD",name:"nfts.bongBears"},{80094:"0xA0CF472E6132F6B822a944f6F31aA7b261c7c375",name:"nfts.bondBears"},{80094:"0xf49ec5db255854C4a567de5AB3826c9AAbaFc7cF",name:"nfts.booBears"},{80094:"0xDDeAf391c4be2d01ca52aBb8C159a06820ef078C",name:"nfts.babyBears"},{80094:"0x7711B2Eb2451259dbF211e30157ceB7CFeb79a19",name:"nfts.bandBears"},{80094:"0x72D876D9cdf4001b836f8E47254d0551EdA2eebB",name:"nfts.bitBears"},{80069:"",80094:"0x24147243f9c08d835C218Cda1e135f8dFD0517D0",name:"bend.morpho"},{80069:"",80094:"0xcf247Df3A2322Dea0D408f011c194906E77a6f62",name:"bend.adaptiveCurveIrm"},{80069:"",80094:"0xF920140A65D0f412f2AB3e76C4fEAB5Eef0657ae",name:"bend.bundler3"},{80069:"",80094:"0xd2B9667F5214115E27937C410cAeE83E3a901Df7",name:"bend.generalAdapter1"},{80069:"",80094:"0x5EDd48C6ACBd565Eeb31702FD9fa9Cbc86fbE616",name:"bend.metaMorphoFactoryV1_1"},{80069:"",80094:"0x80108Ee81A92091Db6B8B2326B1875ce9388f461",name:"bend.metaFeePartitioner"},{80069:"",80094:"0xB62F34Ab315eaDeAc698e8EaEB6Fc2650951BFe7",name:"bend.publicAllocator"},{80069:"",80094:"0xAf2FDC54f7bc9d6e8C2D2760E908f4e1beB04d9E",name:"bend.morphoChainlinkOracleV2Factory"},{80069:"",80094:"0x46fE2bc33b661E01A8946BbC3Bf43F2B8382d802",name:"bend.urdFactory"},{80069:"",80094:"0x30BbA9CD9Eb8c95824aa42Faa1Bb397b07545bc1",name:"bend.vaults.re7HoneyVault"},{80069:"0xb0d005Fe83E3F1ec876C1a64700c5F0d6265d9E3",80094:"0x77DA09bC82652f9A14d1b170a001e759640298e6",name:"pol.bgtIncentiveDistributor"},{80069:"0x1984Baf659607Cc5f206c55BB3B00eb3E180190B",80094:"0x1984Baf659607Cc5f206c55BB3B00eb3E180190B",name:"pol.bgtIncentiveFeeCollector"},{80069:"0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a",80094:"0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a",name:"pol.wberaStakerVault"},{80069:"0x4242424242424242424242424242424242424242",80094:"0x4242424242424242424242424242424242424242",name:"pol.beaconDeposit"},{80069:"0xdf960E8F3F19C481dDE769edEDD439ea1a63426a",80094:"0xdf960E8F3F19C481dDE769edEDD439ea1a63426a",name:"pol.berachef"},{80069:"0x1AE7dD7AE06F6C58B4524d9c1f816094B1bcCD8e",80094:"0x1AE7dD7AE06F6C58B4524d9c1f816094B1bcCD8e",name:"pol.blockRewardController"},{80069:"0xD2f19a79b026Fb636A7c300bF5947df113940761",80094:"0xD2f19a79b026Fb636A7c300bF5947df113940761",name:"pol.distributor"},{80069:"0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8",80094:"0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8",name:"pol.rewardVaultFactory"},{80069:"0x44F07Ce5AfeCbCC406e6beFD40cc2998eEb8c7C6",80094:"0x44F07Ce5AfeCbCC406e6beFD40cc2998eEb8c7C6",name:"pol.bgtStaker"},{80069:"0x7bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650",80094:"0x7Bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650",name:"pol.feeCollector"},{80069:"0x4f4A5c2194B8e856b7a05B348F6ba3978FB6f6D5",80094:"0x4f4A5c2194B8e856b7a05B348F6ba3978FB6f6D5",name:"pol.governance"},{80069:"0xb5f2000b5744f207c931526cAE2134cAa8b6862a",80094:"0xb5f2000b5744f207c931526cAE2134cAa8b6862a",name:"pol.timelock"},{80069:"0x656b95E550C07a9ffe548bd4085c72418Ceb1dba",80094:"0x656b95E550C07a9ffe548bd4085c72418Ceb1dba",name:"tokens.bgt"},{80069:"0xFCBD14DC51f0A4d49d5E53C2E0950e0bC26d0Dce",80094:"0xFCBD14DC51f0A4d49d5E53C2E0950e0bC26d0Dce",name:"tokens.honey"},{80069:"0xA4aFef880F5cE1f63c9fb48F661E27F8B4216401",80094:"0xA4aFef880F5cE1f63c9fb48F661E27F8B4216401",name:"tokens.honeyFactory"},{80069:"0x285e147060CDc5ba902786d3A471224ee6cE0F91",80094:"0x285e147060CDc5ba902786d3A471224ee6cE0F91",name:"tokens.honeyFactoryReader"},{80069:"0x6969696969696969696969696969696969696969",80094:"0x6969696969696969696969696969696969696969",name:"tokens.wbera"},{80069:"",80094:"0x549943e04f40284185054145c6E4e9568C1D3241",name:"tokens.usdc"},{80069:"",80094:"0x0555E30da8f98308EdB960aa94C0Db47230d2B9c",name:"tokens.wbtc"},{80069:"",80094:"0x2F6F07CDcf3588944Bf4C42aC74ff24bF56e7590",name:"tokens.weth"},{80069:"0x708cA656b68A6b7384a488A36aD33505a77241FE",80094:"0x4Be03f781C497A489E3cB0287833452cA9B9E80B",name:"bex.vault"},{80069:"0x05A607aCf3548E84DD1E44c3706F850c849058Da",80094:"0xB8Cf46Cf1b1476E707619913a70B2085d26f1707",name:"bex.protocolFeesCollector"},{80069:"0xC7c981ADcDC5d48fed0CD52807fb2bAB22676C8f",80094:"0x5083737EC75a728c265BE578C9d0d5333a2c5951",name:"bex.balancerHelpers"},{80069:"0x0dC9964F6CA33d9EF38DEB4925234766127C6B36",80094:"0x55dccE8165C88aAd4403a15A9cE3A8E244657dD2",name:"bex.poolCreationHelper"},{80069:"0x8c2D77f0CfcD4Af9cF41494EfE500FE324012c06",80094:"0x1635F0E1B3e8A6713d03aE155ba79458Ba3240C7",name:"bex.protocolFeesWithdrawer"},{80069:"0xB60DbBaCEaeC23486a64d12089F467ef949f1bb1",80094:"0xDfA30BDa0375d4763711AB0CC8D91B20bfCC87E1",name:"bex.stablePoolFactory"},{80069:"0xfD772657FC8c4Ed3884AfF151b680883814052FA",80094:"0xCB4AE3030bA06F7EEE54A7B96AfcA7457f9525cf",name:"bex.batchRelayerLibrary"},{80069:"0x263a1C5B2c5851beA2177eb8D6caefdfF2A25601",80094:"0x4151083172b2CEFB83A33fD7FC9F6cBabb3Fd08d",name:"bex.batchRelayerQueryLibrary"},{80069:"0x343215E156Ff586711a5B8C49Fe3099BAF22624C",80094:"0x6044f181aB5E9C05A4ed9Ce295f3B178d2492EE7",name:"bex.balancerRelayer"},{80069:"0xf1d23276C7b271B2aC595C78977b2312E9954D57",80094:"0xa966fA8F2d5B087FFFA499C0C1240589371Af409",name:"bex.weightedPoolFactory"},{80069:"0x8119E412E00fe3c857739E95dB147817Bf615dB8",80094:"0x33C88ffdEe710ed3908C791137Bd1D4421AabBBf",name:"bex.protocolFeePercentagesProvider"},{80069:"0xE3723383a0EA73D5c0dE424BAA97F97f86f6cF92",80094:"0x3C612e132624f4Bd500eE1495F54565F0bcc9b59",name:"bex.balancerQueries"},{80069:"0x1453b808C88AAa5e5965f8d86123921E96F045Aa",80094:"0x71047aE39A7aA4f7d923542F459e50B974644Ef2",name:"bex.authorizer"},{80069:"0x41675C099F32341bf84BFc5382aF534df5C7461a",80094:"0x41675C099F32341bf84BFc5382aF534df5C7461a",name:"safe.safe"},{80069:"0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67",80094:"0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67",name:"safe.safeProxyFactory"},{80069:"0x38869bf66a61cF6bDB996A6aE40D5853Fd43B526",80094:"0x38869bf66a61cF6bDB996A6aE40D5853Fd43B526",name:"safe.multiSend"},{80069:"0x9641d764fc13c8B624c04430C7356C1C7C8102e2",80094:"0x9641d764fc13c8B624c04430C7356C1C7C8102e2",name:"safe.multiSendCallOnly"},{80069:"0xfd0732Dc9E303f09fCEf3a7388Ad10A83459Ec99",80094:"0xfd0732Dc9E303f09fCEf3a7388Ad10A83459Ec99",name:"safe.compatibilityFallbackHandler"},{80069:"0xd53cd0aB83D845Ac265BE939c57F53AD838012c9",80094:"0xd53cd0aB83D845Ac265BE939c57F53AD838012c9",name:"safe.signMessageLib"},{80069:"0x3d4BA2E0884aa488718476ca2FB8Efc291A46199",80094:"0x3d4BA2E0884aa488718476ca2FB8Efc291A46199",name:"safe.simulateTxAccessor"},{80069:"0x9b35Af71d77eaf8d7e40252370304687390A1A52",80094:"0x9b35Af71d77eaf8d7e40252370304687390A1A52",name:"safe.createCall"},{80069:"0x4e59b44847b379578588920cA78FbF26c0B4956C",80094:"0x4e59b44847b379578588920cA78FbF26c0B4956C",name:"other.create2"},{80069:"0xcA11bde05977b3631167028862bE2a173976CA11",80094:"0xcA11bde05977b3631167028862bE2a173976CA11",name:"other.multicall3"},{80069:"0x000000000022D473030F116dDEE9F6B43aC78BA3",80094:"0x000000000022D473030F116dDEE9F6B43aC78BA3",name:"other.permit2"},{80069:"0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2",80094:"0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2",name:"pol.rewardVaultHelper"},{80069:"0x7f09Cf6958631513aF0400488F65c7B5c0313F52",80094:"0xc8FD9a3fB3Dad4C22c9F8Cfa7cecC318A667A791",name:"pol.rewardAllocationFactory"},{80069:"0xba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1b",80094:"0xba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1b",name:"bex.balancerDelegatedOwnership"},{80069:"0x0000000000000000000000000000000000000000",80094:"0x1BDB1cf792419d2eaB5aBa8076B8f4257744fA58",name:"bex.aggregatorsRouter"},{80069:"0x0000000000000000000000000000000000000000",80094:"0x4AD3c5A427Af60F8Dd982023aE012233A66CA1f8",name:"bex.aggregatorsRouterExecutor"},{80069:null,80094:"0x24aC999FF132B32c5b3956973b6213B0d07eB2C7",name:"bex.haikuRouter"},{80069:null,80094:"0x69495273D6Dc572A830A4D6e00400a1e9d5B8f71",name:"bex.haikuAgentAddress"},{80069:"0x0eFeC4379805fAFA7269Ec599a6921f388C8841a",80094:"0xB5787B8f7b07a00229b617c4B7a616185857C147",name:"bex.recoverFundsContract"},{80069:"0x5CA67e134c52B1d11E038A5a4eD8Ddcdb1238943",80094:"0x5CA67e134c52B1d11E038A5a4eD8Ddcdb1238943",name:"honey.pythOracle"},{80069:"0x4b7cb1c197f8EE4d309866B16C2c12E3B4E7E606",80094:"0x4b7cb1c197f8EE4d309866B16C2c12E3B4E7E606",name:"honey.pythWrapper"},{80069:"0x2880aB155794e7179c9eE2e38200202908C17B43",80094:"0x2880aB155794e7179c9eE2e38200202908C17B43",name:"external.pyth"},{80069:null,80094:"0xC5FabF3a7E98a2ed89f5d5057Ab010634Ca7e71f",name:"bend.staging.morpho"},{80069:null,80094:"0x1d5376e532CcF25b740270624111D665830E5dB9",name:"bend.staging.adaptiveCurveIrm"},{80069:null,80094:"0x524061B659380a5e4576d76F0951303B20B5932f",name:"bend.staging.metaMorphoFactory"},{80069:null,80094:"0xFD6e68bC20be2a01Ec1Df687c83f927087D52811",name:"bend.staging.publicAllocator"},{80069:null,80094:"0x56811e1BFfF951B98c7940d3aCe0e549Ec4fDee8",name:"bend.staging.bundler3"},{80069:null,80094:"0x257a41E20BBfe90D750646C2e00bA700D55958C5",name:"bend.staging.generalAdapter1"},{80094:"0x19DcFf4e8Ff0B554D8a1f22d289A449fd4FbddBa",name:"bend.staging.supportedVaults.0"},{80094:"0xC0808A144CE2ea85bF84EBD1dDF5D59429f59dDE",name:"bend.staging.supportedVaults.1"}];function e0({address:e,chainId:t=ee}){return e?H.find(a=>a[t]?.toLowerCase()===e.toLowerCase())?.name:void 0}function r0({collaterals:e,actionType:t,toAmount:n,fromAmount:a,isBasketModeEnabled:s}){if(e.length>0){if(t==="mint"){let r=["Minting"];if(r.push(d(Number(n[0]),5)),r.push("Honey from"),s)for(let c in e)r.push(d(Number(a[c]),5)),r.push(`${e[c].symbol}`),+c<e.length-2?r[r.length-1]=r[r.length-1].concat(","):+c===e.length-1?r[r.length-1]=r[r.length-1].concat("."):r.push("and");else r.push(d(Number(a[0]),5)),r.push(`${e[0].symbol}`);return r.join(" ")}let o=["Redeeming"];if(s)for(let r in e)o.push(d(Number(n[r]),5)),o.push(`${e[r].symbol}`),+r<e.length-2?o[o.length-1]=o[o.length-1].concat(","):+r===e.length-1?(o.push("for"),o.push(d(Number(a[0]),5)),o.push("Honey.")):o.push("and");else o.push(d(Number(n[0]),5)),o.push(`${e[0].symbol}`),o.push("for"),o.push(d(Number(a[0]),5)),o.push("Honey.");return o.join(" ")}return""}import{createPublicClient as ne,fallback as te,http as j}from"viem";import{defaultChainId as re,getRpcUrls as ae}from"@berachain/config/internal";import{defaultBeraNetworkConfig as oe}from"@berachain/wagmi/config";var S=new Map,i0=(e={})=>{let t=e.chainId??re;if(S.has(t))return S.get(t);let n=ae(t),a=[n.privateRcpUrl,n.jsonRpcUrl,n.alchemyJsonRpcUrl,n.publicJsonRpcUrl].filter(o=>o).map(o=>j(o));a.length===0&&a.push(j());let s=ne({chain:oe.chain,transport:te(a)});return S.set(t,s),s};import{createTestClient as se,http as ce}from"viem";import{defaultChainId as ie,getRpcUrls as fe}from"@berachain/config/internal";function ue(e=ie){let t=fe(e);if(!t.isAnvil)throw new Error("No anvil RPC URL found");return se({mode:"anvil",transport:ce(t.jsonRpcUrl)})}import G from"bignumber.js";var l0=(e,t,n)=>{let a=new G(1+n).times(e),s=new G(1-n).times(e);return a.isLessThan(t)||s.isGreaterThan(t)};function x0({lastBlockTimestamp:e,blockTime:t}){return e?e<Date.now()/1e3-t*10:!0}var E0=e=>2n*BigInt(e);function be(e,t){let n=t.originalException;return n&&(n instanceof P&&(e.extra={...n,...e.extra},e.tags={...n.tags,...e.tags},e.level=t.captureContext&&"level"in t.captureContext?t.captureContext.level:n.level),n instanceof TypeError&&(e.extra={...n},e.tags={"error.reason":p.isCorsError(n)?p.REASON_MAP.CORS_ERROR:n.name,level:"warning"})),e}function D0(e){return Math.floor(e/1e3)}function me(e){return e*1e3}function de(e){return e*me(60)}function le(e){return e*60}function pe(e){return e*de(60)}function xe(e){return e*le(60)}function M(e){return e*pe(24)}function k(e){return e*xe(24)}function h0(e){return e*M(7)}function y0(e){return e*k(7)}function N0(e){return e*M(30)}function T0(e){return e*k(30)}function w0(e){return e*M(365)}function I0(e){return e*k(365)}function Ce(e){return{...e,...T(e,"BERA")&&N}}function k0(e){return e.map(t=>Ce(t))}var $0=(e,t=4,n=4,a=!1)=>{if(!e)return"";let s=a?e.toUpperCase().replace(/^0X/,"0x"):e;return`${s.substring(0,t)}...${s.substring(s.length-n)}`};import{GqlValidatorBlockUptimeStatus as J}from"@berachain/graphql/pol/api";function O0(e){if(e)return e===J.Proposed}function V0(e){if(e)return e===J.Signed}export{O as a,Y as b,Ae as c,D0 as d,me as e,de as f,le as g,pe as h,xe as i,M as j,k,h0 as l,y0 as m,N0 as n,T0 as o,w0 as p,I0 as q,ye as r,Ne as s,Te as t,we as u,Ie as v,Se as w,E0 as x,I as y,Oe as z,_e as A,d as B,He as C,je as D,Je as E,qe as F,Qe as G,Ye as H,e0 as I,r0 as J,i0 as K,ue as L,l0 as M,x0 as N,be as O,Ce as P,k0 as Q,$0 as R,O0 as S,V0 as T};
|
|
2
|
+
//# sourceMappingURL=chunk-AMRJ4B36.mjs.map
|