@berachain/berajs 0.1.0-alpha.6 → 0.1.0-alpha.7

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 (37) hide show
  1. package/dist/actions/index.cjs +1 -1
  2. package/dist/actions/index.d.cts +9 -8
  3. package/dist/actions/index.d.ts +9 -8
  4. package/dist/actions/index.mjs +1 -1
  5. package/dist/{chunk-7SDDMT3W.mjs → chunk-B4M3O4CT.mjs} +1 -1
  6. package/dist/{chunk-5N57PBAR.mjs → chunk-JQDPAEK2.mjs} +2 -2
  7. package/dist/{chunk-TYTNDYXV.cjs → chunk-KBW7JTEI.cjs} +1 -1
  8. package/dist/{chunk-QIWSS7FQ.cjs → chunk-LHFVY26H.cjs} +2 -2
  9. package/dist/{chunk-BI76GRHX.mjs → chunk-OA6KI7XK.mjs} +3 -3
  10. package/dist/{chunk-FVT7BKWY.cjs → chunk-SDYUAOO3.cjs} +3 -3
  11. package/dist/chunk-XX77QPIR.mjs +1 -0
  12. package/dist/chunk-YKKMWJX5.cjs +1 -0
  13. package/dist/contexts/index.cjs +1 -1
  14. package/dist/contexts/index.d.cts +3 -3
  15. package/dist/contexts/index.d.ts +3 -3
  16. package/dist/contexts/index.mjs +1 -1
  17. package/dist/{HoneyConfigProvider-DJ5cZbB5.d.ts → dex-BD7Bq3pJ.d.ts} +171 -171
  18. package/dist/{HoneyConfigProvider-B7pZiyOD.d.cts → dex-D9U93Ib-.d.cts} +171 -171
  19. package/dist/{getValidatorQueuedOperatorAddress-C2w750UQ.d.ts → getValidatorQueuedOperatorAddress--AXNo9IY.d.ts} +2 -2
  20. package/dist/{getValidatorQueuedOperatorAddress-CfiY8nIA.d.cts → getValidatorQueuedOperatorAddress-BbyH7asf.d.cts} +2 -2
  21. package/dist/hooks/index.cjs +2 -2
  22. package/dist/hooks/index.d.cts +6 -6
  23. package/dist/hooks/index.d.ts +6 -6
  24. package/dist/hooks/index.mjs +2 -2
  25. package/dist/{staking-CimqAVL0.d.ts → staking-DHCsSRru.d.cts} +1 -1
  26. package/dist/{staking-DbIi5eSK.d.cts → staking-DYbVFigB.d.ts} +1 -1
  27. package/dist/types/index.d.cts +4 -4
  28. package/dist/types/index.d.ts +4 -4
  29. package/dist/{useHoneySwapState-BA96cjbO.d.ts → useHoneySwapState-A9cyIoOS.d.cts} +1 -1
  30. package/dist/{useHoneySwapState-BRU2LVkE.d.cts → useHoneySwapState-CW49RVci.d.ts} +1 -1
  31. package/dist/utils/index.cjs +1 -1
  32. package/dist/utils/index.d.cts +4 -4
  33. package/dist/utils/index.d.ts +4 -4
  34. package/dist/utils/index.mjs +1 -1
  35. package/package.json +11 -4
  36. package/dist/chunk-7DPUKGDT.cjs +0 -1
  37. package/dist/chunk-HOCEXCQJ.mjs +0 -1
