@berachain/berajs 0.1.2 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (448) hide show
  1. package/dist/{BeraError-D1HS_rbb.d.cts → BeraError-_mQdkanr.d.cts} +35 -10
  2. package/dist/{BeraError-D1HS_rbb.d.ts → BeraError-_mQdkanr.d.ts} +35 -10
  3. package/dist/HoneyConfigProvider-CK6mOKFH.d.ts +390 -0
  4. package/dist/HoneyConfigProvider-Ca3ouozs.d.cts +390 -0
  5. package/dist/{RequestError-D8AE6xnI.d.cts → RequestError-A8XJ6QR9.d.cts} +1 -1
  6. package/dist/{RequestError-m4jxyM7D.d.ts → RequestError-Dk97z8rm.d.ts} +1 -1
  7. package/dist/abi/exports.cjs +2 -0
  8. package/dist/abi/exports.cjs.map +1 -0
  9. package/dist/abi/{index.d.cts → exports.d.cts} +12369 -9122
  10. package/dist/abi/{index.d.ts → exports.d.ts} +12369 -9122
  11. package/dist/abi/exports.mjs +2 -0
  12. package/dist/abi/exports.mjs.map +1 -0
  13. package/dist/actions/exports.cjs +2 -0
  14. package/dist/actions/exports.cjs.map +1 -0
  15. package/dist/actions/{index.d.cts → exports.d.cts} +79 -107
  16. package/dist/actions/{index.d.ts → exports.d.ts} +79 -107
  17. package/dist/actions/exports.mjs +2 -0
  18. package/dist/actions/exports.mjs.map +1 -0
  19. package/dist/chunk-22J3YJDN.cjs +2 -0
  20. package/dist/chunk-22J3YJDN.cjs.map +1 -0
  21. package/dist/chunk-2LL3P5PN.mjs +2 -0
  22. package/dist/chunk-2LL3P5PN.mjs.map +1 -0
  23. package/dist/chunk-3YXSUBA5.mjs +2 -0
  24. package/dist/chunk-3YXSUBA5.mjs.map +1 -0
  25. package/dist/chunk-55L7STYD.mjs +2 -0
  26. package/dist/chunk-55L7STYD.mjs.map +1 -0
  27. package/dist/chunk-575OK77P.mjs +2 -0
  28. package/dist/chunk-575OK77P.mjs.map +1 -0
  29. package/dist/chunk-6LDOG5RL.cjs +2 -0
  30. package/dist/chunk-6LDOG5RL.cjs.map +1 -0
  31. package/dist/chunk-7LNBSOVV.cjs +2 -0
  32. package/dist/chunk-7LNBSOVV.cjs.map +1 -0
  33. package/dist/chunk-7SMWQ6SN.mjs +2 -0
  34. package/dist/chunk-7SMWQ6SN.mjs.map +1 -0
  35. package/dist/chunk-7WRTK7RJ.mjs +2 -0
  36. package/dist/chunk-7WRTK7RJ.mjs.map +1 -0
  37. package/dist/chunk-A4UDYSB6.mjs +4 -0
  38. package/dist/chunk-A4UDYSB6.mjs.map +1 -0
  39. package/dist/chunk-AX2YQQFQ.mjs +2 -0
  40. package/dist/chunk-AX2YQQFQ.mjs.map +1 -0
  41. package/dist/chunk-C3FHGFLK.mjs +2 -0
  42. package/dist/chunk-C3FHGFLK.mjs.map +1 -0
  43. package/dist/chunk-C6ZGUO4H.cjs +2 -0
  44. package/dist/chunk-C6ZGUO4H.cjs.map +1 -0
  45. package/dist/chunk-CYKCYPFR.cjs +2 -0
  46. package/dist/chunk-CYKCYPFR.cjs.map +1 -0
  47. package/dist/chunk-ECRMUMTA.mjs +2 -0
  48. package/dist/chunk-ECRMUMTA.mjs.map +1 -0
  49. package/dist/chunk-F4BKSBEM.mjs +2 -0
  50. package/dist/chunk-F4BKSBEM.mjs.map +1 -0
  51. package/dist/chunk-FCWDGE62.cjs +2 -0
  52. package/dist/chunk-FCWDGE62.cjs.map +1 -0
  53. package/dist/chunk-FL2N3XHK.cjs +2 -0
  54. package/dist/chunk-FL2N3XHK.cjs.map +1 -0
  55. package/dist/chunk-MUCEYO3E.cjs +4 -0
  56. package/dist/chunk-MUCEYO3E.cjs.map +1 -0
  57. package/dist/chunk-NAXAZJJY.mjs +2 -0
  58. package/dist/chunk-NAXAZJJY.mjs.map +1 -0
  59. package/dist/chunk-OGJMSGB2.mjs +2 -0
  60. package/dist/chunk-OGJMSGB2.mjs.map +1 -0
  61. package/dist/chunk-OIYXOKTT.cjs +2 -0
  62. package/dist/chunk-OIYXOKTT.cjs.map +1 -0
  63. package/dist/chunk-P2Q7CMUD.cjs +2 -0
  64. package/dist/chunk-P2Q7CMUD.cjs.map +1 -0
  65. package/dist/chunk-PKXAW6MO.cjs +2 -0
  66. package/dist/chunk-PKXAW6MO.cjs.map +1 -0
  67. package/dist/chunk-Q3SCM6WL.mjs +2 -0
  68. package/dist/chunk-Q3SCM6WL.mjs.map +1 -0
  69. package/dist/chunk-SWMJQOH6.cjs +2 -0
  70. package/dist/chunk-SWMJQOH6.cjs.map +1 -0
  71. package/dist/chunk-TEBJWAVU.mjs +2 -0
  72. package/dist/chunk-TEBJWAVU.mjs.map +1 -0
  73. package/dist/chunk-THATXCJK.mjs +2 -0
  74. package/dist/chunk-THATXCJK.mjs.map +1 -0
  75. package/dist/chunk-VP7XUOSI.cjs +2 -0
  76. package/dist/chunk-VP7XUOSI.cjs.map +1 -0
  77. package/dist/chunk-VXL2ZZ4X.cjs +2 -0
  78. package/dist/chunk-VXL2ZZ4X.cjs.map +1 -0
  79. package/dist/chunk-WRFDB3QJ.cjs +2 -0
  80. package/dist/chunk-WRFDB3QJ.cjs.map +1 -0
  81. package/dist/chunk-XNJLSA6P.cjs +2 -0
  82. package/dist/chunk-XNJLSA6P.cjs.map +1 -0
  83. package/dist/chunk-YXLFOEZN.mjs +2 -0
  84. package/dist/chunk-YXLFOEZN.mjs.map +1 -0
  85. package/dist/chunk-YZV5LKIP.cjs +2 -0
  86. package/dist/chunk-YZV5LKIP.cjs.map +1 -0
  87. package/dist/contexts/exports.cjs +2 -0
  88. package/dist/contexts/exports.cjs.map +1 -0
  89. package/dist/contexts/{index.d.cts → exports.d.cts} +10 -27
  90. package/dist/contexts/{index.d.ts → exports.d.ts} +10 -27
  91. package/dist/contexts/exports.mjs +2 -0
  92. package/dist/contexts/exports.mjs.map +1 -0
  93. package/dist/{defaultFlags-V-tJs2K8.d.cts → defaultFlags-d0kPbT0i.d.cts} +1 -1
  94. package/dist/{defaultFlags-V-tJs2K8.d.ts → defaultFlags-d0kPbT0i.d.ts} +1 -1
  95. package/dist/dex-C_BB0b0O.d.cts +37 -0
  96. package/dist/dex-C_BB0b0O.d.ts +37 -0
  97. package/dist/enum/exports.cjs +2 -0
  98. package/dist/enum/exports.cjs.map +1 -0
  99. package/dist/enum/exports.d.cts +23 -0
  100. package/dist/enum/exports.d.ts +23 -0
  101. package/dist/enum/exports.mjs +2 -0
  102. package/dist/enum/exports.mjs.map +1 -0
  103. package/dist/errors/exports.cjs +2 -0
  104. package/dist/errors/exports.cjs.map +1 -0
  105. package/dist/errors/exports.d.cts +408 -0
  106. package/dist/errors/exports.d.ts +408 -0
  107. package/dist/errors/exports.mjs +2 -0
  108. package/dist/{getValidatorQueuedOperatorAddress-Ne2zoiiV.d.ts → getValidatorQueuedOperatorAddress-Dstyaomr.d.cts} +125 -15
  109. package/dist/{getValidatorQueuedOperatorAddress-9xY2RUGe.d.cts → getValidatorQueuedOperatorAddress-RW4OMcD1.d.ts} +125 -15
  110. package/dist/global.d-CN6l2b9E.d.cts +473 -0
  111. package/dist/global.d-wYu8G8IQ.d.ts +473 -0
  112. package/dist/honey-CYm0RWf4.d.cts +14 -0
  113. package/dist/honey-CYm0RWf4.d.ts +14 -0
  114. package/dist/hooks/exports.cjs +4 -0
  115. package/dist/hooks/exports.cjs.map +1 -0
  116. package/dist/hooks/{index.d.cts → exports.d.cts} +218 -176
  117. package/dist/hooks/{index.d.ts → exports.d.ts} +218 -176
  118. package/dist/hooks/exports.mjs +4 -0
  119. package/dist/hooks/exports.mjs.map +1 -0
  120. package/dist/{txnEnum-BQKDfaeH.d.cts → txnEnum-BlBYhNRl.d.cts} +75 -1
  121. package/dist/{txnEnum-BQKDfaeH.d.ts → txnEnum-BlBYhNRl.d.ts} +75 -1
  122. package/dist/types/exports.cjs +1 -0
  123. package/dist/types/exports.cjs.map +1 -0
  124. package/dist/types/exports.d.cts +57 -0
  125. package/dist/types/exports.d.ts +57 -0
  126. package/dist/types/exports.mjs +1 -0
  127. package/dist/{useHoneySwapState-C-9BV4VB.d.cts → useHoneySwapState-B-vmIP1b.d.cts} +1 -1
  128. package/dist/{useHoneySwapState-CUY5Sm1b.d.ts → useHoneySwapState-D1DKG_Of.d.ts} +1 -1
  129. package/dist/utils/exports.cjs +2 -0
  130. package/dist/utils/exports.cjs.map +1 -0
  131. package/dist/utils/{index.d.cts → exports.d.cts} +83 -20
  132. package/dist/utils/{index.d.ts → exports.d.ts} +83 -20
  133. package/dist/utils/exports.mjs +2 -0
  134. package/dist/utils/exports.mjs.map +1 -0
  135. package/package.json +19 -20
  136. package/src/abi/{index.ts → exports.ts} +3 -0
  137. package/src/abi/pol/LSTStakerVault.ts +2032 -0
  138. package/src/abi/utils/openChainErrors.ts +71 -30
  139. package/src/abi/utils/thirdwebMinimalAccount.ts +616 -0
  140. package/src/actions/clients/BeraApolloClient.ts +8 -6
  141. package/src/actions/dex/__tests__/aggregators.unit.test.ts +2 -5
  142. package/src/actions/dex/aggregators/base.ts +74 -16
  143. package/src/actions/dex/aggregators/bex.ts +54 -74
  144. package/src/actions/dex/aggregators/bgt.ts +31 -8
  145. package/src/actions/dex/aggregators/{enso.ts → enso/enso.ts} +18 -14
  146. package/src/actions/dex/aggregators/enso/ensoErc4626.debug.test.ts +37 -0
  147. package/src/actions/dex/aggregators/enso/ensoErc4626.ts +176 -0
  148. package/src/actions/dex/aggregators/erc4626.ts +122 -0
  149. package/src/actions/dex/aggregators/fly.ts +59 -53
  150. package/src/actions/dex/aggregators/haiku.ts +52 -54
  151. package/src/actions/dex/aggregators/honey.ts +54 -45
  152. package/src/actions/dex/aggregators/kyberswap.ts +41 -39
  153. package/src/actions/dex/aggregators/oogabooga.ts +47 -46
  154. package/src/actions/dex/aggregators/openOcean.ts +51 -46
  155. package/src/actions/dex/aggregators/wbera.ts +54 -42
  156. package/src/actions/dex/b-sdk.ts +5 -2
  157. package/src/actions/dex/getIsTokenExploited.ts +2 -2
  158. package/src/actions/enso/{zap.ts → getEnsoSwapBundle.ts} +4 -5
  159. package/src/actions/enso/getEnsoUserTokensWithBalances.debug.test.ts +73 -0
  160. package/src/actions/enso/{getEnsoUserToken.ts → getEnsoUserTokensWithBalances.ts} +42 -30
  161. package/src/actions/enso/util.ts +1 -1
  162. package/src/actions/{index.ts → exports.ts} +5 -0
  163. package/src/actions/governance/__tests__/checkProposalField.unit.test.ts +1 -1
  164. package/src/actions/governance/__tests__/getQuorum.integration.test.ts +1 -1
  165. package/src/actions/governance/checkProposalField.ts +1 -1
  166. package/src/actions/governance/computeActualStatus.ts +1 -1
  167. package/src/actions/governance/getBodyErrors.ts +1 -1
  168. package/src/actions/governance/getDecodedFunctionData.ts +1 -4
  169. package/src/actions/governance/getProposalDetails.ts +2 -2
  170. package/src/actions/governance/getProposalFromTx.ts +1 -2
  171. package/src/actions/governance/getProposalParams.ts +7 -8
  172. package/src/actions/governance/getQuorum.ts +1 -2
  173. package/src/actions/honey/getCollateralWeights.ts +1 -1
  174. package/src/actions/honey/getHoneyCollaterals.ts +1 -0
  175. package/src/actions/honey/getHoneyVaultsBalance.ts +51 -55
  176. package/src/actions/honey/getSwapPayload.ts +37 -35
  177. package/src/actions/honey/tests/pyth.integration.test.ts +0 -1
  178. package/src/actions/pol/__tests__/getAllValidators.integration.test.ts +1 -1
  179. package/src/actions/pol/getEarnedStakedBeraVault.ts +31 -0
  180. package/src/actions/pol/getGlobalData.ts +14 -13
  181. package/src/actions/pol/getLSTStakeConfig.ts +67 -0
  182. package/src/actions/pol/getMarkets.ts +1 -1
  183. package/src/actions/pol/getRewardProofsByValidator.ts +1 -1
  184. package/src/actions/pol/getRewardVaultIncentives.ts +3 -5
  185. package/src/actions/pol/getRewardVaults.ts +2 -3
  186. package/src/actions/pol/getSWBeraVaultMetadata.ts +7 -5
  187. package/src/actions/pol/getSWBeraWithdrawal.ts +41 -27
  188. package/src/actions/pol/getStakeWithdrawalCooldown.ts +5 -7
  189. package/src/actions/pol/getStakingDailyAssets.ts +24 -0
  190. package/src/actions/pol/getStakingTokenInformation.ts +3 -4
  191. package/src/actions/pol/getTotalStakedAmount.ts +47 -0
  192. package/src/actions/pol/getUserClaimableIncentives.ts +1 -1
  193. package/src/actions/pol/getUserVaults.ts +8 -6
  194. package/src/actions/pol/getUserVaultsBalance.ts +4 -16
  195. package/src/actions/prices/getTokenCurrentPrices.ts +8 -3
  196. package/src/actions/tokens/getAllowances.ts +68 -41
  197. package/src/actions/tokens/getTokenInformation.ts +4 -1
  198. package/src/actions/tokens/getTokens.ts +1 -1
  199. package/src/actions/tokens/getUnderlyingToken.ts +53 -0
  200. package/src/actions/tokens/getWalletBalances.integration.test.ts +53 -14
  201. package/src/actions/tokens/getWalletBalances.ts +69 -43
  202. package/src/actions/transactions/beraWriteContract.integration.test.ts +18 -6
  203. package/src/actions/transactions/beraWriteContract.ts +3 -3
  204. package/src/actions/validators/getUserActiveValidators.ts +2 -3
  205. package/src/actions/validators/getUserBoostsOnValidator.ts +2 -3
  206. package/src/contexts/BeraFlags/defaultFlags.ts +4 -0
  207. package/src/contexts/SwrFallback.tsx +13 -3
  208. package/src/contexts/TokensProvider.tsx +35 -8
  209. package/src/contexts/block-time-provider.tsx +1 -1
  210. package/src/contexts/{index.ts → exports.ts} +0 -1
  211. package/src/data/contracts.ts +17 -2
  212. package/src/enum/contracts.ts +13 -0
  213. package/src/enum/dex.ts +29 -0
  214. package/src/enum/{index.ts → exports.ts} +3 -0
  215. package/src/enum/governance.ts +61 -0
  216. package/src/enum/honey.ts +12 -0
  217. package/src/enum/txnEnum.ts +1 -0
  218. package/src/errors/BeraError.ts +61 -13
  219. package/src/errors/BeraMonitoring.ts +66 -0
  220. package/src/errors/BeraTracing.ts +79 -0
  221. package/src/errors/BeraTracing.unit.test.ts +198 -0
  222. package/src/errors/RequestError.ts +29 -3
  223. package/src/errors/assert.ts +4 -2
  224. package/src/errors/assert.unit.test.ts +6 -2
  225. package/src/errors/errorMap.ts +19 -8
  226. package/src/errors/{index.ts → exports.ts} +7 -0
  227. package/src/errors/getErrorMessage.ts +67 -9
  228. package/src/errors/getRevertReason.integration.test.ts +18 -6
  229. package/src/errors/getRevertReason.ts +41 -2
  230. package/src/errors/initBeraError.ts +52 -7
  231. package/src/errors/parseViemError.ts +114 -27
  232. package/src/errors/severity.ts +12 -0
  233. package/src/hooks/bend/useGetConvertToAssets.ts +3 -2
  234. package/src/hooks/dex/useAggregatorsQuotes.ts +126 -365
  235. package/src/hooks/dex/useAllUserPools.ts +1 -1
  236. package/src/hooks/dex/useApiPool.ts +1 -1
  237. package/src/hooks/dex/useCreatePool.ts +6 -5
  238. package/src/hooks/dex/useExploitedTokens.ts +1 -1
  239. package/src/hooks/dex/useLiquidityMismatch.ts +2 -5
  240. package/src/hooks/dex/useLpPosition.ts +21 -20
  241. package/src/hooks/dex/useMultipleTokenApprovalsWithSlippage.ts +40 -29
  242. package/src/hooks/dex/usePollPoolCreationRelayerApproval.ts +1 -1
  243. package/src/hooks/dex/usePoolEvents.ts +1 -1
  244. package/src/hooks/dex/usePools.ts +1 -1
  245. package/src/hooks/dex/usePriceImpact.ts +40 -0
  246. package/src/hooks/dex/useSingleAggregatorQuote.ts +350 -0
  247. package/src/hooks/enso/useBendZapSupply.ts +216 -0
  248. package/src/hooks/enso/useEnsoSwapBundle.ts +107 -0
  249. package/src/hooks/enso/useEnsoUserTokensWithBalances.ts +43 -0
  250. package/src/hooks/enso/useZapStakeBera.ts +113 -0
  251. package/src/hooks/{index.ts → exports.ts} +17 -10
  252. package/src/hooks/governance/useCreateProposal.ts +8 -8
  253. package/src/hooks/governance/usePollAllProposals.ts +1 -1
  254. package/src/hooks/governance/usePollProposal.ts +1 -1
  255. package/src/hooks/governance/usePollProposalThreshold.ts +1 -1
  256. package/src/hooks/governance/usePollUserDelegates.ts +1 -1
  257. package/src/hooks/governance/useProposalState.ts +2 -2
  258. package/src/hooks/honey/useCappedGlobally.ts +2 -1
  259. package/src/hooks/honey/useCappedRelatively.ts +1 -1
  260. package/src/hooks/honey/useCollateralWeights.ts +2 -1
  261. package/src/hooks/honey/useHoneyAlerts.ts +11 -11
  262. package/src/hooks/honey/useHoneyBalances.ts +7 -3
  263. package/src/hooks/honey/useHoneyGlobalData.ts +2 -1
  264. package/src/hooks/honey/useHoneySwapState.ts +2 -1
  265. package/src/hooks/honey/useHoneyVaultsBalance.ts +1 -1
  266. package/src/hooks/honey/useIsBadCollateralAsset.ts +2 -1
  267. package/src/hooks/honey/useIsBasketModeEnabled.ts +1 -1
  268. package/src/hooks/honey/usePythLatestPrices.ts +1 -1
  269. package/src/hooks/pol/useOnChainRewardVault.ts +3 -2
  270. package/src/hooks/pol/usePollGlobalData.ts +1 -1
  271. package/src/hooks/pol/usePollMarkets.ts +1 -1
  272. package/src/hooks/pol/useQueuedBeraUnlock.ts +17 -15
  273. package/src/hooks/pol/useRewardTokenToBeraRate.ts +6 -3
  274. package/src/hooks/pol/useRewardVault.ts +1 -1
  275. package/src/hooks/pol/useRewardVaults.ts +1 -1
  276. package/src/hooks/pol/useSWBeraVaultMetadata.ts +35 -0
  277. package/src/hooks/pol/useStakedAPR.ts +38 -0
  278. package/src/hooks/pol/useStakedData.ts +117 -0
  279. package/src/hooks/pol/useStakedSnapshots.ts +52 -0
  280. package/src/hooks/pol/useTotalStakedAmount.ts +30 -0
  281. package/src/hooks/pol/useUserVaultInfo.ts +1 -1
  282. package/src/hooks/pol/useVaultValidators.ts +1 -1
  283. package/src/hooks/tokens/useMultipleTokenInformation.ts +15 -6
  284. package/src/hooks/tokens/usePollAllowances.ts +15 -19
  285. package/src/hooks/tokens/usePollBalance.ts +8 -4
  286. package/src/hooks/tokens/usePollWalletBalances.ts +14 -11
  287. package/src/hooks/tokens/useStakingTokenInformation.ts +2 -1
  288. package/src/hooks/tokens/useTokenCurrentPrice.ts +4 -2
  289. package/src/hooks/tokens/useTokenCurrentPrices.ts +92 -13
  290. package/src/hooks/tokens/useTokenInformation.ts +11 -6
  291. package/src/hooks/tokens/useTokenPrice.ts +21 -0
  292. package/src/hooks/tokens/useTokenPrices.ts +133 -0
  293. package/src/hooks/tokens/useTokens.ts +1 -0
  294. package/src/hooks/tokens/useUnderlyingAsset.ts +23 -0
  295. package/src/hooks/useContractWrite/useBeraContractWrite.ts +2 -1
  296. package/src/hooks/validators/useAllValidators.ts +1 -1
  297. package/src/hooks/validators/useApiValidator.ts +1 -1
  298. package/src/hooks/validators/useDailyValidatorBlockStats.ts +1 -1
  299. package/src/hooks/validators/useManagedValidatorByAccount.ts +1 -1
  300. package/src/hooks/validators/useManagedValidatorRole.ts +1 -1
  301. package/src/hooks/validators/useOnChainValidator.ts +1 -1
  302. package/src/hooks/validators/useStakingPoolBatch.ts +1 -1
  303. package/src/hooks/validators/useUserActiveValidators.ts +1 -1
  304. package/src/hooks/validators/useUserBoostsOnValidator.ts +1 -1
  305. package/src/hooks/validators/useUserClaimableIncentives.ts +8 -8
  306. package/src/hooks/validators/useValidator.ts +1 -1
  307. package/src/hooks/validators/useValidatorAnalytics.ts +1 -1
  308. package/src/hooks/validators/useValidatorCommission.ts +1 -1
  309. package/src/hooks/validators/useValidatorQueuedCommission.ts +1 -1
  310. package/src/hooks/validators/useValidatorQueuedOperatorAddress.ts +1 -1
  311. package/src/hooks/validators/useValidatorQueuedRewardAllocation.ts +1 -1
  312. package/src/hooks/validators/useValidatorRewardAllocation.ts +1 -1
  313. package/src/types/{dex.ts → dex.d.ts} +96 -67
  314. package/src/types/{enso.ts → enso.d.ts} +1 -1
  315. package/src/types/exports.ts +8 -0
  316. package/src/types/{global.ts → global.d.ts} +1 -30
  317. package/src/types/{governance.ts → governance.d.ts} +2 -64
  318. package/src/types/{honeySwap.ts → honeySwap.d.ts} +1 -13
  319. package/src/types/{pol.ts → pol.d.ts} +12 -1
  320. package/src/types/staking.d.ts +22 -0
  321. package/src/utils/createEmitter.ts +122 -0
  322. package/src/utils/createEmitter.unit.test.ts +149 -0
  323. package/src/utils/{index.ts → exports.ts} +3 -2
  324. package/src/utils/filter.ts +34 -0
  325. package/src/utils/formatNumber.ts +1 -1
  326. package/src/utils/formatNumber.unit.test.ts +2 -1
  327. package/src/utils/formatTokenList.ts +4 -10
  328. package/src/utils/getHoneySwapMessage.test.ts +1 -2
  329. package/src/utils/getServerSideClient.ts +4 -5
  330. package/src/utils/isDifferenceExceedingThreshold.ts +1 -1
  331. package/src/utils/layerZeroScan.ts +122 -0
  332. package/src/utils/math.ts +1 -1
  333. package/src/utils/parseWhiskToken.ts +15 -0
  334. package/src/utils/poolNamings.ts +1 -1
  335. package/src/utils/tokens.ts +23 -7
  336. package/dist/HoneyConfigProvider-6PXZJMSU.d.cts +0 -562
  337. package/dist/HoneyConfigProvider-CwDFrt02.d.ts +0 -562
  338. package/dist/abi/index.cjs +0 -2
  339. package/dist/abi/index.cjs.map +0 -1
  340. package/dist/abi/index.mjs +0 -2
  341. package/dist/actions/index.cjs +0 -2
  342. package/dist/actions/index.cjs.map +0 -1
  343. package/dist/actions/index.mjs +0 -2
  344. package/dist/aggregatorsRouter-Cny4B_MB.d.cts +0 -593
  345. package/dist/aggregatorsRouter-Cny4B_MB.d.ts +0 -593
  346. package/dist/chunk-22MQVFHP.cjs +0 -2
  347. package/dist/chunk-22MQVFHP.cjs.map +0 -1
  348. package/dist/chunk-3TKSVFZ3.mjs +0 -2
  349. package/dist/chunk-3TKSVFZ3.mjs.map +0 -1
  350. package/dist/chunk-6VF3RF53.cjs +0 -3
  351. package/dist/chunk-6VF3RF53.cjs.map +0 -1
  352. package/dist/chunk-6W22TFYA.mjs +0 -2
  353. package/dist/chunk-6W22TFYA.mjs.map +0 -1
  354. package/dist/chunk-AMRJ4B36.mjs +0 -2
  355. package/dist/chunk-AMRJ4B36.mjs.map +0 -1
  356. package/dist/chunk-DS2ZDVKU.mjs +0 -2
  357. package/dist/chunk-DS2ZDVKU.mjs.map +0 -1
  358. package/dist/chunk-ED43NYSE.cjs +0 -2
  359. package/dist/chunk-ED43NYSE.cjs.map +0 -1
  360. package/dist/chunk-EU4WFADK.cjs +0 -2
  361. package/dist/chunk-EU4WFADK.cjs.map +0 -1
  362. package/dist/chunk-HCTFDGXL.mjs +0 -2
  363. package/dist/chunk-HCTFDGXL.mjs.map +0 -1
  364. package/dist/chunk-IOSYBHKU.mjs +0 -2
  365. package/dist/chunk-IOSYBHKU.mjs.map +0 -1
  366. package/dist/chunk-JMKLDDKY.cjs +0 -2
  367. package/dist/chunk-JMKLDDKY.cjs.map +0 -1
  368. package/dist/chunk-KMKUXP2S.mjs +0 -3
  369. package/dist/chunk-KMKUXP2S.mjs.map +0 -1
  370. package/dist/chunk-OJXJ6CZ4.mjs +0 -4
  371. package/dist/chunk-OJXJ6CZ4.mjs.map +0 -1
  372. package/dist/chunk-PHIOKO3A.mjs +0 -2
  373. package/dist/chunk-PHIOKO3A.mjs.map +0 -1
  374. package/dist/chunk-QCK474XD.cjs +0 -2
  375. package/dist/chunk-QCK474XD.cjs.map +0 -1
  376. package/dist/chunk-REDXXUK7.cjs +0 -2
  377. package/dist/chunk-REDXXUK7.cjs.map +0 -1
  378. package/dist/chunk-S74ZMG2G.cjs +0 -2
  379. package/dist/chunk-S74ZMG2G.cjs.map +0 -1
  380. package/dist/chunk-TOAXF4YW.cjs +0 -2
  381. package/dist/chunk-TOAXF4YW.cjs.map +0 -1
  382. package/dist/chunk-UZ5CB33M.cjs +0 -2
  383. package/dist/chunk-UZ5CB33M.cjs.map +0 -1
  384. package/dist/chunk-VYWYJR63.mjs +0 -2
  385. package/dist/chunk-VYWYJR63.mjs.map +0 -1
  386. package/dist/chunk-XFPTQMAK.cjs +0 -4
  387. package/dist/chunk-XFPTQMAK.cjs.map +0 -1
  388. package/dist/chunk-YK4NINF5.mjs +0 -2
  389. package/dist/chunk-YK4NINF5.mjs.map +0 -1
  390. package/dist/contexts/index.cjs +0 -2
  391. package/dist/contexts/index.cjs.map +0 -1
  392. package/dist/contexts/index.mjs +0 -2
  393. package/dist/contexts/index.mjs.map +0 -1
  394. package/dist/enum/index.cjs +0 -2
  395. package/dist/enum/index.cjs.map +0 -1
  396. package/dist/enum/index.d.cts +0 -31
  397. package/dist/enum/index.d.ts +0 -31
  398. package/dist/enum/index.mjs +0 -2
  399. package/dist/enum/index.mjs.map +0 -1
  400. package/dist/errors/index.cjs +0 -2
  401. package/dist/errors/index.cjs.map +0 -1
  402. package/dist/errors/index.d.cts +0 -204
  403. package/dist/errors/index.d.ts +0 -204
  404. package/dist/errors/index.mjs +0 -2
  405. package/dist/errors/index.mjs.map +0 -1
  406. package/dist/hooks/index.cjs +0 -4
  407. package/dist/hooks/index.cjs.map +0 -1
  408. package/dist/hooks/index.mjs +0 -4
  409. package/dist/hooks/index.mjs.map +0 -1
  410. package/dist/staking-F9Nx9TKD.d.ts +0 -246
  411. package/dist/staking-f4BpYH7l.d.cts +0 -246
  412. package/dist/types/index.cjs +0 -2
  413. package/dist/types/index.cjs.map +0 -1
  414. package/dist/types/index.d.cts +0 -56
  415. package/dist/types/index.d.ts +0 -56
  416. package/dist/types/index.mjs +0 -2
  417. package/dist/types/index.mjs.map +0 -1
  418. package/dist/utils/index.cjs +0 -2
  419. package/dist/utils/index.cjs.map +0 -1
  420. package/dist/utils/index.mjs +0 -2
  421. package/dist/utils/index.mjs.map +0 -1
  422. package/src/actions/dex/getTransactionCount.ts +0 -29
  423. package/src/actions/enso/bend.ts +0 -143
  424. package/src/actions/enso/getEnsoUserToken.debug.test.ts +0 -57
  425. package/src/contexts/berajsProvider/context.tsx +0 -49
  426. package/src/contexts/berajsProvider/index.ts +0 -2
  427. package/src/contexts/berajsProvider/useBeraJs.ts +0 -18
  428. package/src/hooks/dex/usePollVaultIsPaused.ts +0 -30
  429. package/src/hooks/enso/useBendTransactionRequests.ts +0 -247
  430. package/src/hooks/enso/useEnsoZap.ts +0 -166
  431. package/src/hooks/enso/useZapTransactionRequests.ts +0 -81
  432. package/src/hooks/pol/useEarnedStakedBeraVault.ts +0 -59
  433. package/src/hooks/pol/useStakedBeraSnapshots.ts +0 -27
  434. package/src/hooks/transactions/TransactionStoreContext.tsx +0 -59
  435. package/src/hooks/transactions/transactionStore.ts +0 -275
  436. package/src/hooks/transactions/transactionStore.unit.test.ts +0 -508
  437. package/src/hooks/transactions/useAddRecentTransaction.ts +0 -29
  438. package/src/hooks/transactions/useRecentTransactions.ts +0 -27
  439. package/src/hooks/validators/validatorRoleManager.ts +0 -0
  440. package/src/types/index.ts +0 -8
  441. package/src/types/staking.ts +0 -7
  442. package/src/utils/formatAggregatorsQuotes.ts +0 -57
  443. package/src/utils/formatAggregatorsQuotes.unit.test.ts +0 -191
  444. package/src/utils/sentryBeforeSend.ts +0 -52
  445. /package/dist/{abi/index.mjs.map → errors/exports.mjs.map} +0 -0
  446. /package/dist/{actions/index.mjs.map → types/exports.mjs.map} +0 -0
  447. /package/src/actions/dex/{__tests__ → aggregators}/haiku.integration.test.ts +0 -0
  448. /package/src/types/{bribe-boost.ts → bribe-boost.d.ts} +0 -0
