@berachain/berajs 0.2.8-beta.2 → 0.2.8-beta.4
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/abi/exports.cjs +4452 -1
- package/dist/abi/exports.cjs.map +1 -1
- package/dist/abi/exports.mjs +4452 -1
- package/dist/abi/exports.mjs.map +1 -1
- package/dist/actions/exports.cjs +918 -1
- package/dist/actions/exports.cjs.map +1 -1
- package/dist/actions/exports.mjs +918 -1
- package/dist/actions/exports.mjs.map +1 -1
- package/dist/chunk-24HMIYTN.cjs +36 -0
- package/dist/chunk-24HMIYTN.cjs.map +1 -0
- package/dist/chunk-2LL77B3T.cjs +135 -0
- package/dist/chunk-2LL77B3T.cjs.map +1 -0
- package/dist/chunk-3LXVARBJ.cjs +417 -0
- package/dist/chunk-3LXVARBJ.cjs.map +1 -0
- package/dist/chunk-4HDIUUSV.cjs +130 -0
- package/dist/chunk-4HDIUUSV.cjs.map +1 -0
- package/dist/chunk-7ONKBHXY.cjs +169 -0
- package/dist/chunk-7ONKBHXY.cjs.map +1 -0
- package/dist/chunk-7TFV6UKF.mjs +24 -0
- package/dist/{chunk-MK5NS5B5.mjs.map → chunk-7TFV6UKF.mjs.map} +1 -1
- package/dist/chunk-A4FPM7U3.cjs +63 -0
- package/dist/chunk-A4FPM7U3.cjs.map +1 -0
- package/dist/chunk-A7P3JVU7.cjs +4694 -0
- package/dist/chunk-A7P3JVU7.cjs.map +1 -0
- package/dist/chunk-ALPEMPZI.mjs +417 -0
- package/dist/chunk-ALPEMPZI.mjs.map +1 -0
- package/dist/chunk-BEHP54S3.cjs +24 -0
- package/dist/chunk-BEHP54S3.cjs.map +1 -0
- package/dist/chunk-CYBZH6U3.mjs +135 -0
- package/dist/{chunk-FM3WDBFH.mjs.map → chunk-CYBZH6U3.mjs.map} +1 -1
- package/dist/chunk-EWBKSMPG.cjs +13 -0
- package/dist/chunk-EWBKSMPG.cjs.map +1 -0
- package/dist/chunk-GLWPRM33.mjs +13 -0
- package/dist/{chunk-575OK77P.mjs.map → chunk-GLWPRM33.mjs.map} +1 -1
- package/dist/chunk-GWSTVITN.mjs +572 -0
- package/dist/{chunk-NLVWRMGD.mjs.map → chunk-GWSTVITN.mjs.map} +1 -1
- package/dist/chunk-H3Z37RYU.cjs +15 -0
- package/dist/chunk-H3Z37RYU.cjs.map +1 -0
- package/dist/chunk-HCC4FJTD.cjs +97 -0
- package/dist/chunk-HCC4FJTD.cjs.map +1 -0
- package/dist/chunk-J6EHBYSV.mjs +97 -0
- package/dist/{chunk-IDFMLLDY.mjs.map → chunk-J6EHBYSV.mjs.map} +1 -1
- package/dist/chunk-JA4DHMTG.mjs +15 -0
- package/dist/{chunk-OGBD5YOG.mjs.map → chunk-JA4DHMTG.mjs.map} +1 -1
- package/dist/chunk-KL6YZ5VR.mjs +63 -0
- package/dist/{chunk-OGJMSGB2.mjs.map → chunk-KL6YZ5VR.mjs.map} +1 -1
- package/dist/chunk-MILSHCKW.cjs +168 -0
- package/dist/chunk-MILSHCKW.cjs.map +1 -0
- package/dist/chunk-MKS6W5NI.mjs +403 -0
- package/dist/{chunk-COMMLZ3O.mjs.map → chunk-MKS6W5NI.mjs.map} +1 -1
- package/dist/chunk-MXWPP6MS.cjs +572 -0
- package/dist/chunk-MXWPP6MS.cjs.map +1 -0
- package/dist/chunk-OWUI3VPI.mjs +169 -0
- package/dist/{chunk-QRAIGQF2.mjs.map → chunk-OWUI3VPI.mjs.map} +1 -1
- package/dist/chunk-PBCE7JTE.mjs +36 -0
- package/dist/{chunk-MJZHJFZO.mjs.map → chunk-PBCE7JTE.mjs.map} +1 -1
- package/dist/chunk-QISQSMCV.cjs +1843 -0
- package/dist/chunk-QISQSMCV.cjs.map +1 -0
- package/dist/chunk-SYWYIMY7.mjs +4694 -0
- package/dist/chunk-SYWYIMY7.mjs.map +1 -0
- package/dist/chunk-TDW5SPXR.cjs +244 -0
- package/dist/chunk-TDW5SPXR.cjs.map +1 -0
- package/dist/chunk-TGHG6Q3C.cjs +403 -0
- package/dist/chunk-TGHG6Q3C.cjs.map +1 -0
- package/dist/chunk-WAFQFAI7.mjs +130 -0
- package/dist/{chunk-BEKH5EYT.mjs.map → chunk-WAFQFAI7.mjs.map} +1 -1
- package/dist/chunk-WEULAXBE.mjs +168 -0
- package/dist/{chunk-T5FSQ3YE.mjs.map → chunk-WEULAXBE.mjs.map} +1 -1
- package/dist/chunk-ZCEFC2TK.mjs +244 -0
- package/dist/{chunk-NAXAZJJY.mjs.map → chunk-ZCEFC2TK.mjs.map} +1 -1
- package/dist/chunk-ZV7DCQQY.mjs +1843 -0
- package/dist/{chunk-74QD4JAH.mjs.map → chunk-ZV7DCQQY.mjs.map} +1 -1
- package/dist/contexts/exports.cjs +82 -1
- package/dist/contexts/exports.cjs.map +1 -1
- package/dist/contexts/exports.mjs +82 -1
- package/dist/contexts/exports.mjs.map +1 -1
- package/dist/enum/exports.cjs +58 -1
- package/dist/enum/exports.cjs.map +1 -1
- package/dist/enum/exports.mjs +58 -1
- package/dist/enum/exports.mjs.map +1 -1
- package/dist/errors/exports.cjs +38 -1
- package/dist/errors/exports.cjs.map +1 -1
- package/dist/errors/exports.mjs +38 -1
- package/dist/hooks/exports.cjs +8327 -3
- package/dist/hooks/exports.cjs.map +1 -1
- package/dist/hooks/exports.mjs +8327 -3
- package/dist/hooks/exports.mjs.map +1 -1
- package/dist/utils/exports.cjs +786 -1
- package/dist/utils/exports.cjs.map +1 -1
- package/dist/utils/exports.mjs +786 -1
- package/dist/utils/exports.mjs.map +1 -1
- package/package.json +4 -4
- package/src/actions/dex/aggregators/base.ts +3 -1
- package/src/actions/governance/getDecodedFunctionData.ts +6 -1
- package/src/actions/honey/getHoneyPythPriceOracle.ts +1 -1
- package/src/actions/honey/getHoneyRootPriceOracle.ts +1 -1
- package/src/actions/pol/getRewardVaultBeaconImplementation.ts +1 -1
- package/src/actions/pol/getTotalStakedAmount.ts +1 -1
- package/src/actions/pol/getUserClaimableIncentives.ts +1 -1
- package/src/actions/pol/getUserVaultsReward.ts +1 -1
- package/src/actions/tokens/getUnderlyingToken.ts +3 -1
- package/src/actions/validators/getUserBoosts.ts +1 -1
- package/src/utils/getErrorResponse.ts +1 -1
- package/dist/chunk-2YBHAMDV.cjs +0 -2
- package/dist/chunk-2YBHAMDV.cjs.map +0 -1
- package/dist/chunk-3YEM767C.mjs +0 -4
- package/dist/chunk-3YEM767C.mjs.map +0 -1
- package/dist/chunk-575OK77P.mjs +0 -2
- package/dist/chunk-57RINXU6.cjs +0 -2
- package/dist/chunk-57RINXU6.cjs.map +0 -1
- package/dist/chunk-64OF6RU5.cjs +0 -4
- package/dist/chunk-64OF6RU5.cjs.map +0 -1
- package/dist/chunk-74QD4JAH.mjs +0 -2
- package/dist/chunk-74WA35RI.cjs +0 -2
- package/dist/chunk-74WA35RI.cjs.map +0 -1
- package/dist/chunk-BEKH5EYT.mjs +0 -2
- package/dist/chunk-CF3LFNXG.cjs +0 -2
- package/dist/chunk-CF3LFNXG.cjs.map +0 -1
- package/dist/chunk-COMMLZ3O.mjs +0 -2
- package/dist/chunk-DDEQFR3M.cjs +0 -2
- package/dist/chunk-DDEQFR3M.cjs.map +0 -1
- package/dist/chunk-DK42F2ZM.cjs +0 -2
- package/dist/chunk-DK42F2ZM.cjs.map +0 -1
- package/dist/chunk-FM3WDBFH.mjs +0 -2
- package/dist/chunk-I7M43BB4.cjs +0 -2
- package/dist/chunk-I7M43BB4.cjs.map +0 -1
- package/dist/chunk-IDFMLLDY.mjs +0 -2
- package/dist/chunk-LNVR4BW6.cjs +0 -2
- package/dist/chunk-LNVR4BW6.cjs.map +0 -1
- package/dist/chunk-MJZHJFZO.mjs +0 -2
- package/dist/chunk-MK5NS5B5.mjs +0 -2
- package/dist/chunk-NAXAZJJY.mjs +0 -2
- package/dist/chunk-NLVWRMGD.mjs +0 -2
- package/dist/chunk-NMH7LHPW.cjs +0 -2
- package/dist/chunk-NMH7LHPW.cjs.map +0 -1
- package/dist/chunk-NVHV2LDK.cjs +0 -2
- package/dist/chunk-NVHV2LDK.cjs.map +0 -1
- package/dist/chunk-OGBD5YOG.mjs +0 -2
- package/dist/chunk-OGJMSGB2.mjs +0 -2
- package/dist/chunk-OIYXOKTT.cjs +0 -2
- package/dist/chunk-OIYXOKTT.cjs.map +0 -1
- package/dist/chunk-OUD27MU7.cjs +0 -2
- package/dist/chunk-OUD27MU7.cjs.map +0 -1
- package/dist/chunk-PLIH6KQM.mjs +0 -2
- package/dist/chunk-PLIH6KQM.mjs.map +0 -1
- package/dist/chunk-QRAIGQF2.mjs +0 -2
- package/dist/chunk-RWOICHRW.cjs +0 -2
- package/dist/chunk-RWOICHRW.cjs.map +0 -1
- package/dist/chunk-T5FSQ3YE.mjs +0 -2
- package/dist/chunk-WRFDB3QJ.cjs +0 -2
- package/dist/chunk-WRFDB3QJ.cjs.map +0 -1
- package/dist/chunk-XNJLSA6P.cjs +0 -2
- package/dist/chunk-XNJLSA6P.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/formatInputTokenValue.ts","../../src/utils/formatUsd.ts","../../src/utils/getContractName.ts","../../src/data/contracts.ts","../../src/utils/getHoneySwapMessage.ts","../../src/utils/getServerSideClient.ts","../../src/utils/isDifferenceExceedingThreshold.ts","../../src/utils/isSubgraphStale.ts","../../src/utils/layerZeroScan.ts","../../src/utils/parseWhiskToken.ts","../../src/utils/truncateHash.ts","../../src/utils/validatorUptimeStatus.ts"],"sourcesContent":["export const formatInputTokenValue = (inputValue: string) => {\n if (inputValue === \"0\") return inputValue;\n // Remove all non-numeric characters except for the decimal point, and remove leading zeros\n let filteredValue = inputValue.replace(/^0+/, \"\").replaceAll(/[^0-9.]/g, \"\");\n\n // Keep the 0\n if (filteredValue.startsWith(\".\")) {\n filteredValue = `0${filteredValue}`;\n }\n\n return filteredValue;\n};\n","/**\n * @deprecated use the FormattedNumber component instead\n */\nexport function formatUsd(\n input: string | number,\n hideDecimals?: boolean,\n): string {\n const decimalsSettings = hideDecimals\n ? { minimumFractionDigits: 0, maximumFractionDigits: 0 }\n : {};\n const formatter = new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n ...decimalsSettings,\n });\n try {\n const isNumber = (value: unknown): value is number =>\n typeof value === \"number\";\n const isString = (value: unknown): value is string =>\n typeof value === \"string\";\n\n if (!isNumber(input) && !isString(input)) {\n return formatter.format(0);\n }\n\n let num: number;\n\n if (isString(input)) {\n num = Number.parseFloat(input);\n\n if (Number.isNaN(num)) {\n num = 0;\n }\n } else {\n num = input;\n\n if (Number.isNaN(num)) {\n num = 0;\n }\n }\n return formatter.format(num);\n } catch (e) {\n console.log(e);\n return formatter.format(0);\n }\n}\n","import type { Address } from \"viem\";\n\nimport { type ChainId, defaultChainId } from \"@berachain/config/internal\";\n\nimport { contracts } from \"../data/contracts\";\n\n/**\n * Get a human readable name for a contract address.\n */\nexport function getContractName({\n address,\n chainId = defaultChainId,\n}: {\n address: Address | undefined;\n chainId?: ChainId | \"name\";\n}): string | undefined {\n if (!address) {\n return undefined;\n }\n\n const contract = contracts.find((contract) => {\n const contractAddress = contract[chainId as keyof typeof contract];\n return contractAddress?.toLowerCase() === address.toLowerCase();\n });\n\n return contract?.name;\n}\n","/**\n * This file is generated by the getContractNames.js script.\n * Do not edit this file manually, run `pnpm contracts:update` to update it.\n */\nexport const contracts = [\n {\n \"80069\": \"0x0000000000000000000000000000000000000000\",\n \"80094\": \"0x0000000000000000000000000000000000000000\",\n name: \"zeroAddress\",\n },\n {\n \"80094\": \"0x141De07E5D4C4759EC9301DA106115D4841f66cD\",\n name: \"nfts.bongBears\",\n },\n {\n \"80094\": \"0xA0CF472E6132F6B822a944f6F31aA7b261c7c375\",\n name: \"nfts.bondBears\",\n },\n {\n \"80094\": \"0xf49ec5db255854C4a567de5AB3826c9AAbaFc7cF\",\n name: \"nfts.booBears\",\n },\n {\n \"80094\": \"0xDDeAf391c4be2d01ca52aBb8C159a06820ef078C\",\n name: \"nfts.babyBears\",\n },\n {\n \"80094\": \"0x7711B2Eb2451259dbF211e30157ceB7CFeb79a19\",\n name: \"nfts.bandBears\",\n },\n {\n \"80094\": \"0x72D876D9cdf4001b836f8E47254d0551EdA2eebB\",\n name: \"nfts.bitBears\",\n },\n {\n \"80069\": \"\",\n \"80094\": \"0x24147243f9c08d835C218Cda1e135f8dFD0517D0\",\n name: \"bend.morpho\",\n },\n {\n \"80069\": \"\",\n \"80094\": \"0xcf247Df3A2322Dea0D408f011c194906E77a6f62\",\n name: \"bend.adaptiveCurveIrm\",\n },\n {\n \"80069\": \"\",\n \"80094\": \"0xF920140A65D0f412f2AB3e76C4fEAB5Eef0657ae\",\n name: \"bend.bundler3\",\n },\n {\n \"80069\": \"\",\n \"80094\": \"0xd2B9667F5214115E27937C410cAeE83E3a901Df7\",\n name: \"bend.generalAdapter1\",\n },\n {\n \"80069\": \"\",\n \"80094\": \"0x5EDd48C6ACBd565Eeb31702FD9fa9Cbc86fbE616\",\n name: \"bend.metaMorphoFactoryV1_1\",\n },\n {\n \"80069\": \"\",\n \"80094\": \"0x80108Ee81A92091Db6B8B2326B1875ce9388f461\",\n name: \"bend.metaFeePartitioner\",\n },\n {\n \"80069\": \"\",\n \"80094\": \"0xB62F34Ab315eaDeAc698e8EaEB6Fc2650951BFe7\",\n name: \"bend.publicAllocator\",\n },\n {\n \"80069\": \"\",\n \"80094\": \"0xAf2FDC54f7bc9d6e8C2D2760E908f4e1beB04d9E\",\n name: \"bend.morphoChainlinkOracleV2Factory\",\n },\n {\n \"80069\": \"\",\n \"80094\": \"0x46fE2bc33b661E01A8946BbC3Bf43F2B8382d802\",\n name: \"bend.urdFactory\",\n },\n {\n \"80069\": \"\",\n \"80094\": \"0x30BbA9CD9Eb8c95824aa42Faa1Bb397b07545bc1\",\n name: \"bend.vaults.re7HoneyVault\",\n },\n {\n \"80069\": \"0xb0d005Fe83E3F1ec876C1a64700c5F0d6265d9E3\",\n \"80094\": \"0x77DA09bC82652f9A14d1b170a001e759640298e6\",\n name: \"pol.bgtIncentiveDistributor\",\n },\n {\n \"80069\": \"0x1984Baf659607Cc5f206c55BB3B00eb3E180190B\",\n \"80094\": \"0x1984Baf659607Cc5f206c55BB3B00eb3E180190B\",\n name: \"pol.bgtIncentiveFeeCollector\",\n },\n {\n \"80069\": \"0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a\",\n \"80094\": \"0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a\",\n name: \"pol.wberaStakerVault\",\n },\n {\n \"80069\": \"0x4242424242424242424242424242424242424242\",\n \"80094\": \"0x4242424242424242424242424242424242424242\",\n name: \"pol.beaconDeposit\",\n },\n {\n \"80069\": \"0xdf960E8F3F19C481dDE769edEDD439ea1a63426a\",\n \"80094\": \"0xdf960E8F3F19C481dDE769edEDD439ea1a63426a\",\n name: \"pol.berachef\",\n },\n {\n \"80069\": \"0x1AE7dD7AE06F6C58B4524d9c1f816094B1bcCD8e\",\n \"80094\": \"0x1AE7dD7AE06F6C58B4524d9c1f816094B1bcCD8e\",\n name: \"pol.blockRewardController\",\n },\n {\n \"80069\": \"0xD2f19a79b026Fb636A7c300bF5947df113940761\",\n \"80094\": \"0xD2f19a79b026Fb636A7c300bF5947df113940761\",\n name: \"pol.distributor\",\n },\n {\n \"80069\": \"0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8\",\n \"80094\": \"0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8\",\n name: \"pol.rewardVaultFactory\",\n },\n {\n \"80069\": \"0x44F07Ce5AfeCbCC406e6beFD40cc2998eEb8c7C6\",\n \"80094\": \"0x44F07Ce5AfeCbCC406e6beFD40cc2998eEb8c7C6\",\n name: \"pol.bgtStaker\",\n },\n {\n \"80069\": \"0x7bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650\",\n \"80094\": \"0x7Bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650\",\n name: \"pol.feeCollector\",\n },\n {\n \"80069\": \"0x4f4A5c2194B8e856b7a05B348F6ba3978FB6f6D5\",\n \"80094\": \"0x4f4A5c2194B8e856b7a05B348F6ba3978FB6f6D5\",\n name: \"pol.governance\",\n },\n {\n \"80069\": \"0xb5f2000b5744f207c931526cAE2134cAa8b6862a\",\n \"80094\": \"0xb5f2000b5744f207c931526cAE2134cAa8b6862a\",\n name: \"pol.timelock\",\n },\n {\n \"80069\": \"0x176c081E95C82CA68DEa20CA419C7506Aa063C24\",\n \"80094\": \"0xb79b43dBA821Cb67751276Ce050fF4111445fB99\",\n name: \"stakingPools.stakingPoolContractsFactory\",\n },\n {\n \"80069\": \"0x8b472791aC2f9e9Bd85f8919401b8Ce3bdFd464c\",\n \"80094\": \"0xAd17932a5B1aaeEa73D277a6AE670623F176E0D0\",\n name: \"stakingPools.delegationHandlerFactory\",\n },\n {\n \"80069\": \"0xAFAc2f11Cb39F0521b22494F6101002ce653D2f4\",\n \"80094\": \"0xE858802Ed532C6DAD2D196AB5B1F2C15F9cb52b4\",\n name: \"stakingPools.withdrawalVault\",\n },\n {\n \"80069\": \"0x656b95E550C07a9ffe548bd4085c72418Ceb1dba\",\n \"80094\": \"0x656b95E550C07a9ffe548bd4085c72418Ceb1dba\",\n name: \"tokens.bgt\",\n },\n {\n \"80069\": \"0xFCBD14DC51f0A4d49d5E53C2E0950e0bC26d0Dce\",\n \"80094\": \"0xFCBD14DC51f0A4d49d5E53C2E0950e0bC26d0Dce\",\n name: \"tokens.honey\",\n },\n {\n \"80069\": \"0xA4aFef880F5cE1f63c9fb48F661E27F8B4216401\",\n \"80094\": \"0xA4aFef880F5cE1f63c9fb48F661E27F8B4216401\",\n name: \"tokens.honeyFactory\",\n },\n {\n \"80069\": \"0x285e147060CDc5ba902786d3A471224ee6cE0F91\",\n \"80094\": \"0x285e147060CDc5ba902786d3A471224ee6cE0F91\",\n name: \"tokens.honeyFactoryReader\",\n },\n {\n \"80069\": \"0x6969696969696969696969696969696969696969\",\n \"80094\": \"0x6969696969696969696969696969696969696969\",\n name: \"tokens.wbera\",\n },\n {\n \"80069\": \"\",\n \"80094\": \"0x549943e04f40284185054145c6E4e9568C1D3241\",\n name: \"tokens.usdc\",\n },\n {\n \"80069\": \"\",\n \"80094\": \"0x0555E30da8f98308EdB960aa94C0Db47230d2B9c\",\n name: \"tokens.wbtc\",\n },\n {\n \"80069\": \"\",\n \"80094\": \"0x2F6F07CDcf3588944Bf4C42aC74ff24bF56e7590\",\n name: \"tokens.weth\",\n },\n {\n \"80069\": \"0x708cA656b68A6b7384a488A36aD33505a77241FE\",\n \"80094\": \"0x4Be03f781C497A489E3cB0287833452cA9B9E80B\",\n name: \"bex.vault\",\n },\n {\n \"80069\": \"0x05A607aCf3548E84DD1E44c3706F850c849058Da\",\n \"80094\": \"0xB8Cf46Cf1b1476E707619913a70B2085d26f1707\",\n name: \"bex.protocolFeesCollector\",\n },\n {\n \"80069\": \"0xC7c981ADcDC5d48fed0CD52807fb2bAB22676C8f\",\n \"80094\": \"0x5083737EC75a728c265BE578C9d0d5333a2c5951\",\n name: \"bex.balancerHelpers\",\n },\n {\n \"80069\": \"0x0dC9964F6CA33d9EF38DEB4925234766127C6B36\",\n \"80094\": \"0x55dccE8165C88aAd4403a15A9cE3A8E244657dD2\",\n name: \"bex.poolCreationHelper\",\n },\n {\n \"80069\": \"0x8c2D77f0CfcD4Af9cF41494EfE500FE324012c06\",\n \"80094\": \"0x1635F0E1B3e8A6713d03aE155ba79458Ba3240C7\",\n name: \"bex.protocolFeesWithdrawer\",\n },\n {\n \"80069\": \"0xB60DbBaCEaeC23486a64d12089F467ef949f1bb1\",\n \"80094\": \"0xDfA30BDa0375d4763711AB0CC8D91B20bfCC87E1\",\n name: \"bex.stablePoolFactory\",\n },\n {\n \"80069\": \"0xfD772657FC8c4Ed3884AfF151b680883814052FA\",\n \"80094\": \"0xCB4AE3030bA06F7EEE54A7B96AfcA7457f9525cf\",\n name: \"bex.batchRelayerLibrary\",\n },\n {\n \"80069\": \"0x263a1C5B2c5851beA2177eb8D6caefdfF2A25601\",\n \"80094\": \"0x4151083172b2CEFB83A33fD7FC9F6cBabb3Fd08d\",\n name: \"bex.batchRelayerQueryLibrary\",\n },\n {\n \"80069\": \"0x343215E156Ff586711a5B8C49Fe3099BAF22624C\",\n \"80094\": \"0x6044f181aB5E9C05A4ed9Ce295f3B178d2492EE7\",\n name: \"bex.balancerRelayer\",\n },\n {\n \"80069\": \"0xf1d23276C7b271B2aC595C78977b2312E9954D57\",\n \"80094\": \"0xa966fA8F2d5B087FFFA499C0C1240589371Af409\",\n name: \"bex.weightedPoolFactory\",\n },\n {\n \"80069\": \"0x8119E412E00fe3c857739E95dB147817Bf615dB8\",\n \"80094\": \"0x33C88ffdEe710ed3908C791137Bd1D4421AabBBf\",\n name: \"bex.protocolFeePercentagesProvider\",\n },\n {\n \"80069\": \"0xE3723383a0EA73D5c0dE424BAA97F97f86f6cF92\",\n \"80094\": \"0x3C612e132624f4Bd500eE1495F54565F0bcc9b59\",\n name: \"bex.balancerQueries\",\n },\n {\n \"80069\": \"0x1453b808C88AAa5e5965f8d86123921E96F045Aa\",\n \"80094\": \"0x71047aE39A7aA4f7d923542F459e50B974644Ef2\",\n name: \"bex.authorizer\",\n },\n {\n \"80069\": \"0x41675C099F32341bf84BFc5382aF534df5C7461a\",\n \"80094\": \"0x41675C099F32341bf84BFc5382aF534df5C7461a\",\n name: \"safe.safe\",\n },\n {\n \"80069\": \"0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67\",\n \"80094\": \"0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67\",\n name: \"safe.safeProxyFactory\",\n },\n {\n \"80069\": \"0x38869bf66a61cF6bDB996A6aE40D5853Fd43B526\",\n \"80094\": \"0x38869bf66a61cF6bDB996A6aE40D5853Fd43B526\",\n name: \"safe.multiSend\",\n },\n {\n \"80069\": \"0x9641d764fc13c8B624c04430C7356C1C7C8102e2\",\n \"80094\": \"0x9641d764fc13c8B624c04430C7356C1C7C8102e2\",\n name: \"safe.multiSendCallOnly\",\n },\n {\n \"80069\": \"0xfd0732Dc9E303f09fCEf3a7388Ad10A83459Ec99\",\n \"80094\": \"0xfd0732Dc9E303f09fCEf3a7388Ad10A83459Ec99\",\n name: \"safe.compatibilityFallbackHandler\",\n },\n {\n \"80069\": \"0xd53cd0aB83D845Ac265BE939c57F53AD838012c9\",\n \"80094\": \"0xd53cd0aB83D845Ac265BE939c57F53AD838012c9\",\n name: \"safe.signMessageLib\",\n },\n {\n \"80069\": \"0x3d4BA2E0884aa488718476ca2FB8Efc291A46199\",\n \"80094\": \"0x3d4BA2E0884aa488718476ca2FB8Efc291A46199\",\n name: \"safe.simulateTxAccessor\",\n },\n {\n \"80069\": \"0x9b35Af71d77eaf8d7e40252370304687390A1A52\",\n \"80094\": \"0x9b35Af71d77eaf8d7e40252370304687390A1A52\",\n name: \"safe.createCall\",\n },\n {\n \"80069\": \"0x4e59b44847b379578588920cA78FbF26c0B4956C\",\n \"80094\": \"0x4e59b44847b379578588920cA78FbF26c0B4956C\",\n name: \"other.create2\",\n },\n {\n \"80069\": \"0xcA11bde05977b3631167028862bE2a173976CA11\",\n \"80094\": \"0xcA11bde05977b3631167028862bE2a173976CA11\",\n name: \"other.multicall3\",\n },\n {\n \"80069\": \"0x000000000022D473030F116dDEE9F6B43aC78BA3\",\n \"80094\": \"0x000000000022D473030F116dDEE9F6B43aC78BA3\",\n name: \"other.permit2\",\n },\n {\n \"80069\": \"0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2\",\n \"80094\": \"0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2\",\n name: \"pol.rewardVaultHelper\",\n },\n {\n \"80069\": \"0x7f09Cf6958631513aF0400488F65c7B5c0313F52\",\n \"80094\": \"0xc8FD9a3fB3Dad4C22c9F8Cfa7cecC318A667A791\",\n name: \"pol.rewardAllocationFactory\",\n },\n {\n \"80069\": \"0xba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1b\",\n \"80094\": \"0xba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1b\",\n name: \"bex.balancerDelegatedOwnership\",\n },\n {\n \"80069\": \"0x0000000000000000000000000000000000000000\",\n \"80094\": \"0x1BDB1cf792419d2eaB5aBa8076B8f4257744fA58\",\n name: \"bex.aggregatorsRouter\",\n },\n {\n \"80069\": \"0x0000000000000000000000000000000000000000\",\n \"80094\": \"0x4AD3c5A427Af60F8Dd982023aE012233A66CA1f8\",\n name: \"bex.aggregatorsRouterExecutor\",\n },\n {\n \"80069\": null,\n \"80094\": \"0x24aC999FF132B32c5b3956973b6213B0d07eB2C7\",\n name: \"bex.haikuRouter\",\n },\n {\n \"80069\": null,\n \"80094\": \"0x69495273D6Dc572A830A4D6e00400a1e9d5B8f71\",\n name: \"bex.haikuAgentAddress\",\n },\n {\n \"80069\": \"0x0eFeC4379805fAFA7269Ec599a6921f388C8841a\",\n \"80094\": \"0xB5787B8f7b07a00229b617c4B7a616185857C147\",\n name: \"bex.recoverFundsContract\",\n },\n {\n \"80069\": \"0x5CA67e134c52B1d11E038A5a4eD8Ddcdb1238943\",\n \"80094\": \"0x5CA67e134c52B1d11E038A5a4eD8Ddcdb1238943\",\n name: \"honey.pythOracle\",\n },\n {\n \"80069\": \"0xE5Ad9BA751714ec8cdd554b5a9f12BFcA13980cB\",\n \"80094\": \"0xF5686e448BE103beA465105bEb9d284a34ae7e95\",\n name: \"honey.pythWrapper\",\n },\n {\n \"80069\": \"0x2880aB155794e7179c9eE2e38200202908C17B43\",\n \"80094\": \"0x2880aB155794e7179c9eE2e38200202908C17B43\",\n name: \"external.pyth\",\n },\n {\n \"80069\": null,\n \"80094\": \"0xC5FabF3a7E98a2ed89f5d5057Ab010634Ca7e71f\",\n name: \"bend.staging.morpho\",\n },\n {\n \"80069\": null,\n \"80094\": \"0x1d5376e532CcF25b740270624111D665830E5dB9\",\n name: \"bend.staging.adaptiveCurveIrm\",\n },\n {\n \"80069\": null,\n \"80094\": \"0x524061B659380a5e4576d76F0951303B20B5932f\",\n name: \"bend.staging.metaMorphoFactory\",\n },\n {\n \"80069\": null,\n \"80094\": \"0xFD6e68bC20be2a01Ec1Df687c83f927087D52811\",\n name: \"bend.staging.publicAllocator\",\n },\n {\n \"80069\": null,\n \"80094\": \"0x56811e1BFfF951B98c7940d3aCe0e549Ec4fDee8\",\n name: \"bend.staging.bundler3\",\n },\n {\n \"80069\": null,\n \"80094\": \"0x257a41E20BBfe90D750646C2e00bA700D55958C5\",\n name: \"bend.staging.generalAdapter1\",\n },\n {\n \"80094\": \"0x19DcFf4e8Ff0B554D8a1f22d289A449fd4FbddBa\",\n name: \"bend.staging.supportedVaults.0\",\n },\n {\n \"80094\": \"0xC0808A144CE2ea85bF84EBD1dDF5D59429f59dDE\",\n name: \"bend.staging.supportedVaults.1\",\n },\n {\n \"80069\": null,\n \"80094\": \"0xc914a663837eb21c5a650716e015659686597e55\",\n name: \"enso.walletV2Factory\",\n },\n {\n \"80069\": null,\n \"80094\": \"0x5dE09823D9143886896507107590d9859F3E390b\",\n name: \"enso.walletFlashloanAdapter\",\n },\n] as const;\n","import type { IHoneySwapState } from \"../hooks/honey/useHoneySwapState\";\nimport { formatNumber } from \"./formatNumber\";\n\n/**\n * Get the message shown in the transaction confirmation modal for honey swaps\n * @returns {string} The message\n */\nexport function getHoneySwapMessage({\n collaterals,\n actionType,\n toAmount,\n fromAmount,\n isBasketModeEnabled,\n}: Pick<\n IHoneySwapState,\n | \"collaterals\"\n | \"actionType\"\n | \"toAmount\"\n | \"fromAmount\"\n | \"isBasketModeEnabled\"\n>): string {\n if (collaterals.length > 0) {\n if (actionType === \"mint\") {\n const msg = [\"Minting\"];\n msg.push(formatNumber(Number(toAmount[0]), 5));\n msg.push(\"Honey from\");\n if (isBasketModeEnabled) {\n for (const idx in collaterals) {\n msg.push(formatNumber(Number(fromAmount[idx]), 5));\n msg.push(`${collaterals[idx].symbol}`);\n if (+idx < collaterals.length - 2) {\n msg[msg.length - 1] = msg[msg.length - 1].concat(\",\");\n } else if (+idx === collaterals.length - 1) {\n msg[msg.length - 1] = msg[msg.length - 1].concat(\".\");\n } else {\n msg.push(\"and\");\n }\n }\n } else {\n msg.push(formatNumber(Number(fromAmount[0]), 5));\n msg.push(`${collaterals[0].symbol}`);\n }\n return msg.join(\" \");\n }\n const msg = [\"Redeeming\"];\n if (isBasketModeEnabled) {\n for (const idx in collaterals) {\n msg.push(formatNumber(Number(toAmount[idx]), 5));\n msg.push(`${collaterals[idx].symbol}`);\n if (+idx < collaterals.length - 2) {\n msg[msg.length - 1] = msg[msg.length - 1].concat(\",\");\n } else if (+idx === collaterals.length - 1) {\n msg.push(\"for\");\n msg.push(formatNumber(Number(fromAmount[0]), 5));\n msg.push(\"Honey.\");\n } else {\n msg.push(\"and\");\n }\n }\n } else {\n msg.push(formatNumber(Number(toAmount[0]), 5));\n msg.push(`${collaterals[0].symbol}`);\n msg.push(\"for\");\n msg.push(formatNumber(Number(fromAmount[0]), 5));\n msg.push(\"Honey.\");\n }\n return msg.join(\" \");\n }\n return \"\";\n}\n","import { createPublicClient, fallback, http, type PublicClient } from \"viem\";\nimport { berachain, berachainBepolia } from \"viem/chains\";\n\nimport {\n ChainId,\n defaultChainId,\n getRpcUrls,\n} from \"@berachain/config/internal\";\n\n/**\n * This is a singleton to avoid creating a new client for each request.\n *\n * A single client manages batch requests when parallel requests are made on different instances.\n */\nconst _clients: Map<ChainId, PublicClient> = new Map();\n\nexport const getServerSidePublicClient = (\n args: { chainId?: ChainId } = {},\n): PublicClient => {\n const chainId: ChainId = args.chainId ?? defaultChainId;\n\n if (_clients.has(chainId)) {\n return _clients.get(chainId)!;\n }\n\n const rpcs = getRpcUrls(chainId);\n const fallbackTransports = [\n rpcs.privateRcpUrl,\n rpcs.jsonRpcUrl,\n rpcs.alchemyJsonRpcUrl,\n rpcs.publicJsonRpcUrl,\n ]\n .filter((i) => i)\n .map((url) => http(url));\n\n if (fallbackTransports.length === 0) {\n fallbackTransports.push(http());\n }\n const chain = chainId === ChainId.MAINNET ? berachain : berachainBepolia;\n const client = createPublicClient({\n chain,\n transport: fallback(fallbackTransports),\n });\n\n _clients.set(chainId, client);\n\n return client;\n};\n","import BigNumber from \"@berachain/utils/pkg/bignumber.js\";\n\nexport const isDifferenceExceedingThreshold = (\n initialAmount: string,\n newAmount: string,\n threshold: number,\n) => {\n const upperBound = new BigNumber(1 + threshold).times(initialAmount);\n const lowerBound = new BigNumber(1 - threshold).times(initialAmount);\n return (\n upperBound.isLessThan(newAmount) || lowerBound.isGreaterThan(newAmount)\n );\n};\n","export function isSubgraphStale({\n lastBlockTimestamp,\n blockTime,\n}: {\n lastBlockTimestamp: number | null | undefined;\n blockTime: number;\n}) {\n if (!lastBlockTimestamp) return true;\n return lastBlockTimestamp < Date.now() / 1000 - blockTime * 10;\n}\n","import { BeraError } from \"../errors/BeraError\";\nimport { InvalidArgumentError } from \"../errors/InvalidArgumentError\";\nimport { RequestError } from \"../errors/RequestError\";\nimport { beraFetchJson } from \"./beraFetch\";\n\nconst LAYERZERO_SCAN_MAINNET_URL = \"https://api-mainnet.layerzero-scan.com\";\n\nexport enum LayerZeroMessageStatus {\n INFLIGHT = \"INFLIGHT\",\n DELIVERED = \"DELIVERED\",\n FAILED = \"FAILED\",\n}\n\nexport type LayerZeroMessage = {\n srcUaAddress: string;\n dstUaAddress: string;\n srcChainId: number;\n dstChainId: number;\n dstTxHash?: string;\n dstTxError?: string;\n srcTxHash?: string;\n srcBlockHash?: string;\n srcBlockNumber?: string;\n srcUaNonce: number;\n status: LayerZeroMessageStatus;\n};\n\nexport type LayerZeroDeliveredMessage = LayerZeroMessage & {\n dstTxHash: string;\n};\n\ntype GetMessagesBySrcTxHashResponse = {\n messages: LayerZeroMessage[];\n};\n\nconst sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));\n\nasync function getMessagesBySrcTxHash(\n srcTxHash: string,\n): Promise<GetMessagesBySrcTxHashResponse> {\n return beraFetchJson<GetMessagesBySrcTxHashResponse>({\n url: `${LAYERZERO_SCAN_MAINNET_URL}/tx/${srcTxHash}`,\n type: \"rest\",\n name: \"LayerZero Scan\",\n });\n}\n\nexport type WaitForMessageReceivedOptions = {\n pollInterval?: number;\n timeout?: number;\n};\n\n/**\n * Polls LayerZero scan API until the cross-chain message is delivered or fails.\n * HTTP errors are silently retried until timeout.\n *\n * @param srcTxHash - The source transaction hash to track\n * @param options - Configuration options\n * @param options.pollInterval - Polling interval in ms (default: 3000)\n * @param options.timeout - Timeout in ms (default: 600000 / 10 minutes)\n * @returns The delivered message with destination tx hash\n * @throws InvalidArgumentError if srcTxHash is missing\n * @throws BeraError if message fails, times out, or multiple messages found\n */\nexport async function waitForLayerZeroMessageReceived(\n srcTxHash: string,\n options: WaitForMessageReceivedOptions = {},\n): Promise<LayerZeroDeliveredMessage> {\n const { pollInterval = 3000, timeout = 600_000 } = options;\n\n if (!srcTxHash) {\n throw new InvalidArgumentError({\n property: \"srcTxHash\",\n value: srcTxHash,\n expected: \"string\",\n });\n }\n\n const startTime = Date.now();\n\n while (true) {\n // check timeout\n if (Date.now() - startTime > timeout) {\n throw new BeraError({\n message: `LayerZero message tracking timed out after ${timeout}ms`,\n reason: \"LAYERZERO_TIMEOUT\",\n level: \"warning\",\n });\n }\n\n try {\n const { messages } = await getMessagesBySrcTxHash(srcTxHash);\n const message = messages[0];\n\n if (messages.length > 1) {\n throw new BeraError({\n message: \"More than one LayerZero message found for transaction\",\n reason: \"LAYERZERO_MULTIPLE_MESSAGES\",\n });\n }\n\n if (message?.status === LayerZeroMessageStatus.FAILED) {\n throw new BeraError({\n message: `LayerZero message failed: ${message.dstTxError}`,\n reason: \"LAYERZERO_MESSAGE_FAILED\",\n });\n }\n\n if (message?.status === LayerZeroMessageStatus.DELIVERED) {\n return message as LayerZeroDeliveredMessage;\n }\n } catch (error) {\n // re-throw non-retryable errors (validation, timeout, failed message)\n // but allow RequestError to retry (network issues, temporary API errors)\n if (error instanceof BeraError && !(error instanceof RequestError)) {\n throw error;\n }\n }\n\n await sleep(pollInterval);\n }\n}\n","import type { TokenInfoFragmentFragment } from \"@berachain/graphql/bend/whisk\";\n\nimport type { TokenWithMetadata } from \"../types/dex\";\n\n/**\n * Parse a token from the Whisk API into a TokenWithMetadata object.\n *\n * @returns\n */\nexport function parseWhiskToken(token: TokenInfoFragmentFragment) {\n return {\n ...token,\n chainId: token.chain.id,\n } as const satisfies TokenWithMetadata;\n}\n","/**\n * Truncate a transaction or address hash and optionally format with uppercase letters and a lowercase 'x'.\n */\nexport const truncateHash = (\n address: `0x${string}` | string,\n startLength = 4,\n endLength = 4,\n formatUppercase = false,\n) => {\n if (!address) return \"\";\n\n const formattedAddress = formatUppercase\n ? address.toUpperCase().replace(/^0X/, \"0x\")\n : address;\n\n return `${formattedAddress.substring(\n 0,\n startLength,\n )}...${formattedAddress.substring(formattedAddress.length - endLength)}`;\n};\n","import { GqlValidatorBlockUptimeStatus } from \"@berachain/graphql/pol/api\";\n\n/**\n * Determines if a validator was the proposer for a specific block.\n * The proposer is responsible for creating and proposing new blocks to the network.\n *\n * @param status - The validator's block uptime status from the GraphQL API\n * @returns boolean\n */\nexport function isValidatorProposer(\n status: GqlValidatorBlockUptimeStatus | undefined,\n): boolean | undefined {\n if (!status) return undefined;\n return status === GqlValidatorBlockUptimeStatus.Proposed;\n}\n\n/**\n * Determines if a validator signed a specific block.\n * Block signers participate in consensus by validating and signing blocks.\n *\n * @param status - The validator's block uptime status from the GraphQL API\n * @returns boolean\n *\n */\nexport function isValidatorSigner(\n status: GqlValidatorBlockUptimeStatus | undefined,\n): boolean | undefined {\n if (!status) return undefined;\n return status === GqlValidatorBlockUptimeStatus.Signed;\n}\n"],"mappings":"yeAAO,IAAMA,GAAyBC,GAAuB,CAC3D,GAAIA,IAAe,IAAK,OAAOA,EAE/B,IAAIC,EAAgBD,EAAW,QAAQ,MAAO,EAAE,EAAE,WAAW,WAAY,EAAE,EAG3E,OAAIC,EAAc,WAAW,GAAG,IAC9BA,EAAgB,IAAIA,CAAa,IAG5BA,CACT,ECRO,SAASC,GACdC,EACAC,EACQ,CACR,IAAMC,EAAmBD,EACrB,CAAE,sBAAuB,EAAG,sBAAuB,CAAE,EACrD,CAAC,EACCE,EAAY,IAAI,KAAK,aAAa,QAAS,CAC/C,MAAO,WACP,SAAU,MACV,GAAGD,CACL,CAAC,EACD,GAAI,CACF,IAAME,EAAYC,GAChB,OAAOA,GAAU,SACbC,EAAYD,GAChB,OAAOA,GAAU,SAEnB,GAAI,CAACD,EAASJ,CAAK,GAAK,CAACM,EAASN,CAAK,EACrC,OAAOG,EAAU,OAAO,CAAC,EAG3B,IAAII,EAEJ,OAAID,EAASN,CAAK,GAChBO,EAAM,OAAO,WAAWP,CAAK,EAEzB,OAAO,MAAMO,CAAG,IAClBA,EAAM,KAGRA,EAAMP,EAEF,OAAO,MAAMO,CAAG,IAClBA,EAAM,IAGHJ,EAAU,OAAOI,CAAG,CAC7B,OAASC,EAAG,CACV,eAAQ,IAAIA,CAAC,EACNL,EAAU,OAAO,CAAC,CAC3B,CACF,CC3CA,OAAuB,kBAAAM,MAAsB,6BCEtC,IAAMC,EAAY,CACvB,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,aACR,EACA,CACE,MAAS,6CACT,KAAM,gBACR,EACA,CACE,MAAS,6CACT,KAAM,gBACR,EACA,CACE,MAAS,6CACT,KAAM,eACR,EACA,CACE,MAAS,6CACT,KAAM,gBACR,EACA,CACE,MAAS,6CACT,KAAM,gBACR,EACA,CACE,MAAS,6CACT,KAAM,eACR,EACA,CACE,MAAS,GACT,MAAS,6CACT,KAAM,aACR,EACA,CACE,MAAS,GACT,MAAS,6CACT,KAAM,uBACR,EACA,CACE,MAAS,GACT,MAAS,6CACT,KAAM,eACR,EACA,CACE,MAAS,GACT,MAAS,6CACT,KAAM,sBACR,EACA,CACE,MAAS,GACT,MAAS,6CACT,KAAM,4BACR,EACA,CACE,MAAS,GACT,MAAS,6CACT,KAAM,yBACR,EACA,CACE,MAAS,GACT,MAAS,6CACT,KAAM,sBACR,EACA,CACE,MAAS,GACT,MAAS,6CACT,KAAM,qCACR,EACA,CACE,MAAS,GACT,MAAS,6CACT,KAAM,iBACR,EACA,CACE,MAAS,GACT,MAAS,6CACT,KAAM,2BACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,6BACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,8BACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,sBACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,mBACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,cACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,2BACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,iBACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,wBACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,eACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,kBACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,gBACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,cACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,0CACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,uCACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,8BACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,YACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,cACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,qBACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,2BACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,cACR,EACA,CACE,MAAS,GACT,MAAS,6CACT,KAAM,aACR,EACA,CACE,MAAS,GACT,MAAS,6CACT,KAAM,aACR,EACA,CACE,MAAS,GACT,MAAS,6CACT,KAAM,aACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,WACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,2BACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,qBACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,wBACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,4BACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,uBACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,yBACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,8BACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,qBACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,yBACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,oCACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,qBACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,gBACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,WACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,uBACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,gBACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,wBACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,mCACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,qBACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,yBACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,iBACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,eACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,kBACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,eACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,uBACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,6BACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,gCACR,EACA,CACE,MAAS,6CACT,MAAS,6CACT,KAAM,uBACR,EACA,C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","names":["formatInputTokenValue","inputValue","filteredValue","formatUsd","input","hideDecimals","decimalsSettings","formatter","isNumber","value","isString","num","e","defaultChainId","contracts","getContractName","address","chainId","defaultChainId","contracts","contract","getHoneySwapMessage","collaterals","actionType","toAmount","fromAmount","isBasketModeEnabled","msg","formatNumber","idx","createPublicClient","fallback","http","berachain","berachainBepolia","ChainId","defaultChainId","getRpcUrls","_clients","getServerSidePublicClient","args","chainId","rpcs","fallbackTransports","i","url","chain","client","isDifferenceExceedingThreshold","initialAmount","newAmount","threshold","upperBound","bignumber_js_default","lowerBound","isSubgraphStale","lastBlockTimestamp","blockTime","LAYERZERO_SCAN_MAINNET_URL","LayerZeroMessageStatus","sleep","ms","resolve","getMessagesBySrcTxHash","srcTxHash","beraFetchJson","waitForLayerZeroMessageReceived","options","pollInterval","timeout","InvalidArgumentError","startTime","BeraError","messages","message","error","RequestError","parseWhiskToken","token","truncateHash","address","startLength","endLength","formatUppercase","formattedAddress","GqlValidatorBlockUptimeStatus","isValidatorProposer","status","isValidatorSigner"]}
|
|
1
|
+
{"version":3,"sources":["../../src/utils/formatInputTokenValue.ts","../../src/utils/formatUsd.ts","../../src/utils/getContractName.ts","../../src/data/contracts.ts","../../src/utils/getHoneySwapMessage.ts","../../src/utils/getServerSideClient.ts","../../src/utils/isDifferenceExceedingThreshold.ts","../../src/utils/isSubgraphStale.ts","../../src/utils/layerZeroScan.ts","../../src/utils/parseWhiskToken.ts","../../src/utils/truncateHash.ts","../../src/utils/validatorUptimeStatus.ts"],"sourcesContent":["export const formatInputTokenValue = (inputValue: string) => {\n if (inputValue === \"0\") return inputValue;\n // Remove all non-numeric characters except for the decimal point, and remove leading zeros\n let filteredValue = inputValue.replace(/^0+/, \"\").replaceAll(/[^0-9.]/g, \"\");\n\n // Keep the 0\n if (filteredValue.startsWith(\".\")) {\n filteredValue = `0${filteredValue}`;\n }\n\n return filteredValue;\n};\n","/**\n * @deprecated use the FormattedNumber component instead\n */\nexport function formatUsd(\n input: string | number,\n hideDecimals?: boolean,\n): string {\n const decimalsSettings = hideDecimals\n ? { minimumFractionDigits: 0, maximumFractionDigits: 0 }\n : {};\n const formatter = new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n ...decimalsSettings,\n });\n try {\n const isNumber = (value: unknown): value is number =>\n typeof value === \"number\";\n const isString = (value: unknown): value is string =>\n typeof value === \"string\";\n\n if (!isNumber(input) && !isString(input)) {\n return formatter.format(0);\n }\n\n let num: number;\n\n if (isString(input)) {\n num = Number.parseFloat(input);\n\n if (Number.isNaN(num)) {\n num = 0;\n }\n } else {\n num = input;\n\n if (Number.isNaN(num)) {\n num = 0;\n }\n }\n return formatter.format(num);\n } catch (e) {\n console.log(e);\n return formatter.format(0);\n }\n}\n","import type { Address } from \"viem\";\n\nimport { type ChainId, defaultChainId } from \"@berachain/config/internal\";\n\nimport { contracts } from \"../data/contracts\";\n\n/**\n * Get a human readable name for a contract address.\n */\nexport function getContractName({\n address,\n chainId = defaultChainId,\n}: {\n address: Address | undefined;\n chainId?: ChainId | \"name\";\n}): string | undefined {\n if (!address) {\n return undefined;\n }\n\n const contract = contracts.find((contract) => {\n const contractAddress = contract[chainId as keyof typeof contract];\n return contractAddress?.toLowerCase() === address.toLowerCase();\n });\n\n return contract?.name;\n}\n","/**\n * This file is generated by the getContractNames.js script.\n * Do not edit this file manually, run `pnpm contracts:update` to update it.\n */\nexport const contracts = [\n {\n \"80069\": \"0x0000000000000000000000000000000000000000\",\n \"80094\": \"0x0000000000000000000000000000000000000000\",\n name: \"zeroAddress\",\n },\n {\n \"80094\": \"0x141De07E5D4C4759EC9301DA106115D4841f66cD\",\n name: \"nfts.bongBears\",\n },\n {\n \"80094\": \"0xA0CF472E6132F6B822a944f6F31aA7b261c7c375\",\n name: \"nfts.bondBears\",\n },\n {\n \"80094\": \"0xf49ec5db255854C4a567de5AB3826c9AAbaFc7cF\",\n name: \"nfts.booBears\",\n },\n {\n \"80094\": \"0xDDeAf391c4be2d01ca52aBb8C159a06820ef078C\",\n name: \"nfts.babyBears\",\n },\n {\n \"80094\": \"0x7711B2Eb2451259dbF211e30157ceB7CFeb79a19\",\n name: \"nfts.bandBears\",\n },\n {\n \"80094\": \"0x72D876D9cdf4001b836f8E47254d0551EdA2eebB\",\n name: \"nfts.bitBears\",\n },\n {\n \"80069\": \"\",\n \"80094\": \"0x24147243f9c08d835C218Cda1e135f8dFD0517D0\",\n name: \"bend.morpho\",\n },\n {\n \"80069\": \"\",\n \"80094\": \"0xcf247Df3A2322Dea0D408f011c194906E77a6f62\",\n name: \"bend.adaptiveCurveIrm\",\n },\n {\n \"80069\": \"\",\n \"80094\": \"0xF920140A65D0f412f2AB3e76C4fEAB5Eef0657ae\",\n name: \"bend.bundler3\",\n },\n {\n \"80069\": \"\",\n \"80094\": \"0xd2B9667F5214115E27937C410cAeE83E3a901Df7\",\n name: \"bend.generalAdapter1\",\n },\n {\n \"80069\": \"\",\n \"80094\": \"0x5EDd48C6ACBd565Eeb31702FD9fa9Cbc86fbE616\",\n name: \"bend.metaMorphoFactoryV1_1\",\n },\n {\n \"80069\": \"\",\n \"80094\": \"0x80108Ee81A92091Db6B8B2326B1875ce9388f461\",\n name: \"bend.metaFeePartitioner\",\n },\n {\n \"80069\": \"\",\n \"80094\": \"0xB62F34Ab315eaDeAc698e8EaEB6Fc2650951BFe7\",\n name: \"bend.publicAllocator\",\n },\n {\n \"80069\": \"\",\n \"80094\": \"0xAf2FDC54f7bc9d6e8C2D2760E908f4e1beB04d9E\",\n name: \"bend.morphoChainlinkOracleV2Factory\",\n },\n {\n \"80069\": \"\",\n \"80094\": \"0x46fE2bc33b661E01A8946BbC3Bf43F2B8382d802\",\n name: \"bend.urdFactory\",\n },\n {\n \"80069\": \"\",\n \"80094\": \"0x30BbA9CD9Eb8c95824aa42Faa1Bb397b07545bc1\",\n name: \"bend.vaults.re7HoneyVault\",\n },\n {\n \"80069\": \"0xb0d005Fe83E3F1ec876C1a64700c5F0d6265d9E3\",\n \"80094\": \"0x77DA09bC82652f9A14d1b170a001e759640298e6\",\n name: \"pol.bgtIncentiveDistributor\",\n },\n {\n \"80069\": \"0x1984Baf659607Cc5f206c55BB3B00eb3E180190B\",\n \"80094\": \"0x1984Baf659607Cc5f206c55BB3B00eb3E180190B\",\n name: \"pol.bgtIncentiveFeeCollector\",\n },\n {\n \"80069\": \"0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a\",\n \"80094\": \"0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a\",\n name: \"pol.wberaStakerVault\",\n },\n {\n \"80069\": \"0x4242424242424242424242424242424242424242\",\n \"80094\": \"0x4242424242424242424242424242424242424242\",\n name: \"pol.beaconDeposit\",\n },\n {\n \"80069\": \"0xdf960E8F3F19C481dDE769edEDD439ea1a63426a\",\n \"80094\": \"0xdf960E8F3F19C481dDE769edEDD439ea1a63426a\",\n name: \"pol.berachef\",\n },\n {\n \"80069\": \"0x1AE7dD7AE06F6C58B4524d9c1f816094B1bcCD8e\",\n \"80094\": \"0x1AE7dD7AE06F6C58B4524d9c1f816094B1bcCD8e\",\n name: \"pol.blockRewardController\",\n },\n {\n \"80069\": \"0xD2f19a79b026Fb636A7c300bF5947df113940761\",\n \"80094\": \"0xD2f19a79b026Fb636A7c300bF5947df113940761\",\n name: \"pol.distributor\",\n },\n {\n \"80069\": \"0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8\",\n \"80094\": \"0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8\",\n name: \"pol.rewardVaultFactory\",\n },\n {\n \"80069\": \"0x44F07Ce5AfeCbCC406e6beFD40cc2998eEb8c7C6\",\n \"80094\": \"0x44F07Ce5AfeCbCC406e6beFD40cc2998eEb8c7C6\",\n name: \"pol.bgtStaker\",\n },\n {\n \"80069\": \"0x7bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650\",\n \"80094\": \"0x7Bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650\",\n name: \"pol.feeCollector\",\n },\n {\n \"80069\": \"0x4f4A5c2194B8e856b7a05B348F6ba3978FB6f6D5\",\n \"80094\": \"0x4f4A5c2194B8e856b7a05B348F6ba3978FB6f6D5\",\n name: \"pol.governance\",\n },\n {\n \"80069\": \"0xb5f2000b5744f207c931526cAE2134cAa8b6862a\",\n \"80094\": \"0xb5f2000b5744f207c931526cAE2134cAa8b6862a\",\n name: \"pol.timelock\",\n },\n {\n \"80069\": \"0x176c081E95C82CA68DEa20CA419C7506Aa063C24\",\n \"80094\": \"0xb79b43dBA821Cb67751276Ce050fF4111445fB99\",\n name: \"stakingPools.stakingPoolContractsFactory\",\n },\n {\n \"80069\": \"0x8b472791aC2f9e9Bd85f8919401b8Ce3bdFd464c\",\n \"80094\": \"0xAd17932a5B1aaeEa73D277a6AE670623F176E0D0\",\n name: \"stakingPools.delegationHandlerFactory\",\n },\n {\n \"80069\": \"0xAFAc2f11Cb39F0521b22494F6101002ce653D2f4\",\n \"80094\": \"0xE858802Ed532C6DAD2D196AB5B1F2C15F9cb52b4\",\n name: \"stakingPools.withdrawalVault\",\n },\n {\n \"80069\": \"0x656b95E550C07a9ffe548bd4085c72418Ceb1dba\",\n \"80094\": \"0x656b95E550C07a9ffe548bd4085c72418Ceb1dba\",\n name: \"tokens.bgt\",\n },\n {\n \"80069\": \"0xFCBD14DC51f0A4d49d5E53C2E0950e0bC26d0Dce\",\n \"80094\": \"0xFCBD14DC51f0A4d49d5E53C2E0950e0bC26d0Dce\",\n name: \"tokens.honey\",\n },\n {\n \"80069\": \"0xA4aFef880F5cE1f63c9fb48F661E27F8B4216401\",\n \"80094\": \"0xA4aFef880F5cE1f63c9fb48F661E27F8B4216401\",\n name: \"tokens.honeyFactory\",\n },\n {\n \"80069\": \"0x285e147060CDc5ba902786d3A471224ee6cE0F91\",\n \"80094\": \"0x285e147060CDc5ba902786d3A471224ee6cE0F91\",\n name: \"tokens.honeyFactoryReader\",\n },\n {\n \"80069\": \"0x6969696969696969696969696969696969696969\",\n \"80094\": \"0x6969696969696969696969696969696969696969\",\n name: \"tokens.wbera\",\n },\n {\n \"80069\": \"\",\n \"80094\": \"0x549943e04f40284185054145c6E4e9568C1D3241\",\n name: \"tokens.usdc\",\n },\n {\n \"80069\": \"\",\n \"80094\": \"0x0555E30da8f98308EdB960aa94C0Db47230d2B9c\",\n name: \"tokens.wbtc\",\n },\n {\n \"80069\": \"\",\n \"80094\": \"0x2F6F07CDcf3588944Bf4C42aC74ff24bF56e7590\",\n name: \"tokens.weth\",\n },\n {\n \"80069\": \"0x708cA656b68A6b7384a488A36aD33505a77241FE\",\n \"80094\": \"0x4Be03f781C497A489E3cB0287833452cA9B9E80B\",\n name: \"bex.vault\",\n },\n {\n \"80069\": \"0x05A607aCf3548E84DD1E44c3706F850c849058Da\",\n \"80094\": \"0xB8Cf46Cf1b1476E707619913a70B2085d26f1707\",\n name: \"bex.protocolFeesCollector\",\n },\n {\n \"80069\": \"0xC7c981ADcDC5d48fed0CD52807fb2bAB22676C8f\",\n \"80094\": \"0x5083737EC75a728c265BE578C9d0d5333a2c5951\",\n name: \"bex.balancerHelpers\",\n },\n {\n \"80069\": \"0x0dC9964F6CA33d9EF38DEB4925234766127C6B36\",\n \"80094\": \"0x55dccE8165C88aAd4403a15A9cE3A8E244657dD2\",\n name: \"bex.poolCreationHelper\",\n },\n {\n \"80069\": \"0x8c2D77f0CfcD4Af9cF41494EfE500FE324012c06\",\n \"80094\": \"0x1635F0E1B3e8A6713d03aE155ba79458Ba3240C7\",\n name: \"bex.protocolFeesWithdrawer\",\n },\n {\n \"80069\": \"0xB60DbBaCEaeC23486a64d12089F467ef949f1bb1\",\n \"80094\": \"0xDfA30BDa0375d4763711AB0CC8D91B20bfCC87E1\",\n name: \"bex.stablePoolFactory\",\n },\n {\n \"80069\": \"0xfD772657FC8c4Ed3884AfF151b680883814052FA\",\n \"80094\": \"0xCB4AE3030bA06F7EEE54A7B96AfcA7457f9525cf\",\n name: \"bex.batchRelayerLibrary\",\n },\n {\n \"80069\": \"0x263a1C5B2c5851beA2177eb8D6caefdfF2A25601\",\n \"80094\": \"0x4151083172b2CEFB83A33fD7FC9F6cBabb3Fd08d\",\n name: \"bex.batchRelayerQueryLibrary\",\n },\n {\n \"80069\": \"0x343215E156Ff586711a5B8C49Fe3099BAF22624C\",\n \"80094\": \"0x6044f181aB5E9C05A4ed9Ce295f3B178d2492EE7\",\n name: \"bex.balancerRelayer\",\n },\n {\n \"80069\": \"0xf1d23276C7b271B2aC595C78977b2312E9954D57\",\n \"80094\": \"0xa966fA8F2d5B087FFFA499C0C1240589371Af409\",\n name: \"bex.weightedPoolFactory\",\n },\n {\n \"80069\": \"0x8119E412E00fe3c857739E95dB147817Bf615dB8\",\n \"80094\": \"0x33C88ffdEe710ed3908C791137Bd1D4421AabBBf\",\n name: \"bex.protocolFeePercentagesProvider\",\n },\n {\n \"80069\": \"0xE3723383a0EA73D5c0dE424BAA97F97f86f6cF92\",\n \"80094\": \"0x3C612e132624f4Bd500eE1495F54565F0bcc9b59\",\n name: \"bex.balancerQueries\",\n },\n {\n \"80069\": \"0x1453b808C88AAa5e5965f8d86123921E96F045Aa\",\n \"80094\": \"0x71047aE39A7aA4f7d923542F459e50B974644Ef2\",\n name: \"bex.authorizer\",\n },\n {\n \"80069\": \"0x41675C099F32341bf84BFc5382aF534df5C7461a\",\n \"80094\": \"0x41675C099F32341bf84BFc5382aF534df5C7461a\",\n name: \"safe.safe\",\n },\n {\n \"80069\": \"0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67\",\n \"80094\": \"0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67\",\n name: \"safe.safeProxyFactory\",\n },\n {\n \"80069\": \"0x38869bf66a61cF6bDB996A6aE40D5853Fd43B526\",\n \"80094\": \"0x38869bf66a61cF6bDB996A6aE40D5853Fd43B526\",\n name: \"safe.multiSend\",\n },\n {\n \"80069\": \"0x9641d764fc13c8B624c04430C7356C1C7C8102e2\",\n \"80094\": \"0x9641d764fc13c8B624c04430C7356C1C7C8102e2\",\n name: \"safe.multiSendCallOnly\",\n },\n {\n \"80069\": \"0xfd0732Dc9E303f09fCEf3a7388Ad10A83459Ec99\",\n \"80094\": \"0xfd0732Dc9E303f09fCEf3a7388Ad10A83459Ec99\",\n name: \"safe.compatibilityFallbackHandler\",\n },\n {\n \"80069\": \"0xd53cd0aB83D845Ac265BE939c57F53AD838012c9\",\n \"80094\": \"0xd53cd0aB83D845Ac265BE939c57F53AD838012c9\",\n name: \"safe.signMessageLib\",\n },\n {\n \"80069\": \"0x3d4BA2E0884aa488718476ca2FB8Efc291A46199\",\n \"80094\": \"0x3d4BA2E0884aa488718476ca2FB8Efc291A46199\",\n name: \"safe.simulateTxAccessor\",\n },\n {\n \"80069\": \"0x9b35Af71d77eaf8d7e40252370304687390A1A52\",\n \"80094\": \"0x9b35Af71d77eaf8d7e40252370304687390A1A52\",\n name: \"safe.createCall\",\n },\n {\n \"80069\": \"0x4e59b44847b379578588920cA78FbF26c0B4956C\",\n \"80094\": \"0x4e59b44847b379578588920cA78FbF26c0B4956C\",\n name: \"other.create2\",\n },\n {\n \"80069\": \"0xcA11bde05977b3631167028862bE2a173976CA11\",\n \"80094\": \"0xcA11bde05977b3631167028862bE2a173976CA11\",\n name: \"other.multicall3\",\n },\n {\n \"80069\": \"0x000000000022D473030F116dDEE9F6B43aC78BA3\",\n \"80094\": \"0x000000000022D473030F116dDEE9F6B43aC78BA3\",\n name: \"other.permit2\",\n },\n {\n \"80069\": \"0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2\",\n \"80094\": \"0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2\",\n name: \"pol.rewardVaultHelper\",\n },\n {\n \"80069\": \"0x7f09Cf6958631513aF0400488F65c7B5c0313F52\",\n \"80094\": \"0xc8FD9a3fB3Dad4C22c9F8Cfa7cecC318A667A791\",\n name: \"pol.rewardAllocationFactory\",\n },\n {\n \"80069\": \"0xba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1b\",\n \"80094\": \"0xba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1ba1b\",\n name: \"bex.balancerDelegatedOwnership\",\n },\n {\n \"80069\": \"0x0000000000000000000000000000000000000000\",\n \"80094\": \"0x1BDB1cf792419d2eaB5aBa8076B8f4257744fA58\",\n name: \"bex.aggregatorsRouter\",\n },\n {\n \"80069\": \"0x0000000000000000000000000000000000000000\",\n \"80094\": \"0x4AD3c5A427Af60F8Dd982023aE012233A66CA1f8\",\n name: \"bex.aggregatorsRouterExecutor\",\n },\n {\n \"80069\": null,\n \"80094\": \"0x24aC999FF132B32c5b3956973b6213B0d07eB2C7\",\n name: \"bex.haikuRouter\",\n },\n {\n \"80069\": null,\n \"80094\": \"0x69495273D6Dc572A830A4D6e00400a1e9d5B8f71\",\n name: \"bex.haikuAgentAddress\",\n },\n {\n \"80069\": \"0x0eFeC4379805fAFA7269Ec599a6921f388C8841a\",\n \"80094\": \"0xB5787B8f7b07a00229b617c4B7a616185857C147\",\n name: \"bex.recoverFundsContract\",\n },\n {\n \"80069\": \"0x5CA67e134c52B1d11E038A5a4eD8Ddcdb1238943\",\n \"80094\": \"0x5CA67e134c52B1d11E038A5a4eD8Ddcdb1238943\",\n name: \"honey.pythOracle\",\n },\n {\n \"80069\": \"0xE5Ad9BA751714ec8cdd554b5a9f12BFcA13980cB\",\n \"80094\": \"0xF5686e448BE103beA465105bEb9d284a34ae7e95\",\n name: \"honey.pythWrapper\",\n },\n {\n \"80069\": \"0x2880aB155794e7179c9eE2e38200202908C17B43\",\n \"80094\": \"0x2880aB155794e7179c9eE2e38200202908C17B43\",\n name: \"external.pyth\",\n },\n {\n \"80069\": null,\n \"80094\": \"0xC5FabF3a7E98a2ed89f5d5057Ab010634Ca7e71f\",\n name: \"bend.staging.morpho\",\n },\n {\n \"80069\": null,\n \"80094\": \"0x1d5376e532CcF25b740270624111D665830E5dB9\",\n name: \"bend.staging.adaptiveCurveIrm\",\n },\n {\n \"80069\": null,\n \"80094\": \"0x524061B659380a5e4576d76F0951303B20B5932f\",\n name: \"bend.staging.metaMorphoFactory\",\n },\n {\n \"80069\": null,\n \"80094\": \"0xFD6e68bC20be2a01Ec1Df687c83f927087D52811\",\n name: \"bend.staging.publicAllocator\",\n },\n {\n \"80069\": null,\n \"80094\": \"0x56811e1BFfF951B98c7940d3aCe0e549Ec4fDee8\",\n name: \"bend.staging.bundler3\",\n },\n {\n \"80069\": null,\n \"80094\": \"0x257a41E20BBfe90D750646C2e00bA700D55958C5\",\n name: \"bend.staging.generalAdapter1\",\n },\n {\n \"80094\": \"0x19DcFf4e8Ff0B554D8a1f22d289A449fd4FbddBa\",\n name: \"bend.staging.supportedVaults.0\",\n },\n {\n \"80094\": \"0xC0808A144CE2ea85bF84EBD1dDF5D59429f59dDE\",\n name: \"bend.staging.supportedVaults.1\",\n },\n {\n \"80069\": null,\n \"80094\": \"0xc914a663837eb21c5a650716e015659686597e55\",\n name: \"enso.walletV2Factory\",\n },\n {\n \"80069\": null,\n \"80094\": \"0x5dE09823D9143886896507107590d9859F3E390b\",\n name: \"enso.walletFlashloanAdapter\",\n },\n] as const;\n","import type { IHoneySwapState } from \"../hooks/honey/useHoneySwapState\";\nimport { formatNumber } from \"./formatNumber\";\n\n/**\n * Get the message shown in the transaction confirmation modal for honey swaps\n * @returns {string} The message\n */\nexport function getHoneySwapMessage({\n collaterals,\n actionType,\n toAmount,\n fromAmount,\n isBasketModeEnabled,\n}: Pick<\n IHoneySwapState,\n | \"collaterals\"\n | \"actionType\"\n | \"toAmount\"\n | \"fromAmount\"\n | \"isBasketModeEnabled\"\n>): string {\n if (collaterals.length > 0) {\n if (actionType === \"mint\") {\n const msg = [\"Minting\"];\n msg.push(formatNumber(Number(toAmount[0]), 5));\n msg.push(\"Honey from\");\n if (isBasketModeEnabled) {\n for (const idx in collaterals) {\n msg.push(formatNumber(Number(fromAmount[idx]), 5));\n msg.push(`${collaterals[idx].symbol}`);\n if (+idx < collaterals.length - 2) {\n msg[msg.length - 1] = msg[msg.length - 1].concat(\",\");\n } else if (+idx === collaterals.length - 1) {\n msg[msg.length - 1] = msg[msg.length - 1].concat(\".\");\n } else {\n msg.push(\"and\");\n }\n }\n } else {\n msg.push(formatNumber(Number(fromAmount[0]), 5));\n msg.push(`${collaterals[0].symbol}`);\n }\n return msg.join(\" \");\n }\n const msg = [\"Redeeming\"];\n if (isBasketModeEnabled) {\n for (const idx in collaterals) {\n msg.push(formatNumber(Number(toAmount[idx]), 5));\n msg.push(`${collaterals[idx].symbol}`);\n if (+idx < collaterals.length - 2) {\n msg[msg.length - 1] = msg[msg.length - 1].concat(\",\");\n } else if (+idx === collaterals.length - 1) {\n msg.push(\"for\");\n msg.push(formatNumber(Number(fromAmount[0]), 5));\n msg.push(\"Honey.\");\n } else {\n msg.push(\"and\");\n }\n }\n } else {\n msg.push(formatNumber(Number(toAmount[0]), 5));\n msg.push(`${collaterals[0].symbol}`);\n msg.push(\"for\");\n msg.push(formatNumber(Number(fromAmount[0]), 5));\n msg.push(\"Honey.\");\n }\n return msg.join(\" \");\n }\n return \"\";\n}\n","import { createPublicClient, fallback, http, type PublicClient } from \"viem\";\nimport { berachain, berachainBepolia } from \"viem/chains\";\n\nimport {\n ChainId,\n defaultChainId,\n getRpcUrls,\n} from \"@berachain/config/internal\";\n\n/**\n * This is a singleton to avoid creating a new client for each request.\n *\n * A single client manages batch requests when parallel requests are made on different instances.\n */\nconst _clients: Map<ChainId, PublicClient> = new Map();\n\nexport const getServerSidePublicClient = (\n args: { chainId?: ChainId } = {},\n): PublicClient => {\n const chainId: ChainId = args.chainId ?? defaultChainId;\n\n if (_clients.has(chainId)) {\n return _clients.get(chainId)!;\n }\n\n const rpcs = getRpcUrls(chainId);\n const fallbackTransports = [\n rpcs.privateRcpUrl,\n rpcs.jsonRpcUrl,\n rpcs.alchemyJsonRpcUrl,\n rpcs.publicJsonRpcUrl,\n ]\n .filter((i) => i)\n .map((url) => http(url));\n\n if (fallbackTransports.length === 0) {\n fallbackTransports.push(http());\n }\n const chain = chainId === ChainId.MAINNET ? berachain : berachainBepolia;\n const client = createPublicClient({\n chain,\n transport: fallback(fallbackTransports),\n });\n\n _clients.set(chainId, client);\n\n return client;\n};\n","import BigNumber from \"@berachain/utils/pkg/bignumber.js\";\n\nexport const isDifferenceExceedingThreshold = (\n initialAmount: string,\n newAmount: string,\n threshold: number,\n) => {\n const upperBound = new BigNumber(1 + threshold).times(initialAmount);\n const lowerBound = new BigNumber(1 - threshold).times(initialAmount);\n return (\n upperBound.isLessThan(newAmount) || lowerBound.isGreaterThan(newAmount)\n );\n};\n","export function isSubgraphStale({\n lastBlockTimestamp,\n blockTime,\n}: {\n lastBlockTimestamp: number | null | undefined;\n blockTime: number;\n}) {\n if (!lastBlockTimestamp) return true;\n return lastBlockTimestamp < Date.now() / 1000 - blockTime * 10;\n}\n","import { BeraError } from \"../errors/BeraError\";\nimport { InvalidArgumentError } from \"../errors/InvalidArgumentError\";\nimport { RequestError } from \"../errors/RequestError\";\nimport { beraFetchJson } from \"./beraFetch\";\n\nconst LAYERZERO_SCAN_MAINNET_URL = \"https://api-mainnet.layerzero-scan.com\";\n\nexport enum LayerZeroMessageStatus {\n INFLIGHT = \"INFLIGHT\",\n DELIVERED = \"DELIVERED\",\n FAILED = \"FAILED\",\n}\n\nexport type LayerZeroMessage = {\n srcUaAddress: string;\n dstUaAddress: string;\n srcChainId: number;\n dstChainId: number;\n dstTxHash?: string;\n dstTxError?: string;\n srcTxHash?: string;\n srcBlockHash?: string;\n srcBlockNumber?: string;\n srcUaNonce: number;\n status: LayerZeroMessageStatus;\n};\n\nexport type LayerZeroDeliveredMessage = LayerZeroMessage & {\n dstTxHash: string;\n};\n\ntype GetMessagesBySrcTxHashResponse = {\n messages: LayerZeroMessage[];\n};\n\nconst sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));\n\nasync function getMessagesBySrcTxHash(\n srcTxHash: string,\n): Promise<GetMessagesBySrcTxHashResponse> {\n return beraFetchJson<GetMessagesBySrcTxHashResponse>({\n url: `${LAYERZERO_SCAN_MAINNET_URL}/tx/${srcTxHash}`,\n type: \"rest\",\n name: \"LayerZero Scan\",\n });\n}\n\nexport type WaitForMessageReceivedOptions = {\n pollInterval?: number;\n timeout?: number;\n};\n\n/**\n * Polls LayerZero scan API until the cross-chain message is delivered or fails.\n * HTTP errors are silently retried until timeout.\n *\n * @param srcTxHash - The source transaction hash to track\n * @param options - Configuration options\n * @param options.pollInterval - Polling interval in ms (default: 3000)\n * @param options.timeout - Timeout in ms (default: 600000 / 10 minutes)\n * @returns The delivered message with destination tx hash\n * @throws InvalidArgumentError if srcTxHash is missing\n * @throws BeraError if message fails, times out, or multiple messages found\n */\nexport async function waitForLayerZeroMessageReceived(\n srcTxHash: string,\n options: WaitForMessageReceivedOptions = {},\n): Promise<LayerZeroDeliveredMessage> {\n const { pollInterval = 3000, timeout = 600_000 } = options;\n\n if (!srcTxHash) {\n throw new InvalidArgumentError({\n property: \"srcTxHash\",\n value: srcTxHash,\n expected: \"string\",\n });\n }\n\n const startTime = Date.now();\n\n while (true) {\n // check timeout\n if (Date.now() - startTime > timeout) {\n throw new BeraError({\n message: `LayerZero message tracking timed out after ${timeout}ms`,\n reason: \"LAYERZERO_TIMEOUT\",\n level: \"warning\",\n });\n }\n\n try {\n const { messages } = await getMessagesBySrcTxHash(srcTxHash);\n const message = messages[0];\n\n if (messages.length > 1) {\n throw new BeraError({\n message: \"More than one LayerZero message found for transaction\",\n reason: \"LAYERZERO_MULTIPLE_MESSAGES\",\n });\n }\n\n if (message?.status === LayerZeroMessageStatus.FAILED) {\n throw new BeraError({\n message: `LayerZero message failed: ${message.dstTxError}`,\n reason: \"LAYERZERO_MESSAGE_FAILED\",\n });\n }\n\n if (message?.status === LayerZeroMessageStatus.DELIVERED) {\n return message as LayerZeroDeliveredMessage;\n }\n } catch (error) {\n // re-throw non-retryable errors (validation, timeout, failed message)\n // but allow RequestError to retry (network issues, temporary API errors)\n if (error instanceof BeraError && !(error instanceof RequestError)) {\n throw error;\n }\n }\n\n await sleep(pollInterval);\n }\n}\n","import type { TokenInfoFragmentFragment } from \"@berachain/graphql/bend/whisk\";\n\nimport type { TokenWithMetadata } from \"../types/dex\";\n\n/**\n * Parse a token from the Whisk API into a TokenWithMetadata object.\n *\n * @returns\n */\nexport function parseWhiskToken(token: TokenInfoFragmentFragment) {\n return {\n ...token,\n chainId: token.chain.id,\n } as const satisfies TokenWithMetadata;\n}\n","/**\n * Truncate a transaction or address hash and optionally format with uppercase letters and a lowercase 'x'.\n */\nexport const truncateHash = (\n address: `0x${string}` | string,\n startLength = 4,\n endLength = 4,\n formatUppercase = false,\n) => {\n if (!address) return \"\";\n\n const formattedAddress = formatUppercase\n ? address.toUpperCase().replace(/^0X/, \"0x\")\n : address;\n\n return `${formattedAddress.substring(\n 0,\n startLength,\n )}...${formattedAddress.substring(formattedAddress.length - endLength)}`;\n};\n","import { GqlValidatorBlockUptimeStatus } from \"@berachain/graphql/pol/api\";\n\n/**\n * Determines if a validator was the proposer for a specific block.\n * The proposer is responsible for creating and proposing new blocks to the network.\n *\n * @param status - The validator's block uptime status from the GraphQL API\n * @returns boolean\n */\nexport function isValidatorProposer(\n status: GqlValidatorBlockUptimeStatus | undefined,\n): boolean | undefined {\n if (!status) return undefined;\n return status === GqlValidatorBlockUptimeStatus.Proposed;\n}\n\n/**\n * Determines if a validator signed a specific block.\n * Block signers participate in consensus by validating and signing blocks.\n *\n * @param status - The validator's block uptime status from the GraphQL API\n * @returns boolean\n *\n */\nexport function isValidatorSigner(\n status: GqlValidatorBlockUptimeStatus | undefined,\n): boolean | undefined {\n if (!status) return undefined;\n return status === GqlValidatorBlockUptimeStatus.Signed;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,IAAM,wBAAwB,CAAC,eAAuB;AAC3D,MAAI,eAAe,IAAK,QAAO;AAE/B,MAAI,gBAAgB,WAAW,QAAQ,OAAO,EAAE,EAAE,WAAW,YAAY,EAAE;AAG3E,MAAI,cAAc,WAAW,GAAG,GAAG;AACjC,oBAAgB,IAAI,aAAa;AAAA,EACnC;AAEA,SAAO;AACT;;;ACRO,SAAS,UACd,OACA,cACQ;AACR,QAAM,mBAAmB,eACrB,EAAE,uBAAuB,GAAG,uBAAuB,EAAE,IACrD,CAAC;AACL,QAAM,YAAY,IAAI,KAAK,aAAa,SAAS;AAAA,IAC/C,OAAO;AAAA,IACP,UAAU;AAAA,IACV,GAAG;AAAA,EACL,CAAC;AACD,MAAI;AACF,UAAM,WAAW,CAAC,UAChB,OAAO,UAAU;AACnB,UAAM,WAAW,CAAC,UAChB,OAAO,UAAU;AAEnB,QAAI,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,KAAK,GAAG;AACxC,aAAO,UAAU,OAAO,CAAC;AAAA,IAC3B;AAEA,QAAI;AAEJ,QAAI,SAAS,KAAK,GAAG;AACnB,YAAM,OAAO,WAAW,KAAK;AAE7B,UAAI,OAAO,MAAM,GAAG,GAAG;AACrB,cAAM;AAAA,MACR;AAAA,IACF,OAAO;AACL,YAAM;AAEN,UAAI,OAAO,MAAM,GAAG,GAAG;AACrB,cAAM;AAAA,MACR;AAAA,IACF;AACA,WAAO,UAAU,OAAO,GAAG;AAAA,EAC7B,SAAS,GAAG;AACV,YAAQ,IAAI,CAAC;AACb,WAAO,UAAU,OAAO,CAAC;AAAA,EAC3B;AACF;;;AC3CA,SAAuB,sBAAsB;;;ACEtC,IAAM,YAAY;AAAA,EACvB;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AAAA,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","names":["contract","msg","defaultChainId","LayerZeroMessageStatus"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@berachain/berajs",
|
|
3
|
-
"version": "0.2.8-beta.
|
|
3
|
+
"version": "0.2.8-beta.4",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -25,12 +25,12 @@
|
|
|
25
25
|
"@types/react-dom": "19.1.6",
|
|
26
26
|
"@types/react": "19.1.8",
|
|
27
27
|
"@typescript/analyze-trace": "0.10.1",
|
|
28
|
-
"tsup": "8.
|
|
28
|
+
"tsup": "8.5.1",
|
|
29
29
|
"typescript": "5.5.4",
|
|
30
30
|
"viem": "2.45.0",
|
|
31
31
|
"vitest": "3.2.4",
|
|
32
|
-
"@berachain/
|
|
33
|
-
"@berachain/
|
|
32
|
+
"@berachain/wagmi": "0.4.0",
|
|
33
|
+
"@berachain/utils": "0.1.0"
|
|
34
34
|
},
|
|
35
35
|
"exports": {
|
|
36
36
|
"./*": {
|
|
@@ -213,7 +213,7 @@ export abstract class BaseAggregator {
|
|
|
213
213
|
|
|
214
214
|
protected async fetch(url: string | URL, options?: RequestInit) {
|
|
215
215
|
try {
|
|
216
|
-
|
|
216
|
+
const response = await beraFetch(
|
|
217
217
|
{ url, name: this.name, type: this.type },
|
|
218
218
|
{
|
|
219
219
|
method: "GET",
|
|
@@ -223,6 +223,8 @@ export abstract class BaseAggregator {
|
|
|
223
223
|
...options,
|
|
224
224
|
},
|
|
225
225
|
);
|
|
226
|
+
|
|
227
|
+
return response;
|
|
226
228
|
} catch (err) {
|
|
227
229
|
const error = initBeraError({ cause: err });
|
|
228
230
|
if (
|
|
@@ -90,7 +90,12 @@ async function _getAbiForCallData({
|
|
|
90
90
|
}
|
|
91
91
|
} catch {}
|
|
92
92
|
try {
|
|
93
|
-
|
|
93
|
+
const abi = await _getAbi({
|
|
94
|
+
contractAddress: address,
|
|
95
|
+
chainId,
|
|
96
|
+
publicClient,
|
|
97
|
+
});
|
|
98
|
+
return abi;
|
|
94
99
|
} catch {}
|
|
95
100
|
}
|
|
96
101
|
|
|
@@ -13,7 +13,7 @@ export async function getHoneyPythOracle({
|
|
|
13
13
|
publicClient: PublicClient;
|
|
14
14
|
pythOracle: Address;
|
|
15
15
|
}) {
|
|
16
|
-
return
|
|
16
|
+
return publicClient.readContract({
|
|
17
17
|
address: pythOracle,
|
|
18
18
|
abi: honeyRootOracleAbi,
|
|
19
19
|
functionName: "pythOracle",
|
|
@@ -16,7 +16,7 @@ export async function getHoneyRootPriceOracle({
|
|
|
16
16
|
factory?: Address;
|
|
17
17
|
}): Promise<Address> {
|
|
18
18
|
const { config } = parseBaseArgs(args);
|
|
19
|
-
return
|
|
19
|
+
return publicClient.readContract({
|
|
20
20
|
address: factory ?? config.honey.factory,
|
|
21
21
|
abi: honeyFactoryAbi,
|
|
22
22
|
functionName: "priceOracle",
|
|
@@ -28,7 +28,7 @@ export async function getRewardVaultBeaconImplementation({
|
|
|
28
28
|
});
|
|
29
29
|
|
|
30
30
|
// from the beacon contract, we get the current implementation address
|
|
31
|
-
return
|
|
31
|
+
return publicClient.readContract({
|
|
32
32
|
address: beacon,
|
|
33
33
|
abi: upgradableBeaconAbi,
|
|
34
34
|
functionName: "implementation",
|
|
@@ -24,7 +24,7 @@ export async function getTotalStakedAmount({
|
|
|
24
24
|
try {
|
|
25
25
|
const totalAssets = await Promise.all(
|
|
26
26
|
vaultAddresses.map(async (address) => {
|
|
27
|
-
return
|
|
27
|
+
return publicClient.readContract({
|
|
28
28
|
address,
|
|
29
29
|
abi: stakeBeraVaultAbi,
|
|
30
30
|
functionName: "totalAssets",
|
|
@@ -23,7 +23,7 @@ export async function getUserVaultsReward({
|
|
|
23
23
|
if (!account) throw new Error("Missing user account");
|
|
24
24
|
if (!vaultAddress) throw new Error("Missing vault address");
|
|
25
25
|
|
|
26
|
-
return
|
|
26
|
+
return publicClient.readContract({
|
|
27
27
|
address: vaultAddress,
|
|
28
28
|
abi: rewardVaultAbi,
|
|
29
29
|
functionName: "earned",
|
|
@@ -37,11 +37,13 @@ export async function getUnderlyingToken({
|
|
|
37
37
|
functionName: "asset",
|
|
38
38
|
});
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
const underlyingToken = await getTokenInformation({
|
|
41
41
|
address: address,
|
|
42
42
|
publicClient,
|
|
43
43
|
chainId: token.chainId,
|
|
44
44
|
});
|
|
45
|
+
|
|
46
|
+
return underlyingToken;
|
|
45
47
|
} catch (e) {
|
|
46
48
|
const err = initBeraError({ cause: e });
|
|
47
49
|
if (err.reason === 'The contract function "asset" reverted.') {
|
|
@@ -19,7 +19,7 @@ export async function getUserBoosts({
|
|
|
19
19
|
const { config } = parseBaseArgs(args);
|
|
20
20
|
const apiClient = getApolloClient("api", args);
|
|
21
21
|
|
|
22
|
-
return
|
|
22
|
+
return apiClient.query<
|
|
23
23
|
GetUserValidatorInformationQuery,
|
|
24
24
|
GetUserValidatorInformationQueryVariables
|
|
25
25
|
>({
|
|
@@ -5,7 +5,7 @@ export async function getErrorResponse(response: Response) {
|
|
|
5
5
|
const contentType = response.headers.get("content-type");
|
|
6
6
|
|
|
7
7
|
if (contentType?.includes("application/json")) {
|
|
8
|
-
return
|
|
8
|
+
return response.json();
|
|
9
9
|
} else {
|
|
10
10
|
const text = await response.text();
|
|
11
11
|
try {
|
package/dist/chunk-2YBHAMDV.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); 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 _chunkNMH7LHPWcjs = require('./chunk-NMH7LHPW.cjs');var _viem = require('viem');function w({cause:e,level:t}){if(e instanceof _viem.BaseError){let n=_chunkNMH7LHPWcjs.e.call(void 0, {error:e,revertIfUnknown:!1});if(n.isRequestError&&n.rootCause instanceof _viem.BaseError&&"url"in n.rootCause&&typeof n.rootCause.url=="string")return new (0, _chunkNMH7LHPWcjs.g)({cause:n.rootCause,response:void 0,endpoint:{url:n.rootCause.url,type:"rpc"},level:t})}return e instanceof _chunkNMH7LHPWcjs.f?e:new (0, _chunkNMH7LHPWcjs.f)({cause:e,level:t})}function c(e){return e!=null}function x({value:e,property:t,fn:r}){let n=r(e);if(!n.isValid)throw new (0, _chunkNMH7LHPWcjs.h)({property:t,value:e,expected:n.expectedType})}function o({value:e,property:t,fn:r}){x({value:e,property:t,fn:n=>{let l=c(n),{isValid:v,expectedType:E}=r(n);return{expectedType:E,isValid:l&&v}}})}function y(e,t){o({value:e,property:t,fn:r=>({expectedType:"defined",isValid:c(r)})})}function A(e,t="publicClient"){y(e,t)}function D(e,t){o({value:e,property:t,fn:r=>({expectedType:"Address",isValid:typeof r=="string"&&_viem.isAddress.call(void 0, r)})})}function K(e,t){if(!(typeof e=="bigint"?e>0n:Number(e)>0))throw new (0, _chunkNMH7LHPWcjs.h)({property:t,value:e,expected:"positive amount"})}function M(e,t){o({value:e,property:t,fn:r=>({expectedType:"number",isValid:(typeof r=="string"||typeof r=="number")&&Number(r)>0})})}function f(){let e={};return{emit(t,...r){for(let n of e[t]||[])n(...r)},events:e,on(t,r){return e[t]||(e[t]=[]),e[t].push(r),()=>{e[t]=_optionalChain([e, 'access', _2 => _2[t], 'optionalAccess', _3 => _3.filter, 'call', _4 => _4(n=>r!==n)])}}}}var d=f(),_= exports.g ={captureException(e){let t={exception:e,timestamp:Date.now()};d.emit("exception",t)},on(...e){return d.on(...e)}};exports.a = w; exports.b = y; exports.c = A; exports.d = D; exports.e = K; exports.f = M; exports.g = _;
|
|
2
|
-
//# sourceMappingURL=chunk-2YBHAMDV.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/pong/coding/monobera/packages/berajs/dist/chunk-2YBHAMDV.cjs","../src/errors/initBeraError.ts","../src/errors/assert.ts","../src/utils/createEmitter.ts","../src/errors/BeraMonitoring.ts"],"names":["initBeraError","error","level","BaseError","parsed","parseViemError","RequestError","BeraError","_isDefined","value","_assert","property","fn","result","InvalidArgumentError","_assertDefined","isDefined","isValid","expectedType","assertDefined","assertPublicClient","assertAddress","isAddress","assertPositive","assertAmount","createEmitter","events","event","args","callback","cb","i","_emitter","BeraMonitoring","exception"],"mappings":"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","file":"/Users/pong/coding/monobera/packages/berajs/dist/chunk-2YBHAMDV.cjs","sourcesContent":[null,"import { BaseError } from \"viem\";\n\nimport { BeraError } from \"./BeraError\";\nimport { parseViemError } from \"./parseViemError\";\nimport { RequestError } from \"./RequestError\";\nimport type { SeverityLevel } from \"./severity\";\n\n/**\n * The preferred way to normalize any unknown error into a BeraError.\n *\n * This function acts as a smart factory that picks the correct BeraError subclass:\n *\n * 1. If `cause` is already a `BeraError`, returns it as-is (no double-wrapping).\n * 2. If `cause` is a viem `BaseError`, runs `parseViemError` to classify it:\n * - If the root cause is an `HttpRequestError` (RPC transport failure), wraps it\n * in a `RequestError` with the endpoint URL extracted from the error.\n * 3. Otherwise, wraps in a new `BeraError` — which triggers the automatic reason\n * detection pipeline in the BeraError constructor (parseViemError → errorMap → displayMessage).\n *\n * **Use this instead of `new BeraError({ cause })` when you don't know the error type.**\n * It ensures RequestErrors are correctly classified (important for Sentry filtering\n * and fingerprinting — RequestErrors are skipped from transaction error grouping).\n *\n * @example\n * ```ts\n * try {\n * await someOperation();\n * } catch (error) {\n * // Normalizes to the right subclass, reason auto-detected\n * throw initBeraError({ cause: error });\n * }\n * ```\n *\n * @example\n * ```ts\n * // Reporting to Sentry without rethrowing\n * catch (error) {\n * captureException(initBeraError({ cause: error }));\n * }\n * ```\n */\nexport function initBeraError({\n cause: error,\n level,\n}: {\n cause: unknown;\n /**\n * The severity level of the error, only used if the error is not a BeraError.\n */\n level?: SeverityLevel;\n}): BeraError {\n // ── Step 1: Check if it's a viem BaseError that wraps an RPC transport failure ──\n // parseViemError with revertIfUnknown=false won't throw — it returns { reason: undefined }\n // if the error chain doesn't match any known type.\n if (error instanceof BaseError) {\n const parsed = parseViemError({\n error,\n revertIfUnknown: false,\n });\n if (\n parsed.isRequestError &&\n parsed.rootCause instanceof BaseError &&\n \"url\" in parsed.rootCause &&\n typeof parsed.rootCause.url === \"string\"\n ) {\n // RPC transport failure (e.g. HTTP 502 from the RPC endpoint).\n // Wrapping in RequestError gives it proper endpoint tagging and level=\"warning\".\n return new RequestError({\n cause: parsed.rootCause,\n response: undefined,\n endpoint: {\n url: parsed.rootCause.url as string,\n type: \"rpc\",\n },\n level,\n });\n }\n }\n\n // ── Step 2: Return as-is if already a BeraError, otherwise wrap ──────────\n // The BeraError constructor will run automatic reason detection on the cause.\n const err =\n error instanceof BeraError\n ? error\n : new BeraError({\n cause: error,\n level,\n });\n\n return err;\n}\n","import type { GetPublicClientReturnType } from \"@wagmi/core\";\nimport { type Address, isAddress, type PublicClient } from \"viem\";\n\nimport { InvalidArgumentError } from \"./InvalidArgumentError\";\n\nfunction _isDefined<T>(value: T): value is NonNullable<T> {\n return value !== undefined && value !== null;\n}\n\ntype _AssertFn<T> = (value: T) => { expectedType: string; isValid: boolean };\n\n/**\n * Internal assertion function.\n * @throws An InvalidArgumentError if the value is not valid.\n */\nfunction _assert<T>({\n value,\n property,\n fn,\n}: {\n value: T;\n property: string;\n fn: _AssertFn<T>;\n}) {\n const result = fn(value);\n if (!result.isValid) {\n throw new InvalidArgumentError({\n property,\n value,\n expected: result.expectedType,\n });\n }\n}\n\nfunction _assertDefined<T>({\n value,\n property,\n fn,\n}: {\n value: T;\n property: string;\n fn: (value: T) => { expectedType: string; isValid: boolean };\n}) {\n _assert({\n value,\n property,\n fn: (value) => {\n const isDefined = _isDefined(value);\n const { isValid, expectedType } = fn(value);\n return {\n expectedType,\n isValid: isDefined && isValid,\n };\n },\n });\n}\n\n/**\n * Asserts that a value is defined.\n * @throws An InvalidArgumentError if the value is undefined or null.\n */\nexport function assertDefined<T>(\n /**\n * The value to assert.\n */\n value: T,\n /**\n * The property name.\n */\n property: string,\n): asserts value is NonNullable<T> {\n _assertDefined({\n value,\n property,\n fn: (value) => ({ expectedType: \"defined\", isValid: _isDefined(value) }),\n });\n}\n\n/**\n * Asserts that a value is a PublicClient.\n * @throws An InvalidArgumentError if the value is undefined or not a PublicClient.\n */\nexport function assertPublicClient(\n /**\n * The value to assert.\n */\n value: // it's important to have both types here because it helps with typescript build performance\n PublicClient | GetPublicClientReturnType | undefined,\n /**\n * The property name.\n */\n property: string = \"publicClient\",\n): asserts value is PublicClient {\n // there's no current way to check if a value is a PublicClient, so we just assert it's defined and `value: PublicClient` will do the rest\n assertDefined(value, property);\n}\n\n/**\n * Asserts that a value is an address (20 bytes).\n * @throws An InvalidArgumentError if the value is undefined, null, not a string, or not an address.\n */\nexport function assertAddress(\n /**\n * The value to assert.\n */\n value: string | undefined | null,\n /**\n * The property name.\n */\n property: string,\n): asserts value is Address {\n _assertDefined({\n value,\n property,\n fn: (value) => ({\n expectedType: \"Address\",\n isValid: typeof value === \"string\" && isAddress(value),\n }),\n });\n}\n\n/**\n * Asserts that a value is positive (> 0).\n * @throws An InvalidArgumentError if the value is not positive.\n */\nexport function assertPositive(\n value: string | bigint | number,\n property: string,\n): void {\n const isPositive = typeof value === \"bigint\" ? value > 0n : Number(value) > 0;\n if (!isPositive) {\n throw new InvalidArgumentError({\n property,\n value,\n expected: \"positive amount\",\n });\n }\n}\n\n/**\n * Asserts that a value is a number greater than 0.\n * @throws An InvalidArgumentError if the value is undefined, null, not a string or number, or not a number greater than 0.\n */\nexport function assertAmount(\n /**\n * The value to assert.\n */\n value: unknown,\n /**\n * The property name.\n */\n property: string,\n): asserts value is string | number {\n _assertDefined({\n value,\n property,\n fn: (value) => ({\n expectedType: \"number\",\n isValid:\n (typeof value === \"string\" || typeof value === \"number\") &&\n Number(value) > 0,\n }),\n });\n}\n","interface EventsMap {\n [event: string]: any;\n}\n\ninterface DefaultEvents extends EventsMap {\n [event: string]: (...args: any) => void;\n}\n\nexport type Unsubscribe = () => void;\n\nexport interface Emitter<Events extends EventsMap = DefaultEvents> {\n /**\n * Calls each of the listeners registered for a given event.\n *\n * ```js\n * ee.emit('tick', tickType, tickDuration)\n * ```\n *\n * @param event The event name.\n * @param args The arguments for listeners.\n */\n emit<K extends keyof Events>(event: K, ...args: Parameters<Events[K]>): void;\n\n /**\n * Add a listener for a given event.\n *\n * ```js\n * const unbind = ee.on('tick', (tickType, tickDuration) => {\n * count += 1\n * })\n *\n * disable () {\n * unbind()\n * }\n * ```\n *\n * @param event The event name.\n * @param cb The listener function.\n * @returns Unbind listener from event.\n */\n on<K extends keyof Events>(event: K, cb: Events[K]): Unsubscribe;\n events: Partial<{ [E in keyof Events]: Events[E][] }>;\n}\n\n/**\n * An interface for mixins that expose the `on` function (without the emitter\n * bound to `this`)\n *\n * ```js\n * import { createEmitter } from '~utils/createEmitter'\n *\n * class Ticker implements EmitterMixin<Events> {\n * constructor() {\n * this.emitter = createEmitter()\n * }\n * on(...args) {\n * return this.emitter.on(...args)\n * }\n * tick() {\n * this.emitter.emit('tick')\n * }\n * }\n * ```\n */\nexport interface EmitterMixin<Events extends EventsMap = DefaultEvents> {\n on<K extends keyof Events>(event: K, cb: Events[K]): Unsubscribe;\n}\n\n/**\n * Create event emitter.\n *\n * ```js\n * import { createEmitter } from './createEmitter'\n *\n * class Ticker {\n * constructor() {\n * this.emitter = createEmitter()\n * }\n * on(...args) {\n * return this.emitter.on(...args)\n * }\n * tick() {\n * this.emitter.emit('tick')\n * }\n * }\n * ```\n *\n * Inspired by {@link https://github.com/ai/nanoevents}\n */\nexport function createEmitter<\n Events extends EventsMap = DefaultEvents,\n>(): Emitter<Events> {\n /**\n * Event names in keys and arrays with listeners in values.\n *\n * ```js\n * emitter1.events = emitter2.events\n * emitter2.events = { }\n * ```\n */\n const events: Partial<{ [E in keyof Events]: Events[E][] }> = {};\n\n return {\n emit(event, ...args) {\n for (const callback of events[event] || []) {\n callback(...args);\n }\n },\n events,\n on(event, cb) {\n if (!events[event]) {\n events[event] = [];\n }\n\n events[event].push(cb);\n\n return () => {\n events[event] = events[event]?.filter((i) => cb !== i);\n };\n },\n };\n}\n","import { createEmitter, type EmitterMixin } from \"../utils/createEmitter\";\nimport type { BeraError } from \"./BeraError\";\nimport type { SeverityLevel } from \"./severity\";\n\n/**\n * Context passed alongside captured exceptions.\n * Mirrors the subset of Sentry's CaptureContext that berajs actually uses.\n */\nexport interface CaptureContext {\n level: SeverityLevel;\n extra?: Record<string, unknown>;\n tags?: Record<string, string | number | boolean | null | undefined>;\n fingerprint?: string[];\n data?: Record<string, unknown>;\n}\n\nexport interface ErrorEvent {\n exception: BeraError;\n timestamp: number;\n}\n\nconst _emitter = createEmitter<{ exception: (event: ErrorEvent) => void }>();\n\n/**\n * A generic error reporter for berajs.\n *\n * Instead of calling Sentry.captureException directly, berajs calls\n * `BeraMonitoring.captureException()`. Consumer apps subscribe via `.on()` and\n * forward events to their monitoring provider (Sentry, Datadog, etc.).\n *\n * @example\n * ```ts\n * // In berajs code:\n * import { BeraMonitoring } from \"./BeraMonitoring\";\n * BeraMonitoring.captureExceptionException(error);\n *\n * // In app instrumentation:\n * import { BeraMonitoring } from \"@berachain/berajs/errors\";\n * BeraMonitoring.on((event) => {\n * if (event.type === \"exception\") {\n * Sentry.captureException(event.exception);\n * }\n * });\n * ```\n */\nexport const BeraMonitoring: {\n captureException: (exception: BeraError) => void;\n} & EmitterMixin<{ exception: (event: ErrorEvent) => void }> = {\n /**\n * Capture an exception. Notifies all subscribers.\n */\n captureException(exception: BeraError): void {\n const event: ErrorEvent = {\n exception,\n timestamp: Date.now(),\n };\n _emitter.emit(\"exception\", event);\n },\n /**\n * Subscribe to error events.\n * @returns An unsubscribe function.\n */\n on(...args) {\n return _emitter.on(...args);\n },\n};\n"]}
|
package/dist/chunk-3YEM767C.mjs
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{a as qe}from"./chunk-NLVWRMGD.mjs";import{a as Qe,b as _e,c as H}from"./chunk-BEKH5EYT.mjs";import{a as D,b as j,c as v,d as Ce,g as M}from"./chunk-QRAIGQF2.mjs";import{B as $e,D as K,F as Be,a as N,b as le,c as Ue,d as We,e as ce,j as Pe,k as Oe,l as S,m as Me,r as He,y as te,z as Je}from"./chunk-PLIH6KQM.mjs";import{a as c,b as ue,d as Le,e as V}from"./chunk-IDFMLLDY.mjs";import{c as se,d as De,e as ee,f as B,g as $,h as x}from"./chunk-74QD4JAH.mjs";import{formatEther as Wt}from"viem";import{metaMorphoV11Abi as Lt}from"@berachain/abis/bend-metamorpho/metaMorphoV11";async function go({sharesAmount:e,vaultAddress:t,publicClient:r}){let a=await r.readContract({address:t,abi:Lt,functionName:"convertToAssets",args:[e]});return{raw:a,formatted:Wt(a)}}import{ApolloClient as Ot,ServerError as Mt}from"@apollo/client";import{appConfig as Ht}from"@berachain/config/internal";var de=class extends Ot{url;constructor(t){super(t),this.url=t.url}async query(t){let r=_t(t.query),a={url:this.url,type:"graphql"},o={"operation.type":"query","operation.source.url":a.url,"operation.source.type":a.type,"operation.source.queryName":r};try{let i=()=>super.query(t),l=await Qe.startSpan({name:`GraphQL ${r}`,op:"BeraApolloClient.query",attributes:o},i);if(l.error||l.data===void 0)throw new B({level:"fatal",tags:o,message:"Bera Apollo Client: No data returned from query, but error should be thrown since errorPolicy is none"});return{data:l.data}}catch(i){throw!Ht.env.isProduction&&console.error("BeraApolloClient error",i),Mt.is(i)?new $({response:i.response,cause:i,statusCode:i.statusCode,endpoint:a,tags:o}):i instanceof TypeError?new $({level:"fatal",reason:"TypeError",response:i,cause:i,endpoint:a,tags:o}):new $({response:i,tags:o,cause:i,endpoint:a})}}};function _t(e){return e.definitions.find(r=>r.kind==="OperationDefinition")?.name?.value}import{InMemoryCache as Jt}from"@apollo/client";import{HttpLink as $t}from"@apollo/client/link/http";import{getUriFromLink as Ke}from"@berachain/config";import{currentDapp as je}from"@berachain/config/internal";import jt from"@berachain/graphql/dex/api";import{gql as Eo}from"@apollo/client";function Kt(e){if(!je)return e;let t=typeof e=="string"?void 0:e.headers;return{uri:Ke(e),headers:{...t,"x-graphql-client-name":`berachain.${je}.${process.env.NEXT_RUNTIME||"browser"}`,"x-graphql-client-version":`${process.env.VERCEL_TARGET_ENV}.${process.env.VERCEL_GIT_COMMIT_SHA}`}}}function _(e,{ssrMode:t,inMemoryCacheOptions:r}={}){let a=Ke(e),o=typeof e=="string"?void 0:e.headers;return new de({url:a,link:new $t({uri:a,headers:o}),defaultOptions:{query:{errorPolicy:"none",fetchPolicy:"no-cache"}},cache:new Jt(r),ssrMode:t})}function b(e,{...t}){let{config:r}=c(t);switch(e){case"api":return _(Kt(r.api),{inMemoryCacheOptions:{possibleTypes:jt.possibleTypes}});case"bend.whisk":if(!r.bend.whiskApi)throw new B({message:"Bend whisk API is not configured on this chain",level:"error"});return _(r.bend.whiskApi);case"honey.subgraph":return _(r.honey.subgraph);case"pol.subgraph":return _(r.pol.subgraph);case"pol.fees":return _(r.pol.feesSubgraph);case"governance.subgraph":return _(r.governance.subgraph);case"bex.subgraph":return _(r.bex.subgraph)}}import{formatUnits as Yt,isAddress as Ye,zeroAddress as zt}from"viem";var ze=class e{static PATH_NOT_FOUND_REASON="NO_SWAP_PATHS";needsAccountForQuote=!1;notFoundMessages=[];config;chainId;constructor(t={}){let{config:r,chainId:a}=c(t);this.config=r,this.chainId=a}url="";parseAddresses(t,r){if(!Ye(t)||!Ye(r))throw new B({message:`Invalid address: ${t} or ${r}`,level:"error"});return{tokenInAddress:V(t,"BERA")?this.config.tokens.wbera:t,tokenOutAddress:V(r,"BERA")?this.config.tokens.wbera:r,isTokenInNative:V(t,"BERA"),isTokenOutNative:V(r,"BERA")}}getAmountAfterFees(t,r){if(r===void 0)throw new B({message:"aggregatorsFeeBps is required",level:"error"});let a=new N(t).times(r).dividedBy(1e4).toFixed(0,N.ROUND_DOWN);return new N(t).minus(a).toFixed(0,N.ROUND_DOWN)}getInputData({tokenIn:t,amountIn:r,isNative:a,isPermit2Approval:o=!1,permit2SpenderAddress:i}){return{tokenIn:t,amountIn:BigInt(r),isNative:a,isPermit2Approval:o,permit2SpenderAddress:i??zt}}getMinAmountOut(t,r){if(r===void 0)throw new B({message:"slippage is required",level:"error"});let a=new N(t).times(1-r/100);return a.isNaN()||a.isZero()?0n:BigInt(a.toFixed(0))}parseAllowanceRequirements({tokenIn:t,rawAmount:r,spender:a}){return V(t,"BERA")?[]:[{token:t,amount:{raw:r,formatted:Yt(BigInt(r),t.decimals)},spender:a}]}checkChainSupport({tokenIn:t,tokenOut:r}){return this.supportedChains===null?!0:this.supportedChains.includes(t.chainId)&&this.supportedChains.includes(r.chainId)}assertChainSupport({tokenIn:t,tokenOut:r,underlyingToken:a}){if(!this.checkChainSupport({tokenIn:t,tokenOut:r,underlyingToken:a}))throw new B({message:`${this.name} does not support tokens chain ID: ${t.chainId} and ${r.chainId}`,level:"error"})}async fetch(t,r){try{return await Ue({url:t,name:this.name,type:this.type},{method:"GET",headers:{"Content-Type":"application/json"},...r})}catch(a){let o=D({cause:a});throw this.notFoundMessages.some(i=>o.message.includes(i))&&(o.reason=e.PATH_NOT_FOUND_REASON),o}}};import{API_CHAIN_NAMES as Xt,BALANCER_QUERIES as Zt,BALANCER_RELAYER as er,BalancerApi as Mo,CHAINS as tr,COMPOSABLE_STABLE_POOL_FACTORY as rr,NATIVE_ASSETS as ar,Token as or,VAULT as nr,WEIGHTED_POOL_FACTORY_BALANCER_V2 as ir}from"@berachain-foundation/berancer-sdk";import{zeroAddress as ve}from"viem";import{berachain as Xe,berachainBepolia as sr}from"viem/chains";import{chainConfigs as lr}from"@berachain/config/internal";for(let e of Object.keys(lr)){let{config:t,chainId:r}=c({chainId:Number(e)});Xt[r]=t.bex.chainName,tr[r]=r===Xe.id?Xe:sr,er[r]=t.bex.relayer,nr[r]=t.bex.vault,Zt[r]=t.bex.queries,ir[r]=ve,rr[r]=ve;let a=new or(r,ve,ue.decimals,ue.name,ue.symbol,t.tokens.wbera);ar[r]=a}import{GetPools as ur}from"@berachain/graphql/dex/api";import{GqlPoolOrderBy as cr,GqlPoolOrderDirection as dr}from"@berachain/graphql/pol/api";async function en({textSearch:e,chain:t,first:r,orderBy:a,orderDirection:o,skip:i,fetchPolicy:l,userAddress:n,blacklistedPoolIds:s,...m}={}){let{config:u}=c(m),f=await b("api",m).query({query:ur,variables:{textSearch:e,chain:t??u.bex.chainName,first:r,orderBy:a??cr.TotalLiquidity,orderDirection:o??dr.Desc,skip:i,userAddress:n,blacklistedPoolIds:s},fetchPolicy:l});return{pools:f.data.poolGetPools??[],count:f.data.count??0}}import{GetPool as mr}from"@berachain/graphql/dex/api";async function nn({poolId:e,account:t,...r}){let{config:a}=c(r),l=(await b("api",r).query({query:mr,variables:{id:e,userAddress:t,chain:a.bex.chainName},fetchPolicy:"no-cache"})).data.poolGetPool;if(!l)throw new Error(`Pool not found for id: ${e} and user ${t}`);return l}import{GetGlobalLiquidityAndSwapVolume as pr}from"@berachain/graphql/dex/api";async function dn(e={}){let{config:t}=c(e);return(await b("api",e).query({query:pr,variables:{chain:t.bex.chainName}})).data}import{weightedPoolV4Abi_V2 as fr}from"@berachain-foundation/berancer-sdk";async function Ze({publicClient:e,poolAddress:t}){let r=fr,a=await e.multicall({contracts:[{address:t,abi:r,functionName:"inRecoveryMode"},{address:t,abi:r,functionName:"getPausedState"}],allowFailure:!1});return{isPoolInRecoveryMode:a[0],isPoolPaused:a[1][0]}}import{stablePoolAbi_V3 as gr,vaultV2Abi as br,weightedPoolFactoryAbi_V3 as et,weightedPoolV4Abi_V2 as me}from"@berachain-foundation/berancer-sdk";import{erc20Abi as tt,formatEther as rt,formatUnits as yr,isAddress as Ar,isHex as hr}from"viem";import{GqlPoolType as at}from"@berachain/graphql/pol/api";async function Pn({poolId:e,publicClient:t,...r}){let{config:a}=c(r),o=e.slice(0,42);if(!Ar(o)||!hr(e))throw new x({property:"poolId",value:e,expected:"Hex"});try{let[i,l,n,s,m,u,d,f,g]=await Promise.all([t.readContract({address:o,abi:tt,functionName:"name"}),t.readContract({address:a.bex.vault,abi:br,functionName:"getPoolTokens",args:[e]}),t.readContract({address:o,abi:tt,functionName:"totalSupply"}),t.readContract({address:o,abi:me,functionName:"getSwapFeePercentage"}),t.readContract({address:o,abi:me,functionName:"version"}),t.readContract({address:o,abi:me,functionName:"decimals"}),t.readContract({address:a.bex.factories.composableStable,abi:et,functionName:"isPoolFromFactory",args:[o]}),t.readContract({address:a.bex.factories.weighted,abi:et,functionName:"isPoolFromFactory",args:[o]}),Ze({publicClient:t,poolAddress:o})]),p=Number(u),A=JSON.parse(m),h,P,y;if(d?[h,y]=await Promise.all([t.readContract({address:o,abi:[{type:"function",name:"getActualSupply",stateMutability:"view",inputs:[],outputs:[{type:"uint256"}]}],functionName:"getActualSupply"}),t.readContract({address:o,abi:gr,functionName:"getAmplificationParameter"})]):A.name==="WeightedPool"&&(P=await t.readContract({address:o,abi:me,functionName:"getNormalizedWeights"})),!d&&!f)throw new Error(`Pool ${o} is not a valid BEX pool`);return{name:i,address:o,id:e,poolTokens:[l[0],l[1].map(String),Number(l[2])],totalSupply:yr(h??n,p),swapFee:rt(s),decimals:p,weights:P?.map(I=>rt(I)),version:A,factory:d?a.bex.factories.composableStable:a.bex.factories.weighted,type:d?at.Stable:at.Weighted,amplificationParameter:y?[Number(y[0]),y[1],Number(y[2])]:void 0,pausedState:g}}catch(i){throw D({cause:i})}}import{GetPoolEvents as wr}from"@berachain/graphql/dex/api";async function Sn({poolId:e,typeInArray:t,...r}){let{config:a}=c(r);return(await b("api",r).query({query:wr,variables:{poolId:e,typeIn:t,chain:a.bex.chainName}})).data}import{isHex as Cr}from"viem";import{GetPoolHistoricalData as Pr}from"@berachain/graphql/dex/api";async function En({poolId:e,chain:t,...r}){if(!e||!Cr(e))throw new x({property:"poolId",value:e,expected:"hex string"});let a=b("api",r),{data:o}=await a.query({query:Pr,variables:{poolId:e,chain:t}});return o.poolGetSnapshots}import{isAddress as ot,isHex as Br}from"viem";var Y=({fieldOrType:e,value:t,required:r=!0,baseUrl:a,components:o})=>{if(!["bool","string"].includes(e)&&r&&(t==null||t===""))return"Required";if(e.startsWith("uint")||e.startsWith("int")){if(typeof t!="string")return"Invalid amount";try{let l=BigInt(t);if(e.startsWith("uint")&&l<0n)return"Negative amount"}catch{return"Invalid amount"}return null}switch(e){case"string":return t!==void 0&&typeof t!="string"?"Invalid amount":null;case"bool":return typeof t!="boolean"?"Invalid amount":null;case"title":return t.length===0?"Required":null;case"description":return t.length===0?"Required":null;case"forumLink":if(t.length===0)return"Required";if(!URL.canParse(t))return"Invalid address";let l=new URL(a);return t.startsWith(l.toString())?null:"Must be a berachain forum link";case"address":return ot(t,{strict:!0})?null:"Invalid address";case"hex":return Br(t,{strict:!0})?null:"Invalid address";case"abi":try{JSON.parse(t)}catch{return"Invalid ABI"}return null;case"action":return ot(t,{strict:!0})?null:"Invalid address";case"tuple":if(typeof t=="object"&&Array.isArray(o)){let n={};for(let s of o)n[s.name]=Y({fieldOrType:s.type,value:t[s.name],components:s.components});return Object.values(n).every(s=>s===null)?null:n}return null;case"tuple[]":if(Array.isArray(t)){let n=t.map(s=>Y({fieldOrType:"tuple",value:s,components:o}));return n.every(s=>s===null)?null:n}return null;case"logoURI":return t===void 0||t===""||URL.canParse(t)&&new URL(t).protocol==="https:"?null:"Must be HTTPS or IPFS";case"url":return t===void 0||t===""||URL.canParse(t)&&new URL(t).protocol==="https:"?null:"Must be HTTPS";default:return console.error(`Invalid field or type: ${e}`),null}};import{ProposalStatus as C}from"@berachain/graphql/governance";var vr=!1,Qn=[C.Active,C.PendingQueue,C.PendingExecution,C.Defeated,C.QuorumNotReached];function pe(e,t){let r=Date.now()/1e3;if(t!==void 0){if(e.status===C.CanceledByGuardian)return C.CanceledByGuardian;if(t===2)return Number(e.voteStartAt)<r?C.CanceledByUser:C.CanceledByGuardian;if(t===3)return e.pollResult?!e.quorum||BigInt(e.quorum)>BigInt(e.pollResult.totalTowardsQuorum)?C.QuorumNotReached:C.Defeated:C.QuorumNotReached;if(t===4)return C.PendingQueue;if(t===5)return Number(e.queueEnd)<Date.now()/1e3?C.PendingExecution:C.InQueue;if(t===6)return console.warn("Unexpected expired state on proposal id: ",e.id),C.Defeated}return e.status===C.InQueue&&Number(e.queueEnd)<Date.now()/1e3?C.PendingExecution:vr&&t===1&&e.quorum&&BigInt(e.quorum)<BigInt(e.pollResult.totalTowardsQuorum)&&Number(e.pollResult.forPercentage)>Number(e.pollResult.againstPercentage)?C.PendingQueue:e.status===C.Pending?Number(e.voteStartAt)<r&&Number(e.voteEndAt)>r?C.Active:Number(e.voteEndAt)<r?e.pollResult?!e.quorum||BigInt(e.quorum)>BigInt(e.pollResult.totalTowardsQuorum)?C.QuorumNotReached:e.pollResult?.against>e.pollResult?.for?C.Defeated:C.PendingQueue:C.QuorumNotReached:C.Pending:e.status===C.Active&&Number(e.voteEndAt)<r?!e.quorum||BigInt(e.quorum)>BigInt(e.pollResult.totalTowardsQuorum)?C.QuorumNotReached:BigInt(e.pollResult?.against??0n)>BigInt(e.pollResult?.for??0n)?C.Defeated:C.PendingQueue:e.status===C.InQueue&&Number(e.queueEnd)<Date.now()/1e3?C.PendingExecution:e.status}import{GetProposals as Rr,SearchProposals as Vr}from"@berachain/graphql/governance";async function Mn({where:e,orderBy:t,orderDirection:r,offset:a=0,perPage:o=20,text:i,...l}){try{if(o>1e3)throw new Error("perPage must be less than 1000");let n=b("governance.subgraph",l),[s]=await Promise.all([i?n.query({query:Vr,variables:{offset:a,limit:o,where:e,text:i}}):n.query({query:Rr,variables:{offset:a,limit:o,where:e,orderBy:t,orderDirection:r}})]);return s.data.proposals.map(m=>({...m,status:pe(m)}))}catch(n){throw console.error("getAllProposals:",n),n}}var Jn=(e,t)=>{let r={};return r.title=Y({fieldOrType:"title",value:e.title}),r.description=Y({fieldOrType:"description",value:e.description}),r.forumLink=Y({fieldOrType:"forumLink",value:e.forumLink,baseUrl:t.forumLink}),r};import{GetProposal as Sr}from"@berachain/graphql/governance";async function zn({proposalId:e,...t}){let a=await b("governance.subgraph",t).query({query:Sr,variables:{id:e}});if(a.data.proposal)return{...a.data.proposal,status:pe(a.data.proposal)}}import nt from"gray-matter";var Nr=e=>{let t=/#(?:([\w-]+)# )?(.+)\n([\s\S]*)/,r=e.match(t);if(r){let a=r[1]||null,o=r[2],i=r[3].replace(`
|
|
2
|
-
`,"<br />");return{type:a,title:o,content:i}}throw new Error("Invalid proposal body")},it=e=>{if(!e)return{isFrontMatter:!1,data:{title:"Loading..."},content:"",matter:"",language:"",orig:"",stringify:()=>""};let t=e?.description??"";if(nt.test(t))return{...nt(t),isFrontMatter:!0};try{let r=Nr(t);return{isFrontMatter:!1,data:{title:r.title},content:r.content,matter:"",language:"",orig:t,stringify:()=>t}}catch{return{isFrontMatter:!1,data:{title:e?.description?.split(`
|
|
3
|
-
`)[0].slice(0,100)},content:t,matter:"",language:"",orig:t,stringify:()=>t}}};import{parseEventLogs as kr}from"viem";import{berachainGovernanceAbi as Gr}from"@berachain/abis/gov/berachainGovernance";import{ProposalStatus as xr}from"@berachain/graphql/governance";async function ii(e){v(e.publicClient);let t;"tx"in e?t=e.tx:t=await e.publicClient.getTransactionReceipt({hash:e.txHash});let r=t?.logs?kr({abi:Gr,logs:t.logs,eventName:"ProposalCreated"})?.at(0):void 0;if(!t||!r)return null;let a=await e.publicClient.getBlock({blockNumber:t.blockNumber}),o=it({description:r?.args.description});return{id:String(r.args.proposalId),proposalId:String(r?.args.proposalId),createdAt:a.timestamp.toString(),title:o.data.title,createdAtBlock:a.timestamp.toString(),voteStartAt:String(r?.args.voteStart),voteEndAt:String(r?.args.voteEnd),proposer:r?.args.proposer,description:o.content,unverifiedForumLink:o.data.forumLink,pollResult:{for:"0",forVotersCount:0,forPercentage:"0",against:"0",againstVotersCount:0,againstPercentage:"0",abstain:"0",abstainVotersCount:0,abstainPercentage:"0",total:"0",totalVotersCount:0,totalTowardsQuorum:"0"},status:xr.Pending,quorum:null,topics:o.data.topics,votes:[],executableCalls:r?.args.targets.map((i,l)=>({__typename:"ExecutableCall",id:`${t.transactionHash}-${l}`,target:i,value:String(r?.args.values[l]),calldata:r?.args.calldatas[l]})),timelock:void 0}}import{GetProposalVotes as Tr}from"@berachain/graphql/governance";async function ci({variables:e,...t}){return b("governance.subgraph",t).query({query:Tr,variables:e})}import{Aggregation_Interval as Er,GetChartData as Fr}from"@berachain/graphql/honey";async function fi({days:e,...t}){return(await b("honey.subgraph",t).query({query:Fr,variables:{interval:Er.Day,first:e}})).data}import{honeyFactoryAbi as Ir}from"@berachain/abis/honey/honeyFactory";async function Ai({client:e,collateralList:t,...r}){let{config:a}=c(r);try{let o=await e.readContract({address:a.honey.factory,abi:Ir,functionName:"getWeights"});return t.reduce((l,n,s)=>Object.assign(l,{[n.address]:o[s]}),{})}catch(o){throw console.log(o),o}}import{erc20Abi as Re}from"viem";async function st({address:e,publicClient:t,chainId:r}){try{if(!t)throw new Error("Public client not found");let[a,o,i]=await Promise.all([t.readContract({address:e,abi:Re,functionName:"decimals"}),t.readContract({address:e,abi:Re,functionName:"name"}),t.readContract({address:e,abi:Re,functionName:"symbol"})]),l={address:e,decimals:a,name:o,symbol:i,chainId:r};if(typeof l.decimals!="number"||typeof l.name!="string"||typeof l.symbol!="string")throw new Error(`Invalid ERC20 token. Address: ${e}`);return l}catch(a){throw console.error(a),D({cause:a})}}import{honeyFactoryAbi as Ve}from"@berachain/abis/honey/honeyFactory";async function Se({client:e,tokenData:t,preferredCollateralOrder:r,...a}){let{config:o}=c(a),[i,l]=await Promise.all([e.readContract({address:o.honey.factory,abi:Ve,functionName:"numRegisteredAssets"}),e.readContract({address:o.honey.factory,abi:Ve,functionName:"referenceCollateral"})]),n=[];for(let f=0;f<i;f++)n.push(e.readContract({address:o.honey.factory,abi:Ve,functionName:"registeredAssets",args:[BigInt(f)]}));let s=await Promise.all(n),u=(await Promise.all(s.map(f=>{let g=t?.find(p=>V(p,f));return g||st({address:f,chainId:o.chainId,publicClient:e})}))).filter(f=>!!f).sort((f,g)=>s.indexOf(f.address)-s.indexOf(g.address)).map((f,g)=>({...f,order:g}));if(r?.length){let f=[];for(let g of r){let p=u.find(A=>V(A.address,g.address));p&&(f.push(p),u.splice(u.indexOf(p),1))}u.unshift(...f)}let d=u.find(f=>V(f,l));if(!u)throw new Error("Collateral tokens not found");if(!d)throw new Error("Reference collateral address not found");return{collaterals:u,referenceCollateral:d}}import{parseUnits as qr}from"viem";import{honeyFactoryAbi as lt}from"@berachain/abis/honey/honeyFactory";import{honeyFactoryReaderAbi as Dr}from"@berachain/abis/honey/honeyFactoryReader";async function ut({client:e,collateral:t,latestPrices:r,isPythWrapperEnabled:a,...o}){let{config:i}=c(o);try{let l=e.readContract({address:i.honey.factory,abi:lt,functionName:"isBadCollateralAsset",args:[t.address]}),n=e.readContract({address:i.honey.factory,abi:lt,functionName:"isPegged",args:[t.address]});if(a&&r){let u=r.prices.map(d=>qr(d,18));n=e.readContract({address:i.honey.reader,abi:Dr,functionName:"isPeggedWithPrice",args:[t.address,u[0]]})}let[s,m]=await Promise.all([l,n]);return{isBlacklisted:s,isDepegged:!m}}catch(l){throw console.log(l),l}}import{parseEther as dt}from"viem";import{honeyFactoryAbi as Wr}from"@berachain/abis/honey/honeyFactory";import{parseEther as Qr}from"viem";import{collateralVaultAbi as Ur}from"@berachain/abis/honey/collateralVault";import{honeyFactoryAbi as ct}from"@berachain/abis/honey/honeyFactory";async function re({client:e,asset:t,amount:r,...a}){let{config:o}=c(a);try{let[i,l]=await Promise.all([e.readContract({address:o.honey.factory,abi:ct,functionName:"vaults",args:[t]}),e.readContract({address:o.honey.factory,abi:ct,functionName:"collectedFees",args:[o.honey.factory,t]})]);return await e.readContract({address:i,abi:Ur,functionName:"balanceOf",args:[o.honey.factory]})+Qr(r??"0")-l}catch(i){throw console.log(i),i}}var Lr=dt("1");async function Ji({client:e,asset:t,amount:r,isMint:a,isPythWrapperEnabled:o,latestPrices:i,...l}){let{config:n}=c(l);try{let s=await e.readContract({address:n.honey.factory,abi:Wr,functionName:"globalCap"});if(s>=Lr)return!1;let[{collaterals:m},u]=await Promise.all([Se({client:e}),Or({client:e,asset:t,amount:r,latestPrices:i,isPythWrapperEnabled:o})]);if(!u)return;for(let d in u)if((a&&V(m[d],t)||!a&&V(m[d],t))&&u[d]>s-ce)return!0;return!1}catch(s){throw console.log(s),s}}async function Or({client:e,asset:t,amount:r,latestPrices:a,isPythWrapperEnabled:o}){let{collaterals:i}=await Se({client:e}),l=0n,n=[];for(let s of i){let m=await ut({client:e,collateral:t,latestPrices:a,isPythWrapperEnabled:o});if(m?.isBlacklisted||m?.isDepegged)continue;let u=await re({client:e,asset:s.address,amount:V(s,t)?r:"0"});u&&(l+=u,n.push(u))}if(l===0n)return n;for(let s in i)n[s]=dt(n[s].toString())/l;return n}import{GetGlobalData as Mr}from"@berachain/graphql/honey";async function Yi({...e}={}){return(await b("honey.subgraph",e).query({query:Mr})).data}import{parseUnits as mt}from"viem";import{honeyFactoryReaderAbi as pt}from"@berachain/abis/honey/honeyFactoryReader";var Hr=(s=>(s.Mint="previewMintHoney",s.MintWithPrice="previewMintHoneyWithPrices",s.RequiredCollateral="previewMintCollaterals",s.RequiredCollateralWithPrice="previewMintCollateralsWithPrices",s.Redeem="previewRedeemCollaterals",s.RedeemWithPrice="previewRedeemCollateralsWithPrices",s.HoneyToRedeem="previewRedeemHoney",s.HoneyToRedeemWithPrice="previewRedeemHoneyWithPrices",s))(Hr||{});async function ts({client:e,collateral:t,collateralList:r,amount:a,method:o,latestPrices:i,isPythWrapperEnabled:l,...n}){let{config:s}=c(n);try{let m=o==="previewMintHoney"||o==="previewRedeemHoney"||o==="previewMintHoneyWithPrices"||o==="previewRedeemHoneyWithPrices",u=mt(a,m?t.decimals:18),d,f=[t.address,u];if(l&&i){let p=i.prices.map(A=>mt(A,18));f=[t.address,u,p]}if(m){let p=await e.readContract({address:s.honey.reader,abi:pt,functionName:o,args:f});d={collaterals:p[0],honey:p[1]}}else d={collaterals:await e.readContract({address:s.honey.reader,abi:pt,functionName:o,args:f}),honey:u};let g=r.reduce((p,A)=>{let h=A.order;return A.address===t.address&&d.collaterals[h]===BigInt(0)?Object.assign(p,{[A.address]:d.collaterals[0]}):Object.assign(p,{[A.address]:d.collaterals[h]})},{});return g[t.address]===BigInt(0)&&(g[t.address]=d.collaterals[0]),{collaterals:g,honey:d.honey}}catch(m){throw console.log("error",m),m}}import{formatUnits as _r}from"viem";import{collateralVaultAbi as Ne}from"@berachain/abis/honey/collateralVault";import{honeyFactoryAbi as ft}from"@berachain/abis/honey/honeyFactory";async function ss({client:e,collateralList:t,honeyFactoryAddress:r,...a}){let{config:o}=c(a),i=r??o.honey.factory;return await Promise.all(t.map(async n=>{let s=await e.readContract({address:o.honey.factory,abi:ft,functionName:"vaults",args:[n.address]}),[m,u,[d,f]]=await Promise.all([e.readContract({address:s,abi:Ne,functionName:"balanceOf",args:[i]}),e.readContract({address:i,abi:ft,functionName:"collectedAssetFees",args:[n.address]}),e.readContract({address:s,abi:Ne,functionName:"custodyInfo"})]),g=await e.readContract({address:s,abi:Ne,functionName:"convertToAssets",args:[m-u]});return{...n,balance:{raw:g.toString(),formatted:_r(g,n.decimals)},vault:d?f:s}}))}import{HermesClient as Jr}from"@pythnetwork/hermes-client";import{formatUnits as $r}from"viem";var jr="https://hermes.pyth.network";async function gt({priceFeedId:e}){let r=await new Jr(jr,{}).getLatestPriceUpdates(e,{encoding:"hex",parsed:!0});return{calldata:r.binary.data.map(a=>`0x${a}`),prices:r.parsed?.flatMap(a=>$r(BigInt(a.price.price),a.price.expo*-1))??[]}}import{parseEther as Kr}from"viem";import{honeyFactoryAbi as Yr}from"@berachain/abis/honey/honeyFactory";async function ys({client:e,asset:t,amount:r,isMint:a,referenceCollateral:o,...i}){let{config:l}=c(i);if(t===o.address)return!1;try{let[n]=await Promise.all([e.readContract({address:l.honey.factory,abi:Yr,functionName:"relativeCap",args:[t]})]),[s,m]=await Promise.all([re({client:e,asset:t,amount:a?r:void 0}),re({client:e,asset:o.address,amount:a?void 0:r})]);return m===0n?s!==0n:Kr((s??0n).toString())/(m??0n)>=n-ce}catch(n){throw console.log(n),n}}async function bt({client:e,priceFeedId:t,...r}){let{config:a}=c(r);try{return await e.readContract({address:a.external.pyth,abi:qe,functionName:"getUpdateFee",args:[t]})}catch(o){throw console.error("getPythUpdateFee",o),o}}import{parseUnits as yt}from"viem";import{honeyFactoryAbi as zr}from"@berachain/abis/honey/honeyFactory";import{honeyFactoryPythWrapperAbi as Xr}from"@berachain/abis/honey/honeyFactoryPythWrapper";var Gs=async({state:e,publicClient:t,priceFeedMap:r,collateralList:a,isPythWrapperEnabled:o,...i})=>{let{config:l}=c(i),n=Le(i),{actionType:s,fromAmount:m,collaterals:u,isBasketModeEnabled:d}=e,f=o?l.honey.pythWrapper:l.honey.factory,g=a.map(p=>p.address);if(m[0]&&g.length){let p=s==="mint";if(o&&t&&r){let h=(await gt({priceFeedId:Object.values(r)})).calldata,P=0n;try{P=await bt({client:t,priceFeedId:h})}catch{P=Oe(u.length)}return({account:y})=>{let I=[h,u[0]?.address,yt(m[0],(p?u[0]?.decimals:n?.decimals)??18),y,!!d];return{address:f,abi:Xr,functionName:p?"mint":"redeem",params:I,value:P}}}return({account:A})=>{let h=[u[0]?.address,yt(m[0],(p?u[0]?.decimals:n?.decimals)??18),A,!!d];return{value:0n,address:f,abi:zr,functionName:p?"mint":"redeem",params:h}}}throw new Error("Something went wrong while creating the Honey swap payload")};import{parseUnits as Zr}from"viem";import{honeyFactoryAbi as ea}from"@berachain/abis/honey/honeyFactory";import{honeyFactoryReaderAbi as ta}from"@berachain/abis/honey/honeyFactoryReader";async function qs({client:e,isMint:t,collateralList:r,latestPrices:a,isPythWrapperEnabled:o,...i}){let{config:l}=c(i);if(o&&a){if(r.length===0)return;let s=a.prices.map(u=>Zr(u,18));return await e.readContract({address:l.honey.reader,abi:ta,functionName:"isBasketModeEnabledWithPrices",args:[t,s]})}return await e.readContract({address:l.honey.factory,abi:ea,functionName:"isBasketModeEnabled",args:[t]})}async function Ws({block:e,currentBlock:t,blockTime:r,publicClient:a}){if(j(e,"block"),v(a),t>e){let i=await a.getBlock({blockNumber:BigInt(e),includeTransactions:!1});return{timestamp:Number(i.timestamp)}}return{timestamp:S(Date.now())+r*(Number(e)-Number(t))}}import{formatUnits as ke}from"viem";import{rewardVaultAbi as z}from"@berachain/abis/pol/rewards/rewardVault";var ra=(a=>(a.Duration="duration",a.TargetRate="targetRate",a.TargetApr="targetApr",a))(ra||{});async function _s(e,t){let[r,a,o,i,l,n]=await Promise.all([t.readContract({address:e,abi:z,functionName:"rewardsDuration"}),t.readContract({address:e,abi:z,functionName:"rewardVaultManager"}),t.readContract({address:e,abi:z,functionName:"rewardRate"}),t.readContract({address:e,abi:z,functionName:"periodFinish"}),t.readContract({address:e,abi:z,functionName:"targetRewardsPerSecond"}),t.readContract({address:e,abi:z,functionName:"minRewardDurationForTargetRate"})]),s=o*(i-BigInt(S(Date.now())))/10n**18n;return{rewardsDuration:Number(r),mode:l===0n?"duration":"targetRate",manager:a,rewardRate:ke(o,36),periodFinish:Number(i),availableRewards:ke(s,18),minRewardDurationForTargetRate:Number(n),targetRewardsPerSecond:ke(l,36)}}function fe(e,t,r){return e?r*t*te(1)/e:null}function aa(e,t,r){return r?e*r/(t*te(1)):0}function js({availableRewards:e,periodFinish:t,tvl:r,bgtPrice:a,MIN_REWARD_DURATION:o,MAX_REWARD_DURATION:i,...l}){let n=S(Date.now());if(n>t)return{apr:0,duration:0,rewardRate:0,targetRate:null,periodFinish:0,mode:null};if(l.mode==="targetRate"||l.mode==="targetApr"){let d,{minRewardDurationForTargetRate:f,currentDuration:g}=l;if(l.mode==="targetRate"?d=l.rewardRate:d=aa(l.apr,a,r),d===0){let h=Math.min(g,i),P=e?e/h:0;return{apr:fe(r,a,P),duration:h,rewardRate:P,targetRate:null,periodFinish:h+n,mode:"duration"}}let p=f||o,A=e?e/d:0;if(A<p){let h=e?e/p:0;return{apr:fe(r,a,h),duration:p,rewardRate:h,targetRate:h.toString(),periodFinish:p+n,mode:null}}return{apr:fe(r,a,d),duration:A,rewardRate:d,targetRate:d.toString(),periodFinish:A+n,mode:null}}let{duration:s}=l,m=e/s;return{apr:fe(r,a,m),mode:null,targetRate:null,duration:s,rewardRate:m,periodFinish:s+n}}async function Xs({address:e,account:t,...r}){let{config:a}=c(r),o=`${a.staking}/vaults/${e}/earnings/${t}`;return We({url:o,type:"rest"})}import{formatUnits as oa}from"viem";import{rewardVaultAbi as na}from"@berachain/abis/pol/rewards/rewardVault";import{GetVaults as ia}from"@berachain/graphql/pol/api";async function ge({filter:e,publicClient:t,...r}={}){let o=await b("api",r).query({query:ia,variables:e}),i=await Promise.allSettled(o.data.polGetRewardVaults.vaults.map(async n=>{if(t)return Promise.allSettled(n.activeIncentives.map(s=>t.readContract({abi:na,address:n.address,functionName:"incentives",args:[s.tokenAddress]})))})),l=o.data.polGetRewardVaults.vaults.map((n,s)=>{let m=0,u=n.activeIncentives.map((d,f)=>{let g=Number(d.remainingAmountUsd)&&Number(d.remainingAmount)?Number(d.remainingAmountUsd)/Number(d.remainingAmount):0,p=i[s]?.status==="fulfilled"&&i[s]?.value?.[f]?.status==="fulfilled"?oa(BigInt(i[s].value[f].value[2]),d.token.decimals):d.remainingAmount;return m+=Number(p)*Number(g),{...d,remainingAmount:p}});return{...n,dynamicData:{...n.dynamicData,allTimeReceivedBGTAmount:n.dynamicData?.allTimeReceivedBGTAmount??"0",bgtCapturePercentage:n.dynamicData?.bgtCapturePercentage??"0",activeIncentivesValueUsd:m.toString(),activeIncentivesRateUsd:n.dynamicData?.activeIncentivesRateUsd??"0",bgtCapturePerBlock:n.dynamicData?.bgtCapturePerBlock??"0"},activeIncentives:u}});return{pagination:o.data.polGetRewardVaults.pagination,gaugeList:l}}import{GlobalData as sa}from"@berachain/graphql/pol/api";async function At(e={}){let{config:t}=c(e),a=await b("api",e).query({query:sa,variables:{chain:t.bex.chainName}});return{...a.data.polGetGlobalInfo,top3EmittingValidators:a.data.top3EmittingValidators.validators,allValidatorsCount:a.data.allValidatorsCount.pagination.totalCount}}import{formatEther as la}from"viem";import{bgtAbi as ua}from"@berachain/abis/pol/bgt";async function ht({publicClient:e,...t}){let{config:r}=c(t);v(e);try{let a=await e.readContract({address:r.tokens.bgt,abi:ua,functionName:"totalBoosts",args:[]});return la(a)}catch(a){throw console.log(a),a}}import{erc20Abi as ca,formatEther as da}from"viem";async function wt({publicClient:e,...t}){let{config:r}=c(t);v(e);try{let a=await e.readContract({address:r.tokens.bgt,abi:ca,functionName:"totalSupply",args:[]});return da(a??0n)}catch(a){throw console.log(a),a}}import{GqlRewardVaultOrderBy as ma,GqlRewardVaultOrderDirection as pa}from"@berachain/graphql/pol/api";async function Ct(e){let{gaugeList:t}=await ge({filter:{orderBy:ma.Apr,orderDirection:pa.Desc,pageSize:e,where:{includeNonWhitelisted:!1}}});return t}async function Sl(e){let[t,r,a,o]=await Promise.allSettled([At(),Ct(300),wt({publicClient:e}),ht({publicClient:e})]);return t.status==="rejected"&&M.captureException(D({cause:t.reason,level:"warning"})),r.status==="rejected"&&M.captureException(D({cause:r.reason,level:"warning"})),a.status==="rejected"&&M.captureException(D({cause:a.reason,level:"warning"})),o.status==="rejected"&&M.captureException(D({cause:o.reason,level:"warning"})),{bgtTotalSupply:a.status==="fulfilled"?a.value:void 0,globalCuttingBoard:r.status==="fulfilled"?r.value:[],bgtTotalBoosts:o.status==="fulfilled"?o.value:void 0,...t.status==="fulfilled"?t.value:{}}}import{GetIncentiveFeeClaimStats as fa}from"@berachain/graphql/pol/fees";async function Pt({...e}){let t=b("pol.fees",e),{data:r}=await t.query({query:fa});if(r.incentiveFeeClaims.length>0){let a=r?.incentiveFeeClaims.reduce((l,n)=>l+Number(n.payoutAmount),3e4),i=(r?.incentiveFeeClaims.filter(l=>Number(l.timestamp)/1e3>Date.now()-He(1))).reduce((l,n)=>l+Number(n.payoutAmount),0);return{sumAllClaims:a,sumClaimsInLast24Hours:i}}return{sumAllClaims:0,sumClaimsInLast24Hours:0}}async function Fl(e={}){let{config:t}=c(e);try{let a=await(await fetch(t.lists.rewardVaultList)).json();if(!a.protocols)throw new Error("Missing protocols in market list");return{marketList:a.protocols,marketDictionary:a.protocols.reduce((o,i)=>(o[i.name]=i,o),{})}}catch(r){throw console.error("Error fetching validator information",r),r}}async function Ul({account:e,validator:t,page:r=1,perPage:a=1e3,...o}){let{config:i}=c(o),l=await fetch(`${i.pol.bribeBoostApi}/api/v1/wallets/${e.toLowerCase()}/proofs/validator/${t.toLowerCase()}?page=${r}&per_page=${a}`,{cache:"no-store"});if(!l.ok){let s=await le(l);throw new B({message:"Failed to fetch proofs on server",cause:{error:s,result:l,account:e,validator:t},reason:s?.reason})}return await l.json()}import{formatUnits as ga,parseUnits as ba}from"viem";import{wberaStakerVaultAbi as ya}from"@berachain/abis/pol/wberaStakerVault";async function Hl({address:e,publicClient:t}){return v(t),t.readContract({address:e,abi:ya,functionName:"previewRedeem",args:[ba("1",18)]}).then(r=>Number(ga(r,18))).catch(()=>0)}import{GetRewardVault as Aa}from"@berachain/graphql/pol/api";async function Yl({address:e,chainName:t,...r}){let{config:a}=c(r),o=t??a.bex.chainName,i=b("api",r),{data:l}=await i.query({query:Aa,variables:{vaultId:e,chain:o}});if(!l?.rewardVault)throw new _e({resource:"Reward vault",id:e,chainId:a.chainId});return l.rewardVault}import{isSameAddress as Bt}from"@berachain-foundation/berancer-sdk";import{erc20Abi as be,formatUnits as ae}from"viem";import{rewardVaultAbi as Ge}from"@berachain/abis/pol/rewards/rewardVault";function xe(e,t){return e.status==="success"?e.result:t}async function au({address:e,stakingToken:t,publicClient:r}){let a=await r.readContract({address:e,abi:Ge,functionName:"getWhitelistedTokens"}),i=a.findIndex(n=>Bt(t,n))!==-1?await r.readContract({address:e,abi:Ge,functionName:"totalSupply"}):0n,l=await Promise.allSettled(a.map(async n=>{let[s,m,u,d,f]=await r.multicall({allowFailure:!0,contracts:[{address:e,abi:Ge,functionName:"incentives",args:[n]},{address:n,abi:be,functionName:"decimals"},{address:n,abi:be,functionName:"name"},{address:n,abi:be,functionName:"symbol"},{address:n,abi:be,functionName:"balanceOf",args:[e]}]});if(s.status==="failure")throw new B({cause:s.error,message:"Failed to get incentive info. This is not possible.",level:"error",extra:{token:n,address:e}});let[g,p,A,h]=s.result,P=xe(m,18);return{token:n,manager:h,minIncentiveRate:ae(g,P),incentiveRate:ae(p,P),remainingAmount:ae(A,P),name:xe(u,void 0),symbol:xe(d,void 0),decimals:P,pendingAmount:Bt(t,n)?ae((f.result??0n)-i-A,P):ae((f.result??0n)-A,P)}}));return l.forEach((n,s)=>{n.status==="rejected"&&M.captureException(new B({reason:n.reason,message:"Incorrect incentives token received.",level:"error",extra:{token:a[s],address:e,error:n.reason}}))}),l.map(n=>n.status==="fulfilled"?n.value:null).filter(n=>n!==null)}import{rewardVaultAbi as ha}from"@berachain/abis/pol/rewards/rewardVault";async function iu({address:e,publicClient:t}){return await t.readContract({address:e,abi:ha,functionName:"stakeToken"})}import{GetSWberaVaultMetadata as wa,GqlSWberaVaultMetadataResolution as vt}from"@berachain/graphql/pol/api";function Ca(e){return e==="DAY"?vt.OneDay:vt.SevenDays}async function du({window:e,...t}){let{config:r}=c(t),a=b("api",t);try{let o=await a.query({query:wa,variables:{chain:r.bex.chainName,resolution:Ca(e??"DAY")}}),{apr:i}=o.data.polGetSWberaVaultMetadata;return Number(i)}catch(o){throw console.error("Failed to get SW Bera APR",o),o}}import{GetSWberaVaultSnapshots as Pa,GqlVaultSnapshotDataRange as Ba}from"@berachain/graphql/pol/api";async function bu({chain:e,range:t=Ba.ThirtyDays,...r}={}){let{config:a}=c(r),o=b("api",r);try{return(await o.query({query:Pa,variables:{chain:e??a.bex.chainName,range:t}})).data.polGetSWberaVaultSnapshots}catch(i){throw console.error("Failed to get SW Bera Snapshots",i),i}}import{wberaStakerVaultAbi as va}from"@berachain/abis/pol/wberaStakerVault";async function oe({publicClient:e,address:t}){let r=await e.readContract({address:t,abi:va,functionName:"WITHDRAWAL_COOLDOWN"});return Number(r)}import{erc20Abi as ye,erc4626Abi as ne}from"viem";async function Ru({address:e,underlyingAsset:t,publicClient:r,blockTime:a}){v(r);let o=26;try{let i=await r.getBlock({blockTag:"latest"}),l=Math.floor(o*60*60/a),n=i.number-BigInt(l),[s,m,u,d,f,g,p,A,h,P,y]=await Promise.all([r.readContract({address:e,abi:ne,functionName:"totalAssets"}),r.readContract({address:e,abi:ne,functionName:"totalSupply"}),r.readContract({address:e,abi:ne,functionName:"previewRedeem",args:[10n**18n],blockNumber:i.number}),r.readContract({address:t,abi:ye,functionName:"balanceOf",args:[e]}),r.readContract({address:e,abi:ne,functionName:"totalAssets",blockNumber:n}),r.readContract({address:e,abi:ye,functionName:"totalSupply",blockNumber:n}),r.readContract({address:e,abi:ne,functionName:"previewRedeem",args:[10n**18n],blockNumber:n}),r.readContract({address:t,abi:ye,functionName:"balanceOf",args:[e],blockNumber:n}),r.readContract({address:t,abi:ye,functionName:"totalSupply"}),oe({publicClient:r,address:e}),Pt({})]),I=new N(p.toString()),k=new N(u.toString());return{address:e,current:{exchangeRate:k.toString(),totalSupply:new N(m.toString()).dividedBy(1e18).toString(),totalAssets:new N(s.toString()).dividedBy(1e18).toString(),tvl:new N(d.toString()).dividedBy(1e18).toString()},previous:{exchangeRate:I.toString(),totalSupply:new N(g.toString()).dividedBy(1e18).toString(),totalAssets:new N(f.toString()).dividedBy(1e18).toString(),tvl:new N(A.toString()).dividedBy(1e18).toString()},totalWBeraIssued:new N(h.toString()).dividedBy(1e18).toString(),lockPeriod:P,totalBuyBacks:y.sumAllClaims,totalBuyBacksInLast24Hours:y.sumClaimsInLast24Hours}}catch(i){throw console.error("Failed to get SW Bera Vault Metadata",i),i}}import{wberaStakerVaultAbi as Ae}from"@berachain/abis/pol/wberaStakerVault";function Rt(e){let t=Date.now(),r=e*1e3-t;if(r<=0)return;let a=S(r);return $e(a,!0,!0)}async function Tu({contractAddress:e,accountAddress:t,publicClient:r,version:a}){let o=[];function i(l,n){let[s,m,u]=l,d=s,f=Number(u)+Number(n),g=S(Date.now()),p=f-g;if(d>0){let A=Rt(p<=0?0:f);o.push({receiptTokenAddress:e,withdrawalAmount:d,timeRemaining:A})}}switch(a){case"V1":{let[l,n]=await Promise.all([r.readContract({address:e,abi:Ae,functionName:"withdrawalRequests",args:[t]}),oe({publicClient:r,address:e})]);return i(l,n),o}case"V2":{let[l,n]=await Promise.all([r.readContract({address:e,abi:Ae,functionName:"getERC721WithdrawalRequestIds",args:[t]}),oe({publicClient:r,address:e})]);if(V(e,"SWBERA")){let u=await r.readContract({address:e,abi:Ae,functionName:"withdrawalRequests",args:[t]});i(u,n)}let m=(await Promise.all(l.map(async u=>{let d=await r.readContract({address:e,abi:Ae,functionName:"getERC721WithdrawalRequest",args:[u]}),{assets:f,requestTime:g}=d;if(!f||!g)throw new Error("Invalid withdrawal request");let p=f,A=Number(g)+Number(n),h=S(Date.now()),P=A-h;if(p>0){let y=Rt(P<=0?0:A);return{withdrawalAmount:p,timeRemaining:y,withdrawalRequestId:u,receiptTokenAddress:e}}return null}))).filter(u=>u!==null);return o.push(...m),o}}}import{wberaStakerVaultAbi as Ra}from"@berachain/abis/pol/wberaStakerVault";async function qu({vaultAddresses:e,publicClient:t}){v(t);try{let r=await Promise.all(e.map(async o=>await t.readContract({address:o,abi:Ra,functionName:"totalAssets"})));return e.reduce((o,i,l)=>(o[i]=r[l],o),{})}catch(r){throw console.error("Failed to get total staked amount",r),r}}async function Lu({account:e,...t}){let{config:r}=c(t),a=await fetch(`${r.pol.bribeBoostApi}/api/v1/wallets/${e.toLowerCase()}/rewards/aggregation`,{cache:"no-store"});if(!a.ok){let o=await le(a);throw new B({message:"Failed to fetch incentives on server",cause:{error:o,result:a,account:e},reason:o?.error})}return await a.json()}import{rewardVaultAbi as Va}from"@berachain/abis/pol/rewards/rewardVault";async function Vt({account:e,vaultAddress:t,publicClient:r}){if(!r)throw new Error("Missing public client");if(!e)throw new Error("Missing user account");if(!t)throw new Error("Missing vault address");return await r.readContract({address:t,abi:Va,functionName:"earned",args:[e]})}import{formatEther as Te}from"viem";import{rewardVaultAbi as St}from"@berachain/abis/pol/rewards/rewardVault";async function Nt({account:e,vaultAddress:t,publicClient:r}){v(r),Ce(e,"account"),Ce(t,"vaultAddress");try{let[a,o]=await Promise.all([r.readContract({address:t,abi:St,functionName:"balanceOf",args:[e]}),r.readContract({address:t,abi:St,functionName:"getTotalDelegateStaked",args:[e]})]);return{balance:a,delegated:o}}catch(a){throw console.log(a),a}}import{rewardVaultAbi as Sa}from"@berachain/abis/pol/rewards/rewardVault";async function kt({vaultAddress:e,publicClient:t}){if(!t)throw new Error("Missing public client");if(!e)throw new Error("Missing vault address");try{return await t.readContract({address:e,abi:Sa,functionName:"totalSupply",args:[]})}catch(r){throw console.log(r),r}}async function ec({account:e,vaultAddress:t,publicClient:r}){let[a,o,i]=await Promise.all([Nt({account:e,vaultAddress:t,publicClient:r}),Vt({account:e,vaultAddress:t,publicClient:r}),kt({vaultAddress:t,publicClient:r})]),l=a.balance-a.delegated,n=i>0n?Number(Number.parseFloat(Te(a.balance))/Number.parseFloat(Te(i))).toString():"0";return{balance:a.balance,delegatedBalance:a.delegated,withdrawableBalance:l,rewards:Te(o),percentage:n}}import{formatUnits as Ee}from"viem";import{rewardVaultAbi as Gt}from"@berachain/abis/pol/rewards/rewardVault";import{GetUserVaults as Na}from"@berachain/graphql/pol/api";async function uc({account:e,publicClient:t,...r}){let{config:a}=c(r),l=(await b("api",r).query({query:Na,variables:{userId:e,chain:a.bex.chainName}})).data?.userVaultDeposits?.deposits;if(!l)return{totalBgtRewards:"0",vaults:[],totalStakedValue:0};let[n,s]=await Promise.all([t.multicall({allowFailure:!1,contracts:l.map(g=>({address:g.vaultAddress,abi:Gt,functionName:"earned",args:[e]}))}),t.multicall({allowFailure:!1,contracts:l.map(g=>({address:g.vaultAddress,abi:Gt,functionName:"balanceOf",args:[e]}))})]),{userVaults:m,total:u}=l.reduce((g,p,A)=>{let h=n[A],P=s[A];if(g.total+=h,!p.vault)return M.captureException(new B({message:"Deposit data from API is missing vault",level:"error",extra:{deposit:p}})),console.error("Deposit data from API is missing vault",p),g;if(h>0n||P>0n){let y=p.vault.dynamicData?.tvl&&Number(p.vault.stakingTokenAmount)!==0?Number(p.vault.dynamicData?.tvl??0)/Number(p.vault.stakingTokenAmount):null;g.userVaults.push({...p,vault:p.vault,unclaimedBgt:Ee(h,18),formattedBalance:Ee(P,p.vault.stakingToken.decimals),stakingTokenPrice:y})}return g},{userVaults:[],total:0n}),d=[...m].sort((g,p)=>{if(g.vault.isVaultWhitelisted&&!p.vault.isVaultWhitelisted)return-1;if(!g.vault.isVaultWhitelisted&&p.vault.isVaultWhitelisted)return 1;let A=Number.parseFloat(g.unclaimedBgt);return Number.parseFloat(p.unclaimedBgt)-A});return{totalStakedValue:d.reduce((g,p)=>{let A=Number(p.vault.dynamicData?.tvl??0);if(A===0)return g;let h=Number.parseFloat(p.vault.stakingTokenAmount),P=A/h;return g+P*Number(p.formattedBalance)},0),totalBgtRewards:Ee(u,18),vaults:d}}import{GetVaultHistory as ka}from"@berachain/graphql/pol/api";async function fc({vault:e,chain:t,...r}){let{config:a}=c(r);return(await b("api",r).query({query:ka,variables:{...r,vaultId:e,chain:t??a.bex.chainName}})).data.polGetRewardVaultSnapshots}import{GetVaultValidators as Ga}from"@berachain/graphql/pol/api";async function Ac({address:e,onlyActiveValidators:t,...r}){return(await b("api",r).query({query:Ga,variables:{vaultId:e,isActive:t}})).data.validators.validators??[]}import{getAddress as xa,zeroAddress as Ta}from"viem";import{GetTokenCurrentPrices as Ea}from"@berachain/graphql/dex/api";async function Vc({addressIn:e,...t}){let{config:r,chainId:a}=c(t),o=e.map(n=>n.toLowerCase()).filter((n,s,m)=>n&&m.indexOf(n)===s),i=b("api",t),{data:l}=await i.query({query:Ea,variables:{chains:[r.bex.chainName],addressIn:o}});return l.tokenGetCurrentPrices.reduce((n,s)=>{if(!s.price||!s.address)return n;let m=s.address;return n[xa(m)]={price:K(s.price.toString()),updatedAt:s.updatedAt,chainId:a},n[m.toLowerCase()]={price:K(s.price.toString()),updatedAt:s.updatedAt,chainId:a},V(m,"WBERA")&&(n[Ta]={price:K(s.price.toString()),updatedAt:s.updatedAt,chainId:a},n[r.tokens.bgt.toLowerCase()]={price:K(s.price.toString()),updatedAt:s.updatedAt,chainId:a},n[r.tokens.bgt]={price:K(s.price.toString()),updatedAt:s.updatedAt,chainId:a}),n},{})}import{getPublicClient as Fa}from"@wagmi/core";import{erc20Abi as Ia,formatUnits as qa}from"viem";async function xc({items:e,account:t,config:r}){j(e,"items"),j(r,"config"),j(t,"account");let a=Object.groupBy(e,i=>i.token.chainId);return(await Promise.allSettled(Object.entries(a).map(async([i,l])=>{if(!l)return[];let n=Fa(r,{chainId:Number(i)});return v(n,`publicClient ${i}`),(await n.multicall({contracts:l.map(u=>({address:u.token.address,abi:Ia,functionName:"allowance",args:[t,u.spender]}))})).map((u,d)=>{let f=l[d];return u.error?void 0:{token:f.token,spender:f.spender,amount:f.amount,allowance:{raw:u.result.toString(),formatted:qa(u.result,f.token.decimals)},needsApproval:u.result<BigInt(f.amount.raw)}}).filter(u=>!!u)}))).flatMap(i=>i.status==="fulfilled"?i.value:void 0).filter(i=>!!i)}import{getPublicClient as Ua,getWalletClient as Wa,switchChain as La}from"@wagmi/core";import{BaseError as Oa,createWalletClient as Ma,decodeErrorResult as Ha,HttpRequestError as _a,http as Ja}from"viem";import{ChainId as $a,defaultChainId as Et}from"@berachain/config/internal";import{AbiFunctionSignatureNotFoundError as Da,decodeFunctionData as Qa}from"viem";async function xt({publicClient:e,abi:t,...r}){let a=[...se,...t??[]],o,i,l,n,s,m,u;if("txHash"in r){let d=await e.getTransaction({hash:r.txHash});if(!d.to)throw new x({property:"tx",value:d,expected:"Transaction",message:"Trying to get revert reason for a contract creation"});s=d.input,i=d.to,l=d.from,n=d.value,o=d.blockNumber}else if(o=r.blockNumber,i=r.to,l=r.account,n=r.value,"data"in r)s=r.data;else if("functionName"in r&&"args"in r)m=r.functionName,u=r.args;else if(!n)throw new x({property:"dataOrFunctionNameAndArgs",value:r,expected:"Hex or FunctionName and Args"});try{if(!a)if(s)await e.call({data:s,to:i,account:l,blockNumber:o,value:n});else throw new Error("Data is required if abi is not provided");if("functionName"in r&&"args"in r&&r.functionName)m=r.functionName,u=r.args;else if(s){if(!a){let d=await e.call({data:s,to:i,account:l,blockNumber:o,value:n});throw new Error(`Getting revert reason for successful simulation. Data: ${s}`,{cause:d})}try{let d=Qa({abi:a,data:s});m=d.functionName,u=d.args}catch(d){throw d instanceof Da&&await e.call({data:s,to:i,account:l,blockNumber:o,value:n}),new Error("Data is required if abi is not provided")}}else throw new Error("No data or function name and args provided");throw a&&m?(await e.simulateContract({functionName:m,args:u,abi:a,address:i,account:l,blockNumber:o}),new H({message:"Getting revert reason for successful simulation",functionName:m,to:i,txHash:"txHash"in r?r.txHash:void 0,input:r})):new Error("No data or function name and args provided")}catch(d){if(d instanceof Error)return ee({error:d,abi:a,revertIfUnknown:!0});throw d}}var ja=Me(1),Tt=(e,t)=>e*(100n+BigInt(t))/100n;function Fe({nonceResult:e,onWarning:t}){if(e.status==="fulfilled"){if(e.value&&e.value>Number.MAX_SAFE_INTEGER){t?.(new B({message:"Nonce is too large. No nonce will be provided to avoid IntegerOutOfRangeError.",cause:e.value,level:"debug"}));return}return e.value}}function Ka(e=Et){return e===$a.BEPOLIA?process.env.NEXT_PUBLIC_80069_ANVIL_IMPERSONATE_ACCOUNT==="true":process.env.NEXT_PUBLIC_80094_ANVIL_IMPERSONATE_ACCOUNT==="true"}async function Zc(e){if(process.env.NODE_ENV==="development"&&!e.contractName&&e.address&&!("calls"in e||e.calls))throw console.warn("beraWriteContract: Contract name is required. Either update the contract mapping in devrel or provide a contract name in ContractName enum","This is a development error and will be thrown in development mode only."),new x({property:"contractName",value:e.contractName,expected:"ContractName",displayMessage:`[DEV] Contract name is required as it's not mapped in the devrel's contract mapping ${e.address}`,level:"error"});let{address:t,calls:r,value:a,gasLimit:o,onLoading:i,onSuccess:l,onWarning:n,onError:s,onSubmission:m,wagmiConfig:u,walletClient:d,account:f,txConfirmationTimeout:g=12e4,chainId:p=Et,impersonateAccount:A=Ka(p),errorsAbi:h=[],pollingInterval:P=ja,...y}=e;i?.(e);let I="data"in y?y.data:void 0,k=[...se,...h,..."abi"in y&&y.abi&&Array.isArray(y.abi)?y.abi:[]],T=d;if(!u){s?.(new x({property:"wagmiConfig",value:u,expected:"Config"}),e);return}if(!(T?.account?.type==="local"))try{await La(u,{chainId:p})}catch(R){let G=R;s?.(new B({cause:G,displayMessage:"There was an error switching to the chain."}),e);return}if(!T)try{T=await Wa(u,{chainId:p})}catch(R){s?.(new B({cause:R,displayMessage:"There was an error connecting to the wallet."}),e);return}if(!T){s?.(new x({displayMessage:"There was an error connecting to the wallet.",property:"walletClient",value:T,expected:"WalletClient"}),e);return}let q=f||T.account;if(!q){s?.(new x({property:"account",value:q,expected:"Account"}),e);return}let ie=typeof q=="string"?q:q.address,W=Ua(u,{chainId:p});try{v(W)}catch(R){s?.(R,e);return}if(A){let R=Be(p);await R.impersonateAccount({address:ie}),T=Ma({transport:Ja(R.transport.url),account:q,chain:T.chain})}let E,Z={calls:"calls"in y?y.calls:void 0,params:"params"in y?y.params:void 0,value:a,data:"data"in y?y.data:void 0};try{let R=W.getTransactionCount({address:ie,blockTag:"latest"}).catch(()=>{}),G={account:ie,to:t,address:t,chainId:p,value:a};if(r){let F=r.map(w=>{if("abi"in w&&Array.isArray(k)&&k.push(...w.abi),"data"in w)return{to:w.address,data:w.data,value:w.value??0n};if("abi"in w&&"functionName"in w){let L="params"in w?w.params:void 0;return{to:w.address,abi:w.abi,functionName:w.functionName,args:L,value:w.value??0n}}return{to:w.address,value:w.value??0n}});if(e.enableSimulateCalls){let w=await W.simulateCalls({calls:F,account:q}),L=w.results.findIndex(O=>O.status==="failure");if(L!==-1){if(w.block.number===null)throw new x({property:"blockNumber",value:w.block.number,expected:"bigint",message:"Block number is null"});let O=w.results[L],{reason:we}=O.data&&O.data!=="0x"?{reason:De(Ha({data:O.data,abi:k}))}:ee({error:O.error,revertIfUnknown:!1,abi:k});s?.(new H({cause:O.error,txHash:E,chainId:p,reason:we,abi:k,input:Z,blockNumber:w.block.number}),e);return}}if(process.env.NODE_ENV==="test")throw new x({displayMessage:"Batch calls are not supported in test environment",expected:"not test",property:"NODE_ENV",value:process.env.NODE_ENV,level:"fatal"});let Q=await T.sendCalls({calls:F,account:q,forceAtomic:!0});m?.({id:Q.id},e);let U=await T.waitForCallsStatus({id:Q.id,pollingInterval:P,timeout:g});if(U.status==="success"){let w=U.receipts?.[0];if(!w)throw new B({message:"Call status is success but no receipt was found",cause:U,level:"error",reason:"CALL_STATUS_SUCCESS_BUT_NO_RECEIPT"});return l?.(w,e),w}throw console.error("wallet_sendCalls: Call failed",U),new H({cause:U,level:"error",input:Z,txHash:E,abi:k,chainId:p})}if(I){let[F,Q,U]=await Promise.allSettled([W.call({...G,data:I}),o??W.estimateGas({...G,data:I}),R]);if(F.status==="rejected")throw F.reason;let w=Q.status==="fulfilled"?Tt(Q.value,10):Pe;E=await T.sendTransaction({data:I,to:t,account:q,gas:w,chainId:p,nonce:Fe({nonceResult:U,onWarning(L){n?.(L,e)}}),value:a}),m?.({txHash:E},e)}else if("abi"in y&&"functionName"in y){let{abi:F,functionName:Q}=y,U="params"in y?y.params:void 0,[w,L,O]=await Promise.allSettled([W.simulateContract({...G,abi:k,functionName:Q,args:U,account:q}),o??W.estimateContractGas({...G,abi:k,functionName:Q,args:U}),R]);if(w.status==="rejected")throw w.reason;let we=o??(L.status==="fulfilled"?Tt(L.value,10):Pe);E=await T.writeContract({...w.value.request,chainId:p,gas:we,nonce:Fe({nonceResult:O,onWarning(Ut){n?.(Ut,e)}})}),m?.({txHash:E},e)}else{let[F]=await Promise.allSettled([R]);E=await T.sendTransaction({chainId:p,to:t,value:a,account:q,nonce:Fe({nonceResult:F,onWarning(Q){n?.(Q,e)}})}),m?.({txHash:E},e)}process.env.NODE_ENV==="test"&&await Be(p).mine({blocks:1});let J=await W.waitForTransactionReceipt({hash:E,pollingInterval:P,timeout:g,confirmations:1});if(J.status==="success")l?.(J,e);else{let F=await xt({publicClient:W,blockNumber:J.blockNumber,to:t,account:ie,abi:k,args:"params"in y?y.params:void 0,functionName:"functionName"in y?y.functionName:void 0,value:a,data:I});process.env.NODE_ENV==="test"&&console.error("beraWriteContract: Revert reason",F),s?.(new H({reason:F.reason,txHash:E,receipt:J,to:t,functionName:"functionName"in y?y.functionName:void 0,input:Z,chainId:p,abi:k,blockNumber:J.blockNumber}),e)}return J}catch(R){if(R instanceof B)s?.(R,e);else if(R instanceof Error){let G=ee({error:R,revertIfUnknown:!1,abi:k});if(G&&G.rootCause instanceof Oa&&"url"in G.rootCause){s?.(new $({cause:G.rootCause,response:void 0,endpoint:{url:G.rootCause.url,type:"rpc"},statusCode:G.rootCause instanceof _a?G.rootCause.status:void 0}),e);return}s?.(new H({cause:R,to:t,txHash:E,chainId:p,abi:k,functionName:"functionName"in y?y.functionName:void 0,input:Z}),e)}else s?.(new H({cause:R,txHash:E,to:t,chainId:p,functionName:"functionName"in y?y.functionName:void 0,input:Z,abi:k}),e)}}import{GetValidators as Ya}from"@berachain/graphql/pol/api";async function Ft({variables:e={},...t}={}){let{config:r}=c(t);return(await b("api",t).query({query:Ya,variables:{chain:r.bex.chainName,...e}})).data}import{isAddressEqual as za}from"viem";async function sd({allocation:e}){let t=await ge({filter:{where:{vaultAddressIn:e.weights.map(a=>a.receiver)}}}),r=e?.start.blockNumber??0;return e?.weights.map(a=>({percentage:a.percentage,receiver:a.receiver,startBlock:r,receivingVault:t?.gaugeList.find(o=>za(o.address,a.receiver))}))}import{GetValidator as Xa}from"@berachain/graphql/pol/api";async function md({id:e,...t}){let{config:r}=c(t);return(await b("api",t).query({query:Xa,variables:{id:e,chain:r.bex.chainName}})).data}import{GetValidatorBlockStats as Za}from"@berachain/graphql/pol/subgraph";async function bd({pubKey:e,first:t=1,...r}){let a=b("pol.subgraph",r);try{return(await a.query({query:Za,variables:{pubKey:e,first:t}})).data}catch(o){throw console.error("GetValidatorBlockStats:",o),o}}import{beraChefAbi as It}from"@berachain/abis/pol/rewards/beraChef";function X(e,t){return{start:{blockNumber:Number(e.startBlock),timestamp:e.startBlock!==0n?t:0},weights:e.weights.map(r=>({receiver:r.receiver,percentage:Number(r.percentageNumerator)/1e4}))}}function eo(e,t){return e.start.blockNumber===t.start.blockNumber&&e.weights.every((r,a)=>r.percentage===t.weights[a].percentage)}async function wd({client:e,pubKey:t,...r}){let{config:a}=c(r);try{let[o,i]=await Promise.all([e.readContract({address:a.pol.beraChef,abi:It,functionName:"getActiveRewardAllocation",args:[t]}),e.readContract({address:a.pol.beraChef,abi:It,functionName:"getSetActiveRewardAllocation",args:[t]})]),[l,n]=await Promise.all([o.startBlock!==0n?e.getBlock({blockNumber:BigInt(o.startBlock)}):{timestamp:0},i.startBlock!==0n?e.getBlock({blockNumber:BigInt(i.startBlock)}):{timestamp:0}]),s=X(o,Number(l.timestamp)),m=X(i,Number(n.timestamp)),u=!1;return m.start.blockNumber===0?u=!0:u=!eo(m,s),{activeRewardAllocation:s,setRewardAllocation:m,isBaseline:u,isNeverSet:m?.start.blockNumber===0}}catch(o){throw console.log("getValidatorRewardAllocation:",o),o}}import{beraChefAbi as to}from"@berachain/abis/pol/rewards/beraChef";function Rd(e){return e.start.blockNumber===0}async function Vd({client:e,...t}){let{config:r}=c(t),a=await e.readContract({address:r.pol.beraChef,abi:to,functionName:"getDefaultRewardAllocation",args:[]});return X({...a,startBlock:0n},0)}async function Nd({client:e,valPubKey:t}){return 5614}import{formatEther as he}from"viem";import{bgtAbi as Ie}from"@berachain/abis/pol/bgt";async function qt({account:e,pubkey:t,publicClient:r,...a}){let{config:o}=c(a);if(!e)throw new Error("account is required");if(!r)throw new Error("publicClient is required");let[i,l,n]=await Promise.all([r.readContract({address:o.tokens.bgt,abi:Ie,functionName:"boosted",args:[e,t]}),r.readContract({address:o.tokens.bgt,abi:Ie,functionName:"boostedQueue",args:[e,t]}),r.readContract({address:o.tokens.bgt,abi:Ie,functionName:"dropBoostQueue",args:[e,t]})]),s=i-n[1];return{pubkey:t,droppableBoostAmount:he(s),activeBoostAmount:he(i),queuedBoostAmount:he(l[1]),queuedDropBoostAmount:he(n[1]),queuedBoostStartBlock:l[0],queuedDropBoostStartBlock:n[0],hasPendingBoosts:l[1]>0n||n[1]>0n,hasActiveBoosts:i>0n,hasDroppableBoosts:s>0n}}import{formatEther as ao,parseEther as Qt}from"viem";import{GetUserValidatorInformation as ro}from"@berachain/graphql/pol/api";async function Dt({account:e,...t}){let{config:r}=c(t);return await b("api",t).query({query:ro,variables:{address:e.toLowerCase(),chain:r.bex.chainName}})}async function Md({account:e,publicClient:t,chain:r,...a}){let{config:o}=c(a),i=r??o.bex.chainName,l=await Dt({account:e}),[n,s]=await Promise.all([Ft({variables:{chain:i,where:{idIn:l.data.polGetValidatorBoosts.boosts.map(m=>m.validatorId)}}}),Promise.all(l.data.polGetValidatorBoosts.boosts.filter(m=>!!m.validator).map(m=>qt({account:e,pubkey:m.validator.pubkey,publicClient:t})))]);return n?.validators.validators.map(m=>{let u=s.find(f=>f.pubkey.toLowerCase()===m.pubkey.toLowerCase());if(!u)throw new Error("User deposited not found");let d=Qt(u?.activeBoostAmount??"0")-Qt(u?.queuedDropBoostAmount);return{...m,userBoosts:{pubkey:u.pubkey,activeBoostAmount:u?.activeBoostAmount,queuedBoostAmount:u?.queuedBoostAmount,queuedBoostStartBlock:Number(u?.queuedBoostStartBlock),queuedDropBoostAmount:u?.queuedDropBoostAmount,queuedDropBoostStartBlock:Number(u?.queuedDropBoostStartBlock),droppableBoostAmount:ao(d),hasPendingBoosts:Number(u?.queuedBoostAmount)>0||Number(u?.queuedDropBoostAmount)>0,hasActiveBoosts:Number(u?.activeBoostAmount)>0,hasDroppableBoosts:d>0n}}})}var oo=[{validatorAddress:"0x8f51e63d9921a461be29e73dca1c2385e1adc5943fbb36ded4ba96025ee8a783184d1118da08171f6ea831153c878a6d",earning:.045,staked:{amount:16114000000000000000n,formattedAmount:"161.14"},rewards:{amount:15214000000000000000n,formattedAmount:"152.14"}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0x97b21253b17f4e814fe7505c15c18e68c85ab2477274ad370a762df50e3eb4cb1a48451e089bc22e158d7448549a8ab9",earning:.045,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{stake:[{amount:16159000000000000000n,formattedAmount:"161.59"}],unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:S(Date.now()-72e6)}]}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0xa2705d6b27891f3f5651f26547d1bb79e256f95f249d1ad717cef087d77d38b037e5d6dbaa2538930fd0731ec9b02f3a",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:S(Date.now()-72e6)}]}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0xa2705d6b27891f3f5651f26547d1bb79e256f95f249d1ad717cef087d77d38b037e5d6dbaa2538930fd0731ec9b02f3a",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:S(Date.now()-72e6)}]}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0xa2705d6b27891f3f5651f26547d1bb79e256f95f249d1ad717cef087d77d38b037e5d6dbaa2538930fd0731ec9b02f3a",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:S(Date.now()-72e6)}]}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0xa2705d6b27891f3f5651f26547d1bb79e256f95f249d1ad717cef087d77d38b037e5d6dbaa2538930fd0731ec9b02f3a",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:S(Date.now()-72e6)}]}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0xa2705d6b27891f3f5651f26547d1bb79e256f95f249d1ad717cef087d77d38b037e5d6dbaa2538930fd0731ec9b02f3a",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:S(Date.now()-72e6)}]}},{staked:{amount:241514000000000000000n,formattedAmount:"2415.14"},validatorAddress:"0xa4e4b63514f54d61da5197359f11ff1fc2930788ba2ffdd30c2fc059cbe0221020197bf9446b16ac347f36c7517a8686",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:1159000000000000000n,formattedAmount:"11.59",timestamp:S(Date.now()-36e6)}]}},{validatorAddress:"0xb0511ec039591e98bd4e183ba70b85572214a7ad8ca1a43e96ad3495d3821054927bc542e5482ec9733e35b7ef0b1f03",earning:.045,staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{stake:[{amount:1159000000000000000n,formattedAmount:"11.59"}]}}];async function Jd(e){return await new Promise(t=>setTimeout(t,2e3)),e==="0x4C368fFE3650379d6318C8d4630bc51f8Ad12bB6"?oo:[]}import{GetValidatorAnalytics as no}from"@berachain/graphql/pol/subgraph";async function zd({pubkey:e,dayRange:t,...r}){return(await b("pol.subgraph",r).query({query:no,variables:{pubKey:e,timestamp:Je(t).toString()}})).data}import{beraChefAbi as io}from"@berachain/abis/pol/rewards/beraChef";async function tm({client:e,pubKey:t,...r}){let{config:a}=c(r),o=await e.readContract({address:a.pol.beraChef,abi:io,functionName:"getValCommissionOnIncentiveTokens",args:[t]});return Number(o??0n)/1e4}var om=(e,t,r)=>{if(!t||!e)return 0;let a=te(1)/r;return(t?a*(Number(e.dynamicData?.stakedBeraAmount)/t):0)*Number.parseFloat(e.dynamicData?.rewardRate??"0")};import{beaconDepositAbi as so}from"@berachain/abis/pol/beaconDeposit";async function lm({client:e,pubKey:t,...r}){let{config:a}=c(r);try{return await e.readContract({address:a.depositContract,abi:so,functionName:"getOperator",args:[t]})}catch(o){throw console.log("getValidatorOperatorAddress:",o),o}}import{beraChefAbi as lo}from"@berachain/abis/pol/rewards/beraChef";async function mm({client:e,pubKey:t,...r}){let{config:a}=c(r),o=await e.readContract({address:a.pol.beraChef,abi:lo,functionName:"getValQueuedCommissionOnIncentiveTokens",args:[t]});return{blockNumberLast:o.blockNumberLast,commissionRate:Number(o.commissionRate)/1e4}}import{beaconDepositAbi as uo}from"@berachain/abis/pol/beaconDeposit";async function bm({client:e,pubKey:t,...r}){let{config:a}=c(r);try{return await e.readContract({address:a.depositContract,abi:uo,functionName:"queuedOperator",args:[t]})}catch(o){throw console.log("getValidatorQueuedOperatorAddress:",o),o}}import{beraChefAbi as co}from"@berachain/abis/pol/rewards/beraChef";async function Cm({client:e,pubKey:t,...r}){let{config:a}=c(r);try{let o=await e.readContract({address:a.pol.beraChef,abi:co,functionName:"getQueuedRewardAllocation",args:[t]});return X(o,0)}catch(o){throw console.log("getValidatorQueuedRewardAllocation:",o),o}}export{go as a,de as b,b as c,Eo as d,ze as e,Mo as f,en as g,nn as h,dn as i,Ze as j,Pn as k,Sn as l,En as m,Y as n,Qn as o,pe as p,Mn as q,Jn as r,zn as s,it as t,ii as u,ci as v,fi as w,Ai as x,st as y,Se as z,ut as A,Ji as B,Yi as C,Hr as D,ts as E,ss as F,gt as G,ys as H,bt as I,Gs as J,qs as K,Ws as L,ra as M,_s as N,js as O,Xs as P,ge as Q,Sl as R,Pt as S,Fl as T,Ul as U,Hl as V,Yl as W,au as X,iu as Y,du as Z,bu as _,oe as $,Ru as aa,Tu as ba,qu as ca,Lu as da,Vt as ea,ec as fa,uc as ga,fc as ha,Ac as ia,Vc as ja,xc as ka,Ka as la,Zc as ma,Ft as na,sd as oa,md as pa,bd as qa,X as ra,eo as sa,wd as ta,Rd as ua,Vd as va,Nd as wa,qt as xa,Md as ya,Jd as za,zd as Aa,tm as Ba,om as Ca,lm as Da,mm as Ea,bm as Fa,Cm as Ga};
|
|
4
|
-
//# sourceMappingURL=chunk-3YEM767C.mjs.map
|