@berachain/berajs 0.2.8-beta.8 → 0.2.8-beta.9
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.
- package/dist/RequestError-BRIiJgHk.d.ts +144 -0
- package/dist/RequestError-DSUzJ1Iy.d.cts +144 -0
- package/dist/abi/exports.cjs +1 -4452
- package/dist/abi/exports.cjs.map +1 -1
- package/dist/abi/exports.mjs +1 -4452
- package/dist/abi/exports.mjs.map +1 -1
- package/dist/actions/exports.cjs +1 -913
- package/dist/actions/exports.cjs.map +1 -1
- package/dist/actions/exports.d.cts +11 -5
- package/dist/actions/exports.d.ts +11 -5
- package/dist/actions/exports.mjs +1 -913
- package/dist/actions/exports.mjs.map +1 -1
- package/dist/chunk-45HIEVNI.cjs +4 -0
- package/dist/chunk-45HIEVNI.cjs.map +1 -0
- package/dist/chunk-47ILYVHC.mjs +2 -0
- package/dist/{chunk-SGZP4O6R.mjs.map → chunk-47ILYVHC.mjs.map} +1 -1
- package/dist/chunk-575OK77P.mjs +2 -0
- package/dist/{chunk-GLWPRM33.mjs.map → chunk-575OK77P.mjs.map} +1 -1
- package/dist/chunk-5NVZG5N6.mjs +2 -0
- package/dist/{chunk-4GFN4LEP.mjs.map → chunk-5NVZG5N6.mjs.map} +1 -1
- package/dist/chunk-6DIA6PXV.cjs +2 -0
- package/dist/chunk-6DIA6PXV.cjs.map +1 -0
- package/dist/chunk-6JJIZCVY.cjs +2 -0
- package/dist/chunk-6JJIZCVY.cjs.map +1 -0
- package/dist/chunk-7F72ZH4Q.mjs +2 -0
- package/dist/{chunk-VA5L5FDG.mjs.map → chunk-7F72ZH4Q.mjs.map} +1 -1
- package/dist/chunk-AUA42YIG.mjs +4 -0
- package/dist/chunk-AUA42YIG.mjs.map +1 -0
- package/dist/chunk-BC2WX6O6.cjs +2 -0
- package/dist/chunk-BC2WX6O6.cjs.map +1 -0
- package/dist/chunk-CJOZC5Z2.cjs +2 -0
- package/dist/chunk-CJOZC5Z2.cjs.map +1 -0
- package/dist/chunk-D6L7LTA2.cjs +2 -0
- package/dist/chunk-D6L7LTA2.cjs.map +1 -0
- package/dist/chunk-DDEQFR3M.cjs +2 -0
- package/dist/chunk-DDEQFR3M.cjs.map +1 -0
- package/dist/chunk-GXV2JA36.mjs +2 -0
- package/dist/{chunk-7QKRRIHI.mjs.map → chunk-GXV2JA36.mjs.map} +1 -1
- package/dist/chunk-ISYNEDET.mjs +2 -0
- package/dist/{chunk-VA3BQ34H.mjs.map → chunk-ISYNEDET.mjs.map} +1 -1
- package/dist/chunk-JDDRTHFG.mjs +2 -0
- package/dist/chunk-JDDRTHFG.mjs.map +1 -0
- package/dist/chunk-JDZGYU5T.mjs +2 -0
- package/dist/{chunk-I3FTWD6I.mjs.map → chunk-JDZGYU5T.mjs.map} +1 -1
- package/dist/chunk-LVOXBZMA.cjs +2 -0
- package/dist/chunk-LVOXBZMA.cjs.map +1 -0
- package/dist/chunk-MK5NS5B5.mjs +2 -0
- package/dist/{chunk-7TFV6UKF.mjs.map → chunk-MK5NS5B5.mjs.map} +1 -1
- package/dist/chunk-NAXAZJJY.mjs +2 -0
- package/dist/{chunk-ZCEFC2TK.mjs.map → chunk-NAXAZJJY.mjs.map} +1 -1
- package/dist/chunk-NLVWRMGD.mjs +2 -0
- package/dist/{chunk-GWSTVITN.mjs.map → chunk-NLVWRMGD.mjs.map} +1 -1
- package/dist/chunk-OGBD5YOG.mjs +2 -0
- package/dist/{chunk-JA4DHMTG.mjs.map → chunk-OGBD5YOG.mjs.map} +1 -1
- package/dist/chunk-OGJMSGB2.mjs +2 -0
- package/dist/{chunk-KL6YZ5VR.mjs.map → chunk-OGJMSGB2.mjs.map} +1 -1
- package/dist/chunk-OIYXOKTT.cjs +2 -0
- package/dist/chunk-OIYXOKTT.cjs.map +1 -0
- package/dist/chunk-OUD27MU7.cjs +2 -0
- package/dist/chunk-OUD27MU7.cjs.map +1 -0
- package/dist/chunk-PRLVZIKD.mjs +2 -0
- package/dist/chunk-PRLVZIKD.mjs.map +1 -0
- package/dist/chunk-Q2SNRLW3.cjs +2 -0
- package/dist/chunk-Q2SNRLW3.cjs.map +1 -0
- package/dist/chunk-REWME3FY.cjs +2 -0
- package/dist/chunk-REWME3FY.cjs.map +1 -0
- package/dist/chunk-RJN36GBU.mjs +2 -0
- package/dist/chunk-RJN36GBU.mjs.map +1 -0
- package/dist/chunk-RWOICHRW.cjs +2 -0
- package/dist/chunk-RWOICHRW.cjs.map +1 -0
- package/dist/chunk-S4CDSVLK.cjs +2 -0
- package/dist/chunk-S4CDSVLK.cjs.map +1 -0
- package/dist/chunk-SFEULGSX.cjs +2 -0
- package/dist/chunk-SFEULGSX.cjs.map +1 -0
- package/dist/chunk-WBTS6KFG.mjs +2 -0
- package/dist/{chunk-ZBTRKBSI.mjs.map → chunk-WBTS6KFG.mjs.map} +1 -1
- package/dist/chunk-WRFDB3QJ.cjs +2 -0
- package/dist/chunk-WRFDB3QJ.cjs.map +1 -0
- package/dist/chunk-XNJLSA6P.cjs +2 -0
- package/dist/chunk-XNJLSA6P.cjs.map +1 -0
- package/dist/contexts/exports.cjs +1 -82
- package/dist/contexts/exports.cjs.map +1 -1
- package/dist/contexts/exports.mjs +1 -82
- package/dist/contexts/exports.mjs.map +1 -1
- package/dist/enum/exports.cjs +1 -58
- package/dist/enum/exports.cjs.map +1 -1
- package/dist/enum/exports.mjs +1 -58
- package/dist/enum/exports.mjs.map +1 -1
- package/dist/errors/exports.cjs +1 -38
- package/dist/errors/exports.cjs.map +1 -1
- package/dist/errors/exports.d.cts +3 -89
- package/dist/errors/exports.d.ts +3 -89
- package/dist/errors/exports.mjs +1 -38
- package/dist/hooks/exports.cjs +3 -8332
- package/dist/hooks/exports.cjs.map +1 -1
- package/dist/hooks/exports.d.cts +13 -27
- package/dist/hooks/exports.d.ts +13 -27
- package/dist/hooks/exports.mjs +3 -8332
- package/dist/hooks/exports.mjs.map +1 -1
- package/dist/utils/exports.cjs +1 -786
- package/dist/utils/exports.cjs.map +1 -1
- package/dist/utils/exports.d.cts +10 -2
- package/dist/utils/exports.d.ts +10 -2
- package/dist/utils/exports.mjs +1 -786
- package/dist/utils/exports.mjs.map +1 -1
- package/package.json +14 -3
- package/src/actions/clients/BeraApolloClient.ts +9 -0
- package/src/actions/clients/getApolloClient.ts +12 -2
- package/src/actions/dex/aggregators/base.ts +1 -1
- package/src/actions/exports.ts +1 -1
- package/src/actions/honey/getChartData.ts +5 -5
- package/src/actions/honey/getHoney24hVolume.ts +30 -0
- package/src/actions/pol/getEarnedStakedBeraVault.ts +12 -2
- package/src/actions/pol/getStakingDailyAssets.ts +7 -1
- package/src/data/contracts.ts +5 -0
- package/src/errors/RequestError.ts +2 -1
- package/src/hooks/exports.ts +1 -1
- package/src/hooks/honey/useHoney24hVolume.ts +16 -0
- package/src/utils/beraFetch.ts +70 -15
- package/dist/RequestError-A8XJ6QR9.d.cts +0 -57
- package/dist/RequestError-Dk97z8rm.d.ts +0 -57
- package/dist/chunk-2R73G2PO.mjs +0 -4698
- package/dist/chunk-2R73G2PO.mjs.map +0 -1
- package/dist/chunk-3M47ZRXT.mjs +0 -417
- package/dist/chunk-3M47ZRXT.mjs.map +0 -1
- package/dist/chunk-4GFN4LEP.mjs +0 -97
- package/dist/chunk-5N7QQS55.cjs +0 -130
- package/dist/chunk-5N7QQS55.cjs.map +0 -1
- package/dist/chunk-5NMATIH4.mjs +0 -130
- package/dist/chunk-5NMATIH4.mjs.map +0 -1
- package/dist/chunk-7QKRRIHI.mjs +0 -1844
- package/dist/chunk-7TFV6UKF.mjs +0 -24
- package/dist/chunk-A4FPM7U3.cjs +0 -63
- package/dist/chunk-A4FPM7U3.cjs.map +0 -1
- package/dist/chunk-BDHINMWQ.cjs +0 -417
- package/dist/chunk-BDHINMWQ.cjs.map +0 -1
- package/dist/chunk-BEHP54S3.cjs +0 -24
- package/dist/chunk-BEHP54S3.cjs.map +0 -1
- package/dist/chunk-EGDXV2PT.cjs +0 -36
- package/dist/chunk-EGDXV2PT.cjs.map +0 -1
- package/dist/chunk-EWBKSMPG.cjs +0 -13
- package/dist/chunk-EWBKSMPG.cjs.map +0 -1
- package/dist/chunk-F6ZW7ZDD.cjs +0 -403
- package/dist/chunk-F6ZW7ZDD.cjs.map +0 -1
- package/dist/chunk-FTXTRUYT.cjs +0 -170
- package/dist/chunk-FTXTRUYT.cjs.map +0 -1
- package/dist/chunk-GLWPRM33.mjs +0 -13
- package/dist/chunk-GWSTVITN.mjs +0 -572
- package/dist/chunk-H3Z37RYU.cjs +0 -15
- package/dist/chunk-H3Z37RYU.cjs.map +0 -1
- package/dist/chunk-I3FTWD6I.mjs +0 -170
- package/dist/chunk-JA4DHMTG.mjs +0 -15
- package/dist/chunk-KL6YZ5VR.mjs +0 -63
- package/dist/chunk-MXWPP6MS.cjs +0 -572
- package/dist/chunk-MXWPP6MS.cjs.map +0 -1
- package/dist/chunk-SGZP4O6R.mjs +0 -135
- package/dist/chunk-TDW5SPXR.cjs +0 -244
- package/dist/chunk-TDW5SPXR.cjs.map +0 -1
- package/dist/chunk-TGK3IXDN.cjs +0 -169
- package/dist/chunk-TGK3IXDN.cjs.map +0 -1
- package/dist/chunk-TJEW6YCJ.cjs +0 -97
- package/dist/chunk-TJEW6YCJ.cjs.map +0 -1
- package/dist/chunk-VA3BQ34H.mjs +0 -403
- package/dist/chunk-VA5L5FDG.mjs +0 -36
- package/dist/chunk-XSGCRLSD.cjs +0 -1844
- package/dist/chunk-XSGCRLSD.cjs.map +0 -1
- package/dist/chunk-XV3GG3HC.cjs +0 -135
- package/dist/chunk-XV3GG3HC.cjs.map +0 -1
- package/dist/chunk-Y5B224UX.cjs +0 -4698
- package/dist/chunk-Y5B224UX.cjs.map +0 -1
- package/dist/chunk-ZBTRKBSI.mjs +0 -169
- package/dist/chunk-ZCEFC2TK.mjs +0 -244
- package/src/actions/honey/getHoneyGlobalData.ts +0 -21
- package/src/hooks/honey/useHoneyGlobalData.ts +0 -23
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{a as qe}from"./chunk-NLVWRMGD.mjs";import{a as _e,b as H}from"./chunk-RJN36GBU.mjs";import{a as D,b as j,c as v,d as Pe,g as M}from"./chunk-WBTS6KFG.mjs";import{B as $e,D as K,F as ve,a as V,b as ue,c as Ue,d as We,e as de,j as Be,k as Oe,l as k,m as Me,r as He,y as te,z as Je}from"./chunk-JDDRTHFG.mjs";import{a as c,b as ce,d as Le,e as S}from"./chunk-5NVZG5N6.mjs";import{a as Qe}from"./chunk-PRLVZIKD.mjs";import{c as le,d as De,e as ee,f as B,g as $,h as G}from"./chunk-GXV2JA36.mjs";import{formatEther as Wt}from"viem";import{metaMorphoV11Abi as Lt}from"@berachain/abis/bend-metamorpho/metaMorphoV11";async function Ao({sharesAmount:e,vaultAddress:t,publicClient:r}){let a=await r.readContract({address:t,abi:Lt,functionName:"convertToAssets",args:[e]});return{raw:a,formatted:Wt(a)}}import{ApolloClient as Ot,ServerError as Mt}from"@apollo/client";import{appConfig as Ht}from"@berachain/config/internal";var me=class extends Ot{url;serviceName;constructor(t){super(t),this.url=t.url,this.serviceName=t.name}async query(t){let r=_t(t.query),a={url:this.url,type:"graphql",name:this.serviceName},o={"operation.type":"query","operation.source.name":a.name,"operation.source.url":a.url,"operation.source.type":a.type,"operation.source.queryName":r};try{let n=()=>super.query(t),s=await Qe.startSpan({name:`GraphQL ${r}`,op:"BeraApolloClient.query",attributes:o},n);if(s.error||s.data===void 0)throw new B({level:"fatal",tags:o,message:"Bera Apollo Client: No data returned from query, but error should be thrown since errorPolicy is none"});return{data:s.data}}catch(n){throw!Ht.env.isProduction&&console.error("BeraApolloClient error",n),Mt.is(n)?new $({response:n.response,cause:n,statusCode:n.statusCode,endpoint:a,tags:o}):n instanceof TypeError?new $({level:"fatal",reason:"TypeError",response:n,cause:n,endpoint:a,tags:o}):new $({response:n,tags:o,cause:n,endpoint:a})}}};function _t(e){return e.definitions.find(r=>r.kind==="OperationDefinition")?.name?.value}import{InMemoryCache as Jt}from"@apollo/client";import{HttpLink as $t}from"@apollo/client/link/http";import{getUriFromLink as Ke}from"@berachain/config";import{currentDapp as jt,goldskyBaseUrl as je}from"@berachain/config/internal";import Kt from"@berachain/graphql/dex/api";import{gql as qo}from"@apollo/client";function Yt(e){let t=typeof e=="string"?void 0:e.headers,r=!!jt,a=process.env.VERCEL_ENV==="test",o=Ke(e),n=typeof e=="string"?"unknown":e.name;return{uri:o,name:n,headers:{...t,"x-graphql-client-name":`berachain.${r?"dapps":a?"test":"berajs"}`,"x-graphql-client-version":`${process.env.VERCEL_TARGET_ENV}.${process.env.VERCEL_GIT_COMMIT_SHA}`}}}function _(e,{ssrMode:t,inMemoryCacheOptions:r}={}){let a=Ke(e),o=typeof e=="string"?void 0:e.headers,n=typeof e=="string"?void 0:e.name;return!n&&a.includes(je)&&(n=a.replace(je,"").replace("/gn","")),new me({url:a,name:n??"unknown",link:new $t({uri:a,headers:o}),defaultOptions:{query:{errorPolicy:"none",fetchPolicy:"no-cache"}},cache:new Jt(r),ssrMode:t})}function b(e,{...t}){let{config:r}=c(t);switch(e){case"api":return _(Yt(r.api),{inMemoryCacheOptions:{possibleTypes:Kt.possibleTypes}});case"bend.whisk":if(!r.bend.whiskApi)throw new B({message:"Bend whisk API is not configured on this chain",level:"error"});return _(r.bend.whiskApi);case"honey.subgraph":return _(r.honey.subgraph);case"pol.subgraph":return _(r.pol.subgraph);case"pol.fees":return _(r.pol.feesSubgraph);case"governance.subgraph":return _(r.governance.subgraph);case"bex.subgraph":return _(r.bex.subgraph)}}import{formatUnits as zt,isAddress as Ye,zeroAddress as Xt}from"viem";var ze=class e{static PATH_NOT_FOUND_REASON="NO_SWAP_PATHS";needsAccountForQuote=!1;notFoundMessages=[];config;chainId;constructor(t={}){let{config:r,chainId:a}=c(t);this.config=r,this.chainId=a}url="";parseAddresses(t,r){if(!Ye(t)||!Ye(r))throw new B({message:`Invalid address: ${t} or ${r}`,level:"error"});return{tokenInAddress:S(t,"BERA")?this.config.tokens.wbera:t,tokenOutAddress:S(r,"BERA")?this.config.tokens.wbera:r,isTokenInNative:S(t,"BERA"),isTokenOutNative:S(r,"BERA")}}getAmountAfterFees(t,r){if(r===void 0)throw new B({message:"aggregatorsFeeBps is required",level:"error"});let a=new V(t).times(r).dividedBy(1e4).toFixed(0,V.ROUND_DOWN);return new V(t).minus(a).toFixed(0,V.ROUND_DOWN)}getInputData({tokenIn:t,amountIn:r,isNative:a,isPermit2Approval:o=!1,permit2SpenderAddress:n}){return{tokenIn:t,amountIn:BigInt(r),isNative:a,isPermit2Approval:o,permit2SpenderAddress:n??Xt}}getMinAmountOut(t,r){if(r===void 0)throw new B({message:"slippage is required",level:"error"});let a=new V(t).times(1-r/100);return a.isNaN()||a.isZero()?0n:BigInt(a.toFixed(0))}parseAllowanceRequirements({tokenIn:t,rawAmount:r,spender:a}){return S(t,"BERA")?[]:[{token:t,amount:{raw:r,formatted:zt(BigInt(r),t.decimals)},spender:a}]}checkChainSupport({tokenIn:t,tokenOut:r}){return this.supportedChains===null?!0:this.supportedChains.includes(t.chainId)&&this.supportedChains.includes(r.chainId)}assertChainSupport({tokenIn:t,tokenOut:r,underlyingToken:a}){if(!this.checkChainSupport({tokenIn:t,tokenOut:r,underlyingToken:a}))throw new B({message:`${this.name} does not support tokens chain ID: ${t.chainId} and ${r.chainId}`,level:"error"})}async fetch(t,r){try{return await Ue({url:t,name:this.name,type:this.type},{method:"GET",headers:{"Content-Type":"application/json"},...r})}catch(a){let o=D({cause:a});throw this.notFoundMessages.some(n=>o.message.includes(n))&&(o.reason=e.PATH_NOT_FOUND_REASON),o}}};import{API_CHAIN_NAMES as Zt,BALANCER_QUERIES as er,BALANCER_RELAYER as tr,BalancerApi as Jo,CHAINS as rr,COMPOSABLE_STABLE_POOL_FACTORY as ar,NATIVE_ASSETS as or,Token as nr,VAULT as ir,WEIGHTED_POOL_FACTORY_BALANCER_V2 as sr}from"@berachain-foundation/berancer-sdk";import{zeroAddress as Re}from"viem";import{berachain as Xe,berachainBepolia as lr}from"viem/chains";import{chainConfigs as ur}from"@berachain/config/internal";for(let e of Object.keys(ur)){let{config:t,chainId:r}=c({chainId:Number(e)});Zt[r]=t.bex.chainName,rr[r]=r===Xe.id?Xe:lr,tr[r]=t.bex.relayer,ir[r]=t.bex.vault,er[r]=t.bex.queries,sr[r]=Re,ar[r]=Re;let a=new nr(r,Re,ce.decimals,ce.name,ce.symbol,t.tokens.wbera);or[r]=a}import{GetPools as cr}from"@berachain/graphql/dex/api";import{GqlPoolOrderBy as dr,GqlPoolOrderDirection as mr}from"@berachain/graphql/pol/api";async function an({textSearch:e,chain:t,first:r,orderBy:a,orderDirection:o,skip:n,fetchPolicy:s,userAddress:i,blacklistedPoolIds:l,...d}={}){let{config:u}=c(d),f=await b("api",d).query({query:cr,variables:{textSearch:e,chain:t??u.bex.chainName,first:r,orderBy:a??dr.TotalLiquidity,orderDirection:o??mr.Desc,skip:n,userAddress:i,blacklistedPoolIds:l},fetchPolicy:s});return{pools:f.data.poolGetPools??[],count:f.data.count??0}}import{GetPool as pr}from"@berachain/graphql/dex/api";async function un({poolId:e,account:t,...r}){let{config:a}=c(r),s=(await b("api",r).query({query:pr,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 fr}from"@berachain/graphql/dex/api";async function fn(e={}){let{config:t}=c(e);return(await b("api",e).query({query:fr,variables:{chain:t.bex.chainName}})).data}import{weightedPoolV4Abi_V2 as gr}from"@berachain-foundation/berancer-sdk";async function Ze({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]}}import{stablePoolAbi_V3 as br,vaultV2Abi as yr,weightedPoolFactoryAbi_V3 as et,weightedPoolV4Abi_V2 as pe}from"@berachain-foundation/berancer-sdk";import{erc20Abi as tt,formatEther as rt,formatUnits as Ar,isAddress as hr,isHex as wr}from"viem";import{GqlPoolType as at}from"@berachain/graphql/pol/api";async function Rn({poolId:e,publicClient:t,...r}){let{config:a}=c(r),o=e.slice(0,42);if(!hr(o)||!wr(e))throw new G({property:"poolId",value:e,expected:"Hex"});try{let[n,s,i,l,d,u,m,f,g]=await Promise.all([t.readContract({address:o,abi:tt,functionName:"name"}),t.readContract({address:a.bex.vault,abi:yr,functionName:"getPoolTokens",args:[e]}),t.readContract({address:o,abi:tt,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:et,functionName:"isPoolFromFactory",args:[o]}),t.readContract({address:a.bex.factories.weighted,abi:et,functionName:"isPoolFromFactory",args:[o]}),Ze({publicClient:t,poolAddress:o})]),p=Number(u),A=JSON.parse(d),h,P,y;if(m?[h,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:br,functionName:"getAmplificationParameter"})]):A.name==="WeightedPool"&&(P=await t.readContract({address:o,abi:pe,functionName:"getNormalizedWeights"})),!m&&!f)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:Ar(h??i,p),swapFee:rt(l),decimals:p,weights:P?.map(I=>rt(I)),version:A,factory:m?a.bex.factories.composableStable:a.bex.factories.weighted,type:m?at.Stable:at.Weighted,amplificationParameter:y?[Number(y[0]),y[1],Number(y[2])]:void 0,pausedState:g}}catch(n){throw D({cause:n})}}import{GetPoolEvents as Cr}from"@berachain/graphql/dex/api";async function xn({poolId:e,typeInArray:t,...r}){let{config:a}=c(r);return(await b("api",r).query({query:Cr,variables:{poolId:e,typeIn:t,chain:a.bex.chainName}})).data}import{isHex as Pr}from"viem";import{GetPoolHistoricalData as Br}from"@berachain/graphql/dex/api";async function qn({poolId:e,chain:t,...r}){if(!e||!Pr(e))throw new G({property:"poolId",value:e,expected:"hex string"});let a=b("api",r),{data:o}=await a.query({query:Br,variables:{poolId:e,chain:t}});return o.poolGetSnapshots}import{isAddress as ot,isHex as vr}from"viem";function Y({fieldOrType:e,value:t,required:r=!0,baseUrl:a,components:o}){if(!["bool","string"].includes(e)&&r&&(t==null||t===""))return"Required";if(e.startsWith("uint")||e.startsWith("int")){if(typeof t!="string")return"Invalid amount";try{let 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 typeof t!="string"||t.length===0?"Required":null;case"description":return typeof t!="string"||t.length===0?"Required":null;case"forumLink":{if(typeof t!="string"||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 typeof t!="string"||!ot(t,{strict:!0})?"Invalid address":null;case"hex":return typeof t!="string"||!vr(t,{strict:!0})?"Invalid address":null;case"abi":if(typeof t!="string")return"Invalid ABI";try{JSON.parse(t)}catch{return"Invalid ABI"}return null;case"action":return typeof t!="string"||!ot(t,{strict:!0})?"Invalid address":null;case"tuple":if(typeof t=="object"&&Array.isArray(o)){let s={};for(let i of o){let l=i,d=l.name;s[d]=Y({fieldOrType:l.type,value:t[d],components:l.components})}return Object.values(s).every(i=>i===null)?null:s}return null;case"tuple[]":if(Array.isArray(t)){let s=t.map(i=>Y({fieldOrType:"tuple",value:i,components:o}));return s.every(i=>i===null)?null:s}return null;case"logoURI":return t===void 0||t===""?null:typeof t!="string"||!URL.canParse(t)||new URL(t).protocol!=="https:"?"Must be HTTPS or IPFS":null;case"url":return t===void 0||t===""?null:typeof t!="string"||!URL.canParse(t)||new URL(t).protocol!=="https:"?"Must be HTTPS":null;default:return console.error(`Invalid field or type: ${e}`),null}}import{ProposalStatus as C}from"@berachain/graphql/governance";var Rr=!1,Ln=[C.Active,C.PendingQueue,C.PendingExecution,C.Defeated,C.QuorumNotReached];function fe(e,t){let r=Date.now()/1e3;if(t!==void 0){if(e.status===C.CanceledByGuardian)return C.CanceledByGuardian;if(t===2)return Number(e.voteStartAt)<r?C.CanceledByUser:C.CanceledByGuardian;if(t===3)return e.pollResult?!e.quorum||BigInt(e.quorum)>BigInt(e.pollResult.totalTowardsQuorum)?C.QuorumNotReached:C.Defeated:C.QuorumNotReached;if(t===4)return C.PendingQueue;if(t===5)return Number(e.queueEnd)<Date.now()/1e3?C.PendingExecution:C.InQueue;if(t===6)return console.warn("Unexpected expired state on proposal id: ",e.id),C.Defeated}return e.status===C.InQueue&&Number(e.queueEnd)<Date.now()/1e3?C.PendingExecution:Rr&&t===1&&e.quorum&&BigInt(e.quorum)<BigInt(e.pollResult.totalTowardsQuorum)&&Number(e.pollResult.forPercentage)>Number(e.pollResult.againstPercentage)?C.PendingQueue:e.status===C.Pending?Number(e.voteStartAt)<r&&Number(e.voteEndAt)>r?C.Active:Number(e.voteEndAt)<r?e.pollResult?!e.quorum||BigInt(e.quorum)>BigInt(e.pollResult.totalTowardsQuorum)?C.QuorumNotReached:e.pollResult?.against>e.pollResult?.for?C.Defeated:C.PendingQueue:C.QuorumNotReached:C.Pending:e.status===C.Active&&Number(e.voteEndAt)<r?!e.quorum||BigInt(e.quorum)>BigInt(e.pollResult.totalTowardsQuorum)?C.QuorumNotReached:BigInt(e.pollResult?.against??0n)>BigInt(e.pollResult?.for??0n)?C.Defeated:C.PendingQueue:e.status===C.InQueue&&Number(e.queueEnd)<Date.now()/1e3?C.PendingExecution:e.status}import{GetProposals as Vr,SearchProposals as Sr}from"@berachain/graphql/governance";async function Jn({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=b("governance.subgraph",s),[l]=await Promise.all([n?i.query({query:Sr,variables:{offset:a,limit:o,where:e,text:n}}):i.query({query:Vr,variables:{offset:a,limit:o,where:e,orderBy:t,orderDirection:r}})]);return l.data.proposals.map(d=>({...d,status:fe(d)}))}catch(i){throw console.error("getAllProposals:",i),i}}function Kn({proposal:e,currentTopic:t}){let r={};return r.title=Y({fieldOrType:"title",value:e.title}),r.description=Y({fieldOrType:"description",value:e.description}),r.forumLink=Y({fieldOrType:"forumLink",value:e.forumLink,baseUrl:t.forumLink}),r}import{GetProposal as kr}from"@berachain/graphql/governance";async function ei({proposalId:e,...t}){let a=await b("governance.subgraph",t).query({query:kr,variables:{id:e}});if(a.data.proposal)return{...a.data.proposal,status:fe(a.data.proposal)}}import nt from"gray-matter";function Nr(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")}function it(e){if(!e)return{isFrontMatter:!1,data:{title:"Loading..."},content:"",matter:"",language:"",orig:"",stringify:()=>""};let t=e?.description??"";if(nt.test(t))return{...nt(t),isFrontMatter:!0};try{let r=Nr(t);return{isFrontMatter:!1,data:{title:r.title},content:r.content,matter:"",language:"",orig:t,stringify:()=>t}}catch{return{isFrontMatter:!1,data:{title:e?.description?.split(`
|
|
3
|
+
`)[0].slice(0,100)},content:t,matter:"",language:"",orig:t,stringify:()=>t}}}import{parseEventLogs as xr}from"viem";import{berachainGovernanceAbi as Gr}from"@berachain/abis/gov/berachainGovernance";import{ProposalStatus as Tr}from"@berachain/graphql/governance";async function ui(e){v(e.publicClient);let t;"tx"in e?t=e.tx:t=await e.publicClient.getTransactionReceipt({hash:e.txHash});let r=t?.logs?xr({abi:Gr,logs:t.logs,eventName:"ProposalCreated"})?.at(0):void 0;if(!t||!r)return null;let a=await e.publicClient.getBlock({blockNumber:t.blockNumber}),o=it({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:Tr.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 Fr}from"@berachain/graphql/governance";async function pi({variables:e,...t}){return b("governance.subgraph",t).query({query:Fr,variables:e})}import{Aggregation_Interval as Er,GetSnapshots as Ir}from"@berachain/graphql/honey";async function yi({days:e,...t}){return(await b("honey.subgraph",t).query({query:Ir,variables:{interval:Er.Day,first:e}})).data}import{honeyFactoryAbi as qr}from"@berachain/abis/honey/honeyFactory";async function Ci({client:e,collateralList:t,...r}){let{config:a}=c(r);try{let o=await e.readContract({address:a.honey.factory,abi:qr,functionName:"getWeights"});return t.reduce((s,i,l)=>Object.assign(s,{[i.address]:o[l]}),{})}catch(o){throw console.log(o),o}}import{erc20Abi as Ve}from"viem";async function st({address:e,publicClient:t,chainId:r}){try{v(t);let[a,o,n]=await Promise.all([t.readContract({address:e,abi:Ve,functionName:"decimals"}),t.readContract({address:e,abi:Ve,functionName:"name"}),t.readContract({address:e,abi:Ve,functionName:"symbol"})]);return{address:e,decimals:a,name:o,symbol:n,chainId:r}}catch(a){throw D({cause:a})}}import{honeyFactoryAbi as Se}from"@berachain/abis/honey/honeyFactory";async function ke({client:e,tokenData:t,preferredCollateralOrder:r,...a}){let{config:o}=c(a),[n,s]=await Promise.all([e.readContract({address:o.honey.factory,abi:Se,functionName:"numRegisteredAssets"}),e.readContract({address:o.honey.factory,abi:Se,functionName:"referenceCollateral"})]),i=[];for(let f=0;f<n;f++)i.push(e.readContract({address:o.honey.factory,abi:Se,functionName:"registeredAssets",args:[BigInt(f)]}));let l=await Promise.all(i),u=(await Promise.all(l.map(f=>{let g=t?.find(p=>S(p,f));return g||st({address:f,chainId:o.chainId,publicClient:e})}))).filter(f=>!!f).sort((f,g)=>l.indexOf(f.address)-l.indexOf(g.address)).map((f,g)=>({...f,order:g}));if(r?.length){let f=[];for(let g of r){let p=u.find(A=>S(A.address,g.address));p&&(f.push(p),u.splice(u.indexOf(p),1))}u.unshift(...f)}let m=u.find(f=>S(f,s));if(!u)throw new Error("Collateral tokens not found");if(!m)throw new Error("Reference collateral address not found");return{collaterals:u,referenceCollateral:m}}import{parseUnits as Dr}from"viem";import{honeyFactoryAbi as lt}from"@berachain/abis/honey/honeyFactory";import{honeyFactoryReaderAbi as Qr}from"@berachain/abis/honey/honeyFactoryReader";async function ut({client:e,collateral:t,latestPrices:r,isPythWrapperEnabled:a,...o}){let{config:n}=c(o);try{let s=e.readContract({address:n.honey.factory,abi:lt,functionName:"isBadCollateralAsset",args:[t.address]}),i=e.readContract({address:n.honey.factory,abi:lt,functionName:"isPegged",args:[t.address]});if(a&&r){let u=r.prices.map(m=>Dr(m,18));i=e.readContract({address:n.honey.reader,abi:Qr,functionName:"isPeggedWithPrice",args:[t.address,u[0]]})}let[l,d]=await Promise.all([s,i]);return{isBlacklisted:l,isDepegged:!d}}catch(s){throw console.log(s),s}}import{parseEther as dt}from"viem";import{honeyFactoryAbi as Lr}from"@berachain/abis/honey/honeyFactory";import{parseEther as Ur}from"viem";import{collateralVaultAbi as Wr}from"@berachain/abis/honey/collateralVault";import{honeyFactoryAbi as ct}from"@berachain/abis/honey/honeyFactory";async function re({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:ct,functionName:"vaults",args:[t]}),e.readContract({address:o.honey.factory,abi:ct,functionName:"collectedFees",args:[o.honey.factory,t]})]);return await e.readContract({address:n,abi:Wr,functionName:"balanceOf",args:[o.honey.factory]})+Ur(r??"0")-s}catch(n){throw console.log(n),n}}var Or=dt("1");async function Yi({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:Lr,functionName:"globalCap"});if(l>=Or)return!1;let[{collaterals:d},u]=await Promise.all([ke({client:e}),Mr({client:e,asset:t,amount:r,latestPrices:n,isPythWrapperEnabled:o})]);if(!u)return;for(let m in u)if((a&&S(d[m],t)||!a&&S(d[m],t))&&u[m]>l-de)return!0;return!1}catch(l){throw console.log(l),l}}async function Mr({client:e,asset:t,amount:r,latestPrices:a,isPythWrapperEnabled:o}){let{collaterals:n}=await ke({client:e}),s=0n,i=[];for(let l of n){let d=await ut({client:e,collateral:t,latestPrices:a,isPythWrapperEnabled:o});if(d?.isBlacklisted||d?.isDepegged)continue;let u=await re({client:e,asset:l.address,amount:S(l,t)?r:"0"});u&&(s+=u,i.push(u))}if(s===0n)return i;for(let l in n)i[l]=dt(i[l].toString())/s;return i}import{Aggregation_Interval as Hr,GetSnapshots as _r}from"@berachain/graphql/honey";async function ts({...e}={}){return(await b("honey.subgraph",e).query({query:_r,variables:{interval:Hr.Hour,first:24}})).data?.honeySnapshots.reduce((a,o)=>new V(o.totalVolume).plus(a),new V(0))}import{parseUnits as mt}from"viem";import{honeyFactoryReaderAbi as pt}from"@berachain/abis/honey/honeyFactoryReader";var Jr=(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))(Jr||{});async function is({client:e,collateral:t,collateralList:r,amount:a,method:o,latestPrices:n,isPythWrapperEnabled:s,...i}){let{config:l}=c(i);try{let d=o==="previewMintHoney"||o==="previewRedeemHoney"||o==="previewMintHoneyWithPrices"||o==="previewRedeemHoneyWithPrices",u=mt(a,d?t.decimals:18),m,f=[t.address,u];if(s&&n){let p=n.prices.map(A=>mt(A,18));f=[t.address,u,p]}if(d){let p=await e.readContract({address:l.honey.reader,abi:pt,functionName:o,args:f});m={collaterals:p[0],honey:p[1]}}else m={collaterals:await e.readContract({address:l.honey.reader,abi:pt,functionName:o,args:f}),honey:u};let g=r.reduce((p,A)=>{let h=A.order;return A.address===t.address&&m.collaterals[h]===BigInt(0)?Object.assign(p,{[A.address]:m.collaterals[0]}):Object.assign(p,{[A.address]:m.collaterals[h]})},{});return g[t.address]===BigInt(0)&&(g[t.address]=m.collaterals[0]),{collaterals:g,honey:m.honey}}catch(d){throw console.log("error",d),d}}import{formatUnits as $r}from"viem";import{collateralVaultAbi as Ne}from"@berachain/abis/honey/collateralVault";import{honeyFactoryAbi as ft}from"@berachain/abis/honey/honeyFactory";async function ms({client:e,collateralList:t,honeyFactoryAddress:r,...a}){let{config:o}=c(a),n=r??o.honey.factory;return await Promise.all(t.map(async i=>{let l=await e.readContract({address:o.honey.factory,abi:ft,functionName:"vaults",args:[i.address]}),[d,u,[m,f]]=await Promise.all([e.readContract({address:l,abi:Ne,functionName:"balanceOf",args:[n]}),e.readContract({address:n,abi:ft,functionName:"collectedAssetFees",args:[i.address]}),e.readContract({address:l,abi:Ne,functionName:"custodyInfo"})]),g=await e.readContract({address:l,abi:Ne,functionName:"convertToAssets",args:[d-u]});return{...i,balance:{raw:g.toString(),formatted:$r(g,i.decimals)},vault:m?f:l}}))}import{HermesClient as jr}from"@pythnetwork/hermes-client";import{formatUnits as Kr}from"viem";var Yr="https://hermes.pyth.network";async function gt({priceFeedId:e}){let r=await new jr(Yr,{}).getLatestPriceUpdates(e,{encoding:"hex",parsed:!0});return{calldata:r.binary.data.map(a=>`0x${a}`),prices:r.parsed?.flatMap(a=>Kr(BigInt(a.price.price),a.price.expo*-1))??[]}}import{parseEther as zr}from"viem";import{honeyFactoryAbi as Xr}from"@berachain/abis/honey/honeyFactory";async function Ps({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:Xr,functionName:"relativeCap",args:[t]})]),[l,d]=await Promise.all([re({client:e,asset:t,amount:a?r:void 0}),re({client:e,asset:o.address,amount:a?void 0:r})]);return d===0n?l!==0n:zr((l??0n).toString())/(d??0n)>=i-de}catch(i){throw console.log(i),i}}async function bt({client:e,priceFeedId:t,...r}){let{config:a}=c(r);try{return await e.readContract({address:a.external.pyth,abi:qe,functionName:"getUpdateFee",args:[t]})}catch(o){throw console.error("getPythUpdateFee",o),o}}import{parseUnits as yt}from"viem";import{honeyFactoryAbi as Zr}from"@berachain/abis/honey/honeyFactory";import{honeyFactoryPythWrapperAbi as ea}from"@berachain/abis/honey/honeyFactoryPythWrapper";var Is=async({state:e,publicClient:t,priceFeedMap:r,collateralList:a,isPythWrapperEnabled:o,...n})=>{let{config:s}=c(n),i=Le(n),{actionType:l,fromAmount:d,collaterals:u,isBasketModeEnabled:m}=e,f=o?s.honey.pythWrapper:s.honey.factory,g=a.map(p=>p.address);if(d[0]&&g.length){let p=l==="mint";if(o&&t&&r){let h=(await gt({priceFeedId:Object.values(r)})).calldata,P=0n;try{P=await bt({client:t,priceFeedId:h})}catch{P=Oe(u.length)}return({account:y})=>{let I=[h,u[0]?.address,yt(d[0],(p?u[0]?.decimals:i?.decimals)??18),y,!!m];return{address:f,abi:ea,functionName:p?"mint":"redeem",params:I,value:P}}}return({account:A})=>{let h=[u[0]?.address,yt(d[0],(p?u[0]?.decimals:i?.decimals)??18),A,!!m];return{value:0n,address:f,abi:Zr,functionName:p?"mint":"redeem",params:h}}}throw new Error("Something went wrong while creating the Honey swap payload")};import{parseUnits as ta}from"viem";import{honeyFactoryAbi as ra}from"@berachain/abis/honey/honeyFactory";import{honeyFactoryReaderAbi as aa}from"@berachain/abis/honey/honeyFactoryReader";async function Ls({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(u=>ta(u,18));return await e.readContract({address:s.honey.reader,abi:aa,functionName:"isBasketModeEnabledWithPrices",args:[t,l]})}return await e.readContract({address:s.honey.factory,abi:ra,functionName:"isBasketModeEnabled",args:[t]})}async function _s({block:e,currentBlock:t,blockTime:r,publicClient:a}){if(j(e,"block"),v(a),t>e){let n=await a.getBlock({blockNumber:BigInt(e),includeTransactions:!1});return{timestamp:Number(n.timestamp)}}return{timestamp:k(Date.now())+r*(Number(e)-Number(t))}}import{formatUnits as xe}from"viem";import{rewardVaultAbi as z}from"@berachain/abis/pol/rewards/rewardVault";var oa=(a=>(a.Duration="duration",a.TargetRate="targetRate",a.TargetApr="targetApr",a))(oa||{});async function Ys(e,t){let[r,a,o,n,s,i]=await Promise.all([t.readContract({address:e,abi:z,functionName:"rewardsDuration"}),t.readContract({address:e,abi:z,functionName:"rewardVaultManager"}),t.readContract({address:e,abi:z,functionName:"rewardRate"}),t.readContract({address:e,abi:z,functionName:"periodFinish"}),t.readContract({address:e,abi:z,functionName:"targetRewardsPerSecond"}),t.readContract({address:e,abi:z,functionName:"minRewardDurationForTargetRate"})]),l=o*(n-BigInt(k(Date.now())))/10n**18n;return{rewardsDuration:Number(r),mode:s===0n?"duration":"targetRate",manager:a,rewardRate:xe(o,36),periodFinish:Number(n),availableRewards:xe(l,18),minRewardDurationForTargetRate:Number(i),targetRewardsPerSecond:xe(s,36)}}function ge(e,t,r){return e?r*t*te(1)/e:null}function na(e,t,r){return r?e*r/(t*te(1)):0}function Zs({availableRewards:e,periodFinish:t,tvl:r,bgtPrice:a,MIN_REWARD_DURATION:o,MAX_REWARD_DURATION:n,...s}){let i=k(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 m,{minRewardDurationForTargetRate:f,currentDuration:g}=s;if(s.mode==="targetRate"?m=s.rewardRate:m=na(s.apr,a,r),m===0){let h=Math.min(g,n),P=e?e/h:0;return{apr:ge(r,a,P),duration:h,rewardRate:P,targetRate:null,periodFinish:h+i,mode:"duration"}}let p=f||o,A=e?e/m:0;if(A<p){let h=e?e/p:0;return{apr:ge(r,a,h),duration:p,rewardRate:h,targetRate:h.toString(),periodFinish:p+i,mode:null}}return{apr:ge(r,a,m),duration:A,rewardRate:m,targetRate:m.toString(),periodFinish:A+i,mode:null}}let{duration:l}=s,d=e/l;return{apr:ge(r,a,d),mode:null,targetRate:null,duration:l,rewardRate:d,periodFinish:l+i}}import{getUriFromLink as ia}from"@berachain/config";async function ol({address:e,account:t,...r}){let{config:a}=c(r),o=`${ia(a.staking)}/vaults/${e}/earnings/${t}`;return We({url:o,name:typeof a.staking=="string"?"backend-railway":a.staking.name,type:"rest"})}import{formatUnits as sa}from"viem";import{rewardVaultAbi as la}from"@berachain/abis/pol/rewards/rewardVault";import{GetVaults as ua}from"@berachain/graphql/pol/api";async function be({filter:e,publicClient:t,...r}={}){let o=await b("api",r).query({query:ua,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:la,address:i.address,functionName:"incentives",args:[l.tokenAddress]})))})),s=o.data.polGetRewardVaults.vaults.map((i,l)=>{let d=0,u=i.activeIncentives.map((m,f)=>{let g=Number(m.remainingAmountUsd)&&Number(m.remainingAmount)?Number(m.remainingAmountUsd)/Number(m.remainingAmount):0,p=n[l]?.status==="fulfilled"&&n[l]?.value?.[f]?.status==="fulfilled"?sa(BigInt(n[l].value[f].value[2]),m.token.decimals):m.remainingAmount;return d+=Number(p)*Number(g),{...m,remainingAmount:p}});return{...i,dynamicData:{...i.dynamicData,allTimeReceivedBGTAmount:i.dynamicData?.allTimeReceivedBGTAmount??"0",bgtCapturePercentage:i.dynamicData?.bgtCapturePercentage??"0",activeIncentivesValueUsd:d.toString(),activeIncentivesRateUsd:i.dynamicData?.activeIncentivesRateUsd??"0",bgtCapturePerBlock:i.dynamicData?.bgtCapturePerBlock??"0"},activeIncentives:u}});return{pagination:o.data.polGetRewardVaults.pagination,gaugeList:s}}import{GlobalData as ca}from"@berachain/graphql/pol/api";async function At(e={}){let{config:t}=c(e),a=await b("api",e).query({query:ca,variables:{chain:t.bex.chainName}});return{...a.data.polGetGlobalInfo,top3EmittingValidators:a.data.top3EmittingValidators.validators,allValidatorsCount:a.data.allValidatorsCount.pagination.totalCount}}import{formatEther as da}from"viem";import{bgtAbi as ma}from"@berachain/abis/pol/bgt";async function ht({publicClient:e,...t}){let{config:r}=c(t);v(e);try{let a=await e.readContract({address:r.tokens.bgt,abi:ma,functionName:"totalBoosts",args:[]});return da(a)}catch(a){throw console.log(a),a}}import{erc20Abi as pa,formatEther as fa}from"viem";async function wt({publicClient:e,...t}){let{config:r}=c(t);v(e);try{let a=await e.readContract({address:r.tokens.bgt,abi:pa,functionName:"totalSupply",args:[]});return fa(a??0n)}catch(a){throw console.log(a),a}}import{GqlRewardVaultOrderBy as ga,GqlRewardVaultOrderDirection as ba}from"@berachain/graphql/pol/api";async function Ct(e){let{gaugeList:t}=await be({filter:{orderBy:ga.Apr,orderDirection:ba.Desc,pageSize:e,where:{includeNonWhitelisted:!1}}});return t}async function Fl(e){let[t,r,a,o]=await Promise.allSettled([At(),Ct(300),wt({publicClient:e}),ht({publicClient:e})]);return t.status==="rejected"&&M.captureException(D({cause:t.reason,level:"warning"})),r.status==="rejected"&&M.captureException(D({cause:r.reason,level:"warning"})),a.status==="rejected"&&M.captureException(D({cause:a.reason,level:"warning"})),o.status==="rejected"&&M.captureException(D({cause:o.reason,level:"warning"})),{bgtTotalSupply:a.status==="fulfilled"?a.value:void 0,globalCuttingBoard:r.status==="fulfilled"?r.value:[],bgtTotalBoosts:o.status==="fulfilled"?o.value:void 0,...t.status==="fulfilled"?t.value:{}}}import{GetIncentiveFeeClaimStats as ya}from"@berachain/graphql/pol/fees";async function Pt({...e}){let t=b("pol.fees",e),{data:r}=await t.query({query:ya});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()-He(1))).reduce((s,i)=>s+Number(i.payoutAmount),0);return{sumAllClaims:a,sumClaimsInLast24Hours:n}}return{sumAllClaims:0,sumClaimsInLast24Hours:0}}async function Wl(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 _l({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 ue(s);throw new B({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 Aa,parseUnits as ha}from"viem";import{wberaStakerVaultAbi as wa}from"@berachain/abis/pol/wberaStakerVault";async function Yl({address:e,publicClient:t}){return v(t),t.readContract({address:e,abi:wa,functionName:"previewRedeem",args:[ha("1",18)]}).then(r=>Number(Aa(r,18))).catch(()=>0)}import{GetRewardVault as Ca}from"@berachain/graphql/pol/api";async function ru({address:e,chainName:t,...r}){let{config:a}=c(r),o=t??a.bex.chainName,n=b("api",r),{data:s}=await n.query({query:Ca,variables:{vaultId:e,chain:o}});if(!s?.rewardVault)throw new _e({resource:"Reward vault",id:e,chainId:a.chainId});return s.rewardVault}import{isSameAddress as Bt}from"@berachain-foundation/berancer-sdk";import{erc20Abi as ye,formatUnits as ae}from"viem";import{rewardVaultAbi as Ge}from"@berachain/abis/pol/rewards/rewardVault";function oe(e,t){return e.status==="success"?e.result:t}async function uu({address:e,stakingToken:t,publicClient:r}){let a=await r.readContract({address:e,abi:Ge,functionName:"getWhitelistedTokens"}),n=a.findIndex(i=>Bt(t,i))!==-1?await r.readContract({address:e,abi:Ge,functionName:"totalSupply"}):0n,s=await Promise.allSettled(a.map(async i=>{let[l,d,u,m,f]=await r.multicall({allowFailure:!0,contracts:[{address:e,abi:Ge,functionName:"incentives",args:[i]},{address:i,abi:ye,functionName:"decimals"},{address:i,abi:ye,functionName:"name"},{address:i,abi:ye,functionName:"symbol"},{address:i,abi:ye,functionName:"balanceOf",args:[e]}]});if(l.status==="failure")throw new B({cause:l.error,message:"Failed to get incentive info. This is not possible.",level:"error",extra:{token:i,address:e}});let[g,p,A,h]=l.result,P=oe(d,18);return{token:i,manager:h,minIncentiveRate:ae(g,P),incentiveRate:ae(p,P),remainingAmount:ae(A,P),name:oe(u,void 0),symbol:oe(m,void 0),decimals:P,pendingAmount:Bt(t,i)?ae(oe(f,0n)-n-A,P):ae(oe(f,0n)-A,P)}}));return s.forEach((i,l)=>{i.status==="rejected"&&M.captureException(new B({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)}import{rewardVaultAbi as Pa}from"@berachain/abis/pol/rewards/rewardVault";async function mu({address:e,publicClient:t}){return await t.readContract({address:e,abi:Pa,functionName:"stakeToken"})}import{GetSWberaVaultMetadata as Ba,GqlSWberaVaultMetadataResolution as vt}from"@berachain/graphql/pol/api";function va(e){return e==="DAY"?vt.OneDay:vt.SevenDays}async function yu({window:e,...t}){let{config:r}=c(t),a=b("api",t);try{let o=await a.query({query:Ba,variables:{chain:r.bex.chainName,resolution:va(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 Ra,GqlVaultSnapshotDataRange as Va}from"@berachain/graphql/pol/api";async function Pu({chain:e,range:t=Va.ThirtyDays,...r}={}){let{config:a}=c(r),o=b("api",r);try{return(await o.query({query:Ra,variables:{chain:e??a.bex.chainName,range:t}})).data.polGetSWberaVaultSnapshots}catch(n){throw console.error("Failed to get SW Bera Snapshots",n),n}}import{wberaStakerVaultAbi as Sa}from"@berachain/abis/pol/wberaStakerVault";async function ne({publicClient:e,address:t}){let r=await e.readContract({address:t,abi:Sa,functionName:"WITHDRAWAL_COOLDOWN"});return Number(r)}import{erc20Abi as Ae,erc4626Abi as ie}from"viem";async function Gu({address:e,underlyingAsset:t,publicClient:r,blockTime:a}){v(r);let o=26;try{let n=await r.getBlock({blockTag:"latest"}),s=Math.floor(o*60*60/a),i=n.number-BigInt(s),[l,d,u,m,f,g,p,A,h,P,y]=await Promise.all([r.readContract({address:e,abi:ie,functionName:"totalAssets"}),r.readContract({address:e,abi:ie,functionName:"totalSupply"}),r.readContract({address:e,abi:ie,functionName:"previewRedeem",args:[10n**18n],blockNumber:n.number}),r.readContract({address:t,abi:Ae,functionName:"balanceOf",args:[e]}),r.readContract({address:e,abi:ie,functionName:"totalAssets",blockNumber:i}),r.readContract({address:e,abi:Ae,functionName:"totalSupply",blockNumber:i}),r.readContract({address:e,abi:ie,functionName:"previewRedeem",args:[10n**18n],blockNumber:i}),r.readContract({address:t,abi:Ae,functionName:"balanceOf",args:[e],blockNumber:i}),r.readContract({address:t,abi:Ae,functionName:"totalSupply"}),ne({publicClient:r,address:e}),Pt({})]),I=new V(p.toString()),N=new V(u.toString());return{address:e,current:{exchangeRate:N.toString(),totalSupply:new V(d.toString()).dividedBy(1e18).toString(),totalAssets:new V(l.toString()).dividedBy(1e18).toString(),tvl:new V(m.toString()).dividedBy(1e18).toString()},previous:{exchangeRate:I.toString(),totalSupply:new V(g.toString()).dividedBy(1e18).toString(),totalAssets:new V(f.toString()).dividedBy(1e18).toString(),tvl:new V(A.toString()).dividedBy(1e18).toString()},totalWBeraIssued:new V(h.toString()).dividedBy(1e18).toString(),lockPeriod:P,totalBuyBacks:y.sumAllClaims,totalBuyBacksInLast24Hours:y.sumClaimsInLast24Hours}}catch(n){throw console.error("Failed to get SW Bera Vault Metadata",n),n}}import{wberaStakerVaultAbi as he}from"@berachain/abis/pol/wberaStakerVault";function Rt(e){let t=Date.now(),r=e*1e3-t;if(r<=0)return;let a=k(r);return $e(a,!0,!0)}async function Qu({contractAddress:e,accountAddress:t,publicClient:r,version:a}){let o=[];function n(s,i){let[l,d,u]=s,m=l,f=Number(u)+Number(i),g=k(Date.now()),p=f-g;if(m>0){let A=Rt(p<=0?0:f);o.push({receiptTokenAddress:e,withdrawalAmount:m,timeRemaining:A})}}switch(a){case"V1":{let[s,i]=await Promise.all([r.readContract({address:e,abi:he,functionName:"withdrawalRequests",args:[t]}),ne({publicClient:r,address:e})]);return n(s,i),o}case"V2":{let[s,i]=await Promise.all([r.readContract({address:e,abi:he,functionName:"getERC721WithdrawalRequestIds",args:[t]}),ne({publicClient:r,address:e})]);if(S(e,"SWBERA")){let u=await r.readContract({address:e,abi:he,functionName:"withdrawalRequests",args:[t]});n(u,i)}let d=(await Promise.all(s.map(async u=>{let m=await r.readContract({address:e,abi:he,functionName:"getERC721WithdrawalRequest",args:[u]}),{assets:f,requestTime:g}=m;if(!f||!g)throw new Error("Invalid withdrawal request");let p=f,A=Number(g)+Number(i),h=k(Date.now()),P=A-h;if(p>0){let y=Rt(P<=0?0:A);return{withdrawalAmount:p,timeRemaining:y,withdrawalRequestId:u,receiptTokenAddress:e}}return null}))).filter(u=>u!==null);return o.push(...d),o}}}import{wberaStakerVaultAbi as ka}from"@berachain/abis/pol/wberaStakerVault";async function Ou({vaultAddresses:e,publicClient:t}){v(t);try{let r=await Promise.all(e.map(async o=>t.readContract({address:o,abi:ka,functionName:"totalAssets"})));return e.reduce((o,n,s)=>(o[n]=r[s],o),{})}catch(r){throw console.error("Failed to get total staked amount",r),r}}async function $u({account:e,...t}){let{config:r}=c(t),a=await fetch(`${r.pol.bribeBoostApi}/api/v1/wallets/${e.toLowerCase()}/rewards/aggregation`,{cache:"no-store"});if(!a.ok){let o=await ue(a);throw new B({message:"Failed to fetch incentives on server",cause:{error:o,result:a,account:e},reason:o?.error})}return a.json()}import{rewardVaultAbi as Na}from"@berachain/abis/pol/rewards/rewardVault";async function Vt({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 r.readContract({address:t,abi:Na,functionName:"earned",args:[e]})}import{formatEther as Te}from"viem";import{rewardVaultAbi as St}from"@berachain/abis/pol/rewards/rewardVault";async function kt({account:e,vaultAddress:t,publicClient:r}){v(r),Pe(e,"account"),Pe(t,"vaultAddress");try{let[a,o]=await Promise.all([r.readContract({address:t,abi:St,functionName:"balanceOf",args:[e]}),r.readContract({address:t,abi:St,functionName:"getTotalDelegateStaked",args:[e]})]);return{balance:a,delegated:o}}catch(a){throw console.log(a),a}}import{rewardVaultAbi as xa}from"@berachain/abis/pol/rewards/rewardVault";async function Nt({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:xa,functionName:"totalSupply",args:[]})}catch(r){throw console.log(r),r}}async function ic({account:e,vaultAddress:t,publicClient:r}){let[a,o,n]=await Promise.all([kt({account:e,vaultAddress:t,publicClient:r}),Vt({account:e,vaultAddress:t,publicClient:r}),Nt({vaultAddress:t,publicClient:r})]),s=a.balance-a.delegated,i=n>0n?Number(Number.parseFloat(Te(a.balance))/Number.parseFloat(Te(n))).toString():"0";return{balance:a.balance,delegatedBalance:a.delegated,withdrawableBalance:s,rewards:Te(o),percentage:i}}import{formatUnits as Fe}from"viem";import{rewardVaultAbi as xt}from"@berachain/abis/pol/rewards/rewardVault";import{GetUserVaults as Ga}from"@berachain/graphql/pol/api";async function gc({account:e,publicClient:t,...r}){let{config:a}=c(r),s=(await b("api",r).query({query:Ga,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:xt,functionName:"earned",args:[e]}))}),t.multicall({allowFailure:!1,contracts:s.map(g=>({address:g.vaultAddress,abi:xt,functionName:"balanceOf",args:[e]}))})]),{userVaults:d,total:u}=s.reduce((g,p,A)=>{let h=i[A],P=l[A];if(g.total+=h,!p.vault)return M.captureException(new B({message:"Deposit data from API is missing vault",level:"error",extra:{deposit:p}})),console.error("Deposit data from API is missing vault",p),g;if(h>0n||P>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:Fe(h,18),formattedBalance:Fe(P,p.vault.stakingToken.decimals),stakingTokenPrice:y})}return g},{userVaults:[],total:0n}),m=[...d].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:m.reduce((g,p)=>{let A=Number(p.vault.dynamicData?.tvl??0);if(A===0)return g;let h=Number.parseFloat(p.vault.stakingTokenAmount),P=A/h;return g+P*Number(p.formattedBalance)},0),totalBgtRewards:Fe(u,18),vaults:m}}import{GetVaultHistory as Ta}from"@berachain/graphql/pol/api";async function wc({vault:e,chain:t,...r}){let{config:a}=c(r);return(await b("api",r).query({query:Ta,variables:{...r,vaultId:e,chain:t??a.bex.chainName}})).data.polGetRewardVaultSnapshots}import{GetVaultValidators as Fa}from"@berachain/graphql/pol/api";async function vc({address:e,onlyActiveValidators:t,...r}){return(await b("api",r).query({query:Fa,variables:{vaultId:e,isActive:t}})).data.validators.validators??[]}import{getAddress as Ea,zeroAddress as Ia}from"viem";import{GetTokenCurrentPrices as qa}from"@berachain/graphql/dex/api";async function Tc({addressIn:e,...t}){let{config:r,chainId:a}=c(t),o=e.map(i=>i.toLowerCase()).filter((i,l,d)=>i&&d.indexOf(i)===l),n=b("api",t),{data:s}=await n.query({query:qa,variables:{chains:[r.bex.chainName],addressIn:o}});return s.tokenGetCurrentPrices.reduce((i,l)=>{if(!l.price||!l.address)return i;let d=l.address;return i[Ea(d)]={price:K(l.price.toString()),updatedAt:l.updatedAt,chainId:a},i[d.toLowerCase()]={price:K(l.price.toString()),updatedAt:l.updatedAt,chainId:a},S(d,"WBERA")&&(i[Ia]={price:K(l.price.toString()),updatedAt:l.updatedAt,chainId:a},i[r.tokens.bgt.toLowerCase()]={price:K(l.price.toString()),updatedAt:l.updatedAt,chainId:a},i[r.tokens.bgt]={price:K(l.price.toString()),updatedAt:l.updatedAt,chainId:a}),i},{})}import{getPublicClient as Da}from"@wagmi/core";import{erc20Abi as Qa,formatUnits as Ua}from"viem";async function Dc({items:e,account:t,config:r}){j(e,"items"),j(r,"config"),j(t,"account");let a=Object.groupBy(e,n=>n.token.chainId);return(await Promise.allSettled(Object.entries(a).map(async([n,s])=>{if(!s)return[];let i=Da(r,{chainId:Number(n)});return v(i,`publicClient ${n}`),(await i.multicall({contracts:s.map(u=>({address:u.token.address,abi:Qa,functionName:"allowance",args:[t,u.spender]}))})).map((u,m)=>{let f=s[m];return u.error?void 0:{token:f.token,spender:f.spender,amount:f.amount,allowance:{raw:u.result.toString(),formatted:Ua(u.result,f.token.decimals)},needsApproval:u.result<BigInt(f.amount.raw)}}).filter(u=>!!u)}))).flatMap(n=>n.status==="fulfilled"?n.value:void 0).filter(n=>!!n)}import{getPublicClient as Oa,getWalletClient as Ma,switchChain as Ha}from"@wagmi/core";import{BaseError as _a,createWalletClient as Ja,decodeErrorResult as $a,HttpRequestError as ja,http as Ka}from"viem";import{ChainId as Ya,defaultChainId as Ft}from"@berachain/config/internal";import{AbiFunctionSignatureNotFoundError as Wa,decodeFunctionData as La}from"viem";async function Gt({publicClient:e,abi:t,...r}){let a=[...le,...t??[]],o,n,s,i,l,d,u;if("txHash"in r){let m=await e.getTransaction({hash:r.txHash});if(!m.to)throw new G({property:"tx",value:m,expected:"Transaction",message:"Trying to get revert reason for a contract creation"});l=m.input,n=m.to,s=m.from,i=m.value,o=m.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)d=r.functionName,u=r.args;else if(!i)throw new G({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)d=r.functionName,u=r.args;else if(l){if(!a){let m=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:m})}try{let m=La({abi:a,data:l});d=m.functionName,u=m.args}catch(m){throw m instanceof Wa&&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&&d?(await e.simulateContract({functionName:d,args:u,abi:a,address:n,account:s,blockNumber:o}),new H({message:"Getting revert reason for successful simulation",functionName:d,to:n,txHash:"txHash"in r?r.txHash:void 0,input:r})):new Error("No data or function name and args provided")}catch(m){if(m instanceof Error)return ee({error:m,abi:a,revertIfUnknown:!0});throw m}}var za=Me(1),Tt=(e,t)=>e*(100n+BigInt(t))/100n;function Ee({nonceResult:e,onWarning:t}){if(e.status==="fulfilled"){if(e.value&&e.value>Number.MAX_SAFE_INTEGER){t?.(new B({message:"Nonce is too large. No nonce will be provided to avoid IntegerOutOfRangeError.",cause:e.value,level:"debug"}));return}return e.value}}function Xa(e=Ft){return e===Ya.BEPOLIA?process.env.NEXT_PUBLIC_80069_ANVIL_IMPERSONATE_ACCOUNT==="true":process.env.NEXT_PUBLIC_80094_ANVIL_IMPERSONATE_ACCOUNT==="true"}async function nd(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 G({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:d,wagmiConfig:u,walletClient:m,account:f,txConfirmationTimeout:g=12e4,chainId:p=Ft,impersonateAccount:A=Xa(p),errorsAbi:h=[],pollingInterval:P=za,...y}=e;n?.(e);let I="data"in y?y.data:void 0,N=[...le,...h,..."abi"in y&&y.abi&&Array.isArray(y.abi)?y.abi:[]],T=m;if(!u){l?.(new G({property:"wagmiConfig",value:u,expected:"Config"}),e);return}if(!(T?.account?.type==="local"))try{await Ha(u,{chainId:p})}catch(R){let x=R;l?.(new B({cause:x,displayMessage:"There was an error switching to the chain."}),e);return}if(!T)try{T=await Ma(u,{chainId:p})}catch(R){l?.(new B({cause:R,displayMessage:"There was an error connecting to the wallet."}),e);return}if(!T){l?.(new G({displayMessage:"There was an error connecting to the wallet.",property:"walletClient",value:T,expected:"WalletClient"}),e);return}let q=f||T.account;if(!q){l?.(new G({property:"account",value:q,expected:"Account"}),e);return}let se=typeof q=="string"?q:q.address,W=Oa(u,{chainId:p});try{v(W)}catch(R){l?.(R,e);return}if(A){let R=ve(p);await R.impersonateAccount({address:se}),T=Ja({transport:Ka(R.transport.url),account:q,chain:T.chain})}let F,Z={calls:"calls"in y?y.calls:void 0,params:"params"in y?y.params:void 0,value:a,data:"data"in y?y.data:void 0};try{let R=W.getTransactionCount({address:se,blockTag:"latest"}).catch(()=>{}),x={account:se,to:t,address:t,chainId:p,value:a};if(r){let E=r.map(w=>{if("abi"in w&&Array.isArray(N)&&N.push(...w.abi),"data"in w)return{to:w.address,data:w.data,value:w.value??0n};if("abi"in w&&"functionName"in w){let L="params"in w?w.params:void 0;return{to:w.address,abi:w.abi,functionName:w.functionName,args:L,value:w.value??0n}}return{to:w.address,value:w.value??0n}});if(e.enableSimulateCalls){let w=await W.simulateCalls({calls:E,account:q}),L=w.results.findIndex(O=>O.status==="failure");if(L!==-1){if(w.block.number===null)throw new G({property:"blockNumber",value:w.block.number,expected:"bigint",message:"Block number is null"});let O=w.results[L],{reason:Ce}=O.data&&O.data!=="0x"?{reason:De($a({data:O.data,abi:N}))}:ee({error:O.error,revertIfUnknown:!1,abi:N});l?.(new H({cause:O.error,txHash:F,chainId:p,reason:Ce,abi:N,input:Z,blockNumber:w.block.number}),e);return}}if(process.env.NODE_ENV==="test")throw new G({displayMessage:"Batch calls are not supported in test environment",expected:"not test",property:"NODE_ENV",value:process.env.NODE_ENV,level:"fatal"});let Q=await T.sendCalls({calls:E,account:q,forceAtomic:!0});d?.({id:Q.id},e);let U=await T.waitForCallsStatus({id:Q.id,pollingInterval:P,timeout:g});if(U.status==="success"){let w=U.receipts?.[0];if(!w)throw new B({message:"Call status is success but no receipt was found",cause:U,level:"error",reason:"CALL_STATUS_SUCCESS_BUT_NO_RECEIPT"});return s?.(w,e),w}throw console.error("wallet_sendCalls: Call failed",U),new H({cause:U,level:"error",input:Z,txHash:F,abi:N,chainId:p})}if(I){let[E,Q,U]=await Promise.allSettled([W.call({...x,data:I}),o??W.estimateGas({...x,data:I}),R]);if(E.status==="rejected")throw E.reason;let w=Q.status==="fulfilled"?Tt(Q.value,10):Be;F=await T.sendTransaction({data:I,to:t,account:q,gas:w,chainId:p,nonce:Ee({nonceResult:U,onWarning(L){i?.(L,e)}}),value:a}),d?.({txHash:F},e)}else if("abi"in y&&"functionName"in y){let{abi:E,functionName:Q}=y,U="params"in y?y.params:void 0,[w,L,O]=await Promise.allSettled([W.simulateContract({...x,abi:N,functionName:Q,args:U,account:q}),o??W.estimateContractGas({...x,abi:N,functionName:Q,args:U}),R]);if(w.status==="rejected")throw w.reason;let Ce=o??(L.status==="fulfilled"?Tt(L.value,10):Be);F=await T.writeContract({...w.value.request,chainId:p,gas:Ce,nonce:Ee({nonceResult:O,onWarning(Ut){i?.(Ut,e)}})}),d?.({txHash:F},e)}else{let[E]=await Promise.allSettled([R]);F=await T.sendTransaction({chainId:p,to:t,value:a,account:q,nonce:Ee({nonceResult:E,onWarning(Q){i?.(Q,e)}})}),d?.({txHash:F},e)}process.env.NODE_ENV==="test"&&await ve(p).mine({blocks:1});let J=await W.waitForTransactionReceipt({hash:F,pollingInterval:P,timeout:g,confirmations:1});if(J.status==="success")s?.(J,e);else{let E=await Gt({publicClient:W,blockNumber:J.blockNumber,to:t,account:se,abi:N,args:"params"in y?y.params:void 0,functionName:"functionName"in y?y.functionName:void 0,value:a,data:I});process.env.NODE_ENV==="test"&&console.error("beraWriteContract: Revert reason",E),l?.(new H({reason:E.reason,txHash:F,receipt:J,to:t,functionName:"functionName"in y?y.functionName:void 0,input:Z,chainId:p,abi:N,blockNumber:J.blockNumber}),e)}return J}catch(R){if(R instanceof B)l?.(R,e);else if(R instanceof Error){let x=ee({error:R,revertIfUnknown:!1,abi:N});if(x&&x.rootCause instanceof _a&&"url"in x.rootCause){l?.(new $({cause:x.rootCause,response:void 0,endpoint:{url:x.rootCause.url,type:"rpc"},statusCode:x.rootCause instanceof ja?x.rootCause.status:void 0}),e);return}l?.(new H({cause:R,to:t,txHash:F,chainId:p,abi:N,functionName:"functionName"in y?y.functionName:void 0,input:Z}),e)}else l?.(new H({cause:R,txHash:F,to:t,chainId:p,functionName:"functionName"in y?y.functionName:void 0,input:Z,abi:N}),e)}}import{GetValidators as Za}from"@berachain/graphql/pol/api";async function Et({variables:e={},...t}={}){let{config:r}=c(t);return(await b("api",t).query({query:Za,variables:{chain:r.bex.chainName,...e}})).data}import{isAddressEqual as eo}from"viem";async function pd({allocation:e}){let t=await be({filter:{where:{vaultAddressIn:e.weights.map(a=>a.receiver)}}}),r=e?.start.blockNumber??0;return e?.weights.map(a=>({percentage:a.percentage,receiver:a.receiver,startBlock:r,receivingVault:t?.gaugeList.find(o=>eo(o.address,a.receiver))}))}import{GetValidator as to}from"@berachain/graphql/pol/api";async function Ad({id:e,...t}){let{config:r}=c(t);return(await b("api",t).query({query:to,variables:{id:e,chain:r.bex.chainName}})).data}import{GetValidatorBlockStats as ro}from"@berachain/graphql/pol/subgraph";async function Pd({pubKey:e,first:t=1,...r}){let a=b("pol.subgraph",r);try{return(await a.query({query:ro,variables:{pubKey:e,first:t}})).data}catch(o){throw console.error("GetValidatorBlockStats:",o),o}}import{beraChefAbi as It}from"@berachain/abis/pol/rewards/beraChef";function X(e,t){return{start:{blockNumber:Number(e.startBlock),timestamp:e.startBlock!==0n?t:0},weights:e.weights.map(r=>({receiver:r.receiver,percentage:Number(r.percentageNumerator)/1e4}))}}function ao(e,t){return e.start.blockNumber===t.start.blockNumber&&e.weights.every((r,a)=>r.percentage===t.weights[a].percentage)}async function Vd({client:e,pubKey:t,...r}){let{config:a}=c(r);try{let[o,n]=await Promise.all([e.readContract({address:a.pol.beraChef,abi:It,functionName:"getActiveRewardAllocation",args:[t]}),e.readContract({address:a.pol.beraChef,abi:It,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=X(o,Number(s.timestamp)),d=X(n,Number(i.timestamp)),u=!1;return d.start.blockNumber===0?u=!0:u=!ao(d,l),{activeRewardAllocation:l,setRewardAllocation:d,isBaseline:u,isNeverSet:d?.start.blockNumber===0}}catch(o){throw console.log("getValidatorRewardAllocation:",o),o}}import{beraChefAbi as oo}from"@berachain/abis/pol/rewards/beraChef";function Gd(e){return e.start.blockNumber===0}async function Td({client:e,...t}){let{config:r}=c(t),a=await e.readContract({address:r.pol.beraChef,abi:oo,functionName:"getDefaultRewardAllocation",args:[]});return X({...a,startBlock:0n},0)}async function Ed({client:e,valPubKey:t}){return 5614}import{formatEther as we}from"viem";import{bgtAbi as Ie}from"@berachain/abis/pol/bgt";async function qt({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:Ie,functionName:"boosted",args:[e,t]}),r.readContract({address:o.tokens.bgt,abi:Ie,functionName:"boostedQueue",args:[e,t]}),r.readContract({address:o.tokens.bgt,abi:Ie,functionName:"dropBoostQueue",args:[e,t]})]),l=n-i[1];return{pubkey:t,droppableBoostAmount:we(l),activeBoostAmount:we(n),queuedBoostAmount:we(s[1]),queuedDropBoostAmount:we(i[1]),queuedBoostStartBlock:s[0],queuedDropBoostStartBlock:i[0],hasPendingBoosts:s[1]>0n||i[1]>0n,hasActiveBoosts:n>0n,hasDroppableBoosts:l>0n}}import{formatEther as io,parseEther as Qt}from"viem";import{GetUserValidatorInformation as no}from"@berachain/graphql/pol/api";async function Dt({account:e,...t}){let{config:r}=c(t);return b("api",t).query({query:no,variables:{address:e.toLowerCase(),chain:r.bex.chainName}})}async function Kd({account:e,publicClient:t,chain:r,...a}){let{config:o}=c(a),n=r??o.bex.chainName,s=await Dt({account:e}),[i,l]=await Promise.all([Et({variables:{chain:n,where:{idIn:s.data.polGetValidatorBoosts.boosts.map(d=>d.validatorId)}}}),Promise.all(s.data.polGetValidatorBoosts.boosts.filter(d=>!!d.validator).map(d=>qt({account:e,pubkey:d.validator.pubkey,publicClient:t})))]);return i?.validators.validators.map(d=>{let u=l.find(f=>f.pubkey.toLowerCase()===d.pubkey.toLowerCase());if(!u)throw new Error("User deposited not found");let m=Qt(u?.activeBoostAmount??"0")-Qt(u?.queuedDropBoostAmount);return{...d,userBoosts:{pubkey:u.pubkey,activeBoostAmount:u?.activeBoostAmount,queuedBoostAmount:u?.queuedBoostAmount,queuedBoostStartBlock:Number(u?.queuedBoostStartBlock),queuedDropBoostAmount:u?.queuedDropBoostAmount,queuedDropBoostStartBlock:Number(u?.queuedDropBoostStartBlock),droppableBoostAmount:io(m),hasPendingBoosts:Number(u?.queuedBoostAmount)>0||Number(u?.queuedDropBoostAmount)>0,hasActiveBoosts:Number(u?.activeBoostAmount)>0,hasDroppableBoosts:m>0n}}})}var so=[{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:k(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:k(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:k(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:k(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:k(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:k(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:k(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 Xd(e){return await new Promise(t=>setTimeout(t,2e3)),e==="0x4C368fFE3650379d6318C8d4630bc51f8Ad12bB6"?so:[]}import{GetValidatorAnalytics as lo}from"@berachain/graphql/pol/subgraph";async function am({pubkey:e,dayRange:t,...r}){return(await b("pol.subgraph",r).query({query:lo,variables:{pubKey:e,timestamp:Je(t).toString()}})).data}import{beraChefAbi as uo}from"@berachain/abis/pol/rewards/beraChef";async function sm({client:e,pubKey:t,...r}){let{config:a}=c(r),o=await e.readContract({address:a.pol.beraChef,abi:uo,functionName:"getValCommissionOnIncentiveTokens",args:[t]});return Number(o??0n)/1e4}var cm=(e,t,r)=>{if(!t||!e)return 0;let a=te(1)/r;return(t?a*(Number(e.dynamicData?.stakedBeraAmount)/t):0)*Number.parseFloat(e.dynamicData?.rewardRate??"0")};import{beaconDepositAbi as co}from"@berachain/abis/pol/beaconDeposit";async function fm({client:e,pubKey:t,...r}){let{config:a}=c(r);try{return await e.readContract({address:a.depositContract,abi:co,functionName:"getOperator",args:[t]})}catch(o){throw console.log("getValidatorOperatorAddress:",o),o}}import{beraChefAbi as mo}from"@berachain/abis/pol/rewards/beraChef";async function Am({client:e,pubKey:t,...r}){let{config:a}=c(r),o=await e.readContract({address:a.pol.beraChef,abi:mo,functionName:"getValQueuedCommissionOnIncentiveTokens",args:[t]});return{blockNumberLast:o.blockNumberLast,commissionRate:Number(o.commissionRate)/1e4}}import{beaconDepositAbi as po}from"@berachain/abis/pol/beaconDeposit";async function Pm({client:e,pubKey:t,...r}){let{config:a}=c(r);try{return await e.readContract({address:a.depositContract,abi:po,functionName:"queuedOperator",args:[t]})}catch(o){throw console.log("getValidatorQueuedOperatorAddress:",o),o}}import{beraChefAbi as fo}from"@berachain/abis/pol/rewards/beraChef";async function Sm({client:e,pubKey:t,...r}){let{config:a}=c(r);try{let o=await e.readContract({address:a.pol.beraChef,abi:fo,functionName:"getQueuedRewardAllocation",args:[t]});return X(o,0)}catch(o){throw console.log("getValidatorQueuedRewardAllocation:",o),o}}export{Ao as a,me as b,b as c,qo as d,ze as e,Jo as f,an as g,un as h,fn as i,Ze as j,Rn as k,xn as l,qn as m,Y as n,Ln as o,fe as p,Jn as q,Kn as r,ei as s,it as t,ui as u,pi as v,yi as w,Ci as x,st as y,ke as z,ut as A,Yi as B,ts as C,Jr as D,is as E,ms as F,gt as G,Ps as H,bt as I,Is as J,Ls as K,_s as L,oa as M,Ys as N,Zs as O,ol as P,be as Q,Fl as R,Pt as S,Wl as T,_l as U,Yl as V,ru as W,uu as X,mu as Y,yu as Z,Pu as _,ne as $,Gu as aa,Qu as ba,Ou as ca,$u as da,Vt as ea,ic as fa,gc as ga,wc as ha,vc as ia,Tc as ja,Dc as ka,Xa as la,nd as ma,Et as na,pd as oa,Ad as pa,Pd as qa,X as ra,ao as sa,Vd as ta,Gd as ua,Td as va,Ed as wa,qt as xa,Kd as ya,Xd as za,am as Aa,sm as Ba,cm as Ca,fm as Da,Am as Ea,Pm as Fa,Sm as Ga};
|
|
4
|
+
//# sourceMappingURL=chunk-AUA42YIG.mjs.map
|