@berachain/berajs 0.1.0-alpha.0 → 0.1.0-alpha.10
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/README.md +8 -0
- package/dist/{BeraError-CfcNTfpH.d.ts → BeraError-D1HS_rbb.d.cts} +3 -3
- package/dist/BeraError-D1HS_rbb.d.ts +69 -0
- package/dist/BexStatusProvider-nS3NcdxI.d.cts +70 -0
- package/dist/RequestError-D8AE6xnI.d.cts +57 -0
- package/dist/{RequestError-CtJLUaAc.d.ts → RequestError-m4jxyM7D.d.ts} +1 -1
- package/dist/abi/index.cjs +1 -0
- package/dist/abi/index.d.cts +26765 -0
- package/dist/actions/index.cjs +1 -0
- package/dist/actions/index.d.cts +1650 -0
- package/dist/actions/index.d.ts +10 -9
- package/dist/actions/index.mjs +1 -1
- package/dist/aggregatorsRouter-Cny4B_MB.d.cts +593 -0
- package/dist/{chunk-YKNKCICU.mjs → chunk-2422CKAT.mjs} +1 -1
- package/dist/{chunk-JQDPAEK2.mjs → chunk-3V2MGZRD.mjs} +1 -1
- package/dist/chunk-4E5JGLUM.cjs +1 -0
- package/dist/chunk-4GY57XKG.cjs +1 -0
- package/dist/{chunk-5GPS724E.mjs → chunk-ASRHUDAH.mjs} +1 -1
- package/dist/chunk-B47PDJZM.cjs +1 -0
- package/dist/{chunk-SMZ3PG6A.mjs → chunk-ELUMRVNE.mjs} +1 -1
- package/dist/chunk-IKAE7CQU.cjs +1 -0
- package/dist/{chunk-XX77QPIR.mjs → chunk-JHCSZSJS.mjs} +1 -1
- package/dist/chunk-K2FCHQHA.cjs +1 -0
- package/dist/chunk-KIA6GUIN.cjs +1 -0
- package/dist/chunk-LX5CM4Y6.cjs +1 -0
- package/dist/chunk-LZPBQLKP.mjs +3 -0
- package/dist/chunk-M5BKM52U.cjs +1 -0
- package/dist/chunk-NOV7UCGA.cjs +1 -0
- package/dist/{chunk-5UFI7X4U.mjs → chunk-VA37UBED.mjs} +1 -1
- package/dist/chunk-WDFIETJS.cjs +2 -0
- package/dist/chunk-WZLPSG5R.cjs +3 -0
- package/dist/contexts/index.cjs +1 -0
- package/dist/contexts/index.d.cts +81 -0
- package/dist/contexts/index.d.ts +4 -4
- package/dist/contexts/index.mjs +1 -1
- package/dist/defaultFlags-V-tJs2K8.d.cts +10 -0
- package/dist/{dex-BD7Bq3pJ.d.ts → dex-CxzGqVLe.d.ts} +1 -1
- package/dist/{dex-DreiokgL.d.ts → dex-jD95agMv.d.cts} +3 -3
- package/dist/enum/index.cjs +1 -0
- package/dist/enum/index.d.cts +31 -0
- package/dist/enum/index.d.ts +1 -1
- package/dist/errors/index.cjs +1 -0
- package/dist/errors/index.d.cts +204 -0
- package/dist/errors/index.d.ts +3 -3
- package/dist/errors/index.mjs +1 -1
- package/dist/{getValidatorQueuedOperatorAddress-DK2Xv19c.d.ts → getValidatorQueuedOperatorAddress-9jSXlAse.d.ts} +2 -2
- package/dist/{getValidatorQueuedOperatorAddress--AXNo9IY.d.ts → getValidatorQueuedOperatorAddress-BCYlvah3.d.cts} +2 -2
- package/dist/hooks/index.cjs +3 -0
- package/dist/hooks/index.d.cts +1703 -0
- package/dist/hooks/index.d.ts +8 -8
- package/dist/hooks/index.mjs +2 -2
- package/dist/polling-BKnyavLI.d.cts +8 -0
- package/dist/pythWrapper-CBjsmmsK.d.cts +1958 -0
- package/dist/{staking-Cggi38So.d.ts → staking-Bw46L2PT.d.ts} +1 -1
- package/dist/{staking-DYbVFigB.d.ts → staking-BxYDlMtj.d.cts} +1 -1
- package/dist/{txnEnum-BQKDfaeH.d.ts → txnEnum-Diichv9Z.d.cts} +0 -1
- package/dist/types/index.cjs +1 -0
- package/dist/types/index.d.cts +56 -0
- package/dist/types/index.d.ts +4 -4
- package/dist/{useHoneySwapState-CW49RVci.d.ts → useHoneySwapState-CD8v6y1k.d.ts} +1 -1
- package/dist/{useHoneySwapState-Ci8_c2bT.d.ts → useHoneySwapState-YfMSTWY3.d.cts} +1 -1
- package/dist/utils/index.cjs +1 -0
- package/dist/utils/index.d.cts +349 -0
- package/dist/utils/index.d.ts +5 -5
- package/dist/utils/index.mjs +1 -1
- package/package.json +20 -8
- package/dist/chunk-RNESAHY2.mjs +0 -3
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{$ 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 ge,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 ye,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 pe,aa as er,ba as tr,c as q,ca as rr,e as S,f as Tt,fa as Ae,g as de,ga as be,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 he,y as Ht,z as Vt,za as gr}from"../chunk-RNESAHY2.mjs";import{b as oe,c as _,k as kt,l as K,m as G,n as ue,o as wt}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 Nr}from"../chunk-JQDPAEK2.mjs";import"../chunk-MTBICGRP.mjs";import{a as Ke,b as ne,c as y,d as j,e as $e,g as ar}from"../chunk-YKNKCICU.mjs";import"../chunk-K4NZIO2Z.mjs";import{B as Nt,C as ce,Q as fe,c as Pt,i as qe,j as Dt,z as Lt}from"../chunk-SMZ3PG6A.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 pn from"swr";import{usePublicClient as mn}from"@berachain/wagmi/hooks";var zp=({sharesAmount:e,vaultAddress:t,vaultChainId:r},o)=>{let n=mn({chainId:r}),s=pn(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 $r}from"react";import Q from"swr";import{parseUnits as vn,zeroAddress as Bn}from"viem";import{defaultChainId as pt}from"@berachain/config/internal";import{useBeraWallet as On,usePublicClient as Dn}from"@berachain/wagmi/hooks";import{Slippage as dn,Swap as cn,SwapKind as fn,Token as Ur,TokenAmount as gn}from"@berachain-foundation/berancer-sdk";import{captureException as yn}from"@sentry/nextjs";import{decodeFunctionData as An,formatEther as Hr,zeroAddress as Vr}from"viem";import{getUriFromLink as bn}from"@berachain/config";import{ChainId as Wr}from"@berachain/config/internal";var hn=300,Rn=.05,je=fn.GivenIn,Je=class extends S{name="Hub Pools";supportedChains=[Wr.MAINNET,Wr.BEPOLIA];url=bn(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(Hr(t.scale18))/Number.parseFloat(o);if(Math.abs(1-s)>Rn){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%"});yn(a,{level:"warning",extra:{deltaFromSorAmount:s,pools:r.map(i=>i.pools),onChainAmount:Hr(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=Vr,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 Ur(this.chainId,this.convertZeroToWrapped(o),s),c=new Ur(this.chainId,this.convertZeroToWrapped(n),a),f=gn.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 cn({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===Vr)return T;let w=h.buildCall({slippage:dn.fromPercentage(l.toString()),deadline:BigInt(Math.round(Date.now()/1e3)+hn),queryOutput:b,sender:u,recipient:u,wethIsEth:p}),{args:I,functionName:C}=An({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 _r}from"@berachain/config/internal";var Xe=class extends S{name="RedeemBgt";supportedChains=[_r.MAINNET,_r.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 Qr}from"viem";import{ChainId as Yr}from"@berachain/config/internal";var et=class extends S{name="Enso";supportedChains=[Yr.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=Qr,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",Yr.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??Qr,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 kn}from"@berachain/config/internal";var Mr="https://api.magpiefi.xyz/aggregator",tt=class extends S{name="Fly";supportedChains=[kn.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(`${Mr}/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(`${Mr}/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 wn,parseUnits as Pn,zeroAddress as rt}from"viem";import{ChainId as Tn}from"@berachain/config/internal";var ot=class extends S{name="Haiku";supportedChains=[Tn.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}`]:wn(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:Pn(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 In}from"bignumber.js";import{formatUnits as Gr}from"viem";import{ChainId as Cn}from"@berachain/config/internal";function En(e){return e?"previewMintHoney":"previewRedeemCollaterals"}var se=class e extends S{name="Honey";supportedChains=[Cn.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([ge({client:n,collateralList:[m]}),ye({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=Gr(BigInt(o),l?m.decimals:this.honeyToken.decimals),A={client:n,collateral:m,collateralList:i,amount:g,method:En(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 In(c?.formattedBalance??"0").gte(Gr(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 Sn}from"@berachain/config/internal";var st=class extends S{name="KyberSwap";supportedChains=[Sn.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 xn}from"@berachain/config/internal";var it=class extends S{name="Oogabooga";supportedChains=[xn.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 Fr}from"viem";import{ChainId as Kr}from"@berachain/config/internal";var lt=class extends S{name="OpenOcean";supportedChains=[Kr.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=Fr,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:Kr.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??Fr,isSwapAndStake:!!u}],functionName:"swap",abi:L,value:BigInt(c?o:"0"),address:this.config.bex.aggregatorsRouter}}}},Be=new lt;import{ChainId as qr}from"@berachain/config/internal";var ut=class extends S{name="Wrap";supportedChains=[qr.MAINNET,qr.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 Ln=[ve,Ce,xe,Be,Ee,Te,we,Se],Nn="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=vn(p,u).toString(),A=!s||s.includes(e.toLowerCase().replaceAll(" ",""));return n?.opts?.isEnabled&&Number(p)&&o!==void 0&&A?[Nn,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}=On(),o=$("proxyAggregatorsThroughVercel"),n=$("aggregators"),s=Dn(),{data:a}=Zr(),{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=$r(()=>se.isHoneyNativeSwap(e),[e.tokenOut,e.tokenIn,i]),d=u||m,{config:c}=P(e),f=c.bex.aggregatorsRouter!==Bn,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{...$r(()=>{let D=O.reduce((U,Me)=>U||Me.error,void 0),F=O.map((U,Me)=>U.isLoading?d?Oe.name:Ln[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 Un from"swr/immutable";import{zeroAddress as Hn}from"viem";import{usePublicClient as Vn}from"@berachain/wagmi/hooks";var Zr=()=>{let e=Vn(),{config:t}=P({chainId:e.chain?.id}),r=Un(e&&t.bex.aggregatorsRouter&&t.bex.aggregatorsRouter!==Hn?["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 Wn from"swr";var _n=({query:e}={})=>["useAllUserPools",e],zr=(e,t)=>{let r=Wn(_n({query:e}),async([o,n])=>de({...n,fetchPolicy:"no-cache"}),{refreshInterval:18e4,...t?.opts});return{...r,refresh:()=>{r.mutate()}}};import Qn from"swr";import{isAddress as Yn}from"viem";var Mn=({poolId:e,account:t})=>e?["usePool-api",e,t]:null;function jr({poolId:e,account:t}){let r=Qn(Mn({poolId:e,account:t}),async([,o,n])=>{if(n&&!Yn(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 to}from"react";import{PoolType as De}from"@berachain-foundation/berancer-sdk";import Fn from"swr/immutable";import{formatUnits as Kn,keccak256 as qn,parseUnits as Le,zeroAddress as dt}from"viem";import{GetDedupedSubgraphPools as $n}from"@berachain/graphql/dex/subgraph";import{PoolType as Jr}from"@berachain-foundation/berancer-sdk";import{formatUnits as Gn}from"viem";var mt=e=>[...e].sort((t,r)=>t.address.toLowerCase().localeCompare(r.address.toLowerCase())),Xr=e=>e.length===0?"":mt(e).map(t=>t.symbol).join(" | "),eo=(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(Gn(a,18))*100).toFixed(0)}${n.symbol}`}).join("-")}-${o}`:`${mt(e).map(n=>n.symbol).join("-")}-${o}`};var Zn=.005,zn=(r=>(r.None="None",r.Custom="Custom",r))(zn||{}),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=qe})=>{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}}}},Jn=({poolCreationHelper:e,poolCreateTokens:t,initialLiquidityTokens:r,normalizedWeights:o,swapFeePercentage:n,salt:s,poolName:a,poolSymbol:i,owner:l,message:u,actionType:m,gasLimit:p=qe})=>{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}=Fn(["useCreatePool__deduped_pool",e,o,r],async()=>{if(e.length===0||!o)return null;let h=q("bex.subgraph",{});try{let b=fe(e).map(I=>I.address.toLowerCase()).sort((I,C)=>I.toLowerCase()<C.toLowerCase()?-1:1);return(await h.query({query:$n,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(Kn(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}=to(()=>{if(!e)return{generatedPoolName:"",generatedPoolSymbol:""};let h=Xr(e),b=eo(e,r,o);return{generatedPoolName:h,generatedPoolSymbol:b}},[e,r,o]),R=to(()=>{if(!i||n===""||s===""||e.length!==t.length||e.length===0)return null;let h=Le(a.toString(),16),b=qn(Buffer.from(`${n}-${i}`)),{config:T}=P(p);return o===De.Weighted?Jn({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 ns from"swr";import{usePublicClient as ss}from"@berachain/wagmi/hooks";import Xn from"bignumber.js";import{erc20Abi as es,formatUnits as ts}from"viem";import{GetExploitedTokens as rs}from"@berachain/graphql/dex/subgraph";var os=1e-4;async function ro({token:e,publicClient:t,...r}){let o=q("bex.subgraph",r),n=await t.readContract({address:e.address,abi:es,functionName:"totalSupply"}),s=Xn(ts(n,e.decimals)).multipliedBy(os),{data:a}=await o.query({query:rs,variables:{token:e.address,balance:s.toFixed()}});return a.userInternalBalances.length>0}var as=e=>{let t=e?.filter(r=>r.address);return!t||t.length===0?null:["useExploitedTokens",t]},Bc=({tokens:e})=>{let t=as(e),r=ss(),o=ns(r?t:null,async([,n])=>(y(r),(await Promise.all(n.map(a=>ro({token:a,publicClient:r})))).reduce((a,i,l)=>(i!==void 0&&(a[n[l].address]=i),a),{})));return{...o,refresh:()=>o.mutate()}};import is from"swr";var ls=()=>{let e=is("useGlobalLiquidityAndSwapVolume",async()=>Ct());return{...e,data:{totalLiquidity:Number(e.data?.protocolMetricsAggregated.totalLiquidity),swapVolume24h:Number(e.data?.protocolMetricsAggregated.swapVolume24h)},refresh:()=>e.mutate()}};import{useEffect as us,useState as ps}from"react";import{PoolType as ae}from"@berachain-foundation/berancer-sdk";var ms=.05,Wc=({currentStep:e,tokenPrices:t,isLoadingTokenPrices:r,tokens:o,weights:n,weightsError:s,poolType:a,liquidityMismatchTolerancePercent:i=ms,oracles:l})=>{let[u,m]=ps({title:null,message:null});return us(()=>{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=fe(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-LZPBQLKP.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-3V2MGZRD.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-2422CKAT.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-ELUMRVNE.mjs";import{a as P,b as H,d as me,e as k}from"../chunk-JHCSZSJS.mjs";import{a as J}from"../chunk-VA37UBED.mjs";import{f as x,g as E}from"../chunk-ASRHUDAH.mjs";import dn from"swr";import{usePublicClient as cn}from"@berachain/wagmi/hooks";var zp=({sharesAmount:e,vaultAddress:t,vaultChainId:r},o)=>{let n=cn({chainId:r}),s=dn(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 $r}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 fn,Swap as gn,SwapKind as yn,Token as Nr,TokenAmount as An}from"@berachain-foundation/berancer-sdk";import*as Wr 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=yn.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%"});Wr.captureException(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=An.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 gn({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:fn.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 _r}from"@berachain/config/internal";var Xe=class extends S{name="RedeemBgt";supportedChains=[_r.MAINNET,_r.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 Qr}from"viem";import{ChainId as Yr}from"@berachain/config/internal";var et=class extends S{name="Enso";supportedChains=[Yr.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=Qr,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",Yr.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??Qr,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 Mr="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(`${Mr}/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(`${Mr}/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 Gr}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=Gr(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(Gr(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 Fr}from"viem";import{ChainId as Kr}from"@berachain/config/internal";var lt=class extends S{name="OpenOcean";supportedChains=[Kr.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=Fr,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:Kr.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??Fr,isSwapAndStake:!!u}],functionName:"swap",abi:L,value:BigInt(c?o:"0"),address:this.config.bex.aggregatorsRouter}}}},Be=new lt;import{ChainId as qr}from"@berachain/config/internal";var ut=class extends S{name="Wrap";supportedChains=[qr.MAINNET,qr.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 Yd=(e,t)=>{let{address:r}=Dn(),o=$("proxyAggregatorsThroughVercel"),n=$("aggregators"),s=Ln(),{data:a}=Zr(),{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=$r(()=>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{...$r(()=>{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 Zr=()=>{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 jr({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 to}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())),Xr=e=>e.length===0?"":mt(e).map(t=>t.symbol).join(" | "),eo=(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}}}},hc=({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}=to(()=>{if(!e)return{generatedPoolName:"",generatedPoolSymbol:""};let h=Xr(e),b=eo(e,r,o);return{generatedPoolName:h,generatedPoolSymbol:b}},[e,r,o]),R=to(()=>{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 ro({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]},vc=({tokens:e})=>{let t=is(e),r=as(),o=ss(r?t:null,async([,n])=>(y(r),(await Promise.all(n.map(a=>ro({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,Vc=({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 lo from"bignumber.js";import{formatEther as uo,isAddressEqual as Os}from"viem";import ys from"swr";import{isAddress as oo,zeroAddress as As}from"viem";import{useBeraWallet as bs,usePublicClient as hs}from"@berachain/wagmi/hooks";import ds from"swr/immutable";import{isAddress as cs,zeroAddress as fs}from"viem";import{usePublicClient as gs}from"@berachain/wagmi/hooks";var ct=({tokenAddress:e},{isEnabled:t=!0}={})=>{let r=gs(),o=r&&e&&cs(e)&&t?["useRewardVaultFromToken",e]:null,n=ds(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:wt,functionName:"getVault",args:[s]});return i===fs?void 0:i});return{...n,refresh:()=>n.mutate()}};var no=({stakingToken:e,rewardVaultAddress:t},r)=>{let{address:o}=bs(),n=hs(),s=r?.opts?.isEnabled??!0,{data:a=t,error:i,mutate:l,isLoading:u}=ct({tokenAddress:e},{isEnabled:!t&&s}),m=ys(a&&o&&n&&oo(a)&&oo(o)&&s?["useVaultBalanceFromStakingToken",a,o]:null,async([,p,d])=>{if(y(n),p===As)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 Ts from"swr";import{erc20Abi as Is,formatEther as Cs,formatUnits as Es,isAddress as ao,zeroAddress as Ss}from"viem";import{defaultChainId as xs}from"@berachain/config/internal";import{useBeraWallet as vs,usePublicClient as Bs}from"@berachain/wagmi/hooks";import Rs from"swr/immutable";import{isAddress as ks,zeroAddress as ws}from"viem";import{usePublicClient as Ps}from"@berachain/wagmi/hooks";var so=(e,t)=>{let r=Ps({chainId:e.chainId}),o=e?.address&&r&&ks(e.address)?["useTokenInformation",e.address,e.chainId]:null,n=Rs(o,async([s,a])=>k(a,"BERA")?{address:ws,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 io({address:e,owner:t,chainId:r=xs},o){let n=e;k(n,"ETH")&&(n=Ss);let s=Bs({chainId:r}),{address:a}=vs(),i=t??a,l=(o?.opts?.isEnabled??!0)&&s&&i&&ao(i)&&n&&ao(n)?["usePollBalance",i,n,r]:null,{data:u,isLoading:m}=so({address:n,chainId:r}),p=k(n,"BERA"),{isLoading:d,data:c,error:f,...g}=Ts(l,async([,h,b])=>(y(s),k(b,"BERA")?await s.getBalance({address:h}):await s.readContract({address:b,abi:Is,functionName:"balanceOf",args:[h]})),{refreshInterval:1e4}),A=!f&&c?k(n,"BERA")?Cs(c):u&&!m?Es(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}=io({address:e?.address}),{data:s,refresh:a}=no({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=>Os(g.address,p.address))?.ratio??0,c=d?lo(o?.formattedBalance??"0").times(d):lo(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:uo(s.balance),usdValue:Number(uo(s.balance))*u}:void 0},...n,refresh:()=>{n.refresh?.(),a()}}};import{useMemo as mo}from"react";import{ZERO_ADDRESS as Us}from"@berachain-foundation/berancer-sdk";import Hs from"bignumber.js";import{isAddressEqual as Vs,parseUnits as co}from"viem";import Ds from"swr";import{useBeraWallet as Ls,usePublicClient as Ns}from"@berachain/wagmi/hooks";var po=(e,t)=>{let r=Ns(),{address:o}=Ls(),n=r&&o&&e?.tokens&&e?.spender?["usePollAllowances",o,e?.tokens,e?.spender]:null,s=Ds(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 Ws({amount:e,decimals:t,slippage:r}){let o=co(e,t),n=co((r??0).toString(),t);return o+o*n/BigInt(100*10**t)}var _s=(e,t,r)=>{let o=mo(()=>e.filter(l=>l.address!==Us).filter(l=>l!==void 0).filter(l=>Hs(l.amount).gt(0)),[e]),{data:n,refresh:s,isLoading:a}=po({spender:t,tokens:o});return{needsApproval:mo(()=>n?.map(l=>{let u=o.find(p=>Vs(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=Ws({...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 Ks}from"react";import qs from"swr/immutable";import{formatUnits as $s,isAddress as Zs}from"viem";import{usePublicClient as zs}from"@berachain/wagmi/hooks";import Qs from"swr/immutable";import{isAddress as Ys}from"viem";import{usePublicClient as Ms}from"@berachain/wagmi/hooks";var fo=(e,t)=>{let r=Ms(),o=r&&e.addresses?["useMultipleTokenInformation",e.addresses]:null,n=Qs(o,async([,s])=>(y(r),Promise.all(s.map(async a=>{if(!a||!Ys(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 Fs from"swr";import{useContext as Gs}from"react";function Ne(){let e=Gs(Nr);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=Fs(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 go(e){let t=zs(),r=e?.slice(0,42),o=js({poolId:e}),{data:n,error:s,isLoading:a,mutate:i}=qs(t?o:null,async([,c])=>Et({poolId:c,publicClient:t})),{data:l,isLoading:u}=fo({addresses:n?.poolTokens[0]}),{data:m,isLoading:p}=Ue({addressIn:n?.poolTokens[0]});return{data:Ks(()=>{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:$s(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 Js from"swr";import{useBeraWallet as Xs,usePublicClient as ea}from"@berachain/wagmi/hooks";var ta=e=>{let{address:t}=Xs(),r=ea(),o=t&&r?["usePollPoolCreationRelayerApproval",t,r.chain.id]:null,n=Js(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 ra}from"react";import oa from"swr";function na({poolId:e}){return e?["usePool-subgraph",e]:null}var fg=({poolId:e})=>{let t=oa(na({poolId:e}),async([,i])=>vt({poolId:i}),{refreshInterval:1e5}),r=jr({poolId:e}),{data:o,isLoading:n,refresh:s}=go(e);return{data:[ra(()=>{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 sa from"swr/immutable";var bg=({poolId:e,typeInArray:t})=>sa(e?["usePoolEvents",e,t]:null,async([,r,o])=>St({poolId:r,typeInArray:o}),{refreshInterval:18e4});import aa from"swr";var Pg=({poolId:e,...t},r)=>{let{config:o}=P(t),s=aa(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 yo}from"react";import ia from"swr";import{useBeraWallet as la}from"@berachain/wagmi/hooks";var ua=({query:e}={})=>["useAllPools",e],vg=(e,t)=>{let{address:r}=la(),{data:o,isLoading:n,mutate:s}=zr({userAddress:r,chain:e.chain}),{data:a,isLoading:i,mutate:l}=ia(ua({query:e}),async([p,d])=>de(d),{refreshInterval:18e4,...t?.opts}),u=yo(()=>{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=yo(()=>({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 Ta from"swr";import{useBeraWallet as Ia,usePublicClient as So}from"@berachain/wagmi/hooks";import{useCallback as wo}from"react";import{getPublicClient as Po}from"@wagmi/core";import ka from"swr";import{isAddress as wa,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 da,zeroAddress as ca}from"viem";import{erc20Abi as pa,ethAddress as ma}from"viem";var He=async({fromAddress:e,amountIn:t,tokenIn:r,chainId:o,ensoClient:n,bundle:s,publicClient:a})=>{let i=[];if(r!==ma){let l=await n.getApprovalData({fromAddress:e,tokenAddress:r,chainId:o,amount:t}),u=!0;a&&(u=await a.readContract({address:r,abi:pa,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 Ao({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===ca&&(o=da);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 fa,zeroAddress as ga}from"viem";async function bo({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===ga&&(o=fa);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 ya}from"@ensofinance/sdk";import{appConfig as Aa}from"@berachain/config/internal";var ba=process.env.NODE_ENV!=="development"&&process.env.NODE_ENV!=="test";function ho({useProxy:e=ba,...t}={}){let{config:r}=P(t);return new ya({baseURL:e?`${r.bex.aggregatorsProxyUrl}/enso/api/v1/`:void 0,apiKey:e?"":Aa.apiKeys.public.enso})}import{captureException as ft}from"@sentry/nextjs";import{getChains as ha,multicall as Ra}from"@wagmi/core";import{formatUnits as Ro}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:Ro(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=ha(t).find(A=>A.id===Number(u));if(!p)return;let c=p.contracts?.multicall3?.address;if(!c)return ft(new E({property:"multicallAddress",value:c,expected:"Address",chainId:Number(u)})),m;let f=await Ra(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:Ro(f[A].result,R.decimals)}):(console.error("error getting balance",f[A].error),ft(Ke({cause:f[A].error})),g.push(R))}return g})),l=[];for(let u of i)u.status==="fulfilled"?l.push(...u.value??[]):ft(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 Pa({ensoClient:e,chainId:t},r){let{address:o}=Co(),n=Eo(),s=!!o&&wa(o),i=ka(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=ho(),{data:n,refresh:s}=Pa({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 bo({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 Ao({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 by({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}=Ia(),{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 Ta(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?Dt(g?.price?.toString(),R?.toString(),T,W.formatted):void 0;return{supplyAmount:W,priceImpact:O,...I}},{...l?.opts,refreshInterval:1e5})}import Ca from"swr";var Py=({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=Ca(l?["useZapTransactionRequests",e,t,r,o]:null,async([,p,d,c,f])=>(ne(p,"tokenIn"),j(d?.address,"tokenOutAddress"),$e(c,"amount"),$e(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 gt,useEffect as Ba,useState as Oa}from"react";import Ea from"gray-matter";import{encodeFunctionData as We,erc20Abi as Sa,parseAbiItem as xa,toHex as va}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=xa(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]=va(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:Sa,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=Ea.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:""},Da=({initialData:e={},currentTopic:t,onError:r})=>{let[o,n]=Oa({title:"",description:"",forumLink:"",actions:[Bo],...e,topic:new Set});Ba(()=>{n(l=>({...l,topic:new Set([t.id])}))},[t]);let s=gt(()=>{n(l=>({...l,actions:[...l.actions,Bo]}))},[]),a=gt(l=>{n(u=>{let m=[...u.actions];return m.splice(l,1),{...u,actions:m}})},[n]),i=gt(()=>o?vo({proposal:o,currentTopic:t,onError:r}):void 0,[o,t]);return{proposal:o,setProposal:n,addProposalAction:s,removeProposalAction:a,computeParamsAndErrors:i}};import Ua from"swr/immutable";import{formatUnits as Ha}from"viem";import{useBeraWallet as Va,usePublicClient as Wa}from"@berachain/wagmi/hooks";import La from"swr/immutable";import{usePublicClient as Na}from"@berachain/wagmi/hooks";var Oo=({proposalId:e})=>{let t=Na();return La(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}=Va(),r=Wa(),o=e.wallet||t,{data:n}=Oo({proposalId:e.proposalId}),s=e.timepoint||n;return Ua(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 Ha(m,18)})};import _a from"swr";import{isAddress as Qa}from"viem";import{useBeraWallet as Ya,usePublicClient as Ma}from"@berachain/wagmi/hooks";var nA=({proposalId:e,wallet:t})=>{let{address:r}=Ya(),o=Ma(),n=t||r;return _a(o&&n&&Qa(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 Ga from"swr";import{usePublicClient as Fa}from"@berachain/wagmi/hooks";var Do="0xfd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783";var cA=({account:e,...t})=>{let r=Fa(),{config:o}=P(t);return Ga(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 Ka,useState as qa}from"react";import $a from"swr/infinite";import{Proposal_OrderBy as Za,ProposalStatus as V}from"@berachain/graphql/governance";var No=10,za=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(za).filter((a,i,l)=>l.indexOf(a)===i);return["usePollAllProposals",o,e,t.where,s,t.orderBy,t.orderDirection,r,t.text]}}function hA(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=$a(s,a,{initialSize:1,refreshInterval:t?.opts?.refreshInterval??18e4,...t?.opts}),l=Ka(()=>{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]=qa(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 Ja}from"react";import Xa from"swr";import{ProposalStatus as yt}from"@berachain/graphql/governance";import{usePublicClient as ei}from"@berachain/wagmi/hooks";var EA=(e,t)=>{let r=t?.autoRefresh??!1,o=ei(),s=Xa(e&&o?["usePollProposal",e]:null,([,l])=>(y(o),Ut({proposalId:l,client:o})),{...t?.opts,refreshInterval:t?.opts?.refreshInterval??18e4}),[a,i]=Ja(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 yt.Pending:a>=Number(s.data.voteStartAt)&&s.mutate();break;case yt.Active:a>=Number(s.data.voteEndAt)&&s.mutate();break;case yt.InQueue:Date.now()/1e3+1>=Number(s.data.queueEnd)&&s.mutate();break}},[s.data?.status,a]),{...s,refresh:()=>s?.mutate?.()}};import ti from"swr";import{formatEther as ri}from"viem";import{usePublicClient as oi}from"@berachain/wagmi/hooks";var LA=e=>{let t=oi(),o=ti(t?["usePollProposalThreshold",e]:null,async([,n])=>{y(t);let s=await t.readContract({address:n,abi:_,functionName:"proposalThreshold"});return{votesThreshold:ri(s)}},{refreshInterval:18e4});return{...o,refresh:o.mutate}};import ni from"swr/infinite";var _e=1e3,VA=(e,t)=>ni(si(e,t),async([r,o])=>Vt({variables:{...e,limit:_e,offset:_e*o}}),{parallel:!0,initialSize:Number.POSITIVE_INFINITY}),si=({...e},t)=>r=>r>Math.floor(t/_e)?null:["usePollProposalVotes",r,_e,e.proposalId,e.orderBy,e.orderDirection];import ai from"swr";import{formatEther as ii}from"viem";import{useBeraWallet as li,usePublicClient as ui}from"@berachain/wagmi/hooks";var KA=e=>{let{address:t}=li(),r=ui(),n=ai(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:ii(l)}},{...e?.opts,refreshInterval:e?.opts?.refreshInterval??18e4});return{...n,refresh:()=>n?.mutate?.()}};import pi from"swr";import{usePublicClient as mi,useTransactionReceipt as di}from"@berachain/wagmi/hooks";var jA=e=>{let{data:t}=di({hash:e}),r=mi();return pi(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 ci from"swr/immutable";import{usePublicClient as fi}from"@berachain/wagmi/hooks";var gi={0:"pending",1:"active",2:"canceled",3:"defeated",4:"succeeded",5:"queued",6:"expired",7:"executed"},ob=({proposalId:e,governorAddress:t})=>{let r=fi();return ci(t&&r&&e?["useProposalState",e]:null,async([,n])=>{y(r);let s=await r.readContract({abi:_,address:t,functionName:"state",args:[BigInt(n)]});return gi[s]})};import yi from"swr";import{usePublicClient as Ai}from"@berachain/wagmi/hooks";var bi={0:"unset",1:"waiting",2:"ready",3:"done"},ub=({proposalTimelockId:e,timelockAddress:t})=>{let r=Ai();return yi(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 bi[a]},{refreshInterval:18e4})};import Ri from"swr";import{usePublicClient as ki}from"@berachain/wagmi/hooks";import{formatEther as hi}from"viem";async function At({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 hi(n)}function hb({at:e},{isEnabled:t=!0}){let r=Math.floor(Date.now()/1e3),o=ki(),n=t&&o?["useQuorum",Number(e)>r?"now":e]:null,s=Ri(n,async([,a])=>a==="now"?At({publicClient:o}):At({at:a,publicClient:o}));return{...s,data:s.data?Number(s.data):void 0}}import Pi from"swr";import{usePublicClient as Ti}from"@berachain/wagmi/hooks";import wi from"swr";function ee({priceFeedMap:e},t){let r=e?Object.values(e):null,o=(t?.opts?.isEnabled??!0)&&r?["usePythLatestPrices",r]:null;return wi(o,async([s,a])=>await Ft({priceFeedId:a}))}var Ho=({asset:e,amount:t,isMint:r,isBasketModeEnabled:o},n)=>{let s=Ti(),{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=Pi(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 Ii from"swr";import{usePublicClient as Ci}from"@berachain/wagmi/hooks";var Vo=({asset:e,amount:t,isMint:r,isBasketModeEnabled:o},n)=>{let s=Ci(),{collateralList:a,referenceCollateral:i}=B(),u=Ii(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 Ei from"swr";import{usePublicClient as Si}from"@berachain/wagmi/hooks";var Qb=({collateralList:e},t)=>{let r=Si(),n=Ei(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 bt}from"react";import te from"bignumber.js";import xi from"swr";import{useBeraWallet as vi,usePublicClient as Bi}from"@berachain/wagmi/hooks";var Wo=()=>{let e=Bi(),{address:t}=vi(),{collateralList:r}=B(),n=xi(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 Oi from"swr";import{usePublicClient as Di}from"@berachain/wagmi/hooks";var _o=e=>{let t=Di(),{collateralList:r}=B(),n=Oi(r&&t?["useHoneyVaultsBalance",r]:null,async([s,a])=>(y(t),await ge({client:t,collateralList:a})),{...e?.opts,refreshInterval:1e5});return{...n,refresh:()=>void n.mutate()}};import Li from"swr";import{usePublicClient as Ni}from"@berachain/wagmi/hooks";var Qo=({collateral:e},t)=>{let r=Ni(),{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=Li(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:[]}},Ui=({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 Hi({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 bh=({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]=bt(()=>{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}=bt(()=>Ui({vaultsBalances:f,redeemedVaultBalance:A,state:s,collateralList:l}),[f,A,s,l]),w=bt(()=>Hi({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 Vi from"swr";function wh({days:e}){let t=Vi(["useHoneyChartData",e],async([r,o])=>await Wt({days:o}));return{...t,refresh:()=>t.mutate()}}import Mo from"bignumber.js";import Wi from"swr";function Eh(){let e=Wi(["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 Yi,useReducer as Mi}from"react";import{formatUnits as Fo}from"viem";import{defaultChainId as Gi}from"@berachain/config/internal";import _i from"swr";import{usePublicClient as Qi}from"@berachain/wagmi/hooks";function Go({state:e},t){let r=Qi(),{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=_i(l,async([m,p,d,c,f])=>(y(r),await ye({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 Fi={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:Gi})?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 Yh=()=>{let{collateralList:e}=B(),[t,r]=Mi(Ko,Fi,n=>({...n,collaterals:e})),{data:o}=Go({state:t});return Yi(()=>{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 Ki from"swr/immutable";import{usePublicClient as qi}from"@berachain/wagmi/hooks";var Zh=({pythPriceFeedCalldata:e,tokenListLength:t},r)=>{let o=qi(),n=(r?.opts?.isEnabled??!0)&&e&&e.length>0?["usePythUpdateFee",e]:null,{data:s=Lt(t),isLoading:a}=Ki(n,async([i,l])=>(y(o),await Kt({client:o,priceFeedId:l})));return{QUERY_KEY:n,data:s,isLoading:a}};import{useMemo as $i}from"react";function Xh(e){return $i(()=>{if(e)return zt(e)},[e])}import Zi from"swr";import{formatEther as zi}from"viem";import{useBeraWallet as ji,usePublicClient as Ji}from"@berachain/wagmi/hooks";var Xi=e=>{let{address:t}=ji(),r=Ji(),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 zi(i)},{...e,refreshInterval:e?.opts?.refreshInterval??1e5});return{...n,refresh:()=>n.mutate()}};import el from"swr";import{formatUnits as tl}from"viem";import{useBeraWallet as rl,usePublicClient as ol}from"@berachain/wagmi/hooks";var nl=()=>{let{address:e}=rl(),t=ol(),o=el(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 tl(a,18)},{refreshInterval:18e4*2});return{...o,refresh:()=>o?.mutate?.()}};import sl from"swr";import{GetStakeBeraVaultEarningsByOwner as al}from"@berachain/graphql/pol/api";import{useBeraWallet as il}from"@berachain/wagmi/hooks";function hR({receiptToken:e},t){let{address:r}=il(),o=e.address&&r?["useEarnedStakedBeraVault",e.address,r]:null,n=sl(o,async([s,,a])=>(await q("api",{}).query({query:al,variables:{owner:a}})).data?.polGetStakeBeraVaultEarningsByOwner?.earnings,{refreshInterval:18e4,...t?.opts});return{...n,refresh:n.mutate}}import{GqlRewardVaultOrderBy as ml,GqlRewardVaultOrderDirection as dl}from"@berachain/graphql/pol/api";import ll from"swr";import{usePublicClient as ul}from"@berachain/wagmi/hooks";var pl=(e,t=!1)=>["useRewardVaults",e,t],ht=(e,t)=>{let r=pl(e.filter,e.onChainIncentives),o=ul(),n=ll(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 ER=(e={},{isEnabled:t=!0}={})=>{let r=ht({filter:{orderBy:ml.Apr,orderDirection:dl.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 cl from"swr";import{usePublicClient as fl}from"@berachain/wagmi/hooks";var qo=e=>{let t=fl(),r=cl(t?"usePollGlobalData":null,async()=>(y(t),Jt(t)),{revalidateOnFocus:!1,...e?.opts});return{...r,refresh:r.mutate}};import gl from"swr/immutable";var yl=()=>"usePollMarkets",UR=e=>{let t=yl(),r=gl(t,async()=>await Xt(),{...e?.opts});return{...r,refresh:()=>r.mutate()}};import Al from"swr/immutable";import{isAddress as $o}from"viem";import{usePublicClient as bl}from"@berachain/wagmi/hooks";function MR({receiptTokenAddress:e,account:t,version:r},o){let n=bl(),s=e&&$o(e)&&t&&n&&$o(t)&&r?["useQueuedBeraUnlock",e,t,r]:null,a=Al(s,async([,i,l,u])=>(y(n),await nr(i,l,n,u)),{refreshInterval:1e4,...o?.opts});return{...a,refresh:()=>a.mutate()}}import hl from"swr";import{isAddress as Rl}from"viem";import{usePublicClient as kl}from"@berachain/wagmi/hooks";var zR=({address:e},t)=>{let r=e?["useRewardTokenToBeraRate",e]:null,o=kl();return hl(r,async([n,s])=>{if(!s||!Rl(s))throw new E({property:"address",value:s,expected:"Address"});return y(o),tr({address:s,publicClient:o})},{...t?.opts})};import xl from"swr";import Pl from"swr";import{erc20Abi as Tl,formatUnits as Il,isAddress as Cl}from"viem";import{usePublicClient as El}from"@berachain/wagmi/hooks";import{erc20Abi as Qe,formatUnits as wl}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"?wl(s.result,r.result):s.result.toString():void 0}}var Sl=e=>e&&Cl(e)?["onChainRewardVault",e.toLowerCase()]:null,Zo=({address:e},t)=>{let r=El(),o=t.opts?.isEnabled??!0,n=Sl(e);return Pl(o&&r?n:null,async([,s])=>{y(r);let{config:a}=P({chainId:r.chain.id}),i=await be({address:s,publicClient:r}),[l,u,m]=await Promise.all([Ae({address:s,stakingToken:i,publicClient:r}),r.readContract({address:a.pol.beraChef,abi:K,functionName:"isWhitelistedVault",args:[s]}),r.readContract({address:i,abi:Tl,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:Il(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 vl=e=>e?["useRewardVault",e.toLowerCase()]:null,gk=(e,t)=>{let r=vl(e),o=xl(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 Bl from"swr";import{usePublicClient as Ol}from"@berachain/wagmi/hooks";function kk({address:e,stakingToken:t}){let r=Ol(),n=Bl(r&&e&&t?["useRewardVaultIncentives",e,t]:null,async([,s,a])=>(y(r),await Ae({address:s,stakingToken:a,publicClient:r})));return{...n,refresh:()=>n?.mutate?.()}}import Dl from"swr";import{usePublicClient as Ll}from"@berachain/wagmi/hooks";var Nl=(e,t)=>{let r=Ll(),n=Dl(r&&e?["useRewardVaultRewards",e]:null,async([,s])=>(y(r),await Zt(s,r)),{...t?.opts});return{...n,refresh:()=>n?.mutate?.()}};import Ul from"swr";var vk=({range:e})=>{let r=Ul(e?["useStakedBeraSnapshots",e]:null,([,o])=>or({range:o}));return{...r,refresh:()=>r.mutate()}};import Hl from"swr";import{useBeraWallet as Vl,usePublicClient as Wl}from"@berachain/wagmi/hooks";var _l=(e,t)=>{let{address:r}=Vl(),o=Wl(),n=r&&o&&e.vaultAddress?["useUserVaultInfo",r,e.vaultAddress]:null,s=Hl(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 Ql from"swr";import{useBeraWallet as Yl,usePublicClient as Ml}from"@berachain/wagmi/hooks";var Gl=e=>{let{address:t}=Yl(),r=Ml(),n=Ql(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 Fl from"swr";import{usePublicClient as Kl}from"@berachain/wagmi/hooks";var Kk=e=>{let t=Kl();return Fl(e&&t?["useVaultAddress",e]:null,async([,o])=>{y(t);let[n]=await Promise.all([be({address:o,publicClient:t})]);return{stakeToken:n,address:o}})};import ql from"swr";var zk=({vault:e,range:t,resolution:r})=>{let n=ql(e?["useVaultHistory",e,t,r]:null,([,s,a,i])=>pr({vault:s,range:a,resolution:i}));return{...n,refresh:()=>n.mutate()}};import $l from"swr";var Zl=(e,t)=>{let o=$l(e?["useVaultValidators",e]:null,async([,n])=>await mr({address:n}),{...t?.opts});return{...o,refresh:()=>o.mutate()}};import{zeroAddress as zl}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 sw(e){return zo({address:zl},e)}import{useMemo as jl}from"react";import Jl from"swr";import{useBeraWallet as Xl,usePublicClient as eu}from"@berachain/wagmi/hooks";function dw(e,t){let r=eu(),{address:o}=Xl(),{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=Jl(i,async([,u,m])=>he({account:u,tokenList:m,publicClient:r}),{refreshInterval:1e5,...t?.opts});return{...l,refresh:()=>l?.mutate?.()}}import tu from"swr/immutable";import{isAddress as ru,zeroAddress as ou}from"viem";import{usePublicClient as nu}from"@berachain/wagmi/hooks";var hw=(e,t)=>{let r=nu(),o=e?.address&&r&&ru(e.address)?["useStakingTokenInformation",e.address]:null,n=tu(o,async([s,a])=>k(a,"BERA")?{address:ou,decimals:H.decimals,name:H.name,symbol:H.symbol}:await Ye({address:a,publicClient:r}),{...t?.opts});return{...n,refresh:()=>n?.mutate?.()}};import su from"swr";import{erc20Abi as au}from"viem";import{usePublicClient as iu}from"@berachain/wagmi/hooks";function Iw({address:e}){let t=iu();return su(e&&t?["useTotalSupply",e]:null,([,r])=>(y(t),t.readContract({address:r,abi:au,functionName:"totalSupply",args:[]})))}import{useCallback as lu}from"react";import{useBeraWagmi as uu}from"@berachain/wagmi/hooks";function Bw(){let e=Re(),{account:t}=uu(),r=t?.wallet?.address;return lu(o=>{if(!r)throw new E({property:"address",value:r,expected:"Address"});e.addTransaction(r,o)},[e,r])}import{useEffect as pu,useState as mu}from"react";import{useBeraWallet as du}from"@berachain/wagmi/hooks";function Uw(){let e=Re(),{address:t}=du(),[r,o]=mu(()=>e&&t?e.getTransactions(t):[]);return pu(()=>{if(e&&t)return o(e.getTransactions(t)),e.onChange(()=>{o(e.getTransactions(t))})},[e,t]),r}import cu from"swr/immutable";import{useBlockNumber as fu,usePublicClient as gu}from"@berachain/wagmi/hooks";function Fw(e){let t=gu(),{config:r}=P({chainId:t?.chain.id}),{data:o,isLoading:n}=fu({cacheTime:ce(r.averageBlockTime)}),{data:s}=cu(o&&t&&Number(e)>0?["useBlockToTimestamp",e,o]:null,async([,i,l])=>(y(t),$t({block:i,currentBlock:l,blockTime:a,publicClient:t}))),a=ke();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 yu}from"react";import{useBeraWagmi as Au,useConfig as bu}from"@berachain/wagmi/hooks";var Rt={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{...Rt};default:return e}};function hu({onlyPermissionless:e,onSuccess:t,onError:r,onLoading:o,onWarning:n,onSubmission:s}={}){let[a,i]=yu(jo,Rt),{account:l,onSmartAccountRejection:u}=Au(),m=bu(),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 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 Ru=hu;import ku from"swr/immutable";import{isAddress as wu,zeroAddress as Pu}from"viem";import{chainId as Tu}from"@berachain/config/internal";async function Iu(e){let t=await Pt({url:`https://api.routescan.io/v2/network/testnet/evm/${Tu}/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 uP=e=>ku(e&&wu(e)&&e!==Pu?["useGetVerifiedAbi",e]:null,()=>e?Iu(e):Promise.resolve(""),{});import{useCallback as Xo,useEffect as Cu,useState as Eu}from"react";function dP({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]=Eu(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 Cu(()=>{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 Su,useRef as xu}from"react";function gP(e){let t=xu(void 0);return Su(()=>{t.current=e}),t.current}import vu from"swr";var Bu=({variables:e}={})=>["useAllValidators",e],RP=(e,t)=>{let{config:r}=P(e),o=vu(Bu({variables:e}),async([,n])=>await yr({variables:{chain:r.bex.chainName,...n}}),{refreshInterval:18e4,...t?.opts});return{...o,refresh:()=>o.mutate()}};import Ou from"swr";function TP({allocation:e}){return Ou(e?["useApiEnrichedAllocation",e]:null,([,t])=>Ar({allocation:t}))}import Du from"swr";import{isHex as Lu}from"viem";var Nu=e=>e?["useApiValidator",e]:null,en=(e,t)=>{let r=Nu(e),o=t?.opts?.isEnabled??!0,n=Du(o&&e?r:null,async([,s])=>{if(!s||!Lu(s))throw new Error(`Invalid validator ID: ${s}`);return br({id:s})},{...t?.opts});return{...n,refresh:()=>n.mutate()}};import Uu from"swr";import{usePublicClient as Hu}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 WP(){let e=Hu();return Uu(e?["baselineRewardAllocation"]:null,()=>(y(e),rn({publicClient:e})))}import Vu from"swr";var Wu=({pubKey:e,first:t=1})=>{let o=Vu(e?["useDailyValidatorBlockStats",e,t]:null,async([,n,s])=>await hr({pubKey:n,first:s}),{refreshInterval:18e4});return{...o,refresh:()=>o.mutate()}};import _u from"swr";import{usePublicClient as Qu}from"@berachain/wagmi/hooks";function Yu(e){let t=Qu(),o=_u(t?["useDefaultRewardAllocation"]:null,async()=>(y(t),await wr({client:t})),{...e?.opts});return{...o,refresh:()=>o.mutate()}}import Mu from"swr/immutable";var Gu=({account:e},t)=>{let o=Mu(e?["useManagedValidatorByAccount",e]:null,async([,n])=>await Pr({account:n}),{...t?.opts});return{...o,refresh:()=>o.mutate()}};import{useMemo as nn}from"react";import Ku from"swr";import{useBeraWallet as qu,usePublicClient as $u}from"@berachain/wagmi/hooks";import{zeroAddress as Fu}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===Fu?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 zu({pubKey:e,account:t},r){let o=$u(),n=$("mockValidatorOperator"),s=$("mockValidatorRewardAllocator"),a=o&&e?["useManagedValidatorRole",e]:null,{address:i}=qu(),l=t??i,u=Ku(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 Ju}from"viem";import{usePublicClient as Xu}from"@berachain/wagmi/hooks";var an=({pubkey:e},t)=>{let r=Xu(),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:kt,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:Ju(a),pubkey:a,operator:l,votingPower:Number(u)}});return{...s,refresh:()=>{s.mutate()}}};import ep from"swr";import{usePublicClient as tp}from"@berachain/wagmi/hooks";var PT=({valPubKey:e,options:t})=>{let r=tp(),n=(t?.opts?.isEnabled??!0)&&r&&e?["useStakingPoolBatch",e]:null,s=ep(n,async([,a])=>(y(r),await Tr({client:r,valPubKey:a})),{refreshInterval:1e4,...t?.opts});return{...s,refresh:()=>s.mutate()}};import rp from"swr";import{GetUserValidatorInformation as op}from"@berachain/graphql/pol/subgraph";import{useBeraWallet as np}from"@berachain/wagmi/hooks";var sp=({account:e}={})=>{let{address:t}=np(),r=e??t;return rp(r?["useSubgraphUserValidators",r]:null,async([,n])=>{let s=q("pol.subgraph",{}),{data:a}=await s.query({query:op,variables:{address:n}});return a.userValidatorInformations})};import ap from"swr";import{useBeraWallet as ip,usePublicClient as lp}from"@berachain/wagmi/hooks";var up=e=>{let{address:t}=ip(),r=lp(),n=ap(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 pp from"swr";import{useBeraWallet as mp,usePublicClient as dp}from"@berachain/wagmi/hooks";var cp=({pubkey:e,...t})=>{let{address:r}=mp(),o=dp(),n=t.account??r,a=pp(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 fp,useMemo as gp}from"react";import{captureException as yp}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=gp(()=>{if(o){if(!Array.isArray(o)){yp(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=fp(()=>{r?.mutate(),a?.mutate()},[r,a]);return{...a,isLoading:r?.isLoading||a?.isLoading,tokenMap:n,refresh:i}};import hp from"swr/immutable";var jT=({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 rI({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=ke();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{zn as OracleMode,Fp as TransactionStoreProvider,Nn as USE_AGGREGATORS_QUOTES_QUERY_KEY,Qp as convertLegacyDataToNewData,Gp as createTransactionStore,Yp as filterDuplicatefn,Mp as mergeData,Ko as reducer,_p as safeParseJsonData,Bw as useAddRecentTransaction,Md as useAggregatorsQuotes,Zr as useAggregatorsRouterFeeBps,zr as useAllUserPools,_n as useAllUserPoolsQueryKey,RP as useAllValidators,Bu as useAllValidatorsQueryKey,TP as useApiEnrichedAllocation,jr as useApiPool,Mn as useApiPoolQueryKey,en as useApiValidator,Nu as useApiValidatorQueryKey,WP as useBaselineRewardAllocation,by as useBendTransactionRequests,xo as useBendTransactionRequestsHelper,Ru as useBeraContractWrite,sw as useBeraCurrentPrice,ze as useBexStatus,Xh as useBgtAprSimulation,Xi as useBgtUnstakedBalance,Fw as useBlockToTimestamp,Ho as useCappedGlobally,Vo as useCappedRelatively,nl as useClaimableFees,Qb as useCollateralWeights,Rc as useCreatePool,Da as useCreateProposal,Wu as useDailyValidatorBlockStats,Yu as useDefaultRewardAllocation,hR as useEarnedStakedBeraVault,ie as useEnsoZap,Bc as useExploitedTokens,as as useExploitedTokensQueryKey,zp as useGetConvertToAssets,zy as useGetPastVotes,uP as useGetVerifiedAbi,ls as useGlobalLiquidityAndSwapVolume,nA as useHasVoted,ER as useHighestVaultsAPR,dP as useHistoryState,bh as useHoneyAlerts,Wo as useHoneyBalances,wh as useHoneyChartData,Eh as useHoneyGlobalData,Yh as useHoneySwapState,_o as useHoneyVaultsBalance,Qo as useIsBadCollateralAsset,Go as useIsBasketModeEnabled,cA as useIsCanceller,Wc as useLiquidityMismatch,kf as useLpPosition,Gu as useManagedValidatorByAccount,zu as useManagedValidatorRole,_s as useMultipleTokenApprovalsWithSlippage,fo as useMultipleTokenInformation,go as useOnChainPoolData,js as useOnChainPoolDataQueryKey,an as useOnChainValidator,hA as usePollAllProposals,ja as usePollAllProposalsQueryKey,po as usePollAllowances,io as usePollBalance,qo as usePollGlobalData,UR as usePollMarkets,yl as usePollMarketsQueryKey,ta as usePollPoolCreationRelayerApproval,EA as usePollProposal,LA as usePollProposalThreshold,VA as usePollProposalVotes,si as usePollProposalVotesQueryKey,KA as usePollUserDelegates,dw as usePollWalletBalances,fg as usePool,bg as usePoolEvents,Pg as usePoolHistoricalData,vg as usePools,ua as usePoolsQueryKey,gP as usePrevious,jA as useProposalFromTx,Oo as useProposalSnapshot,ob as useProposalState,ub as useProposalTimelockState,ee as usePythLatestPrices,Zh as usePythUpdateFee,MR as useQueuedBeraUnlock,hb as useQuorum,Uw as useRecentTransactions,zR as useRewardTokenToBeraRate,gk as useRewardVault,no as useRewardVaultBalanceFromStakingToken,ct as useRewardVaultFromToken,kk as useRewardVaultIncentives,vl as useRewardVaultQueryKey,Nl as useRewardVaultRewards,ht as useRewardVaults,pl as useRewardVaultsQueryKey,vk as useStakedBeraSnapshots,PT as useStakingPoolBatch,hw as useStakingTokenInformation,na as useSubgraphPoolQueryKey,sp as useSubgraphUserValidators,zo as useTokenCurrentPrice,Ue as useTokenCurrentPrices,so as useTokenInformation,Ne as useTokens,Iw as useTotalSupply,Re as useTransactionStore,up as useUserActiveValidators,cp as useUserBoostsOnValidator,bp as useUserClaimableIncentives,jT as useUserStakingPositions,_l as useUserVaultInfo,Gl as useUserVaults,rI as useValidator,wp as useValidatorAnalytics,Ip as useValidatorCommission,Cp as useValidatorEstimatedBgtPerYear,xp as useValidatorQueuedCommission,Op as useValidatorQueuedOperatorAddress,Np as useValidatorQueuedRewardAllocation,Vp as useValidatorRewardAllocation,Kk as useVaultAddress,zk as useVaultHistory,Zl as useVaultValidators,Py 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 lo from"bignumber.js";import{formatEther as uo,isAddressEqual as Ds}from"viem";import As from"swr";import{isAddress as oo,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 no=({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&&oo(a)&&oo(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 ao,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 so=(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 io({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&&ao(i)&&n&&ao(n)?["usePollBalance",i,n,r]:null,{data:u,isLoading:m}=so({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 Rf=({pool:e,vaultAddress:t},r)=>{let{data:o,...n}=io({address:e?.address}),{data:s,refresh:a}=no({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?lo(o?.formattedBalance??"0").times(d):lo(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:uo(s.balance),usdValue:Number(uo(s.balance))*u}:void 0},...n,refresh:()=>{n.refresh?.(),a()}}};import{useMemo as mo}from"react";import{ZERO_ADDRESS as Hs}from"@berachain-foundation/berancer-sdk";import Vs from"bignumber.js";import{isAddressEqual as Ws,parseUnits as co}from"viem";import Ls from"swr";import{useBeraWallet as Ns,usePublicClient as Us}from"@berachain/wagmi/hooks";var po=(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=co(e,t),n=co((r??0).toString(),t);return o+o*n/BigInt(100*10**t)}var Qs=(e,t,r)=>{let o=mo(()=>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}=po({spender:t,tokens:o});return{needsApproval:mo(()=>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 fo=(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 go(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}=fo({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 cg=({poolId:e})=>{let t=na(sa({poolId:e}),async([,i])=>xt({poolId:i}),{refreshInterval:1e5}),r=jr({poolId:e}),{data:o,isLoading:n,refresh:s}=go(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 Ag=({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 wg=({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 yo}from"react";import la from"swr";import{useBeraWallet as ua}from"@berachain/wagmi/hooks";var pa=({query:e}={})=>["useAllPools",e],xg=(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=yo(()=>{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=yo(()=>({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 xo}from"@berachain/wagmi/hooks";import{useCallback as Po}from"react";import{getPublicClient as To}from"@wagmi/core";import wa from"swr";import{isAddress as Pa,parseUnits as Io}from"viem";import{defaultChainId as Co}from"@berachain/config/internal";import{useBeraWallet as Eo,useConfig as So}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 Ao({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 bo({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 ho({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 ko from"@sentry/nextjs";import{getChains as Ra,multicall as ka}from"@wagmi/core";import{formatUnits as Ro}from"viem";async function wo({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:Ro(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 ko.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:Ro(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}=Eo(),n=So(),s=!!o&&Pa(o),i=wa(s&&n?["useEnsoBalances",o,t]:null,async([,l,u])=>wo({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}=Eo(),r=So(),o=ho(),{data:n,refresh:s}=Ta({ensoClient:o,chainId:e}),a=Po(async({tokenIn:l,tokenOut:u,amount:m,slippage:p})=>{j(t,"fromAddress"),j(l?.address,"tokenInAddress"),ne(l?.chainId,"tokenInChainId");let d=To(r,{chainId:l.chainId});y(d);let c=Io(m,l.decimals).toString();return bo({fromAddress:t,amountIn:c,tokenIn:l?.address,tokenOut:u,chainId:l.chainId,ensoClient:o,destinationChainId:Co,slippage:p,publicClient:d})},[t,o,r]),i=Po(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=To(r,{chainId:l.chainId});y(f);let g=Io(u,l.decimals).toString();return Ao({fromAddress:t,amountIn:g,tokenIn:l.address,loanToken:m,bendVault:p,rewardVault:d,chainId:l.chainId,ensoClient:o,destinationChainId:Co,slippage:c,publicClient:f})},[t,o,r]);return{tokens:n,getBendTransactionRequests:i,getZapTransactionRequests:a,refreshTokens:s}}function yy({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}=vo({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=vo({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 vo({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=xo({chainId:i}),c=xo();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 ky=({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 Bo=({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 Oo={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:[Oo],...e,topic:new Set});Oa(()=>{n(l=>({...l,topic:new Set([t.id])}))},[t]);let s=ft(()=>{n(l=>({...l,actions:[...l.actions,Oo]}))},[]),a=ft(l=>{n(u=>{let m=[...u.actions];return m.splice(l,1),{...u,actions:m}})},[n]),i=ft(()=>o?Bo({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 Do=({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 $y=e=>{let{address:t}=Wa(),r=_a(),o=e.wallet||t,{data:n}=Do({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 rA=({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 Lo="0xfd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783";var mA=({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:[Lo,s]})),{refreshInterval:18e4,revalidateOnFocus:!1})};import{useEffect as No,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 Uo=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??Uo);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 AA(e,t){let r=t?.autoRefresh??!1,o=e.perPage??Uo,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 No(()=>{if(!r)return;let c=setInterval(()=>{d(Date.now()/1e3)},1e4);return()=>clearInterval(c)},[r]),No(()=>{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 Ho,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 IA=(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 Ho(()=>{if(!r)return;let l=setInterval(()=>{i(Date.now()/1e3)},1e4);return()=>clearInterval(l)},[]),Ho(()=>{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 OA=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,UA=(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 GA=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"},tb=({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"},ib=({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 Ab({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 Vo=({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 Wo=({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 Wb=({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 _o=()=>{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 Qo=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 Yo=({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 Mo=({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 yh=({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}=Yo({collateral:t[0]}),{collateralList:l}=B(),{isBlacklisted:u,isDepegged:m}=i??{isBlacklisted:!1,isDepegged:!1},{data:p}=Vo({asset:t[0],amount:a?r[0]:o[0],isMint:a,isBasketModeEnabled:n}),{data:d}=Wo({asset:t[0]?.address,amount:a?r[0]:o[0],isMint:a,isBasketModeEnabled:n}),{data:c}=_o(),{data:f}=Qo(),g=t[0]?.address,A=f?.find(I=>I.address.toLowerCase()===g.toLowerCase()),[R,h]=At(()=>{let I=Mo({lowerThan:1,vaultsBalances:f,state:s,collateralList:l}),C=Mo({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 Rh({days:e}){let t=Wi(["useHoneyChartData",e],async([r,o])=>await Ut({days:o}));return{...t,refresh:()=>t.mutate()}}import Go from"bignumber.js";import _i from"swr";function Ih(){let e=_i(["useHoneyGlobalData"],()=>_t()),t=e.data?.honeySnapshots.reduce((r,o)=>new Go(o.totalVolume).plus(r),new Go(0));return{...e,data:{...e.data,dailyVolume:t},refresh:()=>e.mutate()}}import{useEffect as Mi,useReducer as Gi}from"react";import{formatUnits as Ko}from"viem";import{defaultChainId as Fi}from"@berachain/config/internal";import Qi from"swr";import{usePublicClient as Yi}from"@berachain/wagmi/hooks";function Fo({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 qo(e,t){switch(t.type){case"RESET_AMOUNTS":return{...e,fromAmount:[],toAmount:[]};case"ACTION_TYPE_CHANGE":return qo({...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]?Ko(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?Ko(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 _h=()=>{let{collateralList:e}=B(),[t,r]=Gi(qo,Ki,n=>({...n,collaterals:e})),{data:o}=Fo({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 qh=({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 AR({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 IR=(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 $o=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",LR=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 Zo}from"viem";import{usePublicClient as hl}from"@berachain/wagmi/hooks";function QR({receiptTokenAddress:e,account:t,version:r},o){let n=hl(),s=e&&Zo(e)&&t&&n&&Zo(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 $R=({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,ck=(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 hk({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 Sk=({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 Gk=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 $k=({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 jo({address:e},t){let r=Ue({addressIn:e?[e]:void 0},t);return{...r,data:e?r.data?.[e.toLowerCase()]:void 0}}function ow(e){return jo({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 pw(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 Aw=(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 Pw({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 xw(){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 Lw(){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 Mw(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 Xo,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=Xo(()=>{i({type:"confirm_reset"})},[]),c=$("enableSimulateCalls"),f=Xo(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 iP=e=>wu(e&&Pu(e)&&e!==Tu?["useGetVerifiedAbi",e]:null,()=>e?Cu(e):Promise.resolve(""),{});import{useCallback as en,useEffect as Eu,useState as Su}from"react";function pP({key:e,defaultValue:t}){let r=en(()=>{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=en(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 cP(e){let t=vu(void 0);return xu(()=>{t.current=e}),t.current}import Bu from"swr";var Ou=({variables:e}={})=>["useAllValidators",e],bP=(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 wP({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,tn=(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 rn=[{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 on({publicClient:e,...t}){let{config:r}=P(t),o=await e.readContract({abi:rn,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 HP(){let e=Vu();return Hu(e?["baselineRewardAllocation"]:null,()=>(y(e),on({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 sn}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 nn({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 an(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():an(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}),nn({client:o,pubKey:d})]);return{operator:c??null,rewardAllocator:f}},{...r?.opts}),m=sn(()=>n||an(l,u.data),[l,n,u.data]),p=sn(()=>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 ln=({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 kT=({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 mn from"@sentry/nextjs";import pn from"swr";import{useBeraWallet as Ap}from"@berachain/wagmi/hooks";var un=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=pn(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)){mn.captureException(new x({message:"Incorrect aggregated incentives data receieved.",level:"error"}),{extra:{allRewards:o,account:e}});return}return un(o)}},[o,e]),a=pn(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 $T=({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 XT({pubkey:e},t){let{data:{validator:r,uptime:o}={},isLoading:n,error:s}=tn(Rp(e),t),{data:a,isLoading:i,error:l}=ln({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}=$o(),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,qo as reducer,_p as safeParseJsonData,xw as useAddRecentTransaction,Yd as useAggregatorsQuotes,Zr as useAggregatorsRouterFeeBps,zr as useAllUserPools,Qn as useAllUserPoolsQueryKey,bP as useAllValidators,Ou as useAllValidatorsQueryKey,wP as useApiEnrichedAllocation,jr as useApiPool,Gn as useApiPoolQueryKey,tn as useApiValidator,Uu as useApiValidatorQueryKey,HP as useBaselineRewardAllocation,yy as useBendTransactionRequests,vo as useBendTransactionRequestsHelper,ku as useBeraContractWrite,ow as useBeraCurrentPrice,ze as useBexStatus,jh as useBgtAprSimulation,el as useBgtUnstakedBalance,Mw as useBlockToTimestamp,Vo as useCappedGlobally,Wo as useCappedRelatively,sl as useClaimableFees,Wb as useCollateralWeights,hc as useCreatePool,La as useCreateProposal,_u as useDailyValidatorBlockStats,Mu as useDefaultRewardAllocation,AR as useEarnedStakedBeraVault,ie as useEnsoZap,vc as useExploitedTokens,is as useExploitedTokensQueryKey,zp as useGetConvertToAssets,$y as useGetPastVotes,iP as useGetVerifiedAbi,us as useGlobalLiquidityAndSwapVolume,rA as useHasVoted,IR as useHighestVaultsAPR,pP as useHistoryState,yh as useHoneyAlerts,_o as useHoneyBalances,Rh as useHoneyChartData,Ih as useHoneyGlobalData,_h as useHoneySwapState,Qo as useHoneyVaultsBalance,Yo as useIsBadCollateralAsset,Fo as useIsBasketModeEnabled,mA as useIsCanceller,Vc as useLiquidityMismatch,Rf as useLpPosition,Fu as useManagedValidatorByAccount,ju as useManagedValidatorRole,Qs as useMultipleTokenApprovalsWithSlippage,fo as useMultipleTokenInformation,go as useOnChainPoolData,Js as useOnChainPoolDataQueryKey,ln as useOnChainValidator,AA as usePollAllProposals,Ja as usePollAllProposalsQueryKey,po as usePollAllowances,io as usePollBalance,$o as usePollGlobalData,LR as usePollMarkets,Al as usePollMarketsQueryKey,ra as usePollPoolCreationRelayerApproval,IA as usePollProposal,OA as usePollProposalThreshold,UA as usePollProposalVotes,ai as usePollProposalVotesQueryKey,GA as usePollUserDelegates,pw as usePollWalletBalances,cg as usePool,Ag as usePoolEvents,wg as usePoolHistoricalData,xg as usePools,pa as usePoolsQueryKey,cP as usePrevious,ZA as useProposalFromTx,Do as useProposalSnapshot,tb as useProposalState,ib as useProposalTimelockState,ee as usePythLatestPrices,qh as usePythUpdateFee,QR as useQueuedBeraUnlock,Ab as useQuorum,Lw as useRecentTransactions,$R as useRewardTokenToBeraRate,ck as useRewardVault,no as useRewardVaultBalanceFromStakingToken,ct as useRewardVaultFromToken,hk as useRewardVaultIncentives,Bl as useRewardVaultQueryKey,Ul as useRewardVaultRewards,bt as useRewardVaults,ml as useRewardVaultsQueryKey,Sk as useStakedBeraSnapshots,kT as useStakingPoolBatch,Aw as useStakingTokenInformation,sa as useSubgraphPoolQueryKey,ap as useSubgraphUserValidators,jo as useTokenCurrentPrice,Ue as useTokenCurrentPrices,so as useTokenInformation,Ne as useTokens,Pw as useTotalSupply,Re as useTransactionStore,pp as useUserActiveValidators,fp as useUserBoostsOnValidator,bp as useUserClaimableIncentives,$T as useUserStakingPositions,Ql as useUserVaultInfo,Fl as useUserVaults,XT as useValidator,wp as useValidatorAnalytics,Ip as useValidatorCommission,Cp as useValidatorEstimatedBgtPerYear,xp as useValidatorQueuedCommission,Op as useValidatorQueuedOperatorAddress,Np as useValidatorQueuedRewardAllocation,Vp as useValidatorRewardAllocation,Gk as useVaultAddress,$k as useVaultHistory,zl as useVaultValidators,ky as useZapTransactionRequests};
|