@berachain/berajs 0.2.2 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (205) hide show
  1. package/.claude/skills/berajs/SKILL.md +222 -0
  2. package/.claude/skills/berajs/references/dex.md +235 -0
  3. package/.claude/skills/berajs/references/pol.md +194 -0
  4. package/.claude/skills/berajs/references/staking.md +198 -0
  5. package/.claude/skills/berajs/references/tokens.md +170 -0
  6. package/dist/{BexStatusProvider-nS3NcdxI.d.cts → BexStatusProvider-DRymVlQf.d.cts} +1 -1
  7. package/dist/{BexStatusProvider-nS3NcdxI.d.ts → BexStatusProvider-DRymVlQf.d.ts} +1 -1
  8. package/dist/{HoneyConfigProvider-CK6mOKFH.d.ts → HoneyConfigProvider-DVP_9KZn.d.ts} +1 -1
  9. package/dist/{HoneyConfigProvider-Ca3ouozs.d.cts → HoneyConfigProvider-DfkjmzEf.d.cts} +1 -1
  10. package/dist/abi/exports.cjs +1 -1
  11. package/dist/abi/exports.cjs.map +1 -1
  12. package/dist/abi/exports.d.cts +1893 -25347
  13. package/dist/abi/exports.d.ts +1893 -25347
  14. package/dist/abi/exports.mjs +1 -1
  15. package/dist/abi/exports.mjs.map +1 -1
  16. package/dist/actions/exports.cjs +1 -1
  17. package/dist/actions/exports.cjs.map +1 -1
  18. package/dist/actions/exports.d.cts +10 -9
  19. package/dist/actions/exports.d.ts +10 -9
  20. package/dist/actions/exports.mjs +1 -1
  21. package/dist/actions/exports.mjs.map +1 -1
  22. package/dist/chunk-4GU2O2OW.cjs +4 -0
  23. package/dist/chunk-4GU2O2OW.cjs.map +1 -0
  24. package/dist/chunk-5XWELBWR.mjs +2 -0
  25. package/dist/chunk-5XWELBWR.mjs.map +1 -0
  26. package/dist/chunk-BS6K7HGH.cjs +2 -0
  27. package/dist/chunk-BS6K7HGH.cjs.map +1 -0
  28. package/dist/chunk-NLVWRMGD.mjs +2 -0
  29. package/dist/chunk-NLVWRMGD.mjs.map +1 -0
  30. package/dist/chunk-OUD27MU7.cjs +2 -0
  31. package/dist/chunk-OUD27MU7.cjs.map +1 -0
  32. package/dist/chunk-RW3JFPED.mjs +4 -0
  33. package/dist/chunk-RW3JFPED.mjs.map +1 -0
  34. package/dist/chunk-S3EAKCVM.cjs +2 -0
  35. package/dist/{chunk-PKXAW6MO.cjs.map → chunk-S3EAKCVM.cjs.map} +1 -1
  36. package/dist/chunk-YNO7BCCM.mjs +2 -0
  37. package/dist/{chunk-3YXSUBA5.mjs.map → chunk-YNO7BCCM.mjs.map} +1 -1
  38. package/dist/contexts/exports.d.cts +3 -3
  39. package/dist/contexts/exports.d.ts +3 -3
  40. package/dist/enum/exports.d.cts +1 -1
  41. package/dist/enum/exports.d.ts +1 -1
  42. package/dist/errors/exports.d.cts +1 -1
  43. package/dist/errors/exports.d.ts +1 -1
  44. package/dist/{getValidatorQueuedOperatorAddress-RW4OMcD1.d.ts → getValidatorQueuedOperatorAddress-CqR6cyqC.d.ts} +3 -3
  45. package/dist/{getValidatorQueuedOperatorAddress-Dstyaomr.d.cts → getValidatorQueuedOperatorAddress-DZgrPmZ2.d.cts} +3 -3
  46. package/dist/{global.d-wYu8G8IQ.d.ts → global.d-BeYWDreg.d.ts} +5 -4
  47. package/dist/{global.d-CN6l2b9E.d.cts → global.d-DghRxpHd.d.cts} +5 -4
  48. package/dist/hooks/exports.cjs +3 -3
  49. package/dist/hooks/exports.cjs.map +1 -1
  50. package/dist/hooks/exports.d.cts +63 -39
  51. package/dist/hooks/exports.d.ts +63 -39
  52. package/dist/hooks/exports.mjs +3 -3
  53. package/dist/hooks/exports.mjs.map +1 -1
  54. package/dist/{txnEnum-BlBYhNRl.d.cts → txnEnum-DxPRHSJt.d.cts} +1 -1
  55. package/dist/{txnEnum-BlBYhNRl.d.ts → txnEnum-DxPRHSJt.d.ts} +1 -1
  56. package/dist/types/exports.d.cts +3 -3
  57. package/dist/types/exports.d.ts +3 -3
  58. package/dist/{useHoneySwapState-D1DKG_Of.d.ts → useHoneySwapState-B494PQDl.d.ts} +1 -1
  59. package/dist/{useHoneySwapState-B-vmIP1b.d.cts → useHoneySwapState-D6vpv19r.d.cts} +1 -1
  60. package/dist/utils/exports.cjs +1 -1
  61. package/dist/utils/exports.cjs.map +1 -1
  62. package/dist/utils/exports.d.cts +2 -2
  63. package/dist/utils/exports.d.ts +2 -2
  64. package/dist/utils/exports.mjs +1 -1
  65. package/dist/utils/exports.mjs.map +1 -1
  66. package/package.json +9 -10
  67. package/src/abi/exports.ts +0 -27
  68. package/src/actions/bend/getConvertToAssets.ts +1 -1
  69. package/src/actions/bend/getMaxDeposit.ts +1 -1
  70. package/src/actions/dex/aggregators/bex.ts +2 -1
  71. package/src/actions/dex/aggregators/enso/enso.ts +3 -2
  72. package/src/actions/dex/aggregators/enso/ensoErc4626.debug.test.ts +2 -3
  73. package/src/actions/dex/aggregators/erc4626.ts +2 -1
  74. package/src/actions/dex/aggregators/fly.ts +2 -1
  75. package/src/actions/dex/aggregators/haiku.ts +2 -1
  76. package/src/actions/dex/aggregators/kyberswap.ts +2 -2
  77. package/src/actions/dex/aggregators/oogabooga.ts +2 -1
  78. package/src/actions/dex/aggregators/openOcean.ts +2 -1
  79. package/src/actions/dex/aggregators/wbera.ts +2 -1
  80. package/src/actions/dex/getVaultPausedState.ts +2 -1
  81. package/src/actions/enso/getEnsoUserTokensWithBalances.debug.test.ts +1 -1
  82. package/src/actions/governance/__tests__/checkProposalField.unit.test.ts +2 -1
  83. package/src/actions/governance/__tests__/getDecodedFunctionData.integration.test.ts +66 -78
  84. package/src/actions/governance/__tests__/getQuorum.integration.test.ts +6 -7
  85. package/src/actions/governance/getDecodedFunctionData.ts +2 -2
  86. package/src/actions/governance/getProposalFromTx.ts +2 -1
  87. package/src/actions/governance/getProposalParams.ts +3 -2
  88. package/src/actions/governance/getQuorum.ts +2 -1
  89. package/src/actions/honey/getCollateralWeights.ts +2 -1
  90. package/src/actions/honey/getGlobalCapLimit.ts +2 -1
  91. package/src/actions/honey/getHoneyCollaterals.ts +2 -1
  92. package/src/actions/honey/getHoneyFees.ts +2 -1
  93. package/src/actions/honey/getHoneyPausedState.ts +2 -1
  94. package/src/actions/honey/getHoneyPreview.ts +2 -1
  95. package/src/actions/honey/getHoneyPythPriceOracle.ts +1 -1
  96. package/src/actions/honey/getHoneyRootPriceOracle.ts +2 -1
  97. package/src/actions/honey/getHoneyVaultsBalance.ts +3 -2
  98. package/src/actions/honey/getRelativeCapLimit.ts +2 -1
  99. package/src/actions/honey/getSharesWithoutFees.ts +3 -2
  100. package/src/actions/honey/getSwapPayload.ts +3 -2
  101. package/src/actions/honey/isBadCollateralAsset.ts +3 -2
  102. package/src/actions/honey/isBasketModeEnabled.ts +3 -2
  103. package/src/actions/pol/getBgtTokenTotalBoosts.ts +2 -1
  104. package/src/actions/pol/getLSTStakeConfig.ts +2 -1
  105. package/src/actions/pol/getRewardTokenToBeraRate.ts +2 -1
  106. package/src/actions/pol/getRewardVaultBeaconImplementation.ts +2 -1
  107. package/src/actions/pol/getRewardVaultDurationConstants.ts +2 -1
  108. package/src/actions/pol/getRewardVaultFromToken.ts +2 -1
  109. package/src/actions/pol/getRewardVaultIncentives.ts +2 -1
  110. package/src/actions/pol/getRewardVaultRewards.ts +2 -1
  111. package/src/actions/pol/getRewardVaultStakingToken.ts +1 -1
  112. package/src/actions/pol/getRewardVaults.ts +2 -1
  113. package/src/actions/pol/getSWBeraVaultMetadata.ts +2 -1
  114. package/src/actions/pol/getSWBeraWithdrawal.ts +2 -1
  115. package/src/actions/pol/getStakeWithdrawalCooldown.ts +1 -1
  116. package/src/actions/pol/getTotalStakedAmount.ts +2 -1
  117. package/src/actions/pol/getUserVaults.ts +2 -1
  118. package/src/actions/pol/getUserVaultsBalance.ts +2 -1
  119. package/src/actions/pol/getUserVaultsReward.ts +1 -1
  120. package/src/actions/pol/getVaultsSupply.ts +1 -1
  121. package/src/actions/pyth/getHoneyPythFeeds.ts +2 -1
  122. package/src/actions/transactions/beraWriteContract.integration.test.ts +48 -51
  123. package/src/actions/validators/getActiveBoostAndCommissionChangeDelay.ts +3 -2
  124. package/src/actions/validators/getBaselineRewardAllocation.ts +2 -1
  125. package/src/actions/validators/getDefaultRewardAllocation.ts +2 -1
  126. package/src/actions/validators/getUserBoostsOnValidator.ts +2 -1
  127. package/src/actions/validators/getValidatorCommission.ts +2 -1
  128. package/src/actions/validators/getValidatorOperatorAddress.ts +2 -1
  129. package/src/actions/validators/getValidatorQueuedCommission.ts +2 -1
  130. package/src/actions/validators/getValidatorQueuedOperatorAddress.ts +2 -1
  131. package/src/actions/validators/getValidatorQueuedRewardAllocation.ts +2 -1
  132. package/src/actions/validators/getValidatorRewardAllocation.ts +2 -1
  133. package/src/actions/validators/getValidatorRewardAllocatorAddress.ts +2 -1
  134. package/src/actions/validators/utils/__tests__/validatorUtils.integration.test.ts +10 -11
  135. package/src/errors/getRevertReason.integration.test.ts +115 -107
  136. package/src/hooks/dex/useAggregatorsRouterFeeBps.ts +2 -1
  137. package/src/hooks/dex/useCreatePool.ts +2 -1
  138. package/src/hooks/dex/usePollPoolCreationRelayerApproval.ts +2 -1
  139. package/src/hooks/governance/useGetPastVotes.ts +2 -1
  140. package/src/hooks/governance/useHasVoted.ts +2 -1
  141. package/src/hooks/governance/useIsCanceller.ts +2 -1
  142. package/src/hooks/governance/usePollProposalThreshold.ts +2 -1
  143. package/src/hooks/governance/usePollUserDelegates.ts +2 -1
  144. package/src/hooks/governance/useProposalSnapshot.ts +2 -1
  145. package/src/hooks/governance/useProposalState.ts +2 -1
  146. package/src/hooks/governance/useProposalTimelockState.ts +5 -4
  147. package/src/hooks/pol/useBgtUnstakedBalance.ts +2 -1
  148. package/src/hooks/pol/useOnChainRewardVault.ts +2 -1
  149. package/src/hooks/pol/useRewardVaultBalanceFromStakingToken.ts +2 -1
  150. package/src/hooks/pol/useRewardVaultFromToken.ts +2 -1
  151. package/src/hooks/pol/useStakedData.ts +169 -92
  152. package/src/hooks/validators/useOnChainValidator.ts +4 -3
  153. package/src/types/pol.d.ts +1 -0
  154. package/dist/chunk-3YXSUBA5.mjs +0 -2
  155. package/dist/chunk-A4UDYSB6.mjs +0 -4
  156. package/dist/chunk-A4UDYSB6.mjs.map +0 -1
  157. package/dist/chunk-CYKCYPFR.cjs +0 -2
  158. package/dist/chunk-CYKCYPFR.cjs.map +0 -1
  159. package/dist/chunk-ECRMUMTA.mjs +0 -2
  160. package/dist/chunk-ECRMUMTA.mjs.map +0 -1
  161. package/dist/chunk-F4BKSBEM.mjs +0 -2
  162. package/dist/chunk-F4BKSBEM.mjs.map +0 -1
  163. package/dist/chunk-FL2N3XHK.cjs +0 -2
  164. package/dist/chunk-FL2N3XHK.cjs.map +0 -1
  165. package/dist/chunk-MUCEYO3E.cjs +0 -4
  166. package/dist/chunk-MUCEYO3E.cjs.map +0 -1
  167. package/dist/chunk-P2Q7CMUD.cjs +0 -2
  168. package/dist/chunk-P2Q7CMUD.cjs.map +0 -1
  169. package/dist/chunk-PKXAW6MO.cjs +0 -2
  170. package/dist/chunk-Q3SCM6WL.mjs +0 -2
  171. package/dist/chunk-Q3SCM6WL.mjs.map +0 -1
  172. package/dist/chunk-TEBJWAVU.mjs +0 -2
  173. package/dist/chunk-TEBJWAVU.mjs.map +0 -1
  174. package/dist/chunk-VP7XUOSI.cjs +0 -2
  175. package/dist/chunk-VP7XUOSI.cjs.map +0 -1
  176. package/dist/pythWrapper-CBjsmmsK.d.cts +0 -1958
  177. package/dist/pythWrapper-CBjsmmsK.d.ts +0 -1958
  178. package/src/abi/bend/metaMorpho.ts +0 -2584
  179. package/src/abi/bend/morpho.ts +0 -444
  180. package/src/abi/bex/aggregatorsRouter.ts +0 -492
  181. package/src/abi/bex/balancerComposableStablePoolFactoryV6.ts +0 -283
  182. package/src/abi/bex/balancerPoolCreationHelper.ts +0 -267
  183. package/src/abi/bex/balancerVault.ts +0 -757
  184. package/src/abi/governance/governance.ts +0 -1016
  185. package/src/abi/governance/governanceTimelock.ts +0 -589
  186. package/src/abi/honey/collateralVault.ts +0 -1144
  187. package/src/abi/honey/honey.ts +0 -563
  188. package/src/abi/honey/honeyFactory.ts +0 -1270
  189. package/src/abi/honey/honeyFactoryReader.ts +0 -894
  190. package/src/abi/honey/honeyRootOracle.ts +0 -492
  191. package/src/abi/honey/pythPriceOracle.ts +0 -619
  192. package/src/abi/honey/pythWrapper.ts +0 -446
  193. package/src/abi/pol/LSTStakerVault.ts +0 -2032
  194. package/src/abi/pol/beaconDeposit.ts +0 -595
  195. package/src/abi/pol/beraChef.ts +0 -1019
  196. package/src/abi/pol/bgt.ts +0 -1008
  197. package/src/abi/pol/bgtIncentiveDistributor.ts +0 -640
  198. package/src/abi/pol/bgtStaker.ts +0 -1034
  199. package/src/abi/pol/rewardAllocationFactory.ts +0 -408
  200. package/src/abi/pol/rewardVault.ts +0 -1928
  201. package/src/abi/pol/rewardVaultFactory.ts +0 -586
  202. package/src/abi/pol/rewardVaultHelper.ts +0 -882
  203. package/src/abi/pol/stakeBeraVault.ts +0 -1116
  204. package/src/abi/pol/stakeBeraVaultWithdrawalRequest.ts +0 -618
  205. package/src/abi/pol/wbera.ts +0 -366
@@ -0,0 +1,4 @@
1
+ import{a as qe}from"./chunk-NLVWRMGD.mjs";import{a as Qe,b as _e,c as H}from"./chunk-7WRTK7RJ.mjs";import{a as q,b as j,c as v,d as we,f as O}from"./chunk-2LL3P5PN.mjs";import{A as $e,C as K,E as Pe,F as je,a as ue,b as Ue,c as We,d as de,i as Ce,j as Oe,k as S,l as Me,q as He,x as te,y as Je}from"./chunk-5XWELBWR.mjs";import{a as c,b as ce,d as Le,e as R}from"./chunk-THATXCJK.mjs";import{c as le,d as De,e as ee,f as P,g as $,h as x}from"./chunk-AX2YQQFQ.mjs";import{formatEther as Wt}from"viem";import{metaMorphoV11Abi as Lt}from"@berachain/abis/bend-metamorpho/metaMorphoV11";async function yo({sharesAmount:e,vaultAddress:t,publicClient:r}){let a=await r.readContract({address:t,abi:Lt,functionName:"convertToAssets",args:[e]});return{raw:a,formatted:Wt(a)}}import{ApolloClient as Ot,ServerError as Mt}from"@apollo/client";import{appConfig as Ht}from"@berachain/config/internal";var me=class extends Ot{url;constructor(t){super(t),this.url=t.url}async query(t){let r=_t(t.query),a={url:this.url,type:"graphql"},o={"operation.type":"query","operation.source.url":a.url,"operation.source.type":a.type,"operation.source.queryName":r};try{let i=()=>super.query(t),l=await Qe.startSpan({name:`GraphQL ${r}`,op:"BeraApolloClient.query",attributes:o},i);if(l.error||l.data===void 0)throw new P({level:"fatal",tags:o,message:"Bera Apollo Client: No data returned from query, but error should be thrown since errorPolicy is none"});return{data:l.data}}catch(i){throw!Ht.env.isProduction&&console.error("BeraApolloClient error",i),Mt.is(i)?new $({response:i.response,cause:i,statusCode:i.statusCode,endpoint:a,tags:o}):i instanceof TypeError?new $({level:"fatal",reason:"TypeError",response:i,cause:i,endpoint:a,tags:o}):new $({response:i,tags:o,cause:i,endpoint:a})}}};function _t(e){return e.definitions.find(r=>r.kind==="OperationDefinition")?.name?.value}import{InMemoryCache as Jt}from"@apollo/client";import{HttpLink as $t}from"@apollo/client/link/http";import{getUriFromLink as Ye}from"@berachain/config";import{currentDapp as Ke}from"@berachain/config/internal";import jt from"@berachain/graphql/dex/api";import{gql as Io}from"@apollo/client";function Kt(e){if(!Ke)return e;let t=typeof e=="string"?void 0:e.headers;return{uri:Ye(e),headers:{...t,"x-graphql-client-name":`berachain.${Ke}.${process.env.NEXT_RUNTIME||"browser"}`,"x-graphql-client-version":`${process.env.VERCEL_TARGET_ENV}.${process.env.VERCEL_GIT_COMMIT_SHA}`}}}function _(e,{ssrMode:t,inMemoryCacheOptions:r}={}){let a=Ye(e),o=typeof e=="string"?void 0:e.headers;return new me({url:a,link:new $t({uri:a,headers:o}),defaultOptions:{query:{errorPolicy:"none",fetchPolicy:"no-cache"}},cache:new Jt(r),ssrMode:t})}function g(e,{...t}){let{config:r}=c(t);switch(e){case"api":return _(Kt(r.api),{inMemoryCacheOptions:{possibleTypes:jt.possibleTypes}});case"bend.whisk":if(!r.bend.whiskApi)throw new P({message:"Bend whisk API is not configured on this chain",level:"error"});return _(r.bend.whiskApi);case"honey.subgraph":return _(r.honey.subgraph);case"pol.subgraph":return _(r.pol.subgraph);case"governance.subgraph":return _(r.governance.subgraph);case"blocks.subgraph":return _(r.blocksSubgraph);case"bex.subgraph":return _(r.bex.subgraph)}}import{formatUnits as Yt,isAddress as ze,zeroAddress as zt}from"viem";import re from"@berachain/utils/pkg/bignumber.js";var Xe=class e{static PATH_NOT_FOUND_REASON="NO_SWAP_PATHS";needsAccountForQuote=!1;notFoundMessages=[];config;chainId;constructor(t={}){let{config:r,chainId:a}=c(t);this.config=r,this.chainId=a}url="";parseAddresses(t,r){if(!ze(t)||!ze(r))throw new P({message:`Invalid address: ${t} or ${r}`,level:"error"});return{tokenInAddress:R(t,"BERA")?this.config.tokens.wbera:t,tokenOutAddress:R(r,"BERA")?this.config.tokens.wbera:r,isTokenInNative:R(t,"BERA"),isTokenOutNative:R(r,"BERA")}}getAmountAfterFees(t,r){if(r===void 0)throw new P({message:"aggregatorsFeeBps is required",level:"error"});let a=new re(t).times(r).dividedBy(1e4).toFixed(0,re.ROUND_DOWN);return new re(t).minus(a).toFixed(0,re.ROUND_DOWN)}getInputData({tokenIn:t,amountIn:r,isNative:a,isPermit2Approval:o=!1,permit2SpenderAddress:i}){return{tokenIn:t,amountIn:BigInt(r),isNative:a,isPermit2Approval:o,permit2SpenderAddress:i??zt}}getMinAmountOut(t,r){if(r===void 0)throw new P({message:"slippage is required",level:"error"});let a=new re(t).times(1-r/100);return a.isNaN()||a.isZero()?0n:BigInt(a.toFixed(0))}parseAllowanceRequirements({tokenIn:t,rawAmount:r,spender:a}){return R(t,"BERA")?[]:[{token:t,amount:{raw:r,formatted:Yt(BigInt(r),t.decimals)},spender:a}]}checkChainSupport({tokenIn:t,tokenOut:r}){return this.supportedChains===null?!0:this.supportedChains.includes(t.chainId)&&this.supportedChains.includes(r.chainId)}assertChainSupport({tokenIn:t,tokenOut:r,underlyingToken:a}){if(!this.checkChainSupport({tokenIn:t,tokenOut:r,underlyingToken:a}))throw new P({message:`${this.name} does not support tokens chain ID: ${t.chainId} and ${r.chainId}`,level:"error"})}async fetch(t,r){try{return await Ue({url:t,name:this.name,type:this.type},{method:"GET",headers:{"Content-Type":"application/json"},...r})}catch(a){let o=q({cause:a});throw this.notFoundMessages.some(i=>o.message.includes(i))&&(o.reason=e.PATH_NOT_FOUND_REASON),o}}};import{API_CHAIN_NAMES as Xt,BALANCER_QUERIES as Zt,BALANCER_RELAYER as er,BalancerApi as _o,CHAINS as tr,COMPOSABLE_STABLE_POOL_FACTORY as rr,NATIVE_ASSETS as ar,Token as or,VAULT as nr,WEIGHTED_POOL_FACTORY_BALANCER_V2 as ir}from"@berachain-foundation/berancer-sdk";import{zeroAddress as Be}from"viem";import{berachain as Ze,berachainBepolia as sr}from"viem/chains";import{chainConfigs as lr}from"@berachain/config/internal";for(let e of Object.keys(lr)){let{config:t,chainId:r}=c({chainId:Number(e)});Xt[r]=t.bex.chainName,tr[r]=r===Ze.id?Ze:sr,er[r]=t.bex.relayer,nr[r]=t.bex.vault,Zt[r]=t.bex.queries,ir[r]=Be,rr[r]=Be;let a=new or(r,Be,ce.decimals,ce.name,ce.symbol,t.tokens.wbera);ar[r]=a}import{GetPools as ur}from"@berachain/graphql/dex/api";import{GqlPoolOrderBy as cr,GqlPoolOrderDirection as dr}from"@berachain/graphql/pol/api";async function rn({textSearch:e,chain:t,first:r,orderBy:a,orderDirection:o,skip:i,fetchPolicy:l,userAddress:n,blacklistedPoolIds:s,...d}={}){let{config:u}=c(d),f=await g("api",d).query({query:ur,variables:{textSearch:e,chain:t??u.bex.chainName,first:r,orderBy:a??cr.TotalLiquidity,orderDirection:o??dr.Desc,skip:i,userAddress:n,blacklistedPoolIds:s},fetchPolicy:l});return{pools:f.data.poolGetPools??[],count:f.data.count??0}}import{GetPool as mr}from"@berachain/graphql/dex/api";async function ln({poolId:e,account:t,...r}){let{config:a}=c(r),l=(await g("api",r).query({query:mr,variables:{id:e,userAddress:t,chain:a.bex.chainName},fetchPolicy:"no-cache"})).data.poolGetPool;if(!l)throw new Error(`Pool not found for id: ${e} and user ${t}`);return l}import{GetGlobalLiquidityAndSwapVolume as pr}from"@berachain/graphql/dex/api";async function pn(e={}){let{config:t}=c(e);return(await g("api",e).query({query:pr,variables:{chain:t.bex.chainName}})).data}import{weightedPoolV4Abi_V2 as fr}from"@berachain-foundation/berancer-sdk";async function et({publicClient:e,poolAddress:t}){let r=fr,a=await e.multicall({contracts:[{address:t,abi:r,functionName:"inRecoveryMode"},{address:t,abi:r,functionName:"getPausedState"}],allowFailure:!1});return{isPoolInRecoveryMode:a[0],isPoolPaused:a[1][0]}}import{stablePoolAbi_V3 as gr,vaultV2Abi as br,weightedPoolFactoryAbi_V3 as tt,weightedPoolV4Abi_V2 as pe}from"@berachain-foundation/berancer-sdk";import{erc20Abi as rt,formatEther as at,formatUnits as yr,isAddress as Ar,isHex as hr}from"viem";import{GqlPoolType as ot}from"@berachain/graphql/pol/api";async function vn({poolId:e,publicClient:t,...r}){let{config:a}=c(r),o=e.slice(0,42);if(!Ar(o)||!hr(e))throw new x({property:"poolId",value:e,expected:"Hex"});try{let[i,l,n,s,d,u,m,f,b]=await Promise.all([t.readContract({address:o,abi:rt,functionName:"name"}),t.readContract({address:a.bex.vault,abi:br,functionName:"getPoolTokens",args:[e]}),t.readContract({address:o,abi:rt,functionName:"totalSupply"}),t.readContract({address:o,abi:pe,functionName:"getSwapFeePercentage"}),t.readContract({address:o,abi:pe,functionName:"version"}),t.readContract({address:o,abi:pe,functionName:"decimals"}),t.readContract({address:a.bex.factories.composableStable,abi:tt,functionName:"isPoolFromFactory",args:[o]}),t.readContract({address:a.bex.factories.weighted,abi:tt,functionName:"isPoolFromFactory",args:[o]}),et({publicClient:t,poolAddress:o})]),p=Number(u),A=JSON.parse(d),C,B,y;if(m?[C,y]=await Promise.all([t.readContract({address:o,abi:[{type:"function",name:"getActualSupply",stateMutability:"view",inputs:[],outputs:[{type:"uint256"}]}],functionName:"getActualSupply"}),t.readContract({address:o,abi:gr,functionName:"getAmplificationParameter"})]):A.name==="WeightedPool"&&(B=await t.readContract({address:o,abi:pe,functionName:"getNormalizedWeights"})),!m&&!f)throw new Error(`Pool ${o} is not a valid BEX pool`);return{name:i,address:o,id:e,poolTokens:[l[0],l[1].map(String),Number(l[2])],totalSupply:yr(C??n,p),swapFee:at(s),decimals:p,weights:B?.map(T=>at(T)),version:A,factory:m?a.bex.factories.composableStable:a.bex.factories.weighted,type:m?ot.Stable:ot.Weighted,amplificationParameter:y?[Number(y[0]),y[1],Number(y[2])]:void 0,pausedState:b}}catch(i){throw q({cause:i})}}import{GetPoolEvents as wr}from"@berachain/graphql/dex/api";async function Nn({poolId:e,typeInArray:t,...r}){let{config:a}=c(r);return(await g("api",r).query({query:wr,variables:{poolId:e,typeIn:t,chain:a.bex.chainName}})).data}import{isHex as Cr}from"viem";import{GetPoolHistoricalData as Pr}from"@berachain/graphql/dex/api";async function In({poolId:e,chain:t,...r}){if(!e||!Cr(e))throw new x({property:"poolId",value:e,expected:"hex string"});let a=g("api",r),{data:o}=await a.query({query:Pr,variables:{poolId:e,chain:t}});return o.poolGetSnapshots}import{isHex as Br}from"viem";import{GetSubgraphPool as vr}from"@berachain/graphql/dex/subgraph";async function Wn({poolId:e,...t}){if(!Br(e))throw new Error("poolId is not a valid hex string");return(await g("bex.subgraph",t).query({query:vr,variables:{id:e}})).data.pool}import{isAddress as nt,isHex as Vr}from"viem";var Y=({fieldOrType:e,value:t,required:r=!0,baseUrl:a,components:o})=>{if(!["bool","string"].includes(e)&&r&&(t==null||t===""))return"Required";if(e.startsWith("uint")||e.startsWith("int")){if(typeof t!="string")return"Invalid amount";try{let l=BigInt(t);if(e.startsWith("uint")&&l<0n)return"Negative amount"}catch{return"Invalid amount"}return null}switch(e){case"string":return t!==void 0&&typeof t!="string"?"Invalid amount":null;case"bool":return typeof t!="boolean"?"Invalid amount":null;case"title":return t.length===0?"Required":null;case"description":return t.length===0?"Required":null;case"forumLink":if(t.length===0)return"Required";if(!URL.canParse(t))return"Invalid address";let l=new URL(a);return t.startsWith(l.toString())?null:"Must be a berachain forum link";case"address":return nt(t,{strict:!0})?null:"Invalid address";case"hex":return Vr(t,{strict:!0})?null:"Invalid address";case"abi":try{JSON.parse(t)}catch{return"Invalid ABI"}return null;case"action":return nt(t,{strict:!0})?null:"Invalid address";case"tuple":if(typeof t=="object"&&Array.isArray(o)){let n={};for(let s of o)n[s.name]=Y({fieldOrType:s.type,value:t[s.name],components:s.components});return Object.values(n).every(s=>s===null)?null:n}return null;case"tuple[]":if(Array.isArray(t)){let n=t.map(s=>Y({fieldOrType:"tuple",value:s,components:o}));return n.every(s=>s===null)?null:n}return null;case"logoURI":return t===void 0||t===""||URL.canParse(t)&&new URL(t).protocol==="https:"?null:"Must be HTTPS or IPFS";case"url":return t===void 0||t===""||URL.canParse(t)&&new URL(t).protocol==="https:"?null:"Must be HTTPS";default:return console.error(`Invalid field or type: ${e}`),null}};import{ProposalStatus as w}from"@berachain/graphql/governance";var Rr=!1,_n=[w.Active,w.PendingQueue,w.PendingExecution,w.Defeated,w.QuorumNotReached];function fe(e,t){let r=Date.now()/1e3;if(t!==void 0){if(e.status===w.CanceledByGuardian)return w.CanceledByGuardian;if(t===2)return Number(e.voteStartAt)<r?w.CanceledByUser:w.CanceledByGuardian;if(t===3)return e.pollResult?!e.quorum||BigInt(e.quorum)>BigInt(e.pollResult.totalTowardsQuorum)?w.QuorumNotReached:w.Defeated:w.QuorumNotReached;if(t===4)return w.PendingQueue;if(t===5)return Number(e.queueEnd)<Date.now()/1e3?w.PendingExecution:w.InQueue;if(t===6)return console.warn("Unexpected expired state on proposal id: ",e.id),w.Defeated}return e.status===w.InQueue&&Number(e.queueEnd)<Date.now()/1e3?w.PendingExecution:Rr&&t===1&&e.quorum&&BigInt(e.quorum)<BigInt(e.pollResult.totalTowardsQuorum)&&Number(e.pollResult.forPercentage)>Number(e.pollResult.againstPercentage)?w.PendingQueue:e.status===w.Pending?Number(e.voteStartAt)<r&&Number(e.voteEndAt)>r?w.Active:Number(e.voteEndAt)<r?e.pollResult?!e.quorum||BigInt(e.quorum)>BigInt(e.pollResult.totalTowardsQuorum)?w.QuorumNotReached:e.pollResult?.against>e.pollResult?.for?w.Defeated:w.PendingQueue:w.QuorumNotReached:w.Pending:e.status===w.Active&&Number(e.voteEndAt)<r?!e.quorum||BigInt(e.quorum)>BigInt(e.pollResult.totalTowardsQuorum)?w.QuorumNotReached:BigInt(e.pollResult?.against??0n)>BigInt(e.pollResult?.for??0n)?w.Defeated:w.PendingQueue:e.status===w.InQueue&&Number(e.queueEnd)<Date.now()/1e3?w.PendingExecution:e.status}import{GetProposals as Sr,SearchProposals as kr}from"@berachain/graphql/governance";async function Yn({where:e,orderBy:t,orderDirection:r,offset:a=0,perPage:o=20,text:i,...l}){try{if(o>1e3)throw new Error("perPage must be less than 1000");let n=g("governance.subgraph",l),[s]=await Promise.all([i?n.query({query:kr,variables:{offset:a,limit:o,where:e,text:i}}):n.query({query:Sr,variables:{offset:a,limit:o,where:e,orderBy:t,orderDirection:r}})]);return s.data.proposals.map(d=>({...d,status:fe(d)}))}catch(n){throw console.error("getAllProposals:",n),n}}var Zn=(e,t)=>{let r={};return r.title=Y({fieldOrType:"title",value:e.title}),r.description=Y({fieldOrType:"description",value:e.description}),r.forumLink=Y({fieldOrType:"forumLink",value:e.forumLink,baseUrl:t.forumLink}),r};import{GetProposal as Nr}from"@berachain/graphql/governance";async function oi({proposalId:e,...t}){let a=await g("governance.subgraph",t).query({query:Nr,variables:{id:e}});if(a.data.proposal)return{...a.data.proposal,status:fe(a.data.proposal)}}import it from"gray-matter";var Gr=e=>{let t=/#(?:([\w-]+)# )?(.+)\n([\s\S]*)/,r=e.match(t);if(r){let a=r[1]||null,o=r[2],i=r[3].replace(`
2
+ `,"<br />");return{type:a,title:o,content:i}}throw new Error("Invalid proposal body")},st=e=>{if(!e)return{isFrontMatter:!1,data:{title:"Loading..."},content:"",matter:"",language:"",orig:"",stringify:()=>""};let t=e?.description??"";if(it.test(t))return{...it(t),isFrontMatter:!0};try{let r=Gr(t);return{isFrontMatter:!1,data:{title:r.title},content:r.content,matter:"",language:"",orig:t,stringify:()=>t}}catch{return{isFrontMatter:!1,data:{title:e?.description?.split(`
3
+ `)[0].slice(0,100)},content:t,matter:"",language:"",orig:t,stringify:()=>t}}};import{parseEventLogs as xr}from"viem";import{berachainGovernanceAbi as Tr}from"@berachain/abis/gov/berachainGovernance";import{ProposalStatus as Er}from"@berachain/graphql/governance";async function pi(e){v(e.publicClient);let t;"tx"in e?t=e.tx:t=await e.publicClient.getTransactionReceipt({hash:e.txHash});let r=t?.logs?xr({abi:Tr,logs:t.logs,eventName:"ProposalCreated"})?.at(0):void 0;if(!t||!r)return null;let a=await e.publicClient.getBlock({blockNumber:t.blockNumber}),o=st({description:r?.args.description});return{id:String(r.args.proposalId),proposalId:String(r?.args.proposalId),createdAt:a.timestamp.toString(),title:o.data.title,createdAtBlock:a.timestamp.toString(),voteStartAt:String(r?.args.voteStart),voteEndAt:String(r?.args.voteEnd),proposer:r?.args.proposer,description:o.content,unverifiedForumLink:o.data.forumLink,pollResult:{for:"0",forVotersCount:0,forPercentage:"0",against:"0",againstVotersCount:0,againstPercentage:"0",abstain:"0",abstainVotersCount:0,abstainPercentage:"0",total:"0",totalVotersCount:0,totalTowardsQuorum:"0"},status:Er.Pending,quorum:null,topics:o.data.topics,votes:[],executableCalls:r?.args.targets.map((i,l)=>({__typename:"ExecutableCall",id:`${t.transactionHash}-${l}`,target:i,value:String(r?.args.values[l]),calldata:r?.args.calldatas[l]})),timelock:void 0}}import{GetProposalVotes as Fr}from"@berachain/graphql/governance";async function yi({variables:e,...t}){return g("governance.subgraph",t).query({query:Fr,variables:e})}import{Aggregation_Interval as Ir,GetChartData as qr}from"@berachain/graphql/honey";async function Ci({days:e,...t}){return(await g("honey.subgraph",t).query({query:qr,variables:{interval:Ir.Day,first:e}})).data}import{honeyFactoryAbi as Dr}from"@berachain/abis/honey/honeyFactory";async function Vi({client:e,collateralList:t,...r}){let{config:a}=c(r);try{let o=await e.readContract({address:a.honey.factory,abi:Dr,functionName:"getWeights"});return t.reduce((l,n,s)=>Object.assign(l,{[n.address]:o[s]}),{})}catch(o){throw console.log(o),o}}import{erc20Abi as ve}from"viem";async function lt({address:e,publicClient:t,chainId:r}){try{if(!t)throw new Error("Public client not found");let[a,o,i]=await Promise.all([t.readContract({address:e,abi:ve,functionName:"decimals"}),t.readContract({address:e,abi:ve,functionName:"name"}),t.readContract({address:e,abi:ve,functionName:"symbol"})]),l={address:e,decimals:a,name:o,symbol:i,chainId:r};if(typeof l.decimals!="number"||typeof l.name!="string"||typeof l.symbol!="string")throw new Error(`Invalid ERC20 token. Address: ${e}`);return l}catch(a){throw console.error(a),q({cause:a})}}import{honeyFactoryAbi as Ve}from"@berachain/abis/honey/honeyFactory";async function Re({client:e,tokenData:t,preferredCollateralOrder:r,...a}){let{config:o}=c(a),[i,l]=await Promise.all([e.readContract({address:o.honey.factory,abi:Ve,functionName:"numRegisteredAssets"}),e.readContract({address:o.honey.factory,abi:Ve,functionName:"referenceCollateral"})]),n=[];for(let f=0;f<i;f++)n.push(e.readContract({address:o.honey.factory,abi:Ve,functionName:"registeredAssets",args:[BigInt(f)]}));let s=await Promise.all(n),u=(await Promise.all(s.map(f=>{let b=t?.find(p=>R(p,f));return b||lt({address:f,chainId:o.chainId,publicClient:e})}))).filter(f=>!!f).sort((f,b)=>s.indexOf(f.address)-s.indexOf(b.address)).map((f,b)=>({...f,order:b}));if(r?.length){let f=[];for(let b of r){let p=u.find(A=>R(A.address,b.address));p&&(f.push(p),u.splice(u.indexOf(p),1))}u.unshift(...f)}let m=u.find(f=>R(f,l));if(!u)throw new Error("Collateral tokens not found");if(!m)throw new Error("Reference collateral address not found");return{collaterals:u,referenceCollateral:m}}import{parseUnits as Qr}from"viem";import{honeyFactoryAbi as ut}from"@berachain/abis/honey/honeyFactory";import{honeyFactoryReaderAbi as Ur}from"@berachain/abis/honey/honeyFactoryReader";async function ct({client:e,collateral:t,latestPrices:r,isPythWrapperEnabled:a,...o}){let{config:i}=c(o);try{let l=e.readContract({address:i.honey.factory,abi:ut,functionName:"isBadCollateralAsset",args:[t.address]}),n=e.readContract({address:i.honey.factory,abi:ut,functionName:"isPegged",args:[t.address]});if(a&&r){let u=r.prices.map(m=>Qr(m,18));n=e.readContract({address:i.honey.reader,abi:Ur,functionName:"isPeggedWithPrice",args:[t.address,u[0]]})}let[s,d]=await Promise.all([l,n]);return{isBlacklisted:s,isDepegged:!d}}catch(l){throw console.log(l),l}}import{parseEther as mt}from"viem";import{honeyFactoryAbi as Or}from"@berachain/abis/honey/honeyFactory";import{parseEther as Wr}from"viem";import{collateralVaultAbi as Lr}from"@berachain/abis/honey/collateralVault";import{honeyFactoryAbi as dt}from"@berachain/abis/honey/honeyFactory";async function ae({client:e,asset:t,amount:r,...a}){let{config:o}=c(a);try{let[i,l]=await Promise.all([e.readContract({address:o.honey.factory,abi:dt,functionName:"vaults",args:[t]}),e.readContract({address:o.honey.factory,abi:dt,functionName:"collectedFees",args:[o.honey.factory,t]})]);return await e.readContract({address:i,abi:Lr,functionName:"balanceOf",args:[o.honey.factory]})+Wr(r??"0")-l}catch(i){throw console.log(i),i}}var Mr=mt("1");async function Zi({client:e,asset:t,amount:r,isMint:a,isPythWrapperEnabled:o,latestPrices:i,...l}){let{config:n}=c(l);try{let s=await e.readContract({address:n.honey.factory,abi:Or,functionName:"globalCap"});if(s>=Mr)return!1;let[{collaterals:d},u]=await Promise.all([Re({client:e}),Hr({client:e,asset:t,amount:r,latestPrices:i,isPythWrapperEnabled:o})]);if(!u)return;for(let m in u)if((a&&R(d[m],t)||!a&&R(d[m],t))&&u[m]>s-de)return!0;return!1}catch(s){throw console.log(s),s}}async function Hr({client:e,asset:t,amount:r,latestPrices:a,isPythWrapperEnabled:o}){let{collaterals:i}=await Re({client:e}),l=0n,n=[];for(let s of i){let d=await ct({client:e,collateral:t,latestPrices:a,isPythWrapperEnabled:o});if(d?.isBlacklisted||d?.isDepegged)continue;let u=await ae({client:e,asset:s.address,amount:R(s,t)?r:"0"});u&&(l+=u,n.push(u))}if(l===0n)return n;for(let s in i)n[s]=mt(n[s].toString())/l;return n}import{GetGlobalData as _r}from"@berachain/graphql/honey";async function as({...e}={}){return(await g("honey.subgraph",e).query({query:_r})).data}import{parseUnits as pt}from"viem";import{honeyFactoryReaderAbi as ft}from"@berachain/abis/honey/honeyFactoryReader";var Jr=(s=>(s.Mint="previewMintHoney",s.MintWithPrice="previewMintHoneyWithPrices",s.RequiredCollateral="previewMintCollaterals",s.RequiredCollateralWithPrice="previewMintCollateralsWithPrices",s.Redeem="previewRedeemCollaterals",s.RedeemWithPrice="previewRedeemCollateralsWithPrices",s.HoneyToRedeem="previewRedeemHoney",s.HoneyToRedeemWithPrice="previewRedeemHoneyWithPrices",s))(Jr||{});async function ls({client:e,collateral:t,collateralList:r,amount:a,method:o,latestPrices:i,isPythWrapperEnabled:l,...n}){let{config:s}=c(n);try{let d=o==="previewMintHoney"||o==="previewRedeemHoney"||o==="previewMintHoneyWithPrices"||o==="previewRedeemHoneyWithPrices",u=pt(a,d?t.decimals:18),m,f=[t.address,u];if(l&&i){let p=i.prices.map(A=>pt(A,18));f=[t.address,u,p]}if(d){let p=await e.readContract({address:s.honey.reader,abi:ft,functionName:o,args:f});m={collaterals:p[0],honey:p[1]}}else m={collaterals:await e.readContract({address:s.honey.reader,abi:ft,functionName:o,args:f}),honey:u};let b=r.reduce((p,A)=>{let C=A.order;return A.address===t.address&&m.collaterals[C]===BigInt(0)?Object.assign(p,{[A.address]:m.collaterals[0]}):Object.assign(p,{[A.address]:m.collaterals[C]})},{});return b[t.address]===BigInt(0)&&(b[t.address]=m.collaterals[0]),{collaterals:b,honey:m.honey}}catch(d){throw console.log("error",d),d}}import{formatUnits as $r}from"viem";import{collateralVaultAbi as Se}from"@berachain/abis/honey/collateralVault";import{honeyFactoryAbi as gt}from"@berachain/abis/honey/honeyFactory";async function fs({client:e,collateralList:t,honeyFactoryAddress:r,...a}){let{config:o}=c(a),i=r??o.honey.factory;return await Promise.all(t.map(async n=>{let s=await e.readContract({address:o.honey.factory,abi:gt,functionName:"vaults",args:[n.address]}),[d,u,[m,f]]=await Promise.all([e.readContract({address:s,abi:Se,functionName:"balanceOf",args:[i]}),e.readContract({address:i,abi:gt,functionName:"collectedAssetFees",args:[n.address]}),e.readContract({address:s,abi:Se,functionName:"custodyInfo"})]),b=await e.readContract({address:s,abi:Se,functionName:"convertToAssets",args:[d-u]});return{...n,balance:{raw:b.toString(),formatted:$r(b,n.decimals)},vault:m?f:s}}))}import{HermesClient as jr}from"@pythnetwork/hermes-client";import{formatUnits as Kr}from"viem";var Yr="https://hermes.pyth.network";async function bt({priceFeedId:e}){let r=await new jr(Yr,{}).getLatestPriceUpdates(e,{encoding:"hex",parsed:!0});return{calldata:r.binary.data.map(a=>`0x${a}`),prices:r.parsed?.flatMap(a=>Kr(BigInt(a.price.price),a.price.expo*-1))??[]}}import{parseEther as zr}from"viem";import{honeyFactoryAbi as Xr}from"@berachain/abis/honey/honeyFactory";async function vs({client:e,asset:t,amount:r,isMint:a,referenceCollateral:o,...i}){let{config:l}=c(i);if(t===o.address)return!1;try{let[n]=await Promise.all([e.readContract({address:l.honey.factory,abi:Xr,functionName:"relativeCap",args:[t]})]),[s,d]=await Promise.all([ae({client:e,asset:t,amount:a?r:void 0}),ae({client:e,asset:o.address,amount:a?void 0:r})]);return d===0n?s!==0n:zr((s??0n).toString())/(d??0n)>=n-de}catch(n){throw console.log(n),n}}async function yt({client:e,priceFeedId:t,...r}){let{config:a}=c(r);try{return await e.readContract({address:a.external.pyth,abi:qe,functionName:"getUpdateFee",args:[t]})}catch(o){throw console.error("getPythUpdateFee",o),o}}import{parseUnits as At}from"viem";import{honeyFactoryAbi as Zr}from"@berachain/abis/honey/honeyFactory";import{honeyFactoryPythWrapperAbi as ea}from"@berachain/abis/honey/honeyFactoryPythWrapper";var Ds=async({state:e,publicClient:t,priceFeedMap:r,collateralList:a,isPythWrapperEnabled:o,...i})=>{let{config:l}=c(i),n=Le(i),{actionType:s,fromAmount:d,collaterals:u,isBasketModeEnabled:m}=e,f=o?l.honey.pythWrapper:l.honey.factory,b=a.map(p=>p.address);if(d[0]&&b.length){let p=s==="mint";if(o&&t&&r){let C=(await bt({priceFeedId:Object.values(r)})).calldata,B=0n;try{B=await yt({client:t,priceFeedId:C})}catch{B=Oe(u.length)}return({account:y})=>{let T=[C,u[0]?.address,At(d[0],(p?u[0]?.decimals:n?.decimals)??18),y,!!m];return{address:f,abi:ea,functionName:p?"mint":"redeem",params:T,value:B}}}return({account:A})=>{let C=[u[0]?.address,At(d[0],(p?u[0]?.decimals:n?.decimals)??18),A,!!m];return{value:0n,address:f,abi:Zr,functionName:p?"mint":"redeem",params:C}}}throw new Error("Something went wrong while creating the Honey swap payload")};import{parseUnits as ta}from"viem";import{honeyFactoryAbi as ra}from"@berachain/abis/honey/honeyFactory";import{honeyFactoryReaderAbi as aa}from"@berachain/abis/honey/honeyFactoryReader";async function Ms({client:e,isMint:t,collateralList:r,latestPrices:a,isPythWrapperEnabled:o,...i}){let{config:l}=c(i);if(o&&a){if(r.length===0)return;let s=a.prices.map(u=>ta(u,18));return await e.readContract({address:l.honey.reader,abi:aa,functionName:"isBasketModeEnabledWithPrices",args:[t,s]})}return await e.readContract({address:l.honey.factory,abi:ra,functionName:"isBasketModeEnabled",args:[t]})}async function $s({block:e,currentBlock:t,blockTime:r,publicClient:a}){if(j(e,"block"),v(a),t>e){let i=await a.getBlock({blockNumber:BigInt(e),includeTransactions:!1});return{timestamp:Number(i.timestamp)}}return{timestamp:S(Date.now())+r*(Number(e)-Number(t))}}import{formatUnits as ke}from"viem";import{rewardVaultAbi as z}from"@berachain/abis/pol/rewards/rewardVault";var oa=(a=>(a.Duration="duration",a.TargetRate="targetRate",a.TargetApr="targetApr",a))(oa||{});async function Xs(e,t){let[r,a,o,i,l,n]=await Promise.all([t.readContract({address:e,abi:z,functionName:"rewardsDuration"}),t.readContract({address:e,abi:z,functionName:"rewardVaultManager"}),t.readContract({address:e,abi:z,functionName:"rewardRate"}),t.readContract({address:e,abi:z,functionName:"periodFinish"}),t.readContract({address:e,abi:z,functionName:"targetRewardsPerSecond"}),t.readContract({address:e,abi:z,functionName:"minRewardDurationForTargetRate"})]),s=o*(i-BigInt(S(Date.now())))/10n**18n;return{rewardsDuration:Number(r),mode:l===0n?"duration":"targetRate",manager:a,rewardRate:ke(o,36),periodFinish:Number(i),availableRewards:ke(s,18),minRewardDurationForTargetRate:Number(n),targetRewardsPerSecond:ke(l,36)}}function ge(e,t,r){return e?r*t*te(1)/e:null}function na(e,t,r){return r?e*r/(t*te(1)):0}function tl({availableRewards:e,periodFinish:t,tvl:r,bgtPrice:a,MIN_REWARD_DURATION:o,MAX_REWARD_DURATION:i,...l}){let n=S(Date.now());if(n>t)return{apr:0,duration:0,rewardRate:0,targetRate:null,periodFinish:0,mode:null};if(l.mode==="targetRate"||l.mode==="targetApr"){let m,{minRewardDurationForTargetRate:f,currentDuration:b}=l;if(l.mode==="targetRate"?m=l.rewardRate:m=na(l.apr,a,r),m===0){let C=Math.min(b,i),B=e?e/C:0;return{apr:ge(r,a,B),duration:C,rewardRate:B,targetRate:null,periodFinish:C+n,mode:"duration"}}let p=f||o,A=e?e/m:0;if(A<p){let C=e?e/p:0;return{apr:ge(r,a,C),duration:p,rewardRate:C,targetRate:C.toString(),periodFinish:p+n,mode:null}}return{apr:ge(r,a,m),duration:A,rewardRate:m,targetRate:m.toString(),periodFinish:A+n,mode:null}}let{duration:s}=l,d=e/s;return{apr:ge(r,a,d),mode:null,targetRate:null,duration:s,rewardRate:d,periodFinish:s+n}}async function nl({address:e,account:t,...r}){let{config:a}=c(r),o=`${a.bonder}/vaults/${e}/earnings/${t}`;return We({url:o,type:"rest"})}import{formatUnits as ia}from"viem";import{rewardVaultAbi as sa}from"@berachain/abis/pol/rewards/rewardVault";import{GetVaults as la}from"@berachain/graphql/pol/api";async function be({filter:e,publicClient:t,...r}={}){let o=await g("api",r).query({query:la,variables:e}),i=await Promise.allSettled(o.data.polGetRewardVaults.vaults.map(async n=>{if(t)return Promise.allSettled(n.activeIncentives.map(s=>t.readContract({abi:sa,address:n.address,functionName:"incentives",args:[s.tokenAddress]})))})),l=o.data.polGetRewardVaults.vaults.map((n,s)=>{let d=0,u=n.activeIncentives.map((m,f)=>{let b=Number(m.remainingAmountUsd)&&Number(m.remainingAmount)?Number(m.remainingAmountUsd)/Number(m.remainingAmount):0,p=i[s]?.status==="fulfilled"&&i[s]?.value?.[f]?.status==="fulfilled"?ia(BigInt(i[s].value[f].value[2]),m.token.decimals):m.remainingAmount;return d+=Number(p)*Number(b),{...m,remainingAmount:p}});return{...n,dynamicData:{...n.dynamicData,allTimeReceivedBGTAmount:n.dynamicData?.allTimeReceivedBGTAmount??"0",bgtCapturePercentage:n.dynamicData?.bgtCapturePercentage??"0",activeIncentivesValueUsd:d.toString(),activeIncentivesRateUsd:n.dynamicData?.activeIncentivesRateUsd??"0",bgtCapturePerBlock:n.dynamicData?.bgtCapturePerBlock??"0"},activeIncentives:u}});return{pagination:o.data.polGetRewardVaults.pagination,gaugeList:l}}import{GlobalData as ua}from"@berachain/graphql/pol/api";async function ht(e={}){let{config:t}=c(e),a=await g("api",e).query({query:ua,variables:{chain:t.bex.chainName}});return{...a.data.polGetGlobalInfo,top3EmittingValidators:a.data.top3EmittingValidators.validators,allValidatorsCount:a.data.allValidatorsCount.pagination.totalCount}}import{formatEther as ca}from"viem";import{bgtAbi as da}from"@berachain/abis/pol/bgt";async function wt({publicClient:e,...t}){let{config:r}=c(t);v(e);try{let a=await e.readContract({address:r.tokens.bgt,abi:da,functionName:"totalBoosts",args:[]});return ca(a)}catch(a){throw console.log(a),a}}import{erc20Abi as ma,formatEther as pa}from"viem";async function Ct({publicClient:e,...t}){let{config:r}=c(t);v(e);try{let a=await e.readContract({address:r.tokens.bgt,abi:ma,functionName:"totalSupply",args:[]});return pa(a??0n)}catch(a){throw console.log(a),a}}import{GqlRewardVaultOrderBy as fa,GqlRewardVaultOrderDirection as ga}from"@berachain/graphql/pol/api";async function Pt(e){let{gaugeList:t}=await be({filter:{orderBy:fa.Apr,orderDirection:ga.Desc,pageSize:e,where:{includeNonWhitelisted:!1}}});return t}async function Fl(e){let[t,r,a,o]=await Promise.allSettled([ht(),Pt(300),Ct({publicClient:e}),wt({publicClient:e})]);return t.status==="rejected"&&O.captureException(q({cause:t.reason,level:"warning"})),r.status==="rejected"&&O.captureException(q({cause:r.reason,level:"warning"})),a.status==="rejected"&&O.captureException(q({cause:a.reason,level:"warning"})),o.status==="rejected"&&O.captureException(q({cause:o.reason,level:"warning"})),{bgtTotalSupply:a.status==="fulfilled"?a.value:void 0,globalCuttingBoard:r.status==="fulfilled"?r.value:[],bgtTotalBoosts:o.status==="fulfilled"?o.value:void 0,...t.status==="fulfilled"?t.value:{}}}import{GetIncentiveFeeClaimStats as ba}from"@berachain/graphql/pol/subgraph";async function Bt({...e}){let t=g("pol.subgraph",e),{data:r}=await t.query({query:ba});if(r.incentiveFeeClaims.length>0){let a=r?.incentiveFeeClaims.reduce((l,n)=>l+Number(n.payoutAmount),3e4),i=(r?.incentiveFeeClaims.filter(l=>Number(l.timestamp)/1e3>Date.now()-He(1))).reduce((l,n)=>l+Number(n.payoutAmount),0);return{sumAllClaims:a,sumClaimsInLast24Hours:i}}return{sumAllClaims:0,sumClaimsInLast24Hours:0}}async function Ll(e={}){let{config:t}=c(e);try{let a=await(await fetch(t.lists.rewardVaultList)).json();if(!a.protocols)throw new Error("Missing protocols in market list");return{marketList:a.protocols,marketDictionary:a.protocols.reduce((o,i)=>(o[i.name]=i,o),{})}}catch(r){throw console.error("Error fetching validator information",r),r}}async function Jl({account:e,validator:t,page:r=1,perPage:a=1e3,...o}){let{config:i}=c(o),l=await fetch(`${i.pol.bribeBoostApi}/api/v1/wallets/${e.toLowerCase()}/proofs/validator/${t.toLowerCase()}?page=${r}&per_page=${a}`,{cache:"no-store"});if(!l.ok){let s=await ue(l);throw new P({message:"Failed to fetch proofs on server",cause:{error:s,result:l,account:e,validator:t},reason:s?.reason})}return await l.json()}import{formatUnits as ya,parseUnits as Aa}from"viem";import{wberaStakerVaultAbi as ha}from"@berachain/abis/pol/wberaStakerVault";async function zl({address:e,publicClient:t}){return v(t),t.readContract({address:e,abi:ha,functionName:"previewRedeem",args:[Aa("1",18)]}).then(r=>Number(ya(r,18))).catch(()=>0)}import{GetRewardVault as wa}from"@berachain/graphql/pol/api";async function au({address:e,chainName:t,...r}){let{config:a}=c(r),o=t??a.bex.chainName,i=g("api",r),{data:l}=await i.query({query:wa,variables:{vaultId:e,chain:o}});if(!l?.rewardVault)throw new _e({resource:"Reward vault",id:e,chainId:a.chainId});return l.rewardVault}import{isSameAddress as vt}from"@berachain-foundation/berancer-sdk";import{erc20Abi as Ne,formatUnits as oe}from"viem";import{rewardVaultAbi as Ge}from"@berachain/abis/pol/rewards/rewardVault";async function cu({address:e,stakingToken:t,publicClient:r}){let a=await r.readContract({address:e,abi:Ge,functionName:"getWhitelistedTokens"}),i=a.findIndex(n=>vt(t,n))!==-1?await r.readContract({address:e,abi:Ge,functionName:"totalSupply"}):0n,l=await Promise.allSettled(a.map(async n=>{let[s,d,u,m]=await Promise.all([r.readContract({address:e,abi:Ge,functionName:"incentives",args:[n]}),r.readContract({address:n,abi:Ne,functionName:"decimals"}),r.readContract({address:n,abi:Ne,functionName:"symbol"}),r.readContract({address:n,abi:Ne,functionName:"balanceOf",args:[e]})]),[f,b,p,A]=s;return{token:n,manager:A,minIncentiveRate:oe(f,d),incentiveRate:oe(b,d),remainingAmount:oe(p,d),symbol:u,decimals:d,pendingAmount:vt(t,n)?oe(m-i-p,d):oe(m-p,d)}}));return l.forEach((n,s)=>{n.status==="rejected"&&O.captureException(new P({reason:n.reason,message:"Incorrect incentives token received.",level:"error",extra:{token:a[s],address:e,error:n.reason}}))}),l.map(n=>n.status==="fulfilled"?n.value:null).filter(n=>n!==null)}import{rewardVaultAbi as Ca}from"@berachain/abis/pol/rewards/rewardVault";async function pu({address:e,publicClient:t}){return await t.readContract({address:e,abi:Ca,functionName:"stakeToken"})}import{GetSWberaVaultMetadata as Pa,GqlSWberaVaultMetadataResolution as Vt}from"@berachain/graphql/pol/api";function Ba(e){return e==="DAY"?Vt.OneDay:Vt.SevenDays}async function Au({window:e,...t}){let{config:r}=c(t),a=g("api",t);try{let o=await a.query({query:Pa,variables:{chain:r.bex.chainName,resolution:Ba(e??"DAY")}}),{apr:i}=o.data.polGetSWberaVaultMetadata;return Number(i)}catch(o){throw console.error("Failed to get SW Bera APR",o),o}}import{GetSWberaVaultSnapshots as va,GqlVaultSnapshotDataRange as Va}from"@berachain/graphql/pol/api";async function Bu({chain:e,range:t=Va.ThirtyDays,...r}={}){let{config:a}=c(r),o=g("api",r);try{return(await o.query({query:va,variables:{chain:e??a.bex.chainName,range:t}})).data.polGetSWberaVaultSnapshots}catch(i){throw console.error("Failed to get SW Bera Snapshots",i),i}}import{wberaStakerVaultAbi as Ra}from"@berachain/abis/pol/wberaStakerVault";async function ne({publicClient:e,address:t}){let r=await e.readContract({address:t,abi:Ra,functionName:"WITHDRAWAL_COOLDOWN"});return Number(r)}import{erc20Abi as ye}from"viem";import{wberaStakerVaultAbi as ie}from"@berachain/abis/pol/wberaStakerVault";import M from"@berachain/utils/pkg/bignumber.js";async function Fu({address:e,publicClient:t,blockTime:r,...a}){let{config:o}=c(a);v(t);let i=26;try{let[l]=await Promise.all([t.getBlock({blockTag:"latest"})]),n=Math.floor(i*60*60/r),s=l.number-BigInt(n),[d,u,m,f,b,p,A,C,B,y,T]=await Promise.all([t.readContract({address:e,abi:ie,functionName:"totalAssets"}),t.readContract({address:e,abi:ie,functionName:"totalSupply"}),t.readContract({address:e,abi:ie,functionName:"previewRedeem",args:[10n**18n],blockNumber:l.number}),t.readContract({address:o.tokens.wbera,abi:ye,functionName:"balanceOf",args:[e]}),t.readContract({address:e,abi:ie,functionName:"totalAssets",blockNumber:s}),t.readContract({address:e,abi:ye,functionName:"totalSupply",blockNumber:s}),t.readContract({address:e,abi:ie,functionName:"previewRedeem",args:[10n**18n],blockNumber:s}),t.readContract({address:o.tokens.wbera,abi:ye,functionName:"balanceOf",args:[e],blockNumber:s}),t.readContract({address:o.tokens.wbera,abi:ye,functionName:"totalSupply"}),ne({publicClient:t,address:e}),Bt({})]),k=new M(A.toString());return{current:{exchangeRate:new M(m.toString()).toString(),totalSupply:new M(u.toString()).dividedBy(1e18).toString(),totalAssets:new M(d.toString()).dividedBy(1e18).toString(),tvl:new M(f.toString()).dividedBy(1e18).toString()},previous:{exchangeRate:k.toString(),totalSupply:new M(p.toString()).dividedBy(1e18).toString(),totalAssets:new M(b.toString()).dividedBy(1e18).toString(),tvl:new M(C.toString()).dividedBy(1e18).toString()},totalWBeraIssued:new M(B.toString()).dividedBy(1e18).toString(),lockPeriod:y,totalBuyBacks:T.sumAllClaims,totalBuyBacksInLast24Hours:T.sumClaimsInLast24Hours}}catch(l){throw console.error("Failed to get SW Bera Vault Metadata",l),l}}import{wberaStakerVaultAbi as Ae}from"@berachain/abis/pol/wberaStakerVault";function Rt(e){let t=Date.now(),r=e*1e3-t;if(r<=0)return;let a=S(r);return $e(a,!0,!0)}async function Lu({contractAddress:e,accountAddress:t,publicClient:r,version:a}){let o=[];function i(l,n){let[s,d,u]=l,m=s,f=Number(u)+Number(n),b=S(Date.now()),p=f-b;if(m>0){let A=Rt(p<=0?0:f);o.push({receiptTokenAddress:e,withdrawalAmount:m,timeRemaining:A})}}switch(a){case"V1":{let[l,n]=await Promise.all([r.readContract({address:e,abi:Ae,functionName:"withdrawalRequests",args:[t]}),ne({publicClient:r,address:e})]);return i(l,n),o}case"V2":{let[l,n]=await Promise.all([r.readContract({address:e,abi:Ae,functionName:"getERC721WithdrawalRequestIds",args:[t]}),ne({publicClient:r,address:e})]);if(R(e,"SWBERA")){let u=await r.readContract({address:e,abi:Ae,functionName:"withdrawalRequests",args:[t]});i(u,n)}let d=(await Promise.all(l.map(async u=>{let m=await r.readContract({address:e,abi:Ae,functionName:"getERC721WithdrawalRequest",args:[u]}),{assets:f,requestTime:b}=m;if(!f||!b)throw new Error("Invalid withdrawal request");let p=f,A=Number(b)+Number(n),C=S(Date.now()),B=A-C;if(p>0){let y=Rt(B<=0?0:A);return{withdrawalAmount:p,timeRemaining:y,withdrawalRequestId:u,receiptTokenAddress:e}}return null}))).filter(u=>u!==null);return o.push(...d),o}}}import{wberaStakerVaultAbi as Sa}from"@berachain/abis/pol/wberaStakerVault";async function _u({vaultAddresses:e,publicClient:t}){v(t);try{let r=await Promise.all(e.map(async o=>await t.readContract({address:o,abi:Sa,functionName:"totalAssets"})));return e.reduce((o,i,l)=>(o[i]=r[l],o),{})}catch(r){throw console.error("Failed to get total staked amount",r),r}}async function Yu({account:e,...t}){let{config:r}=c(t),a=await fetch(`${r.pol.bribeBoostApi}/api/v1/wallets/${e.toLowerCase()}/rewards/aggregation`,{cache:"no-store"});if(!a.ok){let o=await ue(a);throw new P({message:"Failed to fetch incentives on server",cause:{error:o,result:a,account:e},reason:o?.error})}return await a.json()}import{rewardVaultAbi as ka}from"@berachain/abis/pol/rewards/rewardVault";async function St({account:e,vaultAddress:t,publicClient:r}){if(!r)throw new Error("Missing public client");if(!e)throw new Error("Missing user account");if(!t)throw new Error("Missing vault address");return await r.readContract({address:t,abi:ka,functionName:"earned",args:[e]})}import{formatEther as xe}from"viem";import{rewardVaultAbi as kt}from"@berachain/abis/pol/rewards/rewardVault";async function Nt({account:e,vaultAddress:t,publicClient:r}){v(r),we(e,"account"),we(t,"vaultAddress");try{let[a,o]=await Promise.all([r.readContract({address:t,abi:kt,functionName:"balanceOf",args:[e]}),r.readContract({address:t,abi:kt,functionName:"getTotalDelegateStaked",args:[e]})]);return{balance:a,delegated:o}}catch(a){throw console.log(a),a}}import{rewardVaultAbi as Na}from"@berachain/abis/pol/rewards/rewardVault";async function Gt({vaultAddress:e,publicClient:t}){if(!t)throw new Error("Missing public client");if(!e)throw new Error("Missing vault address");try{return await t.readContract({address:e,abi:Na,functionName:"totalSupply",args:[]})}catch(r){throw console.log(r),r}}async function uc({account:e,vaultAddress:t,publicClient:r}){let[a,o,i]=await Promise.all([Nt({account:e,vaultAddress:t,publicClient:r}),St({account:e,vaultAddress:t,publicClient:r}),Gt({vaultAddress:t,publicClient:r})]),l=a.balance-a.delegated,n=i>0n?Number(Number.parseFloat(xe(a.balance))/Number.parseFloat(xe(i))).toString():"0";return{balance:a.balance,delegatedBalance:a.delegated,withdrawableBalance:l,rewards:xe(o),percentage:n}}import{formatUnits as Te}from"viem";import{rewardVaultAbi as xt}from"@berachain/abis/pol/rewards/rewardVault";import{GetUserVaults as Ga}from"@berachain/graphql/pol/api";async function Ac({account:e,publicClient:t,...r}){let{config:a}=c(r),l=(await g("api",r).query({query:Ga,variables:{userId:e,chain:a.bex.chainName}})).data?.userVaultDeposits?.deposits;if(!l)return{totalBgtRewards:"0",vaults:[],totalStakedValue:0};let[n,s]=await Promise.all([t.multicall({allowFailure:!1,contracts:l.map(b=>({address:b.vaultAddress,abi:xt,functionName:"earned",args:[e]}))}),t.multicall({allowFailure:!1,contracts:l.map(b=>({address:b.vaultAddress,abi:xt,functionName:"balanceOf",args:[e]}))})]),{userVaults:d,total:u}=l.reduce((b,p,A)=>{let C=n[A],B=s[A];if(b.total+=C,!p.vault)return O.captureException(new P({message:"Deposit data from API is missing vault",level:"error",extra:{deposit:p}})),console.error("Deposit data from API is missing vault",p),b;if(C>0n||B>0n){let y=p.vault.dynamicData?.tvl&&Number(p.vault.stakingTokenAmount)!==0?Number(p.vault.dynamicData?.tvl??0)/Number(p.vault.stakingTokenAmount):null;b.userVaults.push({...p,vault:p.vault,unclaimedBgt:Te(C,18),formattedBalance:Te(B,p.vault.stakingToken.decimals),stakingTokenPrice:y})}return b},{userVaults:[],total:0n}),m=[...d].sort((b,p)=>{if(b.vault.isVaultWhitelisted&&!p.vault.isVaultWhitelisted)return-1;if(!b.vault.isVaultWhitelisted&&p.vault.isVaultWhitelisted)return 1;let A=Number.parseFloat(b.unclaimedBgt);return Number.parseFloat(p.unclaimedBgt)-A});return{totalStakedValue:m.reduce((b,p)=>{let A=Number(p.vault.dynamicData?.tvl??0);if(A===0)return b;let C=Number.parseFloat(p.vault.stakingTokenAmount),B=A/C;return b+B*Number(p.formattedBalance)},0),totalBgtRewards:Te(u,18),vaults:m}}import{GetVaultHistory as xa}from"@berachain/graphql/pol/api";async function Bc({vault:e,chain:t,...r}){let{config:a}=c(r);return(await g("api",r).query({query:xa,variables:{...r,vaultId:e,chain:t??a.bex.chainName}})).data.polGetRewardVaultSnapshots}import{GetVaultValidators as Ta}from"@berachain/graphql/pol/api";async function Sc({address:e,onlyActiveValidators:t,...r}){return(await g("api",r).query({query:Ta,variables:{vaultId:e,isActive:t}})).data.validators.validators??[]}import{getAddress as Ea,zeroAddress as Fa}from"viem";import{GetTokenCurrentPrices as Ia}from"@berachain/graphql/dex/api";async function Ic({addressIn:e,...t}){let{config:r,chainId:a}=c(t),o=e.map(n=>n.toLowerCase()).filter((n,s,d)=>n&&d.indexOf(n)===s),i=g("api",t),{data:l}=await i.query({query:Ia,variables:{chains:[r.bex.chainName],addressIn:o}});return l.tokenGetCurrentPrices.reduce((n,s)=>{if(!s.price||!s.address)return n;let d=s.address;return n[Ea(d)]={price:K(s.price.toString()),updatedAt:s.updatedAt,chainId:a},n[d.toLowerCase()]={price:K(s.price.toString()),updatedAt:s.updatedAt,chainId:a},R(d,"WBERA")&&(n[Fa]={price:K(s.price.toString()),updatedAt:s.updatedAt,chainId:a},n[r.tokens.bgt.toLowerCase()]={price:K(s.price.toString()),updatedAt:s.updatedAt,chainId:a},n[r.tokens.bgt]={price:K(s.price.toString()),updatedAt:s.updatedAt,chainId:a}),n},{})}import{getPublicClient as qa}from"@wagmi/core";import{erc20Abi as Da,formatUnits as Qa}from"viem";async function Wc({items:e,account:t,config:r}){j(e,"items"),j(r,"config"),j(t,"account");let a=Object.groupBy(e,i=>i.token.chainId);return(await Promise.allSettled(Object.entries(a).map(async([i,l])=>{if(!l)return[];let n=qa(r,{chainId:Number(i)});return v(n,`publicClient ${i}`),(await n.multicall({contracts:l.map(u=>({address:u.token.address,abi:Da,functionName:"allowance",args:[t,u.spender]}))})).map((u,m)=>{let f=l[m];return u.error?void 0:{token:f.token,spender:f.spender,amount:f.amount,allowance:{raw:u.result.toString(),formatted:Qa(u.result,f.token.decimals)},needsApproval:u.result<BigInt(f.amount.raw)}}).filter(u=>!!u)}))).flatMap(i=>i.status==="fulfilled"?i.value:void 0).filter(i=>!!i)}import{getPublicClient as La,getWalletClient as Oa,switchChain as Ma}from"@wagmi/core";import{BaseError as Ha,createWalletClient as _a,decodeErrorResult as Ja,HttpRequestError as $a,http as ja}from"viem";import{ChainId as Ka,defaultChainId as Ft}from"@berachain/config/internal";import{AbiFunctionSignatureNotFoundError as Ua,decodeFunctionData as Wa}from"viem";async function Tt({publicClient:e,abi:t,...r}){let a=[...le,...t??[]],o,i,l,n,s,d,u;if("txHash"in r){let m=await e.getTransaction({hash:r.txHash});if(!m.to)throw new x({property:"tx",value:m,expected:"Transaction",message:"Trying to get revert reason for a contract creation"});s=m.input,i=m.to,l=m.from,n=m.value,o=m.blockNumber}else if(o=r.blockNumber,i=r.to,l=r.account,n=r.value,"data"in r)s=r.data;else if("functionName"in r&&"args"in r)d=r.functionName,u=r.args;else if(!n)throw new x({property:"dataOrFunctionNameAndArgs",value:r,expected:"Hex or FunctionName and Args"});try{if(!a)if(s)await e.call({data:s,to:i,account:l,blockNumber:o,value:n});else throw new Error("Data is required if abi is not provided");if("functionName"in r&&"args"in r&&r.functionName)d=r.functionName,u=r.args;else if(s){if(!a){let m=await e.call({data:s,to:i,account:l,blockNumber:o,value:n});throw new Error(`Getting revert reason for successful simulation. Data: ${s}`,{cause:m})}try{let m=Wa({abi:a,data:s});d=m.functionName,u=m.args}catch(m){throw m instanceof Ua&&await e.call({data:s,to:i,account:l,blockNumber:o,value:n}),new Error("Data is required if abi is not provided")}}else throw new Error("No data or function name and args provided");throw a&&d?(await e.simulateContract({functionName:d,args:u,abi:a,address:i,account:l,blockNumber:o}),new H({message:"Getting revert reason for successful simulation",functionName:d,to:i,txHash:"txHash"in r?r.txHash:void 0,input:r})):new Error("No data or function name and args provided")}catch(m){if(m instanceof Error)return ee({error:m,abi:a,revertIfUnknown:!0});throw m}}var Ya=Me(1),Et=(e,t)=>e*(100n+BigInt(t))/100n;function Ee({nonceResult:e,onWarning:t}){if(e.status==="fulfilled"){if(e.value&&e.value>Number.MAX_SAFE_INTEGER){t?.(new P({message:"Nonce is too large. No nonce will be provided to avoid IntegerOutOfRangeError.",cause:e.value,level:"debug"}));return}return e.value}}function za(e=Ft){return e===Ka.BEPOLIA?process.env.NEXT_PUBLIC_80069_ANVIL_IMPERSONATE_ACCOUNT==="true":process.env.NEXT_PUBLIC_80094_ANVIL_IMPERSONATE_ACCOUNT==="true"}async function ld(e){if(process.env.NODE_ENV==="development"&&!e.contractName&&e.address&&!("calls"in e||e.calls))throw console.warn("beraWriteContract: Contract name is required. Either update the contract mapping in devrel or provide a contract name in ContractName enum","This is a development error and will be thrown in development mode only."),new x({property:"contractName",value:e.contractName,expected:"ContractName",displayMessage:`[DEV] Contract name is required as it's not mapped in the devrel's contract mapping ${e.address}`,level:"error"});let{address:t,calls:r,value:a,gasLimit:o,onLoading:i,onSuccess:l,onWarning:n,onError:s,onSubmission:d,wagmiConfig:u,walletClient:m,account:f,txConfirmationTimeout:b=12e4,chainId:p=Ft,impersonateAccount:A=za(p),errorsAbi:C=[],pollingInterval:B=Ya,...y}=e;i?.(e);let T="data"in y?y.data:void 0,k=[...le,...C,..."abi"in y&&y.abi&&Array.isArray(y.abi)?y.abi:[]],N=m;if(!u){s?.(new x({property:"wagmiConfig",value:u,expected:"Config"}),e);return}if(!(N?.account?.type==="local"))try{await Ma(u,{chainId:p})}catch(V){let G=V;s?.(new P({cause:G,displayMessage:"There was an error switching to the chain."}),e);return}if(!N)try{N=await Oa(u,{chainId:p})}catch(V){s?.(new P({cause:V,displayMessage:"There was an error connecting to the wallet."}),e);return}if(!N){s?.(new x({displayMessage:"There was an error connecting to the wallet.",property:"walletClient",value:N,expected:"WalletClient"}),e);return}let I=f||N.account;if(!I){s?.(new x({property:"account",value:I,expected:"Account"}),e);return}let se=typeof I=="string"?I:I.address,U=La(u,{chainId:p});try{v(U)}catch(V){s?.(V,e);return}if(A){let V=Pe(p);await V.impersonateAccount({address:se}),N=_a({transport:ja(V.transport.url),account:I,chain:N.chain})}let E,Z={calls:"calls"in y?y.calls:void 0,params:"params"in y?y.params:void 0,value:a,data:"data"in y?y.data:void 0};try{let V=U.getTransactionCount({address:se,blockTag:"latest"}).catch(()=>{}),G={account:se,to:t,address:t,chainId:p,value:a};if(r){let F=r.map(h=>{if("abi"in h&&Array.isArray(k)&&k.push(...h.abi),"data"in h)return{to:h.address,data:h.data,value:h.value??0n};if("abi"in h&&"functionName"in h){let W="params"in h?h.params:void 0;return{to:h.address,abi:h.abi,functionName:h.functionName,args:W,value:h.value??0n}}return{to:h.address,value:h.value??0n}});if(e.enableSimulateCalls){let h=await U.simulateCalls({calls:F,account:I}),W=h.results.findIndex(L=>L.status==="failure");if(W!==-1){if(h.block.number===null)throw new x({property:"blockNumber",value:h.block.number,expected:"bigint",message:"Block number is null"});let L=h.results[W],{reason:he}=L.data&&L.data!=="0x"?{reason:De(Ja({data:L.data,abi:k}))}:ee({error:L.error,revertIfUnknown:!1,abi:k});s?.(new H({cause:L.error,txHash:E,chainId:p,reason:he,abi:k,input:Z,blockNumber:h.block.number}),e);return}}if(process.env.NODE_ENV==="test")throw new x({displayMessage:"Batch calls are not supported in test environment",expected:"not test",property:"NODE_ENV",value:process.env.NODE_ENV,level:"fatal"});let D=await N.sendCalls({calls:F,account:I,forceAtomic:!0});d?.({id:D.id},e);let Q=await N.waitForCallsStatus({id:D.id,pollingInterval:B,timeout:b});if(Q.status==="success"){let h=Q.receipts?.[0];if(!h)throw new P({message:"Call status is success but no receipt was found",cause:Q,level:"error",reason:"CALL_STATUS_SUCCESS_BUT_NO_RECEIPT"});return l?.(h,e),h}throw console.error("wallet_sendCalls: Call failed",Q),new H({cause:Q,level:"error",input:Z,txHash:E,abi:k,chainId:p})}if(T){let[F,D,Q]=await Promise.allSettled([U.call({...G,data:T}),o??U.estimateGas({...G,data:T}),V]);if(F.status==="rejected")throw F.reason;let h=D.status==="fulfilled"?Et(D.value,10):Ce;E=await N.sendTransaction({data:T,to:t,account:I,gas:h,chainId:p,nonce:Ee({nonceResult:Q,onWarning(W){n?.(W,e)}}),value:a}),d?.({txHash:E},e)}else if("abi"in y&&"functionName"in y){let{abi:F,functionName:D}=y,Q="params"in y?y.params:void 0,[h,W,L]=await Promise.allSettled([U.simulateContract({...G,abi:k,functionName:D,args:Q,account:I}),o??U.estimateContractGas({...G,abi:k,functionName:D,args:Q}),V]);if(h.status==="rejected")throw h.reason;let he=o??(W.status==="fulfilled"?Et(W.value,10):Ce);E=await N.writeContract({...h.value.request,chainId:p,gas:he,nonce:Ee({nonceResult:L,onWarning(Ut){n?.(Ut,e)}})}),d?.({txHash:E},e)}else{let[F]=await Promise.allSettled([V]);E=await N.sendTransaction({chainId:p,to:t,value:a,account:I,nonce:Ee({nonceResult:F,onWarning(D){n?.(D,e)}})}),d?.({txHash:E},e)}process.env.NODE_ENV==="test"&&await Pe(p).mine({blocks:1});let J=await U.waitForTransactionReceipt({hash:E,pollingInterval:B,timeout:b,confirmations:1});if(J.status==="success")l?.(J,e);else{let F=await Tt({publicClient:U,blockNumber:J.blockNumber,to:t,account:se,abi:k,args:"params"in y?y.params:void 0,functionName:"functionName"in y?y.functionName:void 0,value:a,data:T});process.env.NODE_ENV==="test"&&console.error("beraWriteContract: Revert reason",F),s?.(new H({reason:F.reason,txHash:E,receipt:J,to:t,functionName:"functionName"in y?y.functionName:void 0,input:Z,chainId:p,abi:k,blockNumber:J.blockNumber}),e)}return J}catch(V){if(V instanceof P)s?.(V,e);else if(V instanceof Error){let G=ee({error:V,revertIfUnknown:!1,abi:k});if(G&&G.rootCause instanceof Ha&&"url"in G.rootCause){s?.(new $({cause:G.rootCause,response:void 0,endpoint:{url:G.rootCause.url,type:"rpc"},statusCode:G.rootCause instanceof $a?G.rootCause.status:void 0}),e);return}s?.(new H({cause:V,to:t,txHash:E,chainId:p,abi:k,functionName:"functionName"in y?y.functionName:void 0,input:Z}),e)}else s?.(new H({cause:V,txHash:E,to:t,chainId:p,functionName:"functionName"in y?y.functionName:void 0,input:Z,abi:k}),e)}}import{GetValidators as Xa}from"@berachain/graphql/pol/api";async function It({variables:e={},...t}={}){let{config:r}=c(t);return(await g("api",t).query({query:Xa,variables:{chain:r.bex.chainName,...e}})).data}import{isAddressEqual as Za}from"viem";async function bd({allocation:e}){let t=await be({filter:{where:{vaultAddressIn:e.weights.map(a=>a.receiver)}}}),r=e?.start.blockNumber??0;return e?.weights.map(a=>({percentage:a.percentage,receiver:a.receiver,startBlock:r,receivingVault:t?.gaugeList.find(o=>Za(o.address,a.receiver))}))}import{GetValidator as eo}from"@berachain/graphql/pol/api";async function Cd({id:e,...t}){let{config:r}=c(t);return(await g("api",t).query({query:eo,variables:{id:e,chain:r.bex.chainName}})).data}import{GetValidatorBlockStats as to}from"@berachain/graphql/pol/subgraph";async function Vd({pubKey:e,first:t=1,...r}){let a=g("pol.subgraph",r);try{return(await a.query({query:to,variables:{pubKey:e,first:t}})).data}catch(o){throw console.error("GetValidatorBlockStats:",o),o}}import{beraChefAbi as qt}from"@berachain/abis/pol/rewards/beraChef";function X(e,t){return{start:{blockNumber:Number(e.startBlock),timestamp:e.startBlock!==0n?t:0},weights:e.weights.map(r=>({receiver:r.receiver,percentage:Number(r.percentageNumerator)/1e4}))}}function ro(e,t){return e.start.blockNumber===t.start.blockNumber&&e.weights.every((r,a)=>r.percentage===t.weights[a].percentage)}async function Nd({client:e,pubKey:t,...r}){let{config:a}=c(r);try{let[o,i]=await Promise.all([e.readContract({address:a.pol.beraChef,abi:qt,functionName:"getActiveRewardAllocation",args:[t]}),e.readContract({address:a.pol.beraChef,abi:qt,functionName:"getSetActiveRewardAllocation",args:[t]})]),[l,n]=await Promise.all([o.startBlock!==0n?e.getBlock({blockNumber:BigInt(o.startBlock)}):{timestamp:0},i.startBlock!==0n?e.getBlock({blockNumber:BigInt(i.startBlock)}):{timestamp:0}]),s=X(o,Number(l.timestamp)),d=X(i,Number(n.timestamp)),u=!1;return d.start.blockNumber===0?u=!0:u=!ro(d,s),{activeRewardAllocation:s,setRewardAllocation:d,isBaseline:u,isNeverSet:d?.start.blockNumber===0}}catch(o){throw console.log("getValidatorRewardAllocation:",o),o}}import{beraChefAbi as ao}from"@berachain/abis/pol/rewards/beraChef";function Fd(e){return e.start.blockNumber===0}async function Id({client:e,...t}){let{config:r}=c(t),a=await e.readContract({address:r.pol.beraChef,abi:ao,functionName:"getDefaultRewardAllocation",args:[]});return X({...a,startBlock:0n},0)}import{GetValidatorByAccount as oo}from"@berachain/graphql/pol/subgraph";async function Ud({account:e,...t}){try{return(await g("pol.subgraph",t).query({query:oo,variables:{account:e}})).data}catch(r){throw console.error("getManagedValidatorByAccount:",r),r}}async function Ld({client:e,valPubKey:t}){return 5614}import{formatEther as Fe}from"viem";import{bgtAbi as Ie}from"@berachain/abis/pol/bgt";async function Dt({account:e,pubkey:t,publicClient:r,...a}){let{config:o}=c(a);if(!e)throw new Error("account is required");if(!r)throw new Error("publicClient is required");let[i,l,n]=await Promise.all([r.readContract({address:o.tokens.bgt,abi:Ie,functionName:"boosted",args:[e,t]}),r.readContract({address:o.tokens.bgt,abi:Ie,functionName:"boostedQueue",args:[e,t]}),r.readContract({address:o.tokens.bgt,abi:Ie,functionName:"dropBoostQueue",args:[e,t]})]);return{pubkey:t,activeBoostAmount:Fe(i),queuedBoostAmount:Fe(l[1]),queuedDropBoostAmount:Fe(n[1]),queuedBoostStartBlock:l[0],queuedDropBoostStartBlock:n[0],hasPendingBoosts:Number(l[1])>0||Number(n[1])>0,hasActiveBoosts:Number(i)>0}}import{GetUserValidatorInformation as no}from"@berachain/graphql/pol/subgraph";async function Qt({account:e,block:t,...r}){return await g("pol.subgraph",r).query({query:no,variables:{address:e.toLowerCase(),block:t}})}async function tm({account:e,publicClient:t,chain:r,...a}){let{config:o}=c(a),i=r??o.bex.chainName,l=await Qt({account:e}),[n,s]=await Promise.all([It({variables:{chain:i,where:{idIn:l.data.userValidatorInformations.map(d=>d.validator.id)}}}),t&&je({lastBlockTimestamp:l.data._meta?.block.timestamp,blockTime:o.averageBlockTime})?Promise.all(l.data.userValidatorInformations.map(d=>Dt({account:e,pubkey:d.validator.publicKey,publicClient:t}))):void 0]);return n?.validators.validators.map(d=>{let u=s?s.find(m=>m.pubkey.toLowerCase()===d.pubkey.toLowerCase()):l.data.userValidatorInformations.find(m=>m.validator.id.toLowerCase()===d.id.toLowerCase());if(!u)throw new Error("User deposited not found");return{...d,userBoosts:{pubkey:"pubkey"in u?u.pubkey:u.validator.publicKey,activeBoostAmount:u?.activeBoostAmount,queuedBoostAmount:u?.queuedBoostAmount,queuedBoostStartBlock:Number(u?.queuedBoostStartBlock),queuedDropBoostAmount:u?.queuedDropBoostAmount,queuedDropBoostStartBlock:Number(u?.queuedDropBoostStartBlock),hasPendingBoosts:Number(u?.queuedBoostAmount)>0||Number(u?.queuedDropBoostAmount)>0,hasActiveBoosts:Number(u?.activeBoostAmount)>0}}})}var io=[{validatorAddress:"0x8f51e63d9921a461be29e73dca1c2385e1adc5943fbb36ded4ba96025ee8a783184d1118da08171f6ea831153c878a6d",earning:.045,staked:{amount:16114000000000000000n,formattedAmount:"161.14"},rewards:{amount:15214000000000000000n,formattedAmount:"152.14"}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0x97b21253b17f4e814fe7505c15c18e68c85ab2477274ad370a762df50e3eb4cb1a48451e089bc22e158d7448549a8ab9",earning:.045,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{stake:[{amount:16159000000000000000n,formattedAmount:"161.59"}],unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:S(Date.now()-72e6)}]}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0xa2705d6b27891f3f5651f26547d1bb79e256f95f249d1ad717cef087d77d38b037e5d6dbaa2538930fd0731ec9b02f3a",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:S(Date.now()-72e6)}]}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0xa2705d6b27891f3f5651f26547d1bb79e256f95f249d1ad717cef087d77d38b037e5d6dbaa2538930fd0731ec9b02f3a",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:S(Date.now()-72e6)}]}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0xa2705d6b27891f3f5651f26547d1bb79e256f95f249d1ad717cef087d77d38b037e5d6dbaa2538930fd0731ec9b02f3a",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:S(Date.now()-72e6)}]}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0xa2705d6b27891f3f5651f26547d1bb79e256f95f249d1ad717cef087d77d38b037e5d6dbaa2538930fd0731ec9b02f3a",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:S(Date.now()-72e6)}]}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0xa2705d6b27891f3f5651f26547d1bb79e256f95f249d1ad717cef087d77d38b037e5d6dbaa2538930fd0731ec9b02f3a",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:S(Date.now()-72e6)}]}},{staked:{amount:241514000000000000000n,formattedAmount:"2415.14"},validatorAddress:"0xa4e4b63514f54d61da5197359f11ff1fc2930788ba2ffdd30c2fc059cbe0221020197bf9446b16ac347f36c7517a8686",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:1159000000000000000n,formattedAmount:"11.59",timestamp:S(Date.now()-36e6)}]}},{validatorAddress:"0xb0511ec039591e98bd4e183ba70b85572214a7ad8ca1a43e96ad3495d3821054927bc542e5482ec9733e35b7ef0b1f03",earning:.045,staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{stake:[{amount:1159000000000000000n,formattedAmount:"11.59"}]}}];async function om(e){return await new Promise(t=>setTimeout(t,2e3)),e==="0x4C368fFE3650379d6318C8d4630bc51f8Ad12bB6"?io:[]}import{GetValidatorAnalytics as so}from"@berachain/graphql/pol/subgraph";async function um({pubkey:e,dayRange:t,...r}){return(await g("pol.subgraph",r).query({query:so,variables:{pubKey:e,timestamp:Je(t).toString()}})).data}import{beraChefAbi as lo}from"@berachain/abis/pol/rewards/beraChef";async function pm({client:e,pubKey:t,...r}){let{config:a}=c(r),o=await e.readContract({address:a.pol.beraChef,abi:lo,functionName:"getValCommissionOnIncentiveTokens",args:[t]});return Number(o??0n)/1e4}var bm=(e,t,r)=>{if(!t||!e)return 0;let a=te(1)/r;return(t?a*(Number(e.dynamicData?.stakedBeraAmount)/t):0)*Number.parseFloat(e.dynamicData?.rewardRate??"0")};import{beaconDepositAbi as uo}from"@berachain/abis/pol/beaconDeposit";async function wm({client:e,pubKey:t,...r}){let{config:a}=c(r);try{return await e.readContract({address:a.depositContract,abi:uo,functionName:"getOperator",args:[t]})}catch(o){throw console.log("getValidatorOperatorAddress:",o),o}}import{beraChefAbi as co}from"@berachain/abis/pol/rewards/beraChef";async function vm({client:e,pubKey:t,...r}){let{config:a}=c(r),o=await e.readContract({address:a.pol.beraChef,abi:co,functionName:"getValQueuedCommissionOnIncentiveTokens",args:[t]});return{blockNumberLast:o.blockNumberLast,commissionRate:Number(o.commissionRate)/1e4}}import{beaconDepositAbi as mo}from"@berachain/abis/pol/beaconDeposit";async function km({client:e,pubKey:t,...r}){let{config:a}=c(r);try{return await e.readContract({address:a.depositContract,abi:mo,functionName:"queuedOperator",args:[t]})}catch(o){throw console.log("getValidatorQueuedOperatorAddress:",o),o}}import{beraChefAbi as po}from"@berachain/abis/pol/rewards/beraChef";async function Em({client:e,pubKey:t,...r}){let{config:a}=c(r);try{let o=await e.readContract({address:a.pol.beraChef,abi:po,functionName:"getQueuedRewardAllocation",args:[t]});return X(o,0)}catch(o){throw console.log("getValidatorQueuedRewardAllocation:",o),o}}export{yo as a,me as b,g as c,Io as d,Xe as e,_o as f,rn as g,ln as h,pn as i,et as j,vn as k,Nn as l,In as m,Wn as n,Y as o,_n as p,fe as q,Yn as r,Zn as s,oi as t,st as u,pi as v,yi as w,Ci as x,Vi as y,lt as z,Re as A,ct as B,Zi as C,as as D,Jr as E,ls as F,fs as G,bt as H,vs as I,yt as J,Ds as K,Ms as L,$s as M,oa as N,Xs as O,tl as P,nl as Q,be as R,Fl as S,Bt as T,Ll as U,Jl as V,zl as W,au as X,cu as Y,pu as Z,Au as _,Bu as $,ne as aa,Fu as ba,Lu as ca,_u as da,Yu as ea,St as fa,uc as ga,Ac as ha,Bc as ia,Sc as ja,Ic as ka,Wc as la,za as ma,ld as na,It as oa,bd as pa,Cd as qa,Vd as ra,X as sa,ro as ta,Nd as ua,Fd as va,Id as wa,Ud as xa,Ld as ya,Dt as za,tm as Aa,om as Ba,um as Ca,pm as Da,bm as Ea,wm as Fa,vm as Ga,km as Ha,Em as Ia};
4
+ //# sourceMappingURL=chunk-RW3JFPED.mjs.map