@berachain/berajs 0.2.8-beta.4 → 0.2.8-beta.6

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.
Files changed (150) hide show
  1. package/dist/abi/exports.cjs +1 -4452
  2. package/dist/abi/exports.cjs.map +1 -1
  3. package/dist/abi/exports.mjs +1 -4452
  4. package/dist/abi/exports.mjs.map +1 -1
  5. package/dist/actions/exports.cjs +1 -918
  6. package/dist/actions/exports.cjs.map +1 -1
  7. package/dist/actions/exports.mjs +1 -918
  8. package/dist/actions/exports.mjs.map +1 -1
  9. package/dist/chunk-3MZ7MLKF.mjs +2 -0
  10. package/dist/{chunk-PBCE7JTE.mjs.map → chunk-3MZ7MLKF.mjs.map} +1 -1
  11. package/dist/chunk-53TSJM6P.cjs +2 -0
  12. package/dist/chunk-53TSJM6P.cjs.map +1 -0
  13. package/dist/chunk-575OK77P.mjs +2 -0
  14. package/dist/{chunk-GLWPRM33.mjs.map → chunk-575OK77P.mjs.map} +1 -1
  15. package/dist/chunk-5NDYN2IB.mjs +4 -0
  16. package/dist/chunk-5NDYN2IB.mjs.map +1 -0
  17. package/dist/chunk-5W7UKRHX.mjs +2 -0
  18. package/dist/{chunk-J6EHBYSV.mjs.map → chunk-5W7UKRHX.mjs.map} +1 -1
  19. package/dist/chunk-7EAKCNQT.cjs +2 -0
  20. package/dist/chunk-7EAKCNQT.cjs.map +1 -0
  21. package/dist/chunk-CWKDFUFR.mjs +2 -0
  22. package/dist/{chunk-OWUI3VPI.mjs.map → chunk-CWKDFUFR.mjs.map} +1 -1
  23. package/dist/chunk-DDEQFR3M.cjs +2 -0
  24. package/dist/chunk-DDEQFR3M.cjs.map +1 -0
  25. package/dist/chunk-DKY4QPWU.cjs +2 -0
  26. package/dist/chunk-DKY4QPWU.cjs.map +1 -0
  27. package/dist/chunk-DTBJO6VT.cjs +2 -0
  28. package/dist/chunk-DTBJO6VT.cjs.map +1 -0
  29. package/dist/chunk-E32UP4GV.cjs +2 -0
  30. package/dist/chunk-E32UP4GV.cjs.map +1 -0
  31. package/dist/chunk-ESAVA5OD.mjs +2 -0
  32. package/dist/{chunk-ALPEMPZI.mjs.map → chunk-ESAVA5OD.mjs.map} +1 -1
  33. package/dist/chunk-G4CNETLS.mjs +2 -0
  34. package/dist/{chunk-CYBZH6U3.mjs.map → chunk-G4CNETLS.mjs.map} +1 -1
  35. package/dist/chunk-I7M43BB4.cjs +2 -0
  36. package/dist/chunk-I7M43BB4.cjs.map +1 -0
  37. package/dist/chunk-KT6L4K4K.cjs +2 -0
  38. package/dist/chunk-KT6L4K4K.cjs.map +1 -0
  39. package/dist/chunk-MK5NS5B5.mjs +2 -0
  40. package/dist/{chunk-7TFV6UKF.mjs.map → chunk-MK5NS5B5.mjs.map} +1 -1
  41. package/dist/chunk-NAXAZJJY.mjs +2 -0
  42. package/dist/{chunk-ZCEFC2TK.mjs.map → chunk-NAXAZJJY.mjs.map} +1 -1
  43. package/dist/chunk-NLVWRMGD.mjs +2 -0
  44. package/dist/{chunk-GWSTVITN.mjs.map → chunk-NLVWRMGD.mjs.map} +1 -1
  45. package/dist/chunk-OGBD5YOG.mjs +2 -0
  46. package/dist/{chunk-JA4DHMTG.mjs.map → chunk-OGBD5YOG.mjs.map} +1 -1
  47. package/dist/chunk-OGJMSGB2.mjs +2 -0
  48. package/dist/{chunk-KL6YZ5VR.mjs.map → chunk-OGJMSGB2.mjs.map} +1 -1
  49. package/dist/chunk-OIYXOKTT.cjs +2 -0
  50. package/dist/chunk-OIYXOKTT.cjs.map +1 -0
  51. package/dist/chunk-OUD27MU7.cjs +2 -0
  52. package/dist/chunk-OUD27MU7.cjs.map +1 -0
  53. package/dist/chunk-QFLDL4UV.cjs +2 -0
  54. package/dist/chunk-QFLDL4UV.cjs.map +1 -0
  55. package/dist/chunk-RSDCKN4Q.mjs +2 -0
  56. package/dist/chunk-RSDCKN4Q.mjs.map +1 -0
  57. package/dist/chunk-RWOICHRW.cjs +2 -0
  58. package/dist/chunk-RWOICHRW.cjs.map +1 -0
  59. package/dist/chunk-S5VOCVBR.mjs +2 -0
  60. package/dist/{chunk-MKS6W5NI.mjs.map → chunk-S5VOCVBR.mjs.map} +1 -1
  61. package/dist/chunk-SSPFPAWX.mjs +2 -0
  62. package/dist/{chunk-WAFQFAI7.mjs.map → chunk-SSPFPAWX.mjs.map} +1 -1
  63. package/dist/chunk-T5FSQ3YE.mjs +2 -0
  64. package/dist/{chunk-WEULAXBE.mjs.map → chunk-T5FSQ3YE.mjs.map} +1 -1
  65. package/dist/chunk-WD4B3SXS.cjs +4 -0
  66. package/dist/chunk-WD4B3SXS.cjs.map +1 -0
  67. package/dist/chunk-WRFDB3QJ.cjs +2 -0
  68. package/dist/chunk-WRFDB3QJ.cjs.map +1 -0
  69. package/dist/chunk-XNJLSA6P.cjs +2 -0
  70. package/dist/chunk-XNJLSA6P.cjs.map +1 -0
  71. package/dist/chunk-ZYXVUXFQ.cjs +2 -0
  72. package/dist/chunk-ZYXVUXFQ.cjs.map +1 -0
  73. package/dist/contexts/exports.cjs +1 -82
  74. package/dist/contexts/exports.cjs.map +1 -1
  75. package/dist/contexts/exports.mjs +1 -82
  76. package/dist/contexts/exports.mjs.map +1 -1
  77. package/dist/enum/exports.cjs +1 -58
  78. package/dist/enum/exports.cjs.map +1 -1
  79. package/dist/enum/exports.mjs +1 -58
  80. package/dist/enum/exports.mjs.map +1 -1
  81. package/dist/errors/exports.cjs +1 -38
  82. package/dist/errors/exports.cjs.map +1 -1
  83. package/dist/errors/exports.mjs +1 -38
  84. package/dist/hooks/exports.cjs +3 -8327
  85. package/dist/hooks/exports.cjs.map +1 -1
  86. package/dist/hooks/exports.mjs +3 -8327
  87. package/dist/hooks/exports.mjs.map +1 -1
  88. package/dist/utils/exports.cjs +1 -786
  89. package/dist/utils/exports.cjs.map +1 -1
  90. package/dist/utils/exports.mjs +1 -786
  91. package/dist/utils/exports.mjs.map +1 -1
  92. package/package.json +4 -4
  93. package/src/actions/dex/aggregators/base.ts +1 -3
  94. package/src/actions/governance/getDecodedFunctionData.ts +4 -8
  95. package/src/actions/tokens/getUnderlyingToken.ts +1 -3
  96. package/src/errors/BeraError.ts +7 -2
  97. package/src/hooks/dex/usePoolHistoricalData.ts +1 -1
  98. package/src/hooks/enso/useBendZapSupply.ts +1 -1
  99. package/src/hooks/perps/usePythUpdateFee.ts +1 -1
  100. package/src/hooks/validators/useValidatorRewardAllocation.ts +1 -1
  101. package/dist/chunk-24HMIYTN.cjs +0 -36
  102. package/dist/chunk-24HMIYTN.cjs.map +0 -1
  103. package/dist/chunk-2LL77B3T.cjs +0 -135
  104. package/dist/chunk-2LL77B3T.cjs.map +0 -1
  105. package/dist/chunk-3LXVARBJ.cjs +0 -417
  106. package/dist/chunk-3LXVARBJ.cjs.map +0 -1
  107. package/dist/chunk-4HDIUUSV.cjs +0 -130
  108. package/dist/chunk-4HDIUUSV.cjs.map +0 -1
  109. package/dist/chunk-7ONKBHXY.cjs +0 -169
  110. package/dist/chunk-7ONKBHXY.cjs.map +0 -1
  111. package/dist/chunk-7TFV6UKF.mjs +0 -24
  112. package/dist/chunk-A4FPM7U3.cjs +0 -63
  113. package/dist/chunk-A4FPM7U3.cjs.map +0 -1
  114. package/dist/chunk-A7P3JVU7.cjs +0 -4694
  115. package/dist/chunk-A7P3JVU7.cjs.map +0 -1
  116. package/dist/chunk-ALPEMPZI.mjs +0 -417
  117. package/dist/chunk-BEHP54S3.cjs +0 -24
  118. package/dist/chunk-BEHP54S3.cjs.map +0 -1
  119. package/dist/chunk-CYBZH6U3.mjs +0 -135
  120. package/dist/chunk-EWBKSMPG.cjs +0 -13
  121. package/dist/chunk-EWBKSMPG.cjs.map +0 -1
  122. package/dist/chunk-GLWPRM33.mjs +0 -13
  123. package/dist/chunk-GWSTVITN.mjs +0 -572
  124. package/dist/chunk-H3Z37RYU.cjs +0 -15
  125. package/dist/chunk-H3Z37RYU.cjs.map +0 -1
  126. package/dist/chunk-HCC4FJTD.cjs +0 -97
  127. package/dist/chunk-HCC4FJTD.cjs.map +0 -1
  128. package/dist/chunk-J6EHBYSV.mjs +0 -97
  129. package/dist/chunk-JA4DHMTG.mjs +0 -15
  130. package/dist/chunk-KL6YZ5VR.mjs +0 -63
  131. package/dist/chunk-MILSHCKW.cjs +0 -168
  132. package/dist/chunk-MILSHCKW.cjs.map +0 -1
  133. package/dist/chunk-MKS6W5NI.mjs +0 -403
  134. package/dist/chunk-MXWPP6MS.cjs +0 -572
  135. package/dist/chunk-MXWPP6MS.cjs.map +0 -1
  136. package/dist/chunk-OWUI3VPI.mjs +0 -169
  137. package/dist/chunk-PBCE7JTE.mjs +0 -36
  138. package/dist/chunk-QISQSMCV.cjs +0 -1843
  139. package/dist/chunk-QISQSMCV.cjs.map +0 -1
  140. package/dist/chunk-SYWYIMY7.mjs +0 -4694
  141. package/dist/chunk-SYWYIMY7.mjs.map +0 -1
  142. package/dist/chunk-TDW5SPXR.cjs +0 -244
  143. package/dist/chunk-TDW5SPXR.cjs.map +0 -1
  144. package/dist/chunk-TGHG6Q3C.cjs +0 -403
  145. package/dist/chunk-TGHG6Q3C.cjs.map +0 -1
  146. package/dist/chunk-WAFQFAI7.mjs +0 -130
  147. package/dist/chunk-WEULAXBE.mjs +0 -168
  148. package/dist/chunk-ZCEFC2TK.mjs +0 -244
  149. package/dist/chunk-ZV7DCQQY.mjs +0 -1843
  150. package/dist/chunk-ZV7DCQQY.mjs.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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"]}
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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@berachain/berajs",
3
- "version": "0.2.8-beta.4",
3
+ "version": "0.2.8-beta.6",
4
4
  "sideEffects": false,
