@berachain/berajs 0.2.4 → 0.2.6-patch.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 (463) hide show
  1. package/README.md +0 -0
  2. package/dist/abi/exports.cjs +1 -1
  3. package/dist/abi/exports.cjs.map +1 -1
  4. package/dist/abi/exports.d.cts +17 -1
  5. package/dist/abi/exports.d.ts +17 -1
  6. package/dist/abi/exports.mjs +1 -1
  7. package/dist/abi/exports.mjs.map +1 -1
  8. package/dist/actions/exports.cjs +1 -1
  9. package/dist/actions/exports.cjs.map +1 -1
  10. package/dist/actions/exports.d.cts +9 -38
  11. package/dist/actions/exports.d.ts +9 -38
  12. package/dist/actions/exports.mjs +1 -1
  13. package/dist/actions/exports.mjs.map +1 -1
  14. package/dist/chunk-2YBHAMDV.cjs +2 -0
  15. package/dist/chunk-2YBHAMDV.cjs.map +1 -0
  16. package/dist/chunk-57RINXU6.cjs +2 -0
  17. package/dist/chunk-57RINXU6.cjs.map +1 -0
  18. package/dist/{chunk-AX2YQQFQ.mjs → chunk-74QD4JAH.mjs} +2 -2
  19. package/dist/chunk-74QD4JAH.mjs.map +1 -0
  20. package/dist/chunk-74WA35RI.cjs +2 -0
  21. package/dist/chunk-74WA35RI.cjs.map +1 -0
  22. package/dist/{chunk-7WRTK7RJ.mjs → chunk-BEKH5EYT.mjs} +2 -2
  23. package/dist/chunk-BEKH5EYT.mjs.map +1 -0
  24. package/dist/{chunk-FCWDGE62.cjs → chunk-CF3LFNXG.cjs} +2 -2
  25. package/dist/chunk-CF3LFNXG.cjs.map +1 -0
  26. package/dist/chunk-COMMLZ3O.mjs +2 -0
  27. package/dist/chunk-COMMLZ3O.mjs.map +1 -0
  28. package/dist/chunk-DDEQFR3M.cjs +2 -0
  29. package/dist/chunk-DDEQFR3M.cjs.map +1 -0
  30. package/dist/{chunk-6LDOG5RL.cjs → chunk-DK42F2ZM.cjs} +2 -2
  31. package/dist/chunk-DK42F2ZM.cjs.map +1 -0
  32. package/dist/{chunk-7SMWQ6SN.mjs → chunk-FM3WDBFH.mjs} +2 -2
  33. package/dist/chunk-FM3WDBFH.mjs.map +1 -0
  34. package/dist/chunk-HWOGQSNL.cjs +4 -0
  35. package/dist/chunk-HWOGQSNL.cjs.map +1 -0
  36. package/dist/chunk-I7M43BB4.cjs +2 -0
  37. package/dist/chunk-I7M43BB4.cjs.map +1 -0
  38. package/dist/chunk-IBJOI5SN.mjs +4 -0
  39. package/dist/chunk-IBJOI5SN.mjs.map +1 -0
  40. package/dist/chunk-IDFMLLDY.mjs +2 -0
  41. package/dist/chunk-IDFMLLDY.mjs.map +1 -0
  42. package/dist/{chunk-YZV5LKIP.cjs → chunk-LNVR4BW6.cjs} +2 -2
  43. package/dist/chunk-LNVR4BW6.cjs.map +1 -0
  44. package/dist/chunk-MJZHJFZO.mjs +2 -0
  45. package/dist/{chunk-YNO7BCCM.mjs.map → chunk-MJZHJFZO.mjs.map} +1 -1
  46. package/dist/chunk-MK5NS5B5.mjs +2 -0
  47. package/dist/chunk-MK5NS5B5.mjs.map +1 -0
  48. package/dist/{chunk-C6ZGUO4H.cjs → chunk-NMH7LHPW.cjs} +2 -2
  49. package/dist/chunk-NMH7LHPW.cjs.map +1 -0
  50. package/dist/chunk-NVHV2LDK.cjs +2 -0
  51. package/dist/chunk-NVHV2LDK.cjs.map +1 -0
  52. package/dist/chunk-OGBD5YOG.mjs +2 -0
  53. package/dist/chunk-OGBD5YOG.mjs.map +1 -0
  54. package/dist/chunk-OIYXOKTT.cjs.map +1 -1
  55. package/dist/chunk-OUD27MU7.cjs.map +1 -1
  56. package/dist/chunk-PLIH6KQM.mjs +2 -0
  57. package/dist/chunk-PLIH6KQM.mjs.map +1 -0
  58. package/dist/chunk-QRAIGQF2.mjs +2 -0
  59. package/dist/chunk-QRAIGQF2.mjs.map +1 -0
  60. package/dist/chunk-RWOICHRW.cjs +2 -0
  61. package/dist/chunk-RWOICHRW.cjs.map +1 -0
  62. package/dist/chunk-T5FSQ3YE.mjs +2 -0
  63. package/dist/chunk-T5FSQ3YE.mjs.map +1 -0
  64. package/dist/chunk-WRFDB3QJ.cjs.map +1 -1
  65. package/dist/chunk-XNJLSA6P.cjs.map +1 -1
  66. package/dist/contexts/exports.cjs +1 -1
  67. package/dist/contexts/exports.cjs.map +1 -1
  68. package/dist/contexts/exports.d.cts +1 -1
  69. package/dist/contexts/exports.d.ts +1 -1
  70. package/dist/contexts/exports.mjs +1 -1
  71. package/dist/contexts/exports.mjs.map +1 -1
  72. package/dist/{defaultFlags-d0kPbT0i.d.cts → defaultFlags-D6KfkTZx.d.cts} +1 -1
  73. package/dist/{defaultFlags-d0kPbT0i.d.ts → defaultFlags-D6KfkTZx.d.ts} +1 -1
  74. package/dist/enum/exports.cjs +1 -1
  75. package/dist/enum/exports.cjs.map +1 -1
  76. package/dist/enum/exports.d.cts +1 -1
  77. package/dist/enum/exports.d.ts +1 -1
  78. package/dist/enum/exports.mjs +1 -1
  79. package/dist/errors/exports.cjs +1 -1
  80. package/dist/errors/exports.cjs.map +1 -1
  81. package/dist/errors/exports.d.cts +8 -3
  82. package/dist/errors/exports.d.ts +8 -3
  83. package/dist/errors/exports.mjs +1 -1
  84. package/dist/{getValidatorQueuedOperatorAddress-DZgrPmZ2.d.cts → getValidatorQueuedOperatorAddress-BdDYHycN.d.cts} +15 -4
  85. package/dist/{getValidatorQueuedOperatorAddress-CqR6cyqC.d.ts → getValidatorQueuedOperatorAddress-CmiPJmsr.d.ts} +15 -4
  86. package/dist/{global.d-BeYWDreg.d.ts → global.d-3GQMgC9k.d.ts} +1 -1
  87. package/dist/{global.d-DghRxpHd.d.cts → global.d-CwT1Phzf.d.cts} +1 -1
  88. package/dist/hooks/exports.cjs +3 -3
  89. package/dist/hooks/exports.cjs.map +1 -1
  90. package/dist/hooks/exports.d.cts +54 -75
  91. package/dist/hooks/exports.d.ts +54 -75
  92. package/dist/hooks/exports.mjs +3 -3
  93. package/dist/hooks/exports.mjs.map +1 -1
  94. package/dist/{txnEnum-DxPRHSJt.d.cts → txnEnum-CCuQUFlh.d.cts} +7 -0
  95. package/dist/{txnEnum-DxPRHSJt.d.ts → txnEnum-CCuQUFlh.d.ts} +7 -0
  96. package/dist/types/exports.cjs.map +1 -1
  97. package/dist/types/exports.d.cts +37 -4
  98. package/dist/types/exports.d.ts +37 -4
  99. package/dist/utils/exports.cjs +1 -1
  100. package/dist/utils/exports.cjs.map +1 -1
  101. package/dist/utils/exports.d.cts +2 -2
  102. package/dist/utils/exports.d.ts +2 -2
  103. package/dist/utils/exports.mjs +1 -1
  104. package/dist/utils/exports.mjs.map +1 -1
  105. package/package.json +25 -25
  106. package/src/abi/enso/ensoWalletV2Factory.ts +9 -0
  107. package/src/abi/exports.ts +1 -0
  108. package/src/abi/pyth/pyth.ts +0 -0
  109. package/src/actions/clients/BeraApolloClient.ts +3 -3
  110. package/src/actions/clients/getApolloClient.ts +5 -5
  111. package/src/actions/clients/getEnsoClient.ts +1 -1
  112. package/src/actions/dex/__tests__/aggregators.unit.test.ts +3 -3
  113. package/src/actions/dex/__tests__/getOnChainPool.unit.test.ts +1 -1
  114. package/src/actions/dex/aggregators/base.ts +12 -8
  115. package/src/actions/dex/aggregators/bex.ts +8 -8
  116. package/src/actions/dex/aggregators/bgt.ts +4 -4
  117. package/src/actions/dex/aggregators/enso/enso.ts +28 -20
  118. package/src/actions/dex/aggregators/enso/ensoErc4626.debug.test.ts +1 -1
  119. package/src/actions/dex/aggregators/enso/ensoErc4626.ts +7 -4
  120. package/src/actions/dex/aggregators/erc4626.ts +10 -6
  121. package/src/actions/dex/aggregators/fly.ts +9 -5
  122. package/src/actions/dex/aggregators/haiku.integration.test.ts +3 -3
  123. package/src/actions/dex/aggregators/haiku.ts +9 -5
  124. package/src/actions/dex/aggregators/honey.ts +15 -15
  125. package/src/actions/dex/aggregators/kyberswap.ts +8 -4
  126. package/src/actions/dex/aggregators/oogabooga.ts +8 -4
  127. package/src/actions/dex/aggregators/openOcean.ts +12 -8
  128. package/src/actions/dex/aggregators/wbera.ts +8 -4
  129. package/src/actions/dex/b-sdk.ts +2 -2
  130. package/src/actions/dex/getAllPools.ts +2 -2
  131. package/src/actions/dex/getApiPool.ts +2 -2
  132. package/src/actions/dex/getGlobalLiquidityAndSwapVolume.ts +2 -2
  133. package/src/actions/dex/getIsTokenExploited.ts +1 -1
  134. package/src/actions/dex/getOnChainPool.ts +3 -3
  135. package/src/actions/dex/getPoolEvents.ts +2 -2
  136. package/src/actions/dex/getPoolHistoricalData.ts +2 -2
  137. package/src/actions/dex/getVaultPausedState.ts +1 -1
  138. package/src/actions/enso/__tests__/getBendDemultiplyBundle.action.unit.test.ts +175 -0
  139. package/src/actions/enso/__tests__/getBendDemultiplyBundle.unit.test.ts +150 -0
  140. package/src/actions/enso/__tests__/getBendMultiplyBundle.action.unit.test.ts +138 -0
  141. package/src/actions/enso/__tests__/getBendMultiplyBundle.unit.test.ts +194 -0
  142. package/src/actions/enso/{getEnsoUserTokensWithBalances.debug.test.ts → __tests__/getEnsoUserTokensWithBalances.debug.test.ts} +3 -3
  143. package/src/actions/enso/__tests__/helpers.ts +42 -0
  144. package/src/actions/enso/__tests__/util.unit.test.ts +95 -0
  145. package/src/actions/enso/flashloan.ts +127 -0
  146. package/src/actions/enso/getBendDemultiplyBundle.ts +325 -0
  147. package/src/actions/enso/getBendMultiplyBundle.ts +348 -0
  148. package/src/actions/enso/getEnsoSwapBundle.ts +2 -2
  149. package/src/actions/enso/getEnsoUserTokensWithBalances.ts +5 -5
  150. package/src/actions/enso/util.ts +150 -5
  151. package/src/actions/exports.ts +0 -2
  152. package/src/actions/governance/__tests__/checkProposalField.unit.test.ts +2 -2
  153. package/src/actions/governance/__tests__/getDecodedFunctionData.integration.test.ts +2 -2
  154. package/src/actions/governance/__tests__/getQuorum.integration.test.ts +2 -2
  155. package/src/actions/governance/checkProposalField.ts +1 -1
  156. package/src/actions/governance/computeActualStatus.ts +1 -1
  157. package/src/actions/governance/getAllProposals.ts +1 -1
  158. package/src/actions/governance/getBodyErrors.ts +1 -1
  159. package/src/actions/governance/getProposalDetails.ts +1 -1
  160. package/src/actions/governance/getProposalFromTx.ts +1 -1
  161. package/src/actions/governance/getProposalParams.ts +3 -3
  162. package/src/actions/governance/getProposalVotes.ts +1 -1
  163. package/src/actions/governance/getQuorum.ts +2 -2
  164. package/src/actions/honey/getCollateralWeights.ts +2 -2
  165. package/src/actions/honey/getGlobalCapLimit.ts +4 -4
  166. package/src/actions/honey/getHoneyCollaterals.ts +5 -5
  167. package/src/actions/honey/getHoneyFees.ts +1 -1
  168. package/src/actions/honey/getHoneyPausedState.ts +1 -1
  169. package/src/actions/honey/getHoneyPreview.ts +3 -3
  170. package/src/actions/honey/getHoneyRootPriceOracle.ts +1 -1
  171. package/src/actions/honey/getHoneyVaultsBalance.ts +2 -2
  172. package/src/actions/honey/getRelativeCapLimit.ts +3 -3
  173. package/src/actions/honey/getSharesWithoutFees.ts +1 -1
  174. package/src/actions/honey/getSwapPayload.ts +6 -6
  175. package/src/actions/honey/isBadCollateralAsset.ts +2 -2
  176. package/src/actions/honey/isBasketModeEnabled.ts +2 -2
  177. package/src/actions/honey/tests/pyth.integration.test.ts +3 -3
  178. package/src/actions/misc/getBlockTimestamp.ts +2 -2
  179. package/src/actions/pol/__tests__/getAllValidators.integration.test.ts +2 -2
  180. package/src/actions/pol/__tests__/rewardVaults.integration.test.ts +1 -1
  181. package/src/actions/pol/getBGTGlobalInfo.ts +2 -2
  182. package/src/actions/pol/getBgtAprSimulation.ts +1 -1
  183. package/src/actions/pol/getBgtAprSimultaion.unit.test.ts +1 -1
  184. package/src/actions/pol/getBgtTokenTotalBoosts.ts +2 -2
  185. package/src/actions/pol/getBgtTokenTotalSupply.ts +2 -2
  186. package/src/actions/pol/getBlockTime.debug.test.ts +13 -0
  187. package/src/actions/pol/getBlockTime.ts +14 -23
  188. package/src/actions/pol/getEarnedStakedBeraVault.ts +3 -3
  189. package/src/actions/pol/getGlobalCuttingBoard.ts +0 -0
  190. package/src/actions/pol/getGlobalData.ts +2 -2
  191. package/src/actions/pol/getIncentiveFeeClaimStats.ts +4 -4
  192. package/src/actions/pol/getLSTStakeConfig.ts +5 -5
  193. package/src/actions/pol/getMarkets.ts +2 -2
  194. package/src/actions/pol/getRewardProofsByValidator.ts +4 -4
  195. package/src/actions/pol/getRewardTokenToBeraRate.ts +1 -1
  196. package/src/actions/pol/getRewardVault.ts +3 -3
  197. package/src/actions/pol/getRewardVaultBeaconImplementation.integration.test.ts +1 -1
  198. package/src/actions/pol/getRewardVaultBeaconImplementation.ts +3 -3
  199. package/src/actions/pol/getRewardVaultDurationConstants.integration.test.ts +1 -1
  200. package/src/actions/pol/getRewardVaultDurationConstants.ts +1 -1
  201. package/src/actions/pol/getRewardVaultFromToken.ts +1 -1
  202. package/src/actions/pol/getRewardVaultIncentives.ts +2 -2
  203. package/src/actions/pol/getRewardVaultRewards.ts +1 -1
  204. package/src/actions/pol/getRewardVaults.ts +1 -1
  205. package/src/actions/pol/getSWBeraVaultMetadata.ts +20 -22
  206. package/src/actions/pol/getSWBeraWithdrawal.ts +4 -4
  207. package/src/actions/pol/getStakedBeraAPR.ts +2 -2
  208. package/src/actions/pol/getStakedBeraSnapshots.ts +2 -2
  209. package/src/actions/pol/getStakingDailyAssets.ts +3 -3
  210. package/src/actions/pol/getStakingTokenInformation.ts +2 -2
  211. package/src/actions/pol/getTotalStakedAmount.ts +1 -1
  212. package/src/actions/pol/getUserClaimableIncentives.ts +4 -4
  213. package/src/actions/pol/getUserVaultInfo.ts +1 -1
  214. package/src/actions/pol/getUserVaults.ts +4 -4
  215. package/src/actions/pol/getUserVaultsBalance.ts +1 -1
  216. package/src/actions/pol/getUserVaultsReward.ts +0 -0
  217. package/src/actions/pol/getVaultHistory.ts +2 -2
  218. package/src/actions/pol/getVaultValidators.ts +1 -1
  219. package/src/actions/pol/getVaultsSupply.ts +0 -0
  220. package/src/actions/prices/__tests__/prices.integration.test.ts +2 -2
  221. package/src/actions/prices/getTokenCurrentPrices.ts +5 -5
  222. package/src/actions/pyth/getHoneyPythFeeds.ts +2 -2
  223. package/src/actions/pyth/getUpdateFee.ts +2 -2
  224. package/src/actions/tokens/getAllowances.ts +2 -2
  225. package/src/actions/tokens/getTokenInformation.ts +2 -2
  226. package/src/actions/tokens/getTokens.ts +3 -3
  227. package/src/actions/tokens/getUnderlyingToken.ts +4 -4
  228. package/src/actions/tokens/getWalletBalances.integration.test.ts +1 -1
  229. package/src/actions/tokens/getWalletBalances.ts +4 -4
  230. package/src/actions/transactions/beraWriteContract.integration.test.ts +6 -6
  231. package/src/actions/transactions/beraWriteContract.ts +12 -12
  232. package/src/actions/validators/getActiveBoostAndCommissionChangeDelay.integration.test.ts +1 -1
  233. package/src/actions/validators/getActiveBoostAndCommissionChangeDelay.ts +1 -1
  234. package/src/actions/validators/getAllValidators.ts +2 -2
  235. package/src/actions/validators/getApiValidator.ts +2 -2
  236. package/src/actions/validators/getBaselineRewardAllocation.ts +1 -1
  237. package/src/actions/validators/getDailyValidatorBlockStats.ts +1 -1
  238. package/src/actions/validators/getDefaultRewardAllocation.ts +1 -1
  239. package/src/actions/validators/getUserActiveValidators.ts +31 -33
  240. package/src/actions/validators/getUserBoosts.ts +12 -8
  241. package/src/actions/validators/getUserBoostsOnValidator.ts +15 -3
  242. package/src/actions/validators/getUserStakingPositions.ts +1 -1
  243. package/src/actions/validators/getValidatorAnalytics.ts +2 -2
  244. package/src/actions/validators/getValidatorCommission.ts +1 -1
  245. package/src/actions/validators/getValidatorEstimatedBgtPerYear.ts +1 -1
  246. package/src/actions/validators/getValidatorOperatorAddress.ts +1 -1
  247. package/src/actions/validators/getValidatorQueuedCommission.ts +1 -1
  248. package/src/actions/validators/getValidatorQueuedOperatorAddress.ts +1 -1
  249. package/src/actions/validators/getValidatorQueuedRewardAllocation.ts +1 -1
  250. package/src/actions/validators/getValidatorRewardAllocation.ts +1 -1
  251. package/src/actions/validators/getValidatorRewardAllocatorAddress.ts +1 -1
  252. package/src/actions/validators/utils/__tests__/validatorUtils.integration.test.ts +4 -4
  253. package/src/contexts/BeraFlags/defaultFlags.ts +4 -0
  254. package/src/contexts/BexStatusProvider.tsx +1 -1
  255. package/src/contexts/HoneyConfigProvider.tsx +3 -3
  256. package/src/contexts/SwrFallback.tsx +2 -2
  257. package/src/contexts/TokensProvider.tsx +3 -3
  258. package/src/contexts/block-time-provider.tsx +1 -1
  259. package/src/contexts/exports.ts +0 -0
  260. package/src/data/contracts.ts +10 -0
  261. package/src/enum/exports.ts +0 -0
  262. package/src/enum/polling.ts +0 -0
  263. package/src/enum/txnEnum.ts +9 -0
  264. package/src/errors/BeraMonitoring.ts +2 -2
  265. package/src/errors/BeraTracing.ts +2 -2
  266. package/src/errors/RequestError.ts +1 -1
  267. package/src/errors/assert.ts +18 -0
  268. package/src/errors/getErrorMessage.ts +0 -0
  269. package/src/errors/getRevertReason.integration.test.ts +7 -7
  270. package/src/errors/getRevertReason.ts +1 -1
  271. package/src/errors/parseViemError.ts +1 -1
  272. package/src/hooks/bend/useGetConvertToAssets.ts +4 -4
  273. package/src/hooks/dex/useAggregatorsQuotes.ts +19 -19
  274. package/src/hooks/dex/useAggregatorsRouterFeeBps.ts +2 -2
  275. package/src/hooks/dex/useAllUserPools.ts +3 -3
  276. package/src/hooks/dex/useApiPool.ts +3 -3
  277. package/src/hooks/dex/useBexStatus.ts +1 -1
  278. package/src/hooks/dex/useCreatePool.ts +9 -9
  279. package/src/hooks/dex/useExploitedTokens.ts +3 -3
  280. package/src/hooks/dex/useGlobalLiquidityAndSwapVolume.ts +1 -1
  281. package/src/hooks/dex/useLiquidityMismatch.ts +3 -3
  282. package/src/hooks/dex/useLpPosition.ts +7 -4
  283. package/src/hooks/dex/useMultipleTokenApprovalsWithSlippage.ts +4 -4
  284. package/src/hooks/dex/useOnChainPoolData.ts +3 -3
  285. package/src/hooks/dex/usePollPoolCreationRelayerApproval.ts +3 -3
  286. package/src/hooks/dex/usePool.ts +7 -40
  287. package/src/hooks/dex/usePoolEvents.ts +2 -2
  288. package/src/hooks/dex/usePoolHistoricalData.ts +6 -3
  289. package/src/hooks/dex/usePools.ts +3 -3
  290. package/src/hooks/dex/usePriceImpact.ts +2 -2
  291. package/src/hooks/dex/useSingleAggregatorQuote.ts +13 -13
  292. package/src/hooks/enso/useBendDemultiply.ts +158 -0
  293. package/src/hooks/enso/useBendMultiply.ts +163 -0
  294. package/src/hooks/enso/useBendZapSupply.ts +7 -7
  295. package/src/hooks/enso/useEnsoSwapBundle.ts +6 -6
  296. package/src/hooks/enso/useEnsoUserTokensWithBalances.ts +5 -5
  297. package/src/hooks/enso/useEnsoWalletV2Address.ts +38 -0
  298. package/src/hooks/enso/useIsBendAuthorized.ts +47 -0
  299. package/src/hooks/enso/useZapStakeBera.ts +4 -4
  300. package/src/hooks/exports.ts +4 -3
  301. package/src/hooks/governance/useCreateProposal.ts +3 -3
  302. package/src/hooks/governance/useGetPastVotes.ts +2 -2
  303. package/src/hooks/governance/useHasVoted.ts +2 -2
  304. package/src/hooks/governance/useIsCanceller.ts +4 -4
  305. package/src/hooks/governance/usePollAllProposals.ts +3 -3
  306. package/src/hooks/governance/usePollProposal.ts +7 -4
  307. package/src/hooks/governance/usePollProposalThreshold.ts +3 -3
  308. package/src/hooks/governance/usePollProposalVotes.ts +1 -1
  309. package/src/hooks/governance/usePollUserDelegates.ts +7 -4
  310. package/src/hooks/governance/useProposalFromTx.ts +1 -1
  311. package/src/hooks/governance/useProposalSnapshot.ts +2 -2
  312. package/src/hooks/governance/useProposalState.ts +2 -2
  313. package/src/hooks/governance/useProposalTimelockState.ts +2 -2
  314. package/src/hooks/governance/useQuorum.ts +1 -1
  315. package/src/hooks/honey/useCappedGlobally.ts +8 -5
  316. package/src/hooks/honey/useCappedRelatively.ts +7 -4
  317. package/src/hooks/honey/useCollateralWeights.ts +8 -5
  318. package/src/hooks/honey/useHoneyAlerts.ts +5 -5
  319. package/src/hooks/honey/useHoneyBalances.ts +7 -7
  320. package/src/hooks/honey/useHoneyChartData.ts +1 -1
  321. package/src/hooks/honey/useHoneySwapState.ts +4 -4
  322. package/src/hooks/honey/useHoneyVaultsBalance.ts +8 -5
  323. package/src/hooks/honey/useIsBadCollateralAsset.ts +9 -6
  324. package/src/hooks/honey/useIsBasketModeEnabled.ts +8 -5
  325. package/src/hooks/honey/usePythLatestPrices.ts +4 -4
  326. package/src/hooks/perps/usePythUpdateFee.ts +4 -4
  327. package/src/hooks/pol/useBgtAprSimulation.ts +1 -1
  328. package/src/hooks/pol/useBgtUnstakedBalance.ts +7 -4
  329. package/src/hooks/pol/useClaimableFees.ts +4 -4
  330. package/src/hooks/pol/useOnChainRewardVault.ts +7 -7
  331. package/src/hooks/pol/usePollGlobalData.ts +9 -3
  332. package/src/hooks/pol/usePollMarkets.ts +5 -2
  333. package/src/hooks/pol/useQueuedBeraUnlock.ts +4 -4
  334. package/src/hooks/pol/useRewardTokenToBeraRate.ts +4 -4
  335. package/src/hooks/pol/useRewardVault.ts +5 -2
  336. package/src/hooks/pol/useRewardVaultBalanceFromStakingToken.ts +2 -2
  337. package/src/hooks/pol/useRewardVaultFromToken.ts +2 -2
  338. package/src/hooks/pol/useRewardVaultIncentives.ts +2 -2
  339. package/src/hooks/pol/useRewardVaultRewards.ts +3 -3
  340. package/src/hooks/pol/useRewardVaults.ts +2 -2
  341. package/src/hooks/pol/useStakedAPR.ts +3 -3
  342. package/src/hooks/pol/useStakedData.ts +10 -10
  343. package/src/hooks/pol/useStakedSnapshots.ts +3 -3
  344. package/src/hooks/pol/useStakingVaultsMetadata.ts +40 -0
  345. package/src/hooks/pol/useTotalStakedAmount.ts +2 -2
  346. package/src/hooks/pol/useUserVaultInfo.ts +8 -5
  347. package/src/hooks/pol/useUserVaults.ts +7 -4
  348. package/src/hooks/pol/useVaultAddress.ts +2 -2
  349. package/src/hooks/pol/useVaultHistory.ts +2 -2
  350. package/src/hooks/pol/useVaultValidators.ts +5 -2
  351. package/src/hooks/tokens/useBeraCurrentPrice.ts +1 -1
  352. package/src/hooks/tokens/useMultipleTokenInformation.ts +7 -4
  353. package/src/hooks/tokens/usePollAllowances.ts +7 -4
  354. package/src/hooks/tokens/usePollBalance.ts +8 -5
  355. package/src/hooks/tokens/usePollWalletBalances.ts +8 -5
  356. package/src/hooks/tokens/useStakingTokenInformation.ts +7 -4
  357. package/src/hooks/tokens/useTokenCurrentPrice.ts +1 -1
  358. package/src/hooks/tokens/useTokenCurrentPrices.ts +6 -6
  359. package/src/hooks/tokens/useTokenInformation.ts +8 -5
  360. package/src/hooks/tokens/useTokenPrice.ts +1 -1
  361. package/src/hooks/tokens/useTokenPrices.ts +4 -4
  362. package/src/hooks/tokens/useTokens.ts +3 -3
  363. package/src/hooks/tokens/useTotalSupply.ts +1 -1
  364. package/src/hooks/tokens/useUnderlyingAsset.ts +3 -3
  365. package/src/hooks/useBlockToTimestamp.ts +5 -5
  366. package/src/hooks/useContractWrite/index.ts +0 -0
  367. package/src/hooks/useContractWrite/stateReducer.ts +0 -0
  368. package/src/hooks/useContractWrite/types.ts +2 -2
  369. package/src/hooks/useContractWrite/useBeraContractWrite.ts +5 -6
  370. package/src/hooks/useGetVerifiedAbi.ts +1 -1
  371. package/src/hooks/usePrevious.ts +0 -0
  372. package/src/hooks/validators/useAllValidators.ts +7 -4
  373. package/src/hooks/validators/useApiEnrichedAllocation.ts +2 -2
  374. package/src/hooks/validators/useApiValidator.ts +5 -2
  375. package/src/hooks/validators/useBaselineRewardAllocation.ts +2 -2
  376. package/src/hooks/validators/useDailyValidatorBlockStats.ts +3 -3
  377. package/src/hooks/validators/useDefaultRewardAllocation.ts +4 -4
  378. package/src/hooks/validators/useManagedValidatorRole.ts +8 -5
  379. package/src/hooks/validators/useOnChainValidator.ts +6 -3
  380. package/src/hooks/validators/useStakingPoolBatch.ts +7 -4
  381. package/src/hooks/validators/useUserActiveValidators.ts +6 -3
  382. package/src/hooks/validators/useUserBoostsOnValidator.ts +3 -3
  383. package/src/hooks/validators/useUserClaimableIncentives.ts +9 -9
  384. package/src/hooks/validators/useUserStakingPositions.ts +1 -1
  385. package/src/hooks/validators/useValidator.ts +1 -1
  386. package/src/hooks/validators/useValidatorAnalytics.ts +3 -3
  387. package/src/hooks/validators/useValidatorCommission.ts +5 -2
  388. package/src/hooks/validators/useValidatorEstimatedBgtPerYear.ts +3 -3
  389. package/src/hooks/validators/useValidatorQueuedCommission.ts +6 -3
  390. package/src/hooks/validators/useValidatorQueuedOperatorAddress.ts +5 -2
  391. package/src/hooks/validators/useValidatorQueuedRewardAllocation.ts +6 -3
  392. package/src/hooks/validators/useValidatorRewardAllocation.ts +2 -2
  393. package/src/types/dex.d.ts +1 -1
  394. package/src/types/enso.d.ts +34 -0
  395. package/src/types/exports.ts +0 -0
  396. package/src/types/global.d.ts +3 -3
  397. package/src/types/governance.d.ts +1 -1
  398. package/src/types/honeySwap.d.ts +3 -3
  399. package/src/types/staking.d.ts +0 -0
  400. package/src/utils/beraFetch.ts +1 -1
  401. package/src/utils/createEmitter.ts +1 -1
  402. package/src/utils/exports.ts +0 -0
  403. package/src/utils/filter.ts +0 -0
  404. package/src/utils/formatIncentivesTokenMap.ts +1 -1
  405. package/src/utils/formatInputTokenValue.ts +0 -0
  406. package/src/utils/formatNumber.ts +0 -0
  407. package/src/utils/getContractName.ts +1 -1
  408. package/src/utils/getHoneySwapMessage.test.ts +1 -1
  409. package/src/utils/getHoneySwapMessage.ts +1 -1
  410. package/src/utils/parseBaseArgs.ts +1 -1
  411. package/src/utils/parseBaseArgs.unit.test.ts +1 -1
  412. package/src/utils/parseWhiskToken.ts +1 -1
  413. package/src/utils/poolNamings.ts +1 -1
  414. package/src/utils/tokens.ts +2 -2
  415. package/src/utils/tokens.unit.test.ts +1 -1
  416. package/src/utils/truncateHash.ts +0 -0
  417. package/.claude/skills/berajs/SKILL.md +0 -222
  418. package/.claude/skills/berajs/references/dex.md +0 -235
  419. package/.claude/skills/berajs/references/pol.md +0 -194
  420. package/.claude/skills/berajs/references/staking.md +0 -198
  421. package/.claude/skills/berajs/references/tokens.md +0 -170
  422. package/LICENSE +0 -21
  423. package/dist/chunk-22J3YJDN.cjs +0 -2
  424. package/dist/chunk-22J3YJDN.cjs.map +0 -1
  425. package/dist/chunk-2LL3P5PN.mjs +0 -2
  426. package/dist/chunk-2LL3P5PN.mjs.map +0 -1
  427. package/dist/chunk-4GU2O2OW.cjs +0 -4
  428. package/dist/chunk-4GU2O2OW.cjs.map +0 -1
  429. package/dist/chunk-55L7STYD.mjs +0 -2
  430. package/dist/chunk-55L7STYD.mjs.map +0 -1
  431. package/dist/chunk-5XWELBWR.mjs +0 -2
  432. package/dist/chunk-5XWELBWR.mjs.map +0 -1
  433. package/dist/chunk-6LDOG5RL.cjs.map +0 -1
  434. package/dist/chunk-7LNBSOVV.cjs +0 -2
  435. package/dist/chunk-7LNBSOVV.cjs.map +0 -1
  436. package/dist/chunk-7SMWQ6SN.mjs.map +0 -1
  437. package/dist/chunk-7WRTK7RJ.mjs.map +0 -1
  438. package/dist/chunk-AX2YQQFQ.mjs.map +0 -1
  439. package/dist/chunk-BS6K7HGH.cjs +0 -2
  440. package/dist/chunk-BS6K7HGH.cjs.map +0 -1
  441. package/dist/chunk-C3FHGFLK.mjs +0 -2
  442. package/dist/chunk-C3FHGFLK.mjs.map +0 -1
  443. package/dist/chunk-C6ZGUO4H.cjs.map +0 -1
  444. package/dist/chunk-FCWDGE62.cjs.map +0 -1
  445. package/dist/chunk-RW3JFPED.mjs +0 -4
  446. package/dist/chunk-RW3JFPED.mjs.map +0 -1
  447. package/dist/chunk-S3EAKCVM.cjs +0 -2
  448. package/dist/chunk-S3EAKCVM.cjs.map +0 -1
  449. package/dist/chunk-SWMJQOH6.cjs +0 -2
  450. package/dist/chunk-SWMJQOH6.cjs.map +0 -1
  451. package/dist/chunk-THATXCJK.mjs +0 -2
  452. package/dist/chunk-THATXCJK.mjs.map +0 -1
  453. package/dist/chunk-VXL2ZZ4X.cjs +0 -2
  454. package/dist/chunk-VXL2ZZ4X.cjs.map +0 -1
  455. package/dist/chunk-YNO7BCCM.mjs +0 -2
  456. package/dist/chunk-YXLFOEZN.mjs +0 -2
  457. package/dist/chunk-YXLFOEZN.mjs.map +0 -1
  458. package/dist/chunk-YZV5LKIP.cjs.map +0 -1
  459. package/src/actions/dex/getSubgraphPool.ts +0 -30
  460. package/src/actions/validators/getManagedValidatorByAccount.ts +0 -32
  461. package/src/hooks/pol/useSWBeraVaultMetadata.ts +0 -35
  462. package/src/hooks/validators/useManagedValidatorByAccount.ts +0 -40
  463. package/src/hooks/validators/useSubgraphUserValidators.ts +0 -36
