@berachain/berajs 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/dist/{transactionStore-BvStaXf3.d.ts → BexStatusProvider-nS3NcdxI.d.cts} +1 -41
  2. package/dist/{transactionStore-CQrGYSY2.d.cts → BexStatusProvider-nS3NcdxI.d.ts} +1 -41
  3. package/dist/abi/exports.cjs.map +1 -1
  4. package/dist/actions/exports.cjs +1 -1
  5. package/dist/actions/exports.cjs.map +1 -1
  6. package/dist/actions/exports.d.cts +4 -5
  7. package/dist/actions/exports.d.ts +4 -5
  8. package/dist/actions/exports.mjs +1 -1
  9. package/dist/{chunk-OS5AJMYJ.cjs → chunk-22J3YJDN.cjs} +2 -2
  10. package/dist/chunk-22J3YJDN.cjs.map +1 -0
  11. package/dist/{chunk-MTS5SZLA.mjs → chunk-2LL3P5PN.mjs} +2 -2
  12. package/dist/chunk-3YXSUBA5.mjs +2 -0
  13. package/dist/{chunk-H2QSRMVS.mjs.map → chunk-3YXSUBA5.mjs.map} +1 -1
  14. package/dist/chunk-55L7STYD.mjs +2 -0
  15. package/dist/chunk-55L7STYD.mjs.map +1 -0
  16. package/dist/{chunk-BOYZVULX.cjs → chunk-6LDOG5RL.cjs} +2 -2
  17. package/dist/chunk-6LDOG5RL.cjs.map +1 -0
  18. package/dist/{chunk-UQUWMHVF.cjs → chunk-7LNBSOVV.cjs} +2 -2
  19. package/dist/chunk-7LNBSOVV.cjs.map +1 -0
  20. package/dist/{chunk-ZQRACIGR.mjs → chunk-7SMWQ6SN.mjs} +2 -2
  21. package/dist/{chunk-7GWTHOLO.mjs → chunk-7WRTK7RJ.mjs} +2 -2
  22. package/dist/chunk-A4UDYSB6.mjs +4 -0
  23. package/dist/chunk-A4UDYSB6.mjs.map +1 -0
  24. package/dist/chunk-AX2YQQFQ.mjs +2 -0
  25. package/dist/chunk-AX2YQQFQ.mjs.map +1 -0
  26. package/dist/chunk-C6ZGUO4H.cjs +2 -0
  27. package/dist/chunk-C6ZGUO4H.cjs.map +1 -0
  28. package/dist/chunk-CYKCYPFR.cjs.map +1 -1
  29. package/dist/chunk-ECRMUMTA.mjs +2 -0
  30. package/dist/chunk-ECRMUMTA.mjs.map +1 -0
  31. package/dist/{chunk-ZAKA4TGK.cjs → chunk-FCWDGE62.cjs} +2 -2
  32. package/dist/chunk-FCWDGE62.cjs.map +1 -0
  33. package/dist/chunk-FL2N3XHK.cjs.map +1 -1
  34. package/dist/chunk-MUCEYO3E.cjs +4 -0
  35. package/dist/chunk-MUCEYO3E.cjs.map +1 -0
  36. package/dist/chunk-OIYXOKTT.cjs.map +1 -1
  37. package/dist/chunk-P2Q7CMUD.cjs +2 -0
  38. package/dist/chunk-P2Q7CMUD.cjs.map +1 -0
  39. package/dist/chunk-PKXAW6MO.cjs +2 -0
  40. package/dist/chunk-PKXAW6MO.cjs.map +1 -0
  41. package/dist/chunk-SWMJQOH6.cjs.map +1 -1
  42. package/dist/{chunk-YQGZMWDT.mjs → chunk-THATXCJK.mjs} +2 -2
  43. package/dist/chunk-VP7XUOSI.cjs.map +1 -1
  44. package/dist/chunk-VXL2ZZ4X.cjs.map +1 -1
  45. package/dist/chunk-WRFDB3QJ.cjs.map +1 -1
  46. package/dist/chunk-XNJLSA6P.cjs.map +1 -1
  47. package/dist/chunk-YZV5LKIP.cjs +2 -0
  48. package/dist/chunk-YZV5LKIP.cjs.map +1 -0
  49. package/dist/contexts/exports.cjs +1 -1
  50. package/dist/contexts/exports.cjs.map +1 -1
  51. package/dist/contexts/exports.d.cts +2 -10
  52. package/dist/contexts/exports.d.ts +2 -10
  53. package/dist/contexts/exports.mjs +1 -1
  54. package/dist/contexts/exports.mjs.map +1 -1
  55. package/dist/enum/exports.cjs.map +1 -1
  56. package/dist/enum/exports.d.cts +1 -2
  57. package/dist/enum/exports.d.ts +1 -2
  58. package/dist/errors/exports.cjs +1 -1
  59. package/dist/errors/exports.cjs.map +1 -1
  60. package/dist/errors/exports.d.cts +25 -2
  61. package/dist/errors/exports.d.ts +25 -2
  62. package/dist/errors/exports.mjs +1 -1
  63. package/dist/{getValidatorQueuedOperatorAddress-It0GsdvQ.d.cts → getValidatorQueuedOperatorAddress-Dstyaomr.d.cts} +1 -1
  64. package/dist/{getValidatorQueuedOperatorAddress-BX35p2Lv.d.ts → getValidatorQueuedOperatorAddress-RW4OMcD1.d.ts} +1 -1
  65. package/dist/{global.d-Ba-NIojH.d.cts → global.d-CN6l2b9E.d.cts} +1 -2
  66. package/dist/{global.d-By70bEv2.d.ts → global.d-wYu8G8IQ.d.ts} +1 -2
  67. package/dist/hooks/exports.cjs +2 -2
  68. package/dist/hooks/exports.cjs.map +1 -1
  69. package/dist/hooks/exports.d.cts +7 -15
  70. package/dist/hooks/exports.d.ts +7 -15
  71. package/dist/hooks/exports.mjs +3 -3
  72. package/dist/hooks/exports.mjs.map +1 -1
  73. package/dist/{txnEnum-BYNbCxla.d.ts → txnEnum-BlBYhNRl.d.cts} +74 -1
  74. package/dist/{txnEnum-BYNbCxla.d.cts → txnEnum-BlBYhNRl.d.ts} +74 -1
  75. package/dist/types/exports.cjs.map +1 -1
  76. package/dist/types/exports.d.cts +2 -3
  77. package/dist/types/exports.d.ts +2 -3
  78. package/dist/utils/exports.cjs +1 -1
  79. package/dist/utils/exports.cjs.map +1 -1
  80. package/dist/utils/exports.mjs +1 -1
  81. package/dist/utils/exports.mjs.map +1 -1
  82. package/package.json +6 -6
  83. package/src/actions/dex/aggregators/haiku.ts +1 -1
  84. package/src/actions/dex/aggregators/oogabooga.ts +1 -1
  85. package/src/actions/pol/getEarnedStakedBeraVault.ts +1 -1
  86. package/src/actions/pol/getStakingDailyAssets.ts +4 -1
  87. package/src/actions/tokens/getWalletBalances.integration.test.ts +1 -1
  88. package/src/contexts/exports.ts +0 -1
  89. package/src/data/contracts.ts +1 -1
  90. package/src/errors/BeraError.ts +11 -2
  91. package/src/errors/RequestError.ts +27 -1
  92. package/src/errors/errorMap.ts +7 -6
  93. package/src/errors/getErrorMessage.ts +59 -20
  94. package/src/errors/getRevertReason.integration.test.ts +1 -1
  95. package/src/hooks/exports.ts +0 -4
  96. package/src/hooks/pol/useStakedData.ts +1 -1
  97. package/dist/chunk-7SC4VD3U.cjs +0 -2
  98. package/dist/chunk-7SC4VD3U.cjs.map +0 -1
  99. package/dist/chunk-BHNQX4XC.mjs +0 -2
  100. package/dist/chunk-BHNQX4XC.mjs.map +0 -1
  101. package/dist/chunk-BOYZVULX.cjs.map +0 -1
  102. package/dist/chunk-C3G5KXCH.mjs +0 -2
  103. package/dist/chunk-C3G5KXCH.mjs.map +0 -1
  104. package/dist/chunk-G6NA6NSM.mjs +0 -4
  105. package/dist/chunk-G6NA6NSM.mjs.map +0 -1
  106. package/dist/chunk-H2QSRMVS.mjs +0 -2
  107. package/dist/chunk-IJM76AWK.cjs +0 -4
  108. package/dist/chunk-IJM76AWK.cjs.map +0 -1
  109. package/dist/chunk-MUNAP5TM.cjs +0 -2
  110. package/dist/chunk-MUNAP5TM.cjs.map +0 -1
  111. package/dist/chunk-OS5AJMYJ.cjs.map +0 -1
  112. package/dist/chunk-TJWKS54T.mjs +0 -2
  113. package/dist/chunk-TJWKS54T.mjs.map +0 -1
  114. package/dist/chunk-UQUWMHVF.cjs.map +0 -1
  115. package/dist/chunk-UXUWSRVV.cjs +0 -2
  116. package/dist/chunk-UXUWSRVV.cjs.map +0 -1
  117. package/dist/chunk-WTCBORPB.cjs +0 -2
  118. package/dist/chunk-WTCBORPB.cjs.map +0 -1
  119. package/dist/chunk-ZAKA4TGK.cjs.map +0 -1
  120. package/dist/contracts-CQIPk0Jc.d.cts +0 -74
  121. package/dist/contracts-CQIPk0Jc.d.ts +0 -74
  122. package/src/contexts/TransactionStoreContext.tsx +0 -87
  123. package/src/hooks/transactions/transactionStore.ts +0 -296
  124. package/src/hooks/transactions/transactionStore.unit.test.ts +0 -561
  125. package/src/hooks/transactions/useAddRecentTransaction.ts +0 -29
  126. package/src/hooks/transactions/useRecentTransactions.ts +0 -27
  127. package/src/hooks/transactions/useSetTransactionStatus.ts +0 -31
  128. /package/dist/{chunk-MTS5SZLA.mjs.map → chunk-2LL3P5PN.mjs.map} +0 -0
  129. /package/dist/{chunk-ZQRACIGR.mjs.map → chunk-7SMWQ6SN.mjs.map} +0 -0
  130. /package/dist/{chunk-7GWTHOLO.mjs.map → chunk-7WRTK7RJ.mjs.map} +0 -0
  131. /package/dist/{chunk-YQGZMWDT.mjs.map → chunk-THATXCJK.mjs.map} +0 -0
@@ -0,0 +1,4 @@
1
+ import{a as qe,c as De,d as X,e as B,f as K,g as Qe,h as me,i as W,j as Z,k as P,m as G,n as Ue}from"./chunk-Q3SCM6WL.mjs";import{a as Le,b as je,c as j}from"./chunk-7WRTK7RJ.mjs";import{a as L,b as te,c as R,d as ve,f as $}from"./chunk-2LL3P5PN.mjs";import{B as Ye,D as re,F as Re,G as ze,a as x,b as fe,c as Oe,d as Me,e as be,j as Ve,k as _e,l as N,m as Je,r as $e,y as se,z as Ke}from"./chunk-ECRMUMTA.mjs";import{a as c,b as ge,d as He,e as k}from"./chunk-THATXCJK.mjs";import{c as pe,d as We,e as ie,f as v,g as ee,h as I}from"./chunk-AX2YQQFQ.mjs";import{formatEther as qt}from"viem";async function La({sharesAmount:e,vaultAddress:t,publicClient:r}){let a=await r.readContract({address:t,abi:qe,functionName:"convertToAssets",args:[e]});return{raw:a,formatted:qt(a)}}import{ApolloClient as Dt,ServerError as Qt}from"@apollo/client";import{appConfig as Ut}from"@berachain/config/internal";var ye=class extends Dt{url;constructor(t){super(t),this.url=t.url}async query(t){let r=Wt(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 Le.startSpan({name:`GraphQL ${r}`,op:"BeraApolloClient.query",attributes:o},i);if(l.error||l.data===void 0)throw new v({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!Ut.env.isProduction&&console.error("BeraApolloClient error",i),Qt.is(i)?new ee({response:i.response,cause:i,statusCode:i.statusCode,endpoint:a,tags:o}):i instanceof TypeError?new ee({level:"fatal",reason:"TypeError",response:i,cause:i,endpoint:a,tags:o}):new ee({response:i,tags:o,cause:i,endpoint:a})}}};function Wt(e){return e.definitions.find(r=>r.kind==="OperationDefinition")?.name?.value}import{InMemoryCache as Lt}from"@apollo/client";import{HttpLink as Ot}from"@apollo/client/link/http";import{getUriFromLink as Ze}from"@berachain/config";import{currentDapp as Xe}from"@berachain/config/internal";import Mt from"@berachain/graphql/dex/api";import{gql as no}from"@apollo/client";function Ht(e){if(!Xe)return e;let t=typeof e=="string"?void 0:e.headers;return{uri:Ze(e),headers:{...t,"x-graphql-client-name":`berachain.${Xe}.${process.env.NEXT_RUNTIME||"browser"}`,"x-graphql-client-version":`${process.env.VERCEL_TARGET_ENV}.${process.env.VERCEL_GIT_COMMIT_SHA}`}}}function Y(e,{ssrMode:t,inMemoryCacheOptions:r}={}){let a=Ze(e),o=typeof e=="string"?void 0:e.headers;return new ye({url:a,link:new Ot({uri:a,headers:o}),defaultOptions:{query:{errorPolicy:"none",fetchPolicy:"no-cache"}},cache:new Lt(r),ssrMode:t})}function g(e,{...t}){let{config:r}=c(t);switch(e){case"api":return Y(Ht(r.api),{inMemoryCacheOptions:{possibleTypes:Mt.possibleTypes}});case"bend.whisk":if(!r.bend.whiskApi)throw new v({message:"Bend whisk API is not configured on this chain",level:"error"});return Y(r.bend.whiskApi);case"honey.subgraph":return Y(r.honey.subgraph);case"pol.subgraph":return Y(r.pol.subgraph);case"governance.subgraph":return Y(r.governance.subgraph);case"blocks.subgraph":return Y(r.blocksSubgraph);case"bex.subgraph":return Y(r.bex.subgraph)}}import{formatUnits as _t,isAddress as et,zeroAddress as Jt}from"viem";var tt=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(!et(t)||!et(r))throw new v({message:`Invalid address: ${t} or ${r}`,level:"error"});return{tokenInAddress:k(t,"BERA")?this.config.tokens.wbera:t,tokenOutAddress:k(r,"BERA")?this.config.tokens.wbera:r,isTokenInNative:k(t,"BERA"),isTokenOutNative:k(r,"BERA")}}getAmountAfterFees(t,r){if(r===void 0)throw new v({message:"aggregatorsFeeBps is required",level:"error"});let a=new x(t).times(r).dividedBy(1e4).toFixed(0,x.ROUND_DOWN);return new x(t).minus(a).toFixed(0,x.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??Jt}}getMinAmountOut(t,r){if(r===void 0)throw new v({message:"slippage is required",level:"error"});let a=new x(t).times(1-r/100);return a.isNaN()||a.isZero()?0n:BigInt(a.toFixed(0))}parseAllowanceRequirements({tokenIn:t,rawAmount:r,spender:a}){return k(t,"BERA")?[]:[{token:t,amount:{raw:r,formatted:_t(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 v({message:`${this.name} does not support tokens chain ID: ${t.chainId} and ${r.chainId}`,level:"error"})}async fetch(t,r){try{return await Oe({url:t,name:this.name,type:this.type},{method:"GET",headers:{"Content-Type":"application/json"},...r})}catch(a){let o=L({cause:a});throw this.notFoundMessages.some(i=>o.message.includes(i))&&(o.reason=e.PATH_NOT_FOUND_REASON),o}}};import{API_CHAIN_NAMES as $t,BALANCER_QUERIES as jt,BALANCER_RELAYER as Kt,BalancerApi as bo,CHAINS as Yt,COMPOSABLE_STABLE_POOL_FACTORY as zt,NATIVE_ASSETS as Xt,Token as Zt,VAULT as er,WEIGHTED_POOL_FACTORY_BALANCER_V2 as tr}from"@berachain-foundation/berancer-sdk";import{zeroAddress as Se}from"viem";import{berachain as rt,berachainBepolia as rr}from"viem/chains";import{chainConfigs as ar}from"@berachain/config/internal";for(let e of Object.keys(ar)){let{config:t,chainId:r}=c({chainId:Number(e)});$t[r]=t.bex.chainName,Yt[r]=r===rt.id?rt:rr,Kt[r]=t.bex.relayer,er[r]=t.bex.vault,jt[r]=t.bex.queries,tr[r]=Se,zt[r]=Se;let a=new Zt(r,Se,ge.decimals,ge.name,ge.symbol,t.tokens.wbera);Xt[r]=a}import{GetPools as or}from"@berachain/graphql/dex/api";import{GqlPoolOrderBy as nr,GqlPoolOrderDirection as ir}from"@berachain/graphql/pol/api";async function So({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:or,variables:{textSearch:e,chain:t??u.bex.chainName,first:r,orderBy:a??nr.TotalLiquidity,orderDirection:o??ir.Desc,skip:i,userAddress:n,blacklistedPoolIds:s},fetchPolicy:l});return{pools:f.data.poolGetPools??[],count:f.data.count??0}}import{GetPool as sr}from"@berachain/graphql/dex/api";async function To({poolId:e,account:t,...r}){let{config:a}=c(r),l=(await g("api",r).query({query:sr,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 lr}from"@berachain/graphql/dex/api";async function Do(e={}){let{config:t}=c(e);return(await g("api",e).query({query:lr,variables:{chain:t.bex.chainName}})).data}import{weightedPoolV4Abi_V2 as ur}from"@berachain-foundation/berancer-sdk";async function at({publicClient:e,poolAddress:t}){let r=ur,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 cr,vaultV2Abi as dr,weightedPoolFactoryAbi_V3 as ot,weightedPoolV4Abi_V2 as Ae}from"@berachain-foundation/berancer-sdk";import{erc20Abi as nt,formatEther as it,formatUnits as mr,isAddress as pr,isHex as fr}from"viem";import{GqlPoolType as st}from"@berachain/graphql/pol/api";async function jo({poolId:e,publicClient:t,...r}){let{config:a}=c(r),o=e.slice(0,42);if(!pr(o)||!fr(e))throw new I({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:nt,functionName:"name"}),t.readContract({address:a.bex.vault,abi:dr,functionName:"getPoolTokens",args:[e]}),t.readContract({address:o,abi:nt,functionName:"totalSupply"}),t.readContract({address:o,abi:Ae,functionName:"getSwapFeePercentage"}),t.readContract({address:o,abi:Ae,functionName:"version"}),t.readContract({address:o,abi:Ae,functionName:"decimals"}),t.readContract({address:a.bex.factories.composableStable,abi:ot,functionName:"isPoolFromFactory",args:[o]}),t.readContract({address:a.bex.factories.weighted,abi:ot,functionName:"isPoolFromFactory",args:[o]}),at({publicClient:t,poolAddress:o})]),p=Number(u),A=JSON.parse(d),C,V,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:cr,functionName:"getAmplificationParameter"})]):A.name==="WeightedPool"&&(V=await t.readContract({address:o,abi:Ae,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:mr(C??n,p),swapFee:it(s),decimals:p,weights:V?.map(q=>it(q)),version:A,factory:m?a.bex.factories.composableStable:a.bex.factories.weighted,type:m?st.Stable:st.Weighted,amplificationParameter:y?[Number(y[0]),y[1],Number(y[2])]:void 0,pausedState:b}}catch(i){throw L({cause:i})}}import{GetPoolEvents as gr}from"@berachain/graphql/dex/api";async function Zo({poolId:e,typeInArray:t,...r}){let{config:a}=c(r);return(await g("api",r).query({query:gr,variables:{poolId:e,typeIn:t,chain:a.bex.chainName}})).data}import{isHex as br}from"viem";import{GetPoolHistoricalData as yr}from"@berachain/graphql/dex/api";async function nn({poolId:e,chain:t,...r}){if(!e||!br(e))throw new I({property:"poolId",value:e,expected:"hex string"});let a=g("api",r),{data:o}=await a.query({query:yr,variables:{poolId:e,chain:t}});return o.poolGetSnapshots}import{isHex as Ar}from"viem";import{GetSubgraphPool as hr}from"@berachain/graphql/dex/subgraph";async function dn({poolId:e,...t}){if(!Ar(e))throw new Error("poolId is not a valid hex string");return(await g("bex.subgraph",t).query({query:hr,variables:{id:e}})).data.pool}import{isAddress as lt,isHex as wr}from"viem";var ae=({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 lt(t,{strict:!0})?null:"Invalid address";case"hex":return wr(t,{strict:!0})?null:"Invalid address";case"abi":try{JSON.parse(t)}catch{return"Invalid ABI"}return null;case"action":return lt(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]=ae({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=>ae({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 Cr=!1,bn=[w.Active,w.PendingQueue,w.PendingExecution,w.Defeated,w.QuorumNotReached];function he(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:Cr&&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 Pr,SearchProposals as Br}from"@berachain/graphql/governance";async function Cn({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:Br,variables:{offset:a,limit:o,where:e,text:i}}):n.query({query:Pr,variables:{offset:a,limit:o,where:e,orderBy:t,orderDirection:r}})]);return s.data.proposals.map(d=>({...d,status:he(d)}))}catch(n){throw console.error("getAllProposals:",n),n}}var vn=(e,t)=>{let r={};return r.title=ae({fieldOrType:"title",value:e.title}),r.description=ae({fieldOrType:"description",value:e.description}),r.forumLink=ae({fieldOrType:"forumLink",value:e.forumLink,baseUrl:t.forumLink}),r};import{GetProposal as vr}from"@berachain/graphql/governance";async function Nn({proposalId:e,...t}){let a=await g("governance.subgraph",t).query({query:vr,variables:{id:e}});if(a.data.proposal)return{...a.data.proposal,status:he(a.data.proposal)}}import ut from"gray-matter";var Vr=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")},ct=e=>{if(!e)return{isFrontMatter:!1,data:{title:"Loading..."},content:"",matter:"",language:"",orig:"",stringify:()=>""};let t=e?.description??"";if(ut.test(t))return{...ut(t),isFrontMatter:!0};try{let r=Vr(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 Rr}from"viem";import{ProposalStatus as Sr}from"@berachain/graphql/governance";async function Qn(e){R(e.publicClient);let t;"tx"in e?t=e.tx:t=await e.publicClient.getTransactionReceipt({hash:e.txHash});let r=t?.logs?Rr({abi:De,logs:t.logs,eventName:"ProposalCreated"})?.at(0):void 0;if(!t||!r)return null;let a=await e.publicClient.getBlock({blockNumber:t.blockNumber}),o=ct({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:Sr.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 kr}from"@berachain/graphql/governance";async function On({variables:e,...t}){return g("governance.subgraph",t).query({query:kr,variables:e})}import{Aggregation_Interval as Nr,GetChartData as Gr}from"@berachain/graphql/honey";async function Jn({days:e,...t}){return(await g("honey.subgraph",t).query({query:Gr,variables:{interval:Nr.Day,first:e}})).data}async function Yn({client:e,collateralList:t,...r}){let{config:a}=c(r);try{let o=await e.readContract({address:a.honey.factory,abi:B,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 ke}from"viem";async function dt({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:ke,functionName:"decimals"}),t.readContract({address:e,abi:ke,functionName:"name"}),t.readContract({address:e,abi:ke,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),L({cause:a})}}async function Ne({client:e,tokenData:t,preferredCollateralOrder:r,...a}){let{config:o}=c(a),[i,l]=await Promise.all([e.readContract({address:o.honey.factory,abi:B,functionName:"numRegisteredAssets"}),e.readContract({address:o.honey.factory,abi:B,functionName:"referenceCollateral"})]),n=[];for(let f=0;f<i;f++)n.push(e.readContract({address:o.honey.factory,abi:B,functionName:"registeredAssets",args:[BigInt(f)]}));let s=await Promise.all(n),u=(await Promise.all(s.map(f=>{let b=t?.find(p=>k(p,f));return b||dt({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=>k(A.address,b.address));p&&(f.push(p),u.splice(u.indexOf(p),1))}u.unshift(...f)}let m=u.find(f=>k(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 xr}from"viem";async function mt({client:e,collateral:t,latestPrices:r,isPythWrapperEnabled:a,...o}){let{config:i}=c(o);try{let l=e.readContract({address:i.honey.factory,abi:B,functionName:"isBadCollateralAsset",args:[t.address]}),n=e.readContract({address:i.honey.factory,abi:B,functionName:"isPegged",args:[t.address]});if(a&&r){let u=r.prices.map(m=>xr(m,18));n=e.readContract({address:i.honey.reader,abi:K,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 pt}from"viem";import{parseEther as Tr}from"viem";async function le({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:B,functionName:"vaults",args:[t]}),e.readContract({address:o.honey.factory,abi:B,functionName:"collectedFees",args:[o.honey.factory,t]})]);return await e.readContract({address:i,abi:X,functionName:"balanceOf",args:[o.honey.factory]})+Tr(r??"0")-l}catch(i){throw console.log(i),i}}var Er=pt("1");async function vi({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:B,functionName:"globalCap"});if(s>=Er)return!1;let[{collaterals:d},u]=await Promise.all([Ne({client:e}),Fr({client:e,asset:t,amount:r,latestPrices:i,isPythWrapperEnabled:o})]);if(!u)return;for(let m in u)if((a&&k(d[m],t)||!a&&k(d[m],t))&&u[m]>s-be)return!0;return!1}catch(s){throw console.log(s),s}}async function Fr({client:e,asset:t,amount:r,latestPrices:a,isPythWrapperEnabled:o}){let{collaterals:i}=await Ne({client:e}),l=0n,n=[];for(let s of i){let d=await mt({client:e,collateral:t,latestPrices:a,isPythWrapperEnabled:o});if(d?.isBlacklisted||d?.isDepegged)continue;let u=await le({client:e,asset:s.address,amount:k(s,t)?r:"0"});u&&(l+=u,n.push(u))}if(l===0n)return n;for(let s in i)n[s]=pt(n[s].toString())/l;return n}import{GetGlobalData as Ir}from"@berachain/graphql/honey";async function ki({...e}={}){return(await g("honey.subgraph",e).query({query:Ir})).data}import{parseUnits as ft}from"viem";var qr=(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))(qr||{});async function Ei({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=ft(a,d?t.decimals:18),m,f=[t.address,u];if(l&&i){let p=i.prices.map(A=>ft(A,18));f=[t.address,u,p]}if(d){let p=await e.readContract({address:s.honey.reader,abi:K,functionName:o,args:f});m={collaterals:p[0],honey:p[1]}}else m={collaterals:await e.readContract({address:s.honey.reader,abi:K,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 Dr}from"viem";async function Ui({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:B,functionName:"vaults",args:[n.address]}),[d,u,[m,f]]=await Promise.all([e.readContract({address:s,abi:X,functionName:"balanceOf",args:[i]}),e.readContract({address:i,abi:B,functionName:"collectedAssetFees",args:[n.address]}),e.readContract({address:s,abi:X,functionName:"custodyInfo"})]),b=await e.readContract({address:s,abi:X,functionName:"convertToAssets",args:[d-u]});return{...n,balance:{raw:b.toString(),formatted:Dr(b,n.decimals)},vault:m?f:s}}))}import{HermesClient as Qr}from"@pythnetwork/hermes-client";import{formatUnits as Ur}from"viem";var Wr="https://hermes.pyth.network";async function gt({priceFeedId:e}){let r=await new Qr(Wr,{}).getLatestPriceUpdates(e,{encoding:"hex",parsed:!0});return{calldata:r.binary.data.map(a=>`0x${a}`),prices:r.parsed?.flatMap(a=>Ur(BigInt(a.price.price),a.price.expo*-1))??[]}}import{parseEther as Lr}from"viem";async function Ki({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:B,functionName:"relativeCap",args:[t]})]),[s,d]=await Promise.all([le({client:e,asset:t,amount:a?r:void 0}),le({client:e,asset:o.address,amount:a?void 0:r})]);return d===0n?s!==0n:Lr((s??0n).toString())/(d??0n)>=n-be}catch(n){throw console.log(n),n}}async function bt({client:e,priceFeedId:t,...r}){let{config:a}=c(r);try{return await e.readContract({address:a.external.pyth,abi:Ue,functionName:"getUpdateFee",args:[t]})}catch(o){throw console.error("getPythUpdateFee",o),o}}import{parseUnits as yt}from"viem";var ls=async({state:e,publicClient:t,priceFeedMap:r,collateralList:a,isPythWrapperEnabled:o,...i})=>{let{config:l}=c(i),n=He(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 gt({priceFeedId:Object.values(r)})).calldata,V=0n;try{V=await bt({client:t,priceFeedId:C})}catch{V=_e(u.length)}return({account:y})=>{let q=[C,u[0]?.address,yt(d[0],(p?u[0]?.decimals:n?.decimals)??18),y,!!m];return{address:f,abi:Qe,functionName:p?"mint":"redeem",params:q,value:V}}}return({account:A})=>{let C=[u[0]?.address,yt(d[0],(p?u[0]?.decimals:n?.decimals)??18),A,!!m];return{value:0n,address:f,abi:B,functionName:p?"mint":"redeem",params:C}}}throw new Error("Something went wrong while creating the Honey swap payload")};import{parseUnits as Or}from"viem";async function fs({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=>Or(u,18));return await e.readContract({address:l.honey.reader,abi:K,functionName:"isBasketModeEnabledWithPrices",args:[t,s]})}return await e.readContract({address:l.honey.factory,abi:B,functionName:"isBasketModeEnabled",args:[t]})}async function As({block:e,currentBlock:t,blockTime:r,publicClient:a}){if(te(e,"block"),R(a),t>e){let i=await a.getBlock({blockNumber:BigInt(e),includeTransactions:!1});return{timestamp:Number(i.timestamp)}}return{timestamp:N(Date.now())+r*(Number(e)-Number(t))}}import{formatUnits as Ge}from"viem";var Mr=(a=>(a.Duration="duration",a.TargetRate="targetRate",a.TargetApr="targetApr",a))(Mr||{});async function Bs(e,t){let[r,a,o,i,l,n]=await Promise.all([t.readContract({address:e,abi:P,functionName:"rewardsDuration"}),t.readContract({address:e,abi:P,functionName:"rewardVaultManager"}),t.readContract({address:e,abi:P,functionName:"rewardRate"}),t.readContract({address:e,abi:P,functionName:"periodFinish"}),t.readContract({address:e,abi:P,functionName:"targetRewardsPerSecond"}),t.readContract({address:e,abi:P,functionName:"minRewardDurationForTargetRate"})]),s=o*(i-BigInt(N(Date.now())))/10n**18n;return{rewardsDuration:Number(r),mode:l===0n?"duration":"targetRate",manager:a,rewardRate:Ge(o,36),periodFinish:Number(i),availableRewards:Ge(s,18),minRewardDurationForTargetRate:Number(n),targetRewardsPerSecond:Ge(l,36)}}function we(e,t,r){return e?r*t*se(1)/e:null}function Hr(e,t,r){return r?e*r/(t*se(1)):0}function Rs({availableRewards:e,periodFinish:t,tvl:r,bgtPrice:a,MIN_REWARD_DURATION:o,MAX_REWARD_DURATION:i,...l}){let n=N(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=Hr(l.apr,a,r),m===0){let C=Math.min(b,i),V=e?e/C:0;return{apr:we(r,a,V),duration:C,rewardRate:V,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:we(r,a,C),duration:p,rewardRate:C,targetRate:C.toString(),periodFinish:p+n,mode:null}}return{apr:we(r,a,m),duration:A,rewardRate:m,targetRate:m.toString(),periodFinish:A+n,mode:null}}let{duration:s}=l,d=e/s;return{apr:we(r,a,d),mode:null,targetRate:null,duration:s,rewardRate:d,periodFinish:s+n}}async function Gs({address:e,account:t,...r}){let{config:a}=c(r),o=`${a.bonder}/vaults/${e}/earnings/${t}`;return Me({url:o,type:"rest"})}import{formatUnits as _r}from"viem";import{GetVaults as Jr}from"@berachain/graphql/pol/api";async function Ce({filter:e,publicClient:t,...r}={}){let o=await g("api",r).query({query:Jr,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:P,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"?_r(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 $r}from"@berachain/graphql/pol/api";async function At(e={}){let{config:t}=c(e),a=await g("api",e).query({query:$r,variables:{chain:t.bex.chainName}});return{...a.data.polGetGlobalInfo,top3EmittingValidators:a.data.top3EmittingValidators.validators,allValidatorsCount:a.data.allValidatorsCount.pagination.totalCount}}import{formatEther as jr}from"viem";async function ht({publicClient:e,...t}){let{config:r}=c(t);R(e);try{let a=await e.readContract({address:r.tokens.bgt,abi:Z,functionName:"totalBoosts",args:[]});return jr(a)}catch(a){throw console.log(a),a}}import{erc20Abi as Kr,formatEther as Yr}from"viem";async function wt({publicClient:e,...t}){let{config:r}=c(t);R(e);try{let a=await e.readContract({address:r.tokens.bgt,abi:Kr,functionName:"totalSupply",args:[]});return Yr(a??0n)}catch(a){throw console.log(a),a}}import{GqlRewardVaultOrderBy as zr,GqlRewardVaultOrderDirection as Xr}from"@berachain/graphql/pol/api";async function Ct(e){let{gaugeList:t}=await Ce({filter:{orderBy:zr.Apr,orderDirection:Xr.Desc,pageSize:e,where:{includeNonWhitelisted:!1}}});return t}async function nl(e){let[t,r,a,o]=await Promise.allSettled([At(),Ct(300),wt({publicClient:e}),ht({publicClient:e})]);return t.status==="rejected"&&$.captureException(L({cause:t.reason,level:"warning"})),r.status==="rejected"&&$.captureException(L({cause:r.reason,level:"warning"})),a.status==="rejected"&&$.captureException(L({cause:a.reason,level:"warning"})),o.status==="rejected"&&$.captureException(L({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 Zr}from"@berachain/graphql/pol/subgraph";async function Pt({...e}){let t=g("pol.subgraph",e),{data:r}=await t.query({query:Zr});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()-$e(1))).reduce((l,n)=>l+Number(n.payoutAmount),0);return{sumAllClaims:a,sumClaimsInLast24Hours:i}}return{sumAllClaims:0,sumClaimsInLast24Hours:0}}async function ml(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 yl({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 fe(l);throw new v({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 ea,parseUnits as ta}from"viem";async function Pl({address:e,publicClient:t}){return R(t),t.readContract({address:e,abi:G,functionName:"previewRedeem",args:[ta("1",18)]}).then(r=>Number(ea(r,18))).catch(()=>0)}import{GetRewardVault as ra}from"@berachain/graphql/pol/api";async function kl({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:ra,variables:{vaultId:e,chain:o}});if(!l?.rewardVault)throw new je({resource:"Reward vault",id:e,chainId:a.chainId});return l.rewardVault}import{isSameAddress as Bt}from"@berachain-foundation/berancer-sdk";import{erc20Abi as xe,formatUnits as ue}from"viem";async function Il({address:e,stakingToken:t,publicClient:r}){let a=await r.readContract({address:e,abi:P,functionName:"getWhitelistedTokens"}),i=a.findIndex(n=>Bt(t,n))!==-1?await r.readContract({address:e,abi:P,functionName:"totalSupply"}):0n,l=await Promise.allSettled(a.map(async n=>{let[s,d,u,m]=await Promise.all([r.readContract({address:e,abi:P,functionName:"incentives",args:[n]}),r.readContract({address:n,abi:xe,functionName:"decimals"}),r.readContract({address:n,abi:xe,functionName:"symbol"}),r.readContract({address:n,abi:xe,functionName:"balanceOf",args:[e]})]),[f,b,p,A]=s;return{token:n,manager:A,minIncentiveRate:ue(f,d),incentiveRate:ue(b,d),remainingAmount:ue(p,d),symbol:u,decimals:d,pendingAmount:Bt(t,n)?ue(m-i-p,d):ue(m-p,d)}}));return l.forEach((n,s)=>{n.status==="rejected"&&$.captureException(new v({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)}async function Ql({address:e,publicClient:t}){return await t.readContract({address:e,abi:P,functionName:"stakeToken"})}import{GetSWberaVaultMetadata as aa,GqlSWberaVaultMetadataResolution as vt}from"@berachain/graphql/pol/api";function oa(e){return e==="DAY"?vt.OneDay:vt.SevenDays}async function Ml({window:e,...t}){let{config:r}=c(t),a=g("api",t);try{let o=await a.query({query:aa,variables:{chain:r.bex.chainName,resolution:oa(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 na,GqlVaultSnapshotDataRange as ia}from"@berachain/graphql/pol/api";async function jl({chain:e,range:t=ia.ThirtyDays,...r}={}){let{config:a}=c(r),o=g("api",r);try{return(await o.query({query:na,variables:{chain:e??a.bex.chainName,range:t}})).data.polGetSWberaVaultSnapshots}catch(i){throw console.error("Failed to get SW Bera Snapshots",i),i}}async function ce({publicClient:e,address:t}){let r=await e.readContract({address:t,abi:G,functionName:"WITHDRAWAL_COOLDOWN"});return Number(r)}import{erc20Abi as Pe}from"viem";async function nu({address:e,publicClient:t,blockTime:r,...a}){let{config:o}=c(a);R(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,V,y,q]=await Promise.all([t.readContract({address:e,abi:G,functionName:"totalAssets"}),t.readContract({address:e,abi:G,functionName:"totalSupply"}),t.readContract({address:e,abi:G,functionName:"previewRedeem",args:[10n**18n],blockNumber:l.number}),t.readContract({address:o.tokens.wbera,abi:Pe,functionName:"balanceOf",args:[e]}),t.readContract({address:e,abi:G,functionName:"totalAssets",blockNumber:s}),t.readContract({address:e,abi:Pe,functionName:"totalSupply",blockNumber:s}),t.readContract({address:e,abi:G,functionName:"previewRedeem",args:[10n**18n],blockNumber:s}),t.readContract({address:o.tokens.wbera,abi:Pe,functionName:"balanceOf",args:[e],blockNumber:s}),t.readContract({address:o.tokens.wbera,abi:Pe,functionName:"totalSupply"}),ce({publicClient:t,address:e}),Pt({})]),T=new x(A.toString());return{current:{exchangeRate:new x(m.toString()).toString(),totalSupply:new x(u.toString()).dividedBy(1e18).toString(),totalAssets:new x(d.toString()).dividedBy(1e18).toString(),tvl:new x(f.toString()).dividedBy(1e18).toString()},previous:{exchangeRate:T.toString(),totalSupply:new x(p.toString()).dividedBy(1e18).toString(),totalAssets:new x(b.toString()).dividedBy(1e18).toString(),tvl:new x(C.toString()).dividedBy(1e18).toString()},totalWBeraIssued:new x(V.toString()).dividedBy(1e18).toString(),lockPeriod:y,totalBuyBacks:q.sumAllClaims,totalBuyBacksInLast24Hours:q.sumClaimsInLast24Hours}}catch(l){throw console.error("Failed to get SW Bera Vault Metadata",l),l}}function Vt(e){let t=Date.now(),r=e*1e3-t;if(r<=0)return;let a=N(r);return Ye(a,!0,!0)}async function mu({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=N(Date.now()),p=f-b;if(m>0){let A=Vt(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:G,functionName:"withdrawalRequests",args:[t]}),ce({publicClient:r,address:e})]);return i(l,n),o}case"V2":{let[l,n]=await Promise.all([r.readContract({address:e,abi:G,functionName:"getERC721WithdrawalRequestIds",args:[t]}),ce({publicClient:r,address:e})]);if(k(e,"SWBERA")){let u=await r.readContract({address:e,abi:G,functionName:"withdrawalRequests",args:[t]});i(u,n)}let d=(await Promise.all(l.map(async u=>{let m=await r.readContract({address:e,abi:G,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=N(Date.now()),V=A-C;if(p>0){let y=Vt(V<=0?0:A);return{withdrawalAmount:p,timeRemaining:y,withdrawalRequestId:u,receiptTokenAddress:e}}return null}))).filter(u=>u!==null);return o.push(...d),o}}}async function bu({vaultAddresses:e,publicClient:t}){R(t);try{let r=await Promise.all(e.map(async o=>await t.readContract({address:o,abi:G,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 Cu({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 fe(a);throw new v({message:"Failed to fetch incentives on server",cause:{error:o,result:a,account:e},reason:o?.error})}return await a.json()}async function Rt({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:P,functionName:"earned",args:[e]})}import{formatEther as Te}from"viem";async function St({account:e,vaultAddress:t,publicClient:r}){R(r),ve(e,"account"),ve(t,"vaultAddress");try{let[a,o]=await Promise.all([r.readContract({address:t,abi:P,functionName:"balanceOf",args:[e]}),r.readContract({address:t,abi:P,functionName:"getTotalDelegateStaked",args:[e]})]);return{balance:a,delegated:o}}catch(a){throw console.log(a),a}}async function kt({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:P,functionName:"totalSupply",args:[]})}catch(r){throw console.log(r),r}}async function Fu({account:e,vaultAddress:t,publicClient:r}){let[a,o,i]=await Promise.all([St({account:e,vaultAddress:t,publicClient:r}),Rt({account:e,vaultAddress:t,publicClient:r}),kt({vaultAddress:t,publicClient:r})]),l=a.balance-a.delegated,n=i>0n?Number(Number.parseFloat(Te(a.balance))/Number.parseFloat(Te(i))).toString():"0";return{balance:a.balance,delegatedBalance:a.delegated,withdrawableBalance:l,rewards:Te(o),percentage:n}}import{formatUnits as Ee}from"viem";import{GetUserVaults as sa}from"@berachain/graphql/pol/api";async function Mu({account:e,publicClient:t,...r}){let{config:a}=c(r),l=(await g("api",r).query({query:sa,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:P,functionName:"earned",args:[e]}))}),t.multicall({allowFailure:!1,contracts:l.map(b=>({address:b.vaultAddress,abi:P,functionName:"balanceOf",args:[e]}))})]),{userVaults:d,total:u}=l.reduce((b,p,A)=>{let C=n[A],V=s[A];if(b.total+=C,!p.vault)return $.captureException(new v({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||V>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:Ee(C,18),formattedBalance:Ee(V,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),V=A/C;return b+V*Number(p.formattedBalance)},0),totalBgtRewards:Ee(u,18),vaults:m}}import{GetVaultHistory as la}from"@berachain/graphql/pol/api";async function ju({vault:e,chain:t,...r}){let{config:a}=c(r);return(await g("api",r).query({query:la,variables:{...r,vaultId:e,chain:t??a.bex.chainName}})).data.polGetRewardVaultSnapshots}import{GetVaultValidators as ua}from"@berachain/graphql/pol/api";async function Xu({address:e,onlyActiveValidators:t,...r}){return(await g("api",r).query({query:ua,variables:{vaultId:e,isActive:t}})).data.validators.validators??[]}import{getAddress as ca,zeroAddress as da}from"viem";import{GetTokenCurrentPrices as ma}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:ma,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[ca(d)]={price:re(s.price.toString()),updatedAt:s.updatedAt,chainId:a},n[d.toLowerCase()]={price:re(s.price.toString()),updatedAt:s.updatedAt,chainId:a},k(d,"WBERA")&&(n[da]={price:re(s.price.toString()),updatedAt:s.updatedAt,chainId:a},n[r.tokens.bgt.toLowerCase()]={price:re(s.price.toString()),updatedAt:s.updatedAt,chainId:a},n[r.tokens.bgt]={price:re(s.price.toString()),updatedAt:s.updatedAt,chainId:a}),n},{})}import{getPublicClient as pa}from"@wagmi/core";import{erc20Abi as fa,formatUnits as ga}from"viem";async function dc({items:e,account:t,config:r}){te(e,"items"),te(r,"config"),te(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=pa(r,{chainId:Number(i)});return R(n,`publicClient ${i}`),(await n.multicall({contracts:l.map(u=>({address:u.token.address,abi:fa,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:ga(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 Aa,getWalletClient as ha,switchChain as wa}from"@wagmi/core";import{BaseError as Ca,createWalletClient as Pa,decodeErrorResult as Ba,HttpRequestError as va,http as Va}from"viem";import{ChainId as Ra,defaultChainId as xt}from"@berachain/config/internal";import{AbiFunctionSignatureNotFoundError as ba,decodeFunctionData as ya}from"viem";async function Nt({publicClient:e,abi:t,...r}){let a=[...pe,...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 I({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 I({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=ya({abi:a,data:s});d=m.functionName,u=m.args}catch(m){throw m instanceof ba&&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 j({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 ie({error:m,abi:a,revertIfUnknown:!0});throw m}}var Sa=Je(1),Gt=(e,t)=>e*(100n+BigInt(t))/100n;function Fe({nonceResult:e,onWarning:t}){if(e.status==="fulfilled"){if(e.value&&e.value>Number.MAX_SAFE_INTEGER){t?.(new v({message:"Nonce is too large. No nonce will be provided to avoid IntegerOutOfRangeError.",cause:e.value,level:"debug"}));return}return e.value}}function ka(e=xt){return e===Ra.BEPOLIA?process.env.NEXT_PUBLIC_80069_ANVIL_IMPERSONATE_ACCOUNT==="true":process.env.NEXT_PUBLIC_80094_ANVIL_IMPERSONATE_ACCOUNT==="true"}async function Ec(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 I({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=xt,impersonateAccount:A=ka(p),errorsAbi:C=[],pollingInterval:V=Sa,...y}=e;i?.(e);let q="data"in y?y.data:void 0,T=[...pe,...C,..."abi"in y&&y.abi&&Array.isArray(y.abi)?y.abi:[]],E=m;if(!u){s?.(new I({property:"wagmiConfig",value:u,expected:"Config"}),e);return}if(!(E?.account?.type==="local"))try{await wa(u,{chainId:p})}catch(S){let F=S;s?.(new v({cause:F,displayMessage:"There was an error switching to the chain."}),e);return}if(!E)try{E=await ha(u,{chainId:p})}catch(S){s?.(new v({cause:S,displayMessage:"There was an error connecting to the wallet."}),e);return}if(!E){s?.(new I({displayMessage:"There was an error connecting to the wallet.",property:"walletClient",value:E,expected:"WalletClient"}),e);return}let U=f||E.account;if(!U){s?.(new I({property:"account",value:U,expected:"Account"}),e);return}let de=typeof U=="string"?U:U.address,H=Aa(u,{chainId:p});try{R(H)}catch(S){s?.(S,e);return}if(A){let S=Re(p);await S.impersonateAccount({address:de}),E=Pa({transport:Va(S.transport.url),account:U,chain:E.chain})}let D,ne={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 S=H.getTransactionCount({address:de,blockTag:"latest"}).catch(()=>{}),F={account:de,to:t,address:t,chainId:p,value:a};if(r){let Q=r.map(h=>{if("abi"in h&&Array.isArray(T)&&T.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 _="params"in h?h.params:void 0;return{to:h.address,abi:h.abi,functionName:h.functionName,args:_,value:h.value??0n}}return{to:h.address,value:h.value??0n}});if(e.enableSimulateCalls){let h=await H.simulateCalls({calls:Q,account:U}),_=h.results.findIndex(J=>J.status==="failure");if(_!==-1){if(h.block.number===null)throw new I({property:"blockNumber",value:h.block.number,expected:"bigint",message:"Block number is null"});let J=h.results[_],{reason:Be}=J.data&&J.data!=="0x"?{reason:We(Ba({data:J.data,abi:T}))}:ie({error:J.error,revertIfUnknown:!1,abi:T});s?.(new j({cause:J.error,txHash:D,chainId:p,reason:Be,abi:T,input:ne,blockNumber:h.block.number}),e);return}}if(process.env.NODE_ENV==="test")throw new I({displayMessage:"Batch calls are not supported in test environment",expected:"not test",property:"NODE_ENV",value:process.env.NODE_ENV,level:"fatal"});let O=await E.sendCalls({calls:Q,account:U,forceAtomic:!0});d?.({id:O.id},e);let M=await E.waitForCallsStatus({id:O.id,pollingInterval:V,timeout:b});if(M.status==="success"){let h=M.receipts?.[0];if(!h)throw new v({message:"Call status is success but no receipt was found",cause:M,level:"error",reason:"CALL_STATUS_SUCCESS_BUT_NO_RECEIPT"});return l?.(h,e),h}throw console.error("wallet_sendCalls: Call failed",M),new j({cause:M,level:"error",input:ne,txHash:D,abi:T,chainId:p})}if(q){let[Q,O,M]=await Promise.allSettled([H.call({...F,data:q}),o??H.estimateGas({...F,data:q}),S]);if(Q.status==="rejected")throw Q.reason;let h=O.status==="fulfilled"?Gt(O.value,10):Ve;D=await E.sendTransaction({data:q,to:t,account:U,gas:h,chainId:p,nonce:Fe({nonceResult:M,onWarning(_){n?.(_,e)}}),value:a}),d?.({txHash:D},e)}else if("abi"in y&&"functionName"in y){let{abi:Q,functionName:O}=y,M="params"in y?y.params:void 0,[h,_,J]=await Promise.allSettled([H.simulateContract({...F,abi:T,functionName:O,args:M,account:U}),o??H.estimateContractGas({...F,abi:T,functionName:O,args:M}),S]);if(h.status==="rejected")throw h.reason;let Be=o??(_.status==="fulfilled"?Gt(_.value,10):Ve);D=await E.writeContract({...h.value.request,chainId:p,gas:Be,nonce:Fe({nonceResult:J,onWarning(It){n?.(It,e)}})}),d?.({txHash:D},e)}else{let[Q]=await Promise.allSettled([S]);D=await E.sendTransaction({chainId:p,to:t,value:a,account:U,nonce:Fe({nonceResult:Q,onWarning(O){n?.(O,e)}})}),d?.({txHash:D},e)}process.env.NODE_ENV==="test"&&await Re(p).mine({blocks:1});let z=await H.waitForTransactionReceipt({hash:D,pollingInterval:V,timeout:b,confirmations:1});if(z.status==="success")l?.(z,e);else{let Q=await Nt({publicClient:H,blockNumber:z.blockNumber,to:t,account:de,abi:T,args:"params"in y?y.params:void 0,functionName:"functionName"in y?y.functionName:void 0,value:a,data:q});process.env.NODE_ENV==="test"&&console.error("beraWriteContract: Revert reason",Q),s?.(new j({reason:Q.reason,txHash:D,receipt:z,to:t,functionName:"functionName"in y?y.functionName:void 0,input:ne,chainId:p,abi:T,blockNumber:z.blockNumber}),e)}return z}catch(S){if(S instanceof v)s?.(S,e);else if(S instanceof Error){let F=ie({error:S,revertIfUnknown:!1,abi:T});if(F&&F.rootCause instanceof Ca&&"url"in F.rootCause){s?.(new ee({cause:F.rootCause,response:void 0,endpoint:{url:F.rootCause.url,type:"rpc"},statusCode:F.rootCause instanceof va?F.rootCause.status:void 0}),e);return}s?.(new j({cause:S,to:t,txHash:D,chainId:p,abi:T,functionName:"functionName"in y?y.functionName:void 0,input:ne}),e)}else s?.(new j({cause:S,txHash:D,to:t,chainId:p,functionName:"functionName"in y?y.functionName:void 0,input:ne,abi:T}),e)}}import{GetValidators as Na}from"@berachain/graphql/pol/api";async function Tt({variables:e={},...t}={}){let{config:r}=c(t);return(await g("api",t).query({query:Na,variables:{chain:r.bex.chainName,...e}})).data}import{isAddressEqual as Ga}from"viem";async function Lc({allocation:e}){let t=await Ce({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=>Ga(o.address,a.receiver))}))}import{GetValidator as xa}from"@berachain/graphql/pol/api";async function Jc({id:e,...t}){let{config:r}=c(t);return(await g("api",t).query({query:xa,variables:{id:e,chain:r.bex.chainName}})).data}import{GetValidatorBlockStats as Ta}from"@berachain/graphql/pol/subgraph";async function Yc({pubKey:e,first:t=1,...r}){let a=g("pol.subgraph",r);try{return(await a.query({query:Ta,variables:{pubKey:e,first:t}})).data}catch(o){throw console.error("GetValidatorBlockStats:",o),o}}function oe(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 Ea(e,t){return e.start.blockNumber===t.start.blockNumber&&e.weights.every((r,a)=>r.percentage===t.weights[a].percentage)}async function ed({client:e,pubKey:t,...r}){let{config:a}=c(r);try{let[o,i]=await Promise.all([e.readContract({address:a.pol.beraChef,abi:W,functionName:"getActiveRewardAllocation",args:[t]}),e.readContract({address:a.pol.beraChef,abi:W,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=oe(o,Number(l.timestamp)),d=oe(i,Number(n.timestamp)),u=!1;return d.start.blockNumber===0?u=!0:u=!Ea(d,s),{activeRewardAllocation:s,setRewardAllocation:d,isBaseline:u,isNeverSet:d?.start.blockNumber===0}}catch(o){throw console.log("getValidatorRewardAllocation:",o),o}}function nd(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:W,functionName:"getDefaultRewardAllocation",args:[]});return oe({...a,startBlock:0n},0)}import{GetValidatorByAccount as Fa}from"@berachain/graphql/pol/subgraph";async function cd({account:e,...t}){try{return(await g("pol.subgraph",t).query({query:Fa,variables:{account:e}})).data}catch(r){throw console.error("getManagedValidatorByAccount:",r),r}}async function md({client:e,valPubKey:t}){return 5614}import{formatEther as Ie}from"viem";async function Et({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:Z,functionName:"boosted",args:[e,t]}),r.readContract({address:o.tokens.bgt,abi:Z,functionName:"boostedQueue",args:[e,t]}),r.readContract({address:o.tokens.bgt,abi:Z,functionName:"dropBoostQueue",args:[e,t]})]);return{pubkey:t,activeBoostAmount:Ie(i),queuedBoostAmount:Ie(l[1]),queuedDropBoostAmount:Ie(n[1]),queuedBoostStartBlock:l[0],queuedDropBoostStartBlock:n[0],hasPendingBoosts:Number(l[1])>0||Number(n[1])>0,hasActiveBoosts:Number(i)>0}}import{GetUserValidatorInformation as Ia}from"@berachain/graphql/pol/subgraph";async function Ft({account:e,block:t,...r}){return await g("pol.subgraph",r).query({query:Ia,variables:{address:e.toLowerCase(),block:t}})}async function Rd({account:e,publicClient:t,chain:r,...a}){let{config:o}=c(a),i=r??o.bex.chainName,l=await Ft({account:e}),[n,s]=await Promise.all([Tt({variables:{chain:i,where:{idIn:l.data.userValidatorInformations.map(d=>d.validator.id)}}}),t&&ze({lastBlockTimestamp:l.data._meta?.block.timestamp,blockTime:o.averageBlockTime})?Promise.all(l.data.userValidatorInformations.map(d=>Et({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 qa=[{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:N(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:N(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:N(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:N(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:N(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:N(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:N(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 Nd(e){return await new Promise(t=>setTimeout(t,2e3)),e==="0x4C368fFE3650379d6318C8d4630bc51f8Ad12bB6"?qa:[]}import{GetValidatorAnalytics as Da}from"@berachain/graphql/pol/subgraph";async function Fd({pubkey:e,dayRange:t,...r}){return(await g("pol.subgraph",r).query({query:Da,variables:{pubKey:e,timestamp:Ke(t).toString()}})).data}async function Qd({client:e,pubKey:t,...r}){let{config:a}=c(r),o=await e.readContract({address:a.pol.beraChef,abi:W,functionName:"getValCommissionOnIncentiveTokens",args:[t]});return Number(o??0n)/1e4}var Ld=(e,t,r)=>{if(!t||!e)return 0;let a=se(1)/r;return(t?a*(Number(e.dynamicData?.stakedBeraAmount)/t):0)*Number.parseFloat(e.dynamicData?.rewardRate??"0")};async function _d({client:e,pubKey:t,...r}){let{config:a}=c(r);try{return await e.readContract({address:a.depositContract,abi:me,functionName:"getOperator",args:[t]})}catch(o){throw console.log("getValidatorOperatorAddress:",o),o}}async function Kd({client:e,pubKey:t,...r}){let{config:a}=c(r),o=await e.readContract({address:a.pol.beraChef,abi:W,functionName:"getValQueuedCommissionOnIncentiveTokens",args:[t]});return{blockNumberLast:o.blockNumberLast,commissionRate:Number(o.commissionRate)/1e4}}async function Zd({client:e,pubKey:t,...r}){let{config:a}=c(r);try{return await e.readContract({address:a.depositContract,abi:me,functionName:"queuedOperator",args:[t]})}catch(o){throw console.log("getValidatorQueuedOperatorAddress:",o),o}}async function om({client:e,pubKey:t,...r}){let{config:a}=c(r);try{let o=await e.readContract({address:a.pol.beraChef,abi:W,functionName:"getQueuedRewardAllocation",args:[t]});return oe(o,0)}catch(o){throw console.log("getValidatorQueuedRewardAllocation:",o),o}}export{La as a,ye as b,g as c,no as d,tt as e,bo as f,So as g,To as h,Do as i,at as j,jo as k,Zo as l,nn as m,dn as n,ae as o,bn as p,he as q,Cn as r,vn as s,Nn as t,ct as u,Qn as v,On as w,Jn as x,Yn as y,dt as z,Ne as A,mt as B,vi as C,ki as D,qr as E,Ei as F,Ui as G,gt as H,Ki as I,bt as J,ls as K,fs as L,As as M,Mr as N,Bs as O,Rs as P,Gs as Q,Ce as R,nl as S,Pt as T,ml as U,yl as V,Pl as W,kl as X,Il as Y,Ql as Z,Ml as _,jl as $,ce as aa,nu as ba,mu as ca,bu as da,Cu as ea,Rt as fa,Fu as ga,Mu as ha,ju as ia,Xu as ja,ic as ka,dc as la,ka as ma,Ec as na,Tt as oa,Lc as pa,Jc as qa,Yc as ra,oe as sa,Ea as ta,ed as ua,nd as va,id as wa,cd as xa,md as ya,Et as za,Rd as Aa,Nd as Ba,Fd as Ca,Qd as Da,Ld as Ea,_d as Fa,Kd as Ga,Zd as Ha,om as Ia};
4
+ //# sourceMappingURL=chunk-A4UDYSB6.mjs.map