5
5
  "files": [
6
6
  "dist",
@@ -13,7 +13,7 @@
13
13
  "@apollo/client": "4.1.6",
14
14
  "@berachain-foundation/berancer-sdk": "1.1.4",
15
15
  "@berachain/abis": "0.1.0",
16
- "@berachain/config": "0.1.3",
16
+ "@berachain/config": "0.1.4",
17
17
  "@berachain/graphql": "0.4.9",
18
18
  "@ensofinance/sdk": "2.0.12",
19
19
  "@pythnetwork/hermes-client": "2.0.0",
@@ -29,8 +29,8 @@
29
29
  "typescript": "5.5.4",
30
30
  "viem": "2.45.0",
31
31
  "vitest": "3.2.4",
32
- "@berachain/wagmi": "0.4.0",
33
- "@berachain/utils": "0.1.0"
32
+ "@berachain/utils": "0.1.0",
33
+ "@berachain/wagmi": "0.4.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
- const response = await beraFetch(
216
+ return beraFetch(
217
217
  { url, name: this.name, type: this.type },
218
218
  {
219
219
  method: "GET",
@@ -223,8 +223,6 @@ export abstract class BaseAggregator {
223
223
  ...options,
224
224
  },
225
225
  );
226
-
227
- return response;
228
226
  } catch (err) {
229
227
  const error = initBeraError({ cause: err });
230
228
  if (
@@ -89,14 +89,10 @@ async function _getAbiForCallData({
89
89
  return knownAbi;
90
90
  }
91
91
  } catch {}
92
- try {
93
- const abi = await _getAbi({
94
- contractAddress: address,
95
- chainId,
96
- publicClient,
97
- });
98
- return abi;
99
- } catch {}
92
+
93
+ return _getAbi({ contractAddress: address, chainId, publicClient }).catch(
94
+ () => undefined,
95
+ );
100
96
  }
101
97
 
102
98
  function _decodeCallData(callData: `0x${string}`, abi: AbiItem[]) {
@@ -37,13 +37,11 @@ export async function getUnderlyingToken({
37
37
  functionName: "asset",
38
38
  });
39
39
 
40
- const underlyingToken = await getTokenInformation({
40
+ return getTokenInformation({
41
41
  address: address,
42
42
  publicClient,
43
43
  chainId: token.chainId,
44
44
  });
45
-
46
- return underlyingToken;
47
45
  } catch (e) {
48
46
  const err = initBeraError({ cause: e });
49
47
  if (err.reason === 'The contract function "asset" reverted.') {
@@ -1,6 +1,6 @@
1
1
  import { type Abi, BaseError } from "viem";
2
2
 
3
- import { appConfig } from "@berachain/config/internal";
3
+ import { appConfig, currentDapp } from "@berachain/config/internal";
4
4
 
5
5
  import { GENERAL_ERROR } from "./errorMap";
6
6
  import { findMatchingError } from "./getErrorMessage";
@@ -237,7 +237,12 @@ export class BeraError extends Error {
237
237
  ...tags,
238
238
  };
239
239
  // Useful for debugging in development or on vercel preview links
240
- if (!appConfig.env.isProduction && process.env.NODE_ENV !== "test") {
240
+ if (
241
+ !appConfig.env.isProduction &&
242
+ // skip debug logs on consumer of the berajs package
243
+ (process.env.NEXT_PUBLIC_IS_MONOBERA === "true" || currentDapp) &&
244
+ process.env.NODE_ENV !== "test"
245
+ ) {
241
246
  console.group("BeraError thrown");
242
247
  console.debug("Level", this.level);
243
248
  console.debug("Reason", this.reason);
@@ -32,7 +32,7 @@ export const usePoolHistoricalData = (
32
32
  >(
33
33
  QUERY_KEY,
34
34
  async ([, poolId]) => {
35
- return await getPoolHistoricalData({
35
+ return getPoolHistoricalData({
36
36
  poolId,
37
37
  chain: config.bex.chainName as GqlChain,
38
38
  });
@@ -198,7 +198,7 @@ export function useBendZapSupplyHelper(
198
198
  assertAddress(tokenIn?.address, "tokenInAddress");
199
199
  assertDefined(tokenIn?.chainId, "tokenInChainId");
200
200
 
201
- return await ensoErc4626.getQuote({
201
+ return ensoErc4626.getQuote({
202
202
  tokenIn,
203
203
  tokenOut: bendVault,
204
204
  underlyingToken: loanToken,
@@ -29,7 +29,7 @@ export const usePythUpdateFee = (
29
29
  useSWRImmutable(QUERY_KEY, async ([_, pythPriceFeedCalldata]) => {
30
30
  assertPublicClient(publicClient);
31
31
 
32
- return await getPythUpdateFee({
32
+ return getPythUpdateFee({
33
33
  client: publicClient,
34
34
  priceFeedId: pythPriceFeedCalldata,
35
35
  });
@@ -19,7 +19,7 @@ export function useValidatorRewardAllocation(
19
19
  const swrResponse = useSWR(
20
20
  QUERY_KEY,
21
21
  async ([, pubKey]) => {
22
- return await getValidatorRewardAllocation({
22
+ return getValidatorRewardAllocation({
23
23
  client: publicClient as PublicClient,
24
24
  pubKey,
25
25
  });
@@ -1,36 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
- var _chunk3LXVARBJcjs = require('./chunk-3LXVARBJ.cjs');
4
-
5
-
6
-
7
- var _chunkHCC4FJTDcjs = require('./chunk-HCC4FJTD.cjs');
8
-
9
- // src/utils/tokenWrapping.ts
10
- function wrapNativeToken(token) {
11
- return {
12
- ...token,
13
- ..._chunkHCC4FJTDcjs.isToken.call(void 0, token, "BERA") && _chunkHCC4FJTDcjs.wBeraToken
14
- };
15
- }
16
- function wrapNativeTokens(tokens) {
17
- return tokens.map((token) => wrapNativeToken(token));
18
- }
19
-
20
- // src/utils/math.ts
21
- var computePriceImpact = (tokenInPrice, tokenOutPrice, inAmount, outAmount) => {
22
- if (!tokenInPrice || !tokenOutPrice || !inAmount || !outAmount) return 0;
23
- const usdIn = new (0, _chunk3LXVARBJcjs.bignumber_js_default)(tokenInPrice).times(inAmount);
24
- const usdOut = new (0, _chunk3LXVARBJcjs.bignumber_js_default)(tokenOutPrice).times(outAmount);
25
- if (usdIn.lt(0.01) || usdOut.lt(0.01)) return 0;
26
- if (usdIn.isZero() || usdOut.isZero()) return 0;
27
- const ratio = usdOut.div(usdIn);
28
- return Number(new (0, _chunk3LXVARBJcjs.bignumber_js_default)(1).minus(ratio).toFixed());
29
- };
30
-
31
-
32
-
33
-
34
-
35
- exports.wrapNativeToken = wrapNativeToken; exports.wrapNativeTokens = wrapNativeTokens; exports.computePriceImpact = computePriceImpact;
36
- //# sourceMappingURL=chunk-24HMIYTN.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/Users/pong/coding/monobera/packages/berajs/dist/chunk-24HMIYTN.cjs","../src/utils/tokenWrapping.ts","../src/utils/math.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACA;ACFO,SAAS,eAAA,CAAqC,KAAA,EAAa;AAChE,EAAA,OAAO;AAAA,IACL,GAAG,KAAA;AAAA,IACH,GAAI,uCAAA,KAAQ,EAAO,MAAM,EAAA,GAAK;AAAA,EAChC,CAAA;AACF;AAEO,SAAS,gBAAA,CAAsC,MAAA,EAAkB;AACtE,EAAA,OAAO,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,EAAA,GAAU,eAAA,CAAgB,KAAK,CAAC,CAAA;AACrD;ADGA;AACA;AETO,IAAM,mBAAA,EAAqB,CAChC,YAAA,EACA,aAAA,EACA,QAAA,EACA,SAAA,EAAA,GACW;AACX,EAAA,GAAA,CAAI,CAAC,aAAA,GAAgB,CAAC,cAAA,GAAiB,CAAC,SAAA,GAAY,CAAC,SAAA,EAAW,OAAO,CAAA;AAEvE,EAAA,MAAM,MAAA,EAAQ,IAAI,2CAAA,CAAU,YAAY,CAAA,CAAE,KAAA,CAAM,QAAQ,CAAA;AACxD,EAAA,MAAM,OAAA,EAAS,IAAI,2CAAA,CAAU,aAAa,CAAA,CAAE,KAAA,CAAM,SAAS,CAAA;AAG3D,EAAA,GAAA,CAAI,KAAA,CAAM,EAAA,CAAG,IAAI,EAAA,GAAK,MAAA,CAAO,EAAA,CAAG,IAAI,CAAA,EAAG,OAAO,CAAA;AAC9C,EAAA,GAAA,CAAI,KAAA,CAAM,MAAA,CAAO,EAAA,GAAK,MAAA,CAAO,MAAA,CAAO,CAAA,EAAG,OAAO,CAAA;AAE9C,EAAA,MAAM,MAAA,EAAQ,MAAA,CAAO,GAAA,CAAI,KAAK,CAAA;AAC9B,EAAA,OAAO,MAAA,CAAO,IAAI,2CAAA,CAAU,CAAC,CAAA,CAAE,KAAA,CAAM,KAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA;AACvD,CAAA;AFEA;AACA;AACE;AACA;AACA;AACF,wIAAC","file":"/Users/pong/coding/monobera/packages/berajs/dist/chunk-24HMIYTN.cjs","sourcesContent":[null,"import { isToken, wBeraToken } from \"./tokens\";\n\ntype BaseToken = {\n address: string;\n};\n\nexport function wrapNativeToken<T extends BaseToken>(token: T): T {\n return {\n ...token,\n ...(isToken(token, \"BERA\") && wBeraToken),\n };\n}\n\nexport function wrapNativeTokens<T extends BaseToken>(tokens: T[]): T[] {\n return tokens.map((token) => wrapNativeToken(token));\n}\n","import BigNumber from \"@berachain/utils/pkg/bignumber.js\";\n\n/**\n * Compute the price impact of a swap\n * @param {string} tokenInPrice - The price of the input token\n * @param {string} tokenOutPrice - The price of the output token\n * @param {string} inAmount - The amount of the input token\n * @param {string} outAmount - The amount of the output token\n * @returns {number} The price impact of the swap\n */\nexport const computePriceImpact = (\n tokenInPrice: string,\n tokenOutPrice: string,\n inAmount: string,\n outAmount: string,\n): number => {\n if (!tokenInPrice || !tokenOutPrice || !inAmount || !outAmount) return 0;\n\n const usdIn = new BigNumber(tokenInPrice).times(inAmount);\n const usdOut = new BigNumber(tokenOutPrice).times(outAmount);\n\n // is the amount is close to 0, return 0\n if (usdIn.lt(0.01) || usdOut.lt(0.01)) return 0;\n if (usdIn.isZero() || usdOut.isZero()) return 0;\n\n const ratio = usdOut.div(usdIn);\n return Number(new BigNumber(1).minus(ratio).toFixed());\n};\n"]}
@@ -1,135 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
-
3
- var _chunkTDW5SPXRcjs = require('./chunk-TDW5SPXR.cjs');
4
-
5
-
6
-
7
-
8
- var _chunk7ONKBHXYcjs = require('./chunk-7ONKBHXY.cjs');
9
-
10
-
11
-
12
- var _chunkHCC4FJTDcjs = require('./chunk-HCC4FJTD.cjs');
13
-
14
- // src/actions/clients/getEnsoClient.ts
15
- var _sdk = require('@ensofinance/sdk');
16
- var _internal = require('@berachain/config/internal');
17
- var isProduction = process.env.NODE_ENV !== "development" && process.env.NODE_ENV !== "test";
18
- function getEnsoClient({
19
- useProxy = isProduction,
20
- ...args
21
- } = {}) {
22
- const { config } = _chunkHCC4FJTDcjs.parseBaseArgs.call(void 0, args);
23
- return new (0, _sdk.EnsoClient)({
24
- baseURL: useProxy ? `${config.bex.aggregatorsProxyUrl}/enso/api/v1/` : void 0,
25
- apiKey: useProxy ? (
26
- // no API key since proxy has CORS for .berachain.com domains
27
- ""
28
- ) : _internal.appConfig.apiKeys.public.enso
29
- });
30
- }
31
-
32
- // src/actions/tokens/getWalletBalances.ts
33
- var _core = require('@wagmi/core');
34
-
35
-
36
-
37
-
38
- var _viem = require('viem');
39
- function getBalanceCall({
40
- token,
41
- account,
42
- multicallAddress
43
- }) {
44
- if (_chunkHCC4FJTDcjs.isToken.call(void 0, token, "BERA") || _chunkHCC4FJTDcjs.isToken.call(void 0, token, "ETH")) {
45
- return {
46
- address: multicallAddress,
47
- abi: _chunkTDW5SPXRcjs.multicall3Abi,
48
- functionName: "getEthBalance",
49
- args: [account]
50
- };
51
- }
52
- return {
53
- address: token.address,
54
- abi: _viem.erc20Abi,
55
- functionName: "balanceOf",
56
- args: [account]
57
- };
58
- }
59
- async function getWalletBalances({
60
- account,
61
- tokenList,
62
- wagmiConfig: config
63
- }) {
64
- _chunk7ONKBHXYcjs.assertDefined.call(void 0, config, "config");
65
- if (!account || !tokenList)
66
- throw new Error("account or tokenList is not defined");
67
- _chunk7ONKBHXYcjs.assertAddress.call(void 0, account, "account");
68
- const filteredTokenList = tokenList.filter(
69
- (token) => _viem.isAddress.call(void 0, token.address)
70
- );
71
- const tokensByChainId = Object.groupBy(
72
- filteredTokenList,
73
- (token) => _nullishCoalesce(token.chainId, () => ( _core.getChainId.call(void 0, config)))
74
- );
75
- const res = await Promise.allSettled(
76
- Object.entries(tokensByChainId).map(async ([chainId, tokens]) => {
77
- _chunk7ONKBHXYcjs.assertDefined.call(void 0, tokens, "tokens");
78
- const publicClient = _core.getPublicClient.call(void 0, config, {
79
- chainId: Number(chainId)
80
- });
81
- _chunk7ONKBHXYcjs.assertPublicClient.call(void 0, publicClient, `publicClient ${chainId}`);
82
- _chunk7ONKBHXYcjs.assertDefined.call(void 0, publicClient.chain, "publicClient.chain");
83
- _chunk7ONKBHXYcjs.assertDefined.call(void 0,
84
- publicClient.chain.contracts,
85
- "publicClient.chain.contracts"
86
- );
87
- _chunk7ONKBHXYcjs.assertDefined.call(void 0,
88
- publicClient.chain.contracts.multicall3,
89
- "publicClient.chain.contracts.multicall3"
90
- );
91
- const { multicall3 } = publicClient.chain.contracts;
92
- const multicall3Address = typeof multicall3 === "string" ? multicall3 : multicall3.address;
93
- _chunk7ONKBHXYcjs.assertAddress.call(void 0, multicall3Address, "multicall3Address");
94
- const call = tokens.map(
95
- (token) => getBalanceCall({
96
- token,
97
- account,
98
- multicallAddress: multicall3Address
99
- })
100
- );
101
- const result = await publicClient.multicall({
102
- contracts: call
103
- });
104
- return result.map((item, index) => {
105
- const token = tokens[index];
106
- if (item.error) {
107
- return { ...token, balance: { raw: "0", formatted: "0" } };
108
- }
109
- const formattedBalance = _viem.formatUnits.call(void 0,
110
- item.result,
111
- _optionalChain([token, 'optionalAccess', _ => _.decimals]) || 18
112
- );
113
- const resultBalanceToken = {
114
- ...token,
115
- balance: {
116
- raw: item.result.toString(),
117
- // TODO: this was done 10 months ago, i'm not sure it's a good solution.
118
- formatted: formattedBalance.includes("e") ? "0" : formattedBalance
119
- }
120
- };
121
- return resultBalanceToken;
122
- });
123
- })
124
- );
125
- return res.flatMap(
126
- (result) => result.status === "fulfilled" ? result.value : []
127
- );
128
- }
129
-
130
-
131
-
132
-
133
-
134
- exports.getEnsoClient = getEnsoClient; exports.getBalanceCall = getBalanceCall; exports.getWalletBalances = getWalletBalances;
135
- //# sourceMappingURL=chunk-2LL77B3T.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/Users/pong/coding/monobera/packages/berajs/dist/chunk-2LL77B3T.cjs","../src/actions/clients/getEnsoClient.ts","../src/actions/tokens/getWalletBalances.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACA;ACbA,uCAA2B;AAE3B,sDAA0B;AAI1B,IAAM,aAAA,EACJ,OAAA,CAAQ,GAAA,CAAI,SAAA,IAAa,cAAA,GAAiB,OAAA,CAAQ,GAAA,CAAI,SAAA,IAAa,MAAA;AAE9D,SAAS,aAAA,CAAc;AAAA,EAC5B,SAAA,EAAW,YAAA;AAAA,EACX,GAAG;AACL,EAAA,EAAsD,CAAC,CAAA,EAAG;AACxD,EAAA,MAAM,EAAE,OAAO,EAAA,EAAI,6CAAA,IAAkB,CAAA;AACrC,EAAA,OAAO,IAAI,oBAAA,CAAW;AAAA,IACpB,OAAA,EAAS,SAAA,EACL,CAAA,EAAA;AAEI,IAAA;AAAA;AAEJ,MAAA;AACU,IAAA;AACf,EAAA;AACH;ADOyB;AACA;AE/BS;AAClC;AAGE;AACA;AACA;AACK;AAuBwB;AAC7B,EAAA;AACA,EAAA;AACA,EAAA;AAKC;AACkB,EAAA;AACV,IAAA;AACI,MAAA;AACJ,MAAA;AACS,MAAA;AACA,MAAA;AAChB,IAAA;AAKF,EAAA;AACO,EAAA;AACU,IAAA;AACV,IAAA;AACS,IAAA;AACA,IAAA;AAChB,EAAA;AAKF;AAKsB;AACpB,EAAA;AACA,EAAA;AACa,EAAA;AAC4C;AACnC,EAAA;AACL,EAAA;AACC,IAAA;AAEK,EAAA;AAEjB,EAAA;AACM,IAAA;AACZ,EAAA;AAEM,EAAA;AACJ,IAAA;AACiB,IAAA;AACnB,EAAA;AAEkB,EAAA;AACD,IAAA;AACC,MAAA;AACR,MAAA;AACY,QAAA;AACjB,MAAA;AACkB,MAAA;AACL,MAAA;AACd,MAAA;AACe,QAAA;AACb,QAAA;AACF,MAAA;AACA,MAAA;AACe,QAAA;AACb,QAAA;AACF,MAAA;AAEmB,MAAA;AAEb,MAAA;AAGQ,MAAA;AAED,MAAA;AACX,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACD,QAAA;AACH,MAAA;AAEe,MAAA;AACF,QAAA;AACZ,MAAA;AAEkB,MAAA;AACH,QAAA;AACE,QAAA;AACF,UAAA;AACd,QAAA;AACM,QAAA;AACC,UAAA;AACE,0BAAA;AACT,QAAA;AAEM,QAAA;AACD,UAAA;AACM,UAAA;AACG,YAAA;AAAgB;AAEf,YAAA;AACb,UAAA;AACF,QAAA;AACO,QAAA;AACR,MAAA;AACF,IAAA;AACH,EAAA;AAEW,EAAA;AACF,IAAA;AACT,EAAA;AACF;AFpByB;AACA;AACA;AACA;AACA;AACA","file":"/Users/pong/coding/monobera/packages/berajs/dist/chunk-2LL77B3T.cjs","sourcesContent":[null,"import { EnsoClient } from \"@ensofinance/sdk\";\n\nimport { appConfig } from \"@berachain/config/internal\";\n\nimport { parseBaseArgs } from \"../../utils/parseBaseArgs\";\n\nconst isProduction =\n process.env.NODE_ENV !== \"development\" && process.env.NODE_ENV !== \"test\";\n\nexport function getEnsoClient({\n useProxy = isProduction,\n ...args\n}: BeraJS.BaseFunctionArgs & { useProxy?: boolean } = {}) {\n const { config } = parseBaseArgs(args);\n return new EnsoClient({\n baseURL: useProxy\n ? `${config.bex.aggregatorsProxyUrl}/enso/api/v1/`\n : undefined,\n apiKey: useProxy\n ? // no API key since proxy has CORS for .berachain.com domains\n \"\"\n : appConfig.apiKeys.public.enso,\n });\n}\n","import { type Config, getChainId, getPublicClient } from \"@wagmi/core\";\nimport {\n type Address,\n type ContractFunctionParameters,\n erc20Abi,\n formatUnits,\n isAddress,\n} from \"viem\";\n\nimport { multicall3Abi } from \"../../abi/utils/multicall3\";\nimport {\n assertAddress,\n assertDefined,\n assertPublicClient,\n} from \"../../errors/assert\";\nimport type { BalanceToken, Token } from \"../../types/dex\";\nimport { isToken } from \"../../utils/tokens\";\n\nexport interface GetWalletBalances {\n account: string | undefined;\n tokenList: Token[] | undefined;\n wagmiConfig: Config | undefined;\n}\n\n/**\n * Returns the payload for the balanceOf call for a given token and account.\n *\n * @internal\n * @returns\n */\nexport function getBalanceCall({\n token,\n account,\n multicallAddress,\n}: {\n token: Token;\n account: Address;\n multicallAddress: Address;\n}) {\n if (isToken(token, \"BERA\") || isToken(token, \"ETH\")) {\n return {\n address: multicallAddress,\n abi: multicall3Abi,\n functionName: \"getEthBalance\",\n args: [account],\n } as const satisfies ContractFunctionParameters<\n typeof multicall3Abi,\n \"view\",\n \"getEthBalance\"\n >;\n }\n return {\n address: token.address as Address,\n abi: erc20Abi,\n functionName: \"balanceOf\",\n args: [account],\n } as const satisfies ContractFunctionParameters<\n typeof erc20Abi,\n \"view\",\n \"balanceOf\"\n >;\n}\n\n/**\n * fetch the balances of a given wallet address\n */\nexport async function getWalletBalances({\n account,\n tokenList,\n wagmiConfig: config,\n}: GetWalletBalances): Promise<BalanceToken[] | undefined> {\n assertDefined(config, \"config\");\n if (!account || !tokenList)\n throw new Error(\"account or tokenList is not defined\");\n\n assertAddress(account, \"account\");\n\n const filteredTokenList = tokenList.filter((token) =>\n isAddress(token.address),\n );\n\n const tokensByChainId = Object.groupBy(\n filteredTokenList,\n (token) => token.chainId ?? getChainId(config),\n );\n\n const res = await Promise.allSettled(\n Object.entries(tokensByChainId).map(async ([chainId, tokens]) => {\n assertDefined(tokens, \"tokens\");\n const publicClient = getPublicClient(config, {\n chainId: Number(chainId),\n });\n assertPublicClient(publicClient, `publicClient ${chainId}`);\n assertDefined(publicClient.chain, \"publicClient.chain\");\n assertDefined(\n publicClient.chain.contracts,\n \"publicClient.chain.contracts\",\n );\n assertDefined(\n publicClient.chain.contracts.multicall3,\n \"publicClient.chain.contracts.multicall3\",\n );\n\n const { multicall3 } = publicClient.chain.contracts;\n\n const multicall3Address =\n typeof multicall3 === \"string\" ? multicall3 : multicall3.address;\n\n assertAddress(multicall3Address, \"multicall3Address\");\n\n const call = tokens.map((token: Token) =>\n getBalanceCall({\n token,\n account,\n multicallAddress: multicall3Address,\n }),\n );\n\n const result = await publicClient.multicall({\n contracts: call,\n });\n\n return result.map((item, index) => {\n const token = tokens[index];\n if (item.error) {\n return { ...token, balance: { raw: \"0\", formatted: \"0\" } };\n }\n const formattedBalance = formatUnits(\n item.result,\n token?.decimals || 18,\n );\n\n const resultBalanceToken: BalanceToken = {\n ...token,\n balance: {\n raw: item.result.toString(),\n // TODO: this was done 10 months ago, i'm not sure it's a good solution.\n formatted: formattedBalance.includes(\"e\") ? \"0\" : formattedBalance,\n },\n } satisfies BalanceToken;\n return resultBalanceToken;\n });\n }),\n );\n\n return res.flatMap((result) =>\n result.status === \"fulfilled\" ? result.value : [],\n );\n}\n"]}