@@ -1,235 +0,0 @@
1
- # BeraJS — DEX (BEX) Reference
2
-
3
- BEX is Berachain's native DEX. `@berachain/berajs` provides pool data, swap quotes via multiple aggregators, and protocol pause status.
4
-
5
- ## Pool List
6
-
7
- ### `usePools` / `getAllPools`
8
-
9
- Paginated pool list with search and sorting.
10
-
11
- ```tsx
12
- import { usePools } from "@berachain/berajs/hooks";
13
- import { GqlPoolOrderBy, GqlPoolOrderDirection } from "@berachain/graphql/pol/api";
14
-
15
- const { data, isLoading } = usePools({
16
- first: 20,
17
- skip: 0,
18
- orderBy: GqlPoolOrderBy.TotalLiquidity,
19
- orderDirection: GqlPoolOrderDirection.Desc,
20
- textSearch: "HONEY", // optional
21
- });
22
-
23
- // data: { pools: GqlPoolFragment[], count: number }
24
- ```
25
-
26
- ## Single Pool
27
-
28
- ### `usePool` / `getApiPool`
29
-
30
- Fetch one pool by its contract address.
31
-
32
- ```tsx
33
- import { usePool } from "@berachain/berajs/hooks";
34
-
35
- const { data: pool } = usePool({ id: "0xPoolAddress" });
36
- ```
37
-
38
- ## Swap Quotes
39
-
40
- ### `useAggregatorsQuotes`
41
-
42
- Get quotes from **all enabled aggregators** simultaneously, ranked best to worst.
43
-
44
- ```tsx
45
- import { useAggregatorsQuotes } from "@berachain/berajs/hooks";
46
- import { SwapKind } from "@berachain-foundation/berancer-sdk";
47
- import type { IAggregatorArgs } from "@berachain/berajs/types";
48
-
49
- const swapArgs: IAggregatorArgs = {
50
- tokenIn: {
51
- address: "0xWBERA",
52
- decimals: 18,
53
- symbol: "WBERA",
54
- name: "Wrapped BERA",
55
- chainId: 80094,
56
- },
57
- tokenOut: {
58
- address: "0xHONEY",
59
- decimals: 18,
60
- symbol: "HONEY",
61
- name: "Honey",
62
- chainId: 80094,
63
- },
64
- amount: "1000000000000000000", // 1 WBERA in wei
65
- slippage: 0.5, // 0.5%
66
- account: "0x...",
67
- swapKind: SwapKind.GivenIn,
68
- };
69
-
70
- const { data: quotes, isLoading } = useAggregatorsQuotes(swapArgs);
71
-
72
- // quotes: IAggregatorQuote[] | undefined — sorted best to worst
73
- // quotes[0].isBest === true
74
- // quotes[0].amountOut — output amount as string
75
- // quotes[0].amountOutUsd — USD value as string
76
- // quotes[0].priceImpactPercentage
77
- // quotes[0].getCalldata?.({ account }) → { address, data, value, abi?, functionName? }
78
- ```
79
-
80
- ### `useSingleAggregatorQuote`
81
-
82
- Quote from one specific aggregator. Useful for dedicated aggregator UIs.
83
-
84
- ```tsx
85
- import { useSingleAggregatorQuote } from "@berachain/berajs/hooks";
86
- // Same args as useAggregatorsQuotes, plus aggregator name
87
- ```
88
-
89
- ## Protocol/Pool Pause Status
90
-
91
- ### `useBexStatus`
92
-
93
- **Always check before allowing swaps or deposits.**
94
-
95
- ```tsx
96
- import { useBexStatus } from "@berachain/berajs/hooks";
97
-
98
- const { protocol, pool } = useBexStatus();
99
-
100
- // Disable all swaps when protocol is paused:
101
- if (protocol.isPaused) return <div>Protocol paused</div>;
102
-
103
- // Pool-level flags (set BexStatusProvider's onPoolChange first):
104
- pool?.isPaused // pool is paused
105
- pool?.isInRecoveryMode // proportional exit only
106
- pool?.disablePoolDeposits
107
- pool?.disablePoolWithdrawals
108
- ```
109
-
110
- To track a specific pool, call `onPoolChange` from the context:
111
-
112
- ```tsx
113
- import { useContext } from "react";
114
- import { BexStateContext } from "@berachain/berajs/contexts";
115
-
116
- const { onPoolChange } = useContext(BexStateContext);
117
-
118
- // When user navigates to a pool page:
119
- useEffect(() => {
120
- onPoolChange({ id: poolId, isInRecoveryMode, isPaused });
121
- }, [poolId]);
122
- ```
123
-
124
- ## Key Types
125
-
126
- ```ts
127
- type IAggregatorArgs = {
128
- tokenIn: MinimalERC20;
129
- tokenOut: MinimalERC20;
130
- amount: string; // wei string
131
- slippage: number; // e.g. 0.5 for 0.5%
132
- account?: Address;
133
- swapKind: SwapKind; // from @berachain-foundation/berancer-sdk
134
- publicClient?: PublicClient;
135
- aggregatorsFeeBps?: number;
136
- rewardVault?: Address; // stake output into this vault after swap
137
- };
138
-
139
- type IAggregatorQuote = {
140
- name: string;
141
- amountOut: string;
142
- amountOutUsd: string;
143
- amountIn: string;
144
- amountInUsd: string;
145
- priceImpactPercentage: number;
146
- exchangeRate: number;
147
- relativeLossPercentage: number;
148
- isBest?: boolean;
149
- allowanceRequirements: AllowanceQueryItem[];
150
- swapFeeBps: number;
151
- getCalldata?: ({ account }: { account: Address }) => Calldata;
152
- };
153
- ```
154
-
155
- ## Complete Example: Swap UI
156
-
157
- ```tsx
158
- "use client";
159
- import { useAggregatorsQuotes, useBeraContractWrite } from "@berachain/berajs/hooks";
160
- import { useBexStatus } from "@berachain/berajs/hooks";
161
- import { TransactionActionType } from "@berachain/berajs/enum";
162
- import { SwapKind } from "@berachain-foundation/berancer-sdk";
163
- import { useAccount } from "wagmi";
164
- import type { Address } from "viem";
165
-
166
- const WBERA = {
167
- address: "0x6969696969696969696969696969696969696969" as Address,
168
- decimals: 18,
169
- symbol: "WBERA",
170
- name: "Wrapped BERA",
171
- chainId: 80094,
172
- };
173
- const HONEY = {
174
- address: "0xFCBD14DC51f0A4d49d5E53C2E0950e0bC26d0Dce" as Address,
175
- decimals: 18,
176
- symbol: "HONEY",
177
- name: "Honey",
178
- chainId: 80094,
179
- };
180
-
181
- export function SwapUI({ amountIn }: { amountIn: string }) {
182
- const { address } = useAccount();
183
- const { protocol } = useBexStatus();
184
-
185
- const { data: quotes, isLoading: isQuoting } = useAggregatorsQuotes(
186
- {
187
- tokenIn: WBERA,
188
- tokenOut: HONEY,
189
- amount: amountIn,
190
- slippage: 0.5,
191
- account: address,
192
- swapKind: SwapKind.GivenIn,
193
- },
194
- { opts: { isEnabled: !!amountIn && amountIn !== "0" && !protocol.isPaused } }
195
- );
196
-
197
- const { write, isLoading: isSwapping } = useBeraContractWrite();
198
-
199
- const bestQuote = quotes?.[0];
200
-
201
- const handleSwap = () => {
202
- if (!bestQuote?.getCalldata || !address) return;
203
- const calldata = bestQuote.getCalldata({ account: address });
204
-
205
- write({
206
- address: calldata.address,
207
- data: calldata.data,
208
- value: calldata.value,
209
- message: "Swapping WBERA for HONEY...",
210
- actionType: TransactionActionType.SWAP,
211
- contractName: "bex.router",
212
- onSuccess: (receipt) => console.log("Swapped!", receipt.transactionHash),
213
- onError: (err) => console.error(err.displayMessage),
214
- });
215
- };
216
-
217
- if (protocol.isPaused) return <div>Protocol is paused</div>;
218
-
219
- return (
220
- <div>
221
- {isQuoting && <p>Getting quotes...</p>}
222
- {bestQuote && !isQuoting && (
223
- <div>
224
- <p>Best route: {bestQuote.name}</p>
225
- <p>You receive: {bestQuote.amountOut} HONEY (${bestQuote.amountOutUsd})</p>
226
- <p>Price impact: {bestQuote.priceImpactPercentage.toFixed(2)}%</p>
227
- <button onClick={handleSwap} disabled={isSwapping || !address}>
228
- {isSwapping ? "Swapping..." : "Swap"}
229
- </button>
230
- </div>
231
- )}
232
- </div>
233
- );
234
- }
235
- ```
@@ -1,194 +0,0 @@
1
- # BeraJS — POL Reference
2
-
3
- POL (Proof of Liquidity) is Berachain's validator incentive system. Protocols deploy **reward vaults** that emit **BGT** (non-transferable governance token) to stakers. Validators direct BGT emissions to vaults via their cutting board weights.
4
-
5
- ## Reward Vault List
6
-
7
- ### `useRewardVaults` / `getRewardVaults`
8
-
9
- Paginated list of reward vaults with optional filtering.
10
-
11
- ```tsx
12
- import { useRewardVaults } from "@berachain/berajs/hooks";
13
-
14
- const { data, isLoading, refresh } = useRewardVaults({
15
- filter: {
16
- first: 20,
17
- // where: { search: "kodiak" }
18
- },
19
- });
20
-
21
- // data: ApiVaultFragment[] | undefined
22
- // Each vault has: address, name, stakingToken, apr, tvl, etc.
23
- ```
24
-
25
- ```ts
26
- // Server-side:
27
- import { getRewardVaults } from "@berachain/berajs/actions";
28
- const vaults = await getRewardVaults({ filter: { first: 20 } });
29
- ```
30
-
31
- ### `useRewardVaultsQueryKey`
32
-
33
- Get the SWR cache key for SSR prefetching:
34
-
35
- ```ts
36
- import { useRewardVaultsQueryKey } from "@berachain/berajs/hooks";
37
- const key = useRewardVaultsQueryKey(filter, onChainIncentives);
38
- ```
39
-
40
- ## Single Vault
41
-
42
- ### `useRewardVault` / `getRewardVault`
43
-
44
- Fetch a single vault by its contract address.
45
-
46
- ```tsx
47
- import { useRewardVault } from "@berachain/berajs/hooks";
48
-
49
- const { data: vault } = useRewardVault({ address: "0xVaultAddress" });
50
- ```
51
-
52
- Throws `NotFoundError` if the vault does not exist.
53
-
54
- ## User Vault Position
55
-
56
- ### `useUserVaultInfo` / `getUserVaultInfo`
57
-
58
- Connected user's staked balance and earned BGT for a vault.
59
-
60
- ```tsx
61
- import { useUserVaultInfo } from "@berachain/berajs/hooks";
62
- import { useAccount } from "wagmi";
63
-
64
- const { address } = useAccount();
65
- const { data: vaultInfo } = useUserVaultInfo(
66
- { vaultAddress: "0xVault", account: address },
67
- { opts: { isEnabled: !!address } }
68
- );
69
-
70
- // vaultInfo: UserVaultInfo | undefined
71
- // {
72
- // balance: bigint, // staked amount in wei
73
- // delegatedBalance: bigint,
74
- // withdrawableBalance: bigint,
75
- // rewards: string, // earned BGT (formatted string)
76
- // percentage: string // user's % share of vault
77
- // }
78
- ```
79
-
80
- ### `useUserVaults` / `getUserVaults`
81
-
82
- All vaults where the user has an active staked position.
83
-
84
- ```tsx
85
- import { useUserVaults } from "@berachain/berajs/hooks";
86
-
87
- const { data: userVaults } = useUserVaults({ account: "0x..." });
88
- ```
89
-
90
- ## Vault Incentives
91
-
92
- ### `useRewardVaultIncentives` / `getRewardVaultIncentives`
93
-
94
- Incentive tokens offered by protocols to attract BGT emissions to their vault.
95
-
96
- ```tsx
97
- import { useRewardVaultIncentives } from "@berachain/berajs/hooks";
98
-
99
- const { data: incentives } = useRewardVaultIncentives({
100
- vaultAddress: "0xVault",
101
- });
102
- ```
103
-
104
- ## BGT APR
105
-
106
- ### `useBgtAprSimulation` / `getBgtAprSimulation`
107
-
108
- Estimate APR for a vault given a hypothetical BGT emission weight.
109
-
110
- ```tsx
111
- import { useBgtAprSimulation } from "@berachain/berajs/hooks";
112
-
113
- const { data: simulation } = useBgtAprSimulation({
114
- vaultAddress: "0xVault",
115
- proposedWeight: 0.1, // 10% of total BGT emissions
116
- });
117
- ```
118
-
119
- ## Transaction Action Types (POL)
120
-
121
- ```ts
122
- import { TransactionActionType } from "@berachain/berajs/enum";
123
-
124
- TransactionActionType.STAKE // "Stake"
125
- TransactionActionType.UNSTAKE // "Unstake"
126
- TransactionActionType.CLAIMING_REWARDS // "Claiming BGT"
127
- TransactionActionType.CREATE_BRIBE // "Add Incentives"
128
- TransactionActionType.CLAIMING_BRIBES // "Claiming Incentives"
129
- TransactionActionType.BONDING_BERA // "Stake BERA"
130
- TransactionActionType.UNBONDING_BERA // "Unstake BERA"
131
- TransactionActionType.QUEUE_UNBONDING_BERA // "Queue Unstake BERA"
132
- TransactionActionType.REDEEM_BGT // "Redeem BGT"
133
- ```
134
-
135
- ## Complete Example: Vault Card with Claim Button
136
-
137
- ```tsx
138
- "use client";
139
- import { useUserVaultInfo, useRewardVault } from "@berachain/berajs/hooks";
140
- import { useBeraContractWrite } from "@berachain/berajs/hooks";
141
- import { TransactionActionType } from "@berachain/berajs/enum";
142
- import { useAccount } from "wagmi";
143
- import type { Address } from "viem";
144
-
145
- // Minimal ABI for the getReward function on reward vaults
146
- const REWARD_VAULT_ABI = [{
147
- name: "getReward",
148
- type: "function",
149
- stateMutability: "nonpayable",
150
- inputs: [{ name: "account", type: "address" }],
151
- outputs: [{ name: "reward", type: "uint256" }],
152
- }] as const;
153
-
154
- export function VaultCard({ vaultAddress }: { vaultAddress: Address }) {
155
- const { address } = useAccount();
156
- const { data: vault } = useRewardVault({ address: vaultAddress });
157
- const { data: userInfo, refresh } = useUserVaultInfo(
158
- { vaultAddress, account: address },
159
- { opts: { isEnabled: !!address } }
160
- );
161
- const { write, isLoading } = useBeraContractWrite();
162
-
163
- const handleClaim = () => {
164
- if (!address) return;
165
- write({
166
- address: vaultAddress,
167
- abi: REWARD_VAULT_ABI,
168
- functionName: "getReward",
169
- params: [address],
170
- message: "Claiming BGT rewards...",
171
- actionType: TransactionActionType.CLAIMING_REWARDS,
172
- contractName: "pol.rewardVault",
173
- onSuccess: () => refresh(),
174
- });
175
- };
176
-
177
- if (!vault) return null;
178
-
179
- return (
180
- <div>
181
- <h3>{vault.name}</h3>
182
- {userInfo && (
183
- <>
184
- <p>Earned BGT: {userInfo.rewards}</p>
185
- <p>Your share: {userInfo.percentage}%</p>
186
- </>
187
- )}
188
- <button onClick={handleClaim} disabled={isLoading || !address}>
189
- {isLoading ? "Claiming..." : "Claim BGT"}
190
- </button>
191
- </div>
192
- );
193
- }
194
- ```
@@ -1,198 +0,0 @@
1
- # BeraJS — Liquid Staking (swBERA) Reference
2
-
3
- swBERA is Berachain's native liquid staking token. Users stake BERA (or WBERA) to receive swBERA, which accrues staking yield. LST (Liquid Staking Token) vaults follow the same pattern but for third-party protocols.
4
-
5
- ## APR
6
-
7
- ### `getStakedBeraAPR`
8
-
9
- Server-side action. Returns the current APR as a plain `number` (e.g. `0.12` = 12%).
10
-
11
- ```ts
12
- import { getStakedBeraAPR } from "@berachain/berajs/actions";
13
-
14
- const apr = await getStakedBeraAPR({ window: "DAY" });
15
- // or window: "WEEK" for 7-day annualised APR
16
- ```
17
-
18
- This is typically cached server-side and passed down as a prop, since APR only updates every ~12 hours on the backend.
19
-
20
- ## Vault Metadata
21
-
22
- ### `useSWBeraVaultMetadata` / `getSWBeraVaultMetadata`
23
-
24
- On-chain vault stats for a given receipt token address (e.g. swBERA contract address).
25
-
26
- ```tsx
27
- import { useSWBeraVaultMetadata } from "@berachain/berajs/hooks";
28
- import { config } from "@berachain/config/internal";
29
-
30
- const { data } = useSWBeraVaultMetadata(config.tokens.swbera);
31
-
32
- // data: VaultMetadata | undefined
33
- // {
34
- // current: {
35
- // exchangeRate: string, // how much BERA 1 swBERA redeems for (in wei, as string)
36
- // totalSupply: string, // total swBERA supply (formatted, not wei)
37
- // totalAssets: string, // total BERA staked (formatted)
38
- // tvl: string, // total WBERA in vault (formatted)
39
- // },
40
- // previous: { ... }, // same shape, from ~26 hours ago
41
- // totalWBeraIssued: string,
42
- // lockPeriod?: number, // unstake cooldown in seconds (undefined if no lock)
43
- // totalBuyBacks: number,
44
- // totalBuyBacksInLast24Hours: number,
45
- // }
46
- ```
47
-
48
- > Note: `useSWBeraVaultMetadata` requires `BlockTimeProvider` in the tree (provided by `BeraFlagsProvider`).
49
-
50
- ## Staking Configs
51
-
52
- ### `getLSTStakeConfig`
53
-
54
- Server-side action. Resolves a list of LST vault addresses into `StakingConfig[]` by reading each vault's `asset()` on-chain.
55
-
56
- ```ts
57
- import { getLSTStakeConfig } from "@berachain/berajs/actions";
58
- import { getServerSidePublicClient } from "@berachain/berajs/utils";
59
-
60
- const publicClient = await getServerSidePublicClient();
61
-
62
- // lstStakingVaults: Address[] from your config/edge config
63
- const lstConfigs = await getLSTStakeConfig({
64
- tokenList, // TokenWithMetadata[] — full token list to resolve symbols/metadata
65
- publicClient,
66
- lstStakingVaults, // vault contract addresses to resolve
67
- });
68
-
69
- // lstConfigs: StakingConfig[]
70
- ```
71
-
72
- **`StakingConfig` type:**
73
- ```ts
74
- type StakingConfig = {
75
- id: string; // vault address
76
- receiptToken: TokenWithMetadata; // e.g. swBERA token
77
- inputTokens: TokenWithMetadata[]; // e.g. [BERA, WBERA]
78
- };
79
- ```
80
-
81
- The native swBERA config is built manually (not via `getLSTStakeConfig`):
82
-
83
- ```ts
84
- const nativeStakingConfig: StakingConfig = {
85
- id: swberaToken.address,
86
- receiptToken: swberaToken,
87
- inputTokens: [beraToken, wBeraToken],
88
- };
89
-
90
- const allConfigs = [nativeStakingConfig, ...lstConfigs];
91
- ```
92
-
93
- ## User Staked Positions & Earnings
94
-
95
- ### `useStakedData`
96
-
97
- The primary hook for user staking data. Loads in two phases for progressive rendering:
98
-
99
- - **`balances`** (fast): staked amounts and USD values, earnings are `0`
100
- - **`data`** (slow): full picture including earnings from the vault
101
-
102
- ```tsx
103
- import { useStakedData } from "@berachain/berajs/hooks";
104
-
105
- const {
106
- balances, // StakedBeraAsset[] | undefined — fast path, no earnings
107
- data, // StakedBeraAsset[] | undefined — slow path, full earnings
108
- isLoadingBalances, // true while fast path is pending
109
- isLoadingPositions, // true while slow path is pending
110
- } = useStakedData(stakingConfigs); // StakingConfig[]
111
-
112
- // Show balances immediately, swap in data when available
113
- const positions = data ?? balances ?? [];
114
- const activePositions = positions.filter((p) => p.stakedAmount > 0);
115
- ```
116
-
117
- **`StakedBeraAsset` type:**
118
- ```ts
119
- type StakedBeraAsset = {
120
- token: TokenWithMetadata; // the input token (e.g. BERA)
121
- apr: number; // current APR as decimal (e.g. 0.12 = 12%)
122
- stakedAmount: number; // staked amount in token units
123
- stakedAmountUsd: number; // USD value of staked amount
124
- earnedAmount: number; // unrealised earnings in token units (0 on fast path)
125
- earnedAmountUsd: number; // USD value of earnings (0 on fast path)
126
- isLoadingEarnings?: boolean; // true on fast path while earnings are still loading
127
- };
128
- ```
129
-
130
- ## Queued Withdrawals
131
-
132
- ### `useQueuedBeraUnlock`
133
-
134
- Fetches pending (queued but not yet claimable) withdrawals for a user.
135
-
136
- ```tsx
137
- import { useQueuedBeraUnlock } from "@berachain/berajs/hooks";
138
-
139
- const { data: queuedWithdrawals } = useQueuedBeraUnlock({
140
- receiptTokenAddresses: stakingConfigs.map((c) => c.receiptToken.address),
141
- account,
142
- version: "V2", // always "V2" for new deployments
143
- });
144
-
145
- const totalQueued = queuedWithdrawals?.reduce(
146
- (sum, q) => sum + Number(q.withdrawalAmount),
147
- 0,
148
- ) ?? 0;
149
- const hasQueuedWithdrawal = totalQueued > 0;
150
- ```
151
-
152
- ## Key Types
153
-
154
- ```ts
155
- import type { StakingConfig, StakedBeraAsset } from "@berachain/berajs/types";
156
- import type { VaultMetadata } from "@berachain/berajs/actions";
157
- ```
158
-
159
- ## Complete Example: Staked Balance Display
160
-
161
- ```tsx
162
- "use client";
163
- import { useStakedData } from "@berachain/berajs/hooks";
164
- import type { StakingConfig } from "@berachain/berajs/types";
165
-
166
- export function StakedBalance({ configs }: { configs: StakingConfig[] }) {
167
- const { balances, data: positions, isLoadingBalances } = useStakedData(configs);
168
-
169
- // Use full positions when available, otherwise show balances immediately
170
- const source = positions ?? balances ?? [];
171
- const active = source.filter((p) => p.stakedAmount > 0);
172
-
173
- const totalStaked = active.reduce((sum, p) => sum + p.stakedAmountUsd, 0);
174
- const totalEarned = active.reduce((sum, p) => sum + p.earnedAmountUsd, 0);
175
- const hasPositions = !!positions;
176
-
177
- if (!isLoadingBalances && active.length === 0) {
178
- return <p>No staked assets.</p>;
179
- }
180
-
181
- return (
182
- <div>
183
- <p>Total Staked: ${totalStaked.toFixed(2)}</p>
184
- <p>Total Earnings: {hasPositions ? `$${totalEarned.toFixed(2)}` : "..."}</p>
185
- {active.map((asset) => (
186
- <div key={asset.token.address}>
187
- <span>{asset.token.symbol}</span>
188
- <span>{asset.stakedAmount.toFixed(4)} staked</span>
189
- <span>
190
- {asset.isLoadingEarnings ? "..." : `${asset.earnedAmount.toFixed(4)} earned`}
191
- </span>
192
- <span>APR: {(asset.apr * 100).toFixed(2)}%</span>
193
- </div>
194
- ))}
195
- </div>
196
- );
197
- }
198
- ```