@berachain/berajs 0.1.0-alpha.6 → 0.1.0-alpha.8
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/actions/index.cjs +1 -1
- package/dist/actions/index.d.cts +9 -8
- package/dist/actions/index.d.ts +9 -8
- package/dist/actions/index.mjs +1 -1
- package/dist/{chunk-7SDDMT3W.mjs → chunk-B4M3O4CT.mjs} +1 -1
- package/dist/{chunk-5N57PBAR.mjs → chunk-JQDPAEK2.mjs} +2 -2
- package/dist/{chunk-TYTNDYXV.cjs → chunk-KBW7JTEI.cjs} +1 -1
- package/dist/{chunk-QIWSS7FQ.cjs → chunk-LHFVY26H.cjs} +2 -2
- package/dist/{chunk-BI76GRHX.mjs → chunk-OA6KI7XK.mjs} +3 -3
- package/dist/{chunk-FVT7BKWY.cjs → chunk-SDYUAOO3.cjs} +3 -3
- package/dist/chunk-XX77QPIR.mjs +1 -0
- package/dist/chunk-YKKMWJX5.cjs +1 -0
- package/dist/contexts/index.cjs +1 -1
- package/dist/contexts/index.d.cts +3 -3
- package/dist/contexts/index.d.ts +3 -3
- package/dist/contexts/index.mjs +1 -1
- package/dist/{HoneyConfigProvider-DJ5cZbB5.d.ts → dex-BD7Bq3pJ.d.ts} +171 -171
- package/dist/{HoneyConfigProvider-B7pZiyOD.d.cts → dex-D9U93Ib-.d.cts} +171 -171
- package/dist/{getValidatorQueuedOperatorAddress-C2w750UQ.d.ts → getValidatorQueuedOperatorAddress--AXNo9IY.d.ts} +2 -2
- package/dist/{getValidatorQueuedOperatorAddress-CfiY8nIA.d.cts → getValidatorQueuedOperatorAddress-BbyH7asf.d.cts} +2 -2
- package/dist/hooks/index.cjs +2 -2
- package/dist/hooks/index.d.cts +6 -6
- package/dist/hooks/index.d.ts +6 -6
- package/dist/hooks/index.mjs +2 -2
- package/dist/{staking-CimqAVL0.d.ts → staking-DHCsSRru.d.cts} +1 -1
- package/dist/{staking-DbIi5eSK.d.cts → staking-DYbVFigB.d.ts} +1 -1
- package/dist/types/index.d.cts +4 -4
- package/dist/types/index.d.ts +4 -4
- package/dist/{useHoneySwapState-BA96cjbO.d.ts → useHoneySwapState-A9cyIoOS.d.cts} +1 -1
- package/dist/{useHoneySwapState-BRU2LVkE.d.cts → useHoneySwapState-CW49RVci.d.ts} +1 -1
- package/dist/utils/index.cjs +1 -1
- package/dist/utils/index.d.cts +4 -4
- package/dist/utils/index.d.ts +4 -4
- package/dist/utils/index.mjs +1 -1
- package/package.json +11 -4
- package/dist/chunk-7DPUKGDT.cjs +0 -1
- package/dist/chunk-HOCEXCQJ.mjs +0 -1
package/dist/hooks/index.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{f as L,h as Ge,i as le,n as Fe}from"../chunk-4IBBLGNS.mjs";import{c as q,e as Ke,g as _p,h as Qp,i as Yp,j as Mp,k as Gp,l as Fp,m as pe,n as me,s as B,t as wt}from"../chunk-5N57PBAR.mjs";import"../chunk-MTBICGRP.mjs";import{$ as Xt,A as Wt,B as _t,Ba as yr,C as X,Ca as Ar,Da as br,E as Qt,Ea as hr,F as Yt,Fa as Rr,H as Mt,Ha as kr,Ja as wr,K as Gt,Ka as Pr,La as Tr,Ma as Ir,N as Ae,Na as Cr,O as Ft,Oa as Er,P as ze,Pa as Sr,Q as Kt,Qa as xr,R as qt,Ra as vr,S as be,Sa as Br,T as $t,Ta as Or,Ua as Dr,V as Zt,Va as Lr,W as zt,Y as jt,Z as Jt,a as ce,aa as er,ba as tr,c as $,ca as rr,e as S,f as Tt,fa as he,g as fe,ga as Re,h as It,i as Ct,ia as or,k as Et,l as St,la as nr,m as xt,ma as sr,na as ir,o as vt,oa as lr,pa as ur,q as N,qa as pr,ra as mr,sa as dr,t as Bt,u as Ot,ua as cr,w as Ut,wa as fr,xa as ke,y as Ht,z as Vt,za as gr}from"../chunk-BI76GRHX.mjs";import{b as oe,c as _,k as Rt,l as K,m as G,n as ue,o as kt}from"../chunk-AHAZC5K3.mjs";import{a as qe,b as ne,c as y,d as j,e as Ze,g as ar}from"../chunk-YKNKCICU.mjs";import"../chunk-K4NZIO2Z.mjs";import{B as Nt,C as ge,Q as ye,c as Pt,i as $e,j as Dt,z as Lt}from"../chunk-7SDDMT3W.mjs";import{b as P,c as H,e as de,f as k}from"../chunk-HOCEXCQJ.mjs";import{a as J}from"../chunk-5UFI7X4U.mjs";import{f as x,g as E}from"../chunk-5GPS724E.mjs";import mn from"swr";import{usePublicClient as dn}from"@berachain/wagmi/hooks";var zp=({sharesAmount:e,vaultAddress:t,vaultChainId:r},o)=>{let n=dn({chainId:r}),s=mn(n&&e&&t?["useGetConvertToAssets",e,t,r]:null,async([a,i,l])=>(y(n),ce({sharesAmount:i,vaultAddress:l,publicClient:n})),{...o?.opts});return{...s,refresh:()=>{s.mutate()}}};import{useMemo as qr}from"react";import Q from"swr";import{parseUnits as Bn,zeroAddress as On}from"viem";import{defaultChainId as pt}from"@berachain/config/internal";import{useBeraWallet as Dn,usePublicClient as Ln}from"@berachain/wagmi/hooks";import{Slippage as cn,Swap as fn,SwapKind as gn,Token as Nr,TokenAmount as yn}from"@berachain-foundation/berancer-sdk";import{captureException as An}from"@sentry/nextjs";import{decodeFunctionData as bn,formatEther as Ur,zeroAddress as Hr}from"viem";import{getUriFromLink as hn}from"@berachain/config";import{ChainId as Vr}from"@berachain/config/internal";var Rn=300,kn=.05,je=gn.GivenIn,Je=class extends S{name="Hub Pools";supportedChains=[Vr.MAINNET,Vr.BEPOLIA];url=hn(this.config.api);type="graphql";convertZeroToWrapped(t){return k(t,"BERA")?this.config.tokens.wbera:t}calculatePriceImpact(t){return t.error?(console.error("Swap price impact error",t),0):Number(t.priceImpact)}checkStalePrices(t,r,o,n){let s=Number.parseFloat(Ur(t.scale18))/Number.parseFloat(o);if(Math.abs(1-s)>kn){console.warn("SOR returned stale prices. Delta from return amount is more than 5%",{deltaFromSorAmount:s});let a=new x({reason:"SOR_STALE_PRICES",level:"warning",message:"SOR returned stale prices. Delta from return amount is more than 5%"});An(a,{level:"warning",extra:{deltaFromSorAmount:s,pools:r.map(i=>i.pools),onChainAmount:Ur(t.scale18),sorAmount:o,queryData:n},fingerprint:["SOR_STALE_PRICES"]})}}async getQuote(t){let r=new Tt(this.url,this.chainId),{tokenIn:o,tokenOut:n,tokenInDecimals:s,tokenOutDecimals:a,amount:i,slippage:l,account:u=Hr,publicClient:m}=t;if(this.checkChainSupport(),y(m),!s)throw new E({property:"tokenInDecimals",value:s,expected:"number",chainId:this.chainId});if(!a)throw new E({property:"tokenOutDecimals",value:a,expected:"number",chainId:this.chainId});let p=k(o,"BERA")||k(n,"BERA"),d=new Nr(this.chainId,this.convertZeroToWrapped(o),s),c=new Nr(this.chainId,this.convertZeroToWrapped(n),a),f=yn.fromRawAmount(d,i),{paths:g,priceImpact:A,returnAmount:R}=await r.sorSwapPaths.fetchSorSwapPaths({chainId:this.chainId,tokenIn:d.address,tokenOut:c.address,swapKind:je,swapAmount:f});if(!g?.length)throw new J({response:void 0,endpoint:{url:this.url,name:this.name,type:this.type},reason:S.PATH_NOT_FOUND_REASON,chainId:this.chainId,payload:{tokenIn:d.address,tokenOut:c.address,swapKind:je,swapAmount:f},message:"No swap paths returned from Balancer API"});let h=new fn({chainId:this.chainId,paths:g,swapKind:je,userData:"0x"}),b=await h.query(m.transport.url);if(!("expectedAmountOut"in b))throw new Error("No Bex paths found");this.checkStalePrices(b.expectedAmountOut,g,R,t);let T={amountOut:b.expectedAmountOut.amount.toString(),amountIn:i,spender:b.to,name:this.name,priceImpactPercentage:this.calculatePriceImpact(A),swapFeeBps:0};if(u===Hr)return T;let w=h.buildCall({slippage:cn.fromPercentage(l.toString()),deadline:BigInt(Math.round(Date.now()/1e3)+Rn),queryOutput:b,sender:u,recipient:u,wethIsEth:p}),{args:I,functionName:C}=bn({abi:oe,data:w.callData});return{...T,calldata:{params:I,functionName:C,abi:oe,address:w.to,value:w.value||BigInt(0)}}}},we=new Je;import{ChainId as Wr}from"@berachain/config/internal";var Xe=class extends S{name="RedeemBgt";supportedChains=[Wr.MAINNET,Wr.BEPOLIA];type="rpc";async getQuote({tokenIn:t,amount:r}){if(this.checkChainSupport(),!k(t,"BGT",{config:this.config}))throw new E({property:"tokenIn",value:t,expected:"BGT",level:"warning"});return{amountOut:r,amountIn:r,spender:void 0,name:"RedeemBgt",isNativeSwap:!0,swapFeeBps:0}}},Pe=new Xe;import{zeroAddress as _r}from"viem";import{ChainId as Qr}from"@berachain/config/internal";var et=class extends S{name="Enso";supportedChains=[Qr.MAINNET];type="rest";notFoundMessages=["Could not build shortcuts for route","Swap not found for a required underlying of defi route,"];async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:n,account:s=_r,aggregatorsFeeBps:a,proxyAggregatorsThroughVercel:i=!1,rewardVault:l}){this.checkChainSupport();let{tokenInAddress:u,tokenOutAddress:m,isTokenInNative:p,isTokenOutNative:d}=this.parseAddresses(t,r),c=this.getAmountAfterFees(o,a);this.url=i?"/api/aggregators?aggregator=enso":`${this.config.bex.aggregatorsProxyUrl}/enso/api/v1/shortcuts/route?`;let f=new URL(this.url);f.searchParams.set("fromAddress",this.config.bex.aggregatorsRouterExecutor),f.searchParams.set("receiver",this.config.bex.aggregatorsRouterExecutor),f.searchParams.set("spender",this.config.bex.aggregatorsRouterExecutor),f.searchParams.set("amountIn",c),f.searchParams.set("tokenIn",u),f.searchParams.set("tokenOut",m),f.searchParams.set("chainId",Qr.MAINNET.toString()),f.searchParams.set("slippage",(Number(n)*100).toString()),f.searchParams.set("refundReceiver",s);let A=await(await this.fetch(f)).json(),R=this.getInputData({tokenIn:u,amountIn:o,isNative:p}),h={tokenOut:m,receiver:s,minAmountOut:this.getMinAmountOut(A.amountOut.toString(),n),isNative:d},b={aggregator:A.tx?.to,data:A.tx?.data};return{amountOut:A.amountOut.toString(),amountIn:o,spender:this.config.bex.aggregatorsRouter,name:this.name,swapFeeBps:a,calldata:{params:[R,h,b,{rewardVault:l??_r,isSwapAndStake:!!l}],functionName:"swap",abi:L,value:BigInt(p?o:"0"),address:this.config.bex.aggregatorsRouter}}}},Te=new et;import{zeroAddress as Ie}from"viem";import{ChainId as wn}from"@berachain/config/internal";var Yr="https://api.magpiefi.xyz/aggregator",tt=class extends S{name="Fly";supportedChains=[wn.MAINNET];type="rest";notFoundMessages=["Couldn't recognize to token","There is not enough liquidity. Amount is too high.","Routes were not found"];async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:n,account:s=Ie,aggregatorsFeeBps:a,rewardVault:i}){this.checkChainSupport();let{tokenInAddress:l,tokenOutAddress:u,isTokenInNative:m,isTokenOutNative:p}=this.parseAddresses(t,r),d=this.getAmountAfterFees(o,a),c=new URL(`${Yr}/quote`);this.url=c.toString();let f=new URLSearchParams({fromTokenAddress:l,toTokenAddress:u,sellAmount:d,slippage:(n/100).toString(),gasless:"false",network:"berachain"});s!==Ie&&(f.set("fromAddress",this.config.bex.aggregatorsRouterExecutor),f.set("toAddress",this.config.bex.aggregatorsRouterExecutor)),c.search=f.toString();let A=await(await this.fetch(c)).json(),R={amountOut:A.amountOut,amountIn:o,spender:this.config.bex.aggregatorsRouter,name:this.name,swapFeeBps:a??0};if(s===Ie)return R;let h=new URL(`${Yr}/transaction`);this.url=h.toString();let b=new URLSearchParams({quoteId:A.id,estimateGas:"false"});h.search=b.toString();let w=await(await this.fetch(h)).json(),I=this.getInputData({tokenIn:l,amountIn:o,isNative:m}),C={tokenOut:u,receiver:s,minAmountOut:this.getMinAmountOut(A.amountOut,n),isNative:p},v={aggregator:w.to,data:w.data};return{...R,calldata:{params:[I,C,v,{rewardVault:i??Ie,isSwapAndStake:!!i}],functionName:"swap",abi:L,value:k(t,"BERA")?BigInt(o):BigInt("0"),address:this.config.bex.aggregatorsRouter}}}},Ce=new tt;import{formatUnits as Pn,parseUnits as Tn,zeroAddress as rt}from"viem";import{ChainId as In}from"@berachain/config/internal";var ot=class extends S{name="Haiku";supportedChains=[In.MAINNET];type="rest";notFoundMessages=["token not found","Token is not supported","No route found for the given input or the liquidity is not enough","Invalid input amount. Please ensure the total amount of input is greater than 0.001 USD"];async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:n,account:s=rt,tokenInDecimals:a,tokenOutDecimals:i,aggregatorsFeeBps:l,proxyAggregatorsThroughVercel:u=!1,referrer:m,rewardVault:p}){if(a===void 0||i===void 0)throw new x({message:"Missing required params",level:"error"});this.checkChainSupport();let{tokenInAddress:d,tokenOutAddress:c,isTokenInNative:f,isTokenOutNative:g}=this.parseAddresses(t,r),A=this.getAmountAfterFees(o,l),R={intent:{allowancesMode:"approve",slippage:n/100,receiver:this.config.bex.aggregatorsRouterExecutor,input_positions:{[`bera:${d}`]:Pn(BigInt(A),a)},target_weights:{[`bera:${c}`]:1}}},h=m==="ZAP"?"zap-haiku":"haiku";this.url=u?"/api/aggregators?aggregator=haikuQuote":`${this.config.bex.aggregatorsProxyUrl}/${h}/v1/quoteIntent`;let T=await(await this.fetch(this.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(R)})).json(),w={amountOut:Tn(T.balances[0].amount,i).toString(),amountIn:o,spender:this.config.bex.aggregatorsRouter,name:this.name,swapFeeBps:l};if(s===rt)return w;this.url=u?"/api/aggregators?aggregator=haikuSolve":`${this.config.bex.aggregatorsProxyUrl}/${h}/v1/solveIntent`;let C=await(await this.fetch(this.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({quoteId:T.quoteId})})).json(),v=this.getInputData({tokenIn:d,amountIn:o,isNative:f,isPermit2Approval:!0,permit2SpenderAddress:this.config.bex.haikuAgentAddress}),M={tokenOut:c,receiver:s,minAmountOut:this.getMinAmountOut(w.amountOut,n),isNative:g},W={aggregator:C.to,data:C.data};return{...w,calldata:{params:[v,M,W,{rewardVault:p??rt,isSwapAndStake:!!p}],functionName:"swap",abi:L,value:BigInt(f?o:"0"),address:this.config.bex.aggregatorsRouter}}}},Ee=new ot;import{BigNumber as Cn}from"bignumber.js";import{formatUnits as Mr}from"viem";import{ChainId as En}from"@berachain/config/internal";function Sn(e){return e?"previewMintHoney":"previewRedeemCollaterals"}var se=class e extends S{name="Honey";supportedChains=[En.MAINNET];type="rpc";honeyToken=de(this);static isHoneyNativeSwap({tokenIn:t,tokenOut:r,honeyNativeState:o,...n}){if(!o?.collateralList)return!1;let s=k(r,"HONEY",n),a=k(t,"HONEY",n);return!s&&!a?!1:o.collateralList.some(i=>k(i.address,s?t:r))}async getQuote({tokenIn:t,tokenOut:r,amount:o,publicClient:n,account:s,honeyNativeState:a}){let{collateralList:i}=a??{};if(!i)throw new E({message:"Invalid Honey Context state",property:"collaterals",value:i,expected:"TokenWithOrder[]"});y(n),this.checkChainSupport();let l=k(r,this.honeyToken);if(!e.isHoneyNativeSwap({tokenIn:t,tokenOut:r,honeyNativeState:a}))throw new x({message:"Honey Aggregator only supports minting or redeeming Honey"});let u=i,m=i.find(I=>k(I.address,l?t:r));if(!m)throw new x({message:"This collateral is not part of the Honey protocol"});let[p,d]=await Promise.all([Ae({client:n,collateralList:[m]}),be({client:n,isMint:l,collateralList:i,latestPrices:void 0,isPythWrapperEnabled:!1})]);if(!p)throw new x({message:"Failed to fetch the Honey vault balances"});if(d)return;let c=p[0],f=m.order;u.length>1&&f!==0&&(u.splice(f,1),u.unshift(m));let g=Mr(BigInt(o),l?m.decimals:this.honeyToken.decimals),A={client:n,collateral:m,collateralList:i,amount:g,method:Sn(l),latestPrices:void 0,isPythWrapperEnabled:!1},R=await Gt(A);if(!R)throw new x({message:"Failed to fetch the Honey preview"});let{honey:h,collaterals:b}=R;if(!(l?!0:new Cn(c?.formattedBalance??"0").gte(Mr(b[m.address],m.decimals))))return;let w=s?await qt({state:{actionType:l?"mint":"redeem",fromAmount:[g],collaterals:u,isBasketModeEnabled:!1},account:s,collateralList:u,publicClient:n,priceFeedMap:void 0,isPythWrapperEnabled:!1}):void 0;if(!w&&s)throw new x({message:"Failed to fetch the Honey swap payload"});return{amountIn:o,amountOut:l?h.toString():b[m.address].toString(),spender:this.config.honey.factory,name:"Honey",swapFeeBps:0,calldata:w}}},Se=new se;import{zeroAddress as nt}from"viem";import{ChainId as xn}from"@berachain/config/internal";var st=class extends S{name="KyberSwap";supportedChains=[xn.MAINNET];type="rest";notFoundMessages=["token not found","route not found","amountIn is greater than max allowed"];async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:n,account:s=nt,aggregatorsFeeBps:a,proxyAggregatorsThroughVercel:i=!1,rewardVault:l}){this.checkChainSupport();let{isTokenInNative:u,isTokenOutNative:m,tokenInAddress:p,tokenOutAddress:d}=this.parseAddresses(t,r),c=this.getAmountAfterFees(o,a);this.url=i?"/api/aggregators?aggregator=kyberswapRoutes":`${this.config.bex.aggregatorsProxyUrl}/kyberswap/berachain/api/v1/routes`;let f=new URL(this.url);f.searchParams.set("tokenIn",p),f.searchParams.set("tokenOut",d),f.searchParams.set("amountIn",c),f.searchParams.set("slippageTolerance",(n/100).toString()),f.searchParams.set("to",this.config.bex.aggregatorsRouterExecutor),f.searchParams.set("clientData",JSON.stringify({source:"berachain"}));let A=await(await this.fetch(f)).json(),R={amountOut:A.data.routeSummary.amountOut,amountIn:o,spender:this.config.bex.aggregatorsRouter,name:this.name,swapFeeBps:a};if(s===nt)return R;let h={routeSummary:A.data.routeSummary,sender:this.config.bex.aggregatorsRouterExecutor,recipient:this.config.bex.aggregatorsRouterExecutor,slippageTolerance:n*100,deadline:Math.floor(Date.now()/1e3)+300,source:"berachain"},b=f.searchParams.entries(),T=new URL(i?"/api/aggregators?aggregator=kyberswapBuild":`${this.config.bex.aggregatorsProxyUrl}/kyberswap/berachain/api/v1/route/build`);for(let[W,O]of b)T.searchParams.set(W,O);let I=await(await this.fetch(T,{method:"POST",body:JSON.stringify(h)})).json(),C=this.getInputData({tokenIn:p,amountIn:o,isNative:u}),v={tokenOut:d,receiver:s,minAmountOut:this.getMinAmountOut(R.amountOut,n),isNative:m},M={aggregator:I.data.routerAddress,data:I.data.data};return{...R,calldata:{params:[C,v,M,{rewardVault:l??nt,isSwapAndStake:!!l}],functionName:"swap",abi:L,value:BigInt(u?o:"0"),address:this.config.bex.aggregatorsRouter}}}},xe=new st;import{zeroAddress as at}from"viem";import{ChainId as vn}from"@berachain/config/internal";var it=class extends S{name="Oogabooga";supportedChains=[vn.MAINNET];type="rest";async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:n,account:s=at,aggregatorsFeeBps:a,proxyAggregatorsThroughVercel:i=!1,rewardVault:l}){this.checkChainSupport();let{tokenInAddress:u,tokenOutAddress:m,isTokenInNative:p,isTokenOutNative:d}=this.parseAddresses(t,r),c=this.getAmountAfterFees(o,a),f=new URLSearchParams({tokenIn:u,tokenOut:m,amount:c,slippage:(n/100).toString(),to:this.config.bex.aggregatorsRouterExecutor,referrer:this.config.bex.aggregatorsRouter});this.url=i?`/api/aggregators?aggregator=oogabooga&${f.toString()}`:`${this.config.bex.aggregatorsProxyUrl}/oogabooga/v1/swap?${f.toString()}`;let A=await(await this.fetch(this.url)).json(),R={amountOut:A.assumedAmountOut,amountIn:o,spender:this.config.bex.aggregatorsRouter,name:this.name,priceImpactPercentage:A.priceImpact,swapFeeBps:a};if(s===at)return R;let h=this.getInputData({tokenIn:u,amountIn:o,isNative:p}),b={tokenOut:m,receiver:s,minAmountOut:this.getMinAmountOut(R.amountOut,n),isNative:d},T={aggregator:A.tx?.to,data:A.tx?.data};return{...R,calldata:{params:[h,b,T,{rewardVault:l??at,isSwapAndStake:!!l}],functionName:"swap",abi:L,value:BigInt(p?o:"0"),address:this.config.bex.aggregatorsRouter}}}},ve=new it;import{zeroAddress as Gr}from"viem";import{ChainId as Fr}from"@berachain/config/internal";var lt=class extends S{name="OpenOcean";supportedChains=[Fr.MAINNET];type="rest";url="https://open-api.openocean.finance/v4/bera/swap";notFoundMessages=["No avail liquidity for the pair"];async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:n,account:s=Gr,aggregatorsFeeBps:a,tokenInDecimals:i,publicClient:l,rewardVault:u}){if(y(l),!i)throw new E({property:"tokenInDecimals",value:i,expected:"number",chainId:this.chainId});this.checkChainSupport();let m=this.getAmountAfterFees(o,a),{tokenInAddress:p,tokenOutAddress:d,isTokenInNative:c,isTokenOutNative:f}=this.parseAddresses(t,r),g=(await l.getGasPrice()).toString(),A=new URLSearchParams({chain:Fr.MAINNET.toString(),inTokenAddress:p,outTokenAddress:d,amountDecimals:m,slippage:n<.01?"0.01":n.toString(),account:this.config.bex.aggregatorsRouterExecutor,referrer:this.config.bex.aggregatorsRouter,gasPrice:g}),R=await this.fetch(`${this.url}?${A.toString()}`),h=await R.json();if(h.code!==200||!h.data){let C=this.notFoundMessages.some(v=>h.error.includes(v));throw new J({response:R,endpoint:{url:this.url,name:this.name,type:this.type},cause:h,reason:C?S.PATH_NOT_FOUND_REASON:h.error})}let b={amountOut:h.data.outAmount,amountIn:o,spender:this.config.bex.aggregatorsRouter,name:this.name,swapFeeBps:a},T=this.getInputData({tokenIn:p,amountIn:o,isNative:c}),w={tokenOut:d,receiver:s,minAmountOut:this.getMinAmountOut(b.amountOut,n),isNative:f},I={aggregator:h.data.to,data:h.data.data};return{...b,calldata:{params:[T,w,I,{rewardVault:u??Gr,isSwapAndStake:!!u}],functionName:"swap",abi:L,value:BigInt(c?o:"0"),address:this.config.bex.aggregatorsRouter}}}},Be=new lt;import{ChainId as Kr}from"@berachain/config/internal";var ut=class extends S{name="Wrap";supportedChains=[Kr.MAINNET,Kr.BEPOLIA];type="rpc";async getQuote({tokenIn:t,tokenOut:r,amount:o}){if(this.checkChainSupport(),!k(t,"BERA")&&!k(t,"WBERA")||!k(r,"WBERA")&&!k(r,"BERA"))throw new x({message:"Invalid token pair",level:"error"});let n=k(t,"BERA")&&k(r,"WBERA");return{amountOut:o,amountIn:o,spender:void 0,name:n?"Wrap":"Unwrap",isNativeSwap:!0,swapFeeBps:0,calldata:n?{abi:Fe,address:this.config.tokens.wbera,functionName:"deposit",params:[],value:BigInt(o)}:{abi:Fe,address:this.config.tokens.wbera,functionName:"withdraw",params:[BigInt(o)],value:BigInt(0)}}}},Oe=new ut;var Nn=[ve,Ce,xe,Be,Ee,Te,we,Se],Un="useAggregatorsQuotes";function Y({name:e,account:t,args:r,feeBps:o,options:n,activeAggregators:s,honeyNativeState:a}){if(e!==Pe.name&&(k(r.tokenIn,"BGT",{chainId:pt})||k(r.tokenOut,"BGT",{chainId:pt})))return null;let{tokenIn:i,tokenOut:l,tokenInDecimals:u,tokenOutDecimals:m,amount:p,slippage:d,referrer:c,rewardVault:f}=r,g=Bn(p,u).toString(),A=!s||s.includes(e.toLowerCase().replaceAll(" ",""));return n?.opts?.isEnabled&&Number(p)&&o!==void 0&&A?[Un,e,i,l,g,d,t,o,u,m,c,f,a?.collateralList]:null}function Z({aggregator:e,publicClient:t,proxyAggregatorsThroughVercel:r}){return async([,,o,n,s,a,i,l,u,m,p,d,c])=>e.getQuote({tokenIn:o,tokenOut:n,amount:s,slippage:a,account:i,aggregatorsFeeBps:l,tokenInDecimals:u,tokenOutDecimals:m,publicClient:t,proxyAggregatorsThroughVercel:r,referrer:p,rewardVault:d,honeyNativeState:{collateralList:c??[]}})}var Md=(e,t)=>{let{address:r}=Dn(),o=q("proxyAggregatorsThroughVercel"),n=q("aggregators"),s=Ln(),{data:a}=$r(),{collateralList:i,protocol:l}=e.honeyNativeState??{},u=(k(e.tokenIn,"BERA")||k(e.tokenIn,"WBERA"))&&(k(e.tokenOut,"BERA")||k(e.tokenOut,"WBERA")),m=k(e.tokenIn,"BGT",{chainId:pt}),p=qr(()=>se.isHoneyNativeSwap(e),[e.tokenOut,e.tokenIn,i]),d=u||m,{config:c}=P(e),f=c.bex.aggregatorsRouter!==On,g={refreshInterval:1e4,errorRetryCount:3,onErrorRetry(D,F,z,re,U){if(!(D instanceof x&&D.reason===S.PATH_NOT_FOUND_REASON)){if(D instanceof J&&D.statusCode===403){console.warn(F[1],"returned error 403, stopping retries");return}U.retryCount>(z.errorRetryCount??3)||setTimeout(()=>{re()},z.errorRetryInterval??ge(10))}}},A=Q(d||!f?null:Y({name:ve.name,account:r,args:e,feeBps:a,options:t,activeAggregators:n}),Z({aggregator:ve,proxyAggregatorsThroughVercel:o}),g),R=Q(d||!f?null:Y({name:Ce.name,account:r,args:e,feeBps:a,options:t,activeAggregators:n}),Z({aggregator:Ce,proxyAggregatorsThroughVercel:o}),g),h=Q(d||!f?null:Y({name:xe.name,account:r,args:e,feeBps:a,options:t,activeAggregators:n}),Z({aggregator:xe,proxyAggregatorsThroughVercel:o}),g),b=Q(d||!f?null:Y({name:Be.name,account:r,args:e,feeBps:a,options:t,activeAggregators:n}),Z({aggregator:Be,publicClient:s,proxyAggregatorsThroughVercel:o}),g),T=Q(d||!f?null:Y({name:Ee.name,account:r,args:e,feeBps:a,options:t,activeAggregators:n}),Z({aggregator:Ee,publicClient:s,proxyAggregatorsThroughVercel:o}),g),w=Q(d||!f?null:Y({name:Te.name,account:r,args:e,feeBps:a,options:t,activeAggregators:n}),Z({aggregator:Te,proxyAggregatorsThroughVercel:o}),g),{protocol:I}=Ke(),C=Q(d||I.isPaused===!0||e.rewardVault?null:Y({name:we.name,account:r,args:e,feeBps:0,options:t,activeAggregators:n}),Z({aggregator:we,publicClient:s}),g),v=Q(u?Y({name:Oe.name,account:r,args:e,feeBps:0,options:t,activeAggregators:void 0}):null,async([,,D,F,z,,re])=>Oe.getQuote({tokenIn:D,tokenOut:F,amount:z,account:re}),g),M=Q(m?Y({name:Pe.name,account:r,args:e,feeBps:0,options:t,activeAggregators:void 0}):null,async([,,D,,F])=>Pe.getQuote({tokenIn:D,amount:F}),g),W=Q(!p||d||l?.isPaused===!0||!i?null:Y({name:Se.name,account:r,args:e,feeBps:0,options:t,activeAggregators:void 0,honeyNativeState:{collateralList:i}}),Z({aggregator:Se,publicClient:s,proxyAggregatorsThroughVercel:o}),g),O=u?[v]:m?[M]:[A,R,h,b,T,w,W,I.isPaused===!1?C:null].filter(D=>D!==null);return{...qr(()=>{let D=O.reduce((U,Me)=>U||Me.error,void 0),F=O.map((U,Me)=>U.isLoading?d?Oe.name:Nn[Me].name:null).filter(Boolean),z=O.filter(U=>U!==void 0&&!U.isLoading&&!U.error&&U.data?.amountOut).map(({data:U})=>U),re=z.length===0&&F.length>0;return{quotes:z,loadingAggregatorsNames:F,isLoading:re,error:D}},[O]),refresh:()=>O.map(D=>D.mutate())}};import Hn from"swr/immutable";import{zeroAddress as Vn}from"viem";import{usePublicClient as Wn}from"@berachain/wagmi/hooks";var $r=()=>{let e=Wn(),{config:t}=P({chainId:e.chain?.id}),r=Hn(e&&t.bex.aggregatorsRouter&&t.bex.aggregatorsRouter!==Vn?["useAggregatorsRouterFeeBps",t.bex.aggregatorsRouter]:null,async([,o])=>{let n=await e.readContract({address:o,abi:L,functionName:"SWAP_FEE_RATE"});return Number(n)});return{...r,refresh:r.mutate}};import _n from"swr";var Qn=({query:e}={})=>["useAllUserPools",e],Zr=(e,t)=>{let r=_n(Qn({query:e}),async([o,n])=>fe({...n,fetchPolicy:"no-cache"}),{refreshInterval:18e4,...t?.opts});return{...r,refresh:()=>{r.mutate()}}};import Yn from"swr";import{isAddress as Mn}from"viem";var Gn=({poolId:e,account:t})=>e?["usePool-api",e,t]:null;function zr({poolId:e,account:t}){let r=Yn(Gn({poolId:e,account:t}),async([,o,n])=>{if(n&&!Mn(n))throw new E({property:"account",value:n,expected:"Address"});return It({poolId:o,account:n})},{refreshInterval:1e5});return{...r,refresh:()=>{r.mutate()}}}import{useMemo as eo}from"react";import{PoolType as De}from"@berachain-foundation/berancer-sdk";import Kn from"swr/immutable";import{formatUnits as qn,keccak256 as $n,parseUnits as Le,zeroAddress as dt}from"viem";import{GetDedupedSubgraphPools as Zn}from"@berachain/graphql/dex/subgraph";import{PoolType as jr}from"@berachain-foundation/berancer-sdk";import{formatUnits as Fn}from"viem";var mt=e=>[...e].sort((t,r)=>t.address.toLowerCase().localeCompare(r.address.toLowerCase())),Jr=e=>e.length===0?"":mt(e).map(t=>t.symbol).join(" | "),Xr=(e,t,r)=>{let o;switch(r){case jr.ComposableStable:o="STABLE";break;default:o=r.toString().toUpperCase();break}return r===jr.Weighted?t.length===0?"":`${mt(e).map((n,s)=>{let a=t[s];return`${(Number.parseFloat(Fn(a,18))*100).toFixed(0)}${n.symbol}`}).join("-")}-${o}`:`${mt(e).map(n=>n.symbol).join("-")}-${o}`};var zn=.005,jn=(r=>(r.None="None",r.Custom="Custom",r))(jn||{}),Jn=({poolCreationHelper:e,poolCreateTokens:t,initialLiquidityTokens:r,swapFeePercentage:o,salt:n,poolName:s,poolSymbol:a,owner:i,amplification:l,oracles:u,message:m,actionType:p,gasLimit:d=$e})=>{let c=t.map(w=>w.address.toLowerCase()).sort((w,I)=>w<I?-1:1),f=c.map(w=>{let I=r.find(O=>O.address.toLowerCase()===w||k(w,"WBERA")&&k(O.address,"BERA")),C=I?Le(I.amount,I.decimals):0n,v=u.find(O=>O.tokenAddress.toLowerCase()===w.toLowerCase()),M=v?v.address:dt,W=BigInt(v?v.cacheDuration:100);return{amountIn:C,rateProvider:M,cacheDuration:W}}),g=f.map(w=>w.amountIn),A=f.map(w=>w.rateProvider),R=f.map(w=>w.cacheDuration),h=r.findIndex(w=>k(w.address,"BERA")),b=h!==-1?Le(r[h].amount,r[h].decimals):0n,T=b>0n;return{address:e,abi:Ge,functionName:"createAndJoinStablePool",params:[s,a,c,BigInt(l),A,R,!1,o,g,i,n,T],message:m,actionType:p,value:b,gasLimit:d,track:{eventName:"hub_pool_create",eventData:{poolName:s,poolSymbol:a}}}},Xn=({poolCreationHelper:e,poolCreateTokens:t,initialLiquidityTokens:r,normalizedWeights:o,swapFeePercentage:n,salt:s,poolName:a,poolSymbol:i,owner:l,message:u,actionType:m,gasLimit:p=$e})=>{let d=[],c=[],f=[],g=[];t.map((h,b)=>({createToken:h.address,joinToken:r[b].address,weight:o[b],amountIn:Le(r[b].amount,r[b].decimals)})).sort((h,b)=>h.createToken.toLowerCase()<b.createToken.toLowerCase()?-1:1).forEach(h=>{d.push(h.createToken),c.push(h.joinToken),f.push(h.weight),g.push(h.amountIn)});let A=c.indexOf(dt),R=A!==-1?g[A]:0n;return{address:e,abi:Ge,functionName:"createAndJoinWeightedPool",params:[a,i,d,c,f,Array(d.length).fill(dt),n,g,l,s],message:u,actionType:m,value:R,gasLimit:p,track:{eventName:"hub_pool_create",eventData:{poolName:a,poolSymbol:i}}}},Rc=({poolCreateTokens:e,initialLiquidityTokens:t,normalizedWeights:r,poolType:o,poolName:n,poolSymbol:s,swapFee:a,owner:i,amplification:l,oracles:u,weightsDuplicationThreshold:m=zn,...p})=>{let{data:d,error:c,isLoading:f}=Kn(["useCreatePool__deduped_pool",e,o,r],async()=>{if(e.length===0||!o)return null;let h=$("bex.subgraph",{});try{let b=ye(e).map(I=>I.address.toLowerCase()).sort((I,C)=>I.toLowerCase()<C.toLowerCase()?-1:1);return(await h.query({query:Zn,variables:{tokens:b,type:o}})).data.pools.filter(I=>I.tokens?.every(C=>o===De.Weighted?b.includes(C.address)&&Math.abs(Number(C.weight)-Number(qn(r[b.indexOf(C.address)],18)))<m:b.includes(C.address)||C.address===I.address))?.at(0)??null}catch{return null}}),{generatedPoolName:g,generatedPoolSymbol:A}=eo(()=>{if(!e)return{generatedPoolName:"",generatedPoolSymbol:""};let h=Jr(e),b=Xr(e,r,o);return{generatedPoolName:h,generatedPoolSymbol:b}},[e,r,o]),R=eo(()=>{if(!i||n===""||s===""||e.length!==t.length||e.length===0)return null;let h=Le(a.toString(),16),b=$n(Buffer.from(`${n}-${i}`)),{config:T}=P(p);return o===De.Weighted?Xn({poolCreationHelper:T.bex.poolCreationHelper,poolCreateTokens:e,initialLiquidityTokens:t,normalizedWeights:r,swapFeePercentage:h,salt:b,poolName:n,poolSymbol:s,owner:i,message:`Create pool ${n}`,actionType:"Create Pool"}):o===De.ComposableStable||o===De.MetaStable?Jn({poolCreationHelper:T.bex.poolCreationHelper,poolCreateTokens:e,initialLiquidityTokens:t,swapFeePercentage:h,salt:b,poolName:n,poolSymbol:s,owner:i,amplification:l,oracles:u,message:`Create pool ${n}`,actionType:"Create Pool"}):null},[e,t,r,o,a,n,s,i,l,u]);return{generatedPoolName:g,generatedPoolSymbol:A,isDupePool:!!d,dupePool:d,createPoolArgs:R,isLoadingPools:f,errorLoadingPools:c}};import ss from"swr";import{usePublicClient as as}from"@berachain/wagmi/hooks";import es from"bignumber.js";import{erc20Abi as ts,formatUnits as rs}from"viem";import{GetExploitedTokens as os}from"@berachain/graphql/dex/subgraph";var ns=1e-4;async function to({token:e,publicClient:t,...r}){let o=$("bex.subgraph",r),n=await t.readContract({address:e.address,abi:ts,functionName:"totalSupply"}),s=es(rs(n,e.decimals)).multipliedBy(ns),{data:a}=await o.query({query:os,variables:{token:e.address,balance:s.toFixed()}});return a.userInternalBalances.length>0}var is=e=>{let t=e?.filter(r=>r.address);return!t||t.length===0?null:["useExploitedTokens",t]},Bc=({tokens:e})=>{let t=is(e),r=as(),o=ss(r?t:null,async([,n])=>(y(r),(await Promise.all(n.map(a=>to({token:a,publicClient:r})))).reduce((a,i,l)=>(i!==void 0&&(a[n[l].address]=i),a),{})));return{...o,refresh:()=>o.mutate()}};import ls from"swr";var us=()=>{let e=ls("useGlobalLiquidityAndSwapVolume",async()=>Ct());return{...e,data:{totalLiquidity:Number(e.data?.protocolMetricsAggregated.totalLiquidity),swapVolume24h:Number(e.data?.protocolMetricsAggregated.swapVolume24h)},refresh:()=>e.mutate()}};import{useEffect as ps,useState as ms}from"react";import{PoolType as ae}from"@berachain-foundation/berancer-sdk";var ds=.05,Wc=({currentStep:e,tokenPrices:t,isLoadingTokenPrices:r,tokens:o,weights:n,weightsError:s,poolType:a,liquidityMismatchTolerancePercent:i=ds,oracles:l})=>{let[u,m]=ms({title:null,message:null});return ps(()=>{if(!t||r||!o||!n||s||o.some(b=>!b.address)||l.some(b=>b.mode==="Custom")){m({title:null,message:null});return}let p=0,d=[],c=o.length,g=ye(o).map(b=>{let T=t[b.address.toLowerCase()]?.price??0;if(!T||T===0)return d.push(0),null;let w=T*Number.parseFloat(b.amount);return d.push(w),p+=w,T});if(g.some(b=>b===null)||g.length!==c){m({title:"Missing token price data",message:`One or more token(s) do not have valid market price data. Please verify that token market prices align with the pool
|
|
1
|
+
import{f as L,h as Ge,i as le,n as Fe}from"../chunk-4IBBLGNS.mjs";import{$ as jt,A as Ut,B as Ht,Ba as gr,C as X,Ca as yr,Da as Ar,E as Vt,Ea as br,F as Wt,Fa as hr,H as _t,Ha as Rr,Ja as kr,K as Qt,Ka as wr,La as Pr,Ma as Tr,N as fe,Na as Ir,O as Yt,Oa as Cr,P as Ze,Pa as Er,Q as Gt,Qa as Sr,R as Ft,Ra as xr,S as ge,Sa as vr,T as Kt,Ta as Br,Ua as Or,V as qt,Va as Dr,W as $t,Y as Zt,Z as zt,a as pe,aa as Jt,ba as Xt,c as q,ca as er,e as S,f as Pt,fa as ye,g as de,ga as Ae,h as Tt,i as It,ia as tr,k as Ct,l as Et,la as or,m as St,ma as nr,na as ar,o as xt,oa as ir,pa as lr,q as N,qa as ur,ra as pr,sa as mr,t as vt,u as Bt,ua as dr,w as Dt,wa as cr,xa as he,y as Lt,z as Nt,za as fr}from"../chunk-OA6KI7XK.mjs";import{b as oe,c as _,k as Rt,l as K,m as G,n as ue,o as kt}from"../chunk-AHAZC5K3.mjs";import{c as $,e as ze,g as _p,h as Qp,i as Yp,j as Mp,k as Gp,l as Fp,m as Re,n as ke,s as B,t as Lr}from"../chunk-JQDPAEK2.mjs";import"../chunk-MTBICGRP.mjs";import{a as Ke,b as ne,c as y,d as j,e as qe,g as sr}from"../chunk-YKNKCICU.mjs";import"../chunk-K4NZIO2Z.mjs";import{Q as be,c as wt,d as Ot,e as ce,w as $e,x as Mt,y as rr}from"../chunk-B4M3O4CT.mjs";import{a as P,b as H,d as me,e as k}from"../chunk-XX77QPIR.mjs";import{a as J}from"../chunk-5UFI7X4U.mjs";import{f as x,g as E}from"../chunk-5GPS724E.mjs";import mn from"swr";import{usePublicClient as dn}from"@berachain/wagmi/hooks";var zp=({sharesAmount:e,vaultAddress:t,vaultChainId:r},o)=>{let n=dn({chainId:r}),s=mn(n&&e&&t?["useGetConvertToAssets",e,t,r]:null,async([a,i,l])=>(y(n),pe({sharesAmount:i,vaultAddress:l,publicClient:n})),{...o?.opts});return{...s,refresh:()=>{s.mutate()}}};import{useMemo as qr}from"react";import Q from"swr";import{parseUnits as Bn,zeroAddress as On}from"viem";import{defaultChainId as pt}from"@berachain/config/internal";import{useBeraWallet as Dn,usePublicClient as Ln}from"@berachain/wagmi/hooks";import{Slippage as cn,Swap as fn,SwapKind as gn,Token as Nr,TokenAmount as yn}from"@berachain-foundation/berancer-sdk";import{captureException as An}from"@sentry/nextjs";import{decodeFunctionData as bn,formatEther as Ur,zeroAddress as Hr}from"viem";import{getUriFromLink as hn}from"@berachain/config";import{ChainId as Vr}from"@berachain/config/internal";var Rn=300,kn=.05,je=gn.GivenIn,Je=class extends S{name="Hub Pools";supportedChains=[Vr.MAINNET,Vr.BEPOLIA];url=hn(this.config.api);type="graphql";convertZeroToWrapped(t){return k(t,"BERA")?this.config.tokens.wbera:t}calculatePriceImpact(t){return t.error?(console.error("Swap price impact error",t),0):Number(t.priceImpact)}checkStalePrices(t,r,o,n){let s=Number.parseFloat(Ur(t.scale18))/Number.parseFloat(o);if(Math.abs(1-s)>kn){console.warn("SOR returned stale prices. Delta from return amount is more than 5%",{deltaFromSorAmount:s});let a=new x({reason:"SOR_STALE_PRICES",level:"warning",message:"SOR returned stale prices. Delta from return amount is more than 5%"});An(a,{level:"warning",extra:{deltaFromSorAmount:s,pools:r.map(i=>i.pools),onChainAmount:Ur(t.scale18),sorAmount:o,queryData:n},fingerprint:["SOR_STALE_PRICES"]})}}async getQuote(t){let r=new Pt(this.url,this.chainId),{tokenIn:o,tokenOut:n,tokenInDecimals:s,tokenOutDecimals:a,amount:i,slippage:l,account:u=Hr,publicClient:m}=t;if(this.checkChainSupport(),y(m),!s)throw new E({property:"tokenInDecimals",value:s,expected:"number",chainId:this.chainId});if(!a)throw new E({property:"tokenOutDecimals",value:a,expected:"number",chainId:this.chainId});let p=k(o,"BERA")||k(n,"BERA"),d=new Nr(this.chainId,this.convertZeroToWrapped(o),s),c=new Nr(this.chainId,this.convertZeroToWrapped(n),a),f=yn.fromRawAmount(d,i),{paths:g,priceImpact:A,returnAmount:R}=await r.sorSwapPaths.fetchSorSwapPaths({chainId:this.chainId,tokenIn:d.address,tokenOut:c.address,swapKind:je,swapAmount:f});if(!g?.length)throw new J({response:void 0,endpoint:{url:this.url,name:this.name,type:this.type},reason:S.PATH_NOT_FOUND_REASON,chainId:this.chainId,payload:{tokenIn:d.address,tokenOut:c.address,swapKind:je,swapAmount:f},message:"No swap paths returned from Balancer API"});let h=new fn({chainId:this.chainId,paths:g,swapKind:je,userData:"0x"}),b=await h.query(m.transport.url);if(!("expectedAmountOut"in b))throw new Error("No Bex paths found");this.checkStalePrices(b.expectedAmountOut,g,R,t);let T={amountOut:b.expectedAmountOut.amount.toString(),amountIn:i,spender:b.to,name:this.name,priceImpactPercentage:this.calculatePriceImpact(A),swapFeeBps:0};if(u===Hr)return T;let w=h.buildCall({slippage:cn.fromPercentage(l.toString()),deadline:BigInt(Math.round(Date.now()/1e3)+Rn),queryOutput:b,sender:u,recipient:u,wethIsEth:p}),{args:I,functionName:C}=bn({abi:oe,data:w.callData});return{...T,calldata:{params:I,functionName:C,abi:oe,address:w.to,value:w.value||BigInt(0)}}}},we=new Je;import{ChainId as Wr}from"@berachain/config/internal";var Xe=class extends S{name="RedeemBgt";supportedChains=[Wr.MAINNET,Wr.BEPOLIA];type="rpc";async getQuote({tokenIn:t,amount:r}){if(this.checkChainSupport(),!k(t,"BGT",{config:this.config}))throw new E({property:"tokenIn",value:t,expected:"BGT",level:"warning"});return{amountOut:r,amountIn:r,spender:void 0,name:"RedeemBgt",isNativeSwap:!0,swapFeeBps:0}}},Pe=new Xe;import{zeroAddress as _r}from"viem";import{ChainId as Qr}from"@berachain/config/internal";var et=class extends S{name="Enso";supportedChains=[Qr.MAINNET];type="rest";notFoundMessages=["Could not build shortcuts for route","Swap not found for a required underlying of defi route,"];async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:n,account:s=_r,aggregatorsFeeBps:a,proxyAggregatorsThroughVercel:i=!1,rewardVault:l}){this.checkChainSupport();let{tokenInAddress:u,tokenOutAddress:m,isTokenInNative:p,isTokenOutNative:d}=this.parseAddresses(t,r),c=this.getAmountAfterFees(o,a);this.url=i?"/api/aggregators?aggregator=enso":`${this.config.bex.aggregatorsProxyUrl}/enso/api/v1/shortcuts/route?`;let f=new URL(this.url);f.searchParams.set("fromAddress",this.config.bex.aggregatorsRouterExecutor),f.searchParams.set("receiver",this.config.bex.aggregatorsRouterExecutor),f.searchParams.set("spender",this.config.bex.aggregatorsRouterExecutor),f.searchParams.set("amountIn",c),f.searchParams.set("tokenIn",u),f.searchParams.set("tokenOut",m),f.searchParams.set("chainId",Qr.MAINNET.toString()),f.searchParams.set("slippage",(Number(n)*100).toString()),f.searchParams.set("refundReceiver",s);let A=await(await this.fetch(f)).json(),R=this.getInputData({tokenIn:u,amountIn:o,isNative:p}),h={tokenOut:m,receiver:s,minAmountOut:this.getMinAmountOut(A.amountOut.toString(),n),isNative:d},b={aggregator:A.tx?.to,data:A.tx?.data};return{amountOut:A.amountOut.toString(),amountIn:o,spender:this.config.bex.aggregatorsRouter,name:this.name,swapFeeBps:a,calldata:{params:[R,h,b,{rewardVault:l??_r,isSwapAndStake:!!l}],functionName:"swap",abi:L,value:BigInt(p?o:"0"),address:this.config.bex.aggregatorsRouter}}}},Te=new et;import{zeroAddress as Ie}from"viem";import{ChainId as wn}from"@berachain/config/internal";var Yr="https://api.magpiefi.xyz/aggregator",tt=class extends S{name="Fly";supportedChains=[wn.MAINNET];type="rest";notFoundMessages=["Couldn't recognize to token","There is not enough liquidity. Amount is too high.","Routes were not found"];async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:n,account:s=Ie,aggregatorsFeeBps:a,rewardVault:i}){this.checkChainSupport();let{tokenInAddress:l,tokenOutAddress:u,isTokenInNative:m,isTokenOutNative:p}=this.parseAddresses(t,r),d=this.getAmountAfterFees(o,a),c=new URL(`${Yr}/quote`);this.url=c.toString();let f=new URLSearchParams({fromTokenAddress:l,toTokenAddress:u,sellAmount:d,slippage:(n/100).toString(),gasless:"false",network:"berachain"});s!==Ie&&(f.set("fromAddress",this.config.bex.aggregatorsRouterExecutor),f.set("toAddress",this.config.bex.aggregatorsRouterExecutor)),c.search=f.toString();let A=await(await this.fetch(c)).json(),R={amountOut:A.amountOut,amountIn:o,spender:this.config.bex.aggregatorsRouter,name:this.name,swapFeeBps:a??0};if(s===Ie)return R;let h=new URL(`${Yr}/transaction`);this.url=h.toString();let b=new URLSearchParams({quoteId:A.id,estimateGas:"false"});h.search=b.toString();let w=await(await this.fetch(h)).json(),I=this.getInputData({tokenIn:l,amountIn:o,isNative:m}),C={tokenOut:u,receiver:s,minAmountOut:this.getMinAmountOut(A.amountOut,n),isNative:p},v={aggregator:w.to,data:w.data};return{...R,calldata:{params:[I,C,v,{rewardVault:i??Ie,isSwapAndStake:!!i}],functionName:"swap",abi:L,value:k(t,"BERA")?BigInt(o):BigInt("0"),address:this.config.bex.aggregatorsRouter}}}},Ce=new tt;import{formatUnits as Pn,parseUnits as Tn,zeroAddress as rt}from"viem";import{ChainId as In}from"@berachain/config/internal";var ot=class extends S{name="Haiku";supportedChains=[In.MAINNET];type="rest";notFoundMessages=["token not found","Token is not supported","No route found for the given input or the liquidity is not enough","Invalid input amount. Please ensure the total amount of input is greater than 0.001 USD"];async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:n,account:s=rt,tokenInDecimals:a,tokenOutDecimals:i,aggregatorsFeeBps:l,proxyAggregatorsThroughVercel:u=!1,referrer:m,rewardVault:p}){if(a===void 0||i===void 0)throw new x({message:"Missing required params",level:"error"});this.checkChainSupport();let{tokenInAddress:d,tokenOutAddress:c,isTokenInNative:f,isTokenOutNative:g}=this.parseAddresses(t,r),A=this.getAmountAfterFees(o,l),R={intent:{allowancesMode:"approve",slippage:n/100,receiver:this.config.bex.aggregatorsRouterExecutor,input_positions:{[`bera:${d}`]:Pn(BigInt(A),a)},target_weights:{[`bera:${c}`]:1}}},h=m==="ZAP"?"zap-haiku":"haiku";this.url=u?"/api/aggregators?aggregator=haikuQuote":`${this.config.bex.aggregatorsProxyUrl}/${h}/v1/quoteIntent`;let T=await(await this.fetch(this.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(R)})).json(),w={amountOut:Tn(T.balances[0].amount,i).toString(),amountIn:o,spender:this.config.bex.aggregatorsRouter,name:this.name,swapFeeBps:l};if(s===rt)return w;this.url=u?"/api/aggregators?aggregator=haikuSolve":`${this.config.bex.aggregatorsProxyUrl}/${h}/v1/solveIntent`;let C=await(await this.fetch(this.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({quoteId:T.quoteId})})).json(),v=this.getInputData({tokenIn:d,amountIn:o,isNative:f,isPermit2Approval:!0,permit2SpenderAddress:this.config.bex.haikuAgentAddress}),M={tokenOut:c,receiver:s,minAmountOut:this.getMinAmountOut(w.amountOut,n),isNative:g},W={aggregator:C.to,data:C.data};return{...w,calldata:{params:[v,M,W,{rewardVault:p??rt,isSwapAndStake:!!p}],functionName:"swap",abi:L,value:BigInt(f?o:"0"),address:this.config.bex.aggregatorsRouter}}}},Ee=new ot;import{BigNumber as Cn}from"bignumber.js";import{formatUnits as Mr}from"viem";import{ChainId as En}from"@berachain/config/internal";function Sn(e){return e?"previewMintHoney":"previewRedeemCollaterals"}var se=class e extends S{name="Honey";supportedChains=[En.MAINNET];type="rpc";honeyToken=me(this);static isHoneyNativeSwap({tokenIn:t,tokenOut:r,honeyNativeState:o,...n}){if(!o?.collateralList)return!1;let s=k(r,"HONEY",n),a=k(t,"HONEY",n);return!s&&!a?!1:o.collateralList.some(i=>k(i.address,s?t:r))}async getQuote({tokenIn:t,tokenOut:r,amount:o,publicClient:n,account:s,honeyNativeState:a}){let{collateralList:i}=a??{};if(!i)throw new E({message:"Invalid Honey Context state",property:"collaterals",value:i,expected:"TokenWithOrder[]"});y(n),this.checkChainSupport();let l=k(r,this.honeyToken);if(!e.isHoneyNativeSwap({tokenIn:t,tokenOut:r,honeyNativeState:a}))throw new x({message:"Honey Aggregator only supports minting or redeeming Honey"});let u=i,m=i.find(I=>k(I.address,l?t:r));if(!m)throw new x({message:"This collateral is not part of the Honey protocol"});let[p,d]=await Promise.all([fe({client:n,collateralList:[m]}),ge({client:n,isMint:l,collateralList:i,latestPrices:void 0,isPythWrapperEnabled:!1})]);if(!p)throw new x({message:"Failed to fetch the Honey vault balances"});if(d)return;let c=p[0],f=m.order;u.length>1&&f!==0&&(u.splice(f,1),u.unshift(m));let g=Mr(BigInt(o),l?m.decimals:this.honeyToken.decimals),A={client:n,collateral:m,collateralList:i,amount:g,method:Sn(l),latestPrices:void 0,isPythWrapperEnabled:!1},R=await Qt(A);if(!R)throw new x({message:"Failed to fetch the Honey preview"});let{honey:h,collaterals:b}=R;if(!(l?!0:new Cn(c?.formattedBalance??"0").gte(Mr(b[m.address],m.decimals))))return;let w=s?await Ft({state:{actionType:l?"mint":"redeem",fromAmount:[g],collaterals:u,isBasketModeEnabled:!1},account:s,collateralList:u,publicClient:n,priceFeedMap:void 0,isPythWrapperEnabled:!1}):void 0;if(!w&&s)throw new x({message:"Failed to fetch the Honey swap payload"});return{amountIn:o,amountOut:l?h.toString():b[m.address].toString(),spender:this.config.honey.factory,name:"Honey",swapFeeBps:0,calldata:w}}},Se=new se;import{zeroAddress as nt}from"viem";import{ChainId as xn}from"@berachain/config/internal";var st=class extends S{name="KyberSwap";supportedChains=[xn.MAINNET];type="rest";notFoundMessages=["token not found","route not found","amountIn is greater than max allowed"];async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:n,account:s=nt,aggregatorsFeeBps:a,proxyAggregatorsThroughVercel:i=!1,rewardVault:l}){this.checkChainSupport();let{isTokenInNative:u,isTokenOutNative:m,tokenInAddress:p,tokenOutAddress:d}=this.parseAddresses(t,r),c=this.getAmountAfterFees(o,a);this.url=i?"/api/aggregators?aggregator=kyberswapRoutes":`${this.config.bex.aggregatorsProxyUrl}/kyberswap/berachain/api/v1/routes`;let f=new URL(this.url);f.searchParams.set("tokenIn",p),f.searchParams.set("tokenOut",d),f.searchParams.set("amountIn",c),f.searchParams.set("slippageTolerance",(n/100).toString()),f.searchParams.set("to",this.config.bex.aggregatorsRouterExecutor),f.searchParams.set("clientData",JSON.stringify({source:"berachain"}));let A=await(await this.fetch(f)).json(),R={amountOut:A.data.routeSummary.amountOut,amountIn:o,spender:this.config.bex.aggregatorsRouter,name:this.name,swapFeeBps:a};if(s===nt)return R;let h={routeSummary:A.data.routeSummary,sender:this.config.bex.aggregatorsRouterExecutor,recipient:this.config.bex.aggregatorsRouterExecutor,slippageTolerance:n*100,deadline:Math.floor(Date.now()/1e3)+300,source:"berachain"},b=f.searchParams.entries(),T=new URL(i?"/api/aggregators?aggregator=kyberswapBuild":`${this.config.bex.aggregatorsProxyUrl}/kyberswap/berachain/api/v1/route/build`);for(let[W,O]of b)T.searchParams.set(W,O);let I=await(await this.fetch(T,{method:"POST",body:JSON.stringify(h)})).json(),C=this.getInputData({tokenIn:p,amountIn:o,isNative:u}),v={tokenOut:d,receiver:s,minAmountOut:this.getMinAmountOut(R.amountOut,n),isNative:m},M={aggregator:I.data.routerAddress,data:I.data.data};return{...R,calldata:{params:[C,v,M,{rewardVault:l??nt,isSwapAndStake:!!l}],functionName:"swap",abi:L,value:BigInt(u?o:"0"),address:this.config.bex.aggregatorsRouter}}}},xe=new st;import{zeroAddress as at}from"viem";import{ChainId as vn}from"@berachain/config/internal";var it=class extends S{name="Oogabooga";supportedChains=[vn.MAINNET];type="rest";async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:n,account:s=at,aggregatorsFeeBps:a,proxyAggregatorsThroughVercel:i=!1,rewardVault:l}){this.checkChainSupport();let{tokenInAddress:u,tokenOutAddress:m,isTokenInNative:p,isTokenOutNative:d}=this.parseAddresses(t,r),c=this.getAmountAfterFees(o,a),f=new URLSearchParams({tokenIn:u,tokenOut:m,amount:c,slippage:(n/100).toString(),to:this.config.bex.aggregatorsRouterExecutor,referrer:this.config.bex.aggregatorsRouter});this.url=i?`/api/aggregators?aggregator=oogabooga&${f.toString()}`:`${this.config.bex.aggregatorsProxyUrl}/oogabooga/v1/swap?${f.toString()}`;let A=await(await this.fetch(this.url)).json(),R={amountOut:A.assumedAmountOut,amountIn:o,spender:this.config.bex.aggregatorsRouter,name:this.name,priceImpactPercentage:A.priceImpact,swapFeeBps:a};if(s===at)return R;let h=this.getInputData({tokenIn:u,amountIn:o,isNative:p}),b={tokenOut:m,receiver:s,minAmountOut:this.getMinAmountOut(R.amountOut,n),isNative:d},T={aggregator:A.tx?.to,data:A.tx?.data};return{...R,calldata:{params:[h,b,T,{rewardVault:l??at,isSwapAndStake:!!l}],functionName:"swap",abi:L,value:BigInt(p?o:"0"),address:this.config.bex.aggregatorsRouter}}}},ve=new it;import{zeroAddress as Gr}from"viem";import{ChainId as Fr}from"@berachain/config/internal";var lt=class extends S{name="OpenOcean";supportedChains=[Fr.MAINNET];type="rest";url="https://open-api.openocean.finance/v4/bera/swap";notFoundMessages=["No avail liquidity for the pair"];async getQuote({tokenIn:t,tokenOut:r,amount:o,slippage:n,account:s=Gr,aggregatorsFeeBps:a,tokenInDecimals:i,publicClient:l,rewardVault:u}){if(y(l),!i)throw new E({property:"tokenInDecimals",value:i,expected:"number",chainId:this.chainId});this.checkChainSupport();let m=this.getAmountAfterFees(o,a),{tokenInAddress:p,tokenOutAddress:d,isTokenInNative:c,isTokenOutNative:f}=this.parseAddresses(t,r),g=(await l.getGasPrice()).toString(),A=new URLSearchParams({chain:Fr.MAINNET.toString(),inTokenAddress:p,outTokenAddress:d,amountDecimals:m,slippage:n<.01?"0.01":n.toString(),account:this.config.bex.aggregatorsRouterExecutor,referrer:this.config.bex.aggregatorsRouter,gasPrice:g}),R=await this.fetch(`${this.url}?${A.toString()}`),h=await R.json();if(h.code!==200||!h.data){let C=this.notFoundMessages.some(v=>h.error.includes(v));throw new J({response:R,endpoint:{url:this.url,name:this.name,type:this.type},cause:h,reason:C?S.PATH_NOT_FOUND_REASON:h.error})}let b={amountOut:h.data.outAmount,amountIn:o,spender:this.config.bex.aggregatorsRouter,name:this.name,swapFeeBps:a},T=this.getInputData({tokenIn:p,amountIn:o,isNative:c}),w={tokenOut:d,receiver:s,minAmountOut:this.getMinAmountOut(b.amountOut,n),isNative:f},I={aggregator:h.data.to,data:h.data.data};return{...b,calldata:{params:[T,w,I,{rewardVault:u??Gr,isSwapAndStake:!!u}],functionName:"swap",abi:L,value:BigInt(c?o:"0"),address:this.config.bex.aggregatorsRouter}}}},Be=new lt;import{ChainId as Kr}from"@berachain/config/internal";var ut=class extends S{name="Wrap";supportedChains=[Kr.MAINNET,Kr.BEPOLIA];type="rpc";async getQuote({tokenIn:t,tokenOut:r,amount:o}){if(this.checkChainSupport(),!k(t,"BERA")&&!k(t,"WBERA")||!k(r,"WBERA")&&!k(r,"BERA"))throw new x({message:"Invalid token pair",level:"error"});let n=k(t,"BERA")&&k(r,"WBERA");return{amountOut:o,amountIn:o,spender:void 0,name:n?"Wrap":"Unwrap",isNativeSwap:!0,swapFeeBps:0,calldata:n?{abi:Fe,address:this.config.tokens.wbera,functionName:"deposit",params:[],value:BigInt(o)}:{abi:Fe,address:this.config.tokens.wbera,functionName:"withdraw",params:[BigInt(o)],value:BigInt(0)}}}},Oe=new ut;var Nn=[ve,Ce,xe,Be,Ee,Te,we,Se],Un="useAggregatorsQuotes";function Y({name:e,account:t,args:r,feeBps:o,options:n,activeAggregators:s,honeyNativeState:a}){if(e!==Pe.name&&(k(r.tokenIn,"BGT",{chainId:pt})||k(r.tokenOut,"BGT",{chainId:pt})))return null;let{tokenIn:i,tokenOut:l,tokenInDecimals:u,tokenOutDecimals:m,amount:p,slippage:d,referrer:c,rewardVault:f}=r,g=Bn(p,u).toString(),A=!s||s.includes(e.toLowerCase().replaceAll(" ",""));return n?.opts?.isEnabled&&Number(p)&&o!==void 0&&A?[Un,e,i,l,g,d,t,o,u,m,c,f,a?.collateralList]:null}function Z({aggregator:e,publicClient:t,proxyAggregatorsThroughVercel:r}){return async([,,o,n,s,a,i,l,u,m,p,d,c])=>e.getQuote({tokenIn:o,tokenOut:n,amount:s,slippage:a,account:i,aggregatorsFeeBps:l,tokenInDecimals:u,tokenOutDecimals:m,publicClient:t,proxyAggregatorsThroughVercel:r,referrer:p,rewardVault:d,honeyNativeState:{collateralList:c??[]}})}var Md=(e,t)=>{let{address:r}=Dn(),o=$("proxyAggregatorsThroughVercel"),n=$("aggregators"),s=Ln(),{data:a}=$r(),{collateralList:i,protocol:l}=e.honeyNativeState??{},u=(k(e.tokenIn,"BERA")||k(e.tokenIn,"WBERA"))&&(k(e.tokenOut,"BERA")||k(e.tokenOut,"WBERA")),m=k(e.tokenIn,"BGT",{chainId:pt}),p=qr(()=>se.isHoneyNativeSwap(e),[e.tokenOut,e.tokenIn,i]),d=u||m,{config:c}=P(e),f=c.bex.aggregatorsRouter!==On,g={refreshInterval:1e4,errorRetryCount:3,onErrorRetry(D,F,z,re,U){if(!(D instanceof x&&D.reason===S.PATH_NOT_FOUND_REASON)){if(D instanceof J&&D.statusCode===403){console.warn(F[1],"returned error 403, stopping retries");return}U.retryCount>(z.errorRetryCount??3)||setTimeout(()=>{re()},z.errorRetryInterval??ce(10))}}},A=Q(d||!f?null:Y({name:ve.name,account:r,args:e,feeBps:a,options:t,activeAggregators:n}),Z({aggregator:ve,proxyAggregatorsThroughVercel:o}),g),R=Q(d||!f?null:Y({name:Ce.name,account:r,args:e,feeBps:a,options:t,activeAggregators:n}),Z({aggregator:Ce,proxyAggregatorsThroughVercel:o}),g),h=Q(d||!f?null:Y({name:xe.name,account:r,args:e,feeBps:a,options:t,activeAggregators:n}),Z({aggregator:xe,proxyAggregatorsThroughVercel:o}),g),b=Q(d||!f?null:Y({name:Be.name,account:r,args:e,feeBps:a,options:t,activeAggregators:n}),Z({aggregator:Be,publicClient:s,proxyAggregatorsThroughVercel:o}),g),T=Q(d||!f?null:Y({name:Ee.name,account:r,args:e,feeBps:a,options:t,activeAggregators:n}),Z({aggregator:Ee,publicClient:s,proxyAggregatorsThroughVercel:o}),g),w=Q(d||!f?null:Y({name:Te.name,account:r,args:e,feeBps:a,options:t,activeAggregators:n}),Z({aggregator:Te,proxyAggregatorsThroughVercel:o}),g),{protocol:I}=ze(),C=Q(d||I.isPaused===!0||e.rewardVault?null:Y({name:we.name,account:r,args:e,feeBps:0,options:t,activeAggregators:n}),Z({aggregator:we,publicClient:s}),g),v=Q(u?Y({name:Oe.name,account:r,args:e,feeBps:0,options:t,activeAggregators:void 0}):null,async([,,D,F,z,,re])=>Oe.getQuote({tokenIn:D,tokenOut:F,amount:z,account:re}),g),M=Q(m?Y({name:Pe.name,account:r,args:e,feeBps:0,options:t,activeAggregators:void 0}):null,async([,,D,,F])=>Pe.getQuote({tokenIn:D,amount:F}),g),W=Q(!p||d||l?.isPaused===!0||!i?null:Y({name:Se.name,account:r,args:e,feeBps:0,options:t,activeAggregators:void 0,honeyNativeState:{collateralList:i}}),Z({aggregator:Se,publicClient:s,proxyAggregatorsThroughVercel:o}),g),O=u?[v]:m?[M]:[A,R,h,b,T,w,W,I.isPaused===!1?C:null].filter(D=>D!==null);return{...qr(()=>{let D=O.reduce((U,Me)=>U||Me.error,void 0),F=O.map((U,Me)=>U.isLoading?d?Oe.name:Nn[Me].name:null).filter(Boolean),z=O.filter(U=>U!==void 0&&!U.isLoading&&!U.error&&U.data?.amountOut).map(({data:U})=>U),re=z.length===0&&F.length>0;return{quotes:z,loadingAggregatorsNames:F,isLoading:re,error:D}},[O]),refresh:()=>O.map(D=>D.mutate())}};import Hn from"swr/immutable";import{zeroAddress as Vn}from"viem";import{usePublicClient as Wn}from"@berachain/wagmi/hooks";var $r=()=>{let e=Wn(),{config:t}=P({chainId:e.chain?.id}),r=Hn(e&&t.bex.aggregatorsRouter&&t.bex.aggregatorsRouter!==Vn?["useAggregatorsRouterFeeBps",t.bex.aggregatorsRouter]:null,async([,o])=>{let n=await e.readContract({address:o,abi:L,functionName:"SWAP_FEE_RATE"});return Number(n)});return{...r,refresh:r.mutate}};import _n from"swr";var Qn=({query:e}={})=>["useAllUserPools",e],Zr=(e,t)=>{let r=_n(Qn({query:e}),async([o,n])=>de({...n,fetchPolicy:"no-cache"}),{refreshInterval:18e4,...t?.opts});return{...r,refresh:()=>{r.mutate()}}};import Yn from"swr";import{isAddress as Mn}from"viem";var Gn=({poolId:e,account:t})=>e?["usePool-api",e,t]:null;function zr({poolId:e,account:t}){let r=Yn(Gn({poolId:e,account:t}),async([,o,n])=>{if(n&&!Mn(n))throw new E({property:"account",value:n,expected:"Address"});return Tt({poolId:o,account:n})},{refreshInterval:1e5});return{...r,refresh:()=>{r.mutate()}}}import{useMemo as eo}from"react";import{PoolType as De}from"@berachain-foundation/berancer-sdk";import Kn from"swr/immutable";import{formatUnits as qn,keccak256 as $n,parseUnits as Le,zeroAddress as dt}from"viem";import{GetDedupedSubgraphPools as Zn}from"@berachain/graphql/dex/subgraph";import{PoolType as jr}from"@berachain-foundation/berancer-sdk";import{formatUnits as Fn}from"viem";var mt=e=>[...e].sort((t,r)=>t.address.toLowerCase().localeCompare(r.address.toLowerCase())),Jr=e=>e.length===0?"":mt(e).map(t=>t.symbol).join(" | "),Xr=(e,t,r)=>{let o;switch(r){case jr.ComposableStable:o="STABLE";break;default:o=r.toString().toUpperCase();break}return r===jr.Weighted?t.length===0?"":`${mt(e).map((n,s)=>{let a=t[s];return`${(Number.parseFloat(Fn(a,18))*100).toFixed(0)}${n.symbol}`}).join("-")}-${o}`:`${mt(e).map(n=>n.symbol).join("-")}-${o}`};var zn=.005,jn=(r=>(r.None="None",r.Custom="Custom",r))(jn||{}),Jn=({poolCreationHelper:e,poolCreateTokens:t,initialLiquidityTokens:r,swapFeePercentage:o,salt:n,poolName:s,poolSymbol:a,owner:i,amplification:l,oracles:u,message:m,actionType:p,gasLimit:d=$e})=>{let c=t.map(w=>w.address.toLowerCase()).sort((w,I)=>w<I?-1:1),f=c.map(w=>{let I=r.find(O=>O.address.toLowerCase()===w||k(w,"WBERA")&&k(O.address,"BERA")),C=I?Le(I.amount,I.decimals):0n,v=u.find(O=>O.tokenAddress.toLowerCase()===w.toLowerCase()),M=v?v.address:dt,W=BigInt(v?v.cacheDuration:100);return{amountIn:C,rateProvider:M,cacheDuration:W}}),g=f.map(w=>w.amountIn),A=f.map(w=>w.rateProvider),R=f.map(w=>w.cacheDuration),h=r.findIndex(w=>k(w.address,"BERA")),b=h!==-1?Le(r[h].amount,r[h].decimals):0n,T=b>0n;return{address:e,abi:Ge,functionName:"createAndJoinStablePool",params:[s,a,c,BigInt(l),A,R,!1,o,g,i,n,T],message:m,actionType:p,value:b,gasLimit:d,track:{eventName:"hub_pool_create",eventData:{poolName:s,poolSymbol:a}}}},Xn=({poolCreationHelper:e,poolCreateTokens:t,initialLiquidityTokens:r,normalizedWeights:o,swapFeePercentage:n,salt:s,poolName:a,poolSymbol:i,owner:l,message:u,actionType:m,gasLimit:p=$e})=>{let d=[],c=[],f=[],g=[];t.map((h,b)=>({createToken:h.address,joinToken:r[b].address,weight:o[b],amountIn:Le(r[b].amount,r[b].decimals)})).sort((h,b)=>h.createToken.toLowerCase()<b.createToken.toLowerCase()?-1:1).forEach(h=>{d.push(h.createToken),c.push(h.joinToken),f.push(h.weight),g.push(h.amountIn)});let A=c.indexOf(dt),R=A!==-1?g[A]:0n;return{address:e,abi:Ge,functionName:"createAndJoinWeightedPool",params:[a,i,d,c,f,Array(d.length).fill(dt),n,g,l,s],message:u,actionType:m,value:R,gasLimit:p,track:{eventName:"hub_pool_create",eventData:{poolName:a,poolSymbol:i}}}},Rc=({poolCreateTokens:e,initialLiquidityTokens:t,normalizedWeights:r,poolType:o,poolName:n,poolSymbol:s,swapFee:a,owner:i,amplification:l,oracles:u,weightsDuplicationThreshold:m=zn,...p})=>{let{data:d,error:c,isLoading:f}=Kn(["useCreatePool__deduped_pool",e,o,r],async()=>{if(e.length===0||!o)return null;let h=q("bex.subgraph",{});try{let b=be(e).map(I=>I.address.toLowerCase()).sort((I,C)=>I.toLowerCase()<C.toLowerCase()?-1:1);return(await h.query({query:Zn,variables:{tokens:b,type:o}})).data.pools.filter(I=>I.tokens?.every(C=>o===De.Weighted?b.includes(C.address)&&Math.abs(Number(C.weight)-Number(qn(r[b.indexOf(C.address)],18)))<m:b.includes(C.address)||C.address===I.address))?.at(0)??null}catch{return null}}),{generatedPoolName:g,generatedPoolSymbol:A}=eo(()=>{if(!e)return{generatedPoolName:"",generatedPoolSymbol:""};let h=Jr(e),b=Xr(e,r,o);return{generatedPoolName:h,generatedPoolSymbol:b}},[e,r,o]),R=eo(()=>{if(!i||n===""||s===""||e.length!==t.length||e.length===0)return null;let h=Le(a.toString(),16),b=$n(Buffer.from(`${n}-${i}`)),{config:T}=P(p);return o===De.Weighted?Xn({poolCreationHelper:T.bex.poolCreationHelper,poolCreateTokens:e,initialLiquidityTokens:t,normalizedWeights:r,swapFeePercentage:h,salt:b,poolName:n,poolSymbol:s,owner:i,message:`Create pool ${n}`,actionType:"Create Pool"}):o===De.ComposableStable||o===De.MetaStable?Jn({poolCreationHelper:T.bex.poolCreationHelper,poolCreateTokens:e,initialLiquidityTokens:t,swapFeePercentage:h,salt:b,poolName:n,poolSymbol:s,owner:i,amplification:l,oracles:u,message:`Create pool ${n}`,actionType:"Create Pool"}):null},[e,t,r,o,a,n,s,i,l,u]);return{generatedPoolName:g,generatedPoolSymbol:A,isDupePool:!!d,dupePool:d,createPoolArgs:R,isLoadingPools:f,errorLoadingPools:c}};import ss from"swr";import{usePublicClient as as}from"@berachain/wagmi/hooks";import es from"bignumber.js";import{erc20Abi as ts,formatUnits as rs}from"viem";import{GetExploitedTokens as os}from"@berachain/graphql/dex/subgraph";var ns=1e-4;async function to({token:e,publicClient:t,...r}){let o=q("bex.subgraph",r),n=await t.readContract({address:e.address,abi:ts,functionName:"totalSupply"}),s=es(rs(n,e.decimals)).multipliedBy(ns),{data:a}=await o.query({query:os,variables:{token:e.address,balance:s.toFixed()}});return a.userInternalBalances.length>0}var is=e=>{let t=e?.filter(r=>r.address);return!t||t.length===0?null:["useExploitedTokens",t]},Bc=({tokens:e})=>{let t=is(e),r=as(),o=ss(r?t:null,async([,n])=>(y(r),(await Promise.all(n.map(a=>to({token:a,publicClient:r})))).reduce((a,i,l)=>(i!==void 0&&(a[n[l].address]=i),a),{})));return{...o,refresh:()=>o.mutate()}};import ls from"swr";var us=()=>{let e=ls("useGlobalLiquidityAndSwapVolume",async()=>It());return{...e,data:{totalLiquidity:Number(e.data?.protocolMetricsAggregated.totalLiquidity),swapVolume24h:Number(e.data?.protocolMetricsAggregated.swapVolume24h)},refresh:()=>e.mutate()}};import{useEffect as ps,useState as ms}from"react";import{PoolType as ae}from"@berachain-foundation/berancer-sdk";var ds=.05,Wc=({currentStep:e,tokenPrices:t,isLoadingTokenPrices:r,tokens:o,weights:n,weightsError:s,poolType:a,liquidityMismatchTolerancePercent:i=ds,oracles:l})=>{let[u,m]=ms({title:null,message:null});return ps(()=>{if(!t||r||!o||!n||s||o.some(b=>!b.address)||l.some(b=>b.mode==="Custom")){m({title:null,message:null});return}let p=0,d=[],c=o.length,g=be(o).map(b=>{let T=t[b.address.toLowerCase()]?.price??0;if(!T||T===0)return d.push(0),null;let w=T*Number.parseFloat(b.amount);return d.push(w),p+=w,T});if(g.some(b=>b===null)||g.length!==c){m({title:"Missing token price data",message:`One or more token(s) do not have valid market price data. Please verify that token market prices align with the pool
|
|
2
2
|
weightings and your initial liquidity amounts.`});return}if(e==="Select Tokens"&&a===ae.ComposableStable){let b=g.map(w=>w/g[0]);Math.max(...b)-Math.min(...b)>i?m({title:"Selected tokens have a significant price deviation",message:"Did you mean to create a Weighted pool instead?",suggestWeighted:!0}):m({title:null,message:null});return}if(p===0||d.some(b=>b===0)){m({title:null,message:null});return}let A=0;if(a===ae.ComposableStable){let b=p/c;d.forEach(T=>{A+=Math.abs(b-T)})}else a===ae.Weighted&&d.forEach((b,T)=>{let w=Number(n[T])/1e18,I=p*w;A+=Math.abs(I-b)});let R=A>=p*.9;A=Math.min(A,p);let h=A/p;h>i?m({title:R?"You could lose all of your initial liquidity":`You could lose $${A.toFixed(2)} (~${(h*100).toFixed(2)}%)`,message:`Based on the market token prices, the value of tokens does not align with the specified pool weights.
|
|
3
|
-
This discrepancy could expose you to potential losses from arbitrageurs. ${a===ae.ComposableStable?"Did you mean to create a Weighted pool instead?":""}`,suggestWeighted:a===ae.ComposableStable}):m({title:null,message:null})},[e,t,r,o,n,s,a,i,l]),u};import io from"bignumber.js";import{formatEther as lo,isAddressEqual as Ds}from"viem";import As from"swr";import{isAddress as ro,zeroAddress as bs}from"viem";import{useBeraWallet as hs,usePublicClient as Rs}from"@berachain/wagmi/hooks";import cs from"swr/immutable";import{isAddress as fs,zeroAddress as gs}from"viem";import{usePublicClient as ys}from"@berachain/wagmi/hooks";var ct=({tokenAddress:e},{isEnabled:t=!0}={})=>{let r=ys(),o=r&&e&&fs(e)&&t?["useRewardVaultFromToken",e]:null,n=cs(o,async([,s])=>{if(!s)throw new Error("useRewardVaultFromToken needs a valid token address");y(r);let{config:a}=P({chainId:r.chain.id}),i=await r.readContract({address:a.pol.factory,abi:kt,functionName:"getVault",args:[s]});return i===gs?void 0:i});return{...n,refresh:()=>n.mutate()}};var oo=({stakingToken:e,rewardVaultAddress:t},r)=>{let{address:o}=hs(),n=Rs(),s=r?.opts?.isEnabled??!0,{data:a=t,error:i,mutate:l,isLoading:u}=ct({tokenAddress:e},{isEnabled:!t&&s}),m=As(a&&o&&n&&ro(a)&&ro(o)&&s?["useVaultBalanceFromStakingToken",a,o]:null,async([,p,d])=>{if(y(n),p===bs)return{address:p,balance:0n};let c=await n.readContract({address:p,abi:ue,functionName:"balanceOf",args:[d]});return{address:p,balance:c}});return{...m,refresh:()=>{l(),m.mutate()},isLoading:m.isLoading||u}};import Is from"swr";import{erc20Abi as Cs,formatEther as Es,formatUnits as Ss,isAddress as so,zeroAddress as xs}from"viem";import{defaultChainId as vs}from"@berachain/config/internal";import{useBeraWallet as Bs,usePublicClient as Os}from"@berachain/wagmi/hooks";import ks from"swr/immutable";import{isAddress as ws,zeroAddress as Ps}from"viem";import{usePublicClient as Ts}from"@berachain/wagmi/hooks";var no=(e,t)=>{let r=Ts({chainId:e.chainId}),o=e?.address&&r&&ws(e.address)?["useTokenInformation",e.address,e.chainId]:null,n=ks(o,async([s,a])=>k(a,"BERA")?{address:Ps,decimals:H.decimals,name:H.name,symbol:H.symbol}:(y(r),await X({address:a,publicClient:r})),{...t?.opts});return{...n,refresh:()=>n?.mutate?.()}};function ao({address:e,owner:t,chainId:r=vs},o){let n=e;k(n,"ETH")&&(n=xs);let s=Os({chainId:r}),{address:a}=Bs(),i=t??a,l=(o?.opts?.isEnabled??!0)&&s&&i&&so(i)&&n&&so(n)?["usePollBalance",i,n,r]:null,{data:u,isLoading:m}=no({address:n,chainId:r}),p=k(n,"BERA"),{isLoading:d,data:c,error:f,...g}=Is(l,async([,h,b])=>(y(s),k(b,"BERA")?await s.getBalance({address:h}):await s.readContract({address:b,abi:Cs,functionName:"balanceOf",args:[h]})),{refreshInterval:1e4}),A=!f&&c?k(n,"BERA")?Es(c):u&&!m?Ss(c,u.decimals):void 0:void 0,R={balance:c??0n,formattedBalance:A??"0",address:n,decimals:p?H.decimals:u?.decimals??0,symbol:p?H.symbol:u?.symbol??"",name:p?H.name:u?.name??""};return{...g,refresh:()=>{g.mutate()},isLoading:d||p?m:!1,error:f||!p?f:void 0,data:R}}var kf=({pool:e,vaultAddress:t},r)=>{let{data:o,...n}=ao({address:e?.address}),{data:s,refresh:a}=oo({stakingToken:e?.address,rewardVaultAddress:t??e?.rewardVault?.vaultAddress},r),i=e?Number.parseFloat(e?.dynamicData?.totalShares??"0"):0,l=e?.dynamicData?.totalLiquidity?Number(e?.dynamicData?.totalLiquidity??0):null,u=i&&l?l/Number(i):0,m=e?.tokens?.map(p=>({address:p.address,ratio:i?Number(p.balance)/Number(i):0}));return{data:{lpTokenPrice:u,lpBalance:o?{...o,usdValue:o?Number(o.formattedBalance)*u:void 0}:void 0,tokenBalances:e?.tokens?.map(p=>{let d=m?.find(g=>Ds(g.address,p.address))?.ratio??0,c=d?io(o?.formattedBalance??"0").times(d):io(0),f=Number(p.balanceUSD)/Number(p.balance);return{balance:c?.isGreaterThan(0)?BigInt(c.times(10**p.decimals).toFixed(0).toString()):0n,formattedBalance:c.toString(),address:p.address,usdValue:Number.isNaN(f)||!c?void 0:Number.parseFloat(c.toString())*f}}),stakedBalance:s?.address?{address:s.address,balance:s.balance,formattedBalance:lo(s.balance),usdValue:Number(lo(s.balance))*u}:void 0},...n,refresh:()=>{n.refresh?.(),a()}}};import{useMemo as po}from"react";import{ZERO_ADDRESS as Hs}from"@berachain-foundation/berancer-sdk";import Vs from"bignumber.js";import{isAddressEqual as Ws,parseUnits as mo}from"viem";import Ls from"swr";import{useBeraWallet as Ns,usePublicClient as Us}from"@berachain/wagmi/hooks";var uo=(e,t)=>{let r=Us(),{address:o}=Ns(),n=r&&o&&e?.tokens&&e?.spender?["usePollAllowances",o,e?.tokens,e?.spender]:null,s=Ls(n,async([,a,i,l])=>cr({tokens:i,account:a,spender:l,publicClient:r}),{...t?.opts,refreshInterval:t?.opts?.refreshInterval??1e5});return{...s,refresh:()=>s?.mutate?.()}};function _s({amount:e,decimals:t,slippage:r}){let o=mo(e,t),n=mo((r??0).toString(),t);return o+o*n/BigInt(100*10**t)}var Qs=(e,t,r)=>{let o=po(()=>e.filter(l=>l.address!==Hs).filter(l=>l!==void 0).filter(l=>Vs(l.amount).gt(0)),[e]),{data:n,refresh:s,isLoading:a}=uo({spender:t,tokens:o});return{needsApproval:po(()=>n?.map(l=>{let u=o.find(p=>Ws(p.address,l.address));if(!u)throw new x({message:"Token not found when matching allowance in useMultipleTokenApprovalsWithSlippage",cause:{allowance:l,tokens:o}});let m=_s({...u,slippage:r});if(l.allowance===0n||l.allowance<m)return{...l,maxAmountIn:m}}).filter(l=>l!==void 0)??[],[n,r,o]),refresh:s,isLoading:a}};import{useMemo as qs}from"react";import $s from"swr/immutable";import{formatUnits as Zs,isAddress as zs}from"viem";import{usePublicClient as js}from"@berachain/wagmi/hooks";import Ys from"swr/immutable";import{isAddress as Ms}from"viem";import{usePublicClient as Gs}from"@berachain/wagmi/hooks";var co=(e,t)=>{let r=Gs(),o=r&&e.addresses?["useMultipleTokenInformation",e.addresses]:null,n=Ys(o,async([,s])=>(y(r),Promise.all(s.map(async a=>{if(!a||!Ms(a,{strict:!1}))throw new Error("Invalid address");let i=await X({address:a,publicClient:r});if(!i)throw new Error(`Token ${a} not found`);return i}))),{...t?.opts});return{...n,refresh:()=>n?.mutate?.()}};import Ks from"swr";import{useContext as Fs}from"react";function Ne(){let e=Fs(wt);if(!e)throw new x({message:"useTokens must be used within a TokensProvider",level:"fatal"});return{...e,data:{tokenList:e.tokenList,customTokenList:e.userTokens,featuredTokenList:e.featuredTokens}}}function Ue({addressIn:e}={},t={opts:{refreshInterval:1e5,revalidateOnFocus:!0}}){let{tokenList:r}=Ne(),o=e?.some(a=>r?.findIndex(i=>k(i,a))===-1)?e:r?.map(a=>a.address),n=o&&(t.opts?.isEnabled??!0)?["useTokenCurrentPrices",o.map(a=>a.toLowerCase())]:null,s=Ks(n,async([,a])=>dr({addressIn:a}),t.opts);return{...s,refresh:()=>void s.mutate()}}function Js(e){let t="poolId"in e?e.poolId?.slice(0,42):e.address;return zs(t)&&t?["useOnChainPoolData",t]:null}function fo(e){let t=js(),r=e?.slice(0,42),o=Js({poolId:e}),{data:n,error:s,isLoading:a,mutate:i}=$s(t?o:null,async([,c])=>Et({poolId:c,publicClient:t})),{data:l,isLoading:u}=co({addresses:n?.poolTokens[0]}),{data:m,isLoading:p}=Ue({addressIn:n?.poolTokens[0]});return{data:qs(()=>{if(!n||!l)return;let c={address:r.toLowerCase(),id:e.toLowerCase(),type:n.type,factory:n.factory,totalShares:n.totalSupply,totalLiquidity:"0",swapFee:n.swapFee,createTime:0,name:n.name,tokens:l.map((g,A)=>({address:g.address.toLowerCase(),name:g.name,decimals:g.decimals,symbol:g.symbol,index:A,weight:n.weights?.[A]??void 0,balance:Zs(BigInt(n.poolTokens[1][A]),g.decimals),token:{__typename:"Token",token:g,latestUSDPrice:m?.[g.address]}})),amplificationParameter:n?.amplificationParameter&&{currentFormattedValue:Number(n.amplificationParameter[0])/Number(n.amplificationParameter[2])}},f=c.tokens?.reduce((g,A)=>{let R=Number(m?.[A.address.toLowerCase()]?.price??0);return R?g+R*Number(A.balance):g},0);return c.totalLiquidity=f?.toString()??"",c},[n,l,m,r,e]),error:s,isLoading:a||u||p,mutate:i,refresh:()=>i()}}import Xs from"swr";import{useBeraWallet as ea,usePublicClient as ta}from"@berachain/wagmi/hooks";var ra=e=>{let{address:t}=ea(),r=ta(),o=t&&r?["usePollPoolCreationRelayerApproval",t,r.chain.id]:null,n=Xs(o,async([,a])=>{y(r);let{config:i}=P({chainId:r.chain.id});return await r.readContract({address:i.bex.vault,abi:oe,functionName:"hasApprovedRelayer",args:[a,i.bex.poolCreationHelper]})},{...e?.opts});return{...n,refreshPoolCreationApproval:()=>{n.mutate()}}};import{useMemo as oa}from"react";import na from"swr";function sa({poolId:e}){return e?["usePool-subgraph",e]:null}var fg=({poolId:e})=>{let t=na(sa({poolId:e}),async([,i])=>vt({poolId:i}),{refreshInterval:1e5}),r=zr({poolId:e}),{data:o,isLoading:n,refresh:s}=fo(e);return{data:[oa(()=>{if(!t.data)return o;let i={...t.data};return o&&(i.swapFee=o.swapFee,i.totalShares=o.totalShares,i.createTime=o.createTime??i.createTime),i},[o,t]),r.data,o],isLoading:r.isLoading||t.isLoading||n,isError:r.error||t.error,refresh:()=>{r.refresh(),t.mutate(),s()}}};import aa from"swr/immutable";var bg=({poolId:e,typeInArray:t})=>aa(e?["usePoolEvents",e,t]:null,async([,r,o])=>St({poolId:r,typeInArray:o}),{refreshInterval:18e4});import ia from"swr";var Pg=({poolId:e,...t},r)=>{let{config:o}=P(t),s=ia(e?["usePoolHistoricalData",e]:null,async([,a])=>await xt({poolId:a,chain:o.bex.chainName}),r?.opts);return{...s,refresh:()=>void s.mutate()}};import{useMemo as go}from"react";import la from"swr";import{useBeraWallet as ua}from"@berachain/wagmi/hooks";var pa=({query:e}={})=>["useAllPools",e],vg=(e,t)=>{let{address:r}=ua(),{data:o,isLoading:n,mutate:s}=Zr({userAddress:r,chain:e.chain}),{data:a,isLoading:i,mutate:l}=la(pa({query:e}),async([p,d])=>fe(d),{refreshInterval:18e4,...t?.opts}),u=go(()=>{if(!a||!o?.pools?.length)return a?.pools??[];let p=Object.fromEntries(o.pools.map(d=>[d.id.toLowerCase(),d]));return a.pools.map(d=>({...d,...p[d.id.toLowerCase()]||{}})).filter(Boolean)},[a,o]),m=go(()=>({page:Math.ceil((e?.skip??0)/(e?.first??10)),pageSize:e?.first,count:Math.ceil((a?.count??0)/(e?.first??10))}),[a,e.skip,e.first]);return{pools:u??[],walletPools:a?.pools??[],isLoading:i||n,refresh:()=>{l(),s()},pagination:m}};import Ia from"swr";import{useBeraWallet as Ca,usePublicClient as So}from"@berachain/wagmi/hooks";import{useCallback as wo}from"react";import{getPublicClient as Po}from"@wagmi/core";import wa from"swr";import{isAddress as Pa,parseUnits as To}from"viem";import{defaultChainId as Io}from"@berachain/config/internal";import{useBeraWallet as Co,useConfig as Eo}from"@berachain/wagmi/hooks";import{ethAddress as ca,zeroAddress as fa}from"viem";import{erc20Abi as ma,ethAddress as da}from"viem";var He=async({fromAddress:e,amountIn:t,tokenIn:r,chainId:o,ensoClient:n,bundle:s,publicClient:a})=>{let i=[];if(r!==da){let l=await n.getApprovalData({fromAddress:e,tokenAddress:r,chainId:o,amount:t}),u=!0;a&&(u=await a.readContract({address:r,abi:ma,functionName:"allowance",args:[e,l.spender]})<BigInt(t)),u&&i.push({to:l.tx.to,data:l.tx.data,value:l.tx.value,gasLimit:BigInt(l.gas)})}return i.push({to:s.tx.to,data:s.tx.data,value:s.tx.value,gasLimit:BigInt(s.gas)}),i};async function yo({fromAddress:e,amountIn:t,tokenIn:r,loanToken:o,bendVault:n,rewardVault:s,chainId:a,ensoClient:i,destinationChainId:l,slippage:u,publicClient:m}){if(!e)throw new E({property:"fromAddress",value:e,expected:"string"});o===fa&&(o=ca);let p=[{protocol:"enso",action:"route",args:{tokenIn:r,tokenOut:o,amountIn:t,slippage:u*100}}];l&&l!==a&&(p[0].args={...p[0].args,destinationChainId:l,refundReceiver:e}),p.push({protocol:"erc4626",action:"deposit",args:{amountIn:{useOutputOfCallAt:0},tokenIn:o,primaryAddress:n,tokenOut:n}}),s&&p.push({protocol:"enso",action:"balance",args:{token:n}},{protocol:"erc20",action:"approve",args:{amount:{useOutputOfCallAt:2},spender:s,token:n}},{protocol:"enso",action:"call",args:{address:s,args:[e,{useOutputOfCallAt:2}],method:"stakeOnBehalf",abi:"function stakeOnBehalf(address account, uint256 amount) external"}},{protocol:"enso",action:"balance",args:{token:s}});let d=await i.getBundleData({fromAddress:e,receiver:e,spender:e,chainId:a,routingStrategy:"router"},p),c=await He({fromAddress:e,amountIn:t,tokenIn:r,chainId:a,ensoClient:i,bundle:d,publicClient:m});return{bundle:d,transactions:c}}import{ethAddress as ga,zeroAddress as ya}from"viem";async function Ao({fromAddress:e,amountIn:t,tokenIn:r,tokenOut:o,chainId:n,ensoClient:s,destinationChainId:a,slippage:i,publicClient:l}){if(!e)throw new E({property:"fromAddress",value:e,expected:"address"});o===ya&&(o=ga);let u={protocol:"enso",action:"route",args:{tokenIn:r,tokenOut:o,amountIn:t,slippage:i*100}};a&&a!==n&&(u.args={...u.args,destinationChainId:a,refundReceiver:e});let m=await s.getBundleData({fromAddress:e,receiver:e,spender:e,chainId:n,routingStrategy:"router"},[u]),p=await He({fromAddress:e,amountIn:t,tokenIn:r,chainId:n,ensoClient:s,bundle:m,publicClient:l});return{bundle:m,transactions:p}}import{EnsoClient as Aa}from"@ensofinance/sdk";import{appConfig as ba}from"@berachain/config/internal";var ha=process.env.NODE_ENV!=="development"&&process.env.NODE_ENV!=="test";function bo({useProxy:e=ha,...t}={}){let{config:r}=P(t);return new Aa({baseURL:e?`${r.bex.aggregatorsProxyUrl}/enso/api/v1/`:void 0,apiKey:e?"":ba.apiKeys.public.enso})}import*as Ro from"@sentry/nextjs";import{getChains as Ra,multicall as ka}from"@wagmi/core";import{formatUnits as ho}from"viem";async function ko({account:e,wagmiConfig:t,chainId:r,ensoClient:o}){let s=(await o.getBalances({useEoa:!0,chainId:r??"all",eoaAddress:e})).map(u=>({name:u.name,symbol:u.symbol,decimals:u.decimals,address:u.token,logoURI:u.logoUri,balance:BigInt(u.amount),formattedBalance:ho(BigInt(u.amount),u.decimals),chainId:Number(u.chainId),price:Number(u.price)})),a=Object.groupBy(s,u=>u.chainId??0),i=await Promise.allSettled(Object.entries(a).map(async([u,m])=>{if(!m)return;let p=Ra(t).find(A=>A.id===Number(u));if(!p)return;let c=p.contracts?.multicall3?.address;if(!c)return Ro.captureException(new E({property:"multicallAddress",value:c,expected:"Address",chainId:Number(u)})),m;let f=await ka(t,{chainId:Number(u),contracts:m.map(A=>fr({token:A,account:e,multicallAddress:c})),allowFailure:!0}),g=[];for(let A=0;A<m.length;A++){let R=m[A];f[A].status==="success"?g.push({...R,balance:f[A].result,formattedBalance:ho(f[A].result,R.decimals)}):(console.error("error getting balance",f[A].error),captureException(qe({cause:f[A].error})),g.push(R))}return g})),l=[];for(let u of i)u.status==="fulfilled"?l.push(...u.value??[]):captureException(qe({cause:u.reason}));return l.sort((u,m)=>{let p=Number(u.formattedBalance)*(u.price??0);return Number(m.formattedBalance)*(m.price??0)-p})}function Ta({ensoClient:e,chainId:t},r){let{address:o}=Co(),n=Eo(),s=!!o&&Pa(o),i=wa(s&&n?["useEnsoBalances",o,t]:null,async([,l,u])=>ko({account:l,wagmiConfig:n,chainId:u??"all",ensoClient:e}),{refreshInterval:1e4,isEnabled:s,...r?.opts});return{...i,refresh:()=>i.mutate()}}function ie({chainId:e}){let{address:t}=Co(),r=Eo(),o=bo(),{data:n,refresh:s}=Ta({ensoClient:o,chainId:e}),a=wo(async({tokenIn:l,tokenOut:u,amount:m,slippage:p})=>{j(t,"fromAddress"),j(l?.address,"tokenInAddress"),ne(l?.chainId,"tokenInChainId");let d=Po(r,{chainId:l.chainId});y(d);let c=To(m,l.decimals).toString();return Ao({fromAddress:t,amountIn:c,tokenIn:l?.address,tokenOut:u,chainId:l.chainId,ensoClient:o,destinationChainId:Io,slippage:p,publicClient:d})},[t,o,r]),i=wo(async({tokenIn:l,amount:u,loanToken:m,bendVault:p,rewardVault:d,slippage:c})=>{j(t,"fromAddress"),j(l?.address,"tokenInAddress"),ne(l?.chainId,"tokenInChainId");let f=Po(r,{chainId:l.chainId});y(f);let g=To(u,l.decimals).toString();return yo({fromAddress:t,amountIn:g,tokenIn:l.address,loanToken:m,bendVault:p,rewardVault:d,chainId:l.chainId,ensoClient:o,destinationChainId:Io,slippage:c,publicClient:f})},[t,o,r]);return{tokens:n,getBendTransactionRequests:i,getZapTransactionRequests:a,refreshTokens:s}}function Ay({tokenIn:e,loanTokenAddress:t,loanTokenPrice:r,bendVault:o,rewardVault:n,amount:s,slippage:a,chainId:i},l){let{tokens:u,refreshTokens:m}=ie({chainId:i}),{data:p,error:d}=xo({tokenIn:e,loanTokenAddress:t,loanTokenPrice:r,bendVault:o,rewardVault:n,amount:e?.formattedBalance,slippage:a,chainId:e?.chainId},l),c=p?.transactions?.reduce((R,h)=>R+BigInt(h.value??0n),0n)??0n,f=u?.find(R=>k(R,"ETH")&&R.chainId===e?.chainId),g=BigInt(c)-BigInt(f?.balance??0n),A=xo({tokenIn:e,loanTokenAddress:t,loanTokenPrice:r,bendVault:o,rewardVault:n,amount:s,slippage:a,chainId:i},l);return{...A,nativeFee:g,error:d||A.error,tokens:u,refresh:()=>{A.mutate(),m()}}}function xo({tokenIn:e,loanTokenAddress:t,loanTokenPrice:r,bendVault:o,rewardVault:n,amount:s,slippage:a,chainId:i},l){let{address:u}=Ca(),{getBendTransactionRequests:m}=ie({chainId:i}),p=!!e&&!!t&&!!o&&!!s&&!!u&&!k(t,e?.address)&&e.chainId&&Number(s)>0&&!!a,d=So({chainId:i}),c=So();return Ia(p?["useBendTransactionRequests",e,t,r,o,n,s,a]:null,async([,g,A,R,h,b,T,w])=>{if(!d||!c)throw new E({property:"publicClient",value:d,expected:"PublicClient"});let I=await m({amount:T,tokenIn:g,loanToken:A,bendVault:h,rewardVault:b,slippage:w}),C=I.bundle.amountsOut,v=b?b.toLowerCase():h.toLowerCase(),M=C[v],W=await ce({sharesAmount:BigInt(M),vaultAddress:h,publicClient:c}),O=g?.price&&R?Dt(g?.price?.toString(),R?.toString(),T,W.formatted):void 0;return{supplyAmount:W,priceImpact:O,...I}},{...l?.opts,refreshInterval:1e5})}import Ea from"swr";var wy=({tokenIn:e,tokenOut:t,amount:r,slippage:o,chainId:n})=>{let{getZapTransactionRequests:s,refreshTokens:a,tokens:i}=ie({chainId:n}),l=!!e&&!!t&&!!r&&Number(r)>0&&!!o,m=Ea(l?["useZapTransactionRequests",e,t,r,o]:null,async([,p,d,c,f])=>(ne(p,"tokenIn"),j(d?.address,"tokenOutAddress"),Ze(c,"amount"),Ze(f,"slippage"),s({amount:c,tokenIn:p,tokenOut:d.address,slippage:f})),{refreshInterval:1e5,isEnabled:l});return{...m,tokens:i,refresh:()=>{m.mutate(),a()}}};import{useCallback as ft,useEffect as Oa,useState as Da}from"react";import Sa from"gray-matter";import{encodeFunctionData as We,erc20Abi as xa,parseAbiItem as va,toHex as Ba}from"viem";function Ve(e){return Object.values(e).some(t=>Array.isArray(t)?t.some(r=>typeof r=="object"&&r!==null?Ve(r):!!r):typeof t=="object"&&t!==null?Ve(t):!!t)}var vo=({proposal:e,currentTopic:t,onError:r})=>{let o=Ot(e,t),n=[];if(o.actions=e.actions.map((i,l)=>{let u={};if(u.target=N({fieldOrType:"address",value:i.target}),i.type==="custom-action")if(i.input==="ABI")if(u.ABI=N({fieldOrType:"abi",value:i.ABI}),!i.functionSignature)u.functionSignature="Required";else try{let p=va(i.functionSignature);p.type!=="function"?(console.error("parsedSignatureAbi is not a function",p),u.functionSignature="Invalid ABI"):(u.args=p.inputs.map((d,c)=>{try{return"components"in d?N({fieldOrType:d.type,value:i.args?.[c],components:d.components}):N({fieldOrType:d.type,value:i.args?.[c]})}catch{return null}}),u.args.some(d=>d)||(n[l]=We({abi:[p],args:i.args})))}catch{u.functionSignature="Invalid ABI"}else if(i.input==="rawCalldata")u.rawCalldata=N({fieldOrType:"hex",value:i.rawCalldata}),n[l]=i.rawCalldata;else if(i.input==="message")u.message=N({fieldOrType:"string",value:i.message}),n[l]=Ba(i.message);else throw new Error("Invalid input type");else if(i.type==="whitelist-reward-vault"||i.type==="blacklist-reward-vault"){if(u.vault=N({fieldOrType:"address",value:i.vault}),!u.vault){let p=i.type==="whitelist-reward-vault";n[l]=We({abi:K,functionName:"setVaultWhitelistedStatus",args:[i.vault,p,""]})}}else i.type==="whitelist-reward-vault-incentive"?(u.token=N({fieldOrType:"address",value:i.token}),u.minIncentiveRate=N({fieldOrType:"uint256",value:i.minIncentiveRate}),u.managerAddress=N({fieldOrType:"address",value:i.managerAddress}),!u.token&&!u.minIncentiveRate&&!u.managerAddress&&(n[l]=We({abi:ue,functionName:"whitelistIncentiveToken",args:[i.token,BigInt(i.minIncentiveRate),i.managerAddress]}))):i.type==="erc20-transfer"&&(u.amount=N({fieldOrType:"uint256",value:i.amount}),u.to=N({fieldOrType:"address",value:i.to}),!u.amount&&!u.to&&(n[l]=We({abi:xa,functionName:"transfer",args:[i.to,BigInt(i.amount)]})));return Ve(u)?u:null}),r?.(o),Object.getOwnPropertyNames(o).map(i=>o[i]).some(i=>Array.isArray(i)?i.filter(l=>l).length>0:i===null?!1:!!i)){console.warn("Proposal has errors",o);return}if(n.length===0)throw new Error("No actions submitted in proposal");let s=new URL(e.forumLink),a=Sa.stringify(e.description,{title:e.title,topics:Array.from(e.topic.values()),forumLink:s.toString(),version:"1.0.0","content-encoding":"utf-8","content-type":"text/markdown",actions:e.actions.map(i=>{let l={type:i.type};return i.type==="custom-action"&&(l.inputType=i.input),l})});return[e.actions.map(i=>i.target),e.actions.map(i=>i.value??0n),n,a]};var Bo={type:"custom-action",target:"",ABI:"",value:0n,functionSignature:"",args:[],input:"ABI",rawCalldata:"0x",message:""},La=({initialData:e={},currentTopic:t,onError:r})=>{let[o,n]=Da({title:"",description:"",forumLink:"",actions:[Bo],...e,topic:new Set});Oa(()=>{n(l=>({...l,topic:new Set([t.id])}))},[t]);let s=ft(()=>{n(l=>({...l,actions:[...l.actions,Bo]}))},[]),a=ft(l=>{n(u=>{let m=[...u.actions];return m.splice(l,1),{...u,actions:m}})},[n]),i=ft(()=>o?vo({proposal:o,currentTopic:t,onError:r}):void 0,[o,t]);return{proposal:o,setProposal:n,addProposalAction:s,removeProposalAction:a,computeParamsAndErrors:i}};import Ha from"swr/immutable";import{formatUnits as Va}from"viem";import{useBeraWallet as Wa,usePublicClient as _a}from"@berachain/wagmi/hooks";import Na from"swr/immutable";import{usePublicClient as Ua}from"@berachain/wagmi/hooks";var Oo=({proposalId:e})=>{let t=Ua();return Na(t&&e?["useProposalSnapshot",e]:null,async([,o])=>{y(t);let{config:n}=P({chainId:t.chain.id});return(await t.readContract({abi:_,address:n.governance.governor,functionName:"proposalSnapshot",args:[BigInt(o)]})).toString()})};var Zy=e=>{let{address:t}=Wa(),r=_a(),o=e.wallet||t,{data:n}=Oo({proposalId:e.proposalId}),s=e.timepoint||n;return Ha(s&&r&&o?["useGetPastVotes",s,o]:null,async([,i,l])=>{y(r);let{config:u}=P({chainId:r.chain.id});if(Number(i)>Date.now()/1e3)throw new Error("timepoint is in the future");let m=await r.readContract({abi:G,address:u.tokens.bgt,functionName:"getPastVotes",args:[l,BigInt(i)]});return Va(m,18)})};import Qa from"swr";import{isAddress as Ya}from"viem";import{useBeraWallet as Ma,usePublicClient as Ga}from"@berachain/wagmi/hooks";var oA=({proposalId:e,wallet:t})=>{let{address:r}=Ma(),o=Ga(),n=t||r;return Qa(o&&n&&Ya(n)?["useHasVoted",e,n]:null,([,s,a])=>{y(o);let{config:i}=P({chainId:o.chain.id});return o.readContract({address:i.governance.governor,abi:_,functionName:"hasVoted",args:[BigInt(s),a]})})};import Fa from"swr";import{usePublicClient as Ka}from"@berachain/wagmi/hooks";var Do="0xfd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783";var dA=({account:e,...t})=>{let r=Ka(),{config:o}=P(t);return Fa(e&&r?["useCancellerRole",e]:null,async([,s])=>(y(r),await r.readContract({abi:le,address:o.governance.timelock,functionName:"hasRole",args:[Do,s]})),{refreshInterval:18e4,revalidateOnFocus:!1})};import{useEffect as Lo,useMemo as qa,useState as $a}from"react";import Za from"swr/infinite";import{Proposal_OrderBy as za,ProposalStatus as V}from"@berachain/graphql/governance";var No=10,ja=e=>{switch(e){case V.QuorumNotReached:return[V.Active,V.Pending];case V.PendingQueue:case V.Defeated:return[V.Active];case V.PendingExecution:return[V.InQueue];default:return[e]}};function Ja(e,t={}){let r=2*(t.perPage??No);return(o,n)=>{if(o!==0&&n&&n.length<r)return null;let s=t.status_in?.flatMap(ja).filter((a,i,l)=>l.indexOf(a)===i);return["usePollAllProposals",o,e,t.where,s,t.orderBy,t.orderDirection,r,t.text]}}function bA(e,t){let r=t?.autoRefresh??!1,o=e.perPage??No,n=2*o,s=Ja(e.topic,e);async function a(c){if(!c)return[];let[,f,g,A,R,h,b,T,w]=c;return(await Bt({where:{topics_contains:[g],status_in:R?.length?R:void 0,...A},orderBy:h,orderDirection:b,text:w,perPage:T,offset:f*T})??[]).filter(Boolean)}let i=Za(s,a,{initialSize:1,refreshInterval:t?.opts?.refreshInterval??18e4,...t?.opts}),l=qa(()=>{if(!i.data)return[];let c=i.data.flat().filter(g=>g?e.status_in?.length?e.status_in.includes(g.status):!0:!1).sort((g,A)=>{if(!e.text)return 0;if(e.orderBy===za.CreatedAt){let R=Number(A.createdAt)-Number(g.createdAt);return e.orderDirection==="asc"?R:-R}return 0}),f=[];for(let g=0;g<c.length;g+=o)f.push(c.slice(g,g+o));return f},[i.data,e,o]),u=i.data?.[i.data.length-1],m=!!u&&u.length===n,[p,d]=$a(Date.now()/1e3);return Lo(()=>{if(!r)return;let c=setInterval(()=>{d(Date.now()/1e3)},1e4);return()=>clearInterval(c)},[r]),Lo(()=>{if(!i.data)return;let c=!1;for(let f of i.data.flat()){switch(f.status){case V.Pending:p>=Number(f.voteStartAt)&&(c=!0);break;case V.Active:p>=Number(f.voteEndAt)&&(c=!0);break;case V.InQueue:Date.now()/1e3+1>=Number(f.queueEnd)&&(c=!0);break;default:break}if(c)break}c&&i.mutate()},[i.data,p]),{...i,data:l,hasMore:m}}import{useEffect as Uo,useState as Xa}from"react";import ei from"swr";import{ProposalStatus as gt}from"@berachain/graphql/governance";import{usePublicClient as ti}from"@berachain/wagmi/hooks";var CA=(e,t)=>{let r=t?.autoRefresh??!1,o=ti(),s=ei(e&&o?["usePollProposal",e]:null,([,l])=>(y(o),Ut({proposalId:l,client:o})),{...t?.opts,refreshInterval:t?.opts?.refreshInterval??18e4}),[a,i]=Xa(Date.now());return Uo(()=>{if(!r)return;let l=setInterval(()=>{i(Date.now()/1e3)},1e4);return()=>clearInterval(l)},[]),Uo(()=>{if(s.data!==void 0)switch(s.data.status){case gt.Pending:a>=Number(s.data.voteStartAt)&&s.mutate();break;case gt.Active:a>=Number(s.data.voteEndAt)&&s.mutate();break;case gt.InQueue:Date.now()/1e3+1>=Number(s.data.queueEnd)&&s.mutate();break}},[s.data?.status,a]),{...s,refresh:()=>s?.mutate?.()}};import ri from"swr";import{formatEther as oi}from"viem";import{usePublicClient as ni}from"@berachain/wagmi/hooks";var DA=e=>{let t=ni(),o=ri(t?["usePollProposalThreshold",e]:null,async([,n])=>{y(t);let s=await t.readContract({address:n,abi:_,functionName:"proposalThreshold"});return{votesThreshold:oi(s)}},{refreshInterval:18e4});return{...o,refresh:o.mutate}};import si from"swr/infinite";var _e=1e3,HA=(e,t)=>si(ai(e,t),async([r,o])=>Vt({variables:{...e,limit:_e,offset:_e*o}}),{parallel:!0,initialSize:Number.POSITIVE_INFINITY}),ai=({...e},t)=>r=>r>Math.floor(t/_e)?null:["usePollProposalVotes",r,_e,e.proposalId,e.orderBy,e.orderDirection];import ii from"swr";import{formatEther as li}from"viem";import{useBeraWallet as ui,usePublicClient as pi}from"@berachain/wagmi/hooks";var FA=e=>{let{address:t}=ui(),r=pi(),n=ii(t?["usePollUserDelegates",t]:null,async([,s])=>{y(r);let{config:a}=P({chainId:r.chain.id});if(!r||!s)throw new Error("usePollUserDelegates needs publicClient and account");let[i,l]=await Promise.all([r.readContract({address:a.tokens.bgt,abi:G,functionName:"delegates",args:[s]}),r.readContract({address:a.tokens.bgt,abi:G,functionName:"getVotes",args:[s]})]);return{delegate:i,currentVotes:li(l)}},{...e?.opts,refreshInterval:e?.opts?.refreshInterval??18e4});return{...n,refresh:()=>n?.mutate?.()}};import mi from"swr";import{usePublicClient as di,useTransactionReceipt as ci}from"@berachain/wagmi/hooks";var zA=e=>{let{data:t}=ci({hash:e}),r=di();return mi(t&&r?["useProposalFromTx",e]:null,async([,s])=>{if(!t)throw new Error("Transaction not found");if(t.transactionHash!==s)throw new Error("Transaction hash mismatch");return Ht({tx:t,publicClient:r})})};import fi from"swr/immutable";import{usePublicClient as gi}from"@berachain/wagmi/hooks";var yi={0:"pending",1:"active",2:"canceled",3:"defeated",4:"succeeded",5:"queued",6:"expired",7:"executed"},rb=({proposalId:e,governorAddress:t})=>{let r=gi();return fi(t&&r&&e?["useProposalState",e]:null,async([,n])=>{y(r);let s=await r.readContract({abi:_,address:t,functionName:"state",args:[BigInt(n)]});return yi[s]})};import Ai from"swr";import{usePublicClient as bi}from"@berachain/wagmi/hooks";var hi={0:"unset",1:"waiting",2:"ready",3:"done"},lb=({proposalTimelockId:e,timelockAddress:t})=>{let r=bi();return Ai(t&&r&&e?["useProposalTimelockState",e,t]:null,async([,n,s])=>{y(r);let a=await r.readContract({abi:le,address:s,functionName:"getOperationState",args:[n]});return hi[a]},{refreshInterval:18e4})};import ki from"swr";import{usePublicClient as wi}from"@berachain/wagmi/hooks";import{formatEther as Ri}from"viem";async function yt({at:e,publicClient:t,...r}){let{config:o}=P(r);y(t);let n=await t.readContract({address:o.governance.governor,abi:_,functionName:"quorum",blockTag:"pending",args:[BigInt(e??Math.floor(Date.now()/1e3))]});return Ri(n)}function bb({at:e},{isEnabled:t=!0}){let r=Math.floor(Date.now()/1e3),o=wi(),n=t&&o?["useQuorum",Number(e)>r?"now":e]:null,s=ki(n,async([,a])=>a==="now"?yt({publicClient:o}):yt({at:a,publicClient:o}));return{...s,data:s.data?Number(s.data):void 0}}import Ti from"swr";import{usePublicClient as Ii}from"@berachain/wagmi/hooks";import Pi from"swr";function ee({priceFeedMap:e},t){let r=e?Object.values(e):null,o=(t?.opts?.isEnabled??!0)&&r?["usePythLatestPrices",r]:null;return Pi(o,async([s,a])=>await Ft({priceFeedId:a}))}var Ho=({asset:e,amount:t,isMint:r,isBasketModeEnabled:o},n)=>{let s=Ii(),{priceFeedMap:a,flags:i}=B(),{data:l}=ee({priceFeedMap:e?.address&&a?{[e.address]:a[e.address]}:void 0},{opts:{isEnabled:i.isPythWrapperEnabled&&!!e?.address}}),u=t&&e&&(i.isPythWrapperEnabled&&l?.prices.length||!i.isPythWrapperEnabled)?["useCappedGlobally",t,e,l,i.isPythWrapperEnabled,o]:null,m=Ti(u,async([p,d,c,f,g,A])=>A?!1:(y(s),await Yt({client:s,asset:c,amount:r?d:`-${d}`,isMint:r,latestPrices:f,isPythWrapperEnabled:g})),{...n?.opts,refreshInterval:0});return{...m,refresh:()=>void m.mutate()}};import Ci from"swr";import{usePublicClient as Ei}from"@berachain/wagmi/hooks";var Vo=({asset:e,amount:t,isMint:r,isBasketModeEnabled:o},n)=>{let s=Ei(),{collateralList:a,referenceCollateral:i}=B(),u=Ci(e&&t?["useCappedRelatively",e,t,a,i]:null,async([m,p,d,c,f])=>{if(o)return!1;if(y(s),!r){let g=`-${d}`;return f.address!==p?!1:(await Promise.all(c.map(R=>ze({client:s,asset:R.address,amount:g,isMint:r,referenceCollateral:f})))).some(R=>R)}return await ze({client:s,asset:p,amount:d,isMint:r,referenceCollateral:f})},{refreshInterval:0,...n?.opts});return{...u,refresh:()=>void u.mutate()}};import Si from"swr";import{usePublicClient as xi}from"@berachain/wagmi/hooks";var _b=({collateralList:e},t)=>{let r=xi(),n=Si(r&&e?["useCollateralWeights",e]:void 0,async([s,a])=>(y(r),await _t({client:r,collateralList:a})),{...t?.opts,refreshInterval:t?.opts?.refreshInterval??1e5});return{...n,refresh:()=>void n.mutate()}};import{useMemo as At}from"react";import te from"bignumber.js";import vi from"swr";import{useBeraWallet as Bi,usePublicClient as Oi}from"@berachain/wagmi/hooks";var Wo=()=>{let e=Oi(),{address:t}=Bi(),{collateralList:r}=B(),n=vi(t&&r&&e?["useHoneyBalances",t,r]:null,async([s,a,i])=>{y(e);let l=[...i??[],de({})];return(await ke({account:a,tokenList:l,publicClient:e}))?.reduce((p,d)=>(p[d.address]=d,p),{})},{refreshInterval:1e4});return{...n,refresh:()=>n.mutate()}};import Di from"swr";import{usePublicClient as Li}from"@berachain/wagmi/hooks";var _o=e=>{let t=Li(),{collateralList:r}=B(),n=Di(r&&t?["useHoneyVaultsBalance",r]:null,async([s,a])=>(y(t),await Ae({client:t,collateralList:a})),{...e?.opts,refreshInterval:1e5});return{...n,refresh:()=>void n.mutate()}};import Ni from"swr";import{usePublicClient as Ui}from"@berachain/wagmi/hooks";var Qo=({collateral:e},t)=>{let r=Ui(),{priceFeedMap:o,flags:n}=B(),{data:s}=ee({priceFeedMap:e?.address?{[e.address]:o[e.address]}:void 0},{opts:{isEnabled:n.isPythWrapperEnabled&&!!e?.address}}),a=r&&e&&(n.isPythWrapperEnabled&&s?.prices.length||!n.isPythWrapperEnabled)?["useIsBadCollateralAsset",e,s,n.isPythWrapperEnabled]:null,i=Ni(a,async([l,u,m,p])=>(y(r),await Qt({client:r,collateral:u,latestPrices:m,isPythWrapperEnabled:p})),{...t?.opts,refreshInterval:t?.opts?.refreshInterval??1e5});return{...i,refresh:()=>void i.mutate()}};var Yo=({lowerThan:e,vaultsBalances:t,state:r,collateralList:o})=>{if(!(r.actionType==="mint")&&!r.isBasketModeEnabled){let s=t?.find(l=>l.address.toLowerCase()===r.collaterals[0].address.toLowerCase()),a=new te(s?.formattedBalance??"0").lte(e),i=o.filter(l=>{let u=t?.find(m=>m.address.toLowerCase()===l.address.toLowerCase());return new te(u?.formattedBalance??"0").lte(e)});return{isLow:a,isLiquidityLowCollaterals:i}}return{isLow:!1,isLiquidityLowCollaterals:[]}},Hi=({vaultsBalances:e,redeemedVaultBalance:t,state:r,collateralList:o})=>{if(!(r.actionType==="mint")&&e&&t){let s=o.filter(a=>{let i=e.find(u=>u.address.toLowerCase()===a.address.toLowerCase()),l=r.toAmount[r.collaterals.indexOf(a)];return new te(i?.formattedBalance??"0").lt(l??"0")});return{isMore:!!s.find(a=>a.address.toLowerCase()===r.collaterals[0].address.toLowerCase()),isRedeemMoreThanLiquidityCollaterals:s}}return{isMore:!1,isRedeemMoreThanLiquidityCollaterals:void 0}};function Vi({state:e,honeyBalances:t,...r}){let{config:o}=P(r),n=e.actionType==="mint";return!n&&t?new te(e.fromAmount[0]).gt(t[o.honey.token]?.formattedBalance??"0"):n&&t&&e.isBasketModeEnabled!==void 0&&e.collaterals.length>0?e.isBasketModeEnabled?e.collaterals.some((s,a)=>{let i=e.fromAmount[a];return new te(t[s.address]?.formattedBalance).lt(i)}):new te(t[e.collaterals[0].address]?.formattedBalance).lt(e.fromAmount[0]):!1}var Ah=({actionType:e,collaterals:t,fromAmount:r,toAmount:o,isBasketModeEnabled:n})=>{let s={actionType:e,collaterals:t,fromAmount:r,toAmount:o,isBasketModeEnabled:n},a=e==="mint",{data:i}=Qo({collateral:t[0]}),{collateralList:l}=B(),{isBlacklisted:u,isDepegged:m}=i??{isBlacklisted:!1,isDepegged:!1},{data:p}=Ho({asset:t[0],amount:a?r[0]:o[0],isMint:a,isBasketModeEnabled:n}),{data:d}=Vo({asset:t[0]?.address,amount:a?r[0]:o[0],isMint:a,isBasketModeEnabled:n}),{data:c}=Wo(),{data:f}=_o(),g=t[0]?.address,A=f?.find(I=>I.address.toLowerCase()===g.toLowerCase()),[R,h]=At(()=>{let I=Yo({lowerThan:1,vaultsBalances:f,state:s,collateralList:l}),C=Yo({lowerThan:1e3,vaultsBalances:f,state:s,collateralList:l});return[I,C]},[f,s]),{isMore:b,isRedeemMoreThanLiquidityCollaterals:T}=At(()=>Hi({vaultsBalances:f,redeemedVaultBalance:A,state:s,collateralList:l}),[f,A,s,l]),w=At(()=>Vi({state:s,honeyBalances:c}),[s,c]);return{isLiquidityDepleted:R.isLow,isLiquidityDepletedCollaterals:R.isLiquidityLowCollaterals,isRedeemMoreThanLiquidity:b,isRedeemMoreThanLiquidityCollaterals:T,isLowLiquidity:h.isLow,isLiquidityLowCollaterals:h.isLiquidityLowCollaterals,isBlacklisted:s.isBasketModeEnabled?!1:u,isDepegged:s.isBasketModeEnabled?!1:m,isCappedGlobally:p,isCappedRelatively:d,isExceedingBalance:w}};import Wi from"swr";function kh({days:e}){let t=Wi(["useHoneyChartData",e],async([r,o])=>await Wt({days:o}));return{...t,refresh:()=>t.mutate()}}import Mo from"bignumber.js";import _i from"swr";function Ch(){let e=_i(["useHoneyGlobalData"],()=>Mt()),t=e.data?.honeySnapshots.reduce((r,o)=>new Mo(o.totalVolume).plus(r),new Mo(0));return{...e,data:{...e.data,dailyVolume:t},refresh:()=>e.mutate()}}import{useEffect as Mi,useReducer as Gi}from"react";import{formatUnits as Fo}from"viem";import{defaultChainId as Fi}from"@berachain/config/internal";import Qi from"swr";import{usePublicClient as Yi}from"@berachain/wagmi/hooks";function Go({state:e},t){let r=Yi(),{priceFeedMap:o,flags:n,collateralList:s}=B(),{data:a}=ee({priceFeedMap:o},{opts:{isEnabled:n.isPythWrapperEnabled&&!!s.length}}),i=e.actionType==="mint",l=r&&e&&s.length>0&&(n.isPythWrapperEnabled&&a?.prices.length||!n.isPythWrapperEnabled)?["useIsBasketModeEnabled",i,a,n.isPythWrapperEnabled,s]:null,u=Qi(l,async([m,p,d,c,f])=>(y(r),await be({client:r,isMint:p,collateralList:f,latestPrices:d,isPythWrapperEnabled:c})),{...t?.opts,refreshInterval:t?.opts?.refreshInterval??1e4});return{...u,data:u.data,refresh:()=>void u.mutate()}}var Ki={actionType:"mint",collaterals:[],fromAmount:[],toAmount:[],isBasketModeEnabled:!1,isTyping:!1,isSubmitting:!1,isLoading:!1};function Ko(e,t){switch(t.type){case"RESET_AMOUNTS":return{...e,fromAmount:[],toAmount:[]};case"ACTION_TYPE_CHANGE":return Ko({...e,actionType:t.value},{type:"RESET_AMOUNTS"});case"COLLATERALS_CHANGE":return{...e,collaterals:t.value,fromAmount:[],toAmount:[]};case"FROM_AMOUNT_CHANGE":{let r=e.fromAmount;return r[t.index]=t.value,{...e,fromAmount:r}}case"TO_AMOUNT_CHANGE":{let r=e.toAmount;return r[t.index]=t.value,{...e,toAmount:r}}case"PREVIEW_CHANGE":{let r=t.value,o=e.actionType==="mint",n=e.collaterals.map((a,i)=>t.changedAsset===a.address?o?e.fromAmount[i]:e.toAmount[i]:r.collaterals[a.address]?Fo(r.collaterals[a.address],a.decimals):e.isBasketModeEnabled?"0":""),s=k(t.changedAsset,"HONEY",{chainId:Fi})?o?e.toAmount[0]:e.fromAmount[0]:r.honey?Fo(r.honey,18):e.isBasketModeEnabled?"0":"";return{...e,fromAmount:o?n:[s],toAmount:o?[s]:n}}case"IS_BASKET_MODE_ENABLED_CHANGE":return{...e,isBasketModeEnabled:t.value,fromAmount:[],toAmount:[]};case"IS_TYPING_CHANGE":return{...e,isTyping:t.value};case"IS_SUBMITTING_CHANGE":return{...e,isSubmitting:t.value};case"IS_LOADING_CHANGE":return{...e,isLoading:t.value};default:throw new Error(`Unknown action type: ${t}`)}}var Qh=()=>{let{collateralList:e}=B(),[t,r]=Gi(Ko,Ki,n=>({...n,collaterals:e})),{data:o}=Go({state:t});return Mi(()=>{o!==void 0&&t.isBasketModeEnabled!==o&&(r({type:"IS_LOADING_CHANGE",value:!0}),r({type:"IS_BASKET_MODE_ENABLED_CHANGE",value:o}),r({type:"IS_LOADING_CHANGE",value:!1}))},[o]),{state:t,dispatch:r}};import qi from"swr/immutable";import{usePublicClient as $i}from"@berachain/wagmi/hooks";var $h=({pythPriceFeedCalldata:e,tokenListLength:t},r)=>{let o=$i(),n=(r?.opts?.isEnabled??!0)&&e&&e.length>0?["usePythUpdateFee",e]:null,{data:s=Lt(t),isLoading:a}=qi(n,async([i,l])=>(y(o),await Kt({client:o,priceFeedId:l})));return{QUERY_KEY:n,data:s,isLoading:a}};import{useMemo as Zi}from"react";function Jh(e){return Zi(()=>{if(e)return zt(e)},[e])}import zi from"swr";import{formatEther as ji}from"viem";import{useBeraWallet as Ji,usePublicClient as Xi}from"@berachain/wagmi/hooks";var el=e=>{let{address:t}=Ji(),r=Xi(),n=zi(t&&r?["useBgtUnstakedBalance",t]:null,async([,s])=>{y(r);let{config:a}=P({chainId:r.chain.id}),i=await r.readContract({address:a.tokens.bgt,abi:G,functionName:"unboostedBalanceOf",args:[s]});return ji(i)},{...e,refreshInterval:e?.opts?.refreshInterval??1e5});return{...n,refresh:()=>n.mutate()}};import tl from"swr";import{formatUnits as rl}from"viem";import{useBeraWallet as ol,usePublicClient as nl}from"@berachain/wagmi/hooks";var sl=()=>{let{address:e}=ol(),t=nl(),o=tl(e&&t?["useClaimableFees",e]:null,async([,n])=>{y(t);let{config:s}=P({chainId:t.chain.id}),a=await ir({account:n,vaultAddress:s.pol.staker,publicClient:t});return rl(a,18)},{refreshInterval:18e4*2});return{...o,refresh:()=>o?.mutate?.()}};import al from"swr";import{GetStakeBeraVaultEarningsByOwner as il}from"@berachain/graphql/pol/api";import{useBeraWallet as ll}from"@berachain/wagmi/hooks";function bR({receiptToken:e},t){let{address:r}=ll(),o=e.address&&r?["useEarnedStakedBeraVault",e.address,r]:null,n=al(o,async([s,,a])=>(await $("api",{}).query({query:il,variables:{owner:a}})).data?.polGetStakeBeraVaultEarningsByOwner?.earnings,{refreshInterval:18e4,...t?.opts});return{...n,refresh:n.mutate}}import{GqlRewardVaultOrderBy as dl,GqlRewardVaultOrderDirection as cl}from"@berachain/graphql/pol/api";import ul from"swr";import{usePublicClient as pl}from"@berachain/wagmi/hooks";var ml=(e,t=!1)=>["useRewardVaults",e,t],bt=(e,t)=>{let r=ml(e.filter,e.onChainIncentives),o=pl(),n=ul(t?.opts?.isEnabled??!0?r:null,async([,s,a])=>await jt({filter:s,publicClient:a?o:void 0}),{...t?.opts});return{...n,refresh:n.mutate}};var CR=(e={},{isEnabled:t=!0}={})=>{let r=bt({filter:{orderBy:dl.Apr,orderDirection:cl.Desc,pageSize:1,where:e}},{opts:{refreshInterval:0,revalidateOnFocus:!1,refreshWhenOffline:!1,isEnabled:t}});return{isLoading:r.isLoading,highestApr:r.data?.gaugeList[0].dynamicData?.apr,refresh:r.mutate}};import fl from"swr";import{usePublicClient as gl}from"@berachain/wagmi/hooks";var qo=e=>{let t=gl(),r=fl(t?"usePollGlobalData":null,async()=>(y(t),Jt(t)),{revalidateOnFocus:!1,...e?.opts});return{...r,refresh:r.mutate}};import yl from"swr/immutable";var Al=()=>"usePollMarkets",NR=e=>{let t=Al(),r=yl(t,async()=>await Xt(),{...e?.opts});return{...r,refresh:()=>r.mutate()}};import bl from"swr/immutable";import{isAddress as $o}from"viem";import{usePublicClient as hl}from"@berachain/wagmi/hooks";function YR({receiptTokenAddress:e,account:t,version:r},o){let n=hl(),s=e&&$o(e)&&t&&n&&$o(t)&&r?["useQueuedBeraUnlock",e,t,r]:null,a=bl(s,async([,i,l,u])=>(y(n),await nr(i,l,n,u)),{refreshInterval:1e4,...o?.opts});return{...a,refresh:()=>a.mutate()}}import Rl from"swr";import{isAddress as kl}from"viem";import{usePublicClient as wl}from"@berachain/wagmi/hooks";var ZR=({address:e},t)=>{let r=e?["useRewardTokenToBeraRate",e]:null,o=wl();return Rl(r,async([n,s])=>{if(!s||!kl(s))throw new E({property:"address",value:s,expected:"Address"});return y(o),tr({address:s,publicClient:o})},{...t?.opts})};import vl from"swr";import Tl from"swr";import{erc20Abi as Il,formatUnits as Cl,isAddress as El}from"viem";import{usePublicClient as Sl}from"@berachain/wagmi/hooks";import{erc20Abi as Qe,formatUnits as Pl}from"viem";async function Ye({address:e,publicClient:t}){y(t);let[r,o,n,s]=await t.multicall({contracts:[{address:e,abi:Qe,functionName:"decimals"},{address:e,abi:Qe,functionName:"name"},{address:e,abi:Qe,functionName:"symbol"},{address:e,abi:Qe,functionName:"totalSupply"}],allowFailure:!0});return{address:e,decimals:r.result,name:o.result,symbol:n.result,totalSupply:s.result!==void 0?r.status==="success"?Pl(s.result,r.result):s.result.toString():void 0}}var xl=e=>e&&El(e)?["onChainRewardVault",e.toLowerCase()]:null,Zo=({address:e},t)=>{let r=Sl(),o=t.opts?.isEnabled??!0,n=xl(e);return Tl(o&&r?n:null,async([,s])=>{y(r);let{config:a}=P({chainId:r.chain.id}),i=await Re({address:s,publicClient:r}),[l,u,m]=await Promise.all([he({address:s,stakingToken:i,publicClient:r}),r.readContract({address:a.pol.beraChef,abi:K,functionName:"isWhitelistedVault",args:[s]}),r.readContract({address:i,abi:Il,functionName:"balanceOf",args:[s]})]),[p,d]=await Promise.all([Ye({address:i,publicClient:r}),Promise.all(l.map(c=>X({address:c.token,publicClient:r})))]);if(!p)throw new Error("Staking token not found");return{id:s,address:s,vaultAddress:s,stakingToken:{address:i,name:p.name??"",symbol:p.symbol??"",decimals:p.decimals??0},stakingTokenAmount:Cl(m,p.decimals??18),isVaultWhitelisted:u,activeIncentives:l.map((c,f)=>({active:!!c.remainingAmount,remainingAmount:c.remainingAmount,remainingAmountUsd:"0",incentiveRate:c.incentiveRate,incentiveRateUsd:"0",tokenAddress:c.token,token:d[f]}))}})};var Bl=e=>e?["useRewardVault",e.toLowerCase()]:null,fk=(e,t)=>{let r=Bl(e),o=vl(r,async([a,i])=>rr({address:i}),{...t?.opts}),n=t?.opts?.isEnabled??((!!o.error||!o.isLoading)&&!o.data),s=Zo({address:e},{opts:{...t?.opts,isEnabled:n}});return{data:s.data??o.data,error:s.error??o.error,isLoading:s.isLoading||o.isLoading,isValidating:s.isValidating??o.isValidating,refresh:()=>{o.mutate(),s.mutate()}}};import Ol from"swr";import{usePublicClient as Dl}from"@berachain/wagmi/hooks";function Rk({address:e,stakingToken:t}){let r=Dl(),n=Ol(r&&e&&t?["useRewardVaultIncentives",e,t]:null,async([,s,a])=>(y(r),await he({address:s,stakingToken:a,publicClient:r})));return{...n,refresh:()=>n?.mutate?.()}}import Ll from"swr";import{usePublicClient as Nl}from"@berachain/wagmi/hooks";var Ul=(e,t)=>{let r=Nl(),n=Ll(r&&e?["useRewardVaultRewards",e]:null,async([,s])=>(y(r),await Zt(s,r)),{...t?.opts});return{...n,refresh:()=>n?.mutate?.()}};import Hl from"swr";var xk=({range:e})=>{let r=Hl(e?["useStakedBeraSnapshots",e]:null,([,o])=>or({range:o}));return{...r,refresh:()=>r.mutate()}};import Vl from"swr";import{useBeraWallet as Wl,usePublicClient as _l}from"@berachain/wagmi/hooks";var Ql=(e,t)=>{let{address:r}=Wl(),o=_l(),n=r&&o&&e.vaultAddress?["useUserVaultInfo",r,e.vaultAddress]:null,s=Vl(n,async([,a,i])=>(y(o),lr({account:a,vaultAddress:i,publicClient:o})),{...t,refreshInterval:t?.opts?.refreshInterval??1e5});return{...s,refresh:()=>s.mutate()}};import Yl from"swr";import{useBeraWallet as Ml,usePublicClient as Gl}from"@berachain/wagmi/hooks";var Fl=e=>{let{address:t}=Ml(),r=Gl(),n=Yl(t&&r?["useUserVaults",t]:null,async([,s])=>(y(r),await ur({account:s,publicClient:r})),{...e,refreshInterval:e?.opts?.refreshInterval??1e5,keepPreviousData:!0});return{...n,refresh:()=>n?.mutate?.()}};import Kl from"swr";import{usePublicClient as ql}from"@berachain/wagmi/hooks";var Fk=e=>{let t=ql();return Kl(e&&t?["useVaultAddress",e]:null,async([,o])=>{y(t);let[n]=await Promise.all([Re({address:o,publicClient:t})]);return{stakeToken:n,address:o}})};import $l from"swr";var Zk=({vault:e,range:t,resolution:r})=>{let n=$l(e?["useVaultHistory",e,t,r]:null,([,s,a,i])=>pr({vault:s,range:a,resolution:i}));return{...n,refresh:()=>n.mutate()}};import Zl from"swr";var zl=(e,t)=>{let o=Zl(e?["useVaultValidators",e]:null,async([,n])=>await mr({address:n}),{...t?.opts});return{...o,refresh:()=>o.mutate()}};import{zeroAddress as jl}from"viem";function zo({address:e},t){let r=Ue({addressIn:e?[e]:void 0},t);return{...r,data:e?r.data?.[e.toLowerCase()]:void 0}}function nw(e){return zo({address:jl},e)}import{useMemo as Jl}from"react";import Xl from"swr";import{useBeraWallet as eu,usePublicClient as tu}from"@berachain/wagmi/hooks";function mw(e,t){let r=tu(),{address:o}=eu(),{tokenList:n}=Ne(),s=e?.walletAddress??o,a=Jl(()=>new Map((e?.tokens??n)?.map(u=>[u.address.toLowerCase(),u])??[]),[n,e?.tokens]),i=r&&n!==void 0&&s?["usePollWalletBalances",s,Array.from(a.values())]:null,l=Xl(i,async([,u,m])=>ke({account:u,tokenList:m,publicClient:r}),{refreshInterval:1e5,...t?.opts});return{...l,refresh:()=>l?.mutate?.()}}import ru from"swr/immutable";import{isAddress as ou,zeroAddress as nu}from"viem";import{usePublicClient as su}from"@berachain/wagmi/hooks";var bw=(e,t)=>{let r=su(),o=e?.address&&r&&ou(e.address)?["useStakingTokenInformation",e.address]:null,n=ru(o,async([s,a])=>k(a,"BERA")?{address:nu,decimals:H.decimals,name:H.name,symbol:H.symbol}:await Ye({address:a,publicClient:r}),{...t?.opts});return{...n,refresh:()=>n?.mutate?.()}};import au from"swr";import{erc20Abi as iu}from"viem";import{usePublicClient as lu}from"@berachain/wagmi/hooks";function Tw({address:e}){let t=lu();return au(e&&t?["useTotalSupply",e]:null,([,r])=>(y(t),t.readContract({address:r,abi:iu,functionName:"totalSupply",args:[]})))}import{useCallback as uu}from"react";import{useBeraWagmi as pu}from"@berachain/wagmi/hooks";function vw(){let e=pe(),{account:t}=pu(),r=t?.wallet?.address;return uu(o=>{if(!r)throw new E({property:"address",value:r,expected:"Address"});e.addTransaction(r,o)},[e,r])}import{useEffect as mu,useState as du}from"react";import{useBeraWallet as cu}from"@berachain/wagmi/hooks";function Nw(){let e=pe(),{address:t}=cu(),[r,o]=du(()=>e&&t?e.getTransactions(t):[]);return mu(()=>{if(e&&t)return o(e.getTransactions(t)),e.onChange(()=>{o(e.getTransactions(t))})},[e,t]),r}import fu from"swr/immutable";import{useBlockNumber as gu,usePublicClient as yu}from"@berachain/wagmi/hooks";function Gw(e){let t=yu(),{config:r}=P({chainId:t?.chain.id}),{data:o,isLoading:n}=gu({cacheTime:ge(r.averageBlockTime)}),{data:s}=fu(o&&t&&Number(e)>0?["useBlockToTimestamp",e,o]:null,async([,i,l])=>(y(t),$t({block:i,currentBlock:l,blockTime:a,publicClient:t}))),a=me();if(s)return Number(s.timestamp);if(!(n||!o))return Math.floor(Nt(Date.now())+a*(Number(e)-Number(o)))}import{useCallback as Jo,useReducer as Au}from"react";import{useBeraWagmi as bu,useConfig as hu}from"@berachain/wagmi/hooks";var ht={confirmState:"idle",txnHash:"",message:""},jo=(e,t)=>{switch(t.type){case"confirm_sending":return{...e,confirmState:"loading"};case"confirm_receipt":return{...e,confirmState:"success"};case"confirm_error":return{...e,confirmState:"fail"};case"confirm_submitting":return{...e,confirmState:"submitting"};case"confirm_reset":return{...ht};default:return e}};function Ru({onlyPermissionless:e,onSuccess:t,onError:r,onLoading:o,onWarning:n,onSubmission:s}={}){let[a,i]=Au(jo,ht),{account:l,onSmartAccountRejection:u}=bu(),m=hu(),p=l?.wallet?.isContract?6e4*10:12e4,d=Jo(()=>{i({type:"confirm_reset"})},[]),c=q("enableSimulateCalls"),f=Jo(g=>{if(e&&!g.permissionless){let A=new ar({message:"Trying to send a non-permissionless transaction with an overridden account",displayMessage:"You can't send this transaction with an overridden account. Please reset the account in the settings popover.",level:"info",input:g});throw n?.(A,g),r?.(A,g),A}return gr({wagmiConfig:m,...g,txConfirmationTimeout:p,enableSimulateCalls:c,onLoading(...A){i({type:"confirm_sending"}),g.onLoading?.(g),o?.(...A)},onWarning(...A){g.onWarning?.(A[0],g),n?.(...A)},onSubmission(...A){i({type:"confirm_submitting"}),g.onSubmission?.(A[0],g),s?.(...A)},onSuccess(...A){i({type:"confirm_receipt"}),g.onSuccess?.(A[0],g),t?.(...A)},onError(...A){i({type:"confirm_error"}),g.onError?.(A[0],g),A[0].reason==="AtomicReadyWalletRejectedUpgradeError"&&u(),r?.(...A)}})},[m,o,n,s,t,r,e,c]);return{isLoading:a.confirmState==="loading",isSubmitting:a.confirmState==="submitting",isSuccess:a.confirmState==="success",isError:a.confirmState==="fail",write:f,reset:d}}var ku=Ru;import wu from"swr/immutable";import{isAddress as Pu,zeroAddress as Tu}from"viem";import{chainId as Iu}from"@berachain/config/internal";async function Cu(e){let t=await Pt({url:`https://api.routescan.io/v2/network/testnet/evm/${Iu}/etherscan/api?module=contract&action=getabi&address=${e}`,type:"rest",name:"RouteScan"});if(t.status==="0")throw new Error(t.result);return t.result}var lP=e=>wu(e&&Pu(e)&&e!==Tu?["useGetVerifiedAbi",e]:null,()=>e?Cu(e):Promise.resolve(""),{});import{useCallback as Xo,useEffect as Eu,useState as Su}from"react";function mP({key:e,defaultValue:t}){let r=Xo(()=>{if(typeof window>"u")return t;let a=window.history.state?.[e];return a!==void 0?a:t},[e,t]),[o,n]=Su(r()),s=Xo(a=>{let i=r(),l=a instanceof Function?a(i):a,m={...window.history.state||{},[e]:l};window.history.replaceState(m,""),n(l)},[e,r]);return Eu(()=>{if(window.history.state?.[e]===void 0){let l={...window.history.state||{},[e]:t};window.history.replaceState(l,"")}},[e,t]),[o,s]}import{useEffect as xu,useRef as vu}from"react";function fP(e){let t=vu(void 0);return xu(()=>{t.current=e}),t.current}import Bu from"swr";var Ou=({variables:e}={})=>["useAllValidators",e],hP=(e,t)=>{let{config:r}=P(e),o=Bu(Ou({variables:e}),async([,n])=>await yr({variables:{chain:r.bex.chainName,...n}}),{refreshInterval:18e4,...t?.opts});return{...o,refresh:()=>o.mutate()}};import Du from"swr";function PP({allocation:e}){return Du(e?["useApiEnrichedAllocation",e]:null,([,t])=>Ar({allocation:t}))}import Lu from"swr";import{isHex as Nu}from"viem";var Uu=e=>e?["useApiValidator",e]:null,en=(e,t)=>{let r=Uu(e),o=t?.opts?.isEnabled??!0,n=Lu(o&&e?r:null,async([,s])=>{if(!s||!Nu(s))throw new Error(`Invalid validator ID: ${s}`);return br({id:s})},{...t?.opts});return{...n,refresh:()=>n.mutate()}};import Hu from"swr";import{usePublicClient as Vu}from"@berachain/wagmi/hooks";var tn=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccessControlBadConfirmation",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"bytes32",name:"neededRole",type:"bytes32"}],name:"AccessControlUnauthorizedAccount",type:"error"},{inputs:[{internalType:"address",name:"target",type:"address"}],name:"AddressEmptyCode",type:"error"},{inputs:[],name:"AmountGreaterThanReward",type:"error"},{inputs:[],name:"AmountLessThanMinIncentiveRate",type:"error"},{inputs:[],name:"CannotRecoverIncentiveToken",type:"error"},{inputs:[],name:"CannotRecoverRewardToken",type:"error"},{inputs:[],name:"CannotRecoverStakingToken",type:"error"},{inputs:[],name:"CommissionChangeAlreadyQueued",type:"error"},{inputs:[],name:"CommissionNotQueuedOrDelayNotPassed",type:"error"},{inputs:[],name:"DepositNotMultipleOfGwei",type:"error"},{inputs:[],name:"DepositValueTooHigh",type:"error"},{inputs:[],name:"DonateAmountLessThanPayoutAmount",type:"error"},{inputs:[{internalType:"address",name:"receiver",type:"address"}],name:"DuplicateReceiver",type:"error"},{inputs:[],name:"DurationChangeNotAllowed",type:"error"},{inputs:[{internalType:"address",name:"implementation",type:"address"}],name:"ERC1967InvalidImplementation",type:"error"},{inputs:[],name:"ERC1967NonPayable",type:"error"},{inputs:[],name:"FailedCall",type:"error"},{inputs:[],name:"IncentiveRateTooHigh",type:"error"},{inputs:[],name:"IndexOutOfRange",type:"error"},{inputs:[],name:"InsolventReward",type:"error"},{inputs:[],name:"InsufficientDelegateStake",type:"error"},{inputs:[],name:"InsufficientDeposit",type:"error"},{inputs:[],name:"InsufficientIncentiveTokens",type:"error"},{inputs:[],name:"InsufficientNativeValue",type:"error"},{inputs:[],name:"InsufficientSelfStake",type:"error"},{inputs:[],name:"InsufficientStake",type:"error"},{inputs:[],name:"InvalidActivateBoostDelay",type:"error"},{inputs:[],name:"InvalidArray",type:"error"},{inputs:[],name:"InvalidBaseRate",type:"error"},{inputs:[],name:"InvalidBoostMultiplier",type:"error"},{inputs:[],name:"InvalidCommissionChangeDelay",type:"error"},{inputs:[],name:"InvalidCommissionValue",type:"error"},{inputs:[],name:"InvalidCredentialsLength",type:"error"},{inputs:[],name:"InvalidDistribution",type:"error"},{inputs:[],name:"InvalidDropBoostDelay",type:"error"},{inputs:[],name:"InvalidIncentiveFeeRate",type:"error"},{inputs:[],name:"InvalidIncentiveRate",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"InvalidMaxIncentiveTokensCount",type:"error"},{inputs:[],name:"InvalidMaxWeightPerVault",type:"error"},{inputs:[],name:"InvalidMerkleRoot",type:"error"},{inputs:[],name:"InvalidMinBoostedRewardRate",type:"error"},{inputs:[],name:"InvalidProof",type:"error"},{inputs:[],name:"InvalidPubKeyLength",type:"error"},{inputs:[],name:"InvalidRewardAllocationInactivityBlockSpan",type:"error"},{inputs:[],name:"InvalidRewardAllocationWeights",type:"error"},{inputs:[],name:"InvalidRewardClaimDelay",type:"error"},{inputs:[],name:"InvalidRewardConvexity",type:"error"},{inputs:[],name:"InvalidRewardDuration",type:"error"},{inputs:[],name:"InvalidRewardRate",type:"error"},{inputs:[],name:"InvalidSignatureLength",type:"error"},{inputs:[],name:"InvalidStartBlock",type:"error"},{inputs:[],name:"InvalidToken",type:"error"},{inputs:[],name:"InvalidWeight",type:"error"},{inputs:[],name:"InvalidateDefaultRewardAllocation",type:"error"},{inputs:[],name:"InvariantCheckFailed",type:"error"},{inputs:[],name:"MaxNumWeightsPerRewardAllocationIsZero",type:"error"},{inputs:[],name:"MethodNotAllowed",type:"error"},{inputs:[],name:"MinIncentiveRateIsZero",type:"error"},{inputs:[],name:"NonTransferable",type:"error"},{inputs:[],name:"NotAContract",type:"error"},{inputs:[],name:"NotApprovedSender",type:"error"},{inputs:[],name:"NotBGT",type:"error"},{inputs:[],name:"NotBlockRewardController",type:"error"},{inputs:[],name:"NotDelegate",type:"error"},{inputs:[],name:"NotDistributor",type:"error"},{inputs:[],name:"NotEnoughBalance",type:"error"},{inputs:[],name:"NotEnoughBoostedBalance",type:"error"},{inputs:[],name:"NotEnoughTime",type:"error"},{inputs:[],name:"NotFactoryVault",type:"error"},{inputs:[],name:"NotFeeCollector",type:"error"},{inputs:[],name:"NotIncentiveManager",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[],name:"NotNewOperator",type:"error"},{inputs:[],name:"NotOperator",type:"error"},{inputs:[],name:"NotRewardAllocator",type:"error"},{inputs:[],name:"NotRewardDurationManager",type:"error"},{inputs:[],name:"NotRewardVaultManager",type:"error"},{inputs:[],name:"NotSystemAddress",type:"error"},{inputs:[],name:"NotWBERAStakerVault",type:"error"},{inputs:[],name:"NotWhitelistedVault",type:"error"},{inputs:[],name:"OnlyNFTOwnerAllowed",type:"error"},{inputs:[],name:"OnlySystemCallAllowed",type:"error"},{inputs:[],name:"OperatorAlreadySet",type:"error"},{inputs:[],name:"PayoutAmountIsZero",type:"error"},{inputs:[],name:"RewardAllocationAlreadyQueued",type:"error"},{inputs:[],name:"RewardAllocationBlockDelayTooLarge",type:"error"},{inputs:[],name:"RewardCycleNotEnded",type:"error"},{inputs:[],name:"RewardDurationCoolDownPeriodNotPassed",type:"error"},{inputs:[],name:"RewardInactive",type:"error"},{inputs:[],name:"RewardsDurationIsZero",type:"error"},{inputs:[],name:"StakeAmountIsZero",type:"error"},{inputs:[],name:"TimestampAlreadyProcessed",type:"error"},{inputs:[],name:"TokenAlreadyWhitelistedOrLimitReached",type:"error"},{inputs:[],name:"TokenNotWhitelisted",type:"error"},{inputs:[],name:"TooManyWeights",type:"error"},{inputs:[],name:"TotalSupplyOverflow",type:"error"},{inputs:[],name:"UUPSUnauthorizedCallContext",type:"error"},{inputs:[{internalType:"bytes32",name:"slot",type:"bytes32"}],name:"UUPSUnsupportedProxiableUUID",type:"error"},{inputs:[],name:"UnauthorizedETHTransfer",type:"error"},{inputs:[],name:"WithdrawAmountIsZero",type:"error"},{inputs:[],name:"WithdrawalAlreadyRequested",type:"error"},{inputs:[],name:"WithdrawalNotReady",type:"error"},{inputs:[],name:"WithdrawalNotRequested",type:"error"},{inputs:[],name:"ZeroAddress",type:"error"},{inputs:[],name:"ZeroOperatorOnFirstDeposit",type:"error"},{inputs:[],name:"ZeroPercentageWeight",type:"error"},{anonymous:!1,inputs:[{components:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint96",name:"percentageNumerator",type:"uint96"}],indexed:!1,internalType:"struct IBeraChef.Weight[]",name:"weights",type:"tuple[]"}],name:"BaselineAllocationSet",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[],name:"ALLOCATION_SETTER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"UPGRADE_INTERFACE_VERSION",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"beraChef",outputs:[{internalType:"contract IBeraChef",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBaselineAllocation",outputs:[{components:[{internalType:"uint64",name:"startBlock",type:"uint64"},{components:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint96",name:"percentageNumerator",type:"uint96"}],internalType:"struct IBeraChef.Weight[]",name:"weights",type:"tuple[]"}],internalType:"struct IBeraChef.RewardAllocation",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_governance",type:"address"},{internalType:"address",name:"_beraChef",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"proxiableUUID",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"callerConfirmation",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint96",name:"percentageNumerator",type:"uint96"}],internalType:"struct IBeraChef.Weight[]",name:"weights",type:"tuple[]"}],name:"setBaselineAllocation",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable",type:"function"}];async function rn({publicClient:e,...t}){let{config:r}=P(t),o=await e.readContract({abi:tn,address:r.pol.rewardAllocationFactory,functionName:"getBaselineAllocation"}),n=o.startBlock!==0n?await e.getBlock({blockNumber:o.startBlock}):{timestamp:0};return Rr(o,Number(n.timestamp))}function VP(){let e=Vu();return Hu(e?["baselineRewardAllocation"]:null,()=>(y(e),rn({publicClient:e})))}import Wu from"swr";var _u=({pubKey:e,first:t=1})=>{let o=Wu(e?["useDailyValidatorBlockStats",e,t]:null,async([,n,s])=>await hr({pubKey:n,first:s}),{refreshInterval:18e4});return{...o,refresh:()=>o.mutate()}};import Qu from"swr";import{usePublicClient as Yu}from"@berachain/wagmi/hooks";function Mu(e){let t=Yu(),o=Qu(t?["useDefaultRewardAllocation"]:null,async()=>(y(t),await wr({client:t})),{...e?.opts});return{...o,refresh:()=>o.mutate()}}import Gu from"swr/immutable";var Fu=({account:e},t)=>{let o=Gu(e?["useManagedValidatorByAccount",e]:null,async([,n])=>await Pr({account:n}),{...t?.opts});return{...o,refresh:()=>o.mutate()}};import{useMemo as nn}from"react";import qu from"swr";import{useBeraWallet as $u,usePublicClient as Zu}from"@berachain/wagmi/hooks";import{zeroAddress as Ku}from"viem";async function on({client:e,pubKey:t,...r}){let{config:o}=P(r);try{let n=await e.readContract({address:o.pol.beraChef,abi:K,functionName:"valRewardAllocator",args:[t]});return n===Ku?null:n}catch(n){throw console.log("getValidatorRewardAllocatorAddress:",n),n}}function sn(e,t){return!e||!t?!1:t.operator?.toLowerCase()===e.toLowerCase()}function zu(e,t){return!e||!t?!1:t.rewardAllocator?t.rewardAllocator.toLowerCase()===e.toLowerCase():sn(e,t)}function ju({pubKey:e,account:t},r){let o=Zu(),n=q("mockValidatorOperator"),s=q("mockValidatorRewardAllocator"),a=o&&e?["useManagedValidatorRole",e]:null,{address:i}=$u(),l=t??i,u=qu(a,async([,d])=>{y(o);let[c,f]=await Promise.all([Br({client:o,pubKey:d}),on({client:o,pubKey:d})]);return{operator:c??null,rewardAllocator:f}},{...r?.opts}),m=nn(()=>n||sn(l,u.data),[l,n,u.data]),p=nn(()=>s||zu(l,u.data),[l,s,u.data]);return{...u,data:u.data?{...u.data,hasOperatorRole:m,hasRewardAllocatorRole:p}:void 0,refresh:()=>u.mutate()}}import Ju from"swr";import{keccak256 as Xu}from"viem";import{usePublicClient as ep}from"@berachain/wagmi/hooks";var an=({pubkey:e},t)=>{let r=ep(),o=e?["useOnChainValidator",e]:null,n=t.opts?.isEnabled??!0,s=Ju(n&&r?o:null,async([,a])=>{y(r);let{config:i}=P({chainId:r.chain.id}),[l,u,m]=await Promise.all([r.readContract({address:i.depositContract,abi:Rt,functionName:"getOperator",args:[a]}),r?.readContract({address:i.tokens.bgt,abi:G,functionName:"boostees",args:[a]}),r.readContract({address:i.pol.beraChef,abi:K,functionName:"getActiveRewardAllocation",args:[a]})]);return{id:Xu(a),pubkey:a,operator:l,votingPower:Number(u)}});return{...s,refresh:()=>{s.mutate()}}};import tp from"swr";import{usePublicClient as rp}from"@berachain/wagmi/hooks";var wT=({valPubKey:e,options:t})=>{let r=rp(),n=(t?.opts?.isEnabled??!0)&&r&&e?["useStakingPoolBatch",e]:null,s=tp(n,async([,a])=>(y(r),await Tr({client:r,valPubKey:a})),{refreshInterval:1e4,...t?.opts});return{...s,refresh:()=>s.mutate()}};import op from"swr";import{GetUserValidatorInformation as np}from"@berachain/graphql/pol/subgraph";import{useBeraWallet as sp}from"@berachain/wagmi/hooks";var ap=({account:e}={})=>{let{address:t}=sp(),r=e??t;return op(r?["useSubgraphUserValidators",r]:null,async([,n])=>{let s=$("pol.subgraph",{}),{data:a}=await s.query({query:np,variables:{address:n}});return a.userValidatorInformations})};import ip from"swr";import{useBeraWallet as lp,usePublicClient as up}from"@berachain/wagmi/hooks";var pp=e=>{let{address:t}=lp(),r=up(),n=ip(r&&t?["useUserActiveValidators",t]:null,async([,s])=>await Cr({account:s,publicClient:r}),{...e,refreshInterval:e?.opts?.refreshInterval??18e4,keepPreviousData:!0});return{...n,refresh:()=>n?.mutate?.()}};import mp from"swr";import{useBeraWallet as dp,usePublicClient as cp}from"@berachain/wagmi/hooks";var fp=({pubkey:e,...t})=>{let{address:r}=dp(),o=cp(),n=t.account??r,a=mp(n&&e?["useUserBoostsOnValidator",e,n]:null,async([,i,l])=>await Ir({account:l,pubkey:i,publicClient:o}),{refreshInterval:1e5});return{...a,refresh:()=>a.mutate()}};import{useCallback as gp,useMemo as yp}from"react";import*as pn from"@sentry/nextjs";import un from"swr";import{useBeraWallet as Ap}from"@berachain/wagmi/hooks";var ln=e=>{let t=new Set;return e.forEach(r=>{Array.isArray(r.rewards)&&r.rewards.forEach(o=>{o.token&&t.add(o.token)})}),t};var bp=()=>{let{address:e}=Ap(),r=un(e?["useUserClaimableIncentives",e]:null,async([,l])=>{if(!l)throw new x({message:"useUserClaimableIncentives needs a logged in account",level:"error"});return await sr({account:l})},{revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateIfStale:!1,refreshInterval:18e4}),o=r?.data,n=yp(()=>{if(o){if(!Array.isArray(o)){pn.captureException(new x({message:"Incorrect aggregated incentives data receieved.",level:"error"}),{extra:{allRewards:o,account:e}});return}return ln(o)}},[o,e]),a=un(e&&o?["useUserClaimableIncentives",e,o]:null,async([,l,u])=>{if(!l)throw new E({property:"account",value:l,expected:"Address"});if(!u)return[];if(!Array.isArray(u))throw new E({message:"Incorrect aggregated incentives data receieved to calculate proofs.",property:"allRewards",value:u,expected:"Array",level:"error"});let m=new Set(u.map(d=>d.validator)),p=Array.from(m);return await Promise.all(p.map(async d=>({...await er({account:l,validator:d,page:1,perPage:1e4}),validator:d})))},{revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateIfStale:!1,refreshInterval:18e4}),i=gp(()=>{r?.mutate(),a?.mutate()},[r,a]);return{...a,isLoading:r?.isLoading||a?.isLoading,tokenMap:n,refresh:i}};import hp from"swr/immutable";var ZT=({account:e,validatorAddress:t})=>{let o=hp(e?["useUserStakingPositions",e,t]:null,async([n,s,a])=>{let i=await Er(s);return a?i.filter(l=>l.validatorAddress.toLowerCase()===a.toLowerCase()):i});return{...o,refresh:()=>{o.mutate()}}};import{keccak256 as Rp}from"viem";function eI({pubkey:e},t){let{data:{validator:r,uptime:o}={},isLoading:n,error:s}=en(Rp(e),t),{data:a,isLoading:i,error:l}=an({pubkey:e},t);return{data:{uptime:o,validator:r||a?{...r,...a,operator:a?.operator??r?.operator,dynamicData:{activeBoostAmount:a?.dynamicData?.activeBoostAmount??r?.dynamicData?.activeBoostAmount??"",queuedBoostAmount:r?.dynamicData?.queuedBoostAmount??"",usersActiveBoostCount:r?.dynamicData?.usersActiveBoostCount??0,usersQueuedBoostCount:r?.dynamicData?.usersQueuedBoostCount??0,allTimeDistributedBGTAmount:r?.dynamicData?.allTimeDistributedBGTAmount??"0",rewardRate:a?.dynamicData?.rewardRate??r?.dynamicData?.rewardRate??"",stakedBeraAmount:r?.dynamicData?.stakedBeraAmount??"",lastDayDistributedBGTAmount:r?.dynamicData?.lastDayDistributedBGTAmount??"",activeBoostAmountRank:r?.dynamicData?.activeBoostAmountRank??0,boostApr:r?.dynamicData?.boostApr??0,commissionOnIncentives:r?.dynamicData?.commissionOnIncentives??0},id:a?.id??r?.id,pubkey:a?.pubkey??r?.pubkey,metadata:a?.metadata??r?.metadata,rewardAllocationWeights:a?.rewardAllocationWeights??r?.rewardAllocationWeights??[]}:null},isLoading:n||i,error:s||l}}import kp from"swr";var wp=({pubkey:e,dayRange:t})=>{let o=kp(e&&t?["useValidatorAnalytics",e,t]:null,async([,n,s])=>await Sr({pubkey:n,dayRange:s}),{refreshInterval:18e4});return{...o,refresh:()=>o.mutate()}};import Pp from"swr";import{usePublicClient as Tp}from"@berachain/wagmi/hooks";var Ip=(e,t)=>{let r=Tp(),n=Pp(r&&e?["useValidatorCommission",e]:null,async([,s])=>await xr({client:r,pubKey:s}),{...t?.opts});return{...n,refresh:()=>n.mutate()}};var Cp=e=>{let{data:t,isLoading:r}=qo(),o=me();return{data:t?vr(e,Number(t?.totalStakedBeraAmount),o):void 0,isLoading:r}};import Ep from"swr";import{usePublicClient as Sp}from"@berachain/wagmi/hooks";function xp(e,t){let r=Sp(),n=Ep(r&&e?["useValidatorQueuedCommission",e]:null,async([,s])=>(y(r),await Or({client:r,pubKey:s})),{...t?.opts});return{...n,refresh:()=>n.mutate()}}import vp from"swr";import{usePublicClient as Bp}from"@berachain/wagmi/hooks";var Op=(e,t)=>{let r=Bp(),n=vp(r&&e?["useValidatorQueuedOperatorAddress",e]:null,async([,s])=>await Dr({client:r,pubKey:s}),{...t?.opts});return{...n,refresh:()=>n.mutate()}};import Dp from"swr";import{usePublicClient as Lp}from"@berachain/wagmi/hooks";var Np=(e,t)=>{let r=Lp(),n=Dp(r&&e?["useValidatorQueuedRewardAllocation",e]:null,async([,s])=>await Lr({client:r,pubKey:s}),{...t?.opts});return{...n,refresh:()=>n.mutate()}};import Up from"swr";import{usePublicClient as Hp}from"@berachain/wagmi/hooks";function Vp(e,t){let r=Hp(),n=Up(r&&e?["useValidatorRewardAllocation",e]:null,async([,s])=>await kr({client:r,pubKey:s}),{...t?.opts});return{...n,refresh:()=>n.mutate()}}export{jn as OracleMode,Fp as TransactionStoreProvider,Un as USE_AGGREGATORS_QUOTES_QUERY_KEY,Qp as convertLegacyDataToNewData,Gp as createTransactionStore,Yp as filterDuplicatefn,Mp as mergeData,Ko as reducer,_p as safeParseJsonData,vw as useAddRecentTransaction,Md as useAggregatorsQuotes,$r as useAggregatorsRouterFeeBps,Zr as useAllUserPools,Qn as useAllUserPoolsQueryKey,hP as useAllValidators,Ou as useAllValidatorsQueryKey,PP as useApiEnrichedAllocation,zr as useApiPool,Gn as useApiPoolQueryKey,en as useApiValidator,Uu as useApiValidatorQueryKey,VP as useBaselineRewardAllocation,Ay as useBendTransactionRequests,xo as useBendTransactionRequestsHelper,ku as useBeraContractWrite,nw as useBeraCurrentPrice,Ke as useBexStatus,Jh as useBgtAprSimulation,el as useBgtUnstakedBalance,Gw as useBlockToTimestamp,Ho as useCappedGlobally,Vo as useCappedRelatively,sl as useClaimableFees,_b as useCollateralWeights,Rc as useCreatePool,La as useCreateProposal,_u as useDailyValidatorBlockStats,Mu as useDefaultRewardAllocation,bR as useEarnedStakedBeraVault,ie as useEnsoZap,Bc as useExploitedTokens,is as useExploitedTokensQueryKey,zp as useGetConvertToAssets,Zy as useGetPastVotes,lP as useGetVerifiedAbi,us as useGlobalLiquidityAndSwapVolume,oA as useHasVoted,CR as useHighestVaultsAPR,mP as useHistoryState,Ah as useHoneyAlerts,Wo as useHoneyBalances,kh as useHoneyChartData,Ch as useHoneyGlobalData,Qh as useHoneySwapState,_o as useHoneyVaultsBalance,Qo as useIsBadCollateralAsset,Go as useIsBasketModeEnabled,dA as useIsCanceller,Wc as useLiquidityMismatch,kf as useLpPosition,Fu as useManagedValidatorByAccount,ju as useManagedValidatorRole,Qs as useMultipleTokenApprovalsWithSlippage,co as useMultipleTokenInformation,fo as useOnChainPoolData,Js as useOnChainPoolDataQueryKey,an as useOnChainValidator,bA as usePollAllProposals,Ja as usePollAllProposalsQueryKey,uo as usePollAllowances,ao as usePollBalance,qo as usePollGlobalData,NR as usePollMarkets,Al as usePollMarketsQueryKey,ra as usePollPoolCreationRelayerApproval,CA as usePollProposal,DA as usePollProposalThreshold,HA as usePollProposalVotes,ai as usePollProposalVotesQueryKey,FA as usePollUserDelegates,mw as usePollWalletBalances,fg as usePool,bg as usePoolEvents,Pg as usePoolHistoricalData,vg as usePools,pa as usePoolsQueryKey,fP as usePrevious,zA as useProposalFromTx,Oo as useProposalSnapshot,rb as useProposalState,lb as useProposalTimelockState,ee as usePythLatestPrices,$h as usePythUpdateFee,YR as useQueuedBeraUnlock,bb as useQuorum,Nw as useRecentTransactions,ZR as useRewardTokenToBeraRate,fk as useRewardVault,oo as useRewardVaultBalanceFromStakingToken,ct as useRewardVaultFromToken,Rk as useRewardVaultIncentives,Bl as useRewardVaultQueryKey,Ul as useRewardVaultRewards,bt as useRewardVaults,ml as useRewardVaultsQueryKey,xk as useStakedBeraSnapshots,wT as useStakingPoolBatch,bw as useStakingTokenInformation,sa as useSubgraphPoolQueryKey,ap as useSubgraphUserValidators,zo as useTokenCurrentPrice,Ue as useTokenCurrentPrices,no as useTokenInformation,Ne as useTokens,Tw as useTotalSupply,pe as useTransactionStore,pp as useUserActiveValidators,fp as useUserBoostsOnValidator,bp as useUserClaimableIncentives,ZT as useUserStakingPositions,Ql as useUserVaultInfo,Fl as useUserVaults,eI as useValidator,wp as useValidatorAnalytics,Ip as useValidatorCommission,Cp as useValidatorEstimatedBgtPerYear,xp as useValidatorQueuedCommission,Op as useValidatorQueuedOperatorAddress,Np as useValidatorQueuedRewardAllocation,Vp as useValidatorRewardAllocation,Fk as useVaultAddress,Zk as useVaultHistory,zl as useVaultValidators,wy as useZapTransactionRequests};
|
|
3
|
+
This discrepancy could expose you to potential losses from arbitrageurs. ${a===ae.ComposableStable?"Did you mean to create a Weighted pool instead?":""}`,suggestWeighted:a===ae.ComposableStable}):m({title:null,message:null})},[e,t,r,o,n,s,a,i,l]),u};import io from"bignumber.js";import{formatEther as lo,isAddressEqual as Ds}from"viem";import As from"swr";import{isAddress as ro,zeroAddress as bs}from"viem";import{useBeraWallet as hs,usePublicClient as Rs}from"@berachain/wagmi/hooks";import cs from"swr/immutable";import{isAddress as fs,zeroAddress as gs}from"viem";import{usePublicClient as ys}from"@berachain/wagmi/hooks";var ct=({tokenAddress:e},{isEnabled:t=!0}={})=>{let r=ys(),o=r&&e&&fs(e)&&t?["useRewardVaultFromToken",e]:null,n=cs(o,async([,s])=>{if(!s)throw new Error("useRewardVaultFromToken needs a valid token address");y(r);let{config:a}=P({chainId:r.chain.id}),i=await r.readContract({address:a.pol.factory,abi:kt,functionName:"getVault",args:[s]});return i===gs?void 0:i});return{...n,refresh:()=>n.mutate()}};var oo=({stakingToken:e,rewardVaultAddress:t},r)=>{let{address:o}=hs(),n=Rs(),s=r?.opts?.isEnabled??!0,{data:a=t,error:i,mutate:l,isLoading:u}=ct({tokenAddress:e},{isEnabled:!t&&s}),m=As(a&&o&&n&&ro(a)&&ro(o)&&s?["useVaultBalanceFromStakingToken",a,o]:null,async([,p,d])=>{if(y(n),p===bs)return{address:p,balance:0n};let c=await n.readContract({address:p,abi:ue,functionName:"balanceOf",args:[d]});return{address:p,balance:c}});return{...m,refresh:()=>{l(),m.mutate()},isLoading:m.isLoading||u}};import Is from"swr";import{erc20Abi as Cs,formatEther as Es,formatUnits as Ss,isAddress as so,zeroAddress as xs}from"viem";import{defaultChainId as vs}from"@berachain/config/internal";import{useBeraWallet as Bs,usePublicClient as Os}from"@berachain/wagmi/hooks";import ks from"swr/immutable";import{isAddress as ws,zeroAddress as Ps}from"viem";import{usePublicClient as Ts}from"@berachain/wagmi/hooks";var no=(e,t)=>{let r=Ts({chainId:e.chainId}),o=e?.address&&r&&ws(e.address)?["useTokenInformation",e.address,e.chainId]:null,n=ks(o,async([s,a])=>k(a,"BERA")?{address:Ps,decimals:H.decimals,name:H.name,symbol:H.symbol}:(y(r),await X({address:a,publicClient:r})),{...t?.opts});return{...n,refresh:()=>n?.mutate?.()}};function ao({address:e,owner:t,chainId:r=vs},o){let n=e;k(n,"ETH")&&(n=xs);let s=Os({chainId:r}),{address:a}=Bs(),i=t??a,l=(o?.opts?.isEnabled??!0)&&s&&i&&so(i)&&n&&so(n)?["usePollBalance",i,n,r]:null,{data:u,isLoading:m}=no({address:n,chainId:r}),p=k(n,"BERA"),{isLoading:d,data:c,error:f,...g}=Is(l,async([,h,b])=>(y(s),k(b,"BERA")?await s.getBalance({address:h}):await s.readContract({address:b,abi:Cs,functionName:"balanceOf",args:[h]})),{refreshInterval:1e4}),A=!f&&c?k(n,"BERA")?Es(c):u&&!m?Ss(c,u.decimals):void 0:void 0,R={balance:c??0n,formattedBalance:A??"0",address:n,decimals:p?H.decimals:u?.decimals??0,symbol:p?H.symbol:u?.symbol??"",name:p?H.name:u?.name??""};return{...g,refresh:()=>{g.mutate()},isLoading:d||p?m:!1,error:f||!p?f:void 0,data:R}}var kf=({pool:e,vaultAddress:t},r)=>{let{data:o,...n}=ao({address:e?.address}),{data:s,refresh:a}=oo({stakingToken:e?.address,rewardVaultAddress:t??e?.rewardVault?.vaultAddress},r),i=e?Number.parseFloat(e?.dynamicData?.totalShares??"0"):0,l=e?.dynamicData?.totalLiquidity?Number(e?.dynamicData?.totalLiquidity??0):null,u=i&&l?l/Number(i):0,m=e?.tokens?.map(p=>({address:p.address,ratio:i?Number(p.balance)/Number(i):0}));return{data:{lpTokenPrice:u,lpBalance:o?{...o,usdValue:o?Number(o.formattedBalance)*u:void 0}:void 0,tokenBalances:e?.tokens?.map(p=>{let d=m?.find(g=>Ds(g.address,p.address))?.ratio??0,c=d?io(o?.formattedBalance??"0").times(d):io(0),f=Number(p.balanceUSD)/Number(p.balance);return{balance:c?.isGreaterThan(0)?BigInt(c.times(10**p.decimals).toFixed(0).toString()):0n,formattedBalance:c.toString(),address:p.address,usdValue:Number.isNaN(f)||!c?void 0:Number.parseFloat(c.toString())*f}}),stakedBalance:s?.address?{address:s.address,balance:s.balance,formattedBalance:lo(s.balance),usdValue:Number(lo(s.balance))*u}:void 0},...n,refresh:()=>{n.refresh?.(),a()}}};import{useMemo as po}from"react";import{ZERO_ADDRESS as Hs}from"@berachain-foundation/berancer-sdk";import Vs from"bignumber.js";import{isAddressEqual as Ws,parseUnits as mo}from"viem";import Ls from"swr";import{useBeraWallet as Ns,usePublicClient as Us}from"@berachain/wagmi/hooks";var uo=(e,t)=>{let r=Us(),{address:o}=Ns(),n=r&&o&&e?.tokens&&e?.spender?["usePollAllowances",o,e?.tokens,e?.spender]:null,s=Ls(n,async([,a,i,l])=>dr({tokens:i,account:a,spender:l,publicClient:r}),{...t?.opts,refreshInterval:t?.opts?.refreshInterval??1e5});return{...s,refresh:()=>s?.mutate?.()}};function _s({amount:e,decimals:t,slippage:r}){let o=mo(e,t),n=mo((r??0).toString(),t);return o+o*n/BigInt(100*10**t)}var Qs=(e,t,r)=>{let o=po(()=>e.filter(l=>l.address!==Hs).filter(l=>l!==void 0).filter(l=>Vs(l.amount).gt(0)),[e]),{data:n,refresh:s,isLoading:a}=uo({spender:t,tokens:o});return{needsApproval:po(()=>n?.map(l=>{let u=o.find(p=>Ws(p.address,l.address));if(!u)throw new x({message:"Token not found when matching allowance in useMultipleTokenApprovalsWithSlippage",cause:{allowance:l,tokens:o}});let m=_s({...u,slippage:r});if(l.allowance===0n||l.allowance<m)return{...l,maxAmountIn:m}}).filter(l=>l!==void 0)??[],[n,r,o]),refresh:s,isLoading:a}};import{useMemo as qs}from"react";import $s from"swr/immutable";import{formatUnits as Zs,isAddress as zs}from"viem";import{usePublicClient as js}from"@berachain/wagmi/hooks";import Ys from"swr/immutable";import{isAddress as Ms}from"viem";import{usePublicClient as Gs}from"@berachain/wagmi/hooks";var co=(e,t)=>{let r=Gs(),o=r&&e.addresses?["useMultipleTokenInformation",e.addresses]:null,n=Ys(o,async([,s])=>(y(r),Promise.all(s.map(async a=>{if(!a||!Ms(a,{strict:!1}))throw new Error("Invalid address");let i=await X({address:a,publicClient:r});if(!i)throw new Error(`Token ${a} not found`);return i}))),{...t?.opts});return{...n,refresh:()=>n?.mutate?.()}};import Ks from"swr";import{useContext as Fs}from"react";function Ne(){let e=Fs(Lr);if(!e)throw new x({message:"useTokens must be used within a TokensProvider",level:"fatal"});return{...e,data:{tokenList:e.tokenList,customTokenList:e.userTokens,featuredTokenList:e.featuredTokens}}}function Ue({addressIn:e}={},t={opts:{refreshInterval:1e5,revalidateOnFocus:!0}}){let{tokenList:r}=Ne(),o=e?.some(a=>r?.findIndex(i=>k(i,a))===-1)?e:r?.map(a=>a.address),n=o&&(t.opts?.isEnabled??!0)?["useTokenCurrentPrices",o.map(a=>a.toLowerCase())]:null,s=Ks(n,async([,a])=>mr({addressIn:a}),t.opts);return{...s,refresh:()=>void s.mutate()}}function Js(e){let t="poolId"in e?e.poolId?.slice(0,42):e.address;return zs(t)&&t?["useOnChainPoolData",t]:null}function fo(e){let t=js(),r=e?.slice(0,42),o=Js({poolId:e}),{data:n,error:s,isLoading:a,mutate:i}=$s(t?o:null,async([,c])=>Ct({poolId:c,publicClient:t})),{data:l,isLoading:u}=co({addresses:n?.poolTokens[0]}),{data:m,isLoading:p}=Ue({addressIn:n?.poolTokens[0]});return{data:qs(()=>{if(!n||!l)return;let c={address:r.toLowerCase(),id:e.toLowerCase(),type:n.type,factory:n.factory,totalShares:n.totalSupply,totalLiquidity:"0",swapFee:n.swapFee,createTime:0,name:n.name,tokens:l.map((g,A)=>({address:g.address.toLowerCase(),name:g.name,decimals:g.decimals,symbol:g.symbol,index:A,weight:n.weights?.[A]??void 0,balance:Zs(BigInt(n.poolTokens[1][A]),g.decimals),token:{__typename:"Token",token:g,latestUSDPrice:m?.[g.address]}})),amplificationParameter:n?.amplificationParameter&&{currentFormattedValue:Number(n.amplificationParameter[0])/Number(n.amplificationParameter[2])}},f=c.tokens?.reduce((g,A)=>{let R=Number(m?.[A.address.toLowerCase()]?.price??0);return R?g+R*Number(A.balance):g},0);return c.totalLiquidity=f?.toString()??"",c},[n,l,m,r,e]),error:s,isLoading:a||u||p,mutate:i,refresh:()=>i()}}import Xs from"swr";import{useBeraWallet as ea,usePublicClient as ta}from"@berachain/wagmi/hooks";var ra=e=>{let{address:t}=ea(),r=ta(),o=t&&r?["usePollPoolCreationRelayerApproval",t,r.chain.id]:null,n=Xs(o,async([,a])=>{y(r);let{config:i}=P({chainId:r.chain.id});return await r.readContract({address:i.bex.vault,abi:oe,functionName:"hasApprovedRelayer",args:[a,i.bex.poolCreationHelper]})},{...e?.opts});return{...n,refreshPoolCreationApproval:()=>{n.mutate()}}};import{useMemo as oa}from"react";import na from"swr";function sa({poolId:e}){return e?["usePool-subgraph",e]:null}var fg=({poolId:e})=>{let t=na(sa({poolId:e}),async([,i])=>xt({poolId:i}),{refreshInterval:1e5}),r=zr({poolId:e}),{data:o,isLoading:n,refresh:s}=fo(e);return{data:[oa(()=>{if(!t.data)return o;let i={...t.data};return o&&(i.swapFee=o.swapFee,i.totalShares=o.totalShares,i.createTime=o.createTime??i.createTime),i},[o,t]),r.data,o],isLoading:r.isLoading||t.isLoading||n,isError:r.error||t.error,refresh:()=>{r.refresh(),t.mutate(),s()}}};import aa from"swr/immutable";var bg=({poolId:e,typeInArray:t})=>aa(e?["usePoolEvents",e,t]:null,async([,r,o])=>Et({poolId:r,typeInArray:o}),{refreshInterval:18e4});import ia from"swr";var Pg=({poolId:e,...t},r)=>{let{config:o}=P(t),s=ia(e?["usePoolHistoricalData",e]:null,async([,a])=>await St({poolId:a,chain:o.bex.chainName}),r?.opts);return{...s,refresh:()=>void s.mutate()}};import{useMemo as go}from"react";import la from"swr";import{useBeraWallet as ua}from"@berachain/wagmi/hooks";var pa=({query:e}={})=>["useAllPools",e],vg=(e,t)=>{let{address:r}=ua(),{data:o,isLoading:n,mutate:s}=Zr({userAddress:r,chain:e.chain}),{data:a,isLoading:i,mutate:l}=la(pa({query:e}),async([p,d])=>de(d),{refreshInterval:18e4,...t?.opts}),u=go(()=>{if(!a||!o?.pools?.length)return a?.pools??[];let p=Object.fromEntries(o.pools.map(d=>[d.id.toLowerCase(),d]));return a.pools.map(d=>({...d,...p[d.id.toLowerCase()]||{}})).filter(Boolean)},[a,o]),m=go(()=>({page:Math.ceil((e?.skip??0)/(e?.first??10)),pageSize:e?.first,count:Math.ceil((a?.count??0)/(e?.first??10))}),[a,e.skip,e.first]);return{pools:u??[],walletPools:a?.pools??[],isLoading:i||n,refresh:()=>{l(),s()},pagination:m}};import Ia from"swr";import{useBeraWallet as Ca,usePublicClient as So}from"@berachain/wagmi/hooks";import{useCallback as wo}from"react";import{getPublicClient as Po}from"@wagmi/core";import wa from"swr";import{isAddress as Pa,parseUnits as To}from"viem";import{defaultChainId as Io}from"@berachain/config/internal";import{useBeraWallet as Co,useConfig as Eo}from"@berachain/wagmi/hooks";import{ethAddress as ca,zeroAddress as fa}from"viem";import{erc20Abi as ma,ethAddress as da}from"viem";var He=async({fromAddress:e,amountIn:t,tokenIn:r,chainId:o,ensoClient:n,bundle:s,publicClient:a})=>{let i=[];if(r!==da){let l=await n.getApprovalData({fromAddress:e,tokenAddress:r,chainId:o,amount:t}),u=!0;a&&(u=await a.readContract({address:r,abi:ma,functionName:"allowance",args:[e,l.spender]})<BigInt(t)),u&&i.push({to:l.tx.to,data:l.tx.data,value:l.tx.value,gasLimit:BigInt(l.gas)})}return i.push({to:s.tx.to,data:s.tx.data,value:s.tx.value,gasLimit:BigInt(s.gas)}),i};async function yo({fromAddress:e,amountIn:t,tokenIn:r,loanToken:o,bendVault:n,rewardVault:s,chainId:a,ensoClient:i,destinationChainId:l,slippage:u,publicClient:m}){if(!e)throw new E({property:"fromAddress",value:e,expected:"string"});o===fa&&(o=ca);let p=[{protocol:"enso",action:"route",args:{tokenIn:r,tokenOut:o,amountIn:t,slippage:u*100}}];l&&l!==a&&(p[0].args={...p[0].args,destinationChainId:l,refundReceiver:e}),p.push({protocol:"erc4626",action:"deposit",args:{amountIn:{useOutputOfCallAt:0},tokenIn:o,primaryAddress:n,tokenOut:n}}),s&&p.push({protocol:"enso",action:"balance",args:{token:n}},{protocol:"erc20",action:"approve",args:{amount:{useOutputOfCallAt:2},spender:s,token:n}},{protocol:"enso",action:"call",args:{address:s,args:[e,{useOutputOfCallAt:2}],method:"stakeOnBehalf",abi:"function stakeOnBehalf(address account, uint256 amount) external"}},{protocol:"enso",action:"balance",args:{token:s}});let d=await i.getBundleData({fromAddress:e,receiver:e,spender:e,chainId:a,routingStrategy:"router"},p),c=await He({fromAddress:e,amountIn:t,tokenIn:r,chainId:a,ensoClient:i,bundle:d,publicClient:m});return{bundle:d,transactions:c}}import{ethAddress as ga,zeroAddress as ya}from"viem";async function Ao({fromAddress:e,amountIn:t,tokenIn:r,tokenOut:o,chainId:n,ensoClient:s,destinationChainId:a,slippage:i,publicClient:l}){if(!e)throw new E({property:"fromAddress",value:e,expected:"address"});o===ya&&(o=ga);let u={protocol:"enso",action:"route",args:{tokenIn:r,tokenOut:o,amountIn:t,slippage:i*100}};a&&a!==n&&(u.args={...u.args,destinationChainId:a,refundReceiver:e});let m=await s.getBundleData({fromAddress:e,receiver:e,spender:e,chainId:n,routingStrategy:"router"},[u]),p=await He({fromAddress:e,amountIn:t,tokenIn:r,chainId:n,ensoClient:s,bundle:m,publicClient:l});return{bundle:m,transactions:p}}import{EnsoClient as Aa}from"@ensofinance/sdk";import{appConfig as ba}from"@berachain/config/internal";var ha=process.env.NODE_ENV!=="development"&&process.env.NODE_ENV!=="test";function bo({useProxy:e=ha,...t}={}){let{config:r}=P(t);return new Aa({baseURL:e?`${r.bex.aggregatorsProxyUrl}/enso/api/v1/`:void 0,apiKey:e?"":ba.apiKeys.public.enso})}import*as Ro from"@sentry/nextjs";import{getChains as Ra,multicall as ka}from"@wagmi/core";import{formatUnits as ho}from"viem";async function ko({account:e,wagmiConfig:t,chainId:r,ensoClient:o}){let s=(await o.getBalances({useEoa:!0,chainId:r??"all",eoaAddress:e})).map(u=>({name:u.name,symbol:u.symbol,decimals:u.decimals,address:u.token,logoURI:u.logoUri,balance:BigInt(u.amount),formattedBalance:ho(BigInt(u.amount),u.decimals),chainId:Number(u.chainId),price:Number(u.price)})),a=Object.groupBy(s,u=>u.chainId??0),i=await Promise.allSettled(Object.entries(a).map(async([u,m])=>{if(!m)return;let p=Ra(t).find(A=>A.id===Number(u));if(!p)return;let c=p.contracts?.multicall3?.address;if(!c)return Ro.captureException(new E({property:"multicallAddress",value:c,expected:"Address",chainId:Number(u)})),m;let f=await ka(t,{chainId:Number(u),contracts:m.map(A=>cr({token:A,account:e,multicallAddress:c})),allowFailure:!0}),g=[];for(let A=0;A<m.length;A++){let R=m[A];f[A].status==="success"?g.push({...R,balance:f[A].result,formattedBalance:ho(f[A].result,R.decimals)}):(console.error("error getting balance",f[A].error),captureException(Ke({cause:f[A].error})),g.push(R))}return g})),l=[];for(let u of i)u.status==="fulfilled"?l.push(...u.value??[]):captureException(Ke({cause:u.reason}));return l.sort((u,m)=>{let p=Number(u.formattedBalance)*(u.price??0);return Number(m.formattedBalance)*(m.price??0)-p})}function Ta({ensoClient:e,chainId:t},r){let{address:o}=Co(),n=Eo(),s=!!o&&Pa(o),i=wa(s&&n?["useEnsoBalances",o,t]:null,async([,l,u])=>ko({account:l,wagmiConfig:n,chainId:u??"all",ensoClient:e}),{refreshInterval:1e4,isEnabled:s,...r?.opts});return{...i,refresh:()=>i.mutate()}}function ie({chainId:e}){let{address:t}=Co(),r=Eo(),o=bo(),{data:n,refresh:s}=Ta({ensoClient:o,chainId:e}),a=wo(async({tokenIn:l,tokenOut:u,amount:m,slippage:p})=>{j(t,"fromAddress"),j(l?.address,"tokenInAddress"),ne(l?.chainId,"tokenInChainId");let d=Po(r,{chainId:l.chainId});y(d);let c=To(m,l.decimals).toString();return Ao({fromAddress:t,amountIn:c,tokenIn:l?.address,tokenOut:u,chainId:l.chainId,ensoClient:o,destinationChainId:Io,slippage:p,publicClient:d})},[t,o,r]),i=wo(async({tokenIn:l,amount:u,loanToken:m,bendVault:p,rewardVault:d,slippage:c})=>{j(t,"fromAddress"),j(l?.address,"tokenInAddress"),ne(l?.chainId,"tokenInChainId");let f=Po(r,{chainId:l.chainId});y(f);let g=To(u,l.decimals).toString();return yo({fromAddress:t,amountIn:g,tokenIn:l.address,loanToken:m,bendVault:p,rewardVault:d,chainId:l.chainId,ensoClient:o,destinationChainId:Io,slippage:c,publicClient:f})},[t,o,r]);return{tokens:n,getBendTransactionRequests:i,getZapTransactionRequests:a,refreshTokens:s}}function Ay({tokenIn:e,loanTokenAddress:t,loanTokenPrice:r,bendVault:o,rewardVault:n,amount:s,slippage:a,chainId:i},l){let{tokens:u,refreshTokens:m}=ie({chainId:i}),{data:p,error:d}=xo({tokenIn:e,loanTokenAddress:t,loanTokenPrice:r,bendVault:o,rewardVault:n,amount:e?.formattedBalance,slippage:a,chainId:e?.chainId},l),c=p?.transactions?.reduce((R,h)=>R+BigInt(h.value??0n),0n)??0n,f=u?.find(R=>k(R,"ETH")&&R.chainId===e?.chainId),g=BigInt(c)-BigInt(f?.balance??0n),A=xo({tokenIn:e,loanTokenAddress:t,loanTokenPrice:r,bendVault:o,rewardVault:n,amount:s,slippage:a,chainId:i},l);return{...A,nativeFee:g,error:d||A.error,tokens:u,refresh:()=>{A.mutate(),m()}}}function xo({tokenIn:e,loanTokenAddress:t,loanTokenPrice:r,bendVault:o,rewardVault:n,amount:s,slippage:a,chainId:i},l){let{address:u}=Ca(),{getBendTransactionRequests:m}=ie({chainId:i}),p=!!e&&!!t&&!!o&&!!s&&!!u&&!k(t,e?.address)&&e.chainId&&Number(s)>0&&!!a,d=So({chainId:i}),c=So();return Ia(p?["useBendTransactionRequests",e,t,r,o,n,s,a]:null,async([,g,A,R,h,b,T,w])=>{if(!d||!c)throw new E({property:"publicClient",value:d,expected:"PublicClient"});let I=await m({amount:T,tokenIn:g,loanToken:A,bendVault:h,rewardVault:b,slippage:w}),C=I.bundle.amountsOut,v=b?b.toLowerCase():h.toLowerCase(),M=C[v],W=await pe({sharesAmount:BigInt(M),vaultAddress:h,publicClient:c}),O=g?.price&&R?rr(g?.price?.toString(),R?.toString(),T,W.formatted):void 0;return{supplyAmount:W,priceImpact:O,...I}},{...l?.opts,refreshInterval:1e5})}import Ea from"swr";var wy=({tokenIn:e,tokenOut:t,amount:r,slippage:o,chainId:n})=>{let{getZapTransactionRequests:s,refreshTokens:a,tokens:i}=ie({chainId:n}),l=!!e&&!!t&&!!r&&Number(r)>0&&!!o,m=Ea(l?["useZapTransactionRequests",e,t,r,o]:null,async([,p,d,c,f])=>(ne(p,"tokenIn"),j(d?.address,"tokenOutAddress"),qe(c,"amount"),qe(f,"slippage"),s({amount:c,tokenIn:p,tokenOut:d.address,slippage:f})),{refreshInterval:1e5,isEnabled:l});return{...m,tokens:i,refresh:()=>{m.mutate(),a()}}};import{useCallback as ft,useEffect as Oa,useState as Da}from"react";import Sa from"gray-matter";import{encodeFunctionData as We,erc20Abi as xa,parseAbiItem as va,toHex as Ba}from"viem";function Ve(e){return Object.values(e).some(t=>Array.isArray(t)?t.some(r=>typeof r=="object"&&r!==null?Ve(r):!!r):typeof t=="object"&&t!==null?Ve(t):!!t)}var vo=({proposal:e,currentTopic:t,onError:r})=>{let o=Bt(e,t),n=[];if(o.actions=e.actions.map((i,l)=>{let u={};if(u.target=N({fieldOrType:"address",value:i.target}),i.type==="custom-action")if(i.input==="ABI")if(u.ABI=N({fieldOrType:"abi",value:i.ABI}),!i.functionSignature)u.functionSignature="Required";else try{let p=va(i.functionSignature);p.type!=="function"?(console.error("parsedSignatureAbi is not a function",p),u.functionSignature="Invalid ABI"):(u.args=p.inputs.map((d,c)=>{try{return"components"in d?N({fieldOrType:d.type,value:i.args?.[c],components:d.components}):N({fieldOrType:d.type,value:i.args?.[c]})}catch{return null}}),u.args.some(d=>d)||(n[l]=We({abi:[p],args:i.args})))}catch{u.functionSignature="Invalid ABI"}else if(i.input==="rawCalldata")u.rawCalldata=N({fieldOrType:"hex",value:i.rawCalldata}),n[l]=i.rawCalldata;else if(i.input==="message")u.message=N({fieldOrType:"string",value:i.message}),n[l]=Ba(i.message);else throw new Error("Invalid input type");else if(i.type==="whitelist-reward-vault"||i.type==="blacklist-reward-vault"){if(u.vault=N({fieldOrType:"address",value:i.vault}),!u.vault){let p=i.type==="whitelist-reward-vault";n[l]=We({abi:K,functionName:"setVaultWhitelistedStatus",args:[i.vault,p,""]})}}else i.type==="whitelist-reward-vault-incentive"?(u.token=N({fieldOrType:"address",value:i.token}),u.minIncentiveRate=N({fieldOrType:"uint256",value:i.minIncentiveRate}),u.managerAddress=N({fieldOrType:"address",value:i.managerAddress}),!u.token&&!u.minIncentiveRate&&!u.managerAddress&&(n[l]=We({abi:ue,functionName:"whitelistIncentiveToken",args:[i.token,BigInt(i.minIncentiveRate),i.managerAddress]}))):i.type==="erc20-transfer"&&(u.amount=N({fieldOrType:"uint256",value:i.amount}),u.to=N({fieldOrType:"address",value:i.to}),!u.amount&&!u.to&&(n[l]=We({abi:xa,functionName:"transfer",args:[i.to,BigInt(i.amount)]})));return Ve(u)?u:null}),r?.(o),Object.getOwnPropertyNames(o).map(i=>o[i]).some(i=>Array.isArray(i)?i.filter(l=>l).length>0:i===null?!1:!!i)){console.warn("Proposal has errors",o);return}if(n.length===0)throw new Error("No actions submitted in proposal");let s=new URL(e.forumLink),a=Sa.stringify(e.description,{title:e.title,topics:Array.from(e.topic.values()),forumLink:s.toString(),version:"1.0.0","content-encoding":"utf-8","content-type":"text/markdown",actions:e.actions.map(i=>{let l={type:i.type};return i.type==="custom-action"&&(l.inputType=i.input),l})});return[e.actions.map(i=>i.target),e.actions.map(i=>i.value??0n),n,a]};var Bo={type:"custom-action",target:"",ABI:"",value:0n,functionSignature:"",args:[],input:"ABI",rawCalldata:"0x",message:""},La=({initialData:e={},currentTopic:t,onError:r})=>{let[o,n]=Da({title:"",description:"",forumLink:"",actions:[Bo],...e,topic:new Set});Oa(()=>{n(l=>({...l,topic:new Set([t.id])}))},[t]);let s=ft(()=>{n(l=>({...l,actions:[...l.actions,Bo]}))},[]),a=ft(l=>{n(u=>{let m=[...u.actions];return m.splice(l,1),{...u,actions:m}})},[n]),i=ft(()=>o?vo({proposal:o,currentTopic:t,onError:r}):void 0,[o,t]);return{proposal:o,setProposal:n,addProposalAction:s,removeProposalAction:a,computeParamsAndErrors:i}};import Ha from"swr/immutable";import{formatUnits as Va}from"viem";import{useBeraWallet as Wa,usePublicClient as _a}from"@berachain/wagmi/hooks";import Na from"swr/immutable";import{usePublicClient as Ua}from"@berachain/wagmi/hooks";var Oo=({proposalId:e})=>{let t=Ua();return Na(t&&e?["useProposalSnapshot",e]:null,async([,o])=>{y(t);let{config:n}=P({chainId:t.chain.id});return(await t.readContract({abi:_,address:n.governance.governor,functionName:"proposalSnapshot",args:[BigInt(o)]})).toString()})};var Zy=e=>{let{address:t}=Wa(),r=_a(),o=e.wallet||t,{data:n}=Oo({proposalId:e.proposalId}),s=e.timepoint||n;return Ha(s&&r&&o?["useGetPastVotes",s,o]:null,async([,i,l])=>{y(r);let{config:u}=P({chainId:r.chain.id});if(Number(i)>Date.now()/1e3)throw new Error("timepoint is in the future");let m=await r.readContract({abi:G,address:u.tokens.bgt,functionName:"getPastVotes",args:[l,BigInt(i)]});return Va(m,18)})};import Qa from"swr";import{isAddress as Ya}from"viem";import{useBeraWallet as Ma,usePublicClient as Ga}from"@berachain/wagmi/hooks";var oA=({proposalId:e,wallet:t})=>{let{address:r}=Ma(),o=Ga(),n=t||r;return Qa(o&&n&&Ya(n)?["useHasVoted",e,n]:null,([,s,a])=>{y(o);let{config:i}=P({chainId:o.chain.id});return o.readContract({address:i.governance.governor,abi:_,functionName:"hasVoted",args:[BigInt(s),a]})})};import Fa from"swr";import{usePublicClient as Ka}from"@berachain/wagmi/hooks";var Do="0xfd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783";var dA=({account:e,...t})=>{let r=Ka(),{config:o}=P(t);return Fa(e&&r?["useCancellerRole",e]:null,async([,s])=>(y(r),await r.readContract({abi:le,address:o.governance.timelock,functionName:"hasRole",args:[Do,s]})),{refreshInterval:18e4,revalidateOnFocus:!1})};import{useEffect as Lo,useMemo as qa,useState as $a}from"react";import Za from"swr/infinite";import{Proposal_OrderBy as za,ProposalStatus as V}from"@berachain/graphql/governance";var No=10,ja=e=>{switch(e){case V.QuorumNotReached:return[V.Active,V.Pending];case V.PendingQueue:case V.Defeated:return[V.Active];case V.PendingExecution:return[V.InQueue];default:return[e]}};function Ja(e,t={}){let r=2*(t.perPage??No);return(o,n)=>{if(o!==0&&n&&n.length<r)return null;let s=t.status_in?.flatMap(ja).filter((a,i,l)=>l.indexOf(a)===i);return["usePollAllProposals",o,e,t.where,s,t.orderBy,t.orderDirection,r,t.text]}}function bA(e,t){let r=t?.autoRefresh??!1,o=e.perPage??No,n=2*o,s=Ja(e.topic,e);async function a(c){if(!c)return[];let[,f,g,A,R,h,b,T,w]=c;return(await vt({where:{topics_contains:[g],status_in:R?.length?R:void 0,...A},orderBy:h,orderDirection:b,text:w,perPage:T,offset:f*T})??[]).filter(Boolean)}let i=Za(s,a,{initialSize:1,refreshInterval:t?.opts?.refreshInterval??18e4,...t?.opts}),l=qa(()=>{if(!i.data)return[];let c=i.data.flat().filter(g=>g?e.status_in?.length?e.status_in.includes(g.status):!0:!1).sort((g,A)=>{if(!e.text)return 0;if(e.orderBy===za.CreatedAt){let R=Number(A.createdAt)-Number(g.createdAt);return e.orderDirection==="asc"?R:-R}return 0}),f=[];for(let g=0;g<c.length;g+=o)f.push(c.slice(g,g+o));return f},[i.data,e,o]),u=i.data?.[i.data.length-1],m=!!u&&u.length===n,[p,d]=$a(Date.now()/1e3);return Lo(()=>{if(!r)return;let c=setInterval(()=>{d(Date.now()/1e3)},1e4);return()=>clearInterval(c)},[r]),Lo(()=>{if(!i.data)return;let c=!1;for(let f of i.data.flat()){switch(f.status){case V.Pending:p>=Number(f.voteStartAt)&&(c=!0);break;case V.Active:p>=Number(f.voteEndAt)&&(c=!0);break;case V.InQueue:Date.now()/1e3+1>=Number(f.queueEnd)&&(c=!0);break;default:break}if(c)break}c&&i.mutate()},[i.data,p]),{...i,data:l,hasMore:m}}import{useEffect as Uo,useState as Xa}from"react";import ei from"swr";import{ProposalStatus as gt}from"@berachain/graphql/governance";import{usePublicClient as ti}from"@berachain/wagmi/hooks";var CA=(e,t)=>{let r=t?.autoRefresh??!1,o=ti(),s=ei(e&&o?["usePollProposal",e]:null,([,l])=>(y(o),Dt({proposalId:l,client:o})),{...t?.opts,refreshInterval:t?.opts?.refreshInterval??18e4}),[a,i]=Xa(Date.now());return Uo(()=>{if(!r)return;let l=setInterval(()=>{i(Date.now()/1e3)},1e4);return()=>clearInterval(l)},[]),Uo(()=>{if(s.data!==void 0)switch(s.data.status){case gt.Pending:a>=Number(s.data.voteStartAt)&&s.mutate();break;case gt.Active:a>=Number(s.data.voteEndAt)&&s.mutate();break;case gt.InQueue:Date.now()/1e3+1>=Number(s.data.queueEnd)&&s.mutate();break}},[s.data?.status,a]),{...s,refresh:()=>s?.mutate?.()}};import ri from"swr";import{formatEther as oi}from"viem";import{usePublicClient as ni}from"@berachain/wagmi/hooks";var DA=e=>{let t=ni(),o=ri(t?["usePollProposalThreshold",e]:null,async([,n])=>{y(t);let s=await t.readContract({address:n,abi:_,functionName:"proposalThreshold"});return{votesThreshold:oi(s)}},{refreshInterval:18e4});return{...o,refresh:o.mutate}};import si from"swr/infinite";var _e=1e3,HA=(e,t)=>si(ai(e,t),async([r,o])=>Nt({variables:{...e,limit:_e,offset:_e*o}}),{parallel:!0,initialSize:Number.POSITIVE_INFINITY}),ai=({...e},t)=>r=>r>Math.floor(t/_e)?null:["usePollProposalVotes",r,_e,e.proposalId,e.orderBy,e.orderDirection];import ii from"swr";import{formatEther as li}from"viem";import{useBeraWallet as ui,usePublicClient as pi}from"@berachain/wagmi/hooks";var FA=e=>{let{address:t}=ui(),r=pi(),n=ii(t?["usePollUserDelegates",t]:null,async([,s])=>{y(r);let{config:a}=P({chainId:r.chain.id});if(!r||!s)throw new Error("usePollUserDelegates needs publicClient and account");let[i,l]=await Promise.all([r.readContract({address:a.tokens.bgt,abi:G,functionName:"delegates",args:[s]}),r.readContract({address:a.tokens.bgt,abi:G,functionName:"getVotes",args:[s]})]);return{delegate:i,currentVotes:li(l)}},{...e?.opts,refreshInterval:e?.opts?.refreshInterval??18e4});return{...n,refresh:()=>n?.mutate?.()}};import mi from"swr";import{usePublicClient as di,useTransactionReceipt as ci}from"@berachain/wagmi/hooks";var zA=e=>{let{data:t}=ci({hash:e}),r=di();return mi(t&&r?["useProposalFromTx",e]:null,async([,s])=>{if(!t)throw new Error("Transaction not found");if(t.transactionHash!==s)throw new Error("Transaction hash mismatch");return Lt({tx:t,publicClient:r})})};import fi from"swr/immutable";import{usePublicClient as gi}from"@berachain/wagmi/hooks";var yi={0:"pending",1:"active",2:"canceled",3:"defeated",4:"succeeded",5:"queued",6:"expired",7:"executed"},rb=({proposalId:e,governorAddress:t})=>{let r=gi();return fi(t&&r&&e?["useProposalState",e]:null,async([,n])=>{y(r);let s=await r.readContract({abi:_,address:t,functionName:"state",args:[BigInt(n)]});return yi[s]})};import Ai from"swr";import{usePublicClient as bi}from"@berachain/wagmi/hooks";var hi={0:"unset",1:"waiting",2:"ready",3:"done"},lb=({proposalTimelockId:e,timelockAddress:t})=>{let r=bi();return Ai(t&&r&&e?["useProposalTimelockState",e,t]:null,async([,n,s])=>{y(r);let a=await r.readContract({abi:le,address:s,functionName:"getOperationState",args:[n]});return hi[a]},{refreshInterval:18e4})};import ki from"swr";import{usePublicClient as wi}from"@berachain/wagmi/hooks";import{formatEther as Ri}from"viem";async function yt({at:e,publicClient:t,...r}){let{config:o}=P(r);y(t);let n=await t.readContract({address:o.governance.governor,abi:_,functionName:"quorum",blockTag:"pending",args:[BigInt(e??Math.floor(Date.now()/1e3))]});return Ri(n)}function bb({at:e},{isEnabled:t=!0}){let r=Math.floor(Date.now()/1e3),o=wi(),n=t&&o?["useQuorum",Number(e)>r?"now":e]:null,s=ki(n,async([,a])=>a==="now"?yt({publicClient:o}):yt({at:a,publicClient:o}));return{...s,data:s.data?Number(s.data):void 0}}import Ti from"swr";import{usePublicClient as Ii}from"@berachain/wagmi/hooks";import Pi from"swr";function ee({priceFeedMap:e},t){let r=e?Object.values(e):null,o=(t?.opts?.isEnabled??!0)&&r?["usePythLatestPrices",r]:null;return Pi(o,async([s,a])=>await Yt({priceFeedId:a}))}var Ho=({asset:e,amount:t,isMint:r,isBasketModeEnabled:o},n)=>{let s=Ii(),{priceFeedMap:a,flags:i}=B(),{data:l}=ee({priceFeedMap:e?.address&&a?{[e.address]:a[e.address]}:void 0},{opts:{isEnabled:i.isPythWrapperEnabled&&!!e?.address}}),u=t&&e&&(i.isPythWrapperEnabled&&l?.prices.length||!i.isPythWrapperEnabled)?["useCappedGlobally",t,e,l,i.isPythWrapperEnabled,o]:null,m=Ti(u,async([p,d,c,f,g,A])=>A?!1:(y(s),await Wt({client:s,asset:c,amount:r?d:`-${d}`,isMint:r,latestPrices:f,isPythWrapperEnabled:g})),{...n?.opts,refreshInterval:0});return{...m,refresh:()=>void m.mutate()}};import Ci from"swr";import{usePublicClient as Ei}from"@berachain/wagmi/hooks";var Vo=({asset:e,amount:t,isMint:r,isBasketModeEnabled:o},n)=>{let s=Ei(),{collateralList:a,referenceCollateral:i}=B(),u=Ci(e&&t?["useCappedRelatively",e,t,a,i]:null,async([m,p,d,c,f])=>{if(o)return!1;if(y(s),!r){let g=`-${d}`;return f.address!==p?!1:(await Promise.all(c.map(R=>Ze({client:s,asset:R.address,amount:g,isMint:r,referenceCollateral:f})))).some(R=>R)}return await Ze({client:s,asset:p,amount:d,isMint:r,referenceCollateral:f})},{refreshInterval:0,...n?.opts});return{...u,refresh:()=>void u.mutate()}};import Si from"swr";import{usePublicClient as xi}from"@berachain/wagmi/hooks";var _b=({collateralList:e},t)=>{let r=xi(),n=Si(r&&e?["useCollateralWeights",e]:void 0,async([s,a])=>(y(r),await Ht({client:r,collateralList:a})),{...t?.opts,refreshInterval:t?.opts?.refreshInterval??1e5});return{...n,refresh:()=>void n.mutate()}};import{useMemo as At}from"react";import te from"bignumber.js";import vi from"swr";import{useBeraWallet as Bi,usePublicClient as Oi}from"@berachain/wagmi/hooks";var Wo=()=>{let e=Oi(),{address:t}=Bi(),{collateralList:r}=B(),n=vi(t&&r&&e?["useHoneyBalances",t,r]:null,async([s,a,i])=>{y(e);let l=[...i??[],me({})];return(await he({account:a,tokenList:l,publicClient:e}))?.reduce((p,d)=>(p[d.address]=d,p),{})},{refreshInterval:1e4});return{...n,refresh:()=>n.mutate()}};import Di from"swr";import{usePublicClient as Li}from"@berachain/wagmi/hooks";var _o=e=>{let t=Li(),{collateralList:r}=B(),n=Di(r&&t?["useHoneyVaultsBalance",r]:null,async([s,a])=>(y(t),await fe({client:t,collateralList:a})),{...e?.opts,refreshInterval:1e5});return{...n,refresh:()=>void n.mutate()}};import Ni from"swr";import{usePublicClient as Ui}from"@berachain/wagmi/hooks";var Qo=({collateral:e},t)=>{let r=Ui(),{priceFeedMap:o,flags:n}=B(),{data:s}=ee({priceFeedMap:e?.address?{[e.address]:o[e.address]}:void 0},{opts:{isEnabled:n.isPythWrapperEnabled&&!!e?.address}}),a=r&&e&&(n.isPythWrapperEnabled&&s?.prices.length||!n.isPythWrapperEnabled)?["useIsBadCollateralAsset",e,s,n.isPythWrapperEnabled]:null,i=Ni(a,async([l,u,m,p])=>(y(r),await Vt({client:r,collateral:u,latestPrices:m,isPythWrapperEnabled:p})),{...t?.opts,refreshInterval:t?.opts?.refreshInterval??1e5});return{...i,refresh:()=>void i.mutate()}};var Yo=({lowerThan:e,vaultsBalances:t,state:r,collateralList:o})=>{if(!(r.actionType==="mint")&&!r.isBasketModeEnabled){let s=t?.find(l=>l.address.toLowerCase()===r.collaterals[0].address.toLowerCase()),a=new te(s?.formattedBalance??"0").lte(e),i=o.filter(l=>{let u=t?.find(m=>m.address.toLowerCase()===l.address.toLowerCase());return new te(u?.formattedBalance??"0").lte(e)});return{isLow:a,isLiquidityLowCollaterals:i}}return{isLow:!1,isLiquidityLowCollaterals:[]}},Hi=({vaultsBalances:e,redeemedVaultBalance:t,state:r,collateralList:o})=>{if(!(r.actionType==="mint")&&e&&t){let s=o.filter(a=>{let i=e.find(u=>u.address.toLowerCase()===a.address.toLowerCase()),l=r.toAmount[r.collaterals.indexOf(a)];return new te(i?.formattedBalance??"0").lt(l??"0")});return{isMore:!!s.find(a=>a.address.toLowerCase()===r.collaterals[0].address.toLowerCase()),isRedeemMoreThanLiquidityCollaterals:s}}return{isMore:!1,isRedeemMoreThanLiquidityCollaterals:void 0}};function Vi({state:e,honeyBalances:t,...r}){let{config:o}=P(r),n=e.actionType==="mint";return!n&&t?new te(e.fromAmount[0]).gt(t[o.honey.token]?.formattedBalance??"0"):n&&t&&e.isBasketModeEnabled!==void 0&&e.collaterals.length>0?e.isBasketModeEnabled?e.collaterals.some((s,a)=>{let i=e.fromAmount[a];return new te(t[s.address]?.formattedBalance).lt(i)}):new te(t[e.collaterals[0].address]?.formattedBalance).lt(e.fromAmount[0]):!1}var Ah=({actionType:e,collaterals:t,fromAmount:r,toAmount:o,isBasketModeEnabled:n})=>{let s={actionType:e,collaterals:t,fromAmount:r,toAmount:o,isBasketModeEnabled:n},a=e==="mint",{data:i}=Qo({collateral:t[0]}),{collateralList:l}=B(),{isBlacklisted:u,isDepegged:m}=i??{isBlacklisted:!1,isDepegged:!1},{data:p}=Ho({asset:t[0],amount:a?r[0]:o[0],isMint:a,isBasketModeEnabled:n}),{data:d}=Vo({asset:t[0]?.address,amount:a?r[0]:o[0],isMint:a,isBasketModeEnabled:n}),{data:c}=Wo(),{data:f}=_o(),g=t[0]?.address,A=f?.find(I=>I.address.toLowerCase()===g.toLowerCase()),[R,h]=At(()=>{let I=Yo({lowerThan:1,vaultsBalances:f,state:s,collateralList:l}),C=Yo({lowerThan:1e3,vaultsBalances:f,state:s,collateralList:l});return[I,C]},[f,s]),{isMore:b,isRedeemMoreThanLiquidityCollaterals:T}=At(()=>Hi({vaultsBalances:f,redeemedVaultBalance:A,state:s,collateralList:l}),[f,A,s,l]),w=At(()=>Vi({state:s,honeyBalances:c}),[s,c]);return{isLiquidityDepleted:R.isLow,isLiquidityDepletedCollaterals:R.isLiquidityLowCollaterals,isRedeemMoreThanLiquidity:b,isRedeemMoreThanLiquidityCollaterals:T,isLowLiquidity:h.isLow,isLiquidityLowCollaterals:h.isLiquidityLowCollaterals,isBlacklisted:s.isBasketModeEnabled?!1:u,isDepegged:s.isBasketModeEnabled?!1:m,isCappedGlobally:p,isCappedRelatively:d,isExceedingBalance:w}};import Wi from"swr";function kh({days:e}){let t=Wi(["useHoneyChartData",e],async([r,o])=>await Ut({days:o}));return{...t,refresh:()=>t.mutate()}}import Mo from"bignumber.js";import _i from"swr";function Ch(){let e=_i(["useHoneyGlobalData"],()=>_t()),t=e.data?.honeySnapshots.reduce((r,o)=>new Mo(o.totalVolume).plus(r),new Mo(0));return{...e,data:{...e.data,dailyVolume:t},refresh:()=>e.mutate()}}import{useEffect as Mi,useReducer as Gi}from"react";import{formatUnits as Fo}from"viem";import{defaultChainId as Fi}from"@berachain/config/internal";import Qi from"swr";import{usePublicClient as Yi}from"@berachain/wagmi/hooks";function Go({state:e},t){let r=Yi(),{priceFeedMap:o,flags:n,collateralList:s}=B(),{data:a}=ee({priceFeedMap:o},{opts:{isEnabled:n.isPythWrapperEnabled&&!!s.length}}),i=e.actionType==="mint",l=r&&e&&s.length>0&&(n.isPythWrapperEnabled&&a?.prices.length||!n.isPythWrapperEnabled)?["useIsBasketModeEnabled",i,a,n.isPythWrapperEnabled,s]:null,u=Qi(l,async([m,p,d,c,f])=>(y(r),await ge({client:r,isMint:p,collateralList:f,latestPrices:d,isPythWrapperEnabled:c})),{...t?.opts,refreshInterval:t?.opts?.refreshInterval??1e4});return{...u,data:u.data,refresh:()=>void u.mutate()}}var Ki={actionType:"mint",collaterals:[],fromAmount:[],toAmount:[],isBasketModeEnabled:!1,isTyping:!1,isSubmitting:!1,isLoading:!1};function Ko(e,t){switch(t.type){case"RESET_AMOUNTS":return{...e,fromAmount:[],toAmount:[]};case"ACTION_TYPE_CHANGE":return Ko({...e,actionType:t.value},{type:"RESET_AMOUNTS"});case"COLLATERALS_CHANGE":return{...e,collaterals:t.value,fromAmount:[],toAmount:[]};case"FROM_AMOUNT_CHANGE":{let r=e.fromAmount;return r[t.index]=t.value,{...e,fromAmount:r}}case"TO_AMOUNT_CHANGE":{let r=e.toAmount;return r[t.index]=t.value,{...e,toAmount:r}}case"PREVIEW_CHANGE":{let r=t.value,o=e.actionType==="mint",n=e.collaterals.map((a,i)=>t.changedAsset===a.address?o?e.fromAmount[i]:e.toAmount[i]:r.collaterals[a.address]?Fo(r.collaterals[a.address],a.decimals):e.isBasketModeEnabled?"0":""),s=k(t.changedAsset,"HONEY",{chainId:Fi})?o?e.toAmount[0]:e.fromAmount[0]:r.honey?Fo(r.honey,18):e.isBasketModeEnabled?"0":"";return{...e,fromAmount:o?n:[s],toAmount:o?[s]:n}}case"IS_BASKET_MODE_ENABLED_CHANGE":return{...e,isBasketModeEnabled:t.value,fromAmount:[],toAmount:[]};case"IS_TYPING_CHANGE":return{...e,isTyping:t.value};case"IS_SUBMITTING_CHANGE":return{...e,isSubmitting:t.value};case"IS_LOADING_CHANGE":return{...e,isLoading:t.value};default:throw new Error(`Unknown action type: ${t}`)}}var Qh=()=>{let{collateralList:e}=B(),[t,r]=Gi(Ko,Ki,n=>({...n,collaterals:e})),{data:o}=Go({state:t});return Mi(()=>{o!==void 0&&t.isBasketModeEnabled!==o&&(r({type:"IS_LOADING_CHANGE",value:!0}),r({type:"IS_BASKET_MODE_ENABLED_CHANGE",value:o}),r({type:"IS_LOADING_CHANGE",value:!1}))},[o]),{state:t,dispatch:r}};import qi from"swr/immutable";import{usePublicClient as $i}from"@berachain/wagmi/hooks";var $h=({pythPriceFeedCalldata:e,tokenListLength:t},r)=>{let o=$i(),n=(r?.opts?.isEnabled??!0)&&e&&e.length>0?["usePythUpdateFee",e]:null,{data:s=Mt(t),isLoading:a}=qi(n,async([i,l])=>(y(o),await Gt({client:o,priceFeedId:l})));return{QUERY_KEY:n,data:s,isLoading:a}};import{useMemo as Zi}from"react";function Jh(e){return Zi(()=>{if(e)return $t(e)},[e])}import zi from"swr";import{formatEther as ji}from"viem";import{useBeraWallet as Ji,usePublicClient as Xi}from"@berachain/wagmi/hooks";var el=e=>{let{address:t}=Ji(),r=Xi(),n=zi(t&&r?["useBgtUnstakedBalance",t]:null,async([,s])=>{y(r);let{config:a}=P({chainId:r.chain.id}),i=await r.readContract({address:a.tokens.bgt,abi:G,functionName:"unboostedBalanceOf",args:[s]});return ji(i)},{...e,refreshInterval:e?.opts?.refreshInterval??1e5});return{...n,refresh:()=>n.mutate()}};import tl from"swr";import{formatUnits as rl}from"viem";import{useBeraWallet as ol,usePublicClient as nl}from"@berachain/wagmi/hooks";var sl=()=>{let{address:e}=ol(),t=nl(),o=tl(e&&t?["useClaimableFees",e]:null,async([,n])=>{y(t);let{config:s}=P({chainId:t.chain.id}),a=await ar({account:n,vaultAddress:s.pol.staker,publicClient:t});return rl(a,18)},{refreshInterval:18e4*2});return{...o,refresh:()=>o?.mutate?.()}};import al from"swr";import{GetStakeBeraVaultEarningsByOwner as il}from"@berachain/graphql/pol/api";import{useBeraWallet as ll}from"@berachain/wagmi/hooks";function bR({receiptToken:e},t){let{address:r}=ll(),o=e.address&&r?["useEarnedStakedBeraVault",e.address,r]:null,n=al(o,async([s,,a])=>(await q("api",{}).query({query:il,variables:{owner:a}})).data?.polGetStakeBeraVaultEarningsByOwner?.earnings,{refreshInterval:18e4,...t?.opts});return{...n,refresh:n.mutate}}import{GqlRewardVaultOrderBy as dl,GqlRewardVaultOrderDirection as cl}from"@berachain/graphql/pol/api";import ul from"swr";import{usePublicClient as pl}from"@berachain/wagmi/hooks";var ml=(e,t=!1)=>["useRewardVaults",e,t],bt=(e,t)=>{let r=ml(e.filter,e.onChainIncentives),o=pl(),n=ul(t?.opts?.isEnabled??!0?r:null,async([,s,a])=>await Zt({filter:s,publicClient:a?o:void 0}),{...t?.opts});return{...n,refresh:n.mutate}};var CR=(e={},{isEnabled:t=!0}={})=>{let r=bt({filter:{orderBy:dl.Apr,orderDirection:cl.Desc,pageSize:1,where:e}},{opts:{refreshInterval:0,revalidateOnFocus:!1,refreshWhenOffline:!1,isEnabled:t}});return{isLoading:r.isLoading,highestApr:r.data?.gaugeList[0].dynamicData?.apr,refresh:r.mutate}};import fl from"swr";import{usePublicClient as gl}from"@berachain/wagmi/hooks";var qo=e=>{let t=gl(),r=fl(t?"usePollGlobalData":null,async()=>(y(t),zt(t)),{revalidateOnFocus:!1,...e?.opts});return{...r,refresh:r.mutate}};import yl from"swr/immutable";var Al=()=>"usePollMarkets",NR=e=>{let t=Al(),r=yl(t,async()=>await jt(),{...e?.opts});return{...r,refresh:()=>r.mutate()}};import bl from"swr/immutable";import{isAddress as $o}from"viem";import{usePublicClient as hl}from"@berachain/wagmi/hooks";function YR({receiptTokenAddress:e,account:t,version:r},o){let n=hl(),s=e&&$o(e)&&t&&n&&$o(t)&&r?["useQueuedBeraUnlock",e,t,r]:null,a=bl(s,async([,i,l,u])=>(y(n),await or(i,l,n,u)),{refreshInterval:1e4,...o?.opts});return{...a,refresh:()=>a.mutate()}}import Rl from"swr";import{isAddress as kl}from"viem";import{usePublicClient as wl}from"@berachain/wagmi/hooks";var ZR=({address:e},t)=>{let r=e?["useRewardTokenToBeraRate",e]:null,o=wl();return Rl(r,async([n,s])=>{if(!s||!kl(s))throw new E({property:"address",value:s,expected:"Address"});return y(o),Xt({address:s,publicClient:o})},{...t?.opts})};import vl from"swr";import Tl from"swr";import{erc20Abi as Il,formatUnits as Cl,isAddress as El}from"viem";import{usePublicClient as Sl}from"@berachain/wagmi/hooks";import{erc20Abi as Qe,formatUnits as Pl}from"viem";async function Ye({address:e,publicClient:t}){y(t);let[r,o,n,s]=await t.multicall({contracts:[{address:e,abi:Qe,functionName:"decimals"},{address:e,abi:Qe,functionName:"name"},{address:e,abi:Qe,functionName:"symbol"},{address:e,abi:Qe,functionName:"totalSupply"}],allowFailure:!0});return{address:e,decimals:r.result,name:o.result,symbol:n.result,totalSupply:s.result!==void 0?r.status==="success"?Pl(s.result,r.result):s.result.toString():void 0}}var xl=e=>e&&El(e)?["onChainRewardVault",e.toLowerCase()]:null,Zo=({address:e},t)=>{let r=Sl(),o=t.opts?.isEnabled??!0,n=xl(e);return Tl(o&&r?n:null,async([,s])=>{y(r);let{config:a}=P({chainId:r.chain.id}),i=await Ae({address:s,publicClient:r}),[l,u,m]=await Promise.all([ye({address:s,stakingToken:i,publicClient:r}),r.readContract({address:a.pol.beraChef,abi:K,functionName:"isWhitelistedVault",args:[s]}),r.readContract({address:i,abi:Il,functionName:"balanceOf",args:[s]})]),[p,d]=await Promise.all([Ye({address:i,publicClient:r}),Promise.all(l.map(c=>X({address:c.token,publicClient:r})))]);if(!p)throw new Error("Staking token not found");return{id:s,address:s,vaultAddress:s,stakingToken:{address:i,name:p.name??"",symbol:p.symbol??"",decimals:p.decimals??0},stakingTokenAmount:Cl(m,p.decimals??18),isVaultWhitelisted:u,activeIncentives:l.map((c,f)=>({active:!!c.remainingAmount,remainingAmount:c.remainingAmount,remainingAmountUsd:"0",incentiveRate:c.incentiveRate,incentiveRateUsd:"0",tokenAddress:c.token,token:d[f]}))}})};var Bl=e=>e?["useRewardVault",e.toLowerCase()]:null,fk=(e,t)=>{let r=Bl(e),o=vl(r,async([a,i])=>er({address:i}),{...t?.opts}),n=t?.opts?.isEnabled??((!!o.error||!o.isLoading)&&!o.data),s=Zo({address:e},{opts:{...t?.opts,isEnabled:n}});return{data:s.data??o.data,error:s.error??o.error,isLoading:s.isLoading||o.isLoading,isValidating:s.isValidating??o.isValidating,refresh:()=>{o.mutate(),s.mutate()}}};import Ol from"swr";import{usePublicClient as Dl}from"@berachain/wagmi/hooks";function Rk({address:e,stakingToken:t}){let r=Dl(),n=Ol(r&&e&&t?["useRewardVaultIncentives",e,t]:null,async([,s,a])=>(y(r),await ye({address:s,stakingToken:a,publicClient:r})));return{...n,refresh:()=>n?.mutate?.()}}import Ll from"swr";import{usePublicClient as Nl}from"@berachain/wagmi/hooks";var Ul=(e,t)=>{let r=Nl(),n=Ll(r&&e?["useRewardVaultRewards",e]:null,async([,s])=>(y(r),await qt(s,r)),{...t?.opts});return{...n,refresh:()=>n?.mutate?.()}};import Hl from"swr";var xk=({range:e})=>{let r=Hl(e?["useStakedBeraSnapshots",e]:null,([,o])=>tr({range:o}));return{...r,refresh:()=>r.mutate()}};import Vl from"swr";import{useBeraWallet as Wl,usePublicClient as _l}from"@berachain/wagmi/hooks";var Ql=(e,t)=>{let{address:r}=Wl(),o=_l(),n=r&&o&&e.vaultAddress?["useUserVaultInfo",r,e.vaultAddress]:null,s=Vl(n,async([,a,i])=>(y(o),ir({account:a,vaultAddress:i,publicClient:o})),{...t,refreshInterval:t?.opts?.refreshInterval??1e5});return{...s,refresh:()=>s.mutate()}};import Yl from"swr";import{useBeraWallet as Ml,usePublicClient as Gl}from"@berachain/wagmi/hooks";var Fl=e=>{let{address:t}=Ml(),r=Gl(),n=Yl(t&&r?["useUserVaults",t]:null,async([,s])=>(y(r),await lr({account:s,publicClient:r})),{...e,refreshInterval:e?.opts?.refreshInterval??1e5,keepPreviousData:!0});return{...n,refresh:()=>n?.mutate?.()}};import Kl from"swr";import{usePublicClient as ql}from"@berachain/wagmi/hooks";var Fk=e=>{let t=ql();return Kl(e&&t?["useVaultAddress",e]:null,async([,o])=>{y(t);let[n]=await Promise.all([Ae({address:o,publicClient:t})]);return{stakeToken:n,address:o}})};import $l from"swr";var Zk=({vault:e,range:t,resolution:r})=>{let n=$l(e?["useVaultHistory",e,t,r]:null,([,s,a,i])=>ur({vault:s,range:a,resolution:i}));return{...n,refresh:()=>n.mutate()}};import Zl from"swr";var zl=(e,t)=>{let o=Zl(e?["useVaultValidators",e]:null,async([,n])=>await pr({address:n}),{...t?.opts});return{...o,refresh:()=>o.mutate()}};import{zeroAddress as jl}from"viem";function zo({address:e},t){let r=Ue({addressIn:e?[e]:void 0},t);return{...r,data:e?r.data?.[e.toLowerCase()]:void 0}}function nw(e){return zo({address:jl},e)}import{useMemo as Jl}from"react";import Xl from"swr";import{useBeraWallet as eu,usePublicClient as tu}from"@berachain/wagmi/hooks";function mw(e,t){let r=tu(),{address:o}=eu(),{tokenList:n}=Ne(),s=e?.walletAddress??o,a=Jl(()=>new Map((e?.tokens??n)?.map(u=>[u.address.toLowerCase(),u])??[]),[n,e?.tokens]),i=r&&n!==void 0&&s?["usePollWalletBalances",s,Array.from(a.values())]:null,l=Xl(i,async([,u,m])=>he({account:u,tokenList:m,publicClient:r}),{refreshInterval:1e5,...t?.opts});return{...l,refresh:()=>l?.mutate?.()}}import ru from"swr/immutable";import{isAddress as ou,zeroAddress as nu}from"viem";import{usePublicClient as su}from"@berachain/wagmi/hooks";var bw=(e,t)=>{let r=su(),o=e?.address&&r&&ou(e.address)?["useStakingTokenInformation",e.address]:null,n=ru(o,async([s,a])=>k(a,"BERA")?{address:nu,decimals:H.decimals,name:H.name,symbol:H.symbol}:await Ye({address:a,publicClient:r}),{...t?.opts});return{...n,refresh:()=>n?.mutate?.()}};import au from"swr";import{erc20Abi as iu}from"viem";import{usePublicClient as lu}from"@berachain/wagmi/hooks";function Tw({address:e}){let t=lu();return au(e&&t?["useTotalSupply",e]:null,([,r])=>(y(t),t.readContract({address:r,abi:iu,functionName:"totalSupply",args:[]})))}import{useCallback as uu}from"react";import{useBeraWagmi as pu}from"@berachain/wagmi/hooks";function vw(){let e=Re(),{account:t}=pu(),r=t?.wallet?.address;return uu(o=>{if(!r)throw new E({property:"address",value:r,expected:"Address"});e.addTransaction(r,o)},[e,r])}import{useEffect as mu,useState as du}from"react";import{useBeraWallet as cu}from"@berachain/wagmi/hooks";function Nw(){let e=Re(),{address:t}=cu(),[r,o]=du(()=>e&&t?e.getTransactions(t):[]);return mu(()=>{if(e&&t)return o(e.getTransactions(t)),e.onChange(()=>{o(e.getTransactions(t))})},[e,t]),r}import fu from"swr/immutable";import{useBlockNumber as gu,usePublicClient as yu}from"@berachain/wagmi/hooks";function Gw(e){let t=yu(),{config:r}=P({chainId:t?.chain.id}),{data:o,isLoading:n}=gu({cacheTime:ce(r.averageBlockTime)}),{data:s}=fu(o&&t&&Number(e)>0?["useBlockToTimestamp",e,o]:null,async([,i,l])=>(y(t),Kt({block:i,currentBlock:l,blockTime:a,publicClient:t}))),a=ke();if(s)return Number(s.timestamp);if(!(n||!o))return Math.floor(Ot(Date.now())+a*(Number(e)-Number(o)))}import{useCallback as Jo,useReducer as Au}from"react";import{useBeraWagmi as bu,useConfig as hu}from"@berachain/wagmi/hooks";var ht={confirmState:"idle",txnHash:"",message:""},jo=(e,t)=>{switch(t.type){case"confirm_sending":return{...e,confirmState:"loading"};case"confirm_receipt":return{...e,confirmState:"success"};case"confirm_error":return{...e,confirmState:"fail"};case"confirm_submitting":return{...e,confirmState:"submitting"};case"confirm_reset":return{...ht};default:return e}};function Ru({onlyPermissionless:e,onSuccess:t,onError:r,onLoading:o,onWarning:n,onSubmission:s}={}){let[a,i]=Au(jo,ht),{account:l,onSmartAccountRejection:u}=bu(),m=hu(),p=l?.wallet?.isContract?6e4*10:12e4,d=Jo(()=>{i({type:"confirm_reset"})},[]),c=$("enableSimulateCalls"),f=Jo(g=>{if(e&&!g.permissionless){let A=new sr({message:"Trying to send a non-permissionless transaction with an overridden account",displayMessage:"You can't send this transaction with an overridden account. Please reset the account in the settings popover.",level:"info",input:g});throw n?.(A,g),r?.(A,g),A}return fr({wagmiConfig:m,...g,txConfirmationTimeout:p,enableSimulateCalls:c,onLoading(...A){i({type:"confirm_sending"}),g.onLoading?.(g),o?.(...A)},onWarning(...A){g.onWarning?.(A[0],g),n?.(...A)},onSubmission(...A){i({type:"confirm_submitting"}),g.onSubmission?.(A[0],g),s?.(...A)},onSuccess(...A){i({type:"confirm_receipt"}),g.onSuccess?.(A[0],g),t?.(...A)},onError(...A){i({type:"confirm_error"}),g.onError?.(A[0],g),A[0].reason==="AtomicReadyWalletRejectedUpgradeError"&&u(),r?.(...A)}})},[m,o,n,s,t,r,e,c]);return{isLoading:a.confirmState==="loading",isSubmitting:a.confirmState==="submitting",isSuccess:a.confirmState==="success",isError:a.confirmState==="fail",write:f,reset:d}}var ku=Ru;import wu from"swr/immutable";import{isAddress as Pu,zeroAddress as Tu}from"viem";import{chainId as Iu}from"@berachain/config/internal";async function Cu(e){let t=await wt({url:`https://api.routescan.io/v2/network/testnet/evm/${Iu}/etherscan/api?module=contract&action=getabi&address=${e}`,type:"rest",name:"RouteScan"});if(t.status==="0")throw new Error(t.result);return t.result}var lP=e=>wu(e&&Pu(e)&&e!==Tu?["useGetVerifiedAbi",e]:null,()=>e?Cu(e):Promise.resolve(""),{});import{useCallback as Xo,useEffect as Eu,useState as Su}from"react";function mP({key:e,defaultValue:t}){let r=Xo(()=>{if(typeof window>"u")return t;let a=window.history.state?.[e];return a!==void 0?a:t},[e,t]),[o,n]=Su(r()),s=Xo(a=>{let i=r(),l=a instanceof Function?a(i):a,m={...window.history.state||{},[e]:l};window.history.replaceState(m,""),n(l)},[e,r]);return Eu(()=>{if(window.history.state?.[e]===void 0){let l={...window.history.state||{},[e]:t};window.history.replaceState(l,"")}},[e,t]),[o,s]}import{useEffect as xu,useRef as vu}from"react";function fP(e){let t=vu(void 0);return xu(()=>{t.current=e}),t.current}import Bu from"swr";var Ou=({variables:e}={})=>["useAllValidators",e],hP=(e,t)=>{let{config:r}=P(e),o=Bu(Ou({variables:e}),async([,n])=>await gr({variables:{chain:r.bex.chainName,...n}}),{refreshInterval:18e4,...t?.opts});return{...o,refresh:()=>o.mutate()}};import Du from"swr";function PP({allocation:e}){return Du(e?["useApiEnrichedAllocation",e]:null,([,t])=>yr({allocation:t}))}import Lu from"swr";import{isHex as Nu}from"viem";var Uu=e=>e?["useApiValidator",e]:null,en=(e,t)=>{let r=Uu(e),o=t?.opts?.isEnabled??!0,n=Lu(o&&e?r:null,async([,s])=>{if(!s||!Nu(s))throw new Error(`Invalid validator ID: ${s}`);return Ar({id:s})},{...t?.opts});return{...n,refresh:()=>n.mutate()}};import Hu from"swr";import{usePublicClient as Vu}from"@berachain/wagmi/hooks";var tn=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccessControlBadConfirmation",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"bytes32",name:"neededRole",type:"bytes32"}],name:"AccessControlUnauthorizedAccount",type:"error"},{inputs:[{internalType:"address",name:"target",type:"address"}],name:"AddressEmptyCode",type:"error"},{inputs:[],name:"AmountGreaterThanReward",type:"error"},{inputs:[],name:"AmountLessThanMinIncentiveRate",type:"error"},{inputs:[],name:"CannotRecoverIncentiveToken",type:"error"},{inputs:[],name:"CannotRecoverRewardToken",type:"error"},{inputs:[],name:"CannotRecoverStakingToken",type:"error"},{inputs:[],name:"CommissionChangeAlreadyQueued",type:"error"},{inputs:[],name:"CommissionNotQueuedOrDelayNotPassed",type:"error"},{inputs:[],name:"DepositNotMultipleOfGwei",type:"error"},{inputs:[],name:"DepositValueTooHigh",type:"error"},{inputs:[],name:"DonateAmountLessThanPayoutAmount",type:"error"},{inputs:[{internalType:"address",name:"receiver",type:"address"}],name:"DuplicateReceiver",type:"error"},{inputs:[],name:"DurationChangeNotAllowed",type:"error"},{inputs:[{internalType:"address",name:"implementation",type:"address"}],name:"ERC1967InvalidImplementation",type:"error"},{inputs:[],name:"ERC1967NonPayable",type:"error"},{inputs:[],name:"FailedCall",type:"error"},{inputs:[],name:"IncentiveRateTooHigh",type:"error"},{inputs:[],name:"IndexOutOfRange",type:"error"},{inputs:[],name:"InsolventReward",type:"error"},{inputs:[],name:"InsufficientDelegateStake",type:"error"},{inputs:[],name:"InsufficientDeposit",type:"error"},{inputs:[],name:"InsufficientIncentiveTokens",type:"error"},{inputs:[],name:"InsufficientNativeValue",type:"error"},{inputs:[],name:"InsufficientSelfStake",type:"error"},{inputs:[],name:"InsufficientStake",type:"error"},{inputs:[],name:"InvalidActivateBoostDelay",type:"error"},{inputs:[],name:"InvalidArray",type:"error"},{inputs:[],name:"InvalidBaseRate",type:"error"},{inputs:[],name:"InvalidBoostMultiplier",type:"error"},{inputs:[],name:"InvalidCommissionChangeDelay",type:"error"},{inputs:[],name:"InvalidCommissionValue",type:"error"},{inputs:[],name:"InvalidCredentialsLength",type:"error"},{inputs:[],name:"InvalidDistribution",type:"error"},{inputs:[],name:"InvalidDropBoostDelay",type:"error"},{inputs:[],name:"InvalidIncentiveFeeRate",type:"error"},{inputs:[],name:"InvalidIncentiveRate",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"InvalidMaxIncentiveTokensCount",type:"error"},{inputs:[],name:"InvalidMaxWeightPerVault",type:"error"},{inputs:[],name:"InvalidMerkleRoot",type:"error"},{inputs:[],name:"InvalidMinBoostedRewardRate",type:"error"},{inputs:[],name:"InvalidProof",type:"error"},{inputs:[],name:"InvalidPubKeyLength",type:"error"},{inputs:[],name:"InvalidRewardAllocationInactivityBlockSpan",type:"error"},{inputs:[],name:"InvalidRewardAllocationWeights",type:"error"},{inputs:[],name:"InvalidRewardClaimDelay",type:"error"},{inputs:[],name:"InvalidRewardConvexity",type:"error"},{inputs:[],name:"InvalidRewardDuration",type:"error"},{inputs:[],name:"InvalidRewardRate",type:"error"},{inputs:[],name:"InvalidSignatureLength",type:"error"},{inputs:[],name:"InvalidStartBlock",type:"error"},{inputs:[],name:"InvalidToken",type:"error"},{inputs:[],name:"InvalidWeight",type:"error"},{inputs:[],name:"InvalidateDefaultRewardAllocation",type:"error"},{inputs:[],name:"InvariantCheckFailed",type:"error"},{inputs:[],name:"MaxNumWeightsPerRewardAllocationIsZero",type:"error"},{inputs:[],name:"MethodNotAllowed",type:"error"},{inputs:[],name:"MinIncentiveRateIsZero",type:"error"},{inputs:[],name:"NonTransferable",type:"error"},{inputs:[],name:"NotAContract",type:"error"},{inputs:[],name:"NotApprovedSender",type:"error"},{inputs:[],name:"NotBGT",type:"error"},{inputs:[],name:"NotBlockRewardController",type:"error"},{inputs:[],name:"NotDelegate",type:"error"},{inputs:[],name:"NotDistributor",type:"error"},{inputs:[],name:"NotEnoughBalance",type:"error"},{inputs:[],name:"NotEnoughBoostedBalance",type:"error"},{inputs:[],name:"NotEnoughTime",type:"error"},{inputs:[],name:"NotFactoryVault",type:"error"},{inputs:[],name:"NotFeeCollector",type:"error"},{inputs:[],name:"NotIncentiveManager",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[],name:"NotNewOperator",type:"error"},{inputs:[],name:"NotOperator",type:"error"},{inputs:[],name:"NotRewardAllocator",type:"error"},{inputs:[],name:"NotRewardDurationManager",type:"error"},{inputs:[],name:"NotRewardVaultManager",type:"error"},{inputs:[],name:"NotSystemAddress",type:"error"},{inputs:[],name:"NotWBERAStakerVault",type:"error"},{inputs:[],name:"NotWhitelistedVault",type:"error"},{inputs:[],name:"OnlyNFTOwnerAllowed",type:"error"},{inputs:[],name:"OnlySystemCallAllowed",type:"error"},{inputs:[],name:"OperatorAlreadySet",type:"error"},{inputs:[],name:"PayoutAmountIsZero",type:"error"},{inputs:[],name:"RewardAllocationAlreadyQueued",type:"error"},{inputs:[],name:"RewardAllocationBlockDelayTooLarge",type:"error"},{inputs:[],name:"RewardCycleNotEnded",type:"error"},{inputs:[],name:"RewardDurationCoolDownPeriodNotPassed",type:"error"},{inputs:[],name:"RewardInactive",type:"error"},{inputs:[],name:"RewardsDurationIsZero",type:"error"},{inputs:[],name:"StakeAmountIsZero",type:"error"},{inputs:[],name:"TimestampAlreadyProcessed",type:"error"},{inputs:[],name:"TokenAlreadyWhitelistedOrLimitReached",type:"error"},{inputs:[],name:"TokenNotWhitelisted",type:"error"},{inputs:[],name:"TooManyWeights",type:"error"},{inputs:[],name:"TotalSupplyOverflow",type:"error"},{inputs:[],name:"UUPSUnauthorizedCallContext",type:"error"},{inputs:[{internalType:"bytes32",name:"slot",type:"bytes32"}],name:"UUPSUnsupportedProxiableUUID",type:"error"},{inputs:[],name:"UnauthorizedETHTransfer",type:"error"},{inputs:[],name:"WithdrawAmountIsZero",type:"error"},{inputs:[],name:"WithdrawalAlreadyRequested",type:"error"},{inputs:[],name:"WithdrawalNotReady",type:"error"},{inputs:[],name:"WithdrawalNotRequested",type:"error"},{inputs:[],name:"ZeroAddress",type:"error"},{inputs:[],name:"ZeroOperatorOnFirstDeposit",type:"error"},{inputs:[],name:"ZeroPercentageWeight",type:"error"},{anonymous:!1,inputs:[{components:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint96",name:"percentageNumerator",type:"uint96"}],indexed:!1,internalType:"struct IBeraChef.Weight[]",name:"weights",type:"tuple[]"}],name:"BaselineAllocationSet",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[],name:"ALLOCATION_SETTER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"UPGRADE_INTERFACE_VERSION",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"beraChef",outputs:[{internalType:"contract IBeraChef",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBaselineAllocation",outputs:[{components:[{internalType:"uint64",name:"startBlock",type:"uint64"},{components:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint96",name:"percentageNumerator",type:"uint96"}],internalType:"struct IBeraChef.Weight[]",name:"weights",type:"tuple[]"}],internalType:"struct IBeraChef.RewardAllocation",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_governance",type:"address"},{internalType:"address",name:"_beraChef",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"proxiableUUID",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"callerConfirmation",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint96",name:"percentageNumerator",type:"uint96"}],internalType:"struct IBeraChef.Weight[]",name:"weights",type:"tuple[]"}],name:"setBaselineAllocation",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable",type:"function"}];async function rn({publicClient:e,...t}){let{config:r}=P(t),o=await e.readContract({abi:tn,address:r.pol.rewardAllocationFactory,functionName:"getBaselineAllocation"}),n=o.startBlock!==0n?await e.getBlock({blockNumber:o.startBlock}):{timestamp:0};return hr(o,Number(n.timestamp))}function VP(){let e=Vu();return Hu(e?["baselineRewardAllocation"]:null,()=>(y(e),rn({publicClient:e})))}import Wu from"swr";var _u=({pubKey:e,first:t=1})=>{let o=Wu(e?["useDailyValidatorBlockStats",e,t]:null,async([,n,s])=>await br({pubKey:n,first:s}),{refreshInterval:18e4});return{...o,refresh:()=>o.mutate()}};import Qu from"swr";import{usePublicClient as Yu}from"@berachain/wagmi/hooks";function Mu(e){let t=Yu(),o=Qu(t?["useDefaultRewardAllocation"]:null,async()=>(y(t),await kr({client:t})),{...e?.opts});return{...o,refresh:()=>o.mutate()}}import Gu from"swr/immutable";var Fu=({account:e},t)=>{let o=Gu(e?["useManagedValidatorByAccount",e]:null,async([,n])=>await wr({account:n}),{...t?.opts});return{...o,refresh:()=>o.mutate()}};import{useMemo as nn}from"react";import qu from"swr";import{useBeraWallet as $u,usePublicClient as Zu}from"@berachain/wagmi/hooks";import{zeroAddress as Ku}from"viem";async function on({client:e,pubKey:t,...r}){let{config:o}=P(r);try{let n=await e.readContract({address:o.pol.beraChef,abi:K,functionName:"valRewardAllocator",args:[t]});return n===Ku?null:n}catch(n){throw console.log("getValidatorRewardAllocatorAddress:",n),n}}function sn(e,t){return!e||!t?!1:t.operator?.toLowerCase()===e.toLowerCase()}function zu(e,t){return!e||!t?!1:t.rewardAllocator?t.rewardAllocator.toLowerCase()===e.toLowerCase():sn(e,t)}function ju({pubKey:e,account:t},r){let o=Zu(),n=$("mockValidatorOperator"),s=$("mockValidatorRewardAllocator"),a=o&&e?["useManagedValidatorRole",e]:null,{address:i}=$u(),l=t??i,u=qu(a,async([,d])=>{y(o);let[c,f]=await Promise.all([vr({client:o,pubKey:d}),on({client:o,pubKey:d})]);return{operator:c??null,rewardAllocator:f}},{...r?.opts}),m=nn(()=>n||sn(l,u.data),[l,n,u.data]),p=nn(()=>s||zu(l,u.data),[l,s,u.data]);return{...u,data:u.data?{...u.data,hasOperatorRole:m,hasRewardAllocatorRole:p}:void 0,refresh:()=>u.mutate()}}import Ju from"swr";import{keccak256 as Xu}from"viem";import{usePublicClient as ep}from"@berachain/wagmi/hooks";var an=({pubkey:e},t)=>{let r=ep(),o=e?["useOnChainValidator",e]:null,n=t.opts?.isEnabled??!0,s=Ju(n&&r?o:null,async([,a])=>{y(r);let{config:i}=P({chainId:r.chain.id}),[l,u,m]=await Promise.all([r.readContract({address:i.depositContract,abi:Rt,functionName:"getOperator",args:[a]}),r?.readContract({address:i.tokens.bgt,abi:G,functionName:"boostees",args:[a]}),r.readContract({address:i.pol.beraChef,abi:K,functionName:"getActiveRewardAllocation",args:[a]})]);return{id:Xu(a),pubkey:a,operator:l,votingPower:Number(u)}});return{...s,refresh:()=>{s.mutate()}}};import tp from"swr";import{usePublicClient as rp}from"@berachain/wagmi/hooks";var wT=({valPubKey:e,options:t})=>{let r=rp(),n=(t?.opts?.isEnabled??!0)&&r&&e?["useStakingPoolBatch",e]:null,s=tp(n,async([,a])=>(y(r),await Pr({client:r,valPubKey:a})),{refreshInterval:1e4,...t?.opts});return{...s,refresh:()=>s.mutate()}};import op from"swr";import{GetUserValidatorInformation as np}from"@berachain/graphql/pol/subgraph";import{useBeraWallet as sp}from"@berachain/wagmi/hooks";var ap=({account:e}={})=>{let{address:t}=sp(),r=e??t;return op(r?["useSubgraphUserValidators",r]:null,async([,n])=>{let s=q("pol.subgraph",{}),{data:a}=await s.query({query:np,variables:{address:n}});return a.userValidatorInformations})};import ip from"swr";import{useBeraWallet as lp,usePublicClient as up}from"@berachain/wagmi/hooks";var pp=e=>{let{address:t}=lp(),r=up(),n=ip(r&&t?["useUserActiveValidators",t]:null,async([,s])=>await Ir({account:s,publicClient:r}),{...e,refreshInterval:e?.opts?.refreshInterval??18e4,keepPreviousData:!0});return{...n,refresh:()=>n?.mutate?.()}};import mp from"swr";import{useBeraWallet as dp,usePublicClient as cp}from"@berachain/wagmi/hooks";var fp=({pubkey:e,...t})=>{let{address:r}=dp(),o=cp(),n=t.account??r,a=mp(n&&e?["useUserBoostsOnValidator",e,n]:null,async([,i,l])=>await Tr({account:l,pubkey:i,publicClient:o}),{refreshInterval:1e5});return{...a,refresh:()=>a.mutate()}};import{useCallback as gp,useMemo as yp}from"react";import*as pn from"@sentry/nextjs";import un from"swr";import{useBeraWallet as Ap}from"@berachain/wagmi/hooks";var ln=e=>{let t=new Set;return e.forEach(r=>{Array.isArray(r.rewards)&&r.rewards.forEach(o=>{o.token&&t.add(o.token)})}),t};var bp=()=>{let{address:e}=Ap(),r=un(e?["useUserClaimableIncentives",e]:null,async([,l])=>{if(!l)throw new x({message:"useUserClaimableIncentives needs a logged in account",level:"error"});return await nr({account:l})},{revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateIfStale:!1,refreshInterval:18e4}),o=r?.data,n=yp(()=>{if(o){if(!Array.isArray(o)){pn.captureException(new x({message:"Incorrect aggregated incentives data receieved.",level:"error"}),{extra:{allRewards:o,account:e}});return}return ln(o)}},[o,e]),a=un(e&&o?["useUserClaimableIncentives",e,o]:null,async([,l,u])=>{if(!l)throw new E({property:"account",value:l,expected:"Address"});if(!u)return[];if(!Array.isArray(u))throw new E({message:"Incorrect aggregated incentives data receieved to calculate proofs.",property:"allRewards",value:u,expected:"Array",level:"error"});let m=new Set(u.map(d=>d.validator)),p=Array.from(m);return await Promise.all(p.map(async d=>({...await Jt({account:l,validator:d,page:1,perPage:1e4}),validator:d})))},{revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateIfStale:!1,refreshInterval:18e4}),i=gp(()=>{r?.mutate(),a?.mutate()},[r,a]);return{...a,isLoading:r?.isLoading||a?.isLoading,tokenMap:n,refresh:i}};import hp from"swr/immutable";var ZT=({account:e,validatorAddress:t})=>{let o=hp(e?["useUserStakingPositions",e,t]:null,async([n,s,a])=>{let i=await Cr(s);return a?i.filter(l=>l.validatorAddress.toLowerCase()===a.toLowerCase()):i});return{...o,refresh:()=>{o.mutate()}}};import{keccak256 as Rp}from"viem";function eI({pubkey:e},t){let{data:{validator:r,uptime:o}={},isLoading:n,error:s}=en(Rp(e),t),{data:a,isLoading:i,error:l}=an({pubkey:e},t);return{data:{uptime:o,validator:r||a?{...r,...a,operator:a?.operator??r?.operator,dynamicData:{activeBoostAmount:a?.dynamicData?.activeBoostAmount??r?.dynamicData?.activeBoostAmount??"",queuedBoostAmount:r?.dynamicData?.queuedBoostAmount??"",usersActiveBoostCount:r?.dynamicData?.usersActiveBoostCount??0,usersQueuedBoostCount:r?.dynamicData?.usersQueuedBoostCount??0,allTimeDistributedBGTAmount:r?.dynamicData?.allTimeDistributedBGTAmount??"0",rewardRate:a?.dynamicData?.rewardRate??r?.dynamicData?.rewardRate??"",stakedBeraAmount:r?.dynamicData?.stakedBeraAmount??"",lastDayDistributedBGTAmount:r?.dynamicData?.lastDayDistributedBGTAmount??"",activeBoostAmountRank:r?.dynamicData?.activeBoostAmountRank??0,boostApr:r?.dynamicData?.boostApr??0,commissionOnIncentives:r?.dynamicData?.commissionOnIncentives??0},id:a?.id??r?.id,pubkey:a?.pubkey??r?.pubkey,metadata:a?.metadata??r?.metadata,rewardAllocationWeights:a?.rewardAllocationWeights??r?.rewardAllocationWeights??[]}:null},isLoading:n||i,error:s||l}}import kp from"swr";var wp=({pubkey:e,dayRange:t})=>{let o=kp(e&&t?["useValidatorAnalytics",e,t]:null,async([,n,s])=>await Er({pubkey:n,dayRange:s}),{refreshInterval:18e4});return{...o,refresh:()=>o.mutate()}};import Pp from"swr";import{usePublicClient as Tp}from"@berachain/wagmi/hooks";var Ip=(e,t)=>{let r=Tp(),n=Pp(r&&e?["useValidatorCommission",e]:null,async([,s])=>await Sr({client:r,pubKey:s}),{...t?.opts});return{...n,refresh:()=>n.mutate()}};var Cp=e=>{let{data:t,isLoading:r}=qo(),o=ke();return{data:t?xr(e,Number(t?.totalStakedBeraAmount),o):void 0,isLoading:r}};import Ep from"swr";import{usePublicClient as Sp}from"@berachain/wagmi/hooks";function xp(e,t){let r=Sp(),n=Ep(r&&e?["useValidatorQueuedCommission",e]:null,async([,s])=>(y(r),await Br({client:r,pubKey:s})),{...t?.opts});return{...n,refresh:()=>n.mutate()}}import vp from"swr";import{usePublicClient as Bp}from"@berachain/wagmi/hooks";var Op=(e,t)=>{let r=Bp(),n=vp(r&&e?["useValidatorQueuedOperatorAddress",e]:null,async([,s])=>await Or({client:r,pubKey:s}),{...t?.opts});return{...n,refresh:()=>n.mutate()}};import Dp from"swr";import{usePublicClient as Lp}from"@berachain/wagmi/hooks";var Np=(e,t)=>{let r=Lp(),n=Dp(r&&e?["useValidatorQueuedRewardAllocation",e]:null,async([,s])=>await Dr({client:r,pubKey:s}),{...t?.opts});return{...n,refresh:()=>n.mutate()}};import Up from"swr";import{usePublicClient as Hp}from"@berachain/wagmi/hooks";function Vp(e,t){let r=Hp(),n=Up(r&&e?["useValidatorRewardAllocation",e]:null,async([,s])=>await Rr({client:r,pubKey:s}),{...t?.opts});return{...n,refresh:()=>n.mutate()}}export{jn as OracleMode,Fp as TransactionStoreProvider,Un as USE_AGGREGATORS_QUOTES_QUERY_KEY,Qp as convertLegacyDataToNewData,Gp as createTransactionStore,Yp as filterDuplicatefn,Mp as mergeData,Ko as reducer,_p as safeParseJsonData,vw as useAddRecentTransaction,Md as useAggregatorsQuotes,$r as useAggregatorsRouterFeeBps,Zr as useAllUserPools,Qn as useAllUserPoolsQueryKey,hP as useAllValidators,Ou as useAllValidatorsQueryKey,PP as useApiEnrichedAllocation,zr as useApiPool,Gn as useApiPoolQueryKey,en as useApiValidator,Uu as useApiValidatorQueryKey,VP as useBaselineRewardAllocation,Ay as useBendTransactionRequests,xo as useBendTransactionRequestsHelper,ku as useBeraContractWrite,nw as useBeraCurrentPrice,ze as useBexStatus,Jh as useBgtAprSimulation,el as useBgtUnstakedBalance,Gw as useBlockToTimestamp,Ho as useCappedGlobally,Vo as useCappedRelatively,sl as useClaimableFees,_b as useCollateralWeights,Rc as useCreatePool,La as useCreateProposal,_u as useDailyValidatorBlockStats,Mu as useDefaultRewardAllocation,bR as useEarnedStakedBeraVault,ie as useEnsoZap,Bc as useExploitedTokens,is as useExploitedTokensQueryKey,zp as useGetConvertToAssets,Zy as useGetPastVotes,lP as useGetVerifiedAbi,us as useGlobalLiquidityAndSwapVolume,oA as useHasVoted,CR as useHighestVaultsAPR,mP as useHistoryState,Ah as useHoneyAlerts,Wo as useHoneyBalances,kh as useHoneyChartData,Ch as useHoneyGlobalData,Qh as useHoneySwapState,_o as useHoneyVaultsBalance,Qo as useIsBadCollateralAsset,Go as useIsBasketModeEnabled,dA as useIsCanceller,Wc as useLiquidityMismatch,kf as useLpPosition,Fu as useManagedValidatorByAccount,ju as useManagedValidatorRole,Qs as useMultipleTokenApprovalsWithSlippage,co as useMultipleTokenInformation,fo as useOnChainPoolData,Js as useOnChainPoolDataQueryKey,an as useOnChainValidator,bA as usePollAllProposals,Ja as usePollAllProposalsQueryKey,uo as usePollAllowances,ao as usePollBalance,qo as usePollGlobalData,NR as usePollMarkets,Al as usePollMarketsQueryKey,ra as usePollPoolCreationRelayerApproval,CA as usePollProposal,DA as usePollProposalThreshold,HA as usePollProposalVotes,ai as usePollProposalVotesQueryKey,FA as usePollUserDelegates,mw as usePollWalletBalances,fg as usePool,bg as usePoolEvents,Pg as usePoolHistoricalData,vg as usePools,pa as usePoolsQueryKey,fP as usePrevious,zA as useProposalFromTx,Oo as useProposalSnapshot,rb as useProposalState,lb as useProposalTimelockState,ee as usePythLatestPrices,$h as usePythUpdateFee,YR as useQueuedBeraUnlock,bb as useQuorum,Nw as useRecentTransactions,ZR as useRewardTokenToBeraRate,fk as useRewardVault,oo as useRewardVaultBalanceFromStakingToken,ct as useRewardVaultFromToken,Rk as useRewardVaultIncentives,Bl as useRewardVaultQueryKey,Ul as useRewardVaultRewards,bt as useRewardVaults,ml as useRewardVaultsQueryKey,xk as useStakedBeraSnapshots,wT as useStakingPoolBatch,bw as useStakingTokenInformation,sa as useSubgraphPoolQueryKey,ap as useSubgraphUserValidators,zo as useTokenCurrentPrice,Ue as useTokenCurrentPrices,no as useTokenInformation,Ne as useTokens,Tw as useTotalSupply,Re as useTransactionStore,pp as useUserActiveValidators,fp as useUserBoostsOnValidator,bp as useUserClaimableIncentives,ZT as useUserStakingPositions,Ql as useUserVaultInfo,Fl as useUserVaults,eI as useValidator,wp as useValidatorAnalytics,Ip as useValidatorCommission,Cp as useValidatorEstimatedBgtPerYear,xp as useValidatorQueuedCommission,Op as useValidatorQueuedOperatorAddress,Np as useValidatorQueuedRewardAllocation,Vp as useValidatorRewardAllocation,Fk as useVaultAddress,Zk as useVaultHistory,zl as useVaultValidators,wy as useZapTransactionRequests};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Address, Hex, AbiFunction } from 'viem';
|
|
2
2
|
import { ProposalWithVotesFragment, ProposalVoteFragment } from '@berachain/graphql/governance';
|
|
3
3
|
import { ApiValidatorFragment } from '@berachain/graphql/pol/api';
|
|
4
|
-
import { a as Token } from './
|
|
4
|
+
import { a as Token } from './dex-D9U93Ib-.cjs';
|
|
5
5
|
|
|
6
6
|
interface BribeBoostReward {
|
|
7
7
|
token: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Address, Hex, AbiFunction } from 'viem';
|
|
2
2
|
import { ProposalWithVotesFragment, ProposalVoteFragment } from '@berachain/graphql/governance';
|
|
3
3
|
import { ApiValidatorFragment } from '@berachain/graphql/pol/api';
|
|
4
|
-
import { a as Token } from './
|
|
4
|
+
import { a as Token } from './dex-BD7Bq3pJ.js';
|
|
5
5
|
|
|
6
6
|
interface BribeBoostReward {
|
|
7
7
|
token: string;
|