@@ -1,3 +1,3 @@
1
- import{a as pe,b as Ue,c as Oe,d as X,e as Me,f as B,g as K,h as Le,i as _e,j as He,k as fe,l as v,m as H,n as C,o as ge,p as D,q as Je,r as $e}from"./chunk-AHAZC5K3.mjs";import{a as ee,b as $,c as k,d as we,f as st,g as j}from"./chunk-YKNKCICU.mjs";import{B as R,C as at,G as ot,H as nt,I as it,O as ie,a as Ae,b as Ye,c as ze,d as he,i as Ne,n as te,p as Xe,r as Ze,v as et,w as ke,y as tt,z as rt}from"./chunk-7SDDMT3W.mjs";import{b as c,c as ye,e as Ke,f as N}from"./chunk-HOCEXCQJ.mjs";import{a as Z}from"./chunk-5UFI7X4U.mjs";import{c as be,d as je,e as ne,f as x,g as T}from"./chunk-5GPS724E.mjs";import{formatEther as ar}from"viem";async function Ro({sharesAmount:e,vaultAddress:t,publicClient:r}){let a=await r.readContract({address:t,abi:pe,functionName:"convertToAssets",args:[e]});return{raw:a,formatted:ar(a)}}import{formatEther as or}from"viem";async function ko({vaultAddress:e,publicClient:t}){let r=await t.readContract({address:e,abi:pe,functionName:"maxDeposit",args:[e]});return or(r)}import{InMemoryCache as cr}from"@apollo/client";import{HttpLink as ur}from"@apollo/client/link/http";import{getUriFromLink as ut}from"@berachain/config";import{currentDapp as ct}from"@berachain/config/internal";import dr from"@berachain/graphql/dex/api";import{ApolloClient as nr,ServerError as ir}from"@apollo/client";import*as lt from"@sentry/nextjs";import{appConfig as sr}from"@berachain/config/internal";var Ce=class extends nr{url;constructor(t){super(t),this.url=t.url}async query(t){let r=lr(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 n=await lt.startSpan({name:`GraphQL ${r}`,op:"BeraApolloClient.query",attributes:o},async()=>super.query(t));if(n.error||n.data===void 0)throw new x({level:"fatal",tags:o,message:"Bera Apollo Client: No data returned from query, but error should be thrown since errorPolicy is none"});return{data:n.data}}catch(n){throw!sr.env.isProduction&&console.error("BeraApolloClient error",n),ir.is(n)?new Z({response:n.response,cause:n,statusCode:n.statusCode,endpoint:a,tags:o}):n instanceof TypeError?new Z({level:"fatal",reason:"TypeError",response:n,cause:n,endpoint:a,tags:o}):new Z({response:n,tags:o,cause:n,endpoint:a})}}};function lr(e){return e.definitions.find(r=>r.kind==="OperationDefinition")?.name?.value}import{gql as pr}from"@apollo/client";function mr(e){if(!ct)return e;let t=typeof e=="string"?void 0:e.headers;return{uri:ut(e),headers:{...t,"x-graphql-client-name":`berachain.${ct}.${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=ut(e),o=typeof e=="string"?void 0:e.headers;return new Ce({url:a,link:new ur({uri:a,headers:o}),defaultOptions:{query:{errorPolicy:"none",fetchPolicy:"no-cache"}},cache:new cr(r),ssrMode:t})}function f(e,{...t}){let{config:r}=c(t);switch(e){case"api":return Y(mr(r.api),{inMemoryCacheOptions:{possibleTypes:dr.possibleTypes}});case"bend.whisk":if(!r.bend.whiskApi)throw new x({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{BigNumber as se}from"bignumber.js";import{isAddress as dt,zeroAddress as fr}from"viem";var mt=class e{static PATH_NOT_FOUND_REASON="NO_SWAP_PATHS";notFoundMessages=[];config;chainId;constructor(t={}){let{config:r,chainId:a}=c(t);this.config=r,this.chainId=a}url="";parseAddresses(t,r){if(!dt(t)||!dt(r))throw new x({message:`Invalid address: ${t} or ${r}`,level:"error"});return{tokenInAddress:N(t,"BERA")?this.config.tokens.wbera:t,tokenOutAddress:N(r,"BERA")?this.config.tokens.wbera:r,isTokenInNative:N(t,"BERA"),isTokenOutNative:N(r,"BERA")}}getAmountAfterFees(t,r){if(r===void 0)throw new x({message:"aggregatorsFeeBps is required",level:"error"});let a=new se(t).times(r).dividedBy(1e4).toFixed(0,se.ROUND_DOWN);return new se(t).minus(a).toFixed(0,se.ROUND_DOWN)}getInputData({tokenIn:t,amountIn:r,isNative:a,isPermit2Approval:o=!1,permit2SpenderAddress:n=fr}){return{tokenIn:t,amountIn:BigInt(r),isNative:a,isPermit2Approval:o,permit2SpenderAddress:n}}getMinAmountOut(t,r){if(r===void 0)throw new x({message:"slippage is required",level:"error"});let a=new se(t).times(1-r/100);return a.isNaN()||a.isZero()?0n:BigInt(a.toFixed(0))}checkChainSupport(){if(!this.supportedChains.includes(this.chainId))throw new x({message:`${this.name} is not supported on chain ${this.chainId}`,level:"error"})}async fetch(t,r){try{return await Ye({url:t,name:this.name,type:this.type},{method:"GET",headers:{"Content-Type":"application/json"},...r})}catch(a){let o=ee({cause:a});throw this.notFoundMessages.some(n=>o.message.includes(n))&&(o.reason=e.PATH_NOT_FOUND_REASON),o}}};import{API_CHAIN_NAMES as gr,BALANCER_QUERIES as br,BALANCER_RELAYER as yr,BalancerApi as rn,CHAINS as Ar,COMPOSABLE_STABLE_POOL_FACTORY as hr,NATIVE_ASSETS as wr,Token as Cr,VAULT as Pr,WEIGHTED_POOL_FACTORY_BALANCER_V2 as Br}from"@berachain-foundation/berancer-sdk";import{zeroAddress as Ge}from"viem";import{berachain as pt,berachainBepolia as xr}from"viem/chains";import{chainConfigs as vr}from"@berachain/config/internal";for(let e of Object.keys(vr)){let{config:t,chainId:r}=c({chainId:Number(e)});gr[r]=t.bex.chainName,Ar[r]=r===pt.id?pt:xr,yr[r]=t.bex.relayer,Pr[r]=t.bex.vault,br[r]=t.bex.queries,Br[r]=Ge,hr[r]=Ge;let a=new Cr(r,Ge,ye.decimals,ye.name,ye.symbol,t.tokens.wbera);wr[r]=a}import{GetPools as Rr}from"@berachain/graphql/dex/api";import{GqlPoolOrderBy as Sr,GqlPoolOrderDirection as Vr}from"@berachain/graphql/pol/api";async function fn({textSearch:e,chain:t,first:r,orderBy:a,orderDirection:o,skip:n,fetchPolicy:s,userAddress:i,blacklistedPoolIds:l,...u}={}){let{config:m}=c(u),b=await f("api",u).query({query:Rr,variables:{textSearch:e,chain:t??m.bex.chainName,first:r,orderBy:a??Sr.TotalLiquidity,orderDirection:o??Vr.Desc,skip:n,userAddress:i,blacklistedPoolIds:l},fetchPolicy:s});return{pools:b.data.poolGetPools??[],count:b.data.count??0}}import{GetPool as Nr}from"@berachain/graphql/dex/api";async function hn({poolId:e,account:t,...r}){let{config:a}=c(r),s=(await f("api",r).query({query:Nr,variables:{id:e,userAddress:t,chain:a.bex.chainName},fetchPolicy:"no-cache"})).data.poolGetPool;if(!s)throw new Error(`Pool not found for id: ${e} and user ${t}`);return s}import{GetGlobalLiquidityAndSwapVolume as kr}from"@berachain/graphql/dex/api";async function xn(e={}){let{config:t}=c(e);return(await f("api",e).query({query:kr,variables:{chain:t.bex.chainName}})).data}import{stablePoolAbi_V3 as Tr,vaultV2Abi as Fr,weightedPoolFactoryAbi_V3 as gt,weightedPoolV4Abi_V2 as Pe}from"@berachain-foundation/berancer-sdk";import{erc20Abi as bt,formatEther as yt,formatUnits as Dr,isAddress as Ir,isHex as Er}from"viem";import{GqlPoolType as At}from"@berachain/graphql/pol/api";import{weightedPoolV4Abi_V2 as Gr}from"@berachain-foundation/berancer-sdk";async function ft({publicClient:e,poolAddress:t}){let r=Gr,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]}}async function In({poolId:e,publicClient:t,...r}){let{config:a}=c(r),o=e.slice(0,42);if(!Ir(o)||!Er(e))throw new T({property:"poolId",value:e,expected:"Hex"});try{let[n,s,i,l,u,m,d,b,g]=await Promise.all([t.readContract({address:o,abi:bt,functionName:"name"}),t.readContract({address:a.bex.vault,abi:Fr,functionName:"getPoolTokens",args:[e]}),t.readContract({address:o,abi:bt,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:gt,functionName:"isPoolFromFactory",args:[o]}),t.readContract({address:a.bex.factories.weighted,abi:gt,functionName:"isPoolFromFactory",args:[o]}),ft({publicClient:t,poolAddress:o})]),p=Number(m),A=JSON.parse(u),P,V,y;if(d?[P,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:Tr,functionName:"getAmplificationParameter"})]):A.name==="WeightedPool"&&(V=await t.readContract({address:o,abi:Pe,functionName:"getNormalizedWeights"})),!d&&!b)throw new Error(`Pool ${o} is not a valid BEX pool`);return{name:n,address:o,id:e,poolTokens:[s[0],s[1].map(String),Number(s[2])],totalSupply:Dr(P??i,p),swapFee:yt(l),decimals:p,weights:V?.map(F=>yt(F)),version:A,factory:d?a.bex.factories.composableStable:a.bex.factories.weighted,type:d?At.Stable:At.Weighted,amplificationParameter:y?[Number(y[0]),y[1],Number(y[2])]:void 0,pausedState:g}}catch(n){throw ee({cause:n})}}import{GetPoolEvents as qr}from"@berachain/graphql/dex/api";async function Un({poolId:e,typeInArray:t,...r}){let{config:a}=c(r);return(await f("api",r).query({query:qr,variables:{poolId:e,typeIn:t,chain:a.bex.chainName}})).data}import{isHex as Qr}from"viem";import{GetPoolHistoricalData as Wr}from"@berachain/graphql/dex/api";async function Jn({poolId:e,chain:t,...r}){if(!e||!Qr(e))throw new T({property:"poolId",value:e,expected:"hex string"});let a=f("api",r),{data:o}=await a.query({query:Wr,variables:{poolId:e,chain:t}});return o.poolGetSnapshots}import{mapPoolType as Ur}from"@berachain-foundation/berancer-sdk";var Kn=e=>({type:Ur(e.type),protocolVersion:e.protocolVersion,tokens:e.tokens.map(t=>({...t,address:t.address})),id:e.id,address:e.address});import{isHex as Or}from"viem";import{GetSubgraphPool as Mr}from"@berachain/graphql/dex/subgraph";async function ei({poolId:e,...t}){if(!Or(e))throw new Error("poolId is not a valid hex string");return(await f("bex.subgraph",t).query({query:Mr,variables:{id:e}})).data.pool}async function oi({publicClient:e,...t}){let{config:r}=c(t);return(await e.readContract({address:r.bex.vault,abi:Ue,functionName:"getPausedState"}))[0]}import{isAddress as ht,isHex as Lr}from"viem";var re=({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 s=BigInt(t);if(e.startsWith("uint")&&s<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 s=new URL(a);return t.startsWith(s.toString())?null:"Must be a berachain forum link";case"address":return ht(t,{strict:!0})?null:"Invalid address";case"hex":return Lr(t,{strict:!0})?null:"Invalid address";case"abi":try{JSON.parse(t)}catch{return"Invalid ABI"}return null;case"action":return ht(t,{strict:!0})?null:"Invalid address";case"tuple":if(typeof t=="object"&&Array.isArray(o)){let i={};for(let l of o)i[l.name]=re({fieldOrType:l.type,value:t[l.name],components:l.components});return Object.values(i).every(l=>l===null)?null:i}return null;case"tuple[]":if(Array.isArray(t)){let i=t.map(l=>re({fieldOrType:"tuple",value:l,components:o}));return i.every(l=>l===null)?null:i}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 _r=!1,ci=[w.Active,w.PendingQueue,w.PendingExecution,w.Defeated,w.QuorumNotReached];function Be(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:_r&&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 Hr,SearchProposals as Jr}from"@berachain/graphql/governance";async function fi({where:e,orderBy:t,orderDirection:r,offset:a=0,perPage:o=20,text:n,...s}){try{if(o>1e3)throw new Error("perPage must be less than 1000");let i=f("governance.subgraph",s),[l]=await Promise.all([n?i.query({query:Jr,variables:{offset:a,limit:o,where:e,text:n}}):i.query({query:Hr,variables:{offset:a,limit:o,where:e,orderBy:t,orderDirection:r}})]);return l.data.proposals.map(u=>({...u,status:Be(u)}))}catch(i){throw console.error("getAllProposals:",i),i}}var yi=(e,t)=>{let r={};return r.title=re({fieldOrType:"title",value:e.title}),r.description=re({fieldOrType:"description",value:e.description}),r.forumLink=re({fieldOrType:"forumLink",value:e.forumLink,baseUrl:t.forumLink}),r};import{decodeFunctionData as Ct,erc20Abi as $r,pad as jr,toFunctionSignature as Kr,trim as wt}from"viem";import{appConfig as Yr,defaultChainId as zr}from"@berachain/config/internal";function Xr(e){return e.some(t=>t.name==="implementation"||t.name==="proxyType"||t.type==="constructor"&&t.inputs?.[0]?.name==="implementation")}async function Pt({contractAddress:e,chainId:t}){let r=`https://api.etherscan.io/v2/api?module=contract&action=getabi&address=${e}&apikey=${Yr.apiKeys.private.etherscan}&chainId=${t}`,a=await fetch(r,{next:{revalidate:it(1)}});if(!a.ok)throw new Error(`Failed to fetch ABI: ${a.statusText}`);let o=await a.json();if(o.status==="0")throw new Error(o.result);let n=JSON.parse(o.result);if(!Xr(n))return n;let s=await et().getStorageAt({address:e,slot:"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"});if(!s||wt(s)==="0x00")return n;let i=jr(wt(s),{size:20});return Pt({contractAddress:i,chainId:t})}async function Zr({address:e,callData:t,knownAbi:r,chainId:a}){try{if(Ct({data:t,abi:r}))return r}catch{}try{return await Pt({contractAddress:e,chainId:a})}catch{}}function ea(e,t){try{return Ct({data:e,abi:t})}catch{return}}function ta(e,t){return e.find(r=>r.type==="function"&&r.name===t)}function ra(e){if(e)try{return Kr(e)}catch(t){console.error(t)}}async function vi({address:e,callData:t,chainId:r=zr}){let a=[...v,...C,...$r],o=await Zr({address:e,callData:t,knownAbi:a,chainId:r}),n=ea(t,o);if(!o||!n)return{args:[]};let s=ta(o,n.functionName),i=ra(s);return{abiItem:s,functionSignature:i,functionName:n.functionName,args:n.args}}import{GetProposal as aa}from"@berachain/graphql/governance";async function ki({proposalId:e,...t}){let a=await f("governance.subgraph",t).query({query:aa,variables:{id:e}});if(a.data.proposal)return{...a.data.proposal,status:Be(a.data.proposal)}}import{parseEventLogs as na}from"viem";import{ProposalStatus as ia}from"@berachain/graphql/governance";import Bt from"gray-matter";var oa=e=>{let t=/#(?:([\w-]+)# )?(.+)\n([\s\S]*)/,r=e.match(t);if(r){let a=r[1]||null,o=r[2],n=r[3].replace(`
2
- `,"<br />");return{type:a,title:o,content:n}}throw new Error("Invalid proposal body")},xt=e=>{if(!e)return{isFrontMatter:!1,data:{title:"Loading..."},content:"",matter:"",language:"",orig:"",stringify:()=>""};let t=e?.description??"";if(Bt.test(t))return{...Bt(t),isFrontMatter:!0};try{let r=oa(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}}};async function Wi(e){k(e.publicClient);let t;"tx"in e?t=e.tx:t=await e.publicClient.getTransactionReceipt({hash:e.txHash});let r=t?.logs?na({abi:Oe,logs:t.logs,eventName:"ProposalCreated"})?.at(0):void 0;if(!t||!r)return null;let a=await e.publicClient.getBlock({blockNumber:t.blockNumber}),o=xt({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:ia.Pending,quorum:null,topics:o.data.topics,votes:[],executableCalls:r?.args.targets.map((n,s)=>({__typename:"ExecutableCall",id:`${t.transactionHash}-${s}`,target:n,value:String(r?.args.values[s]),calldata:r?.args.calldatas[s]})),timelock:void 0}}import{GetProposalVotes as sa}from"@berachain/graphql/governance";async function Li({variables:e,...t}){return f("governance.subgraph",t).query({query:sa,variables:e})}import{Aggregation_Interval as la,GetChartData as ca}from"@berachain/graphql/honey";async function $i({days:e,...t}){return(await f("honey.subgraph",t).query({query:ca,variables:{interval:la.Day,first:e}})).data}async function zi({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((s,i,l)=>Object.assign(s,{[i.address]:o[l]}),{})}catch(o){throw console.log(o),o}}import{parseEther as St}from"viem";import{erc20Abi as Te}from"viem";async function vt({address:e,publicClient:t}){try{if(!t)throw new Error("Public client not found");let[r,a,o]=await Promise.all([t.readContract({address:e,abi:Te,functionName:"decimals"}),t.readContract({address:e,abi:Te,functionName:"name"}),t.readContract({address:e,abi:Te,functionName:"symbol"})]),n={address:e,decimals:r,name:a,symbol:o};if(typeof n.decimals!="number"||typeof n.name!="string"||typeof n.symbol!="string")throw new Error(`Invalid ERC20 token. Address: ${e}`);return n}catch(r){throw console.error(r),ee({cause:r})}}async function Fe({client:e,tokenData:t,preferredCollateralOrder:r,...a}){let{config:o}=c(a),[n,s]=await Promise.all([e.readContract({address:o.honey.factory,abi:B,functionName:"numRegisteredAssets"}),e.readContract({address:o.honey.factory,abi:B,functionName:"referenceCollateral"})]),i=[];for(let b=0;b<n;b++)i.push(e.readContract({address:o.honey.factory,abi:B,functionName:"registeredAssets",args:[BigInt(b)]}));let l=await Promise.all(i),m=(await Promise.all(l.map(b=>{let g=t?.find(p=>N(p,b));return g||vt({address:b,publicClient:e})}))).filter(b=>!!b).sort((b,g)=>l.indexOf(b.address)-l.indexOf(g.address)).map((b,g)=>({...b,order:g}));if(r?.length){let b=[];for(let g of r){let p=m.find(A=>N(A.address,g.address));p&&(b.push(p),m.splice(m.indexOf(p),1))}m.unshift(...b)}let d=m.find(b=>N(b,s));if(!m)throw new Error("Collateral tokens not found");if(!d)throw new Error("Reference collateral address not found");return{collaterals:m,referenceCollateral:d}}import{parseEther as ua}from"viem";async function le({client:e,asset:t,amount:r,...a}){let{config:o}=c(a);try{let[n,s]=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:n,abi:X,functionName:"balanceOf",args:[o.honey.factory]})+ua(r??"0")-s}catch(n){throw console.log(n),n}}import{parseUnits as da}from"viem";async function Rt({client:e,collateral:t,latestPrices:r,isPythWrapperEnabled:a,...o}){let{config:n}=c(o);try{let s=e.readContract({address:n.honey.factory,abi:B,functionName:"isBadCollateralAsset",args:[t.address]}),i=e.readContract({address:n.honey.factory,abi:B,functionName:"isPegged",args:[t.address]});if(a&&r){let m=r.prices.map(d=>da(d,18));i=e.readContract({address:n.honey.reader,abi:K,functionName:"isPeggedWithPrice",args:[t.address,m[0]]})}let[l,u]=await Promise.all([s,i]);return{isBlacklisted:l,isDepegged:!u}}catch(s){throw console.log(s),s}}var ma=St("1");async function vs({client:e,asset:t,amount:r,isMint:a,isPythWrapperEnabled:o,latestPrices:n,...s}){let{config:i}=c(s);try{let l=await e.readContract({address:i.honey.factory,abi:B,functionName:"globalCap"});if(l>=ma)return!1;let[{collaterals:u},m]=await Promise.all([Fe({client:e}),pa({client:e,asset:t,amount:r,latestPrices:n,isPythWrapperEnabled:o})]);if(!m)return;for(let d in m)if((a&&N(u[d],t)||!a&&N(u[d],t))&&m[d]>l-he)return!0;return!1}catch(l){throw console.log(l),l}}async function pa({client:e,asset:t,amount:r,latestPrices:a,isPythWrapperEnabled:o}){let{collaterals:n}=await Fe({client:e}),s=0n,i=[];for(let l of n){let u=await Rt({client:e,collateral:t,latestPrices:a,isPythWrapperEnabled:o});if(u?.isBlacklisted||u?.isDepegged)continue;let m=await le({client:e,asset:l.address,amount:N(l,t)?r:"0"});m&&(s+=m,i.push(m))}if(s===0n)return i;for(let l in n)i[l]=St(i[l].toString())/s;return i}import{formatUnits as xe}from"viem";async function ks({client:e,collateralList:t,...r}){let{config:a}=c(r);try{let o={mint:[],redeem:[]};for(let l of t)o.mint.push(e.readContract({address:a.honey.factory,abi:B,functionName:"mintRates",args:[l.address]})),o.redeem.push(e.readContract({address:a.honey.factory,abi:B,functionName:"redeemRates",args:[l.address]}));let[n,s,i]=await Promise.all([Promise.all(o.mint),Promise.all(o.redeem),e.readContract({address:a.honey.factory,abi:B,functionName:"getWeights"})]);return t.reduce((l,u)=>{let m=t.indexOf(u);return l.single[u.address]={mintFee:1-+xe(n[m],18),redeemFee:1-+xe(s[m],18)},l.basket.mintFee+=l.single[u.address].mintFee*+xe(i[m],18),l.basket.redeemFee+=l.single[u.address].redeemFee*+xe(i[m],18),l},{single:{},basket:{mintFee:0,redeemFee:0}})}catch(o){throw console.log(o),o}}import{GetGlobalData as fa}from"@berachain/graphql/honey";async function Ds({...e}={}){return(await f("honey.subgraph",e).query({query:fa})).data}async function Qs({client:e,...t}){let{config:r}=c(t),a=r.honey.token;return await e.readContract({address:a,abi:Me,functionName:"paused"})}import{parseUnits as Vt}from"viem";var ga=(l=>(l.Mint="previewMintHoney",l.MintWithPrice="previewMintHoneyWithPrices",l.RequiredCollateral="previewMintCollaterals",l.RequiredCollateralWithPrice="previewMintCollateralsWithPrices",l.Redeem="previewRedeemCollaterals",l.RedeemWithPrice="previewRedeemCollateralsWithPrices",l.HoneyToRedeem="previewRedeemHoney",l.HoneyToRedeemWithPrice="previewRedeemHoneyWithPrices",l))(ga||{});async function Ls({client:e,collateral:t,collateralList:r,amount:a,method:o,latestPrices:n,isPythWrapperEnabled:s,...i}){let{config:l}=c(i);try{let u=o==="previewMintHoney"||o==="previewRedeemHoney"||o==="previewMintHoneyWithPrices"||o==="previewRedeemHoneyWithPrices",m=Vt(a,u?t.decimals:18),d,b=[t.address,m];if(s&&n){let p=n.prices.map(A=>Vt(A,18));b=[t.address,m,p]}if(u){let p=await e.readContract({address:l.honey.reader,abi:K,functionName:o,args:b});d={collaterals:p[0],honey:p[1]}}else d={collaterals:await e.readContract({address:l.honey.reader,abi:K,functionName:o,args:b}),honey:m};let g=r.reduce((p,A)=>{let P=A.order;return A.address===t.address&&d.collaterals[P]===BigInt(0)?Object.assign(p,{[A.address]:d.collaterals[0]}):Object.assign(p,{[A.address]:d.collaterals[P]})},{});return g[t.address]===BigInt(0)&&(g[t.address]=d.collaterals[0]),{collaterals:g,honey:d.honey}}catch(u){throw console.log("error",u),u}}async function Js({pythOracle:e,publicClient:t}){return await t.readContract({address:e,abi:Le,functionName:"pythOracle"})}async function Ys({publicClient:e,factory:t,...r}){let{config:a}=c(r);return await e.readContract({address:t??a.honey.factory,abi:B,functionName:"priceOracle"})}import{formatUnits as ba}from"viem";async function rl({client:e,collateralList:t,honeyFactoryAddress:r,...a}){let{config:o}=c(a),n=r??o.honey.factory;try{return await Promise.all(t.map(async i=>{let l=await e.readContract({address:o.honey.factory,abi:B,functionName:"vaults",args:[i.address]}),[u,m,[d,b]]=await Promise.all([e.readContract({address:l,abi:X,functionName:"balanceOf",args:[n]}),e.readContract({address:n,abi:B,functionName:"collectedAssetFees",args:[i.address]}),e.readContract({address:l,abi:X,functionName:"custodyInfo"})]),g=await e.readContract({address:l,abi:X,functionName:"convertToAssets",args:[u-m]});return{address:i.address,balance:g.toString(),formattedBalance:ba(g,i.decimals),vault:d?b:l}}))}catch(s){throw console.log(s),s}}import{HermesClient as ya}from"@pythnetwork/hermes-client";import{formatUnits as Aa}from"viem";var ha="https://hermes.pyth.network";async function Nt({priceFeedId:e}){let r=await new ya(ha,{}).getLatestPriceUpdates(e,{encoding:"hex",parsed:!0});return{calldata:r.binary.data.map(a=>`0x${a}`),prices:r.parsed?.flatMap(a=>Aa(BigInt(a.price.price),a.price.expo*-1))??[]}}import{parseEther as wa}from"viem";async function ml({client:e,asset:t,amount:r,isMint:a,referenceCollateral:o,...n}){let{config:s}=c(n);if(t===o.address)return!1;try{let[i]=await Promise.all([e.readContract({address:s.honey.factory,abi:B,functionName:"relativeCap",args:[t]})]),[l,u]=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 u===0n?l!==0n:wa((l??0n).toString())/(u??0n)>=i-he}catch(i){throw console.log(i),i}}import{parseUnits as Gt}from"viem";async function kt({client:e,priceFeedId:t,...r}){let{config:a}=c(r);try{return await e.readContract({address:a.external.pyth,abi:Je,functionName:"getUpdateFee",args:[t]})}catch(o){throw console.error("getPythUpdateFee",o),o}}var vl=async({state:e,account:t,publicClient:r,priceFeedMap:a,collateralList:o,isPythWrapperEnabled:n,...s})=>{let{config:i}=c(s),l=Ke(s),{actionType:u,fromAmount:m,collaterals:d,isBasketModeEnabled:b}=e,g=n?i.honey.pythWrapper:i.honey.factory,p=o.map(A=>A.address);if(t&&m[0]&&p.length){let A=u==="mint";if(n&&r&&a){let y=(await Nt({priceFeedId:Object.values(a)})).calldata,F;try{F=await kt({client:r,priceFeedId:y})}catch{F=rt(d.length)}let G=[y,d[0]?.address,Gt(m[0],(A?d[0]?.decimals:l?.decimals)??18),t,!!b];return{address:g,abi:He,functionName:A?"mint":"redeem",params:G,value:F}}let P=[d[0]?.address,Gt(m[0],(A?d[0]?.decimals:l?.decimals)??18),t,!!b];return{address:g,abi:B,functionName:A?"mint":"redeem",params:P}}throw new Error("Something went wrong while creating the Honey swap payload")};import{parseUnits as Ca}from"viem";async function Gl({client:e,isMint:t,collateralList:r,latestPrices:a,isPythWrapperEnabled:o,...n}){let{config:s}=c(n);if(o&&a){if(r.length===0)return;let l=a.prices.map(m=>Ca(m,18));return await e.readContract({address:s.honey.reader,abi:K,functionName:"isBasketModeEnabledWithPrices",args:[t,l]})}return await e.readContract({address:s.honey.factory,abi:B,functionName:"isBasketModeEnabled",args:[t]})}async function Il({block:e,currentBlock:t,blockTime:r,publicClient:a}){if($(e,"block"),k(a),t>e){let n=await a.getBlock({blockNumber:BigInt(e),includeTransactions:!1});return{timestamp:Number(n.timestamp)}}return{timestamp:R(Date.now())+r*(Number(e)-Number(t))}}import{formatUnits as De}from"viem";var Pa=(a=>(a.Duration="duration",a.TargetRate="targetRate",a.TargetApr="targetApr",a))(Pa||{});async function Ul(e,t){let[r,a,o,n,s,i]=await Promise.all([t.readContract({address:e,abi:C,functionName:"rewardsDuration"}),t.readContract({address:e,abi:C,functionName:"rewardVaultManager"}),t.readContract({address:e,abi:C,functionName:"rewardRate"}),t.readContract({address:e,abi:C,functionName:"periodFinish"}),t.readContract({address:e,abi:C,functionName:"targetRewardsPerSecond"}),t.readContract({address:e,abi:C,functionName:"minRewardDurationForTargetRate"})]),l=o*(n-BigInt(R(Date.now())))/10n**18n;return{rewardsDuration:Number(r),mode:s===0n?"duration":"targetRate",manager:a,rewardRate:De(o,36),periodFinish:Number(n),availableRewards:De(l,18),minRewardDurationForTargetRate:Number(i),targetRewardsPerSecond:De(s,36)}}function ve(e,t,r){return e?r*t*ie(1)/e:null}function Ba(e,t,r){return r?e*r/(t*ie(1)):0}function Ll({availableRewards:e,periodFinish:t,tvl:r,bgtPrice:a,MIN_REWARD_DURATION:o,MAX_REWARD_DURATION:n,...s}){let i=R(Date.now());if(i>t)return{apr:0,duration:0,rewardRate:0,targetRate:null,periodFinish:0,mode:null};if(s.mode==="targetRate"||s.mode==="targetApr"){let d,{minRewardDurationForTargetRate:b,currentDuration:g}=s;if(s.mode==="targetRate"?d=s.rewardRate:d=Ba(s.apr,a,r),d===0){let P=Math.min(g,n),V=e?e/P:0;return{apr:ve(r,a,V),duration:P,rewardRate:V,targetRate:null,periodFinish:P+i,mode:"duration"}}let p=b||o,A=e?e/d:0;if(A<p){let P=e?e/p:0;return{apr:ve(r,a,P),duration:p,rewardRate:P,targetRate:P.toString(),periodFinish:p+i,mode:null}}return{apr:ve(r,a,d),duration:A,rewardRate:d,targetRate:d.toString(),periodFinish:A+i,mode:null}}let{duration:l}=s,u=e/l;return{apr:ve(r,a,u),mode:null,targetRate:null,duration:l,rewardRate:u,periodFinish:l+i}}import{GetBlocksTimeStamp as xa}from"@berachain/graphql/chain";async function Tt({defaultBlockTime:e,blocksSpan:t,...r}={}){let{config:a}=c(r),o=f("blocks.subgraph",r),n=e??a.averageBlockTime,s=t??Math.floor(ot(1)/n),l=(await o.query({query:xa,variables:{skip:s}})).data;return(R(Date.now())-Number(l?.oldest[0]?.timestamp))/(Number(l?.newest[0]?.number)-Number(l?.oldest[0]?.number))}import*as ce from"@sentry/nextjs";import{GlobalData as va}from"@berachain/graphql/pol/api";async function Ft(e={}){let{config:t}=c(e),a=await f("api",e).query({query:va,variables:{chain:t.bex.chainName}});return{...a.data.polGetGlobalInfo,top3EmittingValidators:a.data.top3EmittingValidators.validators,allValidatorsCount:a.data.allValidatorsCount.pagination.totalCount}}import{formatEther as Ra}from"viem";async function Dt({publicClient:e,...t}){let{config:r}=c(t);k(e);try{let a=await e.readContract({address:r.tokens.bgt,abi:H,functionName:"totalBoosts",args:[]});return Ra(a)}catch(a){throw console.log(a),a}}import{erc20Abi as Sa,formatEther as Va}from"viem";async function It({publicClient:e,...t}){let{config:r}=c(t);k(e);try{let a=await e.readContract({address:r.tokens.bgt,abi:Sa,functionName:"totalSupply",args:[]});return Va(a??0n)}catch(a){throw console.log(a),a}}import{GqlRewardVaultOrderBy as Ga,GqlRewardVaultOrderDirection as Ta}from"@berachain/graphql/pol/api";import{formatUnits as Na}from"viem";import{GetVaults as ka}from"@berachain/graphql/pol/api";async function Re({filter:e,publicClient:t,...r}={}){let o=await f("api",r).query({query:ka,variables:e}),n=await Promise.allSettled(o.data.polGetRewardVaults.vaults.map(async i=>{if(t)return Promise.allSettled(i.activeIncentives.map(l=>t.readContract({abi:C,address:i.address,functionName:"incentives",args:[l.tokenAddress]})))})),s=o.data.polGetRewardVaults.vaults.map((i,l)=>{let u=0,m=i.activeIncentives.map((d,b)=>{let g=Number(d.remainingAmountUsd)&&Number(d.remainingAmount)?Number(d.remainingAmountUsd)/Number(d.remainingAmount):0,p=n[l]?.status==="fulfilled"&&n[l]?.value?.[b]?.status==="fulfilled"?Na(BigInt(n[l].value[b].value[2]),d.token.decimals):d.remainingAmount;return u+=Number(p)*Number(g),{...d,remainingAmount:p}});return{...i,dynamicData:{...i.dynamicData,allTimeReceivedBGTAmount:i.dynamicData?.allTimeReceivedBGTAmount??"0",bgtCapturePercentage:i.dynamicData?.bgtCapturePercentage??"0",activeIncentivesValueUsd:u.toString(),activeIncentivesRateUsd:i.dynamicData?.activeIncentivesRateUsd??"0",bgtCapturePerBlock:i.dynamicData?.bgtCapturePerBlock??"0"},activeIncentives:m}});return{pagination:o.data.polGetRewardVaults.pagination,gaugeList:s}}async function Et(e){let{gaugeList:t}=await Re({filter:{orderBy:Ga.Apr,orderDirection:Ta.Desc,pageSize:e,where:{includeNonWhitelisted:!1}}});return t}async function Cc(e){let[t,r,a,o]=await Promise.allSettled([Ft(),Et(300),It({publicClient:e}),Dt({publicClient:e})]);return t.status==="rejected"&&ce.captureException(t.reason,{level:"warning"}),r.status==="rejected"&&ce.captureException(r.reason,{level:"warning"}),a.status==="rejected"&&ce.captureException(a.reason,{level:"warning"}),o.status==="rejected"&&ce.captureException(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 Fa}from"@berachain/graphql/pol/subgraph";async function qt({...e}){let t=f("pol.subgraph",e),{data:r}=await t.query({query:Fa});if(r.incentiveFeeClaims.length>0){let a=r?.incentiveFeeClaims.reduce((s,i)=>s+Number(i.payoutAmount),3e4),n=(r?.incentiveFeeClaims.filter(s=>Number(s.timestamp)/1e3>Date.now()-nt(1))).reduce((s,i)=>s+Number(i.payoutAmount),0);return{sumAllClaims:a,sumClaimsInLast24Hours:n}}return{sumAllClaims:0,sumClaimsInLast24Hours:0}}async function Vc(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,n)=>(o[n.name]=n,o),{})}}catch(r){throw console.error("Error fetching validator information",r),r}}async function Fc({account:e,validator:t,page:r=1,perPage:a=1e3,...o}){let{config:n}=c(o),s=await fetch(`${n.pol.bribeBoostApi}/api/v1/wallets/${e.toLowerCase()}/proofs/validator/${t.toLowerCase()}?page=${r}&per_page=${a}`,{cache:"no-store"});if(!s.ok){let l=await Ae(s);throw new x({message:"Failed to fetch proofs on server",cause:{error:l,result:s,account:e,validator:t},reason:l?.reason})}return await s.json()}import{formatUnits as Da,parseUnits as Ia}from"viem";async function Qc({address:e,publicClient:t}){return k(t),t.readContract({address:e,abi:D,functionName:"previewRedeem",args:[Ia("1",18)]}).then(r=>Number(Da(r,18))).catch(()=>0)}import{GetRewardVault as Ea}from"@berachain/graphql/pol/api";async function _c({address:e,chainName:t,...r}){let{config:a}=c(r),o=t??a.bex.chainName,n=f("api",r),{data:s}=await n.query({query:Ea,variables:{vaultId:e,chain:o}});if(!s?.rewardVault)throw new st({resource:"Reward vault",id:e,chainId:a.chainId});return s.rewardVault}var Qt=[{inputs:[{internalType:"address",name:"initialOwner",type:"address"},{internalType:"address",name:"initialImplementation",type:"address"}],stateMutability:"payable",type:"constructor"},{inputs:[],name:"NewImplementationHasNoCode",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[],name:"implementation",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"upgradeTo",outputs:[],stateMutability:"nonpayable",type:"function"}];async function Wt({publicClient:e,...t}){let{config:r}=c(t),a=r.pol.factory;$(e,"publicClient"),we(r.pol.factory,"factoryAddress");let o=await e.readContract({address:a,abi:ge,functionName:"beacon"});return await e.readContract({address:o,abi:Qt,functionName:"implementation"})}async function tu({publicClient:e,...t}){k(e);let r=await Wt({publicClient:e,...t}),[a,o]=await Promise.all([e.readContract({address:r,abi:C,functionName:"MIN_REWARD_DURATION"}),e.readContract({address:r,abi:C,functionName:"MAX_REWARD_DURATION"})]);return{minRewardDuration:Number(a),maxRewardDuration:Number(o)}}import{zeroAddress as qa}from"viem";async function iu({tokenAddress:e,publicClient:t,factoryAddress:r,...a}){let{config:o}=c(a),n=await t.readContract({address:r??o.pol.factory,abi:ge,functionName:"getVault",args:[e]});return n===qa?null:n}import{isSameAddress as Ut}from"@berachain-foundation/berancer-sdk";import*as Ot from"@sentry/nextjs";import{erc20Abi as Ie,formatUnits as ue}from"viem";async function mu({address:e,stakingToken:t,publicClient:r}){let a=await r.readContract({address:e,abi:C,functionName:"getWhitelistedTokens"}),n=a.findIndex(i=>Ut(t,i))!==-1?await r.readContract({address:e,abi:C,functionName:"totalSupply"}):0n,s=await Promise.allSettled(a.map(async i=>{let[l,u,m,d]=await Promise.all([r.readContract({address:e,abi:C,functionName:"incentives",args:[i]}),r.readContract({address:i,abi:Ie,functionName:"decimals"}),r.readContract({address:i,abi:Ie,functionName:"symbol"}),r.readContract({address:i,abi:Ie,functionName:"balanceOf",args:[e]})]),[b,g,p,A]=l;return{token:i,manager:A,minIncentiveRate:ue(b,u),incentiveRate:ue(g,u),remainingAmount:ue(p,u),symbol:m,decimals:u,pendingAmount:Ut(t,i)?ue(d-n-p,u):ue(d-p,u)}}));return s.forEach((i,l)=>{i.status==="rejected"&&Ot.captureException(new x({reason:i.reason,message:"Incorrect incentives token received.",level:"error"}),{extra:{token:a[l],address:e,error:i.reason}})}),s.map(i=>i.status==="fulfilled"?i.value:null).filter(i=>i!==null)}async function gu({address:e,publicClient:t}){return await t.readContract({address:e,abi:C,functionName:"stakeToken"})}import{GetSWberaVaultMetadata as Qa,GqlSWberaVaultMetadataResolution as Mt}from"@berachain/graphql/pol/api";function Wa(e){return e==="DAY"?Mt.OneDay:Mt.SevenDays}async function wu({window:e,...t}){let{config:r}=c(t),a=f("api",t);try{let o=await a.query({query:Qa,variables:{chain:r.bex.chainName,resolution:Wa(e??"DAY")}}),{apr:n}=o.data.polGetSWberaVaultMetadata;return Number(n)}catch(o){throw console.error("Failed to get SW Bera APR",o),o}}import{GetSWberaVaultSnapshots as Ua,GqlVaultSnapshotDataRange as Oa}from"@berachain/graphql/pol/api";async function vu({chain:e,range:t=Oa.ThirtyDays,...r}={}){let{config:a}=c(r),o=f("api",r);try{return(await o.query({query:Ua,variables:{chain:e??a.bex.chainName,range:t}})).data.polGetSWberaVaultSnapshots}catch(n){throw console.error("Failed to get SW Bera Snapshots",n),n}}async function de({publicClient:e,...t}){let{config:r}=c(t),a=await e.readContract({address:r.tokens.swbera,abi:D,functionName:"WITHDRAWAL_COOLDOWN"});return Number(a)}import J from"bignumber.js";import{erc20Abi as Se}from"viem";async function Qu({address:e,publicClient:t,...r}){let{config:a}=c(r);k(t);let o=26;try{let[n,s]=await Promise.all([t.getBlock({blockTag:"latest"}),Tt()]),i=Math.floor(o*60*60/s),l=n.number-BigInt(i),[u,m,d,b,g,p,A,P,V,y,F]=await Promise.all([t.readContract({address:e,abi:D,functionName:"totalAssets"}),t.readContract({address:e,abi:D,functionName:"totalSupply"}),t.readContract({address:e,abi:D,functionName:"previewRedeem",args:[10n**18n],blockNumber:n.number}),t.readContract({address:a.tokens.wbera,abi:Se,functionName:"balanceOf",args:[e]}),t.readContract({address:e,abi:D,functionName:"totalAssets",blockNumber:l}),t.readContract({address:e,abi:Se,functionName:"totalSupply",blockNumber:l}),t.readContract({address:e,abi:D,functionName:"previewRedeem",args:[10n**18n],blockNumber:l}),t.readContract({address:a.tokens.wbera,abi:Se,functionName:"balanceOf",args:[e],blockNumber:l}),t.readContract({address:a.tokens.wbera,abi:Se,functionName:"totalSupply"}),de({publicClient:t}),qt({})]),G=new J(A.toString());return{current:{exchangeRate:new J(d.toString()).toString(),totalSupply:new J(m.toString()).dividedBy(1e18).toString(),totalAssets:new J(u.toString()).dividedBy(1e18).toString(),tvl:new J(b.toString()).dividedBy(1e18).toString()},previous:{exchangeRate:G.toString(),totalSupply:new J(p.toString()).dividedBy(1e18).toString(),totalAssets:new J(g.toString()).dividedBy(1e18).toString(),tvl:new J(P.toString()).dividedBy(1e18).toString()},totalWBeraIssued:new J(V.toString()).dividedBy(1e18).toString(),lockPeriod:y,totalBuyBacks:F.sumAllClaims,totalBuyBacksInLast24Hours:F.sumClaimsInLast24Hours}}catch(n){throw console.error("Failed to get SW Bera Vault Metadata",n),n}}function Lt(e){let t=Date.now(),r=e*1e3-t;if(r<=0)return;let a=R(r);return Ze(a,!0,!0)}async function Lu(e,t,r,a){let o=[];function n(s,i){let[l,u,m]=s,d=l,b=Number(m)+Number(i),g=R(Date.now()),p=b-g;if(d>0){let A=Lt(p<=0?0:b);o.push({withdrawalAmount:d,timeRemaining:A})}}switch(a){case"V1":{let[s,i]=await Promise.all([r.readContract({address:e,abi:D,functionName:"withdrawalRequests",args:[t]}),de({publicClient:r})]);return n(s,i),o}case"V2":{let[s,i,l]=await Promise.all([r.readContract({address:e,abi:D,functionName:"withdrawalRequests",args:[t]}),r.readContract({address:e,abi:D,functionName:"getERC721WithdrawalRequestIds",args:[t]}),de({publicClient:r})]);n(s,l);let m=(await Promise.all(i.map(async d=>{let b=await r.readContract({address:e,abi:D,functionName:"getERC721WithdrawalRequest",args:[d]}),{assets:g,requestTime:p}=b;if(!g||!p)throw new Error("Invalid withdrawal request");let A=g,P=Number(p)+Number(l),V=R(Date.now()),y=P-V;if(A>0){let F=Lt(y<=0?0:P);return{withdrawalAmount:A,timeRemaining:F,withdrawalRequestId:d}}return null}))).filter(d=>d!==null);return o.push(...m),o}}}async function ju({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 Ae(a);throw new x({message:"Failed to fetch incentives on server",cause:{error:o,result:a,account:e},reason:o?.error})}return await a.json()}import{formatEther as Ee}from"viem";import{isAddress as _t}from"viem";async function Ht({account:e,vaultAddress:t,publicClient:r}){if(k(r),!e||!_t(e))throw new T({property:"account",value:e,expected:"Address"});if(!t||!_t(t))throw new T({property:"vaultAddress",value:t,expected:"Address"});try{let[a,o]=await Promise.all([r.readContract({address:t,abi:C,functionName:"balanceOf",args:[e]}),r.readContract({address:t,abi:C,functionName:"getTotalDelegateStaked",args:[e]})]);return{balance:a,delegated:o}}catch(a){throw console.log(a),a}}async function Jt({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:C,functionName:"earned",args:[e]})}async function $t({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:C,functionName:"totalSupply",args:[]})}catch(r){throw console.log(r),r}}async function ld({account:e,vaultAddress:t,publicClient:r}){let[a,o,n]=await Promise.all([Ht({account:e,vaultAddress:t,publicClient:r}),Jt({account:e,vaultAddress:t,publicClient:r}),$t({vaultAddress:t,publicClient:r})]),s=a.balance-a.delegated,i=n>0n?Number(Number.parseFloat(Ee(a.balance))/Number.parseFloat(Ee(n))).toString():"0";return{balance:a.balance,delegatedBalance:a.delegated,withdrawableBalance:s,rewards:Ee(o),percentage:i}}import*as jt from"@sentry/nextjs";import{formatUnits as qe}from"viem";import{GetUserVaults as Ma}from"@berachain/graphql/pol/api";async function gd({account:e,publicClient:t,...r}){let{config:a}=c(r),s=(await f("api",r).query({query:Ma,variables:{userId:e,chain:a.bex.chainName}})).data?.userVaultDeposits?.deposits;if(!s)return{totalBgtRewards:"0",vaults:[],totalStakedValue:0};let[i,l]=await Promise.all([t.multicall({allowFailure:!1,contracts:s.map(g=>({address:g.vaultAddress,abi:C,functionName:"earned",args:[e]}))}),t.multicall({allowFailure:!1,contracts:s.map(g=>({address:g.vaultAddress,abi:C,functionName:"balanceOf",args:[e]}))})]),{userVaults:u,total:m}=s.reduce((g,p,A)=>{let P=i[A],V=l[A];if(g.total+=P,!p.vault)return jt.captureException(new Error("Deposit data from API is missing vault"),{data:{deposit:p}}),console.error("Deposit data from API is missing vault",p),g;if(P>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;g.userVaults.push({...p,vault:p.vault,unclaimedBgt:qe(P,18),formattedBalance:qe(V,p.vault.stakingToken.decimals),stakingTokenPrice:y})}return g},{userVaults:[],total:0n}),d=[...u].sort((g,p)=>{if(g.vault.isVaultWhitelisted&&!p.vault.isVaultWhitelisted)return-1;if(!g.vault.isVaultWhitelisted&&p.vault.isVaultWhitelisted)return 1;let A=Number.parseFloat(g.unclaimedBgt);return Number.parseFloat(p.unclaimedBgt)-A});return{totalStakedValue:d.reduce((g,p)=>{let A=Number(p.vault.dynamicData?.tvl??0);if(A===0)return g;let P=Number.parseFloat(p.vault.stakingTokenAmount),V=A/P;return g+V*Number(p.formattedBalance)},0),totalBgtRewards:qe(m,18),vaults:d}}import{GetVaultHistory as La}from"@berachain/graphql/pol/api";async function wd({vault:e,chain:t,...r}){let{config:a}=c(r);return(await f("api",r).query({query:La,variables:{...r,vaultId:e,chain:t??a.bex.chainName}})).data.polGetRewardVaultSnapshots}import{GetVaultValidators as _a}from"@berachain/graphql/pol/api";async function xd({address:e,onlyActiveValidators:t,...r}){return(await f("api",r).query({query:_a,variables:{vaultId:e,isActive:t}})).data.validators.validators??[]}import{getAddress as Ha,zeroAddress as Ja}from"viem";import{GetTokenCurrentPrices as $a}from"@berachain/graphql/dex/api";async function Td({addressIn:e,...t}){let{config:r}=c(t),a=e.map(s=>s.toLowerCase()).filter((s,i,l)=>s&&l.indexOf(s)===i),o=f("api",t),{data:n}=await o.query({query:$a,variables:{chains:[r.bex.chainName],addressIn:a}});return n.tokenGetCurrentPrices.reduce((s,i)=>{if(!i.price||!i.address)return s;let l=i.address;return s[Ha(l)]={price:te(i.price.toString()),updatedAt:i.updatedAt},s[l.toLowerCase()]={price:te(i.price.toString()),updatedAt:i.updatedAt},N(l,"WBERA")&&(s[Ja]={price:te(i.price.toString()),updatedAt:i.updatedAt},s[r.tokens.bgt.toLowerCase()]={price:te(i.price.toString()),updatedAt:i.updatedAt},s[r.tokens.bgt]={price:te(i.price.toString()),updatedAt:i.updatedAt}),s},{})}async function Ed({tokenList:e,publicClient:t,...r}){let{config:a}=c(r);try{let o=await Promise.all(e.map(n=>t.readContract({address:a.honey.pythOracle,abi:_e,functionName:"feeds",args:[n]})));return e.reduce((n,s,i)=>({...n,[s]:o[i]}),{})}catch(o){throw console.error("getPythPriceFeedId",o),o}}import{erc20Abi as ja,formatUnits as Ka}from"viem";async function Wd({tokens:e,account:t,spender:r,publicClient:a}){if(!a||!e||!r)throw new Error("missing publicClient, tokens, or spender");if(t){let o=e.map(i=>({address:i.address,abi:ja,functionName:"allowance",args:[t,r]}));return(await a.multicall({contracts:o})).map((i,l)=>{let u=e[l];return i.error?{balance:0,...u}:{allowance:i.result,formattedAllowance:Ka(i.result,u?.decimals||18),...u}})}}async function Ld({url:e,...t}={}){let{config:r}=c(t);return(await ze({url:e??r.lists.tokenList,type:"rest",name:"GitHub"})).tokens??[]}import{erc20Abi as Ya,formatUnits as za,isAddress as Kt}from"viem";function Xa({token:e,account:t,multicallAddress:r}){return N(e,"BERA")||N(e,"ETH")?{address:r,abi:$e,functionName:"getEthBalance",args:[t]}:{address:e.address,abi:Ya,functionName:"balanceOf",args:[t]}}async function Kd({account:e,tokenList:t,publicClient:r}){if(!r)throw new Error("publicClient is not defined");if(!e||!t)throw new Error("account or tokenList is not defined");if(!Kt(e))throw new Error("account is not a valid address");let a=t.filter(u=>Kt(u.address));$(r.chain,"publicClient.chain"),$(r.chain.contracts,"publicClient.chain.contracts"),$(r.chain.contracts.multicall3,"publicClient.chain.contracts.multicall3");let{multicall3:o}=r.chain.contracts,n=typeof o=="string"?o:o.address;we(n,"multicall3Address");let s=a.map(u=>Xa({token:u,account:e,multicallAddress:n})),i=await r.multicall({contracts:s});return await Promise.all(i.map(async(u,m)=>{let d=a[m];if(u.error)return{balance:0n,formattedBalance:"0",...d};let b=za(u.result,d?.decimals||18);return{balance:u.result,formattedBalance:b.includes("e")?"0":b,...d}}))}import{getPublicClient as to,getWalletClient as ro,switchChain as ao}from"@wagmi/core";import{BaseError as oo,createWalletClient as no,decodeErrorResult as io,HttpRequestError as so,http as lo}from"viem";import{ChainId as co,defaultChainId as Xt}from"@berachain/config/internal";import{AbiFunctionSignatureNotFoundError as Za,decodeFunctionData as eo}from"viem";async function Yt({publicClient:e,abi:t,...r}){let a=[...be,...t??[]],o,n,s,i,l,u,m;if("txHash"in r){let d=await e.getTransaction({hash:r.txHash});if(!d.to)throw new T({property:"tx",value:d,expected:"Transaction",message:"Trying to get revert reason for a contract creation"});l=d.input,n=d.to,s=d.from,i=d.value,o=d.blockNumber}else if(o=r.blockNumber,n=r.to,s=r.account,i=r.value,"data"in r)l=r.data;else if("functionName"in r&&"args"in r)u=r.functionName,m=r.args;else if(!i)throw new T({property:"dataOrFunctionNameAndArgs",value:r,expected:"Hex or FunctionName and Args"});try{if(!a)if(l)await e.call({data:l,to:n,account:s,blockNumber:o,value:i});else throw new Error("Data is required if abi is not provided");if("functionName"in r&&"args"in r&&r.functionName)u=r.functionName,m=r.args;else if(l){if(!a){let d=await e.call({data:l,to:n,account:s,blockNumber:o,value:i});throw new Error(`Getting revert reason for successful simulation. Data: ${l}`,{cause:d})}try{let d=eo({abi:a,data:l});u=d.functionName,m=d.args}catch(d){throw d instanceof Za&&await e.call({data:l,to:n,account:s,blockNumber:o,value:i}),new Error("Data is required if abi is not provided")}}else throw new Error("No data or function name and args provided");throw a&&u?(await e.simulateContract({functionName:u,args:m,abi:a,address:n,account:s,blockNumber:o}),new j({message:"Getting revert reason for successful simulation",functionName:u,to:n,txHash:"txHash"in r?r.txHash:void 0,input:r})):new Error("No data or function name and args provided")}catch(d){if(d instanceof Error)return ne({error:d,abi:a,revertIfUnknown:!0});throw d}}var uo=at(1),zt=(e,t)=>e*(100n+BigInt(t))/100n;function Qe({nonceResult:e,onWarning:t}){if(e.status==="fulfilled"){if(e.value&&e.value>Number.MAX_SAFE_INTEGER){t?.(new x({message:"Nonce is too large. No nonce will be provided to avoid IntegerOutOfRangeError.",cause:e.value,level:"debug"}));return}return e.value}}function mo(e=Xt){return e===co.BEPOLIA?process.env.NEXT_PUBLIC_80069_ANVIL_IMPERSONATE_ACCOUNT==="true":process.env.NEXT_PUBLIC_80094_ANVIL_IMPERSONATE_ACCOUNT==="true"}async function ym(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 T({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:n,onSuccess:s,onWarning:i,onError:l,onSubmission:u,wagmiConfig:m,walletClient:d,account:b,txConfirmationTimeout:g=12e4,chainId:p=Xt,impersonateAccount:A=mo(p),errorsAbi:P=[],pollingInterval:V=uo,...y}=e;n?.(e);let F="data"in y?y.data:void 0,G=[...be,...P,..."abi"in y&&y.abi&&Array.isArray(y.abi)?y.abi:[]],I=d;if(!m){l?.(new T({property:"wagmiConfig",value:m,expected:"Config"}),e);return}if(!(I?.account?.type==="local"))try{await ao(m,{chainId:p})}catch(S){let E=S;l?.(new x({cause:E,displayMessage:"There was an error switching to the chain."}),e);return}if(!I)try{I=await ro(m,{chainId:p})}catch(S){l?.(new x({cause:S,displayMessage:"There was an error connecting to the wallet."}),e);return}if(!I){l?.(new T({displayMessage:"There was an error connecting to the wallet.",property:"walletClient",value:I,expected:"WalletClient"}),e);return}let W=b||I.account;if(!W){l?.(new T({property:"account",value:W,expected:"Account"}),e);return}let me=typeof W=="string"?W:W.address,M=to(m,{chainId:p});try{k(M)}catch(S){l?.(S,e);return}if(A){let S=ke(p);await S.impersonateAccount({address:me}),I=no({transport:lo(S.transport.url),account:W,chain:I.chain})}let q,oe={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=M.getTransactionCount({address:me,blockTag:"latest"}).catch(()=>{}),E={account:me,to:t,address:t,chainId:p,value:a};if(r){let Q=r.map(h=>{if("abi"in h&&Array.isArray(G)&&G.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 L="params"in h?h.params:void 0;return{to:h.address,abi:h.abi,functionName:h.functionName,args:L,value:h.value??0n}}return{to:h.address,value:h.value??0n}});if(e.enableSimulateCalls){let h=await M.simulateCalls({calls:Q,account:W}),L=h.results.findIndex(_=>_.status==="failure");if(L!==-1){if(h.block.number===null)throw new T({property:"blockNumber",value:h.block.number,expected:"bigint",message:"Block number is null"});let _=h.results[L],{reason:Ve}=_.data&&_.data!=="0x"?{reason:je(io({data:_.data,abi:G}))}:ne({error:_.error,revertIfUnknown:!1,abi:G});l?.(new j({cause:_.error,txHash:q,chainId:p,reason:Ve,abi:G,input:oe,blockNumber:h.block.number}),e);return}}if(process.env.NODE_ENV==="test")throw new T({displayMessage:"Batch calls are not supported in test environment",expected:"not test",property:"NODE_ENV",value:process.env.NODE_ENV,level:"fatal"});let U=await I.sendCalls({calls:Q,account:W,forceAtomic:!0});u?.({id:U.id},e);let O=await I.waitForCallsStatus({id:U.id,pollingInterval:V,timeout:g});if(O.status==="success"){let h=O.receipts?.[0];if(!h)throw new x({message:"Call status is success but no receipt was found",cause:O,level:"error",reason:"CALL_STATUS_SUCCESS_BUT_NO_RECEIPT"});return s?.(h,e),h}throw console.error("wallet_sendCalls: Call failed",O),new j({cause:O,level:"error",input:oe,txHash:q,abi:G,chainId:p})}if(F){let[Q,U,O]=await Promise.allSettled([M.call({...E,data:F}),o??M.estimateGas({...E,data:F}),S]);if(Q.status==="rejected")throw Q.reason;let h=U.status==="fulfilled"?zt(U.value,10):Ne;q=await I.sendTransaction({data:F,to:t,account:W,gas:h,chainId:p,nonce:Qe({nonceResult:O,onWarning(L){i?.(L,e)}}),value:a}),u?.({txHash:q},e)}else if("abi"in y&&"functionName"in y){let{abi:Q,functionName:U}=y,O="params"in y?y.params:void 0,[h,L,_]=await Promise.allSettled([M.simulateContract({...E,abi:G,functionName:U,args:O,account:W}),o??M.estimateContractGas({...E,abi:G,functionName:U,args:O}),S]);if(h.status==="rejected")throw h.reason;let Ve=o??(L.status==="fulfilled"?zt(L.value,10):Ne);q=await I.writeContract({...h.value.request,chainId:p,gas:Ve,nonce:Qe({nonceResult:_,onWarning(rr){i?.(rr,e)}})}),u?.({txHash:q},e)}else{let[Q]=await Promise.allSettled([S]);q=await I.sendTransaction({chainId:p,to:t,value:a,account:W,nonce:Qe({nonceResult:Q,onWarning(U){i?.(U,e)}})}),u?.({txHash:q},e)}process.env.NODE_ENV==="test"&&await ke(p).mine({blocks:1});let z=await M.waitForTransactionReceipt({hash:q,pollingInterval:V,timeout:g,confirmations:1});if(z.status==="success")s?.(z,e);else{let Q=await Yt({publicClient:M,blockNumber:z.blockNumber,to:t,account:me,abi:G,args:"params"in y?y.params:void 0,functionName:"functionName"in y?y.functionName:void 0,value:a,data:F});process.env.NODE_ENV==="test"&&console.error("beraWriteContract: Revert reason",Q),l?.(new j({reason:Q.reason,txHash:q,receipt:z,to:t,functionName:"functionName"in y?y.functionName:void 0,input:oe,chainId:p,abi:G,blockNumber:z.blockNumber}),e)}return z}catch(S){if(S instanceof x)l?.(S,e);else if(S instanceof Error){let E=ne({error:S,revertIfUnknown:!1,abi:G});if(E&&E.rootCause instanceof oo&&"url"in E.rootCause){l?.(new Z({cause:E.rootCause,response:void 0,endpoint:{url:E.rootCause.url,type:"rpc"},statusCode:E.rootCause instanceof so?E.rootCause.status:void 0}),e);return}l?.(new j({cause:S,to:t,txHash:q,chainId:p,abi:G,functionName:"functionName"in y?y.functionName:void 0,input:oe}),e)}else l?.(new j({cause:S,txHash:q,to:t,chainId:p,functionName:"functionName"in y?y.functionName:void 0,input:oe,abi:G}),e)}}async function Pm({publicClient:e,ui:t,...r}){let{config:a}=c(r),[o,n,s,i,l,u,m,d]=await Promise.all([e.readContract({address:a.pol.beraChef,abi:v,functionName:"MAX_COMMISSION_RATE"}),e.readContract({address:a.pol.beraChef,abi:v,functionName:"commissionChangeDelay"}),e.readContract({address:a.pol.beraChef,abi:v,functionName:"rewardAllocationBlockDelay"}),e.readContract({address:a.pol.beraChef,abi:v,functionName:"maxWeightPerVault"}),e.readContract({address:a.pol.beraChef,abi:v,functionName:"maxNumWeightsPerRewardAllocation"}),e.readContract({address:a.tokens.bgt,abi:H,functionName:"dropBoostDelay"}),e.readContract({address:a.tokens.bgt,abi:H,functionName:"activateBoostDelay"}),e.readContract({address:a.pol.beraChef,abi:v,functionName:"rewardAllocationInactivityBlockSpan"})]);return{maxCommissionRate:Number(o)/1e4,boostDelay:Number(m),unboostDelay:Number(u),commissionChangeDelay:Number(n),rewardAllocationBlockDelay:Number(s),maxWeightPerVault:Number(i)/1e4,maxNumWeightsPerRewardAllocation:Number(l),rewardAllocationInactivityBlockSpan:Number(d),ui:t}}import{GetValidators as po}from"@berachain/graphql/pol/api";async function Zt({variables:e={},...t}={}){let{config:r}=c(t);return(await f("api",t).query({query:po,variables:{chain:r.bex.chainName,...e}})).data}import{isAddressEqual as fo}from"viem";async function km({allocation:e}){let t=await Re({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=>fo(o.address,a.receiver))}))}import{GetValidator as go}from"@berachain/graphql/pol/api";async function Im({id:e,...t}){let{config:r}=c(t);return(await f("api",t).query({query:go,variables:{id:e,chain:r.bex.chainName}})).data}import{GetValidatorBlockStats as bo}from"@berachain/graphql/pol/subgraph";async function Wm({pubKey:e,first:t=1,...r}){let a=f("pol.subgraph",r);try{return(await a.query({query:bo,variables:{pubKey:e,first:t}})).data}catch(o){throw console.error("GetValidatorBlockStats:",o),o}}function ae(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 yo(e,t){return e.start.blockNumber===t.start.blockNumber&&e.weights.every((r,a)=>r.percentage===t.weights[a].percentage)}async function Lm({client:e,pubKey:t,...r}){let{config:a}=c(r);try{let[o,n]=await Promise.all([e.readContract({address:a.pol.beraChef,abi:v,functionName:"getActiveRewardAllocation",args:[t]}),e.readContract({address:a.pol.beraChef,abi:v,functionName:"getSetActiveRewardAllocation",args:[t]})]),[s,i]=await Promise.all([o.startBlock!==0n?e.getBlock({blockNumber:BigInt(o.startBlock)}):{timestamp:0},n.startBlock!==0n?e.getBlock({blockNumber:BigInt(n.startBlock)}):{timestamp:0}]),l=ae(o,Number(s.timestamp)),u=ae(n,Number(i.timestamp)),m=!1;return u.start.blockNumber===0?m=!0:m=!yo(u,l),{activeRewardAllocation:l,setRewardAllocation:u,isBaseline:m,isNeverSet:u?.start.blockNumber===0}}catch(o){throw console.log("getValidatorRewardAllocation:",o),o}}function jm(e){return e.start.blockNumber===0}async function Km({client:e,...t}){let{config:r}=c(t),a=await e.readContract({address:r.pol.beraChef,abi:v,functionName:"getDefaultRewardAllocation",args:[]});return ae({...a,startBlock:0n},0)}import{GetValidatorByAccount as Ao}from"@berachain/graphql/pol/subgraph";async function Zm({account:e,...t}){try{return(await f("pol.subgraph",t).query({query:Ao,variables:{account:e}})).data}catch(r){throw console.error("getManagedValidatorByAccount:",r),r}}async function tp({client:e,valPubKey:t}){return 5614}import{GetUserValidatorInformation as ho}from"@berachain/graphql/pol/subgraph";async function er({account:e,block:t,...r}){return await f("pol.subgraph",r).query({query:ho,variables:{address:e.toLowerCase(),block:t}})}import{formatEther as We}from"viem";async function tr({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[n,s,i]=await Promise.all([r.readContract({address:o.tokens.bgt,abi:H,functionName:"boosted",args:[e,t]}),r.readContract({address:o.tokens.bgt,abi:H,functionName:"boostedQueue",args:[e,t]}),r.readContract({address:o.tokens.bgt,abi:H,functionName:"dropBoostQueue",args:[e,t]})]);return{pubkey:t,activeBoostAmount:We(n),queuedBoostAmount:We(s[1]),queuedDropBoostAmount:We(i[1]),queuedBoostStartBlock:s[0],queuedDropBoostStartBlock:i[0],hasPendingBoosts:Number(s[1])>0||Number(i[1])>0,hasActiveBoosts:Number(n)>0}}async function gp({account:e,publicClient:t,chain:r,...a}){let{config:o}=c(a),n=r??o.bex.chainName,s=await er({account:e}),[i,l]=await Promise.all([Zt({variables:{chain:n,where:{idIn:s.data.userValidatorInformations.map(u=>u.validator.id)}}}),t&&tt({lastBlockTimestamp:s.data._meta?.block.timestamp,blockTime:o.averageBlockTime})?Promise.all(s.data.userValidatorInformations.map(u=>tr({account:e,pubkey:u.validator.publicKey,publicClient:t}))):void 0]);return i?.validators.validators.map(u=>{let m=l?l.find(d=>d.pubkey.toLowerCase()===u.pubkey.toLowerCase()):s.data.userValidatorInformations.find(d=>d.validator.id.toLowerCase()===u.id.toLowerCase());if(!m)throw new Error("User deposited not found");return{...u,userBoosts:{pubkey:"pubkey"in m?m.pubkey:m.validator.publicKey,activeBoostAmount:m?.activeBoostAmount,queuedBoostAmount:m?.queuedBoostAmount,queuedBoostStartBlock:Number(m?.queuedBoostStartBlock),queuedDropBoostAmount:m?.queuedDropBoostAmount,queuedDropBoostStartBlock:Number(m?.queuedDropBoostStartBlock),hasPendingBoosts:Number(m?.queuedBoostAmount)>0||Number(m?.queuedDropBoostAmount)>0,hasActiveBoosts:Number(m?.activeBoostAmount)>0}}})}var wo=[{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:R(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:R(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:R(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:R(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:R(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:R(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:R(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 Ap(e){return await new Promise(t=>setTimeout(t,2e3)),e==="0x4C368fFE3650379d6318C8d4630bc51f8Ad12bB6"?wo:[]}import{GetValidatorAnalytics as Co}from"@berachain/graphql/pol/subgraph";async function Bp({pubkey:e,dayRange:t,...r}){return(await f("pol.subgraph",r).query({query:Co,variables:{pubKey:e,timestamp:Xe(t).toString()}})).data}async function Sp({client:e,pubKey:t,...r}){let{config:a}=c(r),o=await e.readContract({address:a.pol.beraChef,abi:v,functionName:"getValCommissionOnIncentiveTokens",args:[t]});return Number(o??0n)/1e4}var kp=(e,t,r)=>{if(!t||!e)return 0;let a=ie(1)/r;return(t?a*(Number(e.dynamicData?.stakedBeraAmount)/t):0)*Number.parseFloat(e.dynamicData?.rewardRate??"0")};async function Dp({client:e,pubKey:t,...r}){let{config:a}=c(r);try{return await e.readContract({address:a.depositContract,abi:fe,functionName:"getOperator",args:[t]})}catch(o){throw console.log("getValidatorOperatorAddress:",o),o}}async function Qp({client:e,pubKey:t,...r}){let{config:a}=c(r),o=await e.readContract({address:a.pol.beraChef,abi:v,functionName:"getValQueuedCommissionOnIncentiveTokens",args:[t]});return{blockNumberLast:o.blockNumberLast,commissionRate:Number(o.commissionRate)/1e4}}async function Mp({client:e,pubKey:t,...r}){let{config:a}=c(r);try{return await e.readContract({address:a.depositContract,abi:fe,functionName:"queuedOperator",args:[t]})}catch(o){throw console.log("getValidatorQueuedOperatorAddress:",o),o}}async function $p({client:e,pubKey:t,...r}){let{config:a}=c(r);try{let o=await e.readContract({address:a.pol.beraChef,abi:v,functionName:"getQueuedRewardAllocation",args:[t]});return ae(o,0)}catch(o){throw console.log("getValidatorQueuedRewardAllocation:",o),o}}function Po(e){return e?.rewardAllocationWeights?.reduce((t,r)=>{if(!r)return t;let a=r.receivingVault?.activeIncentives.filter(o=>Number(o.remainingAmount)>0).reduce((o,n)=>{let s=Number(n.remainingAmountUsd)/Number(n.remainingAmount);return o+Number(n.incentiveRate)*s},0)??0;return t+a*r.percentage},0)}function Kp({validator:e,bgtPrice:t}){let r=Number(e.dynamicData?.activeBoostAmount??0),a=Po(e);return!a||!r?0:a*Number(e.dynamicData?.lastDayDistributedBGTAmount??0)*365/(r*t)}export{Ro as a,ko as b,f as c,pr as d,mt as e,rn as f,fn as g,hn as h,xn as i,ft as j,In as k,Un as l,Jn as m,Kn as n,ei as o,oi as p,re as q,ci as r,Be as s,fi as t,yi as u,vi as v,ki as w,xt as x,Wi as y,Li as z,$i as A,zi as B,vt as C,Fe as D,Rt as E,vs as F,ks as G,Ds as H,Qs as I,ga as J,Ls as K,Js as L,Ys as M,rl as N,Nt as O,ml as P,kt as Q,vl as R,Gl as S,Il as T,Pa as U,Ul as V,Ll as W,Tt as X,Re as Y,Cc as Z,qt as _,Vc as $,Fc as aa,Qc as ba,_c as ca,tu as da,iu as ea,mu as fa,gu as ga,wu as ha,vu as ia,de as ja,Qu as ka,Lu as la,ju as ma,Jt as na,ld as oa,gd as pa,wd as qa,xd as ra,Td as sa,Ed as ta,Wd as ua,Ld as va,Xa as wa,Kd as xa,mo as ya,ym as za,Pm as Aa,Zt as Ba,km as Ca,Im as Da,Wm as Ea,ae as Fa,yo as Ga,Lm as Ha,jm as Ia,Km as Ja,Zm as Ka,tp as La,tr as Ma,gp as Na,Ap as Oa,Bp as Pa,Sp as Qa,kp as Ra,Dp as Sa,Qp as Ta,Mp as Ua,$p as Va,Po as Wa,Kp as Xa};
1
+ import{a as pe,b as Ue,c as Oe,d as X,e as Me,f as B,g as K,h as Le,i as _e,j as He,k as fe,l as v,m as H,n as C,o as ge,p as D,q as Je,r as $e}from"./chunk-AHAZC5K3.mjs";import{a as ee,b as $,c as k,d as he,f as at,g as j}from"./chunk-YKNKCICU.mjs";import{C as te,E as ot,G as nt,L as ke,N as it,a as ye,b as Ke,c as Ye,d as R,e as Xe,i as Ze,j as et,k as tt,q as ie,r as we,w as Ne,x as rt}from"./chunk-B4M3O4CT.mjs";import{a as c,b as Ae,d as ze,e as N}from"./chunk-XX77QPIR.mjs";import{a as Z}from"./chunk-5UFI7X4U.mjs";import{c as be,d as je,e as ne,f as x,g as T}from"./chunk-5GPS724E.mjs";import{formatEther as rr}from"viem";async function vo({sharesAmount:e,vaultAddress:t,publicClient:r}){let a=await r.readContract({address:t,abi:pe,functionName:"convertToAssets",args:[e]});return{raw:a,formatted:rr(a)}}import{formatEther as ar}from"viem";async function No({vaultAddress:e,publicClient:t}){let r=await t.readContract({address:e,abi:pe,functionName:"maxDeposit",args:[e]});return ar(r)}import{InMemoryCache as lr}from"@apollo/client";import{HttpLink as cr}from"@apollo/client/link/http";import{getUriFromLink as ct}from"@berachain/config";import{currentDapp as lt}from"@berachain/config/internal";import ur from"@berachain/graphql/dex/api";import{ApolloClient as or,ServerError as nr}from"@apollo/client";import*as st from"@sentry/nextjs";import{appConfig as ir}from"@berachain/config/internal";var Ce=class extends or{url;constructor(t){super(t),this.url=t.url}async query(t){let r=sr(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 n=await st.startSpan({name:`GraphQL ${r}`,op:"BeraApolloClient.query",attributes:o},async()=>super.query(t));if(n.error||n.data===void 0)throw new x({level:"fatal",tags:o,message:"Bera Apollo Client: No data returned from query, but error should be thrown since errorPolicy is none"});return{data:n.data}}catch(n){throw!ir.env.isProduction&&console.error("BeraApolloClient error",n),nr.is(n)?new Z({response:n.response,cause:n,statusCode:n.statusCode,endpoint:a,tags:o}):n instanceof TypeError?new Z({level:"fatal",reason:"TypeError",response:n,cause:n,endpoint:a,tags:o}):new Z({response:n,tags:o,cause:n,endpoint:a})}}};function sr(e){return e.definitions.find(r=>r.kind==="OperationDefinition")?.name?.value}import{gql as mr}from"@apollo/client";function dr(e){if(!lt)return e;let t=typeof e=="string"?void 0:e.headers;return{uri:ct(e),headers:{...t,"x-graphql-client-name":`berachain.${lt}.${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=ct(e),o=typeof e=="string"?void 0:e.headers;return new Ce({url:a,link:new cr({uri:a,headers:o}),defaultOptions:{query:{errorPolicy:"none",fetchPolicy:"no-cache"}},cache:new lr(r),ssrMode:t})}function f(e,{...t}){let{config:r}=c(t);switch(e){case"api":return Y(dr(r.api),{inMemoryCacheOptions:{possibleTypes:ur.possibleTypes}});case"bend.whisk":if(!r.bend.whiskApi)throw new x({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{BigNumber as se}from"bignumber.js";import{isAddress as ut,zeroAddress as pr}from"viem";var dt=class e{static PATH_NOT_FOUND_REASON="NO_SWAP_PATHS";notFoundMessages=[];config;chainId;constructor(t={}){let{config:r,chainId:a}=c(t);this.config=r,this.chainId=a}url="";parseAddresses(t,r){if(!ut(t)||!ut(r))throw new x({message:`Invalid address: ${t} or ${r}`,level:"error"});return{tokenInAddress:N(t,"BERA")?this.config.tokens.wbera:t,tokenOutAddress:N(r,"BERA")?this.config.tokens.wbera:r,isTokenInNative:N(t,"BERA"),isTokenOutNative:N(r,"BERA")}}getAmountAfterFees(t,r){if(r===void 0)throw new x({message:"aggregatorsFeeBps is required",level:"error"});let a=new se(t).times(r).dividedBy(1e4).toFixed(0,se.ROUND_DOWN);return new se(t).minus(a).toFixed(0,se.ROUND_DOWN)}getInputData({tokenIn:t,amountIn:r,isNative:a,isPermit2Approval:o=!1,permit2SpenderAddress:n=pr}){return{tokenIn:t,amountIn:BigInt(r),isNative:a,isPermit2Approval:o,permit2SpenderAddress:n}}getMinAmountOut(t,r){if(r===void 0)throw new x({message:"slippage is required",level:"error"});let a=new se(t).times(1-r/100);return a.isNaN()||a.isZero()?0n:BigInt(a.toFixed(0))}checkChainSupport(){if(!this.supportedChains.includes(this.chainId))throw new x({message:`${this.name} is not supported on chain ${this.chainId}`,level:"error"})}async fetch(t,r){try{return await Ke({url:t,name:this.name,type:this.type},{method:"GET",headers:{"Content-Type":"application/json"},...r})}catch(a){let o=ee({cause:a});throw this.notFoundMessages.some(n=>o.message.includes(n))&&(o.reason=e.PATH_NOT_FOUND_REASON),o}}};import{API_CHAIN_NAMES as fr,BALANCER_QUERIES as gr,BALANCER_RELAYER as br,BalancerApi as tn,CHAINS as yr,COMPOSABLE_STABLE_POOL_FACTORY as Ar,NATIVE_ASSETS as hr,Token as wr,VAULT as Cr,WEIGHTED_POOL_FACTORY_BALANCER_V2 as Pr}from"@berachain-foundation/berancer-sdk";import{zeroAddress as Ge}from"viem";import{berachain as mt,berachainBepolia as Br}from"viem/chains";import{chainConfigs as xr}from"@berachain/config/internal";for(let e of Object.keys(xr)){let{config:t,chainId:r}=c({chainId:Number(e)});fr[r]=t.bex.chainName,yr[r]=r===mt.id?mt:Br,br[r]=t.bex.relayer,Cr[r]=t.bex.vault,gr[r]=t.bex.queries,Pr[r]=Ge,Ar[r]=Ge;let a=new wr(r,Ge,Ae.decimals,Ae.name,Ae.symbol,t.tokens.wbera);hr[r]=a}import{GetPools as vr}from"@berachain/graphql/dex/api";import{GqlPoolOrderBy as Rr,GqlPoolOrderDirection as Sr}from"@berachain/graphql/pol/api";async function pn({textSearch:e,chain:t,first:r,orderBy:a,orderDirection:o,skip:n,fetchPolicy:s,userAddress:i,blacklistedPoolIds:l,...u}={}){let{config:m}=c(u),b=await f("api",u).query({query:vr,variables:{textSearch:e,chain:t??m.bex.chainName,first:r,orderBy:a??Rr.TotalLiquidity,orderDirection:o??Sr.Desc,skip:n,userAddress:i,blacklistedPoolIds:l},fetchPolicy:s});return{pools:b.data.poolGetPools??[],count:b.data.count??0}}import{GetPool as Vr}from"@berachain/graphql/dex/api";async function An({poolId:e,account:t,...r}){let{config:a}=c(r),s=(await f("api",r).query({query:Vr,variables:{id:e,userAddress:t,chain:a.bex.chainName},fetchPolicy:"no-cache"})).data.poolGetPool;if(!s)throw new Error(`Pool not found for id: ${e} and user ${t}`);return s}import{GetGlobalLiquidityAndSwapVolume as Nr}from"@berachain/graphql/dex/api";async function Bn(e={}){let{config:t}=c(e);return(await f("api",e).query({query:Nr,variables:{chain:t.bex.chainName}})).data}import{stablePoolAbi_V3 as Gr,vaultV2Abi as Tr,weightedPoolFactoryAbi_V3 as ft,weightedPoolV4Abi_V2 as Pe}from"@berachain-foundation/berancer-sdk";import{erc20Abi as gt,formatEther as bt,formatUnits as Fr,isAddress as Dr,isHex as Ir}from"viem";import{GqlPoolType as yt}from"@berachain/graphql/pol/api";import{weightedPoolV4Abi_V2 as kr}from"@berachain-foundation/berancer-sdk";async function pt({publicClient:e,poolAddress:t}){let r=kr,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]}}async function Dn({poolId:e,publicClient:t,...r}){let{config:a}=c(r),o=e.slice(0,42);if(!Dr(o)||!Ir(e))throw new T({property:"poolId",value:e,expected:"Hex"});try{let[n,s,i,l,u,m,d,b,g]=await Promise.all([t.readContract({address:o,abi:gt,functionName:"name"}),t.readContract({address:a.bex.vault,abi:Tr,functionName:"getPoolTokens",args:[e]}),t.readContract({address:o,abi:gt,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:ft,functionName:"isPoolFromFactory",args:[o]}),t.readContract({address:a.bex.factories.weighted,abi:ft,functionName:"isPoolFromFactory",args:[o]}),pt({publicClient:t,poolAddress:o})]),p=Number(m),A=JSON.parse(u),P,V,y;if(d?[P,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"&&(V=await t.readContract({address:o,abi:Pe,functionName:"getNormalizedWeights"})),!d&&!b)throw new Error(`Pool ${o} is not a valid BEX pool`);return{name:n,address:o,id:e,poolTokens:[s[0],s[1].map(String),Number(s[2])],totalSupply:Fr(P??i,p),swapFee:bt(l),decimals:p,weights:V?.map(F=>bt(F)),version:A,factory:d?a.bex.factories.composableStable:a.bex.factories.weighted,type:d?yt.Stable:yt.Weighted,amplificationParameter:y?[Number(y[0]),y[1],Number(y[2])]:void 0,pausedState:g}}catch(n){throw ee({cause:n})}}import{GetPoolEvents as Er}from"@berachain/graphql/dex/api";async function Wn({poolId:e,typeInArray:t,...r}){let{config:a}=c(r);return(await f("api",r).query({query:Er,variables:{poolId:e,typeIn:t,chain:a.bex.chainName}})).data}import{isHex as qr}from"viem";import{GetPoolHistoricalData as Qr}from"@berachain/graphql/dex/api";async function Hn({poolId:e,chain:t,...r}){if(!e||!qr(e))throw new T({property:"poolId",value:e,expected:"hex string"});let a=f("api",r),{data:o}=await a.query({query:Qr,variables:{poolId:e,chain:t}});return o.poolGetSnapshots}import{mapPoolType as Wr}from"@berachain-foundation/berancer-sdk";var jn=e=>({type:Wr(e.type),protocolVersion:e.protocolVersion,tokens:e.tokens.map(t=>({...t,address:t.address})),id:e.id,address:e.address});import{isHex as Ur}from"viem";import{GetSubgraphPool as Or}from"@berachain/graphql/dex/subgraph";async function Zn({poolId:e,...t}){if(!Ur(e))throw new Error("poolId is not a valid hex string");return(await f("bex.subgraph",t).query({query:Or,variables:{id:e}})).data.pool}async function ai({publicClient:e,...t}){let{config:r}=c(t);return(await e.readContract({address:r.bex.vault,abi:Ue,functionName:"getPausedState"}))[0]}import{isAddress as At,isHex as Mr}from"viem";var re=({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 s=BigInt(t);if(e.startsWith("uint")&&s<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 s=new URL(a);return t.startsWith(s.toString())?null:"Must be a berachain forum link";case"address":return At(t,{strict:!0})?null:"Invalid address";case"hex":return Mr(t,{strict:!0})?null:"Invalid address";case"abi":try{JSON.parse(t)}catch{return"Invalid ABI"}return null;case"action":return At(t,{strict:!0})?null:"Invalid address";case"tuple":if(typeof t=="object"&&Array.isArray(o)){let i={};for(let l of o)i[l.name]=re({fieldOrType:l.type,value:t[l.name],components:l.components});return Object.values(i).every(l=>l===null)?null:i}return null;case"tuple[]":if(Array.isArray(t)){let i=t.map(l=>re({fieldOrType:"tuple",value:l,components:o}));return i.every(l=>l===null)?null:i}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 Lr=!1,li=[w.Active,w.PendingQueue,w.PendingExecution,w.Defeated,w.QuorumNotReached];function Be(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:Lr&&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 _r,SearchProposals as Hr}from"@berachain/graphql/governance";async function pi({where:e,orderBy:t,orderDirection:r,offset:a=0,perPage:o=20,text:n,...s}){try{if(o>1e3)throw new Error("perPage must be less than 1000");let i=f("governance.subgraph",s),[l]=await Promise.all([n?i.query({query:Hr,variables:{offset:a,limit:o,where:e,text:n}}):i.query({query:_r,variables:{offset:a,limit:o,where:e,orderBy:t,orderDirection:r}})]);return l.data.proposals.map(u=>({...u,status:Be(u)}))}catch(i){throw console.error("getAllProposals:",i),i}}var bi=(e,t)=>{let r={};return r.title=re({fieldOrType:"title",value:e.title}),r.description=re({fieldOrType:"description",value:e.description}),r.forumLink=re({fieldOrType:"forumLink",value:e.forumLink,baseUrl:t.forumLink}),r};import{decodeFunctionData as wt,erc20Abi as Jr,pad as $r,toFunctionSignature as jr,trim as ht}from"viem";import{appConfig as Kr,defaultChainId as Yr}from"@berachain/config/internal";function zr(e){return e.some(t=>t.name==="implementation"||t.name==="proxyType"||t.type==="constructor"&&t.inputs?.[0]?.name==="implementation")}async function Ct({contractAddress:e,chainId:t,publicClient:r}){let a=`https://api.etherscan.io/v2/api?module=contract&action=getabi&address=${e}&apikey=${Kr.apiKeys.private.etherscan}&chainId=${t}`,o=await fetch(a,{next:{revalidate:tt(1)}});if(!o.ok)throw new Error(`Failed to fetch ABI: ${o.statusText}`);let n=await o.json();if(n.status==="0")throw new Error(n.result);let s=JSON.parse(n.result);if(!zr(s))return s;let i=await r.getStorageAt({address:e,slot:"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"});if(!i||ht(i)==="0x00")return s;let l=$r(ht(i),{size:20});return Ct({contractAddress:l,chainId:t,publicClient:r})}async function Xr({address:e,callData:t,knownAbi:r,chainId:a,publicClient:o}){try{if(wt({data:t,abi:r}))return r}catch{}try{return await Ct({contractAddress:e,chainId:a,publicClient:o})}catch{}}function Zr(e,t){try{return wt({data:e,abi:t})}catch{return}}function ea(e,t){return e.find(r=>r.type==="function"&&r.name===t)}function ta(e){if(e)try{return jr(e)}catch(t){console.error(t)}}async function Bi({address:e,callData:t,chainId:r=Yr,publicClient:a}){let o=[...v,...C,...Jr],n=await Xr({address:e,callData:t,knownAbi:o,chainId:r,publicClient:a}),s=Zr(t,n);if(!n||!s)return{args:[]};let i=ea(n,s.functionName),l=ta(i);return{abiItem:i,functionSignature:l,functionName:s.functionName,args:s.args}}import{GetProposal as ra}from"@berachain/graphql/governance";async function Vi({proposalId:e,...t}){let a=await f("governance.subgraph",t).query({query:ra,variables:{id:e}});if(a.data.proposal)return{...a.data.proposal,status:Be(a.data.proposal)}}import{parseEventLogs as oa}from"viem";import{ProposalStatus as na}from"@berachain/graphql/governance";import Pt from"gray-matter";var aa=e=>{let t=/#(?:([\w-]+)# )?(.+)\n([\s\S]*)/,r=e.match(t);if(r){let a=r[1]||null,o=r[2],n=r[3].replace(`
2
+ `,"<br />");return{type:a,title:o,content:n}}throw new Error("Invalid proposal body")},Bt=e=>{if(!e)return{isFrontMatter:!1,data:{title:"Loading..."},content:"",matter:"",language:"",orig:"",stringify:()=>""};let t=e?.description??"";if(Pt.test(t))return{...Pt(t),isFrontMatter:!0};try{let r=aa(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}}};async function qi(e){k(e.publicClient);let t;"tx"in e?t=e.tx:t=await e.publicClient.getTransactionReceipt({hash:e.txHash});let r=t?.logs?oa({abi:Oe,logs:t.logs,eventName:"ProposalCreated"})?.at(0):void 0;if(!t||!r)return null;let a=await e.publicClient.getBlock({blockNumber:t.blockNumber}),o=Bt({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:na.Pending,quorum:null,topics:o.data.topics,votes:[],executableCalls:r?.args.targets.map((n,s)=>({__typename:"ExecutableCall",id:`${t.transactionHash}-${s}`,target:n,value:String(r?.args.values[s]),calldata:r?.args.calldatas[s]})),timelock:void 0}}import{GetProposalVotes as ia}from"@berachain/graphql/governance";async function Oi({variables:e,...t}){return f("governance.subgraph",t).query({query:ia,variables:e})}import{Aggregation_Interval as sa,GetChartData as la}from"@berachain/graphql/honey";async function Hi({days:e,...t}){return(await f("honey.subgraph",t).query({query:la,variables:{interval:sa.Day,first:e}})).data}async function Ki({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((s,i,l)=>Object.assign(s,{[i.address]:o[l]}),{})}catch(o){throw console.log(o),o}}import{parseEther as Rt}from"viem";import{erc20Abi as Te}from"viem";async function xt({address:e,publicClient:t}){try{if(!t)throw new Error("Public client not found");let[r,a,o]=await Promise.all([t.readContract({address:e,abi:Te,functionName:"decimals"}),t.readContract({address:e,abi:Te,functionName:"name"}),t.readContract({address:e,abi:Te,functionName:"symbol"})]),n={address:e,decimals:r,name:a,symbol:o};if(typeof n.decimals!="number"||typeof n.name!="string"||typeof n.symbol!="string")throw new Error(`Invalid ERC20 token. Address: ${e}`);return n}catch(r){throw console.error(r),ee({cause:r})}}async function Fe({client:e,tokenData:t,preferredCollateralOrder:r,...a}){let{config:o}=c(a),[n,s]=await Promise.all([e.readContract({address:o.honey.factory,abi:B,functionName:"numRegisteredAssets"}),e.readContract({address:o.honey.factory,abi:B,functionName:"referenceCollateral"})]),i=[];for(let b=0;b<n;b++)i.push(e.readContract({address:o.honey.factory,abi:B,functionName:"registeredAssets",args:[BigInt(b)]}));let l=await Promise.all(i),m=(await Promise.all(l.map(b=>{let g=t?.find(p=>N(p,b));return g||xt({address:b,publicClient:e})}))).filter(b=>!!b).sort((b,g)=>l.indexOf(b.address)-l.indexOf(g.address)).map((b,g)=>({...b,order:g}));if(r?.length){let b=[];for(let g of r){let p=m.find(A=>N(A.address,g.address));p&&(b.push(p),m.splice(m.indexOf(p),1))}m.unshift(...b)}let d=m.find(b=>N(b,s));if(!m)throw new Error("Collateral tokens not found");if(!d)throw new Error("Reference collateral address not found");return{collaterals:m,referenceCollateral:d}}import{parseEther as ca}from"viem";async function le({client:e,asset:t,amount:r,...a}){let{config:o}=c(a);try{let[n,s]=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:n,abi:X,functionName:"balanceOf",args:[o.honey.factory]})+ca(r??"0")-s}catch(n){throw console.log(n),n}}import{parseUnits as ua}from"viem";async function vt({client:e,collateral:t,latestPrices:r,isPythWrapperEnabled:a,...o}){let{config:n}=c(o);try{let s=e.readContract({address:n.honey.factory,abi:B,functionName:"isBadCollateralAsset",args:[t.address]}),i=e.readContract({address:n.honey.factory,abi:B,functionName:"isPegged",args:[t.address]});if(a&&r){let m=r.prices.map(d=>ua(d,18));i=e.readContract({address:n.honey.reader,abi:K,functionName:"isPeggedWithPrice",args:[t.address,m[0]]})}let[l,u]=await Promise.all([s,i]);return{isBlacklisted:l,isDepegged:!u}}catch(s){throw console.log(s),s}}var da=Rt("1");async function Bs({client:e,asset:t,amount:r,isMint:a,isPythWrapperEnabled:o,latestPrices:n,...s}){let{config:i}=c(s);try{let l=await e.readContract({address:i.honey.factory,abi:B,functionName:"globalCap"});if(l>=da)return!1;let[{collaterals:u},m]=await Promise.all([Fe({client:e}),ma({client:e,asset:t,amount:r,latestPrices:n,isPythWrapperEnabled:o})]);if(!m)return;for(let d in m)if((a&&N(u[d],t)||!a&&N(u[d],t))&&m[d]>l-we)return!0;return!1}catch(l){throw console.log(l),l}}async function ma({client:e,asset:t,amount:r,latestPrices:a,isPythWrapperEnabled:o}){let{collaterals:n}=await Fe({client:e}),s=0n,i=[];for(let l of n){let u=await vt({client:e,collateral:t,latestPrices:a,isPythWrapperEnabled:o});if(u?.isBlacklisted||u?.isDepegged)continue;let m=await le({client:e,asset:l.address,amount:N(l,t)?r:"0"});m&&(s+=m,i.push(m))}if(s===0n)return i;for(let l in n)i[l]=Rt(i[l].toString())/s;return i}import{formatUnits as xe}from"viem";async function Vs({client:e,collateralList:t,...r}){let{config:a}=c(r);try{let o={mint:[],redeem:[]};for(let l of t)o.mint.push(e.readContract({address:a.honey.factory,abi:B,functionName:"mintRates",args:[l.address]})),o.redeem.push(e.readContract({address:a.honey.factory,abi:B,functionName:"redeemRates",args:[l.address]}));let[n,s,i]=await Promise.all([Promise.all(o.mint),Promise.all(o.redeem),e.readContract({address:a.honey.factory,abi:B,functionName:"getWeights"})]);return t.reduce((l,u)=>{let m=t.indexOf(u);return l.single[u.address]={mintFee:1-+xe(n[m],18),redeemFee:1-+xe(s[m],18)},l.basket.mintFee+=l.single[u.address].mintFee*+xe(i[m],18),l.basket.redeemFee+=l.single[u.address].redeemFee*+xe(i[m],18),l},{single:{},basket:{mintFee:0,redeemFee:0}})}catch(o){throw console.log(o),o}}import{GetGlobalData as pa}from"@berachain/graphql/honey";async function Ts({...e}={}){return(await f("honey.subgraph",e).query({query:pa})).data}async function Es({client:e,...t}){let{config:r}=c(t),a=r.honey.token;return await e.readContract({address:a,abi:Me,functionName:"paused"})}import{parseUnits as St}from"viem";var fa=(l=>(l.Mint="previewMintHoney",l.MintWithPrice="previewMintHoneyWithPrices",l.RequiredCollateral="previewMintCollaterals",l.RequiredCollateralWithPrice="previewMintCollateralsWithPrices",l.Redeem="previewRedeemCollaterals",l.RedeemWithPrice="previewRedeemCollateralsWithPrices",l.HoneyToRedeem="previewRedeemHoney",l.HoneyToRedeemWithPrice="previewRedeemHoneyWithPrices",l))(fa||{});async function Os({client:e,collateral:t,collateralList:r,amount:a,method:o,latestPrices:n,isPythWrapperEnabled:s,...i}){let{config:l}=c(i);try{let u=o==="previewMintHoney"||o==="previewRedeemHoney"||o==="previewMintHoneyWithPrices"||o==="previewRedeemHoneyWithPrices",m=St(a,u?t.decimals:18),d,b=[t.address,m];if(s&&n){let p=n.prices.map(A=>St(A,18));b=[t.address,m,p]}if(u){let p=await e.readContract({address:l.honey.reader,abi:K,functionName:o,args:b});d={collaterals:p[0],honey:p[1]}}else d={collaterals:await e.readContract({address:l.honey.reader,abi:K,functionName:o,args:b}),honey:m};let g=r.reduce((p,A)=>{let P=A.order;return A.address===t.address&&d.collaterals[P]===BigInt(0)?Object.assign(p,{[A.address]:d.collaterals[0]}):Object.assign(p,{[A.address]:d.collaterals[P]})},{});return g[t.address]===BigInt(0)&&(g[t.address]=d.collaterals[0]),{collaterals:g,honey:d.honey}}catch(u){throw console.log("error",u),u}}async function _s({pythOracle:e,publicClient:t}){return await t.readContract({address:e,abi:Le,functionName:"pythOracle"})}async function js({publicClient:e,factory:t,...r}){let{config:a}=c(r);return await e.readContract({address:t??a.honey.factory,abi:B,functionName:"priceOracle"})}import{formatUnits as ga}from"viem";async function el({client:e,collateralList:t,honeyFactoryAddress:r,...a}){let{config:o}=c(a),n=r??o.honey.factory;try{return await Promise.all(t.map(async i=>{let l=await e.readContract({address:o.honey.factory,abi:B,functionName:"vaults",args:[i.address]}),[u,m,[d,b]]=await Promise.all([e.readContract({address:l,abi:X,functionName:"balanceOf",args:[n]}),e.readContract({address:n,abi:B,functionName:"collectedAssetFees",args:[i.address]}),e.readContract({address:l,abi:X,functionName:"custodyInfo"})]),g=await e.readContract({address:l,abi:X,functionName:"convertToAssets",args:[u-m]});return{address:i.address,balance:g.toString(),formattedBalance:ga(g,i.decimals),vault:d?b:l}}))}catch(s){throw console.log(s),s}}import{HermesClient as ba}from"@pythnetwork/hermes-client";import{formatUnits as ya}from"viem";var Aa="https://hermes.pyth.network";async function Vt({priceFeedId:e}){let r=await new ba(Aa,{}).getLatestPriceUpdates(e,{encoding:"hex",parsed:!0});return{calldata:r.binary.data.map(a=>`0x${a}`),prices:r.parsed?.flatMap(a=>ya(BigInt(a.price.price),a.price.expo*-1))??[]}}import{parseEther as ha}from"viem";async function ul({client:e,asset:t,amount:r,isMint:a,referenceCollateral:o,...n}){let{config:s}=c(n);if(t===o.address)return!1;try{let[i]=await Promise.all([e.readContract({address:s.honey.factory,abi:B,functionName:"relativeCap",args:[t]})]),[l,u]=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 u===0n?l!==0n:ha((l??0n).toString())/(u??0n)>=i-we}catch(i){throw console.log(i),i}}import{parseUnits as kt}from"viem";async function Nt({client:e,priceFeedId:t,...r}){let{config:a}=c(r);try{return await e.readContract({address:a.external.pyth,abi:Je,functionName:"getUpdateFee",args:[t]})}catch(o){throw console.error("getPythUpdateFee",o),o}}var Bl=async({state:e,account:t,publicClient:r,priceFeedMap:a,collateralList:o,isPythWrapperEnabled:n,...s})=>{let{config:i}=c(s),l=ze(s),{actionType:u,fromAmount:m,collaterals:d,isBasketModeEnabled:b}=e,g=n?i.honey.pythWrapper:i.honey.factory,p=o.map(A=>A.address);if(t&&m[0]&&p.length){let A=u==="mint";if(n&&r&&a){let y=(await Vt({priceFeedId:Object.values(a)})).calldata,F;try{F=await Nt({client:r,priceFeedId:y})}catch{F=rt(d.length)}let G=[y,d[0]?.address,kt(m[0],(A?d[0]?.decimals:l?.decimals)??18),t,!!b];return{address:g,abi:He,functionName:A?"mint":"redeem",params:G,value:F}}let P=[d[0]?.address,kt(m[0],(A?d[0]?.decimals:l?.decimals)??18),t,!!b];return{address:g,abi:B,functionName:A?"mint":"redeem",params:P}}throw new Error("Something went wrong while creating the Honey swap payload")};import{parseUnits as wa}from"viem";async function Nl({client:e,isMint:t,collateralList:r,latestPrices:a,isPythWrapperEnabled:o,...n}){let{config:s}=c(n);if(o&&a){if(r.length===0)return;let l=a.prices.map(m=>wa(m,18));return await e.readContract({address:s.honey.reader,abi:K,functionName:"isBasketModeEnabledWithPrices",args:[t,l]})}return await e.readContract({address:s.honey.factory,abi:B,functionName:"isBasketModeEnabled",args:[t]})}async function Fl({block:e,currentBlock:t,blockTime:r,publicClient:a}){if($(e,"block"),k(a),t>e){let n=await a.getBlock({blockNumber:BigInt(e),includeTransactions:!1});return{timestamp:Number(n.timestamp)}}return{timestamp:R(Date.now())+r*(Number(e)-Number(t))}}import{formatUnits as De}from"viem";var Ca=(a=>(a.Duration="duration",a.TargetRate="targetRate",a.TargetApr="targetApr",a))(Ca||{});async function Ql(e,t){let[r,a,o,n,s,i]=await Promise.all([t.readContract({address:e,abi:C,functionName:"rewardsDuration"}),t.readContract({address:e,abi:C,functionName:"rewardVaultManager"}),t.readContract({address:e,abi:C,functionName:"rewardRate"}),t.readContract({address:e,abi:C,functionName:"periodFinish"}),t.readContract({address:e,abi:C,functionName:"targetRewardsPerSecond"}),t.readContract({address:e,abi:C,functionName:"minRewardDurationForTargetRate"})]),l=o*(n-BigInt(R(Date.now())))/10n**18n;return{rewardsDuration:Number(r),mode:s===0n?"duration":"targetRate",manager:a,rewardRate:De(o,36),periodFinish:Number(n),availableRewards:De(l,18),minRewardDurationForTargetRate:Number(i),targetRewardsPerSecond:De(s,36)}}function ve(e,t,r){return e?r*t*ie(1)/e:null}function Pa(e,t,r){return r?e*r/(t*ie(1)):0}function Ol({availableRewards:e,periodFinish:t,tvl:r,bgtPrice:a,MIN_REWARD_DURATION:o,MAX_REWARD_DURATION:n,...s}){let i=R(Date.now());if(i>t)return{apr:0,duration:0,rewardRate:0,targetRate:null,periodFinish:0,mode:null};if(s.mode==="targetRate"||s.mode==="targetApr"){let d,{minRewardDurationForTargetRate:b,currentDuration:g}=s;if(s.mode==="targetRate"?d=s.rewardRate:d=Pa(s.apr,a,r),d===0){let P=Math.min(g,n),V=e?e/P:0;return{apr:ve(r,a,V),duration:P,rewardRate:V,targetRate:null,periodFinish:P+i,mode:"duration"}}let p=b||o,A=e?e/d:0;if(A<p){let P=e?e/p:0;return{apr:ve(r,a,P),duration:p,rewardRate:P,targetRate:P.toString(),periodFinish:p+i,mode:null}}return{apr:ve(r,a,d),duration:A,rewardRate:d,targetRate:d.toString(),periodFinish:A+i,mode:null}}let{duration:l}=s,u=e/l;return{apr:ve(r,a,u),mode:null,targetRate:null,duration:l,rewardRate:u,periodFinish:l+i}}import{GetBlocksTimeStamp as Ba}from"@berachain/graphql/chain";async function Gt({defaultBlockTime:e,blocksSpan:t,...r}={}){let{config:a}=c(r),o=f("blocks.subgraph",r),n=e??a.averageBlockTime,s=t??Math.floor(Ze(1)/n),l=(await o.query({query:Ba,variables:{skip:s}})).data;return(R(Date.now())-Number(l?.oldest[0]?.timestamp))/(Number(l?.newest[0]?.number)-Number(l?.oldest[0]?.number))}import*as ce from"@sentry/nextjs";import{GlobalData as xa}from"@berachain/graphql/pol/api";async function Tt(e={}){let{config:t}=c(e),a=await f("api",e).query({query:xa,variables:{chain:t.bex.chainName}});return{...a.data.polGetGlobalInfo,top3EmittingValidators:a.data.top3EmittingValidators.validators,allValidatorsCount:a.data.allValidatorsCount.pagination.totalCount}}import{formatEther as va}from"viem";async function Ft({publicClient:e,...t}){let{config:r}=c(t);k(e);try{let a=await e.readContract({address:r.tokens.bgt,abi:H,functionName:"totalBoosts",args:[]});return va(a)}catch(a){throw console.log(a),a}}import{erc20Abi as Ra,formatEther as Sa}from"viem";async function Dt({publicClient:e,...t}){let{config:r}=c(t);k(e);try{let a=await e.readContract({address:r.tokens.bgt,abi:Ra,functionName:"totalSupply",args:[]});return Sa(a??0n)}catch(a){throw console.log(a),a}}import{GqlRewardVaultOrderBy as ka,GqlRewardVaultOrderDirection as Ga}from"@berachain/graphql/pol/api";import{formatUnits as Va}from"viem";import{GetVaults as Na}from"@berachain/graphql/pol/api";async function Re({filter:e,publicClient:t,...r}={}){let o=await f("api",r).query({query:Na,variables:e}),n=await Promise.allSettled(o.data.polGetRewardVaults.vaults.map(async i=>{if(t)return Promise.allSettled(i.activeIncentives.map(l=>t.readContract({abi:C,address:i.address,functionName:"incentives",args:[l.tokenAddress]})))})),s=o.data.polGetRewardVaults.vaults.map((i,l)=>{let u=0,m=i.activeIncentives.map((d,b)=>{let g=Number(d.remainingAmountUsd)&&Number(d.remainingAmount)?Number(d.remainingAmountUsd)/Number(d.remainingAmount):0,p=n[l]?.status==="fulfilled"&&n[l]?.value?.[b]?.status==="fulfilled"?Va(BigInt(n[l].value[b].value[2]),d.token.decimals):d.remainingAmount;return u+=Number(p)*Number(g),{...d,remainingAmount:p}});return{...i,dynamicData:{...i.dynamicData,allTimeReceivedBGTAmount:i.dynamicData?.allTimeReceivedBGTAmount??"0",bgtCapturePercentage:i.dynamicData?.bgtCapturePercentage??"0",activeIncentivesValueUsd:u.toString(),activeIncentivesRateUsd:i.dynamicData?.activeIncentivesRateUsd??"0",bgtCapturePerBlock:i.dynamicData?.bgtCapturePerBlock??"0"},activeIncentives:m}});return{pagination:o.data.polGetRewardVaults.pagination,gaugeList:s}}async function It(e){let{gaugeList:t}=await Re({filter:{orderBy:ka.Apr,orderDirection:Ga.Desc,pageSize:e,where:{includeNonWhitelisted:!1}}});return t}async function hc(e){let[t,r,a,o]=await Promise.allSettled([Tt(),It(300),Dt({publicClient:e}),Ft({publicClient:e})]);return t.status==="rejected"&&ce.captureException(t.reason,{level:"warning"}),r.status==="rejected"&&ce.captureException(r.reason,{level:"warning"}),a.status==="rejected"&&ce.captureException(a.reason,{level:"warning"}),o.status==="rejected"&&ce.captureException(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 Ta}from"@berachain/graphql/pol/subgraph";async function Et({...e}){let t=f("pol.subgraph",e),{data:r}=await t.query({query:Ta});if(r.incentiveFeeClaims.length>0){let a=r?.incentiveFeeClaims.reduce((s,i)=>s+Number(i.payoutAmount),3e4),n=(r?.incentiveFeeClaims.filter(s=>Number(s.timestamp)/1e3>Date.now()-et(1))).reduce((s,i)=>s+Number(i.payoutAmount),0);return{sumAllClaims:a,sumClaimsInLast24Hours:n}}return{sumAllClaims:0,sumClaimsInLast24Hours:0}}async function Rc(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,n)=>(o[n.name]=n,o),{})}}catch(r){throw console.error("Error fetching validator information",r),r}}async function Gc({account:e,validator:t,page:r=1,perPage:a=1e3,...o}){let{config:n}=c(o),s=await fetch(`${n.pol.bribeBoostApi}/api/v1/wallets/${e.toLowerCase()}/proofs/validator/${t.toLowerCase()}?page=${r}&per_page=${a}`,{cache:"no-store"});if(!s.ok){let l=await ye(s);throw new x({message:"Failed to fetch proofs on server",cause:{error:l,result:s,account:e,validator:t},reason:l?.reason})}return await s.json()}import{formatUnits as Fa,parseUnits as Da}from"viem";async function Ec({address:e,publicClient:t}){return k(t),t.readContract({address:e,abi:D,functionName:"previewRedeem",args:[Da("1",18)]}).then(r=>Number(Fa(r,18))).catch(()=>0)}import{GetRewardVault as Ia}from"@berachain/graphql/pol/api";async function Mc({address:e,chainName:t,...r}){let{config:a}=c(r),o=t??a.bex.chainName,n=f("api",r),{data:s}=await n.query({query:Ia,variables:{vaultId:e,chain:o}});if(!s?.rewardVault)throw new at({resource:"Reward vault",id:e,chainId:a.chainId});return s.rewardVault}var qt=[{inputs:[{internalType:"address",name:"initialOwner",type:"address"},{internalType:"address",name:"initialImplementation",type:"address"}],stateMutability:"payable",type:"constructor"},{inputs:[],name:"NewImplementationHasNoCode",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[],name:"implementation",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"upgradeTo",outputs:[],stateMutability:"nonpayable",type:"function"}];async function Qt({publicClient:e,...t}){let{config:r}=c(t),a=r.pol.factory;$(e,"publicClient"),he(r.pol.factory,"factoryAddress");let o=await e.readContract({address:a,abi:ge,functionName:"beacon"});return await e.readContract({address:o,abi:qt,functionName:"implementation"})}async function Zc({publicClient:e,...t}){k(e);let r=await Qt({publicClient:e,...t}),[a,o]=await Promise.all([e.readContract({address:r,abi:C,functionName:"MIN_REWARD_DURATION"}),e.readContract({address:r,abi:C,functionName:"MAX_REWARD_DURATION"})]);return{minRewardDuration:Number(a),maxRewardDuration:Number(o)}}import{zeroAddress as Ea}from"viem";async function ou({tokenAddress:e,publicClient:t,factoryAddress:r,...a}){let{config:o}=c(a),n=await t.readContract({address:r??o.pol.factory,abi:ge,functionName:"getVault",args:[e]});return n===Ea?null:n}import{isSameAddress as Wt}from"@berachain-foundation/berancer-sdk";import*as Ut from"@sentry/nextjs";import{erc20Abi as Ie,formatUnits as ue}from"viem";async function uu({address:e,stakingToken:t,publicClient:r}){let a=await r.readContract({address:e,abi:C,functionName:"getWhitelistedTokens"}),n=a.findIndex(i=>Wt(t,i))!==-1?await r.readContract({address:e,abi:C,functionName:"totalSupply"}):0n,s=await Promise.allSettled(a.map(async i=>{let[l,u,m,d]=await Promise.all([r.readContract({address:e,abi:C,functionName:"incentives",args:[i]}),r.readContract({address:i,abi:Ie,functionName:"decimals"}),r.readContract({address:i,abi:Ie,functionName:"symbol"}),r.readContract({address:i,abi:Ie,functionName:"balanceOf",args:[e]})]),[b,g,p,A]=l;return{token:i,manager:A,minIncentiveRate:ue(b,u),incentiveRate:ue(g,u),remainingAmount:ue(p,u),symbol:m,decimals:u,pendingAmount:Wt(t,i)?ue(d-n-p,u):ue(d-p,u)}}));return s.forEach((i,l)=>{i.status==="rejected"&&Ut.captureException(new x({reason:i.reason,message:"Incorrect incentives token received.",level:"error"}),{extra:{token:a[l],address:e,error:i.reason}})}),s.map(i=>i.status==="fulfilled"?i.value:null).filter(i=>i!==null)}async function pu({address:e,publicClient:t}){return await t.readContract({address:e,abi:C,functionName:"stakeToken"})}import{GetSWberaVaultMetadata as qa,GqlSWberaVaultMetadataResolution as Ot}from"@berachain/graphql/pol/api";function Qa(e){return e==="DAY"?Ot.OneDay:Ot.SevenDays}async function Au({window:e,...t}){let{config:r}=c(t),a=f("api",t);try{let o=await a.query({query:qa,variables:{chain:r.bex.chainName,resolution:Qa(e??"DAY")}}),{apr:n}=o.data.polGetSWberaVaultMetadata;return Number(n)}catch(o){throw console.error("Failed to get SW Bera APR",o),o}}import{GetSWberaVaultSnapshots as Wa,GqlVaultSnapshotDataRange as Ua}from"@berachain/graphql/pol/api";async function Bu({chain:e,range:t=Ua.ThirtyDays,...r}={}){let{config:a}=c(r),o=f("api",r);try{return(await o.query({query:Wa,variables:{chain:e??a.bex.chainName,range:t}})).data.polGetSWberaVaultSnapshots}catch(n){throw console.error("Failed to get SW Bera Snapshots",n),n}}async function de({publicClient:e,...t}){let{config:r}=c(t),a=await e.readContract({address:r.tokens.swbera,abi:D,functionName:"WITHDRAWAL_COOLDOWN"});return Number(a)}import J from"bignumber.js";import{erc20Abi as Se}from"viem";async function Eu({address:e,publicClient:t,...r}){let{config:a}=c(r);k(t);let o=26;try{let[n,s]=await Promise.all([t.getBlock({blockTag:"latest"}),Gt()]),i=Math.floor(o*60*60/s),l=n.number-BigInt(i),[u,m,d,b,g,p,A,P,V,y,F]=await Promise.all([t.readContract({address:e,abi:D,functionName:"totalAssets"}),t.readContract({address:e,abi:D,functionName:"totalSupply"}),t.readContract({address:e,abi:D,functionName:"previewRedeem",args:[10n**18n],blockNumber:n.number}),t.readContract({address:a.tokens.wbera,abi:Se,functionName:"balanceOf",args:[e]}),t.readContract({address:e,abi:D,functionName:"totalAssets",blockNumber:l}),t.readContract({address:e,abi:Se,functionName:"totalSupply",blockNumber:l}),t.readContract({address:e,abi:D,functionName:"previewRedeem",args:[10n**18n],blockNumber:l}),t.readContract({address:a.tokens.wbera,abi:Se,functionName:"balanceOf",args:[e],blockNumber:l}),t.readContract({address:a.tokens.wbera,abi:Se,functionName:"totalSupply"}),de({publicClient:t}),Et({})]),G=new J(A.toString());return{current:{exchangeRate:new J(d.toString()).toString(),totalSupply:new J(m.toString()).dividedBy(1e18).toString(),totalAssets:new J(u.toString()).dividedBy(1e18).toString(),tvl:new J(b.toString()).dividedBy(1e18).toString()},previous:{exchangeRate:G.toString(),totalSupply:new J(p.toString()).dividedBy(1e18).toString(),totalAssets:new J(g.toString()).dividedBy(1e18).toString(),tvl:new J(P.toString()).dividedBy(1e18).toString()},totalWBeraIssued:new J(V.toString()).dividedBy(1e18).toString(),lockPeriod:y,totalBuyBacks:F.sumAllClaims,totalBuyBacksInLast24Hours:F.sumClaimsInLast24Hours}}catch(n){throw console.error("Failed to get SW Bera Vault Metadata",n),n}}function Mt(e){let t=Date.now(),r=e*1e3-t;if(r<=0)return;let a=R(r);return nt(a,!0,!0)}async function Ou(e,t,r,a){let o=[];function n(s,i){let[l,u,m]=s,d=l,b=Number(m)+Number(i),g=R(Date.now()),p=b-g;if(d>0){let A=Mt(p<=0?0:b);o.push({withdrawalAmount:d,timeRemaining:A})}}switch(a){case"V1":{let[s,i]=await Promise.all([r.readContract({address:e,abi:D,functionName:"withdrawalRequests",args:[t]}),de({publicClient:r})]);return n(s,i),o}case"V2":{let[s,i,l]=await Promise.all([r.readContract({address:e,abi:D,functionName:"withdrawalRequests",args:[t]}),r.readContract({address:e,abi:D,functionName:"getERC721WithdrawalRequestIds",args:[t]}),de({publicClient:r})]);n(s,l);let m=(await Promise.all(i.map(async d=>{let b=await r.readContract({address:e,abi:D,functionName:"getERC721WithdrawalRequest",args:[d]}),{assets:g,requestTime:p}=b;if(!g||!p)throw new Error("Invalid withdrawal request");let A=g,P=Number(p)+Number(l),V=R(Date.now()),y=P-V;if(A>0){let F=Mt(y<=0?0:P);return{withdrawalAmount:A,timeRemaining:F,withdrawalRequestId:d}}return null}))).filter(d=>d!==null);return o.push(...m),o}}}async function Ju({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 ye(a);throw new x({message:"Failed to fetch incentives on server",cause:{error:o,result:a,account:e},reason:o?.error})}return await a.json()}import{formatEther as Ee}from"viem";import{isAddress as Lt}from"viem";async function _t({account:e,vaultAddress:t,publicClient:r}){if(k(r),!e||!Lt(e))throw new T({property:"account",value:e,expected:"Address"});if(!t||!Lt(t))throw new T({property:"vaultAddress",value:t,expected:"Address"});try{let[a,o]=await Promise.all([r.readContract({address:t,abi:C,functionName:"balanceOf",args:[e]}),r.readContract({address:t,abi:C,functionName:"getTotalDelegateStaked",args:[e]})]);return{balance:a,delegated:o}}catch(a){throw console.log(a),a}}async function Ht({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:C,functionName:"earned",args:[e]})}async function Jt({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:C,functionName:"totalSupply",args:[]})}catch(r){throw console.log(r),r}}async function id({account:e,vaultAddress:t,publicClient:r}){let[a,o,n]=await Promise.all([_t({account:e,vaultAddress:t,publicClient:r}),Ht({account:e,vaultAddress:t,publicClient:r}),Jt({vaultAddress:t,publicClient:r})]),s=a.balance-a.delegated,i=n>0n?Number(Number.parseFloat(Ee(a.balance))/Number.parseFloat(Ee(n))).toString():"0";return{balance:a.balance,delegatedBalance:a.delegated,withdrawableBalance:s,rewards:Ee(o),percentage:i}}import*as $t from"@sentry/nextjs";import{formatUnits as qe}from"viem";import{GetUserVaults as Oa}from"@berachain/graphql/pol/api";async function pd({account:e,publicClient:t,...r}){let{config:a}=c(r),s=(await f("api",r).query({query:Oa,variables:{userId:e,chain:a.bex.chainName}})).data?.userVaultDeposits?.deposits;if(!s)return{totalBgtRewards:"0",vaults:[],totalStakedValue:0};let[i,l]=await Promise.all([t.multicall({allowFailure:!1,contracts:s.map(g=>({address:g.vaultAddress,abi:C,functionName:"earned",args:[e]}))}),t.multicall({allowFailure:!1,contracts:s.map(g=>({address:g.vaultAddress,abi:C,functionName:"balanceOf",args:[e]}))})]),{userVaults:u,total:m}=s.reduce((g,p,A)=>{let P=i[A],V=l[A];if(g.total+=P,!p.vault)return $t.captureException(new Error("Deposit data from API is missing vault"),{data:{deposit:p}}),console.error("Deposit data from API is missing vault",p),g;if(P>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;g.userVaults.push({...p,vault:p.vault,unclaimedBgt:qe(P,18),formattedBalance:qe(V,p.vault.stakingToken.decimals),stakingTokenPrice:y})}return g},{userVaults:[],total:0n}),d=[...u].sort((g,p)=>{if(g.vault.isVaultWhitelisted&&!p.vault.isVaultWhitelisted)return-1;if(!g.vault.isVaultWhitelisted&&p.vault.isVaultWhitelisted)return 1;let A=Number.parseFloat(g.unclaimedBgt);return Number.parseFloat(p.unclaimedBgt)-A});return{totalStakedValue:d.reduce((g,p)=>{let A=Number(p.vault.dynamicData?.tvl??0);if(A===0)return g;let P=Number.parseFloat(p.vault.stakingTokenAmount),V=A/P;return g+V*Number(p.formattedBalance)},0),totalBgtRewards:qe(m,18),vaults:d}}import{GetVaultHistory as Ma}from"@berachain/graphql/pol/api";async function Ad({vault:e,chain:t,...r}){let{config:a}=c(r);return(await f("api",r).query({query:Ma,variables:{...r,vaultId:e,chain:t??a.bex.chainName}})).data.polGetRewardVaultSnapshots}import{GetVaultValidators as La}from"@berachain/graphql/pol/api";async function Pd({address:e,onlyActiveValidators:t,...r}){return(await f("api",r).query({query:La,variables:{vaultId:e,isActive:t}})).data.validators.validators??[]}import{getAddress as _a,zeroAddress as Ha}from"viem";import{GetTokenCurrentPrices as Ja}from"@berachain/graphql/dex/api";async function kd({addressIn:e,...t}){let{config:r}=c(t),a=e.map(s=>s.toLowerCase()).filter((s,i,l)=>s&&l.indexOf(s)===i),o=f("api",t),{data:n}=await o.query({query:Ja,variables:{chains:[r.bex.chainName],addressIn:a}});return n.tokenGetCurrentPrices.reduce((s,i)=>{if(!i.price||!i.address)return s;let l=i.address;return s[_a(l)]={price:te(i.price.toString()),updatedAt:i.updatedAt},s[l.toLowerCase()]={price:te(i.price.toString()),updatedAt:i.updatedAt},N(l,"WBERA")&&(s[Ha]={price:te(i.price.toString()),updatedAt:i.updatedAt},s[r.tokens.bgt.toLowerCase()]={price:te(i.price.toString()),updatedAt:i.updatedAt},s[r.tokens.bgt]={price:te(i.price.toString()),updatedAt:i.updatedAt}),s},{})}async function Dd({tokenList:e,publicClient:t,...r}){let{config:a}=c(r);try{let o=await Promise.all(e.map(n=>t.readContract({address:a.honey.pythOracle,abi:_e,functionName:"feeds",args:[n]})));return e.reduce((n,s,i)=>({...n,[s]:o[i]}),{})}catch(o){throw console.error("getPythPriceFeedId",o),o}}import{erc20Abi as $a,formatUnits as ja}from"viem";async function qd({tokens:e,account:t,spender:r,publicClient:a}){if(!a||!e||!r)throw new Error("missing publicClient, tokens, or spender");if(t){let o=e.map(i=>({address:i.address,abi:$a,functionName:"allowance",args:[t,r]}));return(await a.multicall({contracts:o})).map((i,l)=>{let u=e[l];return i.error?{balance:0,...u}:{allowance:i.result,formattedAllowance:ja(i.result,u?.decimals||18),...u}})}}async function Od({url:e,...t}={}){let{config:r}=c(t);return(await Ye({url:e??r.lists.tokenList,type:"rest",name:"GitHub"})).tokens??[]}import{erc20Abi as Ka,formatUnits as Ya,isAddress as jt}from"viem";function za({token:e,account:t,multicallAddress:r}){return N(e,"BERA")||N(e,"ETH")?{address:r,abi:$e,functionName:"getEthBalance",args:[t]}:{address:e.address,abi:Ka,functionName:"balanceOf",args:[t]}}async function $d({account:e,tokenList:t,publicClient:r}){if(!r)throw new Error("publicClient is not defined");if(!e||!t)throw new Error("account or tokenList is not defined");if(!jt(e))throw new Error("account is not a valid address");let a=t.filter(u=>jt(u.address));$(r.chain,"publicClient.chain"),$(r.chain.contracts,"publicClient.chain.contracts"),$(r.chain.contracts.multicall3,"publicClient.chain.contracts.multicall3");let{multicall3:o}=r.chain.contracts,n=typeof o=="string"?o:o.address;he(n,"multicall3Address");let s=a.map(u=>za({token:u,account:e,multicallAddress:n})),i=await r.multicall({contracts:s});return await Promise.all(i.map(async(u,m)=>{let d=a[m];if(u.error)return{balance:0n,formattedBalance:"0",...d};let b=Ya(u.result,d?.decimals||18);return{balance:u.result,formattedBalance:b.includes("e")?"0":b,...d}}))}import{getPublicClient as eo,getWalletClient as to,switchChain as ro}from"@wagmi/core";import{BaseError as ao,createWalletClient as oo,decodeErrorResult as no,HttpRequestError as io,http as so}from"viem";import{ChainId as lo,defaultChainId as zt}from"@berachain/config/internal";import{AbiFunctionSignatureNotFoundError as Xa,decodeFunctionData as Za}from"viem";async function Kt({publicClient:e,abi:t,...r}){let a=[...be,...t??[]],o,n,s,i,l,u,m;if("txHash"in r){let d=await e.getTransaction({hash:r.txHash});if(!d.to)throw new T({property:"tx",value:d,expected:"Transaction",message:"Trying to get revert reason for a contract creation"});l=d.input,n=d.to,s=d.from,i=d.value,o=d.blockNumber}else if(o=r.blockNumber,n=r.to,s=r.account,i=r.value,"data"in r)l=r.data;else if("functionName"in r&&"args"in r)u=r.functionName,m=r.args;else if(!i)throw new T({property:"dataOrFunctionNameAndArgs",value:r,expected:"Hex or FunctionName and Args"});try{if(!a)if(l)await e.call({data:l,to:n,account:s,blockNumber:o,value:i});else throw new Error("Data is required if abi is not provided");if("functionName"in r&&"args"in r&&r.functionName)u=r.functionName,m=r.args;else if(l){if(!a){let d=await e.call({data:l,to:n,account:s,blockNumber:o,value:i});throw new Error(`Getting revert reason for successful simulation. Data: ${l}`,{cause:d})}try{let d=Za({abi:a,data:l});u=d.functionName,m=d.args}catch(d){throw d instanceof Xa&&await e.call({data:l,to:n,account:s,blockNumber:o,value:i}),new Error("Data is required if abi is not provided")}}else throw new Error("No data or function name and args provided");throw a&&u?(await e.simulateContract({functionName:u,args:m,abi:a,address:n,account:s,blockNumber:o}),new j({message:"Getting revert reason for successful simulation",functionName:u,to:n,txHash:"txHash"in r?r.txHash:void 0,input:r})):new Error("No data or function name and args provided")}catch(d){if(d instanceof Error)return ne({error:d,abi:a,revertIfUnknown:!0});throw d}}var co=Xe(1),Yt=(e,t)=>e*(100n+BigInt(t))/100n;function Qe({nonceResult:e,onWarning:t}){if(e.status==="fulfilled"){if(e.value&&e.value>Number.MAX_SAFE_INTEGER){t?.(new x({message:"Nonce is too large. No nonce will be provided to avoid IntegerOutOfRangeError.",cause:e.value,level:"debug"}));return}return e.value}}function uo(e=zt){return e===lo.BEPOLIA?process.env.NEXT_PUBLIC_80069_ANVIL_IMPERSONATE_ACCOUNT==="true":process.env.NEXT_PUBLIC_80094_ANVIL_IMPERSONATE_ACCOUNT==="true"}async function gm(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 T({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:n,onSuccess:s,onWarning:i,onError:l,onSubmission:u,wagmiConfig:m,walletClient:d,account:b,txConfirmationTimeout:g=12e4,chainId:p=zt,impersonateAccount:A=uo(p),errorsAbi:P=[],pollingInterval:V=co,...y}=e;n?.(e);let F="data"in y?y.data:void 0,G=[...be,...P,..."abi"in y&&y.abi&&Array.isArray(y.abi)?y.abi:[]],I=d;if(!m){l?.(new T({property:"wagmiConfig",value:m,expected:"Config"}),e);return}if(!(I?.account?.type==="local"))try{await ro(m,{chainId:p})}catch(S){let E=S;l?.(new x({cause:E,displayMessage:"There was an error switching to the chain."}),e);return}if(!I)try{I=await to(m,{chainId:p})}catch(S){l?.(new x({cause:S,displayMessage:"There was an error connecting to the wallet."}),e);return}if(!I){l?.(new T({displayMessage:"There was an error connecting to the wallet.",property:"walletClient",value:I,expected:"WalletClient"}),e);return}let W=b||I.account;if(!W){l?.(new T({property:"account",value:W,expected:"Account"}),e);return}let me=typeof W=="string"?W:W.address,M=eo(m,{chainId:p});try{k(M)}catch(S){l?.(S,e);return}if(A){let S=ke(p);await S.impersonateAccount({address:me}),I=oo({transport:so(S.transport.url),account:W,chain:I.chain})}let q,oe={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=M.getTransactionCount({address:me,blockTag:"latest"}).catch(()=>{}),E={account:me,to:t,address:t,chainId:p,value:a};if(r){let Q=r.map(h=>{if("abi"in h&&Array.isArray(G)&&G.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 L="params"in h?h.params:void 0;return{to:h.address,abi:h.abi,functionName:h.functionName,args:L,value:h.value??0n}}return{to:h.address,value:h.value??0n}});if(e.enableSimulateCalls){let h=await M.simulateCalls({calls:Q,account:W}),L=h.results.findIndex(_=>_.status==="failure");if(L!==-1){if(h.block.number===null)throw new T({property:"blockNumber",value:h.block.number,expected:"bigint",message:"Block number is null"});let _=h.results[L],{reason:Ve}=_.data&&_.data!=="0x"?{reason:je(no({data:_.data,abi:G}))}:ne({error:_.error,revertIfUnknown:!1,abi:G});l?.(new j({cause:_.error,txHash:q,chainId:p,reason:Ve,abi:G,input:oe,blockNumber:h.block.number}),e);return}}if(process.env.NODE_ENV==="test")throw new T({displayMessage:"Batch calls are not supported in test environment",expected:"not test",property:"NODE_ENV",value:process.env.NODE_ENV,level:"fatal"});let U=await I.sendCalls({calls:Q,account:W,forceAtomic:!0});u?.({id:U.id},e);let O=await I.waitForCallsStatus({id:U.id,pollingInterval:V,timeout:g});if(O.status==="success"){let h=O.receipts?.[0];if(!h)throw new x({message:"Call status is success but no receipt was found",cause:O,level:"error",reason:"CALL_STATUS_SUCCESS_BUT_NO_RECEIPT"});return s?.(h,e),h}throw console.error("wallet_sendCalls: Call failed",O),new j({cause:O,level:"error",input:oe,txHash:q,abi:G,chainId:p})}if(F){let[Q,U,O]=await Promise.allSettled([M.call({...E,data:F}),o??M.estimateGas({...E,data:F}),S]);if(Q.status==="rejected")throw Q.reason;let h=U.status==="fulfilled"?Yt(U.value,10):Ne;q=await I.sendTransaction({data:F,to:t,account:W,gas:h,chainId:p,nonce:Qe({nonceResult:O,onWarning(L){i?.(L,e)}}),value:a}),u?.({txHash:q},e)}else if("abi"in y&&"functionName"in y){let{abi:Q,functionName:U}=y,O="params"in y?y.params:void 0,[h,L,_]=await Promise.allSettled([M.simulateContract({...E,abi:G,functionName:U,args:O,account:W}),o??M.estimateContractGas({...E,abi:G,functionName:U,args:O}),S]);if(h.status==="rejected")throw h.reason;let Ve=o??(L.status==="fulfilled"?Yt(L.value,10):Ne);q=await I.writeContract({...h.value.request,chainId:p,gas:Ve,nonce:Qe({nonceResult:_,onWarning(tr){i?.(tr,e)}})}),u?.({txHash:q},e)}else{let[Q]=await Promise.allSettled([S]);q=await I.sendTransaction({chainId:p,to:t,value:a,account:W,nonce:Qe({nonceResult:Q,onWarning(U){i?.(U,e)}})}),u?.({txHash:q},e)}process.env.NODE_ENV==="test"&&await ke(p).mine({blocks:1});let z=await M.waitForTransactionReceipt({hash:q,pollingInterval:V,timeout:g,confirmations:1});if(z.status==="success")s?.(z,e);else{let Q=await Kt({publicClient:M,blockNumber:z.blockNumber,to:t,account:me,abi:G,args:"params"in y?y.params:void 0,functionName:"functionName"in y?y.functionName:void 0,value:a,data:F});process.env.NODE_ENV==="test"&&console.error("beraWriteContract: Revert reason",Q),l?.(new j({reason:Q.reason,txHash:q,receipt:z,to:t,functionName:"functionName"in y?y.functionName:void 0,input:oe,chainId:p,abi:G,blockNumber:z.blockNumber}),e)}return z}catch(S){if(S instanceof x)l?.(S,e);else if(S instanceof Error){let E=ne({error:S,revertIfUnknown:!1,abi:G});if(E&&E.rootCause instanceof ao&&"url"in E.rootCause){l?.(new Z({cause:E.rootCause,response:void 0,endpoint:{url:E.rootCause.url,type:"rpc"},statusCode:E.rootCause instanceof io?E.rootCause.status:void 0}),e);return}l?.(new j({cause:S,to:t,txHash:q,chainId:p,abi:G,functionName:"functionName"in y?y.functionName:void 0,input:oe}),e)}else l?.(new j({cause:S,txHash:q,to:t,chainId:p,functionName:"functionName"in y?y.functionName:void 0,input:oe,abi:G}),e)}}async function wm({publicClient:e,ui:t,...r}){let{config:a}=c(r),[o,n,s,i,l,u,m,d]=await Promise.all([e.readContract({address:a.pol.beraChef,abi:v,functionName:"MAX_COMMISSION_RATE"}),e.readContract({address:a.pol.beraChef,abi:v,functionName:"commissionChangeDelay"}),e.readContract({address:a.pol.beraChef,abi:v,functionName:"rewardAllocationBlockDelay"}),e.readContract({address:a.pol.beraChef,abi:v,functionName:"maxWeightPerVault"}),e.readContract({address:a.pol.beraChef,abi:v,functionName:"maxNumWeightsPerRewardAllocation"}),e.readContract({address:a.tokens.bgt,abi:H,functionName:"dropBoostDelay"}),e.readContract({address:a.tokens.bgt,abi:H,functionName:"activateBoostDelay"}),e.readContract({address:a.pol.beraChef,abi:v,functionName:"rewardAllocationInactivityBlockSpan"})]);return{maxCommissionRate:Number(o)/1e4,boostDelay:Number(m),unboostDelay:Number(u),commissionChangeDelay:Number(n),rewardAllocationBlockDelay:Number(s),maxWeightPerVault:Number(i)/1e4,maxNumWeightsPerRewardAllocation:Number(l),rewardAllocationInactivityBlockSpan:Number(d),ui:t}}import{GetValidators as mo}from"@berachain/graphql/pol/api";async function Xt({variables:e={},...t}={}){let{config:r}=c(t);return(await f("api",t).query({query:mo,variables:{chain:r.bex.chainName,...e}})).data}import{isAddressEqual as po}from"viem";async function Vm({allocation:e}){let t=await Re({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=>po(o.address,a.receiver))}))}import{GetValidator as fo}from"@berachain/graphql/pol/api";async function Fm({id:e,...t}){let{config:r}=c(t);return(await f("api",t).query({query:fo,variables:{id:e,chain:r.bex.chainName}})).data}import{GetValidatorBlockStats as go}from"@berachain/graphql/pol/subgraph";async function qm({pubKey:e,first:t=1,...r}){let a=f("pol.subgraph",r);try{return(await a.query({query:go,variables:{pubKey:e,first:t}})).data}catch(o){throw console.error("GetValidatorBlockStats:",o),o}}function ae(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 bo(e,t){return e.start.blockNumber===t.start.blockNumber&&e.weights.every((r,a)=>r.percentage===t.weights[a].percentage)}async function Om({client:e,pubKey:t,...r}){let{config:a}=c(r);try{let[o,n]=await Promise.all([e.readContract({address:a.pol.beraChef,abi:v,functionName:"getActiveRewardAllocation",args:[t]}),e.readContract({address:a.pol.beraChef,abi:v,functionName:"getSetActiveRewardAllocation",args:[t]})]),[s,i]=await Promise.all([o.startBlock!==0n?e.getBlock({blockNumber:BigInt(o.startBlock)}):{timestamp:0},n.startBlock!==0n?e.getBlock({blockNumber:BigInt(n.startBlock)}):{timestamp:0}]),l=ae(o,Number(s.timestamp)),u=ae(n,Number(i.timestamp)),m=!1;return u.start.blockNumber===0?m=!0:m=!bo(u,l),{activeRewardAllocation:l,setRewardAllocation:u,isBaseline:m,isNeverSet:u?.start.blockNumber===0}}catch(o){throw console.log("getValidatorRewardAllocation:",o),o}}function Jm(e){return e.start.blockNumber===0}async function $m({client:e,...t}){let{config:r}=c(t),a=await e.readContract({address:r.pol.beraChef,abi:v,functionName:"getDefaultRewardAllocation",args:[]});return ae({...a,startBlock:0n},0)}import{GetValidatorByAccount as yo}from"@berachain/graphql/pol/subgraph";async function zm({account:e,...t}){try{return(await f("pol.subgraph",t).query({query:yo,variables:{account:e}})).data}catch(r){throw console.error("getManagedValidatorByAccount:",r),r}}async function Zm({client:e,valPubKey:t}){return 5614}import{GetUserValidatorInformation as Ao}from"@berachain/graphql/pol/subgraph";async function Zt({account:e,block:t,...r}){return await f("pol.subgraph",r).query({query:Ao,variables:{address:e.toLowerCase(),block:t}})}import{formatEther as We}from"viem";async function er({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[n,s,i]=await Promise.all([r.readContract({address:o.tokens.bgt,abi:H,functionName:"boosted",args:[e,t]}),r.readContract({address:o.tokens.bgt,abi:H,functionName:"boostedQueue",args:[e,t]}),r.readContract({address:o.tokens.bgt,abi:H,functionName:"dropBoostQueue",args:[e,t]})]);return{pubkey:t,activeBoostAmount:We(n),queuedBoostAmount:We(s[1]),queuedDropBoostAmount:We(i[1]),queuedBoostStartBlock:s[0],queuedDropBoostStartBlock:i[0],hasPendingBoosts:Number(s[1])>0||Number(i[1])>0,hasActiveBoosts:Number(n)>0}}async function pp({account:e,publicClient:t,chain:r,...a}){let{config:o}=c(a),n=r??o.bex.chainName,s=await Zt({account:e}),[i,l]=await Promise.all([Xt({variables:{chain:n,where:{idIn:s.data.userValidatorInformations.map(u=>u.validator.id)}}}),t&&it({lastBlockTimestamp:s.data._meta?.block.timestamp,blockTime:o.averageBlockTime})?Promise.all(s.data.userValidatorInformations.map(u=>er({account:e,pubkey:u.validator.publicKey,publicClient:t}))):void 0]);return i?.validators.validators.map(u=>{let m=l?l.find(d=>d.pubkey.toLowerCase()===u.pubkey.toLowerCase()):s.data.userValidatorInformations.find(d=>d.validator.id.toLowerCase()===u.id.toLowerCase());if(!m)throw new Error("User deposited not found");return{...u,userBoosts:{pubkey:"pubkey"in m?m.pubkey:m.validator.publicKey,activeBoostAmount:m?.activeBoostAmount,queuedBoostAmount:m?.queuedBoostAmount,queuedBoostStartBlock:Number(m?.queuedBoostStartBlock),queuedDropBoostAmount:m?.queuedDropBoostAmount,queuedDropBoostStartBlock:Number(m?.queuedDropBoostStartBlock),hasPendingBoosts:Number(m?.queuedBoostAmount)>0||Number(m?.queuedDropBoostAmount)>0,hasActiveBoosts:Number(m?.activeBoostAmount)>0}}})}var ho=[{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:R(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:R(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:R(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:R(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:R(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:R(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:R(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 bp(e){return await new Promise(t=>setTimeout(t,2e3)),e==="0x4C368fFE3650379d6318C8d4630bc51f8Ad12bB6"?ho:[]}import{GetValidatorAnalytics as wo}from"@berachain/graphql/pol/subgraph";async function Cp({pubkey:e,dayRange:t,...r}){return(await f("pol.subgraph",r).query({query:wo,variables:{pubKey:e,timestamp:ot(t).toString()}})).data}async function vp({client:e,pubKey:t,...r}){let{config:a}=c(r),o=await e.readContract({address:a.pol.beraChef,abi:v,functionName:"getValCommissionOnIncentiveTokens",args:[t]});return Number(o??0n)/1e4}var Vp=(e,t,r)=>{if(!t||!e)return 0;let a=ie(1)/r;return(t?a*(Number(e.dynamicData?.stakedBeraAmount)/t):0)*Number.parseFloat(e.dynamicData?.rewardRate??"0")};async function Tp({client:e,pubKey:t,...r}){let{config:a}=c(r);try{return await e.readContract({address:a.depositContract,abi:fe,functionName:"getOperator",args:[t]})}catch(o){throw console.log("getValidatorOperatorAddress:",o),o}}async function Ep({client:e,pubKey:t,...r}){let{config:a}=c(r),o=await e.readContract({address:a.pol.beraChef,abi:v,functionName:"getValQueuedCommissionOnIncentiveTokens",args:[t]});return{blockNumberLast:o.blockNumberLast,commissionRate:Number(o.commissionRate)/1e4}}async function Up({client:e,pubKey:t,...r}){let{config:a}=c(r);try{return await e.readContract({address:a.depositContract,abi:fe,functionName:"queuedOperator",args:[t]})}catch(o){throw console.log("getValidatorQueuedOperatorAddress:",o),o}}async function Hp({client:e,pubKey:t,...r}){let{config:a}=c(r);try{let o=await e.readContract({address:a.pol.beraChef,abi:v,functionName:"getQueuedRewardAllocation",args:[t]});return ae(o,0)}catch(o){throw console.log("getValidatorQueuedRewardAllocation:",o),o}}function Co(e){return e?.rewardAllocationWeights?.reduce((t,r)=>{if(!r)return t;let a=r.receivingVault?.activeIncentives.filter(o=>Number(o.remainingAmount)>0).reduce((o,n)=>{let s=Number(n.remainingAmountUsd)/Number(n.remainingAmount);return o+Number(n.incentiveRate)*s},0)??0;return t+a*r.percentage},0)}function $p({validator:e,bgtPrice:t}){let r=Number(e.dynamicData?.activeBoostAmount??0),a=Co(e);return!a||!r?0:a*Number(e.dynamicData?.lastDayDistributedBGTAmount??0)*365/(r*t)}export{vo as a,No as b,f as c,mr as d,dt as e,tn as f,pn as g,An as h,Bn as i,pt as j,Dn as k,Wn as l,Hn as m,jn as n,Zn as o,ai as p,re as q,li as r,Be as s,pi as t,bi as u,Bi as v,Vi as w,Bt as x,qi as y,Oi as z,Hi as A,Ki as B,xt as C,Fe as D,vt as E,Bs as F,Vs as G,Ts as H,Es as I,fa as J,Os as K,_s as L,js as M,el as N,Vt as O,ul as P,Nt as Q,Bl as R,Nl as S,Fl as T,Ca as U,Ql as V,Ol as W,Gt as X,Re as Y,hc as Z,Et as _,Rc as $,Gc as aa,Ec as ba,Mc as ca,Zc as da,ou as ea,uu as fa,pu as ga,Au as ha,Bu as ia,de as ja,Eu as ka,Ou as la,Ju as ma,Ht as na,id as oa,pd as pa,Ad as qa,Pd as ra,kd as sa,Dd as ta,qd as ua,Od as va,za as wa,$d as xa,uo as ya,gm as za,wm as Aa,Xt as Ba,Vm as Ca,Fm as Da,qm as Ea,ae as Fa,bo as Ga,Om as Ha,Jm as Ia,$m as Ja,zm as Ka,Zm as La,er as Ma,pp as Na,bp as Oa,Cp as Pa,vp as Qa,Vp as Ra,Tp as Sa,Ep as Ta,Up as Ua,Hp as Va,Co as Wa,$p as Xa};