@berachain/berajs 0.2.13 → 0.3.0

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 (413) hide show
  1. package/dist/actions/clients/BeraApolloClient.d.ts.map +1 -1
  2. package/dist/actions/clients/clientName.d.ts +10 -0
  3. package/dist/actions/clients/clientName.d.ts.map +1 -0
  4. package/dist/actions/clients/exports.d.ts +2 -0
  5. package/dist/actions/clients/exports.d.ts.map +1 -1
  6. package/dist/actions/clients/exports.mjs +26 -7
  7. package/dist/actions/clients/exports.mjs.map +1 -1
  8. package/dist/actions/clients/fetchBeep.d.ts.map +1 -1
  9. package/dist/actions/clients/fetchEnso.d.ts +17 -0
  10. package/dist/actions/clients/fetchEnso.d.ts.map +1 -0
  11. package/dist/actions/clients/fetchLayerzero.d.ts +12 -0
  12. package/dist/actions/clients/fetchLayerzero.d.ts.map +1 -0
  13. package/dist/actions/clients/fetchOpenApi.d.ts +4 -1
  14. package/dist/actions/clients/fetchOpenApi.d.ts.map +1 -1
  15. package/dist/actions/clients/getApolloClient.d.ts.map +1 -1
  16. package/dist/actions/dex/aggregators/base.d.ts +30 -5
  17. package/dist/actions/dex/aggregators/base.d.ts.map +1 -1
  18. package/dist/actions/dex/aggregators/bex.d.ts +11 -1
  19. package/dist/actions/dex/aggregators/bex.d.ts.map +1 -1
  20. package/dist/actions/dex/aggregators/bgt.d.ts +2 -2
  21. package/dist/actions/dex/aggregators/bgt.d.ts.map +1 -1
  22. package/dist/actions/dex/aggregators/enso/enso.d.ts.map +1 -1
  23. package/dist/actions/dex/aggregators/enso/ensoErc4626.d.ts +1 -0
  24. package/dist/actions/dex/aggregators/enso/ensoErc4626.d.ts.map +1 -1
  25. package/dist/actions/dex/aggregators/erc4626.d.ts +2 -2
  26. package/dist/actions/dex/aggregators/erc4626.d.ts.map +1 -1
  27. package/dist/actions/dex/aggregators/fly.d.ts.map +1 -1
  28. package/dist/actions/dex/aggregators/haiku.d.ts +7 -1
  29. package/dist/actions/dex/aggregators/haiku.d.ts.map +1 -1
  30. package/dist/actions/dex/aggregators/honey.d.ts +2 -2
  31. package/dist/actions/dex/aggregators/honey.d.ts.map +1 -1
  32. package/dist/actions/dex/aggregators/kyberswap.d.ts.map +1 -1
  33. package/dist/actions/dex/aggregators/oogabooga.d.ts.map +1 -1
  34. package/dist/actions/dex/aggregators/openOcean.d.ts.map +1 -1
  35. package/dist/actions/dex/aggregators/wbera.d.ts +3 -2
  36. package/dist/actions/dex/aggregators/wbera.d.ts.map +1 -1
  37. package/dist/actions/dex/getAllPools.d.ts.map +1 -1
  38. package/dist/actions/dex/getApiPool.d.ts.map +1 -1
  39. package/dist/actions/enso/getEnsoUserTokensWithBalances.d.ts.map +1 -1
  40. package/dist/actions/enso/util.d.ts +1 -6
  41. package/dist/actions/enso/util.d.ts.map +1 -1
  42. package/dist/actions/exports.d.ts +3 -5
  43. package/dist/actions/exports.d.ts.map +1 -1
  44. package/dist/actions/exports.mjs +31 -50
  45. package/dist/actions/exports.mjs.map +1 -1
  46. package/dist/actions/governance/exports.mjs +3 -3
  47. package/dist/actions/honey/getHoney24hVolume.d.ts +2 -2
  48. package/dist/actions/honey/getHoney24hVolume.d.ts.map +1 -1
  49. package/dist/actions/honey/getHoneyCollaterals.d.ts +1 -1
  50. package/dist/actions/honey/getHoneyCollaterals.d.ts.map +1 -1
  51. package/dist/actions/pol/getEarnedStakedBeraVault.d.ts +0 -23
  52. package/dist/actions/pol/getEarnedStakedBeraVault.d.ts.map +1 -1
  53. package/dist/actions/pol/getLSTStakeConfig.d.ts.map +1 -1
  54. package/dist/actions/pol/getSWBeraVaultMetadata.d.ts +1 -14
  55. package/dist/actions/pol/getSWBeraVaultMetadata.d.ts.map +1 -1
  56. package/dist/actions/pol/getStakedBeraAPY.d.ts +14 -0
  57. package/dist/actions/pol/getStakedBeraAPY.d.ts.map +1 -0
  58. package/dist/actions/pol/getStakedBeraSnapshots.d.ts +14 -4
  59. package/dist/actions/pol/getStakedBeraSnapshots.d.ts.map +1 -1
  60. package/dist/actions/pol/getStakingDailyAssets.d.ts +2 -2
  61. package/dist/actions/pol/getStakingDailyAssets.d.ts.map +1 -1
  62. package/dist/actions/server/exports.mjs +5 -5
  63. package/dist/actions/validators/getActiveBoostAndCommissionChangeDelay.d.ts +1 -1
  64. package/dist/actions/validators/getActiveBoostAndCommissionChangeDelay.d.ts.map +1 -1
  65. package/dist/actions/validators/getUserActiveValidators.d.ts +37 -1
  66. package/dist/actions/validators/getUserActiveValidators.d.ts.map +1 -1
  67. package/dist/actions/validators/getValidatorRewardAllocation.d.ts +4 -0
  68. package/dist/actions/validators/getValidatorRewardAllocation.d.ts.map +1 -1
  69. package/dist/{chunk-ZWTGVIPJ.mjs → chunk-4576RF2K.mjs} +29 -4
  70. package/dist/chunk-4576RF2K.mjs.map +1 -0
  71. package/dist/{chunk-UA3Z47LT.mjs → chunk-5PBYMJRG.mjs} +95 -24
  72. package/dist/chunk-5PBYMJRG.mjs.map +1 -0
  73. package/dist/{chunk-AEN6IJFU.mjs → chunk-7KN7TDUC.mjs} +2 -2
  74. package/dist/chunk-7OESHTBN.mjs +29 -0
  75. package/dist/chunk-7OESHTBN.mjs.map +1 -0
  76. package/dist/{chunk-IFNIPVTZ.mjs → chunk-BSLXKPX4.mjs} +4 -48
  77. package/dist/chunk-BSLXKPX4.mjs.map +1 -0
  78. package/dist/{chunk-PHYZRH4I.mjs → chunk-BZKA6DBM.mjs} +9 -13
  79. package/dist/chunk-BZKA6DBM.mjs.map +1 -0
  80. package/dist/{chunk-LE4CYW7S.mjs → chunk-FWRYUIJK.mjs} +3 -3
  81. package/dist/{chunk-PJRLHTGC.mjs → chunk-HPRLNT6R.mjs} +3 -3
  82. package/dist/chunk-J6GM7HWX.mjs +19 -0
  83. package/dist/chunk-J6GM7HWX.mjs.map +1 -0
  84. package/dist/{chunk-P3YZ7F22.mjs → chunk-LL7XR2H5.mjs} +34 -3
  85. package/dist/chunk-LL7XR2H5.mjs.map +1 -0
  86. package/dist/{chunk-EJIGERYM.mjs → chunk-M3MIGSH3.mjs} +2 -2
  87. package/dist/{chunk-NZAH3SGT.mjs → chunk-MVNQY2D4.mjs} +9 -4
  88. package/dist/chunk-MVNQY2D4.mjs.map +1 -0
  89. package/dist/{chunk-TGN55GKE.mjs → chunk-SC3BSCTN.mjs} +2 -2
  90. package/dist/{chunk-DOZJB6IJ.mjs → chunk-SMBAW7AG.mjs} +394 -344
  91. package/dist/chunk-SMBAW7AG.mjs.map +1 -0
  92. package/dist/{chunk-QQASX4LJ.mjs → chunk-TXWDUJOY.mjs} +2 -2
  93. package/dist/{chunk-EGAB6NFQ.mjs → chunk-UWJQ6UKG.mjs} +2 -2
  94. package/dist/chunk-XO2BFPTB.mjs +50 -0
  95. package/dist/chunk-XO2BFPTB.mjs.map +1 -0
  96. package/dist/{chunk-7TFV6UKF.mjs → chunk-XXKPXNQD.mjs} +1 -2
  97. package/dist/chunk-XXKPXNQD.mjs.map +1 -0
  98. package/dist/{chunk-J3LTASDE.mjs → chunk-ZHV3MQ4F.mjs} +4 -4
  99. package/dist/contexts/BeraFlags/BeraFlags.d.ts +1 -1
  100. package/dist/contexts/BeraFlags/BeraFlags.d.ts.map +1 -1
  101. package/dist/contexts/BeraFlags/defaultFlags.d.ts +2 -2
  102. package/dist/contexts/BeraFlags/defaultFlags.d.ts.map +1 -1
  103. package/dist/contexts/BexStatusProvider.d.ts +1 -1
  104. package/dist/contexts/BexStatusProvider.d.ts.map +1 -1
  105. package/dist/contexts/TokensProvider.d.ts +1 -1
  106. package/dist/contexts/TokensProvider.d.ts.map +1 -1
  107. package/dist/contexts/exports.mjs +9 -9
  108. package/dist/enum/contracts.d.ts +3 -0
  109. package/dist/enum/contracts.d.ts.map +1 -1
  110. package/dist/enum/exports.mjs +6 -4
  111. package/dist/enum/exports.mjs.map +1 -1
  112. package/dist/errors/RequestError.d.ts +19 -0
  113. package/dist/errors/RequestError.d.ts.map +1 -1
  114. package/dist/errors/errorMap.d.ts +4 -3
  115. package/dist/errors/errorMap.d.ts.map +1 -1
  116. package/dist/errors/exports.mjs +5 -5
  117. package/dist/hooks/dex/useAggregatorsQuotes.d.ts.map +1 -1
  118. package/dist/hooks/dex/useAllUserPools.d.ts.map +1 -1
  119. package/dist/hooks/dex/useCrossChainNativeFee.d.ts +32 -0
  120. package/dist/hooks/dex/useCrossChainNativeFee.d.ts.map +1 -0
  121. package/dist/hooks/dex/useOnChainPoolData.d.ts.map +1 -1
  122. package/dist/hooks/dex/usePools.d.ts.map +1 -1
  123. package/dist/hooks/dex/useSingleAggregatorQuote.d.ts.map +1 -1
  124. package/dist/hooks/enso/useBendZapSupply.d.ts +2 -2
  125. package/dist/hooks/enso/useBendZapSupply.d.ts.map +1 -1
  126. package/dist/hooks/enso/useEnsoUserTokensWithBalances.d.ts.map +1 -1
  127. package/dist/hooks/exports.d.ts +2 -5
  128. package/dist/hooks/exports.d.ts.map +1 -1
  129. package/dist/hooks/exports.mjs +590 -905
  130. package/dist/hooks/exports.mjs.map +1 -1
  131. package/dist/hooks/governance/exports.mjs +4 -4
  132. package/dist/hooks/honey/useHoneyChartData.d.ts.map +1 -1
  133. package/dist/hooks/pol/useRewardTokenToBeraRate.d.ts.map +1 -1
  134. package/dist/hooks/pol/useRewardVaultBalanceFromStakingToken.d.ts.map +1 -1
  135. package/dist/hooks/pol/useRewardVaults.d.ts.map +1 -1
  136. package/dist/hooks/pol/useStakedAPY.d.ts +11 -0
  137. package/dist/hooks/pol/useStakedAPY.d.ts.map +1 -0
  138. package/dist/hooks/pol/useStakedData.d.ts +2 -2
  139. package/dist/hooks/pol/useStakedData.d.ts.map +1 -1
  140. package/dist/hooks/pol/useStakingVaultsMetadata.d.ts +0 -1
  141. package/dist/hooks/pol/useStakingVaultsMetadata.d.ts.map +1 -1
  142. package/dist/hooks/tokens/useMultipleTokenInformation.d.ts +30 -0
  143. package/dist/hooks/tokens/useMultipleTokenInformation.d.ts.map +1 -1
  144. package/dist/hooks/tokens/usePollBalance.d.ts.map +1 -1
  145. package/dist/hooks/validators/useUserActiveValidators.d.ts +5 -0
  146. package/dist/hooks/validators/useUserActiveValidators.d.ts.map +1 -1
  147. package/dist/hooks/validators/useValidator.d.ts.map +1 -1
  148. package/dist/hooks/validators/useValidatorIncentiveDistribution.d.ts +3 -4
  149. package/dist/hooks/validators/useValidatorIncentiveDistribution.d.ts.map +1 -1
  150. package/dist/hooks/validators/useValidatorRewardAllocation.d.ts +1 -0
  151. package/dist/hooks/validators/useValidatorRewardAllocation.d.ts.map +1 -1
  152. package/dist/utils/crossChainBridge.d.ts +74 -0
  153. package/dist/utils/crossChainBridge.d.ts.map +1 -0
  154. package/dist/utils/exports.d.ts +1 -1
  155. package/dist/utils/exports.d.ts.map +1 -1
  156. package/dist/utils/exports.mjs +142 -72
  157. package/dist/utils/exports.mjs.map +1 -1
  158. package/dist/utils/getTestClient.d.ts +5 -3
  159. package/dist/utils/getTestClient.d.ts.map +1 -1
  160. package/dist/utils/parseWhiskToken.d.ts.map +1 -1
  161. package/package.json +8 -6
  162. package/src/actions/clients/BeraApolloClient.ts +4 -2
  163. package/src/actions/clients/clientName.ts +17 -0
  164. package/src/actions/clients/clientName.unit.test.ts +39 -0
  165. package/src/actions/clients/exports.ts +2 -0
  166. package/src/actions/clients/fetchBeep.ts +4 -1
  167. package/src/actions/clients/fetchEnso.ts +48 -0
  168. package/src/actions/clients/fetchLayerzero.ts +34 -0
  169. package/src/actions/clients/fetchOpenApi.ts +9 -2
  170. package/src/actions/clients/fetchOpenApi.unit.test.ts +26 -10
  171. package/src/actions/clients/getApolloClient.ts +3 -11
  172. package/src/actions/dex/__tests__/aggregators.unit.test.ts +231 -2
  173. package/src/actions/dex/aggregators/base.ts +75 -17
  174. package/src/actions/dex/aggregators/bex.ts +41 -1
  175. package/src/actions/dex/aggregators/bgt.ts +11 -6
  176. package/src/actions/dex/aggregators/enso/enso.ts +1 -0
  177. package/src/actions/dex/aggregators/enso/ensoErc4626.ts +27 -9
  178. package/src/actions/dex/aggregators/erc4626.ts +19 -5
  179. package/src/actions/dex/aggregators/fly.ts +1 -0
  180. package/src/actions/dex/aggregators/haiku.ts +33 -2
  181. package/src/actions/dex/aggregators/honey.ts +17 -6
  182. package/src/actions/dex/aggregators/kyberswap.ts +1 -0
  183. package/src/actions/dex/aggregators/oogabooga.ts +1 -0
  184. package/src/actions/dex/aggregators/openOcean.ts +1 -0
  185. package/src/actions/dex/aggregators/wbera.ts +17 -11
  186. package/src/actions/enso/getBendMultiplyBundle.ts +1 -1
  187. package/src/actions/enso/getEnsoUserTokensWithBalances.ts +4 -8
  188. package/src/actions/enso/util.ts +0 -59
  189. package/src/actions/exports.ts +3 -5
  190. package/src/actions/honey/getHoney24hVolume.ts +3 -12
  191. package/src/actions/honey/getHoneyCollaterals.ts +1 -1
  192. package/src/actions/pol/getBeraTokenTotalSupply.ts +3 -33
  193. package/src/actions/pol/getLSTStakeConfig.ts +0 -6
  194. package/src/actions/pol/getSWBeraVaultMetadata.ts +2 -106
  195. package/src/actions/pol/getStakedBeraAPY.ts +45 -0
  196. package/src/actions/pol/getStakedBeraSnapshots.ts +18 -34
  197. package/src/actions/validators/getActiveBoostAndCommissionChangeDelay.ts +1 -1
  198. package/src/actions/validators/getUserActiveValidators.ts +116 -54
  199. package/src/actions/validators/getValidatorRewardAllocation.ts +12 -1
  200. package/src/contexts/BeraFlags/BeraFlags.tsx +1 -4
  201. package/src/contexts/BeraFlags/defaultFlags.ts +1 -3
  202. package/src/contexts/BexStatusProvider.tsx +1 -1
  203. package/src/contexts/TokensProvider.tsx +1 -4
  204. package/src/enum/contracts.ts +3 -0
  205. package/src/errors/BeraError.unit.test.ts +23 -0
  206. package/src/errors/RequestError.ts +46 -9
  207. package/src/errors/RequestError.unit.test.ts +54 -0
  208. package/src/errors/errorMap.ts +8 -3
  209. package/src/errors/getErrorMessage.unit.test.ts +32 -0
  210. package/src/hooks/dex/useAggregatorsQuotes.ts +7 -1
  211. package/src/hooks/dex/useCrossChainNativeFee.ts +83 -0
  212. package/src/hooks/dex/useCrossChainNativeFee.unit.test.ts +63 -0
  213. package/src/hooks/dex/useOnChainPoolData.ts +30 -13
  214. package/src/hooks/dex/useSingleAggregatorQuote.ts +4 -2
  215. package/src/hooks/enso/useBendZapSupply.ts +9 -38
  216. package/src/hooks/enso/useEnsoUserTokensWithBalances.ts +10 -2
  217. package/src/hooks/enso/useZapStakeBera.ts +1 -1
  218. package/src/hooks/exports.ts +2 -5
  219. package/src/hooks/pol/useAutoclaimedIncentives.ts +6 -3
  220. package/src/hooks/pol/useAutoclaimedIncentivesTxHash.ts +5 -2
  221. package/src/hooks/pol/useRewardTokenToBeraRate.ts +5 -4
  222. package/src/hooks/pol/useRewardVaultBalanceFromStakingToken.ts +0 -1
  223. package/src/hooks/pol/{useStakedAPR.ts → useStakedAPY.ts} +11 -9
  224. package/src/hooks/pol/useStakedData.ts +13 -14
  225. package/src/hooks/pol/useStakingVaultsMetadata.ts +3 -8
  226. package/src/hooks/tokens/useMultipleTokenInformation.ts +64 -21
  227. package/src/hooks/tokens/useMultipleTokenInformation.unit.test.ts +91 -0
  228. package/src/hooks/tokens/usePollBalance.ts +4 -2
  229. package/src/hooks/validators/useUserActiveValidators.ts +54 -9
  230. package/src/hooks/validators/useValidatorIncentiveDistribution.ts +3 -4
  231. package/src/types/bribeBoost.d.ts +0 -49
  232. package/src/types/dex.d.ts +17 -0
  233. package/src/types/enso.d.ts +1 -27
  234. package/src/types/global.d.ts +7 -0
  235. package/src/types/pol.d.ts +3 -48
  236. package/src/utils/crossChainBridge.ts +290 -0
  237. package/src/utils/crossChainBridge.unit.test.ts +177 -0
  238. package/src/utils/exports.ts +1 -1
  239. package/dist/BeraError-7-A5JYy_.d.ts +0 -123
  240. package/dist/BexStatusProvider-DRymVlQf.d.ts +0 -70
  241. package/dist/HoneyConfigProvider-COOuDNra.d.ts +0 -390
  242. package/dist/RequestError-DkUbo3ro.d.ts +0 -145
  243. package/dist/actions/clients/fetchOpenApi.unit.test.d.ts +0 -2
  244. package/dist/actions/clients/fetchOpenApi.unit.test.d.ts.map +0 -1
  245. package/dist/actions/dex/__tests__/aggregators.unit.test.d.ts +0 -2
  246. package/dist/actions/dex/__tests__/aggregators.unit.test.d.ts.map +0 -1
  247. package/dist/actions/dex/__tests__/allPools.integration.test.d.ts +0 -2
  248. package/dist/actions/dex/__tests__/allPools.integration.test.d.ts.map +0 -1
  249. package/dist/actions/dex/__tests__/getOnChainPool.unit.test.d.ts +0 -2
  250. package/dist/actions/dex/__tests__/getOnChainPool.unit.test.d.ts.map +0 -1
  251. package/dist/actions/dex/aggregators/enso/ensoErc4626.debug.test.d.ts +0 -2
  252. package/dist/actions/dex/aggregators/enso/ensoErc4626.debug.test.d.ts.map +0 -1
  253. package/dist/actions/dex/aggregators/haiku.integration.test.d.ts +0 -2
  254. package/dist/actions/dex/aggregators/haiku.integration.test.d.ts.map +0 -1
  255. package/dist/actions/dex/b-sdk.d.ts +0 -3
  256. package/dist/actions/enso/__tests__/getBendDemultiplyBundle.action.unit.test.d.ts +0 -2
  257. package/dist/actions/enso/__tests__/getBendDemultiplyBundle.action.unit.test.d.ts.map +0 -1
  258. package/dist/actions/enso/__tests__/getBendDemultiplyBundle.unit.test.d.ts +0 -2
  259. package/dist/actions/enso/__tests__/getBendDemultiplyBundle.unit.test.d.ts.map +0 -1
  260. package/dist/actions/enso/__tests__/getBendMultiplyBundle.action.unit.test.d.ts +0 -2
  261. package/dist/actions/enso/__tests__/getBendMultiplyBundle.action.unit.test.d.ts.map +0 -1
  262. package/dist/actions/enso/__tests__/getBendMultiplyBundle.unit.test.d.ts +0 -2
  263. package/dist/actions/enso/__tests__/getBendMultiplyBundle.unit.test.d.ts.map +0 -1
  264. package/dist/actions/enso/__tests__/getEnsoUserTokensWithBalances.debug.test.d.ts +0 -2
  265. package/dist/actions/enso/__tests__/getEnsoUserTokensWithBalances.debug.test.d.ts.map +0 -1
  266. package/dist/actions/enso/__tests__/util.unit.test.d.ts +0 -2
  267. package/dist/actions/enso/__tests__/util.unit.test.d.ts.map +0 -1
  268. package/dist/actions/enso/getEnsoSwapBundle.d.ts +0 -3
  269. package/dist/actions/enso/getEnsoSwapBundle.d.ts.map +0 -1
  270. package/dist/actions/governance/__tests__/checkProposalField.unit.test.d.ts +0 -2
  271. package/dist/actions/governance/__tests__/checkProposalField.unit.test.d.ts.map +0 -1
  272. package/dist/actions/governance/__tests__/getDecodedFunctionData.integration.test.d.ts +0 -2
  273. package/dist/actions/governance/__tests__/getDecodedFunctionData.integration.test.d.ts.map +0 -1
  274. package/dist/actions/governance/__tests__/getQuorum.integration.test.d.ts +0 -2
  275. package/dist/actions/governance/__tests__/getQuorum.integration.test.d.ts.map +0 -1
  276. package/dist/actions/honey/tests/pyth.integration.test.d.ts +0 -2
  277. package/dist/actions/honey/tests/pyth.integration.test.d.ts.map +0 -1
  278. package/dist/actions/pol/__tests__/getAllValidators.integration.test.d.ts +0 -2
  279. package/dist/actions/pol/__tests__/getAllValidators.integration.test.d.ts.map +0 -1
  280. package/dist/actions/pol/__tests__/getValidator.integration.test.d.ts +0 -2
  281. package/dist/actions/pol/__tests__/getValidator.integration.test.d.ts.map +0 -1
  282. package/dist/actions/pol/__tests__/rewardVaults.integration.test.d.ts +0 -2
  283. package/dist/actions/pol/__tests__/rewardVaults.integration.test.d.ts.map +0 -1
  284. package/dist/actions/pol/getBgtAprSimultaion.unit.test.d.ts +0 -2
  285. package/dist/actions/pol/getBgtAprSimultaion.unit.test.d.ts.map +0 -1
  286. package/dist/actions/pol/getBgtIncentiveDistributorPaused.d.ts +0 -10
  287. package/dist/actions/pol/getBgtIncentiveDistributorPaused.d.ts.map +0 -1
  288. package/dist/actions/pol/getBlockTime.debug.test.d.ts +0 -2
  289. package/dist/actions/pol/getBlockTime.debug.test.d.ts.map +0 -1
  290. package/dist/actions/pol/getRewardProofsByValidator.d.ts +0 -9
  291. package/dist/actions/pol/getRewardProofsByValidator.d.ts.map +0 -1
  292. package/dist/actions/pol/getRewardVaultBeaconImplementation.integration.test.d.ts +0 -2
  293. package/dist/actions/pol/getRewardVaultBeaconImplementation.integration.test.d.ts.map +0 -1
  294. package/dist/actions/pol/getRewardVaultDurationConstants.integration.test.d.ts +0 -2
  295. package/dist/actions/pol/getRewardVaultDurationConstants.integration.test.d.ts.map +0 -1
  296. package/dist/actions/pol/getStakedBeraAPR.d.ts +0 -12
  297. package/dist/actions/pol/getStakedBeraAPR.d.ts.map +0 -1
  298. package/dist/actions/pol/getUserClaimableIncentives.d.ts +0 -9
  299. package/dist/actions/pol/getUserClaimableIncentives.d.ts.map +0 -1
  300. package/dist/actions/prices/__tests__/prices.integration.test.d.ts +0 -2
  301. package/dist/actions/prices/__tests__/prices.integration.test.d.ts.map +0 -1
  302. package/dist/actions/tokens/getWalletBalances.integration.test.d.ts +0 -2
  303. package/dist/actions/tokens/getWalletBalances.integration.test.d.ts.map +0 -1
  304. package/dist/actions/transactions/beraWriteContract.integration.test.d.ts +0 -2
  305. package/dist/actions/transactions/beraWriteContract.integration.test.d.ts.map +0 -1
  306. package/dist/actions/validators/getActiveBoostAndCommissionChangeDelay.integration.test.d.ts +0 -2
  307. package/dist/actions/validators/getActiveBoostAndCommissionChangeDelay.integration.test.d.ts.map +0 -1
  308. package/dist/actions/validators/getValidatorAnalytics.d.ts +0 -12
  309. package/dist/actions/validators/getValidatorAnalytics.d.ts.map +0 -1
  310. package/dist/actions/validators/utils/__tests__/validatorUtils.integration.test.d.ts +0 -2
  311. package/dist/actions/validators/utils/__tests__/validatorUtils.integration.test.d.ts.map +0 -1
  312. package/dist/actions/validators/utils/aggregateValidatorIncentives.unit.test.d.ts +0 -2
  313. package/dist/actions/validators/utils/aggregateValidatorIncentives.unit.test.d.ts.map +0 -1
  314. package/dist/chunk-7TFV6UKF.mjs.map +0 -1
  315. package/dist/chunk-BSOWLS3W.mjs +0 -40
  316. package/dist/chunk-BSOWLS3W.mjs.map +0 -1
  317. package/dist/chunk-DOZJB6IJ.mjs.map +0 -1
  318. package/dist/chunk-IFNIPVTZ.mjs.map +0 -1
  319. package/dist/chunk-NZAH3SGT.mjs.map +0 -1
  320. package/dist/chunk-P3YZ7F22.mjs.map +0 -1
  321. package/dist/chunk-PHYZRH4I.mjs.map +0 -1
  322. package/dist/chunk-UA3Z47LT.mjs.map +0 -1
  323. package/dist/chunk-ZWTGVIPJ.mjs.map +0 -1
  324. package/dist/contexts/block-time-provider.d.ts +0 -10
  325. package/dist/defaultFlags-D6KfkTZx.d.ts +0 -10
  326. package/dist/dex-C_BB0b0O.d.ts +0 -37
  327. package/dist/errors/BeraError.unit.test.d.ts +0 -2
  328. package/dist/errors/BeraError.unit.test.d.ts.map +0 -1
  329. package/dist/errors/BeraTracing.unit.test.d.ts +0 -2
  330. package/dist/errors/BeraTracing.unit.test.d.ts.map +0 -1
  331. package/dist/errors/RequestError.unit.test.d.ts +0 -2
  332. package/dist/errors/RequestError.unit.test.d.ts.map +0 -1
  333. package/dist/errors/assert.unit.test.d.ts +0 -2
  334. package/dist/errors/assert.unit.test.d.ts.map +0 -1
  335. package/dist/errors/getRevertReason.integration.test.d.ts +0 -2
  336. package/dist/errors/getRevertReason.integration.test.d.ts.map +0 -1
  337. package/dist/errors/spanStatus.unit.test.d.ts +0 -2
  338. package/dist/errors/spanStatus.unit.test.d.ts.map +0 -1
  339. package/dist/getApolloClient-MWm_iq4u.d.ts +0 -39
  340. package/dist/getProposalVotes-DAUrdX2n.d.ts +0 -12
  341. package/dist/getValidatorQueuedOperatorAddress-N2I7wHd6.d.ts +0 -511
  342. package/dist/global.d-CR3zicga.d.ts +0 -231
  343. package/dist/global.d-CiZJ2eHz.d.ts +0 -231
  344. package/dist/honey-CYm0RWf4.d.ts +0 -14
  345. package/dist/hooks/enso/useEnsoSwapBundle.d.ts +0 -26
  346. package/dist/hooks/enso/useEnsoSwapBundle.d.ts.map +0 -1
  347. package/dist/hooks/pol/useBgtIncentiveDistributorPaused.d.ts +0 -8
  348. package/dist/hooks/pol/useBgtIncentiveDistributorPaused.d.ts.map +0 -1
  349. package/dist/hooks/pol/useStakedAPR.d.ts +0 -11
  350. package/dist/hooks/pol/useStakedAPR.d.ts.map +0 -1
  351. package/dist/hooks/validators/useUserClaimableIncentives.d.ts +0 -8
  352. package/dist/hooks/validators/useUserClaimableIncentives.d.ts.map +0 -1
  353. package/dist/hooks/validators/useValidatorAnalytics.d.ts +0 -11
  354. package/dist/hooks/validators/useValidatorAnalytics.d.ts.map +0 -1
  355. package/dist/pol.d-CeRgXBL8.d.ts +0 -167
  356. package/dist/txnEnum-ByI5dtDi.d.ts +0 -106
  357. package/dist/types/bribe-boost.d.ts +0 -69
  358. package/dist/types/bribeBoost.d.ts +0 -69
  359. package/dist/types/dex.d.ts +0 -225
  360. package/dist/types/enso.d.ts +0 -76
  361. package/dist/types/global.d.ts +0 -198
  362. package/dist/types/governance.d.ts +0 -112
  363. package/dist/types/honeySwap.d.ts +0 -23
  364. package/dist/types/pol.d.ts +0 -78
  365. package/dist/types/staking.d.ts +0 -22
  366. package/dist/useHoneySwapState-CXVWAThr.d.ts +0 -32
  367. package/dist/useHoneySwapState-twi7NTaO.d.ts +0 -32
  368. package/dist/utils/createEmitter.unit.test.d.ts +0 -2
  369. package/dist/utils/createEmitter.unit.test.d.ts.map +0 -1
  370. package/dist/utils/formatIncentivesTokenMap.d.ts +0 -3
  371. package/dist/utils/formatIncentivesTokenMap.d.ts.map +0 -1
  372. package/dist/utils/formatNumber.unit.test.d.ts +0 -2
  373. package/dist/utils/formatNumber.unit.test.d.ts.map +0 -1
  374. package/dist/utils/formatTimestamps.unit.test.d.ts +0 -2
  375. package/dist/utils/formatTimestamps.unit.test.d.ts.map +0 -1
  376. package/dist/utils/getContractName.unit.test.d.ts +0 -2
  377. package/dist/utils/getContractName.unit.test.d.ts.map +0 -1
  378. package/dist/utils/getHoneySwapMessage.test.d.ts +0 -2
  379. package/dist/utils/getHoneySwapMessage.test.d.ts.map +0 -1
  380. package/dist/utils/layerZeroScan.d.ts +0 -39
  381. package/dist/utils/layerZeroScan.d.ts.map +0 -1
  382. package/dist/utils/math.unit.test.d.ts +0 -2
  383. package/dist/utils/math.unit.test.d.ts.map +0 -1
  384. package/dist/utils/parseBaseArgs.unit.test.d.ts +0 -2
  385. package/dist/utils/parseBaseArgs.unit.test.d.ts.map +0 -1
  386. package/dist/utils/polyfillAbortSignalAny.unit.test.d.ts +0 -2
  387. package/dist/utils/polyfillAbortSignalAny.unit.test.d.ts.map +0 -1
  388. package/dist/utils/time.unit.test.d.ts +0 -2
  389. package/dist/utils/time.unit.test.d.ts.map +0 -1
  390. package/dist/utils/tokens.unit.test.d.ts +0 -2
  391. package/dist/utils/tokens.unit.test.d.ts.map +0 -1
  392. package/dist/utils/truncateHash.unit.test.d.ts +0 -2
  393. package/dist/utils/truncateHash.unit.test.d.ts.map +0 -1
  394. package/src/actions/enso/getEnsoSwapBundle.ts +0 -72
  395. package/src/actions/pol/getBgtIncentiveDistributorPaused.ts +0 -28
  396. package/src/actions/pol/getRewardProofsByValidator.ts +0 -49
  397. package/src/actions/pol/getStakedBeraAPR.ts +0 -56
  398. package/src/actions/pol/getUserClaimableIncentives.ts +0 -40
  399. package/src/actions/validators/getValidatorAnalytics.ts +0 -37
  400. package/src/hooks/enso/useEnsoSwapBundle.ts +0 -121
  401. package/src/hooks/pol/useBgtIncentiveDistributorPaused.ts +0 -34
  402. package/src/hooks/validators/useUserClaimableIncentives.ts +0 -148
  403. package/src/hooks/validators/useValidatorAnalytics.ts +0 -37
  404. package/src/utils/formatIncentivesTokenMap.ts +0 -19
  405. package/src/utils/layerZeroScan.ts +0 -124
  406. /package/dist/{chunk-AEN6IJFU.mjs.map → chunk-7KN7TDUC.mjs.map} +0 -0
  407. /package/dist/{chunk-LE4CYW7S.mjs.map → chunk-FWRYUIJK.mjs.map} +0 -0
  408. /package/dist/{chunk-PJRLHTGC.mjs.map → chunk-HPRLNT6R.mjs.map} +0 -0
  409. /package/dist/{chunk-EJIGERYM.mjs.map → chunk-M3MIGSH3.mjs.map} +0 -0
  410. /package/dist/{chunk-TGN55GKE.mjs.map → chunk-SC3BSCTN.mjs.map} +0 -0
  411. /package/dist/{chunk-QQASX4LJ.mjs.map → chunk-TXWDUJOY.mjs.map} +0 -0
  412. /package/dist/{chunk-EGAB6NFQ.mjs.map → chunk-UWJQ6UKG.mjs.map} +0 -0
  413. /package/dist/{chunk-J3LTASDE.mjs.map → chunk-ZHV3MQ4F.mjs.map} +0 -0
@@ -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/tracedTransport.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 function formatInputTokenValue(inputValue: string): 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 function isNumber(value: unknown): value is number {\n return typeof value === \"number\";\n }\n function isString(value: unknown): value is string {\n return typeof value === \"string\";\n }\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\": \"0xAf10B532cCC25B26a8e28913D5C4056a77e7a178\",\n \"80094\": \"0xc41bbD6695AB6bdc6D04701b15f4CE5EbA2e2500\",\n name: \"pol.lstStakerVaultFactory\",\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 \"80094\": \"0xB5f473c4b7F402d8f7bED42b6D516f5ff3306B01\",\n name: \"bend.production.supportedVaults.1\",\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\nimport { tracedTransport } from \"./tracedTransport\";\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 function 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) => tracedTransport(http(url)));\n\n if (fallbackTransports.length === 0) {\n fallbackTransports.push(tracedTransport(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 type { Transport } from \"viem\";\n\nimport { BeraTracing } from \"../errors/BeraTracing\";\nimport { sanitizeRpcUrl } from \"./sanitizeRpcUrl\";\n\n/**\n * Wraps a viem Transport to trace each RPC request via BeraTracing.\n *\n * Each `request()` call is wrapped in a span with the JSON-RPC method name,\n * transport type, and URL as attributes. Works with `http()`, `fallback()`,\n * and any other viem transport.\n */\nexport function tracedTransport<T extends Transport>(transport: T): T {\n return ((opts: Parameters<Transport>[0]) => {\n const result = transport(opts);\n const originalRequest = result.request;\n\n result.request = async (args, options) => {\n return BeraTracing.startSpan(\n {\n name: `RPC ${args.method}`,\n op: \"rpc.request\",\n attributes: {\n \"rpc.method\": args.method,\n \"rpc.transport\": result.config.type,\n \"rpc.url\": sanitizeRpcUrl(result.value?.url),\n },\n },\n () => originalRequest(args, options),\n );\n };\n\n return result;\n }) as T;\n}\n","import BigNumber from \"@berachain/utils/pkg/bignumber.js\";\n\nexport function isDifferenceExceedingThreshold({\n initialAmount,\n newAmount,\n threshold,\n}: {\n initialAmount: string;\n newAmount: string;\n threshold: number;\n}): boolean {\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\nfunction sleep(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\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 function truncateHash(\n address: `0x${string}` | string,\n startLength = 4,\n endLength = 4,\n formatUppercase = false,\n): string {\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,SAAS,sBAAsB,YAA4B;AAChE,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,QAASA,YAAT,SAAkB,OAAiC;AACjD,aAAO,OAAO,UAAU;AAAA,IAC1B,GACSC,YAAT,SAAkB,OAAiC;AACjD,aAAO,OAAO,UAAU;AAAA,IAC1B;AALS,mBAAAD,WAGA,WAAAC;AAIT,QAAI,CAACD,UAAS,KAAK,KAAK,CAACC,UAAS,KAAK,GAAG;AACxC,aAAO,UAAU,OAAO,CAAC;AAAA,IAC3B;AAEA,QAAI;AAEJ,QAAIA,UAAS,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;;;AC7CA,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,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,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;AACF;;;ADtaO,SAAS,gBAAgB;AAAA,EAC9B;AAAA,EACA,UAAU;AACZ,GAGuB;AACrB,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,QAAM,WAAW,UAAU,KAAK,CAACC,cAAa;AAC5C,UAAM,kBAAkBA,UAAS,OAAgC;AACjE,WAAO,iBAAiB,YAAY,MAAM,QAAQ,YAAY;AAAA,EAChE,CAAC;AAED,SAAO,UAAU;AACnB;;;AEnBO,SAAS,oBAAoB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAOW;AACT,MAAI,YAAY,SAAS,GAAG;AAC1B,QAAI,eAAe,QAAQ;AACzB,YAAMC,OAAM,CAAC,SAAS;AACtB,MAAAA,KAAI,KAAK,aAAa,OAAO,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7C,MAAAA,KAAI,KAAK,YAAY;AACrB,UAAI,qBAAqB;AACvB,mBAAW,OAAO,aAAa;AAC7B,UAAAA,KAAI,KAAK,aAAa,OAAO,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC;AACjD,UAAAA,KAAI,KAAK,GAAG,YAAY,GAAG,EAAE,MAAM,EAAE;AACrC,cAAI,CAAC,MAAM,YAAY,SAAS,GAAG;AACjC,YAAAA,KAAIA,KAAI,SAAS,CAAC,IAAIA,KAAIA,KAAI,SAAS,CAAC,EAAE,OAAO,GAAG;AAAA,UACtD,WAAW,CAAC,QAAQ,YAAY,SAAS,GAAG;AAC1C,YAAAA,KAAIA,KAAI,SAAS,CAAC,IAAIA,KAAIA,KAAI,SAAS,CAAC,EAAE,OAAO,GAAG;AAAA,UACtD,OAAO;AACL,YAAAA,KAAI,KAAK,KAAK;AAAA,UAChB;AAAA,QACF;AAAA,MACF,OAAO;AACL,QAAAA,KAAI,KAAK,aAAa,OAAO,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/C,QAAAA,KAAI,KAAK,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE;AAAA,MACrC;AACA,aAAOA,KAAI,KAAK,GAAG;AAAA,IACrB;AACA,UAAM,MAAM,CAAC,WAAW;AACxB,QAAI,qBAAqB;AACvB,iBAAW,OAAO,aAAa;AAC7B,YAAI,KAAK,aAAa,OAAO,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC;AAC/C,YAAI,KAAK,GAAG,YAAY,GAAG,EAAE,MAAM,EAAE;AACrC,YAAI,CAAC,MAAM,YAAY,SAAS,GAAG;AACjC,cAAI,IAAI,SAAS,CAAC,IAAI,IAAI,IAAI,SAAS,CAAC,EAAE,OAAO,GAAG;AAAA,QACtD,WAAW,CAAC,QAAQ,YAAY,SAAS,GAAG;AAC1C,cAAI,KAAK,KAAK;AACd,cAAI,KAAK,aAAa,OAAO,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/C,cAAI,KAAK,QAAQ;AAAA,QACnB,OAAO;AACL,cAAI,KAAK,KAAK;AAAA,QAChB;AAAA,MACF;AAAA,IACF,OAAO;AACL,UAAI,KAAK,aAAa,OAAO,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7C,UAAI,KAAK,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE;AACnC,UAAI,KAAK,KAAK;AACd,UAAI,KAAK,aAAa,OAAO,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/C,UAAI,KAAK,QAAQ;AAAA,IACnB;AACA,WAAO,IAAI,KAAK,GAAG;AAAA,EACrB;AACA,SAAO;AACT;;;ACrEA,SAAS,oBAAoB,UAAU,YAA+B;AACtE,SAAS,WAAW,wBAAwB;AAE5C;AAAA,EACE;AAAA,EACA,kBAAAC;AAAA,EACA;AAAA,OACK;;;ACKA,SAAS,gBAAqC,WAAiB;AACpE,UAAQ,CAAC,SAAmC;AAC1C,UAAM,SAAS,UAAU,IAAI;AAC7B,UAAM,kBAAkB,OAAO;AAE/B,WAAO,UAAU,OAAO,MAAM,YAAY;AACxC,aAAO,YAAY;AAAA,QACjB;AAAA,UACE,MAAM,OAAO,KAAK,MAAM;AAAA,UACxB,IAAI;AAAA,UACJ,YAAY;AAAA,YACV,cAAc,KAAK;AAAA,YACnB,iBAAiB,OAAO,OAAO;AAAA,YAC/B,WAAW,eAAe,OAAO,OAAO,GAAG;AAAA,UAC7C;AAAA,QACF;AAAA,QACA,MAAM,gBAAgB,MAAM,OAAO;AAAA,MACrC;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;;;ADlBA,IAAM,WAAuC,oBAAI,IAAI;AAE9C,SAAS,0BACd,OAA8B,CAAC,GACjB;AACd,QAAM,UAAmB,KAAK,WAAWC;AAEzC,MAAI,SAAS,IAAI,OAAO,GAAG;AACzB,WAAO,SAAS,IAAI,OAAO;AAAA,EAC7B;AAEA,QAAM,OAAO,WAAW,OAAO;AAC/B,QAAM,qBAAqB;AAAA,IACzB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,EACP,EACG,OAAO,CAAC,MAAM,CAAC,EACf,IAAI,CAAC,QAAQ,gBAAgB,KAAK,GAAG,CAAC,CAAC;AAE1C,MAAI,mBAAmB,WAAW,GAAG;AACnC,uBAAmB,KAAK,gBAAgB,KAAK,CAAC,CAAC;AAAA,EACjD;AACA,QAAM,QAAQ,YAAY,QAAQ,UAAU,YAAY;AACxD,QAAM,SAAS,mBAAmB;AAAA,IAChC;AAAA,IACA,WAAW,SAAS,kBAAkB;AAAA,EACxC,CAAC;AAED,WAAS,IAAI,SAAS,MAAM;AAE5B,SAAO;AACT;;;AE/CO,SAAS,+BAA+B;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AACF,GAIY;AACV,QAAM,aAAa,IAAI,qBAAU,IAAI,SAAS,EAAE,MAAM,aAAa;AACnE,QAAM,aAAa,IAAI,qBAAU,IAAI,SAAS,EAAE,MAAM,aAAa;AACnE,SACE,WAAW,WAAW,SAAS,KAAK,WAAW,cAAc,SAAS;AAE1E;;;AChBO,SAAS,gBAAgB;AAAA,EAC9B;AAAA,EACA;AACF,GAGG;AACD,MAAI,CAAC,mBAAoB,QAAO;AAChC,SAAO,qBAAqB,KAAK,IAAI,IAAI,MAAO,YAAY;AAC9D;;;ACJA,IAAM,6BAA6B;AAE5B,IAAK,yBAAL,kBAAKC,4BAAL;AACL,EAAAA,wBAAA,cAAW;AACX,EAAAA,wBAAA,eAAY;AACZ,EAAAA,wBAAA,YAAS;AAHC,SAAAA;AAAA,GAAA;AA4BZ,SAAS,MAAM,IAAY;AACzB,SAAO,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,EAAE,CAAC;AACzD;AAEA,eAAe,uBACb,WACyC;AACzC,SAAO,cAA8C;AAAA,IACnD,KAAK,GAAG,0BAA0B,OAAO,SAAS;AAAA,IAClD,MAAM;AAAA,IACN,MAAM;AAAA,EACR,CAAC;AACH;AAmBA,eAAsB,gCACpB,WACA,UAAyC,CAAC,GACN;AACpC,QAAM,EAAE,eAAe,KAAM,UAAU,IAAQ,IAAI;AAEnD,MAAI,CAAC,WAAW;AACd,UAAM,IAAI,qBAAqB;AAAA,MAC7B,UAAU;AAAA,MACV,OAAO;AAAA,MACP,UAAU;AAAA,IACZ,CAAC;AAAA,EACH;AAEA,QAAM,YAAY,KAAK,IAAI;AAE3B,SAAO,MAAM;AAEX,QAAI,KAAK,IAAI,IAAI,YAAY,SAAS;AACpC,YAAM,IAAI,UAAU;AAAA,QAClB,SAAS,8CAA8C,OAAO;AAAA,QAC9D,QAAQ;AAAA,QACR,OAAO;AAAA,MACT,CAAC;AAAA,IACH;AAEA,QAAI;AACF,YAAM,EAAE,SAAS,IAAI,MAAM,uBAAuB,SAAS;AAC3D,YAAM,UAAU,SAAS,CAAC;AAE1B,UAAI,SAAS,SAAS,GAAG;AACvB,cAAM,IAAI,UAAU;AAAA,UAClB,SAAS;AAAA,UACT,QAAQ;AAAA,QACV,CAAC;AAAA,MACH;AAEA,UAAI,SAAS,WAAW,uBAA+B;AACrD,cAAM,IAAI,UAAU;AAAA,UAClB,SAAS,6BAA6B,QAAQ,UAAU;AAAA,UACxD,QAAQ;AAAA,QACV,CAAC;AAAA,MACH;AAEA,UAAI,SAAS,WAAW,6BAAkC;AACxD,eAAO;AAAA,MACT;AAAA,IACF,SAAS,OAAO;AAGd,UAAI,iBAAiB,aAAa,EAAE,iBAAiB,eAAe;AAClE,cAAM;AAAA,MACR;AAAA,IACF;AAEA,UAAM,MAAM,YAAY;AAAA,EAC1B;AACF;;;AClHO,SAAS,gBAAgB,OAAkC;AAChE,SAAO;AAAA,IACL,GAAG;AAAA,IACH,SAAS,MAAM,MAAM;AAAA,EACvB;AACF;;;ACXO,SAAS,aACd,SACA,cAAc,GACd,YAAY,GACZ,kBAAkB,OACV;AACR,MAAI,CAAC,QAAS,QAAO;AAErB,QAAM,mBAAmB,kBACrB,QAAQ,YAAY,EAAE,QAAQ,OAAO,IAAI,IACzC;AAEJ,SAAO,GAAG,iBAAiB;AAAA,IACzB;AAAA,IACA;AAAA,EACF,CAAC,MAAM,iBAAiB,UAAU,iBAAiB,SAAS,SAAS,CAAC;AACxE;;;ACnBA,SAAS,qCAAqC;AASvC,SAAS,oBACd,QACqB;AACrB,MAAI,CAAC,OAAQ,QAAO;AACpB,SAAO,WAAW,8BAA8B;AAClD;AAUO,SAAS,kBACd,QACqB;AACrB,MAAI,CAAC,OAAQ,QAAO;AACpB,SAAO,WAAW,8BAA8B;AAClD;","names":["isNumber","isString","contract","msg","defaultChainId","defaultChainId","LayerZeroMessageStatus"]}
1
+ {"version":3,"sources":["../../src/utils/crossChainBridge.ts","../../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/tracedTransport.ts","../../src/utils/isDifferenceExceedingThreshold.ts","../../src/utils/isSubgraphStale.ts","../../src/utils/parseWhiskToken.ts","../../src/utils/truncateHash.ts","../../src/utils/validatorUptimeStatus.ts"],"sourcesContent":["import { fetchLayerzero } from \"../actions/clients/fetchLayerzero\";\nimport { BeraError } from \"../errors/BeraError\";\nimport { InvalidArgumentError } from \"../errors/InvalidArgumentError\";\nimport { RequestError } from \"../errors/RequestError\";\nimport { beraFetchJson } from \"./beraFetch\";\n\n// Enso routes cross-chain zaps over one of these bridges (from the \"bridge\"\n// hop's `protocol` in its route response). Each has its own status API +\n// explorer, so tracking has to branch on the bridge.\nexport type BridgeProtocol = \"relay\" | \"stargate\" | \"ccip\" | \"layerzero\";\n\nconst RELAY_API_URL = \"https://api.relay.link\";\n\n// Public explorer origins for deep-linking a bridged tx. See getBridgeExplorerUrl.\nconst LAYERZERO_SCAN_EXPLORER = \"https://layerzeroscan.com\";\nconst RELAY_EXPLORER = \"https://relay.link\";\n\nexport enum BridgeMessageStatus {\n INFLIGHT = \"INFLIGHT\",\n DELIVERED = \"DELIVERED\",\n FAILED = \"FAILED\",\n}\n\nexport type BridgeMessage = {\n srcTxHash?: string;\n dstTxHash?: string;\n status: BridgeMessageStatus;\n statusMessage?: string;\n /**\n * Bridge-specific id for deep-linking the explorer, when the explorer keys\n * on something other than the source tx hash (Relay uses its requestId).\n */\n explorerId?: string;\n};\n\nexport type BridgeDeliveredMessage = BridgeMessage & {\n dstTxHash: string;\n};\n\n// --- LayerZero / Stargate ---------------------------------------------------\n\nasync function getLayerZeroMessage(srcTxHash: string): Promise<BridgeMessage> {\n const { data } = await fetchLayerzero(\"/messages/tx/{tx}\", {\n path: { tx: srcTxHash },\n });\n\n const message = data[0];\n if (!message) {\n // not indexed yet — keep polling\n return { srcTxHash, status: BridgeMessageStatus.INFLIGHT };\n }\n\n return {\n srcTxHash: message.source?.tx?.txHash,\n // the destination union has several shapes; only the plain-delivery one\n // carries `tx.txHash`, so narrow before reading it.\n dstTxHash:\n message.destination && \"tx\" in message.destination\n ? message.destination.tx?.txHash\n : undefined,\n statusMessage: message.status?.message,\n // v1 exposes many transient states; anything not DELIVERED/FAILED means\n // \"keep polling\", so collapse unknown names to INFLIGHT.\n status:\n message.status?.name === \"DELIVERED\"\n ? BridgeMessageStatus.DELIVERED\n : message.status?.name === \"FAILED\"\n ? BridgeMessageStatus.FAILED\n : BridgeMessageStatus.INFLIGHT,\n };\n}\n\n// --- Relay ------------------------------------------------------------------\n\n// Relay has no OpenAPI schema/client yet (unlike LayerZero's fetchLayerzero),\n// so this stays hand-rolled over beraFetchJson with a local response type.\n// Raw shape of the Relay requests API (only the fields we consume).\ntype RelayRequestsResponse = {\n requests: {\n id: string;\n status: string;\n data?: {\n failReason?: string;\n outTxs?: { hash?: string }[];\n };\n }[];\n};\n\nasync function getRelayMessage(srcTxHash: string): Promise<BridgeMessage> {\n const { requests } = await beraFetchJson<RelayRequestsResponse>({\n url: `${RELAY_API_URL}/requests/v2?hash=${srcTxHash}`,\n type: \"rest\",\n name: \"Relay\",\n });\n\n const request = requests[0];\n if (!request) {\n // not indexed yet — keep polling\n return { srcTxHash, status: BridgeMessageStatus.INFLIGHT };\n }\n\n return {\n srcTxHash,\n dstTxHash: request.data?.outTxs?.[0]?.hash,\n statusMessage: request.data?.failReason,\n // Relay's explorer keys on the requestId, not the source tx hash.\n explorerId: request.id,\n status:\n request.status === \"success\"\n ? BridgeMessageStatus.DELIVERED\n : request.status === \"failure\" || request.status === \"refund\"\n ? BridgeMessageStatus.FAILED\n : BridgeMessageStatus.INFLIGHT,\n };\n}\n\n// --- Unified poller ---------------------------------------------------------\n\nfunction sleep(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nfunction getBridgeMessage(\n bridgeProtocol: string,\n srcTxHash: string,\n): Promise<BridgeMessage> {\n switch (bridgeProtocol) {\n case \"relay\":\n return getRelayMessage(srcTxHash);\n // Enso's \"stargate\" is LayerZero's Stargate; both track on LayerZero Scan.\n case \"stargate\":\n case \"layerzero\":\n return getLayerZeroMessage(srcTxHash);\n default:\n // ccip and anything else aren't tracked (ccip is excluded at routing time\n // via `ignoreBridges` in ensoErc4626) — reject so the caller can decide\n // (the tracker treats this as \"can't poll\", not \"failed\").\n throw new InvalidArgumentError({\n property: \"bridgeProtocol\",\n value: bridgeProtocol,\n expected: \"relay | stargate | layerzero\",\n });\n }\n}\n\nexport interface BridgeExplorerUrlArgs {\n /** Bridge Enso routed through; picks which explorer to link. */\n bridgeProtocol?: string;\n /** Source-chain tx hash — how LayerZero/Stargate + the fallback key. */\n srcTxHash?: string;\n /**\n * Relay's requestId, when known. Relay's explorer prefers it but also resolves\n * on the src tx hash, so a missing id still links to the bridge explorer.\n */\n explorerId?: string;\n /**\n * Source-chain block explorer origin (e.g. https://etherscan.io). Only a\n * last resort for an unknown/untracked bridge; tracked bridges always link to\n * their own bridge explorer (which shows the src→dst delivery still in flight).\n */\n fallbackExplorerUrl: string;\n}\n\n/**\n * Deep-link a bridged tx to the right *bridge* explorer — the one showing the\n * source→destination delivery, which is what's still in flight once a tracker is\n * visible (the source tx already confirmed). Enso picks the bridge per-route, so\n * a single hardcoded explorer is wrong for the others; each keys differently\n * (LayerZero/Stargate on the src tx hash, Relay on its requestId or the src tx\n * hash). Only a genuinely unknown protocol falls back to the source chain's own\n * block explorer.\n *\n * We deliberately don't route this through Enso's `getBridgeStatus`\n * (`/{protocol}/bridge/check`): it normalizes status but doesn't return Relay's\n * requestId, which the Relay deep link prefers — so we'd still branch per bridge.\n */\nexport function getBridgeExplorerUrl({\n bridgeProtocol,\n srcTxHash,\n explorerId,\n fallbackExplorerUrl,\n}: BridgeExplorerUrlArgs): string | undefined {\n switch (bridgeProtocol) {\n case \"relay\":\n // Relay's explorer resolves on either the requestId or the src tx hash,\n // so stay on the bridge explorer even before we've fetched the id.\n return srcTxHash || explorerId\n ? `${RELAY_EXPLORER}/transaction/${explorerId ?? srcTxHash}`\n : undefined;\n case \"stargate\":\n case \"layerzero\":\n return srcTxHash\n ? `${LAYERZERO_SCAN_EXPLORER}/tx/${srcTxHash}`\n : undefined;\n default:\n // Unknown/untracked bridge (shouldn't surface — ccip is routed out and the\n // tracker needs a known protocol to poll): no bridge explorer exists, so\n // the source chain's block explorer is the only link we can build.\n return srcTxHash ? `${fallbackExplorerUrl}/tx/${srcTxHash}` : undefined;\n }\n}\n\n/**\n * One-shot status lookup for a bridged tx. Used to grab the explorer id (e.g.\n * Relay's requestId) for the pending-state link before delivery. Swallows\n * errors into an INFLIGHT result so a not-yet-indexed tx doesn't throw.\n */\nexport async function getBridgeMessageOnce(\n bridgeProtocol: string,\n srcTxHash: string,\n): Promise<BridgeMessage> {\n try {\n return await getBridgeMessage(bridgeProtocol, srcTxHash);\n } catch {\n return { srcTxHash, status: BridgeMessageStatus.INFLIGHT };\n }\n}\n\nexport type WaitForMessageReceivedOptions = {\n /** Which bridge Enso routed through; narrowed at getBridgeMessage's switch. */\n bridgeProtocol: string;\n /** Polling interval in ms (default: 3000). */\n pollInterval?: number;\n /** Timeout in ms (default: 600000 / 10 minutes). */\n timeout?: number;\n};\n\n/**\n * Polls the bridge's status API until the cross-chain message is delivered or\n * fails, then resolves with the delivered message (incl. destination tx hash).\n * HTTP errors are silently retried until timeout. Throws InvalidArgumentError\n * if srcTxHash/bridgeProtocol is missing or unsupported, or BeraError if the\n * message fails or times out.\n */\nexport async function waitForBridgeMessageReceived(\n srcTxHash: string,\n options: WaitForMessageReceivedOptions,\n): Promise<BridgeDeliveredMessage> {\n const { bridgeProtocol, 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 if (Date.now() - startTime > timeout) {\n throw new BeraError({\n message: `Bridge message tracking timed out after ${timeout}ms`,\n reason: \"BRIDGE_TIMEOUT\",\n level: \"warning\",\n });\n }\n\n try {\n const message = await getBridgeMessage(bridgeProtocol, srcTxHash);\n\n if (message.status === BridgeMessageStatus.FAILED) {\n throw new BeraError({\n message: `Bridge message failed: ${message.statusMessage}`,\n reason: \"BRIDGE_MESSAGE_FAILED\",\n });\n }\n\n // Only resolve once we actually have the destination tx hash the type\n // promises. A DELIVERED status without one (e.g. LZ's destination union\n // lacking `tx`) means the dst tx isn't indexed yet — keep polling rather\n // than cast a message with `dstTxHash: undefined`.\n if (\n message.status === BridgeMessageStatus.DELIVERED &&\n message.dstTxHash\n ) {\n return message as BridgeDeliveredMessage;\n }\n } catch (error) {\n // re-throw non-retryable errors (validation, failed message) but allow\n // 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","export function formatInputTokenValue(inputValue: string): 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 function isNumber(value: unknown): value is number {\n return typeof value === \"number\";\n }\n function isString(value: unknown): value is string {\n return typeof value === \"string\";\n }\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\": \"0xAf10B532cCC25B26a8e28913D5C4056a77e7a178\",\n \"80094\": \"0xc41bbD6695AB6bdc6D04701b15f4CE5EbA2e2500\",\n name: \"pol.lstStakerVaultFactory\",\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 \"80094\": \"0xB5f473c4b7F402d8f7bED42b6D516f5ff3306B01\",\n name: \"bend.production.supportedVaults.1\",\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\nimport { tracedTransport } from \"./tracedTransport\";\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 function 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) => tracedTransport(http(url)));\n\n if (fallbackTransports.length === 0) {\n fallbackTransports.push(tracedTransport(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 type { Transport } from \"viem\";\n\nimport { BeraTracing } from \"../errors/BeraTracing\";\nimport { sanitizeRpcUrl } from \"./sanitizeRpcUrl\";\n\n/**\n * Wraps a viem Transport to trace each RPC request via BeraTracing.\n *\n * Each `request()` call is wrapped in a span with the JSON-RPC method name,\n * transport type, and URL as attributes. Works with `http()`, `fallback()`,\n * and any other viem transport.\n */\nexport function tracedTransport<T extends Transport>(transport: T): T {\n return ((opts: Parameters<Transport>[0]) => {\n const result = transport(opts);\n const originalRequest = result.request;\n\n result.request = async (args, options) => {\n return BeraTracing.startSpan(\n {\n name: `RPC ${args.method}`,\n op: \"rpc.request\",\n attributes: {\n \"rpc.method\": args.method,\n \"rpc.transport\": result.config.type,\n \"rpc.url\": sanitizeRpcUrl(result.value?.url),\n },\n },\n () => originalRequest(args, options),\n );\n };\n\n return result;\n }) as T;\n}\n","import BigNumber from \"@berachain/utils/pkg/bignumber.js\";\n\nexport function isDifferenceExceedingThreshold({\n initialAmount,\n newAmount,\n threshold,\n}: {\n initialAmount: string;\n newAmount: string;\n threshold: number;\n}): boolean {\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 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 function truncateHash(\n address: `0x${string}` | string,\n startLength = 4,\n endLength = 4,\n formatUppercase = false,\n): string {\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":"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AS;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,MA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","names":["BridgeMessageStatus","isNumber","isString","contract","msg","defaultChainId","defaultChainId"]}
@@ -12,6 +12,7 @@ export declare function getTestClient(chainId?: ChainId): {
12
12
  name: string;
13
13
  pollingInterval: number;
14
14
  request: import("viem").EIP1193RequestFn<import("viem").TestRpcSchema<"anvil">>;
15
+ tokens: import("viem").Tokens | undefined;
15
16
  transport: import("viem").TransportConfig<"http", import("viem").EIP1193RequestFn> & {
16
17
  fetchOptions?: import("viem").HttpTransportConfig["fetchOptions"] | undefined;
17
18
  url?: string | undefined;
@@ -61,13 +62,14 @@ export declare function getTestClient(chainId?: ChainId): {
61
62
  name?: undefined;
62
63
  pollingInterval?: undefined;
63
64
  request?: undefined;
65
+ tokens?: undefined;
64
66
  transport?: undefined;
65
67
  type?: undefined;
66
68
  uid?: undefined;
67
- } & import("viem").ExactPartial<Pick<import("viem").PublicActions<import("viem").HttpTransport<undefined, false>, undefined, undefined>, "getBlockNumber" | "getChainId" | "call" | "createContractEventFilter" | "createEventFilter" | "estimateContractGas" | "estimateGas" | "getBlock" | "getContractEvents" | "getEnsText" | "getFilterChanges" | "getGasPrice" | "getLogs" | "getTransaction" | "getTransactionCount" | "getTransactionReceipt" | "prepareTransactionRequest" | "readContract" | "sendRawTransaction" | "simulateContract" | "uninstallFilter" | "watchBlockNumber" | "watchContractEvent"> & Pick<import("viem").WalletActions<undefined, undefined>, "sendTransaction" | "writeContract">>>(fn: (client: import("viem").Client<import("viem").HttpTransport<undefined, false>, undefined, undefined, import("viem").TestRpcSchema<"anvil">, {
69
+ } & import("viem").ExactPartial<Pick<import("viem").PublicActions<import("viem").HttpTransport<undefined, false>, undefined, undefined, import("viem").Tokens | undefined>, "getBlockNumber" | "getChainId" | "call" | "createContractEventFilter" | "createEventFilter" | "estimateContractGas" | "estimateGas" | "getBlock" | "getContractEvents" | "getEnsText" | "getFilterChanges" | "getGasPrice" | "getLogs" | "getTransaction" | "getTransactionCount" | "getTransactionReceipt" | "prepareTransactionRequest" | "readContract" | "sendRawTransaction" | "simulateContract" | "uninstallFilter" | "watchBlockNumber" | "watchContractEvent"> & Pick<import("viem").WalletActions<undefined, undefined, import("viem").Tokens | undefined>, "sendTransaction" | "writeContract">>>(fn: (client: import("viem").Client<import("viem").HttpTransport<undefined, false>, undefined, undefined, import("viem").TestRpcSchema<"anvil">, {
68
70
  mode: "anvil";
69
- } & import("viem").TestActions>) => client) => import("viem").Client<import("viem").HttpTransport<undefined, false>, undefined, undefined, import("viem").TestRpcSchema<"anvil">, { [K in keyof client]: client[K]; } & {
71
+ } & import("viem").TestActions, import("viem").Tokens | undefined>) => client) => import("viem").Client<import("viem").HttpTransport<undefined, false>, undefined, undefined, import("viem").TestRpcSchema<"anvil">, { [K in keyof client]: client[K]; } & {
70
72
  mode: "anvil";
71
- } & import("viem").TestActions>;
73
+ } & import("viem").TestActions, import("viem").Tokens | undefined>;
72
74
  };
73
75
  //# sourceMappingURL=getTestClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getTestClient.d.ts","sourceRoot":"","sources":["../../src/utils/getTestClient.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,OAAO,EAGb,MAAM,4BAA4B,CAAC;AAEpC,wBAAgB,aAAa,CAAC,OAAO,GAAE,OAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAW8jT,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAD7nT"}
1
+ {"version":3,"file":"getTestClient.d.ts","sourceRoot":"","sources":["../../src/utils/getTestClient.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,OAAO,EAGb,MAAM,4BAA4B,CAAC;AAEpC,wBAAgB,aAAa,CAAC,OAAO,GAAE,OAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAW8jT,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAD7nT"}
@@ -1 +1 @@
1
- {"version":3,"file":"parseWhiskToken.d.ts","sourceRoot":"","sources":["../../src/utils/parseWhiskToken.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAI/E;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,yBAAyB;;;;;;;;;;kBAMwwiE,CAAC;;;EADx0iE"}
1
+ {"version":3,"file":"parseWhiskToken.d.ts","sourceRoot":"","sources":["../../src/utils/parseWhiskToken.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAI/E;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,yBAAyB;;;;;;;;;;kBAMmspE,CAAC;;;EADnwpE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@berachain/berajs",
3
- "version": "0.2.13",
3
+ "version": "0.3.0",
4
4
  "sideEffects": false,
5
5
  "files": [
6
6
  "dist",
@@ -12,11 +12,12 @@
12
12
  "dependencies": {
13
13
  "@apollo/client": "4.1.6",
14
14
  "@berachain-foundation/berancer-sdk": "1.1.7",
15
- "@berachain/abis": "0.1.3-beta.0",
16
- "@berachain/config": "0.1.23",
17
- "@berachain/graphql": "0.5.2",
18
- "@ensofinance/sdk": "2.3.1",
15
+ "@berachain/abis": "0.1.3",
16
+ "@berachain/config": "0.2.1",
17
+ "@berachain/graphql": "0.7.0",
18
+ "@ensofinance/sdk": "2.5.0",
19
19
  "@pythnetwork/hermes-client": "2.0.0",
20
+ "@vercel/edge-config": "1.4.3",
20
21
  "@wagmi/core": "2.22.1",
21
22
  "gray-matter": "4.0.3"
22
23
  },
@@ -29,8 +30,9 @@
29
30
  "swr": "2.4.1",
30
31
  "tsup": "8.5.1",
31
32
  "typescript": "5.5.4",
32
- "viem": "2.52.0",
33
+ "viem": "2.54.6",
33
34
  "vitest": "3.2.6",
35
+ "@berachain/edge-config": "0.1.0",
34
36
  "@berachain/utils": "0.1.0",
35
37
  "@berachain/wagmi": "0.4.2-beta.6"
36
38
  },
@@ -110,9 +110,11 @@ export class BeraApolloClient extends ApolloClient {
110
110
  });
111
111
  }
112
112
  if (error instanceof TypeError) {
113
+ // A fetch TypeError ("Failed to fetch" / "Load failed" / CORS) is a
114
+ // network failure, not a fatal bug. Let RequestError classify it as
115
+ // NETWORK_ERROR (warning) so it groups by domain alongside every other
116
+ // network error instead of fragmenting per-route. See HUB-4GF.
113
117
  throw new RequestError({
114
- level: "fatal",
115
- reason: "TypeError",
116
118
  response: error,
117
119
  cause: error,
118
120
  endpoint,
@@ -0,0 +1,17 @@
1
+ import { currentDapp } from "@berachain/config/internal";
2
+
3
+ /**
4
+ * Identifies the caller of a backend request for client-tracking metrics:
5
+ * `berachain.dapps` from a real dapp (hub/bend/honey), `berachain.berajs-test`
6
+ * in the test env, else `berachain.berajs` when berajs is consumed as a library.
7
+ *
8
+ * Used for both Stellate's GraphQL `x-graphql-client-name` and beep's
9
+ * `X-Client-Id` so the two stay in sync.
10
+ */
11
+ export function getClientName(): string {
12
+ if (currentDapp) return "berachain.dapps";
13
+ if (process.env.VERCEL_ENV === "test" || process.env.NODE_ENV === "test")
14
+ return "berachain.berajs-test";
15
+ // tracks usage of the berajs package in other packages
16
+ return "berachain.berajs";
17
+ }
@@ -0,0 +1,39 @@
1
+ import { afterEach, describe, expect, it, vi } from "vitest";
2
+
3
+ // `currentDapp` is derived from env at config import time, so we mock it
4
+ // directly per case rather than stubbing the env and re-importing the chain.
5
+ const mocks = vi.hoisted(() => ({
6
+ currentDapp: undefined as string | undefined,
7
+ }));
8
+ vi.mock("@berachain/config/internal", () => ({
9
+ get currentDapp() {
10
+ return mocks.currentDapp;
11
+ },
12
+ }));
13
+
14
+ async function getClientName() {
15
+ return (await import("./clientName")).getClientName();
16
+ }
17
+
18
+ describe("getClientName", () => {
19
+ afterEach(() => {
20
+ mocks.currentDapp = undefined;
21
+ vi.unstubAllEnvs();
22
+ });
23
+
24
+ it("returns berachain.dapps when running inside a dapp", async () => {
25
+ mocks.currentDapp = "BeraHub";
26
+ expect(await getClientName()).toBe("berachain.dapps");
27
+ });
28
+
29
+ it("returns berachain.berajs-test in the test env", async () => {
30
+ vi.stubEnv("VERCEL_ENV", "test");
31
+ expect(await getClientName()).toBe("berachain.berajs-test");
32
+ });
33
+
34
+ it("falls back to berachain.berajs outside a dapp and outside test", async () => {
35
+ vi.stubEnv("NODE_ENV", "production");
36
+ vi.stubEnv("VERCEL_ENV", "");
37
+ expect(await getClientName()).toBe("berachain.berajs");
38
+ });
39
+ });
@@ -1,4 +1,6 @@
1
1
  export { fetchBeep } from "./fetchBeep";
2
+ export { fetchEnso } from "./fetchEnso";
3
+ export { fetchLayerzero } from "./fetchLayerzero";
2
4
  export { fetchOpenApi } from "./fetchOpenApi";
3
5
  export {
4
6
  getApolloClient,
@@ -1,6 +1,7 @@
1
1
  import type { paths } from "@berachain/graphql/beep";
2
2
 
3
3
  import { parseBaseArgs } from "../../utils/parseBaseArgs";
4
+ import { getClientName } from "./clientName";
4
5
  import {
5
6
  type DefinedParams,
6
7
  fetchOpenApi,
@@ -23,5 +24,7 @@ export function fetchBeep<P extends GetPath<paths>>(
23
24
  ): Promise<GetResponse<paths, P>> {
24
25
  const { config } = parseBaseArgs(args);
25
26
 
26
- return fetchOpenApi<paths, P>(config.beep, path, params, "beep");
27
+ return fetchOpenApi<paths, P>(config.beep, path, params, "beep", {
28
+ "X-Client-Id": getClientName(),
29
+ });
27
30
  }
@@ -0,0 +1,48 @@
1
+ import { appConfig } from "@berachain/config/internal";
2
+
3
+ import type { paths } from "@berachain/graphql/enso";
4
+
5
+ import { parseBaseArgs } from "../../utils/parseBaseArgs";
6
+ import {
7
+ type DefinedParams,
8
+ fetchOpenApi,
9
+ type GetPath,
10
+ type GetResponse,
11
+ } from "./fetchOpenApi";
12
+
13
+ const isProduction =
14
+ process.env.NODE_ENV !== "development" && process.env.NODE_ENV !== "test";
15
+
16
+ /** Enso's public API origin. Schema paths already carry the `/api/v1` prefix. */
17
+ const ENSO_API_ORIGIN = "https://api.enso.build";
18
+
19
+ /**
20
+ * Typed GET against the Enso API.
21
+ *
22
+ * The `path`, its path/query params and the response are all type-checked
23
+ * against the Enso schema (`@berachain/graphql/enso`). Base URL and auth mirror
24
+ * {@link getEnsoClient}: in production requests go through the aggregators proxy
25
+ * (which injects Enso auth), and in dev/test they hit Enso directly with the
26
+ * public API key.
27
+ *
28
+ * Enso covers relay/bridge-check routes today, but callers should treat this as
29
+ * "the Enso implementation" of those flows — if we later relay such txns
30
+ * without Enso, swap the helper at the call site rather than generalizing this.
31
+ */
32
+ export function fetchEnso<P extends GetPath<paths>>(
33
+ path: P,
34
+ params: DefinedParams<paths, P>,
35
+ args: BeraJS.BaseFunctionArgs = {},
36
+ ): Promise<GetResponse<paths, P>> {
37
+ const { config } = parseBaseArgs(args);
38
+
39
+ // Proxy in prod (auth handled by the proxy); direct + public key otherwise.
40
+ const origin = isProduction
41
+ ? `${config.bex.aggregatorsProxyUrl}/enso`
42
+ : ENSO_API_ORIGIN;
43
+ const headers = isProduction
44
+ ? undefined
45
+ : { Authorization: `Bearer ${appConfig.apiKeys.public.enso}` };
46
+
47
+ return fetchOpenApi<paths, P>(origin, path, params, "enso", headers);
48
+ }
@@ -0,0 +1,34 @@
1
+ import type { paths } from "@berachain/graphql/layerzero";
2
+
3
+ import {
4
+ type DefinedParams,
5
+ fetchOpenApi,
6
+ type GetPath,
7
+ type GetResponse,
8
+ } from "./fetchOpenApi";
9
+
10
+ /**
11
+ * LayerZero Scan API origin. Schema paths are relative to this base (e.g.
12
+ * `/messages/tx/{tx}`).
13
+ */
14
+ const LAYERZERO_SCAN_ORIGIN = "https://scan.layerzero-api.com/v1";
15
+
16
+ /**
17
+ * Typed GET against the LayerZero Scan API.
18
+ *
19
+ * The `path`, its path/query params and the response are all type-checked
20
+ * against the LayerZero schema (`@berachain/graphql/layerzero`). The Scan API is
21
+ * public (no auth), so requests hit it directly — no proxy split like
22
+ * {@link fetchEnso}.
23
+ */
24
+ export function fetchLayerzero<P extends GetPath<paths>>(
25
+ path: P,
26
+ params: DefinedParams<paths, P>,
27
+ ): Promise<GetResponse<paths, P>> {
28
+ return fetchOpenApi<paths, P>(
29
+ LAYERZERO_SCAN_ORIGIN,
30
+ path,
31
+ params,
32
+ "layerzero",
33
+ );
34
+ }
@@ -55,13 +55,17 @@ export type DefinedParams<Paths extends AnyPaths, P extends GetPath<Paths>> = {
55
55
  * @param path An OpenAPI path template, e.g. `/v0/stake/{vault}/stats-by-day`.
56
56
  * @param params Path and query params, typed from the schema for `path`.
57
57
  * @param fallbackName Monitoring name to use when `link` is a bare string.
58
+ * @param headers Request headers. Kept minimal by default — extra headers
59
+ * (e.g. `X-Client-Id`, which only beep needs) trigger a CORS
60
+ * preflight that third-party gateways like Enso reject.
58
61
  */
59
- // biome-ignore lint/complexity/useMaxParams: internal helper; the wrapper (fetchBeep) is the public surface.
62
+ // biome-ignore lint/complexity/useMaxParams: internal helper; the wrappers (fetchBeep, fetchEnso) are the public surface.
60
63
  export function fetchOpenApi<Paths extends AnyPaths, P extends GetPath<Paths>>(
61
64
  link: HttpLink,
62
65
  path: P,
63
66
  params: DefinedParams<Paths, P>,
64
67
  fallbackName: string,
68
+ headers?: Record<string, string>,
65
69
  ): Promise<GetResponse<Paths, P>> {
66
70
  const { path: pathParams, query } = params as {
67
71
  path?: Record<string, string | number>;
@@ -93,5 +97,8 @@ export function fetchOpenApi<Paths extends AnyPaths, P extends GetPath<Paths>>(
93
97
  const url = `${getUriFromLink(link)}${resolvedPath}${search ? `?${search}` : ""}`;
94
98
  const name = typeof link === "string" ? fallbackName : link.name;
95
99
 
96
- return beraFetchJson<GetResponse<Paths, P>>({ url, name, type: "rest" });
100
+ return beraFetchJson<GetResponse<Paths, P>>(
101
+ { url, name, type: "rest" },
102
+ { headers },
103
+ );
97
104
  }
@@ -18,9 +18,15 @@ import type {
18
18
  ValidatorsResponse,
19
19
  } from "@berachain/graphql/beep";
20
20
 
21
+ import { getClientName } from "./clientName";
21
22
  import { fetchBeep } from "./fetchBeep";
22
23
  import { fetchOpenApi } from "./fetchOpenApi";
23
24
 
25
+ // fetchBeep is the only wrapper that sends X-Client-Id; the bare fetchOpenApi
26
+ // helper forwards nothing so third-party gateways (Enso) skip a CORS preflight.
27
+ const CLIENT_HEADERS = { headers: { "X-Client-Id": getClientName() } };
28
+ const NO_HEADERS = { headers: undefined };
29
+
24
30
  // Mock the network layer so we can assert exactly what the helpers build and
25
31
  // pass through, without hitting a backend.
26
32
  const beraFetchJson = vi.fn();
@@ -49,11 +55,14 @@ describe("fetchOpenApi", () => {
49
55
  );
50
56
 
51
57
  expect(beraFetchJson).toHaveBeenCalledTimes(1);
52
- expect(beraFetchJson).toHaveBeenCalledWith({
53
- url: `${BASE}/v0/stake/${VAULT}/stats-by-day?days=30`,
54
- name: "Berachain Beep",
55
- type: "rest",
56
- });
58
+ expect(beraFetchJson).toHaveBeenCalledWith(
59
+ {
60
+ url: `${BASE}/v0/stake/${VAULT}/stats-by-day?days=30`,
61
+ name: "Berachain Beep",
62
+ type: "rest",
63
+ },
64
+ NO_HEADERS,
65
+ );
57
66
  });
58
67
 
59
68
  it("substitutes multiple path params and omits the query when absent", async () => {
@@ -64,11 +73,14 @@ describe("fetchOpenApi", () => {
64
73
  "beep",
65
74
  );
66
75
 
67
- expect(beraFetchJson).toHaveBeenCalledWith({
68
- url: `${BASE}/v0/stake/${VAULT}/earnings/${OWNER}`,
69
- name: "Berachain Beep",
70
- type: "rest",
71
- });
76
+ expect(beraFetchJson).toHaveBeenCalledWith(
77
+ {
78
+ url: `${BASE}/v0/stake/${VAULT}/earnings/${OWNER}`,
79
+ name: "Berachain Beep",
80
+ type: "rest",
81
+ },
82
+ NO_HEADERS,
83
+ );
72
84
  });
73
85
 
74
86
  it("omits query params whose value is undefined", async () => {
@@ -85,6 +97,7 @@ describe("fetchOpenApi", () => {
85
97
  expect.objectContaining({
86
98
  url: `${BASE}/v0/honey/transactions/latest?perPage=10`,
87
99
  }),
100
+ NO_HEADERS,
88
101
  );
89
102
  });
90
103
 
@@ -101,6 +114,7 @@ describe("fetchOpenApi", () => {
101
114
  expect.objectContaining({
102
115
  url: `${BASE}/v0/validators/a%2Fb%20c/incentives`,
103
116
  }),
117
+ NO_HEADERS,
104
118
  );
105
119
  });
106
120
 
@@ -114,6 +128,7 @@ describe("fetchOpenApi", () => {
114
128
 
115
129
  expect(beraFetchJson).toHaveBeenCalledWith(
116
130
  expect.objectContaining({ name: "beep" }),
131
+ NO_HEADERS,
117
132
  );
118
133
  });
119
134
 
@@ -166,6 +181,7 @@ describe("fetchBeep", () => {
166
181
  name: "Berachain Beep",
167
182
  type: "rest",
168
183
  }),
184
+ CLIENT_HEADERS,
169
185
  );
170
186
  });
171
187
  });