@@ -1,4 +0,0 @@
1
- import{c as K,e as Ge,g as _p,h as Qp,i as Yp,j as Mp,k as Gp,l as Fp,m as le,n as ue,s as B,t as Rt}from"../chunk-KMKUXP2S.mjs";import{$ as zt,A as Nt,B as Ut,Ba as gr,C as X,Ca as yr,Da as Ar,E as Ht,Ea as br,F as Vt,Fa as hr,H as Wt,Ha as Rr,Ja as kr,K as _t,Ka as wr,La as Pr,Ma as Tr,N as ge,Na as Ir,O as Qt,Oa as Cr,P as $e,Pa as Er,Q as Mt,Qa as Sr,R as Gt,Ra as xr,S as ye,Sa as Br,T as Ft,Ta as Or,Ua as Dr,V as Kt,Va as Lr,W as qt,Y as $t,Z as Zt,a as me,aa as jt,ba as Jt,c as q,ca as Xt,e as S,f as wt,fa as Ae,g as de,ga as be,h as Pt,i as Tt,ia as tr,k as It,l as Ct,la as or,m as Et,ma as nr,na as ar,o as St,oa as ir,pa as lr,q as N,qa as ur,ra as pr,sa as mr,t as xt,u as vt,ua as dr,w as Ot,wa as cr,xa as Re,y as Dt,z as Lt,za as fr}from"../chunk-OJXJ6CZ4.mjs";import{f as L,h as Ze,i as ke,n as ze}from"../chunk-DS2ZDVKU.mjs";import{b as oe,c as $,d as ce,e as _,m as G,o as er,r as vr}from"../chunk-3TKSVFZ3.mjs";import"../chunk-IOSYBHKU.mjs";import"../chunk-YK4NINF5.mjs";import{a as Fe,b as ne,c as y,d as j,e as Ke,g as sr}from"../chunk-6W22TFYA.mjs";import{Q as he,c as kt,d as Bt,e as fe,w as qe,x as Yt,y as rr}from"../chunk-AMRJ4B36.mjs";import{b as P,c as H,e as pe,f as k}from"../chunk-VYWYJR63.mjs";import{a as J}from"../chunk-PHIOKO3A.mjs";import{f as x,g as E}from"../chunk-HCTFDGXL.mjs";import dn from"swr";import{usePublicClient as cn}from"@berachain/wagmi/hooks";var zp=({sharesAmount:e,vaultAddress:t,vaultChainId:r},o)=>{let n=cn({chainId:r}),s=dn(n&&e&&t?["useGetConvertToAssets",e,t,r]:null,async([a,i,l])=>(y(n),me({sharesAmount:i,vaultAddress:l,publicClient:n})),{...o?.opts});return{...s,refresh:()=>{s.mutate()}}};import{useMemo as $r}from"react";import Q from"swr";import{parseUnits as Bn,zeroAddress as On}from"viem";import{defaultChainId as pt}from"@berachain/config/internal";import{useBeraWallet as Dn,usePublicClient as Ln}from"@berachain/wagmi/hooks";import{Slippage as fn,Swap as gn,SwapKind as yn,Token as Nr,TokenAmount as An}from"@berachain-foundation/berancer-sdk";import*as Wr from"@sentry/nextjs";import{decodeFunctionData as bn,formatEther as Ur,zeroAddress as Hr}from"viem";import{getUriFromLink as hn}from"@berachain/config";import{ChainId as Vr}from"@berachain/config/internal";var Rn=300,kn=.05,je=yn.GivenIn,Je=class extends S{name="Hub Pools";supportedChains=[Vr.MAINNET,Vr.BEPOLIA];url=hn(this.config.api);type="graphql";convertZeroToWrapped(t){return k(t,"BERA")?this.config.tokens.wbera:t}calculatePriceImpact(t){return t.error?(console.error("Swap price impact error",t),0):Number(t.priceImpact)}checkStalePrices(t,r,o,n){let s=Number.parseFloat(Ur(t.scale18))/Number.parseFloat(o);if(Math.abs(1-s)>kn){console.warn("SOR returned stale prices. Delta from return amount is more than 5%",{deltaFromSorAmount:s});let a=new x({reason:"SOR_STALE_PRICES",level:"warning",message:"SOR returned stale prices. Delta from return amount is more than 5%"});Wr.captureException(a,{level:"warning",extra:{deltaFromSorAmount:s,pools:r.map(i=>i.pools),onChainAmount:Ur(t.scale18),sorAmount:o,queryData:n},fingerprint:["SOR_STALE_PRICES"]})}}async getQuote(t){let r=new wt(this.url,this.chainId),{tokenIn:o,tokenOut:n,tokenInDecimals:s,tokenOutDecimals:a,amount:i,slippage:l,account:u=Hr,publicClient:m}=t;if(this.checkChainSupport(),y(m),!s)throw new E({property:"tokenInDecimals",value:s,expected:"number",chainId:this.chainId});if(!a)throw new E({property:"tokenOutDecimals",value:a,expected:"number",chainId:this.chainId});let p=k(o,"BERA")||k(n,"BERA"),d=new Nr(this.chainId,this.convertZeroToWrapped(o),s),c=new Nr(this.chainId,this.convertZeroToWrapped(n),a),f=An.fromRawAmount(d,i),{paths:g,priceImpact:A,returnAmount:R}=await r.sorSwapPaths.fetchSorSwapPaths({chainId:this.chainId,tokenIn:d.address,tokenOut:c.address,swapKind:je,swapAmount:f});if(!g?.length)throw new J({response:void 0,endpoint:{url:this.url,name:this.name,type:this.type},reason:S.PATH_NOT_FOUND_REASON,chainId:this.chainId,payload:{tokenIn:d.address,tokenOut:c.address,swapKind:je,swapAmount:f},message:"No swap paths returned from Balancer API"});let h=new gn({chainId:this.chainId,paths:g,swapKind:je,userData:"0x"}),b=await h.query(m.transport.url);if(!("expectedAmountOut"in b))throw new Error("No Bex paths found");this.checkStalePrices(b.expectedAmountOut,g,R,t);let T={amountOut:b.expectedAmountOut.amount.toString(),amountIn:i,spender:b.to,name:this.name,priceImpactPercentage:this.calculatePriceImpact(A),swapFeeBps:0};if(u===Hr)return T;let w=h.buildCall({slippage:fn.fromPercentage(l.toString()),deadline:BigInt(Math.round(Date.now()/1e3)+Rn),queryOutput:b,sender:u,recipient:u,wethIsEth:p}),{args:I,functionName:C}=bn({abi:oe,data:w.callData});return{...T,calldata:{params:I,functionName:C,abi:oe,address:w.to,value:w.value||BigInt(0)}}}},we=new Je;import{ChainId as _r}from"@berachain/config/internal";var Xe=class extends S{name="RedeemBgt";supportedChains=[_r.MAINNET,_r.BEPOLIA];type="rpc";async getQuote({tokenIn:t,amount:r}){if(this.checkChainSupport(),!k(t,"BGT",{config:this.config}))throw new E({property:"tokenIn",value:t,expected:"BGT",level:"warning"});return{amountOut:r,amountIn:r,spender:void 0,name:"RedeemBgt",isNativeSwap:!0,swapFeeBps:0}}},Pe=new Xe;import{zeroAddress as Qr}from"viem";import{ChainId as Yr}from"@berachain/config/internal";var et=class extends S{name="Enso";supportedChains=[Yr.MAINNET];type="rest";notFoundMessages=["Could not build shortcuts for route","Swap not found for a required underlying of defi route,"];async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:n,account:s=Qr,aggregatorsFeeBps:a,proxyAggregatorsThroughVercel:i=!1,rewardVault:l}){this.checkChainSupport();let{tokenInAddress:u,tokenOutAddress:m,isTokenInNative:p,isTokenOutNative:d}=this.parseAddresses(t,r),c=this.getAmountAfterFees(o,a);this.url=i?"/api/aggregators?aggregator=enso":`${this.config.bex.aggregatorsProxyUrl}/enso/api/v1/shortcuts/route?`;let f=new URL(this.url);f.searchParams.set("fromAddress",this.config.bex.aggregatorsRouterExecutor),f.searchParams.set("receiver",this.config.bex.aggregatorsRouterExecutor),f.searchParams.set("spender",this.config.bex.aggregatorsRouterExecutor),f.searchParams.set("amountIn",c),f.searchParams.set("tokenIn",u),f.searchParams.set("tokenOut",m),f.searchParams.set("chainId",Yr.MAINNET.toString()),f.searchParams.set("slippage",(Number(n)*100).toString()),f.searchParams.set("refundReceiver",s);let A=await(await this.fetch(f)).json(),R=this.getInputData({tokenIn:u,amountIn:o,isNative:p}),h={tokenOut:m,receiver:s,minAmountOut:this.getMinAmountOut(A.amountOut.toString(),n),isNative:d},b={aggregator:A.tx?.to,data:A.tx?.data};return{amountOut:A.amountOut.toString(),amountIn:o,spender:this.config.bex.aggregatorsRouter,name:this.name,swapFeeBps:a,calldata:{params:[R,h,b,{rewardVault:l??Qr,isSwapAndStake:!!l}],functionName:"swap",abi:L,value:BigInt(p?o:"0"),address:this.config.bex.aggregatorsRouter}}}},Te=new et;import{zeroAddress as Ie}from"viem";import{ChainId as wn}from"@berachain/config/internal";var Mr="https://api.magpiefi.xyz/aggregator",tt=class extends S{name="Fly";supportedChains=[wn.MAINNET];type="rest";notFoundMessages=["Couldn't recognize to token","There is not enough liquidity. Amount is too high.","Routes were not found"];async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:n,account:s=Ie,aggregatorsFeeBps:a,rewardVault:i}){this.checkChainSupport();let{tokenInAddress:l,tokenOutAddress:u,isTokenInNative:m,isTokenOutNative:p}=this.parseAddresses(t,r),d=this.getAmountAfterFees(o,a),c=new URL(`${Mr}/quote`);this.url=c.toString();let f=new URLSearchParams({fromTokenAddress:l,toTokenAddress:u,sellAmount:d,slippage:(n/100).toString(),gasless:"false",network:"berachain"});s!==Ie&&(f.set("fromAddress",this.config.bex.aggregatorsRouterExecutor),f.set("toAddress",this.config.bex.aggregatorsRouterExecutor)),c.search=f.toString();let A=await(await this.fetch(c)).json(),R={amountOut:A.amountOut,amountIn:o,spender:this.config.bex.aggregatorsRouter,name:this.name,swapFeeBps:a??0};if(s===Ie)return R;let h=new URL(`${Mr}/transaction`);this.url=h.toString();let b=new URLSearchParams({quoteId:A.id,estimateGas:"false"});h.search=b.toString();let w=await(await this.fetch(h)).json(),I=this.getInputData({tokenIn:l,amountIn:o,isNative:m}),C={tokenOut:u,receiver:s,minAmountOut:this.getMinAmountOut(A.amountOut,n),isNative:p},v={aggregator:w.to,data:w.data};return{...R,calldata:{params:[I,C,v,{rewardVault:i??Ie,isSwapAndStake:!!i}],functionName:"swap",abi:L,value:k(t,"BERA")?BigInt(o):BigInt("0"),address:this.config.bex.aggregatorsRouter}}}},Ce=new tt;import{formatUnits as Pn,parseUnits as Tn,zeroAddress as rt}from"viem";import{ChainId as In}from"@berachain/config/internal";var ot=class extends S{name="Haiku";supportedChains=[In.MAINNET];type="rest";notFoundMessages=["token not found","Token is not supported","No route found for the given input or the liquidity is not enough","Invalid input amount. Please ensure the total amount of input is greater than 0.001 USD"];async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:n,account:s=rt,tokenInDecimals:a,tokenOutDecimals:i,aggregatorsFeeBps:l,proxyAggregatorsThroughVercel:u=!1,referrer:m,rewardVault:p}){if(a===void 0||i===void 0)throw new x({message:"Missing required params",level:"error"});this.checkChainSupport();let{tokenInAddress:d,tokenOutAddress:c,isTokenInNative:f,isTokenOutNative:g}=this.parseAddresses(t,r),A=this.getAmountAfterFees(o,l),R={intent:{allowancesMode:"approve",slippage:n/100,receiver:this.config.bex.aggregatorsRouterExecutor,input_positions:{[`bera:${d}`]:Pn(BigInt(A),a)},target_weights:{[`bera:${c}`]:1}}},h=m==="ZAP"?"zap-haiku":"haiku";this.url=u?"/api/aggregators?aggregator=haikuQuote":`${this.config.bex.aggregatorsProxyUrl}/${h}/v1/quoteIntent`;let T=await(await this.fetch(this.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(R)})).json(),w={amountOut:Tn(T.balances[0].amount,i).toString(),amountIn:o,spender:this.config.bex.aggregatorsRouter,name:this.name,swapFeeBps:l};if(s===rt)return w;this.url=u?"/api/aggregators?aggregator=haikuSolve":`${this.config.bex.aggregatorsProxyUrl}/${h}/v1/solveIntent`;let C=await(await this.fetch(this.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({quoteId:T.quoteId})})).json(),v=this.getInputData({tokenIn:d,amountIn:o,isNative:f,isPermit2Approval:!0,permit2SpenderAddress:this.config.bex.haikuAgentAddress}),M={tokenOut:c,receiver:s,minAmountOut:this.getMinAmountOut(w.amountOut,n),isNative:g},W={aggregator:C.to,data:C.data};return{...w,calldata:{params:[v,M,W,{rewardVault:p??rt,isSwapAndStake:!!p}],functionName:"swap",abi:L,value:BigInt(f?o:"0"),address:this.config.bex.aggregatorsRouter}}}},Ee=new ot;import{BigNumber as Cn}from"bignumber.js";import{formatUnits as Gr}from"viem";import{ChainId as En}from"@berachain/config/internal";function Sn(e){return e?"previewMintHoney":"previewRedeemCollaterals"}var se=class e extends S{name="Honey";supportedChains=[En.MAINNET];type="rpc";honeyToken=pe(this);static isHoneyNativeSwap({tokenIn:t,tokenOut:r,honeyNativeState:o,...n}){if(!o?.collateralList)return!1;let s=k(r,"HONEY",n),a=k(t,"HONEY",n);return!s&&!a?!1:o.collateralList.some(i=>k(i.address,s?t:r))}async getQuote({tokenIn:t,tokenOut:r,amount:o,publicClient:n,account:s,honeyNativeState:a}){let{collateralList:i}=a??{};if(!i)throw new E({message:"Invalid Honey Context state",property:"collaterals",value:i,expected:"TokenWithOrder[]"});y(n),this.checkChainSupport();let l=k(r,this.honeyToken);if(!e.isHoneyNativeSwap({tokenIn:t,tokenOut:r,honeyNativeState:a}))throw new x({message:"Honey Aggregator only supports minting or redeeming Honey"});let u=i,m=i.find(I=>k(I.address,l?t:r));if(!m)throw new x({message:"This collateral is not part of the Honey protocol"});let[p,d]=await Promise.all([ge({client:n,collateralList:[m]}),ye({client:n,isMint:l,collateralList:i,latestPrices:void 0,isPythWrapperEnabled:!1})]);if(!p)throw new x({message:"Failed to fetch the Honey vault balances"});if(d)return;let c=p[0],f=m.order;u.length>1&&f!==0&&(u.splice(f,1),u.unshift(m));let g=Gr(BigInt(o),l?m.decimals:this.honeyToken.decimals),A={client:n,collateral:m,collateralList:i,amount:g,method:Sn(l),latestPrices:void 0,isPythWrapperEnabled:!1},R=await _t(A);if(!R)throw new x({message:"Failed to fetch the Honey preview"});let{honey:h,collaterals:b}=R;if(!(l?!0:new Cn(c?.formattedBalance??"0").gte(Gr(b[m.address],m.decimals))))return;let w=s?await Gt({state:{actionType:l?"mint":"redeem",fromAmount:[g],collaterals:u,isBasketModeEnabled:!1},account:s,collateralList:u,publicClient:n,priceFeedMap:void 0,isPythWrapperEnabled:!1}):void 0;if(!w&&s)throw new x({message:"Failed to fetch the Honey swap payload"});return{amountIn:o,amountOut:l?h.toString():b[m.address].toString(),spender:this.config.honey.factory,name:"Honey",swapFeeBps:0,calldata:w}}},Se=new se;import{zeroAddress as nt}from"viem";import{ChainId as xn}from"@berachain/config/internal";var st=class extends S{name="KyberSwap";supportedChains=[xn.MAINNET];type="rest";notFoundMessages=["token not found","route not found","amountIn is greater than max allowed"];async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:n,account:s=nt,aggregatorsFeeBps:a,proxyAggregatorsThroughVercel:i=!1,rewardVault:l}){this.checkChainSupport();let{isTokenInNative:u,isTokenOutNative:m,tokenInAddress:p,tokenOutAddress:d}=this.parseAddresses(t,r),c=this.getAmountAfterFees(o,a);this.url=i?"/api/aggregators?aggregator=kyberswapRoutes":`${this.config.bex.aggregatorsProxyUrl}/kyberswap/berachain/api/v1/routes`;let f=new URL(this.url);f.searchParams.set("tokenIn",p),f.searchParams.set("tokenOut",d),f.searchParams.set("amountIn",c),f.searchParams.set("slippageTolerance",(n/100).toString()),f.searchParams.set("to",this.config.bex.aggregatorsRouterExecutor),f.searchParams.set("clientData",JSON.stringify({source:"berachain"}));let A=await(await this.fetch(f)).json(),R={amountOut:A.data.routeSummary.amountOut,amountIn:o,spender:this.config.bex.aggregatorsRouter,name:this.name,swapFeeBps:a};if(s===nt)return R;let h={routeSummary:A.data.routeSummary,sender:this.config.bex.aggregatorsRouterExecutor,recipient:this.config.bex.aggregatorsRouterExecutor,slippageTolerance:n*100,deadline:Math.floor(Date.now()/1e3)+300,source:"berachain"},b=f.searchParams.entries(),T=new URL(i?"/api/aggregators?aggregator=kyberswapBuild":`${this.config.bex.aggregatorsProxyUrl}/kyberswap/berachain/api/v1/route/build`);for(let[W,O]of b)T.searchParams.set(W,O);let I=await(await this.fetch(T,{method:"POST",body:JSON.stringify(h)})).json(),C=this.getInputData({tokenIn:p,amountIn:o,isNative:u}),v={tokenOut:d,receiver:s,minAmountOut:this.getMinAmountOut(R.amountOut,n),isNative:m},M={aggregator:I.data.routerAddress,data:I.data.data};return{...R,calldata:{params:[C,v,M,{rewardVault:l??nt,isSwapAndStake:!!l}],functionName:"swap",abi:L,value:BigInt(u?o:"0"),address:this.config.bex.aggregatorsRouter}}}},xe=new st;import{zeroAddress as at}from"viem";import{ChainId as vn}from"@berachain/config/internal";var it=class extends S{name="Oogabooga";supportedChains=[vn.MAINNET];type="rest";async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:n,account:s=at,aggregatorsFeeBps:a,proxyAggregatorsThroughVercel:i=!1,rewardVault:l}){this.checkChainSupport();let{tokenInAddress:u,tokenOutAddress:m,isTokenInNative:p,isTokenOutNative:d}=this.parseAddresses(t,r),c=this.getAmountAfterFees(o,a),f=new URLSearchParams({tokenIn:u,tokenOut:m,amount:c,slippage:(n/100).toString(),to:this.config.bex.aggregatorsRouterExecutor,referrer:this.config.bex.aggregatorsRouter});this.url=i?`/api/aggregators?aggregator=oogabooga&${f.toString()}`:`${this.config.bex.aggregatorsProxyUrl}/oogabooga/v1/swap?${f.toString()}`;let A=await(await this.fetch(this.url)).json(),R={amountOut:A.assumedAmountOut,amountIn:o,spender:this.config.bex.aggregatorsRouter,name:this.name,priceImpactPercentage:A.priceImpact,swapFeeBps:a};if(s===at)return R;let h=this.getInputData({tokenIn:u,amountIn:o,isNative:p}),b={tokenOut:m,receiver:s,minAmountOut:this.getMinAmountOut(R.amountOut,n),isNative:d},T={aggregator:A.tx?.to,data:A.tx?.data};return{...R,calldata:{params:[h,b,T,{rewardVault:l??at,isSwapAndStake:!!l}],functionName:"swap",abi:L,value:BigInt(p?o:"0"),address:this.config.bex.aggregatorsRouter}}}},ve=new it;import{zeroAddress as Fr}from"viem";import{ChainId as Kr}from"@berachain/config/internal";var lt=class extends S{name="OpenOcean";supportedChains=[Kr.MAINNET];type="rest";url="https://open-api.openocean.finance/v4/bera/swap";notFoundMessages=["No avail liquidity for the pair"];async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:n,account:s=Fr,aggregatorsFeeBps:a,tokenInDecimals:i,publicClient:l,rewardVault:u}){if(y(l),!i)throw new E({property:"tokenInDecimals",value:i,expected:"number",chainId:this.chainId});this.checkChainSupport();let m=this.getAmountAfterFees(o,a),{tokenInAddress:p,tokenOutAddress:d,isTokenInNative:c,isTokenOutNative:f}=this.parseAddresses(t,r),g=(await l.getGasPrice()).toString(),A=new URLSearchParams({chain:Kr.MAINNET.toString(),inTokenAddress:p,outTokenAddress:d,amountDecimals:m,slippage:n<.01?"0.01":n.toString(),account:this.config.bex.aggregatorsRouterExecutor,referrer:this.config.bex.aggregatorsRouter,gasPrice:g}),R=await this.fetch(`${this.url}?${A.toString()}`),h=await R.json();if(h.code!==200||!h.data){let C=this.notFoundMessages.some(v=>h.error.includes(v));throw new J({response:R,endpoint:{url:this.url,name:this.name,type:this.type},cause:h,reason:C?S.PATH_NOT_FOUND_REASON:h.error})}let b={amountOut:h.data.outAmount,amountIn:o,spender:this.config.bex.aggregatorsRouter,name:this.name,swapFeeBps:a},T=this.getInputData({tokenIn:p,amountIn:o,isNative:c}),w={tokenOut:d,receiver:s,minAmountOut:this.getMinAmountOut(b.amountOut,n),isNative:f},I={aggregator:h.data.to,data:h.data.data};return{...b,calldata:{params:[T,w,I,{rewardVault:u??Fr,isSwapAndStake:!!u}],functionName:"swap",abi:L,value:BigInt(c?o:"0"),address:this.config.bex.aggregatorsRouter}}}},Be=new lt;import{ChainId as qr}from"@berachain/config/internal";var ut=class extends S{name="Wrap";supportedChains=[qr.MAINNET,qr.BEPOLIA];type="rpc";async getQuote({tokenIn:t,tokenOut:r,amount:o}){if(this.checkChainSupport(),!k(t,"BERA")&&!k(t,"WBERA")||!k(r,"WBERA")&&!k(r,"BERA"))throw new x({message:"Invalid token pair",level:"error"});let n=k(t,"BERA")&&k(r,"WBERA");return{amountOut:o,amountIn:o,spender:void 0,name:n?"Wrap":"Unwrap",isNativeSwap:!0,swapFeeBps:0,calldata:n?{abi:ze,address:this.config.tokens.wbera,functionName:"deposit",params:[],value:BigInt(o)}:{abi:ze,address:this.config.tokens.wbera,functionName:"withdraw",params:[BigInt(o)],value:BigInt(0)}}}},Oe=new ut;var Nn=[ve,Ce,xe,Be,Ee,Te,we,Se],Un="useAggregatorsQuotes";function Y({name:e,account:t,args:r,feeBps:o,options:n,activeAggregators:s,honeyNativeState:a}){if(e!==Pe.name&&(k(r.tokenIn,"BGT",{chainId:pt})||k(r.tokenOut,"BGT",{chainId:pt})))return null;let{tokenIn:i,tokenOut:l,tokenInDecimals:u,tokenOutDecimals:m,amount:p,slippage:d,referrer:c,rewardVault:f}=r,g=Bn(p,u).toString(),A=!s||s.includes(e.toLowerCase().replaceAll(" ",""));return n?.opts?.isEnabled&&Number(p)&&o!==void 0&&A?[Un,e,i,l,g,d,t,o,u,m,c,f,a?.collateralList]:null}function Z({aggregator:e,publicClient:t,proxyAggregatorsThroughVercel:r}){return async([,,o,n,s,a,i,l,u,m,p,d,c])=>e.getQuote({tokenIn:o,tokenOut:n,amount:s,slippage:a,account:i,aggregatorsFeeBps:l,tokenInDecimals:u,tokenOutDecimals:m,publicClient:t,proxyAggregatorsThroughVercel:r,referrer:p,rewardVault:d,honeyNativeState:{collateralList:c??[]}})}var Yd=(e,t)=>{let{address:r}=Dn(),o=K("proxyAggregatorsThroughVercel"),n=K("aggregators"),s=Ln(),{data:a}=Zr(),{collateralList:i,protocol:l}=e.honeyNativeState??{},u=(k(e.tokenIn,"BERA")||k(e.tokenIn,"WBERA"))&&(k(e.tokenOut,"BERA")||k(e.tokenOut,"WBERA")),m=k(e.tokenIn,"BGT",{chainId:pt}),p=$r(()=>se.isHoneyNativeSwap(e),[e.tokenOut,e.tokenIn,i]),d=u||m,{config:c}=P(e),f=c.bex.aggregatorsRouter!==On,g={refreshInterval:1e4,errorRetryCount:3,onErrorRetry(D,F,z,re,U){if(!(D instanceof x&&D.reason===S.PATH_NOT_FOUND_REASON)){if(D instanceof J&&D.statusCode===403){console.warn(F[1],"returned error 403, stopping retries");return}U.retryCount>(z.errorRetryCount??3)||setTimeout(()=>{re()},z.errorRetryInterval??fe(10))}}},A=Q(d||!f?null:Y({name:ve.name,account:r,args:e,feeBps:a,options:t,activeAggregators:n}),Z({aggregator:ve,proxyAggregatorsThroughVercel:o}),g),R=Q(d||!f?null:Y({name:Ce.name,account:r,args:e,feeBps:a,options:t,activeAggregators:n}),Z({aggregator:Ce,proxyAggregatorsThroughVercel:o}),g),h=Q(d||!f?null:Y({name:xe.name,account:r,args:e,feeBps:a,options:t,activeAggregators:n}),Z({aggregator:xe,proxyAggregatorsThroughVercel:o}),g),b=Q(d||!f?null:Y({name:Be.name,account:r,args:e,feeBps:a,options:t,activeAggregators:n}),Z({aggregator:Be,publicClient:s,proxyAggregatorsThroughVercel:o}),g),T=Q(d||!f?null:Y({name:Ee.name,account:r,args:e,feeBps:a,options:t,activeAggregators:n}),Z({aggregator:Ee,publicClient:s,proxyAggregatorsThroughVercel:o}),g),w=Q(d||!f?null:Y({name:Te.name,account:r,args:e,feeBps:a,options:t,activeAggregators:n}),Z({aggregator:Te,proxyAggregatorsThroughVercel:o}),g),{protocol:I}=Ge(),C=Q(d||I.isPaused===!0||e.rewardVault?null:Y({name:we.name,account:r,args:e,feeBps:0,options:t,activeAggregators:n}),Z({aggregator:we,publicClient:s}),g),v=Q(u?Y({name:Oe.name,account:r,args:e,feeBps:0,options:t,activeAggregators:void 0}):null,async([,,D,F,z,,re])=>Oe.getQuote({tokenIn:D,tokenOut:F,amount:z,account:re}),g),M=Q(m?Y({name:Pe.name,account:r,args:e,feeBps:0,options:t,activeAggregators:void 0}):null,async([,,D,,F])=>Pe.getQuote({tokenIn:D,amount:F}),g),W=Q(!p||d||l?.isPaused===!0||!i?null:Y({name:Se.name,account:r,args:e,feeBps:0,options:t,activeAggregators:void 0,honeyNativeState:{collateralList:i}}),Z({aggregator:Se,publicClient:s,proxyAggregatorsThroughVercel:o}),g),O=u?[v]:m?[M]:[A,R,h,b,T,w,W,I.isPaused===!1?C:null].filter(D=>D!==null);return{...$r(()=>{let D=O.reduce((U,Me)=>U||Me.error,void 0),F=O.map((U,Me)=>U.isLoading?d?Oe.name:Nn[Me].name:null).filter(Boolean),z=O.filter(U=>U!==void 0&&!U.isLoading&&!U.error&&U.data?.amountOut).map(({data:U})=>U),re=z.length===0&&F.length>0;return{quotes:z,loadingAggregatorsNames:F,isLoading:re,error:D}},[O]),refresh:()=>O.map(D=>D.mutate())}};import Hn from"swr/immutable";import{zeroAddress as Vn}from"viem";import{usePublicClient as Wn}from"@berachain/wagmi/hooks";var Zr=()=>{let e=Wn(),{config:t}=P({chainId:e.chain?.id}),r=Hn(e&&t.bex.aggregatorsRouter&&t.bex.aggregatorsRouter!==Vn?["useAggregatorsRouterFeeBps",t.bex.aggregatorsRouter]:null,async([,o])=>{let n=await e.readContract({address:o,abi:L,functionName:"SWAP_FEE_RATE"});return Number(n)});return{...r,refresh:r.mutate}};import _n from"swr";var Qn=({query:e}={})=>["useAllUserPools",e],zr=(e,t)=>{let r=_n(Qn({query:e}),async([o,n])=>de({...n,fetchPolicy:"no-cache"}),{refreshInterval:18e4,...t?.opts});return{...r,refresh:()=>{r.mutate()}}};import Yn from"swr";import{isAddress as Mn}from"viem";var Gn=({poolId:e,account:t})=>e?["usePool-api",e,t]:null;function jr({poolId:e,account:t}){let r=Yn(Gn({poolId:e,account:t}),async([,o,n])=>{if(n&&!Mn(n))throw new E({property:"account",value:n,expected:"Address"});return Pt({poolId:o,account:n})},{refreshInterval:1e5});return{...r,refresh:()=>{r.mutate()}}}import{useMemo as to}from"react";import{PoolType as De}from"@berachain-foundation/berancer-sdk";import Kn from"swr/immutable";import{formatUnits as qn,keccak256 as $n,parseUnits as Le,zeroAddress as dt}from"viem";import{GetDedupedSubgraphPools as Zn}from"@berachain/graphql/dex/subgraph";import{PoolType as Jr}from"@berachain-foundation/berancer-sdk";import{formatUnits as Fn}from"viem";var mt=e=>[...e].sort((t,r)=>t.address.toLowerCase().localeCompare(r.address.toLowerCase())),Xr=e=>e.length===0?"":mt(e).map(t=>t.symbol).join(" | "),eo=(e,t,r)=>{let o;switch(r){case Jr.ComposableStable:o="STABLE";break;default:o=r.toString().toUpperCase();break}return r===Jr.Weighted?t.length===0?"":`${mt(e).map((n,s)=>{let a=t[s];return`${(Number.parseFloat(Fn(a,18))*100).toFixed(0)}${n.symbol}`}).join("-")}-${o}`:`${mt(e).map(n=>n.symbol).join("-")}-${o}`};var zn=.005,jn=(r=>(r.None="None",r.Custom="Custom",r))(jn||{}),Jn=({poolCreationHelper:e,poolCreateTokens:t,initialLiquidityTokens:r,swapFeePercentage:o,salt:n,poolName:s,poolSymbol:a,owner:i,amplification:l,oracles:u,message:m,actionType:p,gasLimit:d=qe})=>{let c=t.map(w=>w.address.toLowerCase()).sort((w,I)=>w<I?-1:1),f=c.map(w=>{let I=r.find(O=>O.address.toLowerCase()===w||k(w,"WBERA")&&k(O.address,"BERA")),C=I?Le(I.amount,I.decimals):0n,v=u.find(O=>O.tokenAddress.toLowerCase()===w.toLowerCase()),M=v?v.address:dt,W=BigInt(v?v.cacheDuration:100);return{amountIn:C,rateProvider:M,cacheDuration:W}}),g=f.map(w=>w.amountIn),A=f.map(w=>w.rateProvider),R=f.map(w=>w.cacheDuration),h=r.findIndex(w=>k(w.address,"BERA")),b=h!==-1?Le(r[h].amount,r[h].decimals):0n,T=b>0n;return{address:e,abi:Ze,functionName:"createAndJoinStablePool",params:[s,a,c,BigInt(l),A,R,!1,o,g,i,n,T],message:m,actionType:p,value:b,gasLimit:d,track:{eventName:"hub_pool_create",eventData:{poolName:s,poolSymbol:a}}}},Xn=({poolCreationHelper:e,poolCreateTokens:t,initialLiquidityTokens:r,normalizedWeights:o,swapFeePercentage:n,salt:s,poolName:a,poolSymbol:i,owner:l,message:u,actionType:m,gasLimit:p=qe})=>{let d=[],c=[],f=[],g=[];t.map((h,b)=>({createToken:h.address,joinToken:r[b].address,weight:o[b],amountIn:Le(r[b].amount,r[b].decimals)})).sort((h,b)=>h.createToken.toLowerCase()<b.createToken.toLowerCase()?-1:1).forEach(h=>{d.push(h.createToken),c.push(h.joinToken),f.push(h.weight),g.push(h.amountIn)});let A=c.indexOf(dt),R=A!==-1?g[A]:0n;return{address:e,abi:Ze,functionName:"createAndJoinWeightedPool",params:[a,i,d,c,f,Array(d.length).fill(dt),n,g,l,s],message:u,actionType:m,value:R,gasLimit:p,track:{eventName:"hub_pool_create",eventData:{poolName:a,poolSymbol:i}}}},hc=({poolCreateTokens:e,initialLiquidityTokens:t,normalizedWeights:r,poolType:o,poolName:n,poolSymbol:s,swapFee:a,owner:i,amplification:l,oracles:u,weightsDuplicationThreshold:m=zn,...p})=>{let{data:d,error:c,isLoading:f}=Kn(["useCreatePool__deduped_pool",e,o,r],async()=>{if(e.length===0||!o)return null;let h=q("bex.subgraph",{});try{let b=he(e).map(I=>I.address.toLowerCase()).sort((I,C)=>I.toLowerCase()<C.toLowerCase()?-1:1);return(await h.query({query:Zn,variables:{tokens:b,type:o}})).data.pools.filter(I=>I.tokens?.every(C=>o===De.Weighted?b.includes(C.address)&&Math.abs(Number(C.weight)-Number(qn(r[b.indexOf(C.address)],18)))<m:b.includes(C.address)||C.address===I.address))?.at(0)??null}catch{return null}}),{generatedPoolName:g,generatedPoolSymbol:A}=to(()=>{if(!e)return{generatedPoolName:"",generatedPoolSymbol:""};let h=Xr(e),b=eo(e,r,o);return{generatedPoolName:h,generatedPoolSymbol:b}},[e,r,o]),R=to(()=>{if(!i||n===""||s===""||e.length!==t.length||e.length===0)return null;let h=Le(a.toString(),16),b=$n(Buffer.from(`${n}-${i}`)),{config:T}=P(p);return o===De.Weighted?Xn({poolCreationHelper:T.bex.poolCreationHelper,poolCreateTokens:e,initialLiquidityTokens:t,normalizedWeights:r,swapFeePercentage:h,salt:b,poolName:n,poolSymbol:s,owner:i,message:`Create pool ${n}`,actionType:"Create Pool"}):o===De.ComposableStable||o===De.MetaStable?Jn({poolCreationHelper:T.bex.poolCreationHelper,poolCreateTokens:e,initialLiquidityTokens:t,swapFeePercentage:h,salt:b,poolName:n,poolSymbol:s,owner:i,amplification:l,oracles:u,message:`Create pool ${n}`,actionType:"Create Pool"}):null},[e,t,r,o,a,n,s,i,l,u]);return{generatedPoolName:g,generatedPoolSymbol:A,isDupePool:!!d,dupePool:d,createPoolArgs:R,isLoadingPools:f,errorLoadingPools:c}};import ss from"swr";import{usePublicClient as as}from"@berachain/wagmi/hooks";import es from"bignumber.js";import{erc20Abi as ts,formatUnits as rs}from"viem";import{GetExploitedTokens as os}from"@berachain/graphql/dex/subgraph";var ns=1e-4;async function ro({token:e,publicClient:t,...r}){let o=q("bex.subgraph",r),n=await t.readContract({address:e.address,abi:ts,functionName:"totalSupply"}),s=es(rs(n,e.decimals)).multipliedBy(ns),{data:a}=await o.query({query:os,variables:{token:e.address,balance:s.toFixed()}});return a.userInternalBalances.length>0}var is=e=>{let t=e?.filter(r=>r.address);return!t||t.length===0?null:["useExploitedTokens",t]},vc=({tokens:e})=>{let t=is(e),r=as(),o=ss(r?t:null,async([,n])=>(y(r),(await Promise.all(n.map(a=>ro({token:a,publicClient:r})))).reduce((a,i,l)=>(i!==void 0&&(a[n[l].address]=i),a),{})));return{...o,refresh:()=>o.mutate()}};import ls from"swr";var us=()=>{let e=ls("useGlobalLiquidityAndSwapVolume",async()=>Tt());return{...e,data:{totalLiquidity:Number(e.data?.protocolMetricsAggregated.totalLiquidity),swapVolume24h:Number(e.data?.protocolMetricsAggregated.swapVolume24h)},refresh:()=>e.mutate()}};import{useEffect as ps,useState as ms}from"react";import{PoolType as ae}from"@berachain-foundation/berancer-sdk";var ds=.05,Vc=({currentStep:e,tokenPrices:t,isLoadingTokenPrices:r,tokens:o,weights:n,weightsError:s,poolType:a,liquidityMismatchTolerancePercent:i=ds,oracles:l})=>{let[u,m]=ms({title:null,message:null});return ps(()=>{if(!t||r||!o||!n||s||o.some(b=>!b.address)||l.some(b=>b.mode==="Custom")){m({title:null,message:null});return}let p=0,d=[],c=o.length,g=he(o).map(b=>{let T=t[b.address.toLowerCase()]?.price??0;if(!T||T===0)return d.push(0),null;let w=T*Number.parseFloat(b.amount);return d.push(w),p+=w,T});if(g.some(b=>b===null)||g.length!==c){m({title:"Missing token price data",message:`One or more token(s) do not have valid market price data. Please verify that token market prices align with the pool
2
- weightings and your initial liquidity amounts.`});return}if(e==="Select Tokens"&&a===ae.ComposableStable){let b=g.map(w=>w/g[0]);Math.max(...b)-Math.min(...b)>i?m({title:"Selected tokens have a significant price deviation",message:"Did you mean to create a Weighted pool instead?",suggestWeighted:!0}):m({title:null,message:null});return}if(p===0||d.some(b=>b===0)){m({title:null,message:null});return}let A=0;if(a===ae.ComposableStable){let b=p/c;d.forEach(T=>{A+=Math.abs(b-T)})}else a===ae.Weighted&&d.forEach((b,T)=>{let w=Number(n[T])/1e18,I=p*w;A+=Math.abs(I-b)});let R=A>=p*.9;A=Math.min(A,p);let h=A/p;h>i?m({title:R?"You could lose all of your initial liquidity":`You could lose $${A.toFixed(2)} (~${(h*100).toFixed(2)}%)`,message:`Based on the market token prices, the value of tokens does not align with the specified pool weights.
3
- This discrepancy could expose you to potential losses from arbitrageurs. ${a===ae.ComposableStable?"Did you mean to create a Weighted pool instead?":""}`,suggestWeighted:a===ae.ComposableStable}):m({title:null,message:null})},[e,t,r,o,n,s,a,i,l]),u};import lo from"bignumber.js";import{formatEther as uo,isAddressEqual as Ds}from"viem";import As from"swr";import{isAddress as oo,zeroAddress as bs}from"viem";import{useBeraWallet as hs,usePublicClient as Rs}from"@berachain/wagmi/hooks";import cs from"swr/immutable";import{isAddress as fs,zeroAddress as gs}from"viem";import{usePublicClient as ys}from"@berachain/wagmi/hooks";var ct=({tokenAddress:e},{isEnabled:t=!0}={})=>{let r=ys(),o=r&&e&&fs(e)&&t?["useRewardVaultFromToken",e]:null,n=cs(o,async([,s])=>{if(!s)throw new Error("useRewardVaultFromToken needs a valid token address");y(r);let{config:a}=P({chainId:r.chain.id}),i=await r.readContract({address:a.pol.factory,abi:er,functionName:"getVault",args:[s]});return i===gs?void 0:i});return{...n,refresh:()=>n.mutate()}};var no=({stakingToken:e,rewardVaultAddress:t},r)=>{let{address:o}=hs(),n=Rs(),s=r?.opts?.isEnabled??!0,{data:a=t,error:i,mutate:l,isLoading:u}=ct({tokenAddress:e},{isEnabled:!t&&s}),m=As(a&&o&&n&&oo(a)&&oo(o)&&s?["useVaultBalanceFromStakingToken",a,o]:null,async([,p,d])=>{if(y(n),p===bs)return{address:p,balance:0n};let c=await n.readContract({address:p,abi:ce,functionName:"balanceOf",args:[d]});return{address:p,balance:c}});return{...m,refresh:()=>{l(),m.mutate()},isLoading:m.isLoading||u}};import Is from"swr";import{erc20Abi as Cs,formatEther as Es,formatUnits as Ss,isAddress as ao,zeroAddress as xs}from"viem";import{defaultChainId as vs}from"@berachain/config/internal";import{useBeraWallet as Bs,usePublicClient as Os}from"@berachain/wagmi/hooks";import ks from"swr/immutable";import{isAddress as ws,zeroAddress as Ps}from"viem";import{usePublicClient as Ts}from"@berachain/wagmi/hooks";var so=(e,t)=>{let r=Ts({chainId:e.chainId}),o=e?.address&&r&&ws(e.address)?["useTokenInformation",e.address,e.chainId]:null,n=ks(o,async([s,a])=>k(a,"BERA")?{address:Ps,decimals:H.decimals,name:H.name,symbol:H.symbol}:(y(r),await X({address:a,publicClient:r})),{...t?.opts});return{...n,refresh:()=>n?.mutate?.()}};function io({address:e,owner:t,chainId:r=vs},o){let n=e;k(n,"ETH")&&(n=xs);let s=Os({chainId:r}),{address:a}=Bs(),i=t??a,l=(o?.opts?.isEnabled??!0)&&s&&i&&ao(i)&&n&&ao(n)?["usePollBalance",i,n,r]:null,{data:u,isLoading:m}=so({address:n,chainId:r}),p=k(n,"BERA"),{isLoading:d,data:c,error:f,...g}=Is(l,async([,h,b])=>(y(s),k(b,"BERA")?await s.getBalance({address:h}):await s.readContract({address:b,abi:Cs,functionName:"balanceOf",args:[h]})),{refreshInterval:1e4}),A=!f&&c?k(n,"BERA")?Es(c):u&&!m?Ss(c,u.decimals):void 0:void 0,R={balance:c??0n,formattedBalance:A??"0",address:n,decimals:p?H.decimals:u?.decimals??0,symbol:p?H.symbol:u?.symbol??"",name:p?H.name:u?.name??""};return{...g,refresh:()=>{g.mutate()},isLoading:d||p?m:!1,error:f||!p?f:void 0,data:R}}var Rf=({pool:e,vaultAddress:t},r)=>{let{data:o,...n}=io({address:e?.address}),{data:s,refresh:a}=no({stakingToken:e?.address,rewardVaultAddress:t??e?.rewardVault?.vaultAddress},r),i=e?Number.parseFloat(e?.dynamicData?.totalShares??"0"):0,l=e?.dynamicData?.totalLiquidity?Number(e?.dynamicData?.totalLiquidity??0):null,u=i&&l?l/Number(i):0,m=e?.tokens?.map(p=>({address:p.address,ratio:i?Number(p.balance)/Number(i):0}));return{data:{lpTokenPrice:u,lpBalance:o?{...o,usdValue:o?Number(o.formattedBalance)*u:void 0}:void 0,tokenBalances:e?.tokens?.map(p=>{let d=m?.find(g=>Ds(g.address,p.address))?.ratio??0,c=d?lo(o?.formattedBalance??"0").times(d):lo(0),f=Number(p.balanceUSD)/Number(p.balance);return{balance:c?.isGreaterThan(0)?BigInt(c.times(10**p.decimals).toFixed(0).toString()):0n,formattedBalance:c.toString(),address:p.address,usdValue:Number.isNaN(f)||!c?void 0:Number.parseFloat(c.toString())*f}}),stakedBalance:s?.address?{address:s.address,balance:s.balance,formattedBalance:uo(s.balance),usdValue:Number(uo(s.balance))*u}:void 0},...n,refresh:()=>{n.refresh?.(),a()}}};import{useMemo as mo}from"react";import{ZERO_ADDRESS as Hs}from"@berachain-foundation/berancer-sdk";import Vs from"bignumber.js";import{isAddressEqual as Ws,parseUnits as co}from"viem";import Ls from"swr";import{useBeraWallet as Ns,usePublicClient as Us}from"@berachain/wagmi/hooks";var po=(e,t)=>{let r=Us(),{address:o}=Ns(),n=r&&o&&e?.tokens&&e?.spender?["usePollAllowances",o,e?.tokens,e?.spender]:null,s=Ls(n,async([,a,i,l])=>dr({tokens:i,account:a,spender:l,publicClient:r}),{...t?.opts,refreshInterval:t?.opts?.refreshInterval??1e5});return{...s,refresh:()=>s?.mutate?.()}};function _s({amount:e,decimals:t,slippage:r}){let o=co(e,t),n=co((r??0).toString(),t);return o+o*n/BigInt(100*10**t)}var Qs=(e,t,r)=>{let o=mo(()=>e.filter(l=>l.address!==Hs).filter(l=>l!==void 0).filter(l=>Vs(l.amount).gt(0)),[e]),{data:n,refresh:s,isLoading:a}=po({spender:t,tokens:o});return{needsApproval:mo(()=>n?.map(l=>{let u=o.find(p=>Ws(p.address,l.address));if(!u)throw new x({message:"Token not found when matching allowance in useMultipleTokenApprovalsWithSlippage",cause:{allowance:l,tokens:o}});let m=_s({...u,slippage:r});if(l.allowance===0n||l.allowance<m)return{...l,maxAmountIn:m}}).filter(l=>l!==void 0)??[],[n,r,o]),refresh:s,isLoading:a}};import{useMemo as qs}from"react";import $s from"swr/immutable";import{formatUnits as Zs,isAddress as zs}from"viem";import{usePublicClient as js}from"@berachain/wagmi/hooks";import Ys from"swr/immutable";import{isAddress as Ms}from"viem";import{usePublicClient as Gs}from"@berachain/wagmi/hooks";var fo=(e,t)=>{let r=Gs(),o=r&&e.addresses?["useMultipleTokenInformation",e.addresses]:null,n=Ys(o,async([,s])=>(y(r),Promise.all(s.map(async a=>{if(!a||!Ms(a,{strict:!1}))throw new Error("Invalid address");let i=await X({address:a,publicClient:r});if(!i)throw new Error(`Token ${a} not found`);return i}))),{...t?.opts});return{...n,refresh:()=>n?.mutate?.()}};import Ks from"swr";import{useContext as Fs}from"react";function Ne(){let e=Fs(Rt);if(!e)throw new x({message:"useTokens must be used within a TokensProvider",level:"fatal"});return{...e,data:{tokenList:e.tokenList,customTokenList:e.userTokens,featuredTokenList:e.featuredTokens}}}function Ue({addressIn:e}={},t={opts:{refreshInterval:1e5,revalidateOnFocus:!0}}){let{tokenList:r}=Ne(),o=e?.some(a=>r?.findIndex(i=>k(i,a))===-1)?e:r?.map(a=>a.address),n=o&&(t.opts?.isEnabled??!0)?["useTokenCurrentPrices",o.map(a=>a.toLowerCase())]:null,s=Ks(n,async([,a])=>mr({addressIn:a}),t.opts);return{...s,refresh:()=>void s.mutate()}}function Js(e){let t="poolId"in e?e.poolId?.slice(0,42):e.address;return zs(t)&&t?["useOnChainPoolData",t]:null}function go(e){let t=js(),r=e?.slice(0,42),o=Js({poolId:e}),{data:n,error:s,isLoading:a,mutate:i}=$s(t?o:null,async([,c])=>It({poolId:c,publicClient:t})),{data:l,isLoading:u}=fo({addresses:n?.poolTokens[0]}),{data:m,isLoading:p}=Ue({addressIn:n?.poolTokens[0]});return{data:qs(()=>{if(!n||!l)return;let c={address:r.toLowerCase(),id:e.toLowerCase(),type:n.type,factory:n.factory,totalShares:n.totalSupply,totalLiquidity:"0",swapFee:n.swapFee,createTime:0,name:n.name,tokens:l.map((g,A)=>({address:g.address.toLowerCase(),name:g.name,decimals:g.decimals,symbol:g.symbol,index:A,weight:n.weights?.[A]??void 0,balance:Zs(BigInt(n.poolTokens[1][A]),g.decimals),token:{__typename:"Token",token:g,latestUSDPrice:m?.[g.address]}})),amplificationParameter:n?.amplificationParameter&&{currentFormattedValue:Number(n.amplificationParameter[0])/Number(n.amplificationParameter[2])}},f=c.tokens?.reduce((g,A)=>{let R=Number(m?.[A.address.toLowerCase()]?.price??0);return R?g+R*Number(A.balance):g},0);return c.totalLiquidity=f?.toString()??"",c},[n,l,m,r,e]),error:s,isLoading:a||u||p,mutate:i,refresh:()=>i()}}import Xs from"swr";import{useBeraWallet as ea,usePublicClient as ta}from"@berachain/wagmi/hooks";var ra=e=>{let{address:t}=ea(),r=ta(),o=t&&r?["usePollPoolCreationRelayerApproval",t,r.chain.id]:null,n=Xs(o,async([,a])=>{y(r);let{config:i}=P({chainId:r.chain.id});return await r.readContract({address:i.bex.vault,abi:oe,functionName:"hasApprovedRelayer",args:[a,i.bex.poolCreationHelper]})},{...e?.opts});return{...n,refreshPoolCreationApproval:()=>{n.mutate()}}};import{useMemo as oa}from"react";import na from"swr";function sa({poolId:e}){return e?["usePool-subgraph",e]:null}var cg=({poolId:e})=>{let t=na(sa({poolId:e}),async([,i])=>St({poolId:i}),{refreshInterval:1e5}),r=jr({poolId:e}),{data:o,isLoading:n,refresh:s}=go(e);return{data:[oa(()=>{if(!t.data)return o;let i={...t.data};return o&&(i.swapFee=o.swapFee,i.totalShares=o.totalShares,i.createTime=o.createTime??i.createTime),i},[o,t]),r.data,o],isLoading:r.isLoading||t.isLoading||n,isError:r.error||t.error,refresh:()=>{r.refresh(),t.mutate(),s()}}};import aa from"swr/immutable";var Ag=({poolId:e,typeInArray:t})=>aa(e?["usePoolEvents",e,t]:null,async([,r,o])=>Ct({poolId:r,typeInArray:o}),{refreshInterval:18e4});import ia from"swr";var wg=({poolId:e,...t},r)=>{let{config:o}=P(t),s=ia(e?["usePoolHistoricalData",e]:null,async([,a])=>await Et({poolId:a,chain:o.bex.chainName}),r?.opts);return{...s,refresh:()=>void s.mutate()}};import{useMemo as yo}from"react";import la from"swr";import{useBeraWallet as ua}from"@berachain/wagmi/hooks";var pa=({query:e}={})=>["useAllPools",e],xg=(e,t)=>{let{address:r}=ua(),{data:o,isLoading:n,mutate:s}=zr({userAddress:r,chain:e.chain}),{data:a,isLoading:i,mutate:l}=la(pa({query:e}),async([p,d])=>de(d),{refreshInterval:18e4,...t?.opts}),u=yo(()=>{if(!a||!o?.pools?.length)return a?.pools??[];let p=Object.fromEntries(o.pools.map(d=>[d.id.toLowerCase(),d]));return a.pools.map(d=>({...d,...p[d.id.toLowerCase()]||{}})).filter(Boolean)},[a,o]),m=yo(()=>({page:Math.ceil((e?.skip??0)/(e?.first??10)),pageSize:e?.first,count:Math.ceil((a?.count??0)/(e?.first??10))}),[a,e.skip,e.first]);return{pools:u??[],walletPools:a?.pools??[],isLoading:i||n,refresh:()=>{l(),s()},pagination:m}};import Ia from"swr";import{useBeraWallet as Ca,usePublicClient as xo}from"@berachain/wagmi/hooks";import{useCallback as Po}from"react";import{getPublicClient as To}from"@wagmi/core";import wa from"swr";import{isAddress as Pa,parseUnits as Io}from"viem";import{defaultChainId as Co}from"@berachain/config/internal";import{useBeraWallet as Eo,useConfig as So}from"@berachain/wagmi/hooks";import{ethAddress as ca,zeroAddress as fa}from"viem";import{erc20Abi as ma,ethAddress as da}from"viem";var He=async({fromAddress:e,amountIn:t,tokenIn:r,chainId:o,ensoClient:n,bundle:s,publicClient:a})=>{let i=[];if(r!==da){let l=await n.getApprovalData({fromAddress:e,tokenAddress:r,chainId:o,amount:t}),u=!0;a&&(u=await a.readContract({address:r,abi:ma,functionName:"allowance",args:[e,l.spender]})<BigInt(t)),u&&i.push({to:l.tx.to,data:l.tx.data,value:l.tx.value,gasLimit:BigInt(l.gas)})}return i.push({to:s.tx.to,data:s.tx.data,value:s.tx.value,gasLimit:BigInt(s.gas)}),i};async function Ao({fromAddress:e,amountIn:t,tokenIn:r,loanToken:o,bendVault:n,rewardVault:s,chainId:a,ensoClient:i,destinationChainId:l,slippage:u,publicClient:m}){if(!e)throw new E({property:"fromAddress",value:e,expected:"string"});o===fa&&(o=ca);let p=[{protocol:"enso",action:"route",args:{tokenIn:r,tokenOut:o,amountIn:t,slippage:u*100}}];l&&l!==a&&(p[0].args={...p[0].args,destinationChainId:l,refundReceiver:e}),p.push({protocol:"erc4626",action:"deposit",args:{amountIn:{useOutputOfCallAt:0},tokenIn:o,primaryAddress:n,tokenOut:n}}),s&&p.push({protocol:"enso",action:"balance",args:{token:n}},{protocol:"erc20",action:"approve",args:{amount:{useOutputOfCallAt:2},spender:s,token:n}},{protocol:"enso",action:"call",args:{address:s,args:[e,{useOutputOfCallAt:2}],method:"stakeOnBehalf",abi:"function stakeOnBehalf(address account, uint256 amount) external"}},{protocol:"enso",action:"balance",args:{token:s}});let d=await i.getBundleData({fromAddress:e,receiver:e,spender:e,chainId:a,routingStrategy:"router"},p),c=await He({fromAddress:e,amountIn:t,tokenIn:r,chainId:a,ensoClient:i,bundle:d,publicClient:m});return{bundle:d,transactions:c}}import{ethAddress as ga,zeroAddress as ya}from"viem";async function bo({fromAddress:e,amountIn:t,tokenIn:r,tokenOut:o,chainId:n,ensoClient:s,destinationChainId:a,slippage:i,publicClient:l}){if(!e)throw new E({property:"fromAddress",value:e,expected:"address"});o===ya&&(o=ga);let u={protocol:"enso",action:"route",args:{tokenIn:r,tokenOut:o,amountIn:t,slippage:i*100}};a&&a!==n&&(u.args={...u.args,destinationChainId:a,refundReceiver:e});let m=await s.getBundleData({fromAddress:e,receiver:e,spender:e,chainId:n,routingStrategy:"router"},[u]),p=await He({fromAddress:e,amountIn:t,tokenIn:r,chainId:n,ensoClient:s,bundle:m,publicClient:l});return{bundle:m,transactions:p}}import{EnsoClient as Aa}from"@ensofinance/sdk";import{appConfig as ba}from"@berachain/config/internal";var ha=process.env.NODE_ENV!=="development"&&process.env.NODE_ENV!=="test";function ho({useProxy:e=ha,...t}={}){let{config:r}=P(t);return new Aa({baseURL:e?`${r.bex.aggregatorsProxyUrl}/enso/api/v1/`:void 0,apiKey:e?"":ba.apiKeys.public.enso})}import*as ko from"@sentry/nextjs";import{getChains as Ra,multicall as ka}from"@wagmi/core";import{formatUnits as Ro}from"viem";async function wo({account:e,wagmiConfig:t,chainId:r,ensoClient:o}){let s=(await o.getBalances({useEoa:!0,chainId:r??"all",eoaAddress:e})).map(u=>({name:u.name,symbol:u.symbol,decimals:u.decimals,address:u.token,logoURI:u.logoUri,balance:BigInt(u.amount),formattedBalance:Ro(BigInt(u.amount),u.decimals),chainId:Number(u.chainId),price:Number(u.price)})),a=Object.groupBy(s,u=>u.chainId??0),i=await Promise.allSettled(Object.entries(a).map(async([u,m])=>{if(!m)return;let p=Ra(t).find(A=>A.id===Number(u));if(!p)return;let c=p.contracts?.multicall3?.address;if(!c)return ko.captureException(new E({property:"multicallAddress",value:c,expected:"Address",chainId:Number(u)})),m;let f=await ka(t,{chainId:Number(u),contracts:m.map(A=>cr({token:A,account:e,multicallAddress:c})),allowFailure:!0}),g=[];for(let A=0;A<m.length;A++){let R=m[A];f[A].status==="success"?g.push({...R,balance:f[A].result,formattedBalance:Ro(f[A].result,R.decimals)}):(console.error("error getting balance",f[A].error),captureException(Fe({cause:f[A].error})),g.push(R))}return g})),l=[];for(let u of i)u.status==="fulfilled"?l.push(...u.value??[]):captureException(Fe({cause:u.reason}));return l.sort((u,m)=>{let p=Number(u.formattedBalance)*(u.price??0);return Number(m.formattedBalance)*(m.price??0)-p})}function Ta({ensoClient:e,chainId:t},r){let{address:o}=Eo(),n=So(),s=!!o&&Pa(o),i=wa(s&&n?["useEnsoBalances",o,t]:null,async([,l,u])=>wo({account:l,wagmiConfig:n,chainId:u??"all",ensoClient:e}),{refreshInterval:1e4,isEnabled:s,...r?.opts});return{...i,refresh:()=>i.mutate()}}function ie({chainId:e}){let{address:t}=Eo(),r=So(),o=ho(),{data:n,refresh:s}=Ta({ensoClient:o,chainId:e}),a=Po(async({tokenIn:l,tokenOut:u,amount:m,slippage:p})=>{j(t,"fromAddress"),j(l?.address,"tokenInAddress"),ne(l?.chainId,"tokenInChainId");let d=To(r,{chainId:l.chainId});y(d);let c=Io(m,l.decimals).toString();return bo({fromAddress:t,amountIn:c,tokenIn:l?.address,tokenOut:u,chainId:l.chainId,ensoClient:o,destinationChainId:Co,slippage:p,publicClient:d})},[t,o,r]),i=Po(async({tokenIn:l,amount:u,loanToken:m,bendVault:p,rewardVault:d,slippage:c})=>{j(t,"fromAddress"),j(l?.address,"tokenInAddress"),ne(l?.chainId,"tokenInChainId");let f=To(r,{chainId:l.chainId});y(f);let g=Io(u,l.decimals).toString();return Ao({fromAddress:t,amountIn:g,tokenIn:l.address,loanToken:m,bendVault:p,rewardVault:d,chainId:l.chainId,ensoClient:o,destinationChainId:Co,slippage:c,publicClient:f})},[t,o,r]);return{tokens:n,getBendTransactionRequests:i,getZapTransactionRequests:a,refreshTokens:s}}function yy({tokenIn:e,loanTokenAddress:t,loanTokenPrice:r,bendVault:o,rewardVault:n,amount:s,slippage:a,chainId:i},l){let{tokens:u,refreshTokens:m}=ie({chainId:i}),{data:p,error:d}=vo({tokenIn:e,loanTokenAddress:t,loanTokenPrice:r,bendVault:o,rewardVault:n,amount:e?.formattedBalance,slippage:a,chainId:e?.chainId},l),c=p?.transactions?.reduce((R,h)=>R+BigInt(h.value??0n),0n)??0n,f=u?.find(R=>k(R,"ETH")&&R.chainId===e?.chainId),g=BigInt(c)-BigInt(f?.balance??0n),A=vo({tokenIn:e,loanTokenAddress:t,loanTokenPrice:r,bendVault:o,rewardVault:n,amount:s,slippage:a,chainId:i},l);return{...A,nativeFee:g,error:d||A.error,tokens:u,refresh:()=>{A.mutate(),m()}}}function vo({tokenIn:e,loanTokenAddress:t,loanTokenPrice:r,bendVault:o,rewardVault:n,amount:s,slippage:a,chainId:i},l){let{address:u}=Ca(),{getBendTransactionRequests:m}=ie({chainId:i}),p=!!e&&!!t&&!!o&&!!s&&!!u&&!k(t,e?.address)&&e.chainId&&Number(s)>0&&!!a,d=xo({chainId:i}),c=xo();return Ia(p?["useBendTransactionRequests",e,t,r,o,n,s,a]:null,async([,g,A,R,h,b,T,w])=>{if(!d||!c)throw new E({property:"publicClient",value:d,expected:"PublicClient"});let I=await m({amount:T,tokenIn:g,loanToken:A,bendVault:h,rewardVault:b,slippage:w}),C=I.bundle.amountsOut,v=b?b.toLowerCase():h.toLowerCase(),M=C[v],W=await me({sharesAmount:BigInt(M),vaultAddress:h,publicClient:c}),O=g?.price&&R?rr(g?.price?.toString(),R?.toString(),T,W.formatted):void 0;return{supplyAmount:W,priceImpact:O,...I}},{...l?.opts,refreshInterval:1e5})}import Ea from"swr";var ky=({tokenIn:e,tokenOut:t,amount:r,slippage:o,chainId:n})=>{let{getZapTransactionRequests:s,refreshTokens:a,tokens:i}=ie({chainId:n}),l=!!e&&!!t&&!!r&&Number(r)>0&&!!o,m=Ea(l?["useZapTransactionRequests",e,t,r,o]:null,async([,p,d,c,f])=>(ne(p,"tokenIn"),j(d?.address,"tokenOutAddress"),Ke(c,"amount"),Ke(f,"slippage"),s({amount:c,tokenIn:p,tokenOut:d.address,slippage:f})),{refreshInterval:1e5,isEnabled:l});return{...m,tokens:i,refresh:()=>{m.mutate(),a()}}};import{useCallback as ft,useEffect as Oa,useState as Da}from"react";import Sa from"gray-matter";import{encodeFunctionData as We,erc20Abi as xa,parseAbiItem as va,toHex as Ba}from"viem";function Ve(e){return Object.values(e).some(t=>Array.isArray(t)?t.some(r=>typeof r=="object"&&r!==null?Ve(r):!!r):typeof t=="object"&&t!==null?Ve(t):!!t)}var Bo=({proposal:e,currentTopic:t,onError:r})=>{let o=vt(e,t),n=[];if(o.actions=e.actions.map((i,l)=>{let u={};if(u.target=N({fieldOrType:"address",value:i.target}),i.type==="custom-action")if(i.input==="ABI")if(u.ABI=N({fieldOrType:"abi",value:i.ABI}),!i.functionSignature)u.functionSignature="Required";else try{let p=va(i.functionSignature);p.type!=="function"?(console.error("parsedSignatureAbi is not a function",p),u.functionSignature="Invalid ABI"):(u.args=p.inputs.map((d,c)=>{try{return"components"in d?N({fieldOrType:d.type,value:i.args?.[c],components:d.components}):N({fieldOrType:d.type,value:i.args?.[c]})}catch{return null}}),u.args.some(d=>d)||(n[l]=We({abi:[p],args:i.args})))}catch{u.functionSignature="Invalid ABI"}else if(i.input==="rawCalldata")u.rawCalldata=N({fieldOrType:"hex",value:i.rawCalldata}),n[l]=i.rawCalldata;else if(i.input==="message")u.message=N({fieldOrType:"string",value:i.message}),n[l]=Ba(i.message);else throw new Error("Invalid input type");else if(i.type==="whitelist-reward-vault"||i.type==="blacklist-reward-vault"){if(u.vault=N({fieldOrType:"address",value:i.vault}),!u.vault){let p=i.type==="whitelist-reward-vault";n[l]=We({abi:$,functionName:"setVaultWhitelistedStatus",args:[i.vault,p,""]})}}else i.type==="whitelist-reward-vault-incentive"?(u.token=N({fieldOrType:"address",value:i.token}),u.minIncentiveRate=N({fieldOrType:"uint256",value:i.minIncentiveRate}),u.managerAddress=N({fieldOrType:"address",value:i.managerAddress}),!u.token&&!u.minIncentiveRate&&!u.managerAddress&&(n[l]=We({abi:ce,functionName:"whitelistIncentiveToken",args:[i.token,BigInt(i.minIncentiveRate),i.managerAddress]}))):i.type==="erc20-transfer"&&(u.amount=N({fieldOrType:"uint256",value:i.amount}),u.to=N({fieldOrType:"address",value:i.to}),!u.amount&&!u.to&&(n[l]=We({abi:xa,functionName:"transfer",args:[i.to,BigInt(i.amount)]})));return Ve(u)?u:null}),r?.(o),Object.getOwnPropertyNames(o).map(i=>o[i]).some(i=>Array.isArray(i)?i.filter(l=>l).length>0:i===null?!1:!!i)){console.warn("Proposal has errors",o);return}if(n.length===0)throw new Error("No actions submitted in proposal");let s=new URL(e.forumLink),a=Sa.stringify(e.description,{title:e.title,topics:Array.from(e.topic.values()),forumLink:s.toString(),version:"1.0.0","content-encoding":"utf-8","content-type":"text/markdown",actions:e.actions.map(i=>{let l={type:i.type};return i.type==="custom-action"&&(l.inputType=i.input),l})});return[e.actions.map(i=>i.target),e.actions.map(i=>i.value??0n),n,a]};var Oo={type:"custom-action",target:"",ABI:"",value:0n,functionSignature:"",args:[],input:"ABI",rawCalldata:"0x",message:""},La=({initialData:e={},currentTopic:t,onError:r})=>{let[o,n]=Da({title:"",description:"",forumLink:"",actions:[Oo],...e,topic:new Set});Oa(()=>{n(l=>({...l,topic:new Set([t.id])}))},[t]);let s=ft(()=>{n(l=>({...l,actions:[...l.actions,Oo]}))},[]),a=ft(l=>{n(u=>{let m=[...u.actions];return m.splice(l,1),{...u,actions:m}})},[n]),i=ft(()=>o?Bo({proposal:o,currentTopic:t,onError:r}):void 0,[o,t]);return{proposal:o,setProposal:n,addProposalAction:s,removeProposalAction:a,computeParamsAndErrors:i}};import Ha from"swr/immutable";import{formatUnits as Va}from"viem";import{useBeraWallet as Wa,usePublicClient as _a}from"@berachain/wagmi/hooks";import Na from"swr/immutable";import{usePublicClient as Ua}from"@berachain/wagmi/hooks";var Do=({proposalId:e})=>{let t=Ua();return Na(t&&e?["useProposalSnapshot",e]:null,async([,o])=>{y(t);let{config:n}=P({chainId:t.chain.id});return(await t.readContract({abi:_,address:n.governance.governor,functionName:"proposalSnapshot",args:[BigInt(o)]})).toString()})};var $y=e=>{let{address:t}=Wa(),r=_a(),o=e.wallet||t,{data:n}=Do({proposalId:e.proposalId}),s=e.timepoint||n;return Ha(s&&r&&o?["useGetPastVotes",s,o]:null,async([,i,l])=>{y(r);let{config:u}=P({chainId:r.chain.id});if(Number(i)>Date.now()/1e3)throw new Error("timepoint is in the future");let m=await r.readContract({abi:G,address:u.tokens.bgt,functionName:"getPastVotes",args:[l,BigInt(i)]});return Va(m,18)})};import Qa from"swr";import{isAddress as Ya}from"viem";import{useBeraWallet as Ma,usePublicClient as Ga}from"@berachain/wagmi/hooks";var rA=({proposalId:e,wallet:t})=>{let{address:r}=Ma(),o=Ga(),n=t||r;return Qa(o&&n&&Ya(n)?["useHasVoted",e,n]:null,([,s,a])=>{y(o);let{config:i}=P({chainId:o.chain.id});return o.readContract({address:i.governance.governor,abi:_,functionName:"hasVoted",args:[BigInt(s),a]})})};import Fa from"swr";import{usePublicClient as Ka}from"@berachain/wagmi/hooks";var Lo="0xfd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783";var mA=({account:e,...t})=>{let r=Ka(),{config:o}=P(t);return Fa(e&&r?["useCancellerRole",e]:null,async([,s])=>(y(r),await r.readContract({abi:ke,address:o.governance.timelock,functionName:"hasRole",args:[Lo,s]})),{refreshInterval:18e4,revalidateOnFocus:!1})};import{useEffect as No,useMemo as qa,useState as $a}from"react";import Za from"swr/infinite";import{Proposal_OrderBy as za,ProposalStatus as V}from"@berachain/graphql/governance";var Uo=10,ja=e=>{switch(e){case V.QuorumNotReached:return[V.Active,V.Pending];case V.PendingQueue:case V.Defeated:return[V.Active];case V.PendingExecution:return[V.InQueue];default:return[e]}};function Ja(e,t={}){let r=2*(t.perPage??Uo);return(o,n)=>{if(o!==0&&n&&n.length<r)return null;let s=t.status_in?.flatMap(ja).filter((a,i,l)=>l.indexOf(a)===i);return["usePollAllProposals",o,e,t.where,s,t.orderBy,t.orderDirection,r,t.text]}}function AA(e,t){let r=t?.autoRefresh??!1,o=e.perPage??Uo,n=2*o,s=Ja(e.topic,e);async function a(c){if(!c)return[];let[,f,g,A,R,h,b,T,w]=c;return(await xt({where:{topics_contains:[g],status_in:R?.length?R:void 0,...A},orderBy:h,orderDirection:b,text:w,perPage:T,offset:f*T})??[]).filter(Boolean)}let i=Za(s,a,{initialSize:1,refreshInterval:t?.opts?.refreshInterval??18e4,...t?.opts}),l=qa(()=>{if(!i.data)return[];let c=i.data.flat().filter(g=>g?e.status_in?.length?e.status_in.includes(g.status):!0:!1).sort((g,A)=>{if(!e.text)return 0;if(e.orderBy===za.CreatedAt){let R=Number(A.createdAt)-Number(g.createdAt);return e.orderDirection==="asc"?R:-R}return 0}),f=[];for(let g=0;g<c.length;g+=o)f.push(c.slice(g,g+o));return f},[i.data,e,o]),u=i.data?.[i.data.length-1],m=!!u&&u.length===n,[p,d]=$a(Date.now()/1e3);return No(()=>{if(!r)return;let c=setInterval(()=>{d(Date.now()/1e3)},1e4);return()=>clearInterval(c)},[r]),No(()=>{if(!i.data)return;let c=!1;for(let f of i.data.flat()){switch(f.status){case V.Pending:p>=Number(f.voteStartAt)&&(c=!0);break;case V.Active:p>=Number(f.voteEndAt)&&(c=!0);break;case V.InQueue:Date.now()/1e3+1>=Number(f.queueEnd)&&(c=!0);break;default:break}if(c)break}c&&i.mutate()},[i.data,p]),{...i,data:l,hasMore:m}}import{useEffect as Ho,useState as Xa}from"react";import ei from"swr";import{ProposalStatus as gt}from"@berachain/graphql/governance";import{usePublicClient as ti}from"@berachain/wagmi/hooks";var IA=(e,t)=>{let r=t?.autoRefresh??!1,o=ti(),s=ei(e&&o?["usePollProposal",e]:null,([,l])=>(y(o),Ot({proposalId:l,client:o})),{...t?.opts,refreshInterval:t?.opts?.refreshInterval??18e4}),[a,i]=Xa(Date.now());return Ho(()=>{if(!r)return;let l=setInterval(()=>{i(Date.now()/1e3)},1e4);return()=>clearInterval(l)},[]),Ho(()=>{if(s.data!==void 0)switch(s.data.status){case gt.Pending:a>=Number(s.data.voteStartAt)&&s.mutate();break;case gt.Active:a>=Number(s.data.voteEndAt)&&s.mutate();break;case gt.InQueue:Date.now()/1e3+1>=Number(s.data.queueEnd)&&s.mutate();break}},[s.data?.status,a]),{...s,refresh:()=>s?.mutate?.()}};import ri from"swr";import{formatEther as oi}from"viem";import{usePublicClient as ni}from"@berachain/wagmi/hooks";var OA=e=>{let t=ni(),o=ri(t?["usePollProposalThreshold",e]:null,async([,n])=>{y(t);let s=await t.readContract({address:n,abi:_,functionName:"proposalThreshold"});return{votesThreshold:oi(s)}},{refreshInterval:18e4});return{...o,refresh:o.mutate}};import si from"swr/infinite";var _e=1e3,UA=(e,t)=>si(ai(e,t),async([r,o])=>Lt({variables:{...e,limit:_e,offset:_e*o}}),{parallel:!0,initialSize:Number.POSITIVE_INFINITY}),ai=({...e},t)=>r=>r>Math.floor(t/_e)?null:["usePollProposalVotes",r,_e,e.proposalId,e.orderBy,e.orderDirection];import ii from"swr";import{formatEther as li}from"viem";import{useBeraWallet as ui,usePublicClient as pi}from"@berachain/wagmi/hooks";var GA=e=>{let{address:t}=ui(),r=pi(),n=ii(t?["usePollUserDelegates",t]:null,async([,s])=>{y(r);let{config:a}=P({chainId:r.chain.id});if(!r||!s)throw new Error("usePollUserDelegates needs publicClient and account");let[i,l]=await Promise.all([r.readContract({address:a.tokens.bgt,abi:G,functionName:"delegates",args:[s]}),r.readContract({address:a.tokens.bgt,abi:G,functionName:"getVotes",args:[s]})]);return{delegate:i,currentVotes:li(l)}},{...e?.opts,refreshInterval:e?.opts?.refreshInterval??18e4});return{...n,refresh:()=>n?.mutate?.()}};import mi from"swr";import{usePublicClient as di,useTransactionReceipt as ci}from"@berachain/wagmi/hooks";var ZA=e=>{let{data:t}=ci({hash:e}),r=di();return mi(t&&r?["useProposalFromTx",e]:null,async([,s])=>{if(!t)throw new Error("Transaction not found");if(t.transactionHash!==s)throw new Error("Transaction hash mismatch");return Dt({tx:t,publicClient:r})})};import fi from"swr/immutable";import{usePublicClient as gi}from"@berachain/wagmi/hooks";var yi={0:"pending",1:"active",2:"canceled",3:"defeated",4:"succeeded",5:"queued",6:"expired",7:"executed"},tb=({proposalId:e,governorAddress:t})=>{let r=gi();return fi(t&&r&&e?["useProposalState",e]:null,async([,n])=>{y(r);let s=await r.readContract({abi:_,address:t,functionName:"state",args:[BigInt(n)]});return yi[s]})};import Ai from"swr";import{usePublicClient as bi}from"@berachain/wagmi/hooks";var hi={0:"unset",1:"waiting",2:"ready",3:"done"},ib=({proposalTimelockId:e,timelockAddress:t})=>{let r=bi();return Ai(t&&r&&e?["useProposalTimelockState",e,t]:null,async([,n,s])=>{y(r);let a=await r.readContract({abi:ke,address:s,functionName:"getOperationState",args:[n]});return hi[a]},{refreshInterval:18e4})};import ki from"swr";import{usePublicClient as wi}from"@berachain/wagmi/hooks";import{formatEther as Ri}from"viem";async function yt({at:e,publicClient:t,...r}){let{config:o}=P(r);y(t);let n=await t.readContract({address:o.governance.governor,abi:_,functionName:"quorum",blockTag:"pending",args:[BigInt(e??Math.floor(Date.now()/1e3))]});return Ri(n)}function Ab({at:e},{isEnabled:t=!0}){let r=Math.floor(Date.now()/1e3),o=wi(),n=t&&o?["useQuorum",Number(e)>r?"now":e]:null,s=ki(n,async([,a])=>a==="now"?yt({publicClient:o}):yt({at:a,publicClient:o}));return{...s,data:s.data?Number(s.data):void 0}}import Ti from"swr";import{usePublicClient as Ii}from"@berachain/wagmi/hooks";import Pi from"swr";function ee({priceFeedMap:e},t){let r=e?Object.values(e):null,o=(t?.opts?.isEnabled??!0)&&r?["usePythLatestPrices",r]:null;return Pi(o,async([s,a])=>await Qt({priceFeedId:a}))}var Vo=({asset:e,amount:t,isMint:r,isBasketModeEnabled:o},n)=>{let s=Ii(),{priceFeedMap:a,flags:i}=B(),{data:l}=ee({priceFeedMap:e?.address&&a?{[e.address]:a[e.address]}:void 0},{opts:{isEnabled:i.isPythWrapperEnabled&&!!e?.address}}),u=t&&e&&(i.isPythWrapperEnabled&&l?.prices.length||!i.isPythWrapperEnabled)?["useCappedGlobally",t,e,l,i.isPythWrapperEnabled,o]:null,m=Ti(u,async([p,d,c,f,g,A])=>A?!1:(y(s),await Vt({client:s,asset:c,amount:r?d:`-${d}`,isMint:r,latestPrices:f,isPythWrapperEnabled:g})),{...n?.opts,refreshInterval:0});return{...m,refresh:()=>void m.mutate()}};import Ci from"swr";import{usePublicClient as Ei}from"@berachain/wagmi/hooks";var Wo=({asset:e,amount:t,isMint:r,isBasketModeEnabled:o},n)=>{let s=Ei(),{collateralList:a,referenceCollateral:i}=B(),u=Ci(e&&t?["useCappedRelatively",e,t,a,i]:null,async([m,p,d,c,f])=>{if(o)return!1;if(y(s),!r){let g=`-${d}`;return f.address!==p?!1:(await Promise.all(c.map(R=>$e({client:s,asset:R.address,amount:g,isMint:r,referenceCollateral:f})))).some(R=>R)}return await $e({client:s,asset:p,amount:d,isMint:r,referenceCollateral:f})},{refreshInterval:0,...n?.opts});return{...u,refresh:()=>void u.mutate()}};import Si from"swr";import{usePublicClient as xi}from"@berachain/wagmi/hooks";var Wb=({collateralList:e},t)=>{let r=xi(),n=Si(r&&e?["useCollateralWeights",e]:void 0,async([s,a])=>(y(r),await Ut({client:r,collateralList:a})),{...t?.opts,refreshInterval:t?.opts?.refreshInterval??1e5});return{...n,refresh:()=>void n.mutate()}};import{useMemo as At}from"react";import te from"bignumber.js";import vi from"swr";import{useBeraWallet as Bi,usePublicClient as Oi}from"@berachain/wagmi/hooks";var _o=()=>{let e=Oi(),{address:t}=Bi(),{collateralList:r}=B(),n=vi(t&&r&&e?["useHoneyBalances",t,r]:null,async([s,a,i])=>{y(e);let l=[...i??[],pe({})];return(await Re({account:a,tokenList:l,publicClient:e}))?.reduce((p,d)=>(p[d.address]=d,p),{})},{refreshInterval:1e4});return{...n,refresh:()=>n.mutate()}};import Di from"swr";import{usePublicClient as Li}from"@berachain/wagmi/hooks";var Qo=e=>{let t=Li(),{collateralList:r}=B(),n=Di(r&&t?["useHoneyVaultsBalance",r]:null,async([s,a])=>(y(t),await ge({client:t,collateralList:a})),{...e?.opts,refreshInterval:1e5});return{...n,refresh:()=>void n.mutate()}};import Ni from"swr";import{usePublicClient as Ui}from"@berachain/wagmi/hooks";var Yo=({collateral:e},t)=>{let r=Ui(),{priceFeedMap:o,flags:n}=B(),{data:s}=ee({priceFeedMap:e?.address?{[e.address]:o[e.address]}:void 0},{opts:{isEnabled:n.isPythWrapperEnabled&&!!e?.address}}),a=r&&e&&(n.isPythWrapperEnabled&&s?.prices.length||!n.isPythWrapperEnabled)?["useIsBadCollateralAsset",e,s,n.isPythWrapperEnabled]:null,i=Ni(a,async([l,u,m,p])=>(y(r),await Ht({client:r,collateral:u,latestPrices:m,isPythWrapperEnabled:p})),{...t?.opts,refreshInterval:t?.opts?.refreshInterval??1e5});return{...i,refresh:()=>void i.mutate()}};var Mo=({lowerThan:e,vaultsBalances:t,state:r,collateralList:o})=>{if(!(r.actionType==="mint")&&!r.isBasketModeEnabled){let s=t?.find(l=>l.address.toLowerCase()===r.collaterals[0].address.toLowerCase()),a=new te(s?.formattedBalance??"0").lte(e),i=o.filter(l=>{let u=t?.find(m=>m.address.toLowerCase()===l.address.toLowerCase());return new te(u?.formattedBalance??"0").lte(e)});return{isLow:a,isLiquidityLowCollaterals:i}}return{isLow:!1,isLiquidityLowCollaterals:[]}},Hi=({vaultsBalances:e,redeemedVaultBalance:t,state:r,collateralList:o})=>{if(!(r.actionType==="mint")&&e&&t){let s=o.filter(a=>{let i=e.find(u=>u.address.toLowerCase()===a.address.toLowerCase()),l=r.toAmount[r.collaterals.indexOf(a)];return new te(i?.formattedBalance??"0").lt(l??"0")});return{isMore:!!s.find(a=>a.address.toLowerCase()===r.collaterals[0].address.toLowerCase()),isRedeemMoreThanLiquidityCollaterals:s}}return{isMore:!1,isRedeemMoreThanLiquidityCollaterals:void 0}};function Vi({state:e,honeyBalances:t,...r}){let{config:o}=P(r),n=e.actionType==="mint";return!n&&t?new te(e.fromAmount[0]).gt(t[o.honey.token]?.formattedBalance??"0"):n&&t&&e.isBasketModeEnabled!==void 0&&e.collaterals.length>0?e.isBasketModeEnabled?e.collaterals.some((s,a)=>{let i=e.fromAmount[a];return new te(t[s.address]?.formattedBalance).lt(i)}):new te(t[e.collaterals[0].address]?.formattedBalance).lt(e.fromAmount[0]):!1}var yh=({actionType:e,collaterals:t,fromAmount:r,toAmount:o,isBasketModeEnabled:n})=>{let s={actionType:e,collaterals:t,fromAmount:r,toAmount:o,isBasketModeEnabled:n},a=e==="mint",{data:i}=Yo({collateral:t[0]}),{collateralList:l}=B(),{isBlacklisted:u,isDepegged:m}=i??{isBlacklisted:!1,isDepegged:!1},{data:p}=Vo({asset:t[0],amount:a?r[0]:o[0],isMint:a,isBasketModeEnabled:n}),{data:d}=Wo({asset:t[0]?.address,amount:a?r[0]:o[0],isMint:a,isBasketModeEnabled:n}),{data:c}=_o(),{data:f}=Qo(),g=t[0]?.address,A=f?.find(I=>I.address.toLowerCase()===g.toLowerCase()),[R,h]=At(()=>{let I=Mo({lowerThan:1,vaultsBalances:f,state:s,collateralList:l}),C=Mo({lowerThan:1e3,vaultsBalances:f,state:s,collateralList:l});return[I,C]},[f,s]),{isMore:b,isRedeemMoreThanLiquidityCollaterals:T}=At(()=>Hi({vaultsBalances:f,redeemedVaultBalance:A,state:s,collateralList:l}),[f,A,s,l]),w=At(()=>Vi({state:s,honeyBalances:c}),[s,c]);return{isLiquidityDepleted:R.isLow,isLiquidityDepletedCollaterals:R.isLiquidityLowCollaterals,isRedeemMoreThanLiquidity:b,isRedeemMoreThanLiquidityCollaterals:T,isLowLiquidity:h.isLow,isLiquidityLowCollaterals:h.isLiquidityLowCollaterals,isBlacklisted:s.isBasketModeEnabled?!1:u,isDepegged:s.isBasketModeEnabled?!1:m,isCappedGlobally:p,isCappedRelatively:d,isExceedingBalance:w}};import Wi from"swr";function Rh({days:e}){let t=Wi(["useHoneyChartData",e],async([r,o])=>await Nt({days:o}));return{...t,refresh:()=>t.mutate()}}import Go from"bignumber.js";import _i from"swr";function Ih(){let e=_i(["useHoneyGlobalData"],()=>Wt()),t=e.data?.honeySnapshots.reduce((r,o)=>new Go(o.totalVolume).plus(r),new Go(0));return{...e,data:{...e.data,dailyVolume:t},refresh:()=>e.mutate()}}import{useEffect as Mi,useReducer as Gi}from"react";import{formatUnits as Ko}from"viem";import{defaultChainId as Fi}from"@berachain/config/internal";import Qi from"swr";import{usePublicClient as Yi}from"@berachain/wagmi/hooks";function Fo({state:e},t){let r=Yi(),{priceFeedMap:o,flags:n,collateralList:s}=B(),{data:a}=ee({priceFeedMap:o},{opts:{isEnabled:n.isPythWrapperEnabled&&!!s.length}}),i=e.actionType==="mint",l=r&&e&&s.length>0&&(n.isPythWrapperEnabled&&a?.prices.length||!n.isPythWrapperEnabled)?["useIsBasketModeEnabled",i,a,n.isPythWrapperEnabled,s]:null,u=Qi(l,async([m,p,d,c,f])=>(y(r),await ye({client:r,isMint:p,collateralList:f,latestPrices:d,isPythWrapperEnabled:c})),{...t?.opts,refreshInterval:t?.opts?.refreshInterval??1e4});return{...u,data:u.data,refresh:()=>void u.mutate()}}var Ki={actionType:"mint",collaterals:[],fromAmount:[],toAmount:[],isBasketModeEnabled:!1,isTyping:!1,isSubmitting:!1,isLoading:!1};function qo(e,t){switch(t.type){case"RESET_AMOUNTS":return{...e,fromAmount:[],toAmount:[]};case"ACTION_TYPE_CHANGE":return qo({...e,actionType:t.value},{type:"RESET_AMOUNTS"});case"COLLATERALS_CHANGE":return{...e,collaterals:t.value,fromAmount:[],toAmount:[]};case"FROM_AMOUNT_CHANGE":{let r=e.fromAmount;return r[t.index]=t.value,{...e,fromAmount:r}}case"TO_AMOUNT_CHANGE":{let r=e.toAmount;return r[t.index]=t.value,{...e,toAmount:r}}case"PREVIEW_CHANGE":{let r=t.value,o=e.actionType==="mint",n=e.collaterals.map((a,i)=>t.changedAsset===a.address?o?e.fromAmount[i]:e.toAmount[i]:r.collaterals[a.address]?Ko(r.collaterals[a.address],a.decimals):e.isBasketModeEnabled?"0":""),s=k(t.changedAsset,"HONEY",{chainId:Fi})?o?e.toAmount[0]:e.fromAmount[0]:r.honey?Ko(r.honey,18):e.isBasketModeEnabled?"0":"";return{...e,fromAmount:o?n:[s],toAmount:o?[s]:n}}case"IS_BASKET_MODE_ENABLED_CHANGE":return{...e,isBasketModeEnabled:t.value,fromAmount:[],toAmount:[]};case"IS_TYPING_CHANGE":return{...e,isTyping:t.value};case"IS_SUBMITTING_CHANGE":return{...e,isSubmitting:t.value};case"IS_LOADING_CHANGE":return{...e,isLoading:t.value};default:throw new Error(`Unknown action type: ${t}`)}}var _h=()=>{let{collateralList:e}=B(),[t,r]=Gi(qo,Ki,n=>({...n,collaterals:e})),{data:o}=Fo({state:t});return Mi(()=>{o!==void 0&&t.isBasketModeEnabled!==o&&(r({type:"IS_LOADING_CHANGE",value:!0}),r({type:"IS_BASKET_MODE_ENABLED_CHANGE",value:o}),r({type:"IS_LOADING_CHANGE",value:!1}))},[o]),{state:t,dispatch:r}};import qi from"swr/immutable";import{usePublicClient as $i}from"@berachain/wagmi/hooks";var qh=({pythPriceFeedCalldata:e,tokenListLength:t},r)=>{let o=$i(),n=(r?.opts?.isEnabled??!0)&&e&&e.length>0?["usePythUpdateFee",e]:null,{data:s=Yt(t),isLoading:a}=qi(n,async([i,l])=>(y(o),await Mt({client:o,priceFeedId:l})));return{QUERY_KEY:n,data:s,isLoading:a}};import{useMemo as Zi}from"react";function jh(e){return Zi(()=>{if(e)return qt(e)},[e])}import zi from"swr";import{formatEther as ji}from"viem";import{useBeraWallet as Ji,usePublicClient as Xi}from"@berachain/wagmi/hooks";var el=e=>{let{address:t}=Ji(),r=Xi(),n=zi(t&&r?["useBgtUnstakedBalance",t]:null,async([,s])=>{y(r);let{config:a}=P({chainId:r.chain.id}),i=await r.readContract({address:a.tokens.bgt,abi:G,functionName:"unboostedBalanceOf",args:[s]});return ji(i)},{...e,refreshInterval:e?.opts?.refreshInterval??1e5});return{...n,refresh:()=>n.mutate()}};import tl from"swr";import{formatUnits as rl}from"viem";import{useBeraWallet as ol,usePublicClient as nl}from"@berachain/wagmi/hooks";var sl=()=>{let{address:e}=ol(),t=nl(),o=tl(e&&t?["useClaimableFees",e]:null,async([,n])=>{y(t);let{config:s}=P({chainId:t.chain.id}),a=await ar({account:n,vaultAddress:s.pol.staker,publicClient:t});return rl(a,18)},{refreshInterval:18e4*2});return{...o,refresh:()=>o?.mutate?.()}};import al from"swr";import{GetStakeBeraVaultEarningsByOwner as il}from"@berachain/graphql/pol/api";import{useBeraWallet as ll}from"@berachain/wagmi/hooks";function AR({receiptToken:e},t){let{address:r}=ll(),o=e.address&&r?["useEarnedStakedBeraVault",e.address,r]:null,n=al(o,async([s,,a])=>(await q("api",{}).query({query:il,variables:{owner:a}})).data?.polGetStakeBeraVaultEarningsByOwner?.earnings,{refreshInterval:18e4,...t?.opts});return{...n,refresh:n.mutate}}import{GqlRewardVaultOrderBy as dl,GqlRewardVaultOrderDirection as cl}from"@berachain/graphql/pol/api";import ul from"swr";import{usePublicClient as pl}from"@berachain/wagmi/hooks";var ml=(e,t=!1)=>["useRewardVaults",e,t],bt=(e,t)=>{let r=ml(e.filter,e.onChainIncentives),o=pl(),n=ul(t?.opts?.isEnabled??!0?r:null,async([,s,a])=>await $t({filter:s,publicClient:a?o:void 0}),{...t?.opts});return{...n,refresh:n.mutate}};var IR=(e={},{isEnabled:t=!0}={})=>{let r=bt({filter:{orderBy:dl.Apr,orderDirection:cl.Desc,pageSize:1,where:e}},{opts:{refreshInterval:0,revalidateOnFocus:!1,refreshWhenOffline:!1,isEnabled:t}});return{isLoading:r.isLoading,highestApr:r.data?.gaugeList[0].dynamicData?.apr,refresh:r.mutate}};import fl from"swr";import{usePublicClient as gl}from"@berachain/wagmi/hooks";var $o=e=>{let t=gl(),r=fl(t?"usePollGlobalData":null,async()=>(y(t),Zt(t)),{revalidateOnFocus:!1,...e?.opts});return{...r,refresh:r.mutate}};import yl from"swr/immutable";var Al=()=>"usePollMarkets",LR=e=>{let t=Al(),r=yl(t,async()=>await zt(),{...e?.opts});return{...r,refresh:()=>r.mutate()}};import bl from"swr/immutable";import{isAddress as Zo}from"viem";import{usePublicClient as hl}from"@berachain/wagmi/hooks";function QR({receiptTokenAddress:e,account:t,version:r},o){let n=hl(),s=e&&Zo(e)&&t&&n&&Zo(t)&&r?["useQueuedBeraUnlock",e,t,r]:null,a=bl(s,async([,i,l,u])=>(y(n),await or(i,l,n,u)),{refreshInterval:1e4,...o?.opts});return{...a,refresh:()=>a.mutate()}}import Rl from"swr";import{isAddress as kl}from"viem";import{usePublicClient as wl}from"@berachain/wagmi/hooks";var $R=({address:e},t)=>{let r=e?["useRewardTokenToBeraRate",e]:null,o=wl();return Rl(r,async([n,s])=>{if(!s||!kl(s))throw new E({property:"address",value:s,expected:"Address"});return y(o),Jt({address:s,publicClient:o})},{...t?.opts})};import vl from"swr";import Tl from"swr";import{erc20Abi as Il,formatUnits as Cl,isAddress as El}from"viem";import{usePublicClient as Sl}from"@berachain/wagmi/hooks";import{erc20Abi as Qe,formatUnits as Pl}from"viem";async function Ye({address:e,publicClient:t}){y(t);let[r,o,n,s]=await t.multicall({contracts:[{address:e,abi:Qe,functionName:"decimals"},{address:e,abi:Qe,functionName:"name"},{address:e,abi:Qe,functionName:"symbol"},{address:e,abi:Qe,functionName:"totalSupply"}],allowFailure:!0});return{address:e,decimals:r.result,name:o.result,symbol:n.result,totalSupply:s.result!==void 0?r.status==="success"?Pl(s.result,r.result):s.result.toString():void 0}}var xl=e=>e&&El(e)?["onChainRewardVault",e.toLowerCase()]:null,zo=({address:e},t)=>{let r=Sl(),o=t.opts?.isEnabled??!0,n=xl(e);return Tl(o&&r?n:null,async([,s])=>{y(r);let{config:a}=P({chainId:r.chain.id}),i=await be({address:s,publicClient:r}),[l,u,m]=await Promise.all([Ae({address:s,stakingToken:i,publicClient:r}),r.readContract({address:a.pol.beraChef,abi:$,functionName:"isWhitelistedVault",args:[s]}),r.readContract({address:i,abi:Il,functionName:"balanceOf",args:[s]})]),[p,d]=await Promise.all([Ye({address:i,publicClient:r}),Promise.all(l.map(c=>X({address:c.token,publicClient:r})))]);if(!p)throw new Error("Staking token not found");return{id:s,address:s,vaultAddress:s,stakingToken:{address:i,name:p.name??"",symbol:p.symbol??"",decimals:p.decimals??0},stakingTokenAmount:Cl(m,p.decimals??18),isVaultWhitelisted:u,activeIncentives:l.map((c,f)=>({active:!!c.remainingAmount,remainingAmount:c.remainingAmount,remainingAmountUsd:"0",incentiveRate:c.incentiveRate,incentiveRateUsd:"0",tokenAddress:c.token,token:d[f]}))}})};var Bl=e=>e?["useRewardVault",e.toLowerCase()]:null,ck=(e,t)=>{let r=Bl(e),o=vl(r,async([a,i])=>Xt({address:i}),{...t?.opts}),n=t?.opts?.isEnabled??((!!o.error||!o.isLoading)&&!o.data),s=zo({address:e},{opts:{...t?.opts,isEnabled:n}});return{data:s.data??o.data,error:s.error??o.error,isLoading:s.isLoading||o.isLoading,isValidating:s.isValidating??o.isValidating,refresh:()=>{o.mutate(),s.mutate()}}};import Ol from"swr";import{usePublicClient as Dl}from"@berachain/wagmi/hooks";function hk({address:e,stakingToken:t}){let r=Dl(),n=Ol(r&&e&&t?["useRewardVaultIncentives",e,t]:null,async([,s,a])=>(y(r),await Ae({address:s,stakingToken:a,publicClient:r})));return{...n,refresh:()=>n?.mutate?.()}}import Ll from"swr";import{usePublicClient as Nl}from"@berachain/wagmi/hooks";var Ul=(e,t)=>{let r=Nl(),n=Ll(r&&e?["useRewardVaultRewards",e]:null,async([,s])=>(y(r),await Kt(s,r)),{...t?.opts});return{...n,refresh:()=>n?.mutate?.()}};import Hl from"swr";var Sk=({range:e})=>{let r=Hl(e?["useStakedBeraSnapshots",e]:null,([,o])=>tr({range:o}));return{...r,refresh:()=>r.mutate()}};import Vl from"swr";import{useBeraWallet as Wl,usePublicClient as _l}from"@berachain/wagmi/hooks";var Ql=(e,t)=>{let{address:r}=Wl(),o=_l(),n=r&&o&&e.vaultAddress?["useUserVaultInfo",r,e.vaultAddress]:null,s=Vl(n,async([,a,i])=>(y(o),ir({account:a,vaultAddress:i,publicClient:o})),{...t,refreshInterval:t?.opts?.refreshInterval??1e5});return{...s,refresh:()=>s.mutate()}};import Yl from"swr";import{useBeraWallet as Ml,usePublicClient as Gl}from"@berachain/wagmi/hooks";var Fl=e=>{let{address:t}=Ml(),r=Gl(),n=Yl(t&&r?["useUserVaults",t]:null,async([,s])=>(y(r),await lr({account:s,publicClient:r})),{...e,refreshInterval:e?.opts?.refreshInterval??1e5,keepPreviousData:!0});return{...n,refresh:()=>n?.mutate?.()}};import Kl from"swr";import{usePublicClient as ql}from"@berachain/wagmi/hooks";var Gk=e=>{let t=ql();return Kl(e&&t?["useVaultAddress",e]:null,async([,o])=>{y(t);let[n]=await Promise.all([be({address:o,publicClient:t})]);return{stakeToken:n,address:o}})};import $l from"swr";var $k=({vault:e,range:t,resolution:r})=>{let n=$l(e?["useVaultHistory",e,t,r]:null,([,s,a,i])=>ur({vault:s,range:a,resolution:i}));return{...n,refresh:()=>n.mutate()}};import Zl from"swr";var zl=(e,t)=>{let o=Zl(e?["useVaultValidators",e]:null,async([,n])=>await pr({address:n}),{...t?.opts});return{...o,refresh:()=>o.mutate()}};import{zeroAddress as jl}from"viem";function jo({address:e},t){let r=Ue({addressIn:e?[e]:void 0},t);return{...r,data:e?r.data?.[e.toLowerCase()]:void 0}}function ow(e){return jo({address:jl},e)}import{useMemo as Jl}from"react";import Xl from"swr";import{useBeraWallet as eu,usePublicClient as tu}from"@berachain/wagmi/hooks";function pw(e,t){let r=tu(),{address:o}=eu(),{tokenList:n}=Ne(),s=e?.walletAddress??o,a=Jl(()=>new Map((e?.tokens??n)?.map(u=>[u.address.toLowerCase(),u])??[]),[n,e?.tokens]),i=r&&n!==void 0&&s?["usePollWalletBalances",s,Array.from(a.values())]:null,l=Xl(i,async([,u,m])=>Re({account:u,tokenList:m,publicClient:r}),{refreshInterval:1e5,...t?.opts});return{...l,refresh:()=>l?.mutate?.()}}import ru from"swr/immutable";import{isAddress as ou,zeroAddress as nu}from"viem";import{usePublicClient as su}from"@berachain/wagmi/hooks";var Aw=(e,t)=>{let r=su(),o=e?.address&&r&&ou(e.address)?["useStakingTokenInformation",e.address]:null,n=ru(o,async([s,a])=>k(a,"BERA")?{address:nu,decimals:H.decimals,name:H.name,symbol:H.symbol}:await Ye({address:a,publicClient:r}),{...t?.opts});return{...n,refresh:()=>n?.mutate?.()}};import au from"swr";import{erc20Abi as iu}from"viem";import{usePublicClient as lu}from"@berachain/wagmi/hooks";function Pw({address:e}){let t=lu();return au(e&&t?["useTotalSupply",e]:null,([,r])=>(y(t),t.readContract({address:r,abi:iu,functionName:"totalSupply",args:[]})))}import{useCallback as uu}from"react";import{useBeraWagmi as pu}from"@berachain/wagmi/hooks";function xw(){let e=le(),{account:t}=pu(),r=t?.wallet?.address;return uu(o=>{if(!r)throw new E({property:"address",value:r,expected:"Address"});e.addTransaction(r,o)},[e,r])}import{useEffect as mu,useState as du}from"react";import{useBeraWallet as cu}from"@berachain/wagmi/hooks";function Lw(){let e=le(),{address:t}=cu(),[r,o]=du(()=>e&&t?e.getTransactions(t):[]);return mu(()=>{if(e&&t)return o(e.getTransactions(t)),e.onChange(()=>{o(e.getTransactions(t))})},[e,t]),r}import fu from"swr/immutable";import{useBlockNumber as gu,usePublicClient as yu}from"@berachain/wagmi/hooks";function Mw(e){let t=yu(),{config:r}=P({chainId:t?.chain.id}),{data:o,isLoading:n}=gu({cacheTime:fe(r.averageBlockTime)}),{data:s}=fu(o&&t&&Number(e)>0?["useBlockToTimestamp",e,o]:null,async([,i,l])=>(y(t),Ft({block:i,currentBlock:l,blockTime:a,publicClient:t}))),a=ue();if(s)return Number(s.timestamp);if(!(n||!o))return Math.floor(Bt(Date.now())+a*(Number(e)-Number(o)))}import{useCallback as Xo,useReducer as Au}from"react";import{useBeraWagmi as bu,useConfig as hu}from"@berachain/wagmi/hooks";var ht={confirmState:"idle",txnHash:"",message:""},Jo=(e,t)=>{switch(t.type){case"confirm_sending":return{...e,confirmState:"loading"};case"confirm_receipt":return{...e,confirmState:"success"};case"confirm_error":return{...e,confirmState:"fail"};case"confirm_submitting":return{...e,confirmState:"submitting"};case"confirm_reset":return{...ht};default:return e}};function Ru({onlyPermissionless:e,onSuccess:t,onError:r,onLoading:o,onWarning:n,onSubmission:s}={}){let[a,i]=Au(Jo,ht),{account:l,onSmartAccountRejection:u}=bu(),m=hu(),p=l?.wallet?.isContract?6e4*10:12e4,d=Xo(()=>{i({type:"confirm_reset"})},[]),c=K("enableSimulateCalls"),f=Xo(g=>{if(e&&!g.permissionless){let A=new sr({message:"Trying to send a non-permissionless transaction with an overridden account",displayMessage:"You can't send this transaction with an overridden account. Please reset the account in the settings popover.",level:"info",input:g});throw n?.(A,g),r?.(A,g),A}return fr({wagmiConfig:m,...g,txConfirmationTimeout:p,enableSimulateCalls:c,onLoading(...A){i({type:"confirm_sending"}),g.onLoading?.(g),o?.(...A)},onWarning(...A){g.onWarning?.(A[0],g),n?.(...A)},onSubmission(...A){i({type:"confirm_submitting"}),g.onSubmission?.(A[0],g),s?.(...A)},onSuccess(...A){i({type:"confirm_receipt"}),g.onSuccess?.(A[0],g),t?.(...A)},onError(...A){i({type:"confirm_error"}),g.onError?.(A[0],g),A[0].reason==="AtomicReadyWalletRejectedUpgradeError"&&u(),r?.(...A)}})},[m,o,n,s,t,r,e,c]);return{isLoading:a.confirmState==="loading",isSubmitting:a.confirmState==="submitting",isSuccess:a.confirmState==="success",isError:a.confirmState==="fail",write:f,reset:d}}var ku=Ru;import wu from"swr/immutable";import{isAddress as Pu,zeroAddress as Tu}from"viem";import{chainId as Iu}from"@berachain/config/internal";async function Cu(e){let t=await kt({url:`https://api.routescan.io/v2/network/testnet/evm/${Iu}/etherscan/api?module=contract&action=getabi&address=${e}`,type:"rest",name:"RouteScan"});if(t.status==="0")throw new Error(t.result);return t.result}var iP=e=>wu(e&&Pu(e)&&e!==Tu?["useGetVerifiedAbi",e]:null,()=>e?Cu(e):Promise.resolve(""),{});import{useCallback as en,useEffect as Eu,useState as Su}from"react";function pP({key:e,defaultValue:t}){let r=en(()=>{if(typeof window>"u")return t;let a=window.history.state?.[e];return a!==void 0?a:t},[e,t]),[o,n]=Su(r()),s=en(a=>{let i=r(),l=a instanceof Function?a(i):a,m={...window.history.state||{},[e]:l};window.history.replaceState(m,""),n(l)},[e,r]);return Eu(()=>{if(window.history.state?.[e]===void 0){let l={...window.history.state||{},[e]:t};window.history.replaceState(l,"")}},[e,t]),[o,s]}import{useEffect as xu,useRef as vu}from"react";function cP(e){let t=vu(void 0);return xu(()=>{t.current=e}),t.current}import Bu from"swr";var Ou=({variables:e}={})=>["useAllValidators",e],bP=(e,t)=>{let{config:r}=P(e),o=Bu(Ou({variables:e}),async([,n])=>await gr({variables:{chain:r.bex.chainName,...n}}),{refreshInterval:18e4,...t?.opts});return{...o,refresh:()=>o.mutate()}};import Du from"swr";function wP({allocation:e}){return Du(e?["useApiEnrichedAllocation",e]:null,([,t])=>yr({allocation:t}))}import Lu from"swr";import{isHex as Nu}from"viem";var Uu=e=>e?["useApiValidator",e]:null,tn=(e,t)=>{let r=Uu(e),o=t?.opts?.isEnabled??!0,n=Lu(o&&e?r:null,async([,s])=>{if(!s||!Nu(s))throw new Error(`Invalid validator ID: ${s}`);return Ar({id:s})},{...t?.opts});return{...n,refresh:()=>n.mutate()}};import Hu from"swr";import{usePublicClient as Vu}from"@berachain/wagmi/hooks";var rn=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccessControlBadConfirmation",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"bytes32",name:"neededRole",type:"bytes32"}],name:"AccessControlUnauthorizedAccount",type:"error"},{inputs:[{internalType:"address",name:"target",type:"address"}],name:"AddressEmptyCode",type:"error"},{inputs:[],name:"AmountGreaterThanReward",type:"error"},{inputs:[],name:"AmountLessThanMinIncentiveRate",type:"error"},{inputs:[],name:"CannotRecoverIncentiveToken",type:"error"},{inputs:[],name:"CannotRecoverRewardToken",type:"error"},{inputs:[],name:"CannotRecoverStakingToken",type:"error"},{inputs:[],name:"CommissionChangeAlreadyQueued",type:"error"},{inputs:[],name:"CommissionNotQueuedOrDelayNotPassed",type:"error"},{inputs:[],name:"DepositNotMultipleOfGwei",type:"error"},{inputs:[],name:"DepositValueTooHigh",type:"error"},{inputs:[],name:"DonateAmountLessThanPayoutAmount",type:"error"},{inputs:[{internalType:"address",name:"receiver",type:"address"}],name:"DuplicateReceiver",type:"error"},{inputs:[],name:"DurationChangeNotAllowed",type:"error"},{inputs:[{internalType:"address",name:"implementation",type:"address"}],name:"ERC1967InvalidImplementation",type:"error"},{inputs:[],name:"ERC1967NonPayable",type:"error"},{inputs:[],name:"FailedCall",type:"error"},{inputs:[],name:"IncentiveRateTooHigh",type:"error"},{inputs:[],name:"IndexOutOfRange",type:"error"},{inputs:[],name:"InsolventReward",type:"error"},{inputs:[],name:"InsufficientDelegateStake",type:"error"},{inputs:[],name:"InsufficientDeposit",type:"error"},{inputs:[],name:"InsufficientIncentiveTokens",type:"error"},{inputs:[],name:"InsufficientNativeValue",type:"error"},{inputs:[],name:"InsufficientSelfStake",type:"error"},{inputs:[],name:"InsufficientStake",type:"error"},{inputs:[],name:"InvalidActivateBoostDelay",type:"error"},{inputs:[],name:"InvalidArray",type:"error"},{inputs:[],name:"InvalidBaseRate",type:"error"},{inputs:[],name:"InvalidBoostMultiplier",type:"error"},{inputs:[],name:"InvalidCommissionChangeDelay",type:"error"},{inputs:[],name:"InvalidCommissionValue",type:"error"},{inputs:[],name:"InvalidCredentialsLength",type:"error"},{inputs:[],name:"InvalidDistribution",type:"error"},{inputs:[],name:"InvalidDropBoostDelay",type:"error"},{inputs:[],name:"InvalidIncentiveFeeRate",type:"error"},{inputs:[],name:"InvalidIncentiveRate",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"InvalidMaxIncentiveTokensCount",type:"error"},{inputs:[],name:"InvalidMaxWeightPerVault",type:"error"},{inputs:[],name:"InvalidMerkleRoot",type:"error"},{inputs:[],name:"InvalidMinBoostedRewardRate",type:"error"},{inputs:[],name:"InvalidProof",type:"error"},{inputs:[],name:"InvalidPubKeyLength",type:"error"},{inputs:[],name:"InvalidRewardAllocationInactivityBlockSpan",type:"error"},{inputs:[],name:"InvalidRewardAllocationWeights",type:"error"},{inputs:[],name:"InvalidRewardClaimDelay",type:"error"},{inputs:[],name:"InvalidRewardConvexity",type:"error"},{inputs:[],name:"InvalidRewardDuration",type:"error"},{inputs:[],name:"InvalidRewardRate",type:"error"},{inputs:[],name:"InvalidSignatureLength",type:"error"},{inputs:[],name:"InvalidStartBlock",type:"error"},{inputs:[],name:"InvalidToken",type:"error"},{inputs:[],name:"InvalidWeight",type:"error"},{inputs:[],name:"InvalidateDefaultRewardAllocation",type:"error"},{inputs:[],name:"InvariantCheckFailed",type:"error"},{inputs:[],name:"MaxNumWeightsPerRewardAllocationIsZero",type:"error"},{inputs:[],name:"MethodNotAllowed",type:"error"},{inputs:[],name:"MinIncentiveRateIsZero",type:"error"},{inputs:[],name:"NonTransferable",type:"error"},{inputs:[],name:"NotAContract",type:"error"},{inputs:[],name:"NotApprovedSender",type:"error"},{inputs:[],name:"NotBGT",type:"error"},{inputs:[],name:"NotBlockRewardController",type:"error"},{inputs:[],name:"NotDelegate",type:"error"},{inputs:[],name:"NotDistributor",type:"error"},{inputs:[],name:"NotEnoughBalance",type:"error"},{inputs:[],name:"NotEnoughBoostedBalance",type:"error"},{inputs:[],name:"NotEnoughTime",type:"error"},{inputs:[],name:"NotFactoryVault",type:"error"},{inputs:[],name:"NotFeeCollector",type:"error"},{inputs:[],name:"NotIncentiveManager",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[],name:"NotNewOperator",type:"error"},{inputs:[],name:"NotOperator",type:"error"},{inputs:[],name:"NotRewardAllocator",type:"error"},{inputs:[],name:"NotRewardDurationManager",type:"error"},{inputs:[],name:"NotRewardVaultManager",type:"error"},{inputs:[],name:"NotSystemAddress",type:"error"},{inputs:[],name:"NotWBERAStakerVault",type:"error"},{inputs:[],name:"NotWhitelistedVault",type:"error"},{inputs:[],name:"OnlyNFTOwnerAllowed",type:"error"},{inputs:[],name:"OnlySystemCallAllowed",type:"error"},{inputs:[],name:"OperatorAlreadySet",type:"error"},{inputs:[],name:"PayoutAmountIsZero",type:"error"},{inputs:[],name:"RewardAllocationAlreadyQueued",type:"error"},{inputs:[],name:"RewardAllocationBlockDelayTooLarge",type:"error"},{inputs:[],name:"RewardCycleNotEnded",type:"error"},{inputs:[],name:"RewardDurationCoolDownPeriodNotPassed",type:"error"},{inputs:[],name:"RewardInactive",type:"error"},{inputs:[],name:"RewardsDurationIsZero",type:"error"},{inputs:[],name:"StakeAmountIsZero",type:"error"},{inputs:[],name:"TimestampAlreadyProcessed",type:"error"},{inputs:[],name:"TokenAlreadyWhitelistedOrLimitReached",type:"error"},{inputs:[],name:"TokenNotWhitelisted",type:"error"},{inputs:[],name:"TooManyWeights",type:"error"},{inputs:[],name:"TotalSupplyOverflow",type:"error"},{inputs:[],name:"UUPSUnauthorizedCallContext",type:"error"},{inputs:[{internalType:"bytes32",name:"slot",type:"bytes32"}],name:"UUPSUnsupportedProxiableUUID",type:"error"},{inputs:[],name:"UnauthorizedETHTransfer",type:"error"},{inputs:[],name:"WithdrawAmountIsZero",type:"error"},{inputs:[],name:"WithdrawalAlreadyRequested",type:"error"},{inputs:[],name:"WithdrawalNotReady",type:"error"},{inputs:[],name:"WithdrawalNotRequested",type:"error"},{inputs:[],name:"ZeroAddress",type:"error"},{inputs:[],name:"ZeroOperatorOnFirstDeposit",type:"error"},{inputs:[],name:"ZeroPercentageWeight",type:"error"},{anonymous:!1,inputs:[{components:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint96",name:"percentageNumerator",type:"uint96"}],indexed:!1,internalType:"struct IBeraChef.Weight[]",name:"weights",type:"tuple[]"}],name:"BaselineAllocationSet",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[],name:"ALLOCATION_SETTER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"UPGRADE_INTERFACE_VERSION",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"beraChef",outputs:[{internalType:"contract IBeraChef",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBaselineAllocation",outputs:[{components:[{internalType:"uint64",name:"startBlock",type:"uint64"},{components:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint96",name:"percentageNumerator",type:"uint96"}],internalType:"struct IBeraChef.Weight[]",name:"weights",type:"tuple[]"}],internalType:"struct IBeraChef.RewardAllocation",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_governance",type:"address"},{internalType:"address",name:"_beraChef",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"proxiableUUID",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"callerConfirmation",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint96",name:"percentageNumerator",type:"uint96"}],internalType:"struct IBeraChef.Weight[]",name:"weights",type:"tuple[]"}],name:"setBaselineAllocation",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable",type:"function"}];async function on({publicClient:e,...t}){let{config:r}=P(t),o=await e.readContract({abi:rn,address:r.pol.rewardAllocationFactory,functionName:"getBaselineAllocation"}),n=o.startBlock!==0n?await e.getBlock({blockNumber:o.startBlock}):{timestamp:0};return hr(o,Number(n.timestamp))}function HP(){let e=Vu();return Hu(e?["baselineRewardAllocation"]:null,()=>(y(e),on({publicClient:e})))}import Wu from"swr";var _u=({pubKey:e,first:t=1})=>{let o=Wu(e?["useDailyValidatorBlockStats",e,t]:null,async([,n,s])=>await br({pubKey:n,first:s}),{refreshInterval:18e4});return{...o,refresh:()=>o.mutate()}};import Qu from"swr";import{usePublicClient as Yu}from"@berachain/wagmi/hooks";function Mu(e){let t=Yu(),o=Qu(t?["useDefaultRewardAllocation"]:null,async()=>(y(t),await kr({client:t})),{...e?.opts});return{...o,refresh:()=>o.mutate()}}import Gu from"swr/immutable";var Fu=({account:e},t)=>{let o=Gu(e?["useManagedValidatorByAccount",e]:null,async([,n])=>await wr({account:n}),{...t?.opts});return{...o,refresh:()=>o.mutate()}};import{useMemo as sn}from"react";import qu from"swr";import{useBeraWallet as $u,usePublicClient as Zu}from"@berachain/wagmi/hooks";import{zeroAddress as Ku}from"viem";async function nn({client:e,pubKey:t,...r}){let{config:o}=P(r);try{let n=await e.readContract({address:o.pol.beraChef,abi:$,functionName:"valRewardAllocator",args:[t]});return n===Ku?null:n}catch(n){throw console.log("getValidatorRewardAllocatorAddress:",n),n}}function an(e,t){return!e||!t?!1:t.operator?.toLowerCase()===e.toLowerCase()}function zu(e,t){return!e||!t?!1:t.rewardAllocator?t.rewardAllocator.toLowerCase()===e.toLowerCase():an(e,t)}function ju({pubKey:e,account:t},r){let o=Zu(),n=K("mockValidatorOperator"),s=K("mockValidatorRewardAllocator"),a=o&&e?["useManagedValidatorRole",e]:null,{address:i}=$u(),l=t??i,u=qu(a,async([,d])=>{y(o);let[c,f]=await Promise.all([Br({client:o,pubKey:d}),nn({client:o,pubKey:d})]);return{operator:c??null,rewardAllocator:f}},{...r?.opts}),m=sn(()=>n||an(l,u.data),[l,n,u.data]),p=sn(()=>s||zu(l,u.data),[l,s,u.data]);return{...u,data:u.data?{...u.data,hasOperatorRole:m,hasRewardAllocatorRole:p}:void 0,refresh:()=>u.mutate()}}import Ju from"swr";import{keccak256 as Xu}from"viem";import{usePublicClient as ep}from"@berachain/wagmi/hooks";var ln=({pubkey:e},t)=>{let r=ep(),o=e?["useOnChainValidator",e]:null,n=t.opts?.isEnabled??!0,s=Ju(n&&r?o:null,async([,a])=>{y(r);let{config:i}=P({chainId:r.chain.id}),[l,u,m]=await Promise.all([r.readContract({address:i.depositContract,abi:vr,functionName:"getOperator",args:[a]}),r?.readContract({address:i.tokens.bgt,abi:G,functionName:"boostees",args:[a]}),r.readContract({address:i.pol.beraChef,abi:$,functionName:"getActiveRewardAllocation",args:[a]})]);return{id:Xu(a),pubkey:a,operator:l,votingPower:Number(u)}});return{...s,refresh:()=>{s.mutate()}}};import tp from"swr";import{usePublicClient as rp}from"@berachain/wagmi/hooks";var kT=({valPubKey:e,options:t})=>{let r=rp(),n=(t?.opts?.isEnabled??!0)&&r&&e?["useStakingPoolBatch",e]:null,s=tp(n,async([,a])=>(y(r),await Pr({client:r,valPubKey:a})),{refreshInterval:1e4,...t?.opts});return{...s,refresh:()=>s.mutate()}};import op from"swr";import{GetUserValidatorInformation as np}from"@berachain/graphql/pol/subgraph";import{useBeraWallet as sp}from"@berachain/wagmi/hooks";var ap=({account:e}={})=>{let{address:t}=sp(),r=e??t;return op(r?["useSubgraphUserValidators",r]:null,async([,n])=>{let s=q("pol.subgraph",{}),{data:a}=await s.query({query:np,variables:{address:n}});return a.userValidatorInformations})};import ip from"swr";import{useBeraWallet as lp,usePublicClient as up}from"@berachain/wagmi/hooks";var pp=e=>{let{address:t}=lp(),r=up(),n=ip(r&&t?["useUserActiveValidators",t]:null,async([,s])=>await Ir({account:s,publicClient:r}),{...e,refreshInterval:e?.opts?.refreshInterval??18e4,keepPreviousData:!0});return{...n,refresh:()=>n?.mutate?.()}};import mp from"swr";import{useBeraWallet as dp,usePublicClient as cp}from"@berachain/wagmi/hooks";var fp=({pubkey:e,...t})=>{let{address:r}=dp(),o=cp(),n=t.account??r,a=mp(n&&e?["useUserBoostsOnValidator",e,n]:null,async([,i,l])=>await Tr({account:l,pubkey:i,publicClient:o}),{refreshInterval:1e5});return{...a,refresh:()=>a.mutate()}};import{useCallback as gp,useMemo as yp}from"react";import*as mn from"@sentry/nextjs";import pn from"swr";import{useBeraWallet as Ap}from"@berachain/wagmi/hooks";var un=e=>{let t=new Set;return e.forEach(r=>{Array.isArray(r.rewards)&&r.rewards.forEach(o=>{o.token&&t.add(o.token)})}),t};var bp=()=>{let{address:e}=Ap(),r=pn(e?["useUserClaimableIncentives",e]:null,async([,l])=>{if(!l)throw new x({message:"useUserClaimableIncentives needs a logged in account",level:"error"});return await nr({account:l})},{revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateIfStale:!1,refreshInterval:18e4}),o=r?.data,n=yp(()=>{if(o){if(!Array.isArray(o)){mn.captureException(new x({message:"Incorrect aggregated incentives data receieved.",level:"error"}),{extra:{allRewards:o,account:e}});return}return un(o)}},[o,e]),a=pn(e&&o?["useUserClaimableIncentives",e,o]:null,async([,l,u])=>{if(!l)throw new E({property:"account",value:l,expected:"Address"});if(!u)return[];if(!Array.isArray(u))throw new E({message:"Incorrect aggregated incentives data receieved to calculate proofs.",property:"allRewards",value:u,expected:"Array",level:"error"});let m=new Set(u.map(d=>d.validator)),p=Array.from(m);return await Promise.all(p.map(async d=>({...await jt({account:l,validator:d,page:1,perPage:1e4}),validator:d})))},{revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateIfStale:!1,refreshInterval:18e4}),i=gp(()=>{r?.mutate(),a?.mutate()},[r,a]);return{...a,isLoading:r?.isLoading||a?.isLoading,tokenMap:n,refresh:i}};import hp from"swr/immutable";var $T=({account:e,validatorAddress:t})=>{let o=hp(e?["useUserStakingPositions",e,t]:null,async([n,s,a])=>{let i=await Cr(s);return a?i.filter(l=>l.validatorAddress.toLowerCase()===a.toLowerCase()):i});return{...o,refresh:()=>{o.mutate()}}};import{keccak256 as Rp}from"viem";function XT({pubkey:e},t){let{data:{validator:r,uptime:o}={},isLoading:n,error:s}=tn(Rp(e),t),{data:a,isLoading:i,error:l}=ln({pubkey:e},t);return{data:{uptime:o,validator:r||a?{...r,...a,operator:a?.operator??r?.operator,dynamicData:{activeBoostAmount:a?.dynamicData?.activeBoostAmount??r?.dynamicData?.activeBoostAmount??"",queuedBoostAmount:r?.dynamicData?.queuedBoostAmount??"",usersActiveBoostCount:r?.dynamicData?.usersActiveBoostCount??0,usersQueuedBoostCount:r?.dynamicData?.usersQueuedBoostCount??0,allTimeDistributedBGTAmount:r?.dynamicData?.allTimeDistributedBGTAmount??"0",rewardRate:a?.dynamicData?.rewardRate??r?.dynamicData?.rewardRate??"",stakedBeraAmount:r?.dynamicData?.stakedBeraAmount??"",lastDayDistributedBGTAmount:r?.dynamicData?.lastDayDistributedBGTAmount??"",activeBoostAmountRank:r?.dynamicData?.activeBoostAmountRank??0,boostApr:r?.dynamicData?.boostApr??0,commissionOnIncentives:r?.dynamicData?.commissionOnIncentives??0},id:a?.id??r?.id,pubkey:a?.pubkey??r?.pubkey,metadata:a?.metadata??r?.metadata,rewardAllocationWeights:a?.rewardAllocationWeights??r?.rewardAllocationWeights??[]}:null},isLoading:n||i,error:s||l}}import kp from"swr";function wp({pubkey:e,dayRange:t}){let o=kp(e&&t?["useValidatorAnalytics",e,t]:null,async([,n,s])=>await Er({pubkey:n,dayRange:s}),{refreshInterval:18e4});return{...o,refresh:()=>o.mutate()}}import Pp from"swr";import{usePublicClient as Tp}from"@berachain/wagmi/hooks";var Ip=(e,t)=>{let r=Tp(),n=Pp(r&&e?["useValidatorCommission",e]:null,async([,s])=>await Sr({client:r,pubKey:s}),{...t?.opts});return{...n,refresh:()=>n.mutate()}};var Cp=e=>{let{data:t,isLoading:r}=$o(),o=ue();return{data:t?xr(e,Number(t?.totalStakedBeraAmount),o):void 0,isLoading:r}};import Ep from"swr";import{usePublicClient as Sp}from"@berachain/wagmi/hooks";function xp(e,t){let r=Sp(),n=Ep(r&&e?["useValidatorQueuedCommission",e]:null,async([,s])=>(y(r),await Or({client:r,pubKey:s})),{...t?.opts});return{...n,refresh:()=>n.mutate()}}import vp from"swr";import{usePublicClient as Bp}from"@berachain/wagmi/hooks";var Op=(e,t)=>{let r=Bp(),n=vp(r&&e?["useValidatorQueuedOperatorAddress",e]:null,async([,s])=>await Dr({client:r,pubKey:s}),{...t?.opts});return{...n,refresh:()=>n.mutate()}};import Dp from"swr";import{usePublicClient as Lp}from"@berachain/wagmi/hooks";var Np=(e,t)=>{let r=Lp(),n=Dp(r&&e?["useValidatorQueuedRewardAllocation",e]:null,async([,s])=>await Lr({client:r,pubKey:s}),{...t?.opts});return{...n,refresh:()=>n.mutate()}};import Up from"swr";import{usePublicClient as Hp}from"@berachain/wagmi/hooks";function Vp(e,t){let r=Hp(),n=Up(r&&e?["useValidatorRewardAllocation",e]:null,async([,s])=>await Rr({client:r,pubKey:s}),{...t?.opts});return{...n,refresh:()=>n.mutate()}}export{jn as OracleMode,Fp as TransactionStoreProvider,Un as USE_AGGREGATORS_QUOTES_QUERY_KEY,Qp as convertLegacyDataToNewData,Gp as createTransactionStore,Yp as filterDuplicatefn,Mp as mergeData,qo as reducer,_p as safeParseJsonData,xw as useAddRecentTransaction,Yd as useAggregatorsQuotes,Zr as useAggregatorsRouterFeeBps,zr as useAllUserPools,Qn as useAllUserPoolsQueryKey,bP as useAllValidators,Ou as useAllValidatorsQueryKey,wP as useApiEnrichedAllocation,jr as useApiPool,Gn as useApiPoolQueryKey,tn as useApiValidator,Uu as useApiValidatorQueryKey,HP as useBaselineRewardAllocation,yy as useBendTransactionRequests,vo as useBendTransactionRequestsHelper,ku as useBeraContractWrite,ow as useBeraCurrentPrice,Ge as useBexStatus,jh as useBgtAprSimulation,el as useBgtUnstakedBalance,Mw as useBlockToTimestamp,Vo as useCappedGlobally,Wo as useCappedRelatively,sl as useClaimableFees,Wb as useCollateralWeights,hc as useCreatePool,La as useCreateProposal,_u as useDailyValidatorBlockStats,Mu as useDefaultRewardAllocation,AR as useEarnedStakedBeraVault,ie as useEnsoZap,vc as useExploitedTokens,is as useExploitedTokensQueryKey,zp as useGetConvertToAssets,$y as useGetPastVotes,iP as useGetVerifiedAbi,us as useGlobalLiquidityAndSwapVolume,rA as useHasVoted,IR as useHighestVaultsAPR,pP as useHistoryState,yh as useHoneyAlerts,_o as useHoneyBalances,Rh as useHoneyChartData,Ih as useHoneyGlobalData,_h as useHoneySwapState,Qo as useHoneyVaultsBalance,Yo as useIsBadCollateralAsset,Fo as useIsBasketModeEnabled,mA as useIsCanceller,Vc as useLiquidityMismatch,Rf as useLpPosition,Fu as useManagedValidatorByAccount,ju as useManagedValidatorRole,Qs as useMultipleTokenApprovalsWithSlippage,fo as useMultipleTokenInformation,go as useOnChainPoolData,Js as useOnChainPoolDataQueryKey,ln as useOnChainValidator,AA as usePollAllProposals,Ja as usePollAllProposalsQueryKey,po as usePollAllowances,io as usePollBalance,$o as usePollGlobalData,LR as usePollMarkets,Al as usePollMarketsQueryKey,ra as usePollPoolCreationRelayerApproval,IA as usePollProposal,OA as usePollProposalThreshold,UA as usePollProposalVotes,ai as usePollProposalVotesQueryKey,GA as usePollUserDelegates,pw as usePollWalletBalances,cg as usePool,Ag as usePoolEvents,wg as usePoolHistoricalData,xg as usePools,pa as usePoolsQueryKey,cP as usePrevious,ZA as useProposalFromTx,Do as useProposalSnapshot,tb as useProposalState,ib as useProposalTimelockState,ee as usePythLatestPrices,qh as usePythUpdateFee,QR as useQueuedBeraUnlock,Ab as useQuorum,Lw as useRecentTransactions,$R as useRewardTokenToBeraRate,ck as useRewardVault,no as useRewardVaultBalanceFromStakingToken,ct as useRewardVaultFromToken,hk as useRewardVaultIncentives,Bl as useRewardVaultQueryKey,Ul as useRewardVaultRewards,bt as useRewardVaults,ml as useRewardVaultsQueryKey,Sk as useStakedBeraSnapshots,kT as useStakingPoolBatch,Aw as useStakingTokenInformation,sa as useSubgraphPoolQueryKey,ap as useSubgraphUserValidators,jo as useTokenCurrentPrice,Ue as useTokenCurrentPrices,so as useTokenInformation,Ne as useTokens,Pw as useTotalSupply,le as useTransactionStore,pp as useUserActiveValidators,fp as useUserBoostsOnValidator,bp as useUserClaimableIncentives,$T as useUserStakingPositions,Ql as useUserVaultInfo,Fl as useUserVaults,XT as useValidator,wp as useValidatorAnalytics,Ip as useValidatorCommission,Cp as useValidatorEstimatedBgtPerYear,xp as useValidatorQueuedCommission,Op as useValidatorQueuedOperatorAddress,Np as useValidatorQueuedRewardAllocation,Vp as useValidatorRewardAllocation,Gk as useVaultAddress,$k as useVaultHistory,zl as useVaultValidators,ky as useZapTransactionRequests};
4
- //# sourceMappingURL=index.mjs.map