PageSourceSearch

https://curve.convexfinance.com/_next/static/chunks/2387-0e8942b8caed4255.js

js convexfinance.com collected 2026-09-25 19:07:21 UTC 117,188 bytes, 18 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2387,4320,8491],{2629:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});let o=a(67141).createContext()},3235:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});let o=a(67141).createContext()},4360:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});let o=a(67141).createContext()},8546:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});let o=a(67141).createContext()},8734:(e,t,a)=>{"use strict";a.d(t,{Q:()=>o});let o=31536e3},10908:(e,t,a)=>{"use strict";a.d(t,{Np:()=>r,OQ:()=>i,kl:()=>n});var o=a(31804);let{LANGUAGE:r,ACTIONS:n,SPECIAL_ACTIONS:i}=a(49911)(`./Actions-${o.yl}`)},12290:(e,t,a)=>{"use strict";a.d(t,{A:()=>C});var o=a(66305),r=a(67141),n=a(58511),i=a.n(n),s=a(56474),d=a(16019),c=a(84442),l=a(82840);a(44251),a(73553),a(59825),a(11442);let u=async(e,t)=>{let{networkId:a}=t;-1!==a&&await (0,c.S)(l.G,{chainId:a})};var v=a(33027),p=a(15406);let A=({to:e,children:t,title:a=null,color:n="secondary",size:i="large"})=>{let{userWeb3:{connector:c}}=(0,r.useContext)(p.A),l=(0,r.useMemo)(()=>({networkId:v.o1[e][0],name:v.HA[e],nativeCurrency:v.iw[e],rpcUrl:v.O4[e],blockExplorerUrl:v.Sb[e].replace("/address/","")}),[e]),A=(0,r.useCallback)(e=>{e.stopPropagation(),u(c,l)},[l,c]),C=a||`Connect to the ${l.name} network`;return(0,o.jsx)(s.A,{title:C,arrow:!0,children:(0,o.jsx)("span",{children:(0,o.jsx)(d.A,{color:n,size:i,onClick:A,children:t})})})};A.propTypes={to:i().oneOf(v.Ki).isRequired,children:i().node.isRequired,title:i().string,color:i().string,size:i().string};let C=A},12425:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});let o=a(67141).createContext()},18249:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var o=a(17654),r=a.n(o),n=a(31804),i=a(67896);let s=r()(async()=>(0,i.A)(`${n.Rh.frax}/api/frax/staked-cvxfxs`),{promise:!0,maxAge:3e5})},19071:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});let o=a(67141).createContext()},21080:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});let o=a(67141).createContext()},22489:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});let o=a(67141).createContext()},22750:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});let o=a(67141).createContext()},25223:(e,t,a)=>{"use strict";a.d(t,{IL:()=>c,K:()=>l,Oz:()=>s,e:()=>u,jX:()=>d,nX:()=>v,vD:()=>i});let o=new Map,r=new Map,n=null,i=e=>o.has(e)?o.get(e):null,s=()=>null,d=(e,t)=>{if(i(e)===t)return;o.set(e,t);let a=r.get(e);a&&Array.from(a).forEach(e=>e())},c=(e,t)=>(r.has(e)||r.set(e,new Set),r.get(e).add(t),()=>{let a=r.get(e);a&&(a.delete(t),0===a.size&&r.delete(e))}),l=()=>Array.from(r.keys()),u=e=>(n=e,()=>{n===e&&(n=null)}),v=()=>{n?.()}},25964:(e,t,a)=>{"use strict";a.d(t,{A:()=>x});var o=a(67141),r=a(17654),n=a.n(r),i=a(87233),s=a(74320),d=a(80646),c=a(15406),l=a(95589);let u=[l.Ay.alcx,l.Ay.spell,l.Ay.nsbt,l.Ay.badger,l.Ay.ogn];var v=a(66629),p=a(62867);let A=n()(async(e,t,a)=>{let o=(0,v.ed)(u.map(({address:o})=>[{address:p.default.LockedCvxExtraIncentivesDistribution.address,abi:p.default.LockedCvxExtraIncentivesDistribution.abi,methodName:"claimableRewards",params:[e,o],web3Data:{account:e,library:t,chainId:a}},{address:p.default.LockedCvxExtraIncentivesDistribution2.address,abi:p.default.LockedCvxExtraIncentivesDistribution2.abi,methodName:"claimableRewards",params:[e,o],web3Data:{account:e,library:t,chainId:a}},{address:p.default.LockedCvxExtraIncentivesDistribution3.address,abi:p.default.LockedCvxExtraIncentivesDistribution3.abi,methodName:"claimableRewards",params:[e,o],web3Data:{account:e,library:t,chainId:a}}])),r=await (0,i.Ay)(o),n=(0,v.se)(r,3);return(0,v.pl)(u.map(({id:e,address:t,decimals:a},o)=>{let r=(0,s.wt)(n[o][0],a),i=(0,s.wt)(n[o][1],a),d=(0,s.wt)(n[o][2],a);return[e,{earnedOnV1:r,earnedOnV2:i,earnedOnV3:d,totalEarned:(0,v.EJ)([r,i,d]),tokenAddress:t}]}))},{promise:!0,normalizer:([e,t,a])=>e,maxAge:8e3}),C={},x=e=>{let{ethereumWeb3:{account:t,library:a,chainId:r}}=(0,o.useContext)(c.A),[n,i]=(0,d.A)({});return(0,o.useEffect)(()=>{a&&(t?A(t,a,r).then(e=>{i(e)}):i(C))},[t,e,a,r]),n}},30394:(e,t,a)=>{"use strict";a.d(t,{A:()=>F,P:()=>h});var o=a(66305),r=a(67141),n=a(58511),i=a.n(n),s=a(30393),d=a(4794),c=a(33027),l=a(49333),u=a(43547),v=a(36027),p=a(75458),A=a(69100);function C(e){return{chainId:e.id,name:e.name,ensAddress:e.contracts?.ensRegistry?.address}}function x(e){let{chain:t,transport:a}=e,o=C(t);return new v.k(a,o,{pollingInterval:1e3})}function y({chainId:e}={}){let t=(0,p.t)({chainId:e});return(0,r.useMemo)(()=>t?function(e){let{chain:t,transport:a}=e,o=C(t);
1if("fallback"===a.type){let e=a.transports.map(({value:e})=>new l.FR(e?.url,o,{pollingInterval:1e3}));return 1===e.length?e[0]:new u.S(e)}return new l.FR(a.url,o,{pollingInterval:1e3})}(t):void 0,[t])}function m({chainId:e}={}){let{data:t}=(0,A.Q)({chainId:e});return(0,r.useMemo)(()=>t?x(t):void 0,[t])}function k({chainId:e}={}){let{data:t}=(0,A.Q)({chainId:e});return(0,r.useMemo)(()=>t?function(e){let{account:t}=e,a=x(e);return new l.cP(a,t.address)}(t):void 0,[t])}let g={library:void 0,signer:void 0,connector:void 0,account:void 0,chainId:void 0,userChainId:void 0,ENSName:void 0},w=e=>{let{address:t,connector:a,chainId:o,isConnected:n}=(0,s.w)(),i=y({chainId:e}),d=n&&o===e,c=m({chainId:d?e:void 0}),l=k({chainId:d?e:void 0});return(0,r.useMemo)(()=>i||d?{library:d&&c?c:i,signer:d?l:void 0,connector:d?a:void 0,chainId:e,account:n?t:void 0,userChainId:n?o:void 0}:g,[i,c,l,a,e,t,o,n,d])};var b=a(15406);let h=e=>`${e}Web3`,f=({children:e})=>{let t=(()=>{let{address:e,connector:t,chainId:a,isConnected:o}=(0,s.w)(),{data:n}=(0,d.v)({address:e,chainId:1}),i=y({chainId:a}),c=m({chainId:a}),l=k({chainId:a});return(0,r.useMemo)(()=>o&&e?{library:c||i,signer:l,connector:t,chainId:a,account:e,userChainId:a,ENSName:n||void 0}:g,[o,e,t,a,i,c,l,n])})(),a=w(c.o1.ethereum[0]),n=w(c.o1.arbitrum[0]),i=w(c.o1.polygon[0]),l=w(c.o1.fraxtal[0]),u=(0,r.useMemo)(()=>({userWeb3:t,ethereumWeb3:a,arbitrumWeb3:n,polygonWeb3:i,fraxtalWeb3:l}),[t?.library,t?.signer,t?.connector,t?.chainId,t?.account,t?.userChainId,t?.ENSName,a?.library,a?.signer,a?.connector,a?.chainId,a?.account,a?.userChainId,n?.library,n?.signer,n?.connector,n?.chainId,n?.account,n?.userChainId,i?.library,i?.signer,i?.connector,i?.chainId,i?.account,i?.userChainId,l?.library,l?.signer,l?.connector,l?.chainId,l?.account,l?.userChainId]);return(0,o.jsx)(b.A.Provider,{value:u,children:e})};f.propTypes={children:i().node.isRequired};let F=f},32220:(e,t,a)=>{"use strict";a.r(t),a.d(t,{ACTIONS:()=>F,LANGUAGE:()=>f,SPECIAL_ACTIONS:()=>D});var o=a(27972),r=a(67141),n=a(59472),i=a(92897),s=a(74320),d=a(87233),c=a(95589),l=a(33027),u=a(65343),v=a(64904),p=a(21080),A=a(4360),C=a(37573),x=a(22750),y=a(43814),m=a(31804),k=a(81403),g=a(8734),w=a(65972),b=a(39842),h=a(15406);let f=(0,u.m)({approve:["Approve","Approving…","Approved"],convertFxn:["Convert","Converting…","Converted"],stakeCvxFxn:["Stake","Staking…","Staked"],unstakeCvxFxn:["Unstake cvxFXN","Unstaking cvxFXN…","Unstaked cvxFXN"],convertAndStakeFxn:["Convert & Stake","Converting & Staking…","Converted & Staked"],claimStakedCvxFxnRewards:["Claim","Claiming…","Claimed"],unstakeAndWithdrawDexLpToken:i.LANGUAGE.unstakeAndWithdrawDexLpToken,depositAndStakeDexLpToken:i.LANGUAGE.depositAndStakeDexLpToken,depositDexLpToken:i.LANGUAGE.depositDexLpToken,unstakeDexLpToken:i.LANGUAGE.unstakeDexLpToken,stakeWrappedDexLpToken:i.LANGUAGE.stakeWrappedDexLpToken,withdrawWrappedDexLpToken:i.LANGUAGE.withdrawWrappedDexLpToken,claimAllPoolRewards:n.LANGUAGE.claimAllPoolRewards,claimPoolRewards:n.LANGUAGE.claimPoolRewards,harvestPoolRewards:n.LANGUAGE.harvestPoolRewards,claimCvxAirdrop:n.LANGUAGE.claimCvxAirdrop,createVault:["Create vault","Creating vault…","Vault created"],stakeInVault:["Deposit","Depositing…","Deposited"],migrateToVault:["Migrate","Migrating…","Migrated"],unstakeFromVault:["Withdraw","Withdrawing…","Withdrawn"],unstakeBaseTokenFromFxusdRpVault:["Withdraw","Withdrawing…","Withdrawn"],claimVaultRewards:["Claim","Claiming…","Claimed"],claimAllVaultRewards:["Claim All","Claiming…","Claimed All"]},"LANGUAGE"),F=(0,u.m)({claimAllPoolRewards:n.ACTIONS.claimAllPoolRewards,claimPoolRewards:n.ACTIONS.claimPoolRewards,claimAllSelected:n.ACTIONS.claimAllSelected,harvestPoolRewards:n.ACTIONS.harvestPoolRewards,claimCvxAirdrop:n.ACTIONS.claimCvxAirdrop,unstakeAndWithdrawDexLpToken:i.ACTIONS.unstakeAndWithdrawDexLpToken,depositAndStakeDexLpToken:i.ACTIONS.depositAndStakeDexLpToken,depositDexLpToken:i.ACTIONS.depositDexLpToken,unstakeDexLpToken:i.ACTIONS.unstakeDexLpToken,stakeWrappedDexLpToken:i.ACTIONS.stakeWrappedDexLpToken,withdrawWrappedDexLpToken:i.ACTIONS.withdrawWrappedDexLpToken,claimDexPoolRewards:i.ACTIONS.claimDexPoolRewards,convertFxn:{balanceHook:()=>{let e=(0,r.useContext)(p.A);return e?.[c.Ay.fxn.contractKey]},inputCoin:c.Ay.fxn,needsApproving:1,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,w.A)("FxnDepositor","deposit"),a=(0,b.A)(c.Ay.fxn.contractKey,"balanceOf",v.Ay.FxnDepositor.address),o=(0,s.wt)(a,c.Ay.fxn.decimals);return{send:({amount:t,decimals:a})=>{let r=o.plus(t).gte(k.Ss);return e((0,s.DF)(t,a),r)},TXObjects:t}},actionContractKey:"FxnDepositor"},stakeCvxFxn:{balanceHook:()=>{let e=(0,r.useContext)(p.A);return e?.[c.Ay.cvxfxn.contractKey]},inputCoin:c.Ay.cvxfxn,needsApproving:1,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,w.A)("CvxFxnStaking","stake","ethereum");return{send:({amount:t,decimals:a})=>e((0,s.DF)(t,a)),TXObjects:t}},actionContractKey:"CvxFxnStaking"},convertAndStakeFxn:{balanceHook:()=>{let e=(0,r.useContext)(p.A);return e?.[c.Ay.fxn.contractKey]},inputCoin:c.Ay.fxn,needsApproving:1,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,w.A)("CvxFxnStaking","deposit","ethereum"),a=(0,b.A)(c.Ay.fxn.contractKey,"balanceOf",v.Ay.FxnDepositor.address),o=(0,s.wt)(a,c.Ay.fxn.decimals);return{send:({amount:t,decimals:a})=>{let r=o.plus(t).gte(k.Ss);return e((0,s.DF)(t,a),r)},TXObjects:t}},actionContractKey:"CvxFxnStaking",apyHook:e=>{let t=(0,r.useContext)(A.A),a=t?.CvxFxnStaking?.rewardRates.map(([e,t])=>[e,t.times(g.Q)]);return void 0!==a&&e?.areCurveTokenPricesLoaded?a.map(([t,a])=>[t,a.times(e.get(t.address)||0).div(e.get(c.Ay.cvxfxn.address)||1).times(100)]):void 0}},unstakeCvxFxn:{balanceHook:()=>{let e=(0,r.useContext)(p.A);return e?.CvxFxnStaking},tvlHook:()=>{let e=(0,r.useContext)(C.A),t=e?.CvxFxnStaking,a=(0,r.useContext)(x.A),o=a?.get(c.Ay.cvxfxn.address);return void 0!==t&&void 0!==o?t.times(o):void 0},inputCoin:c.Ay.cvxfxn,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,w.A)("CvxFxnStaking","withdraw","ethereum");return{send:({amount:t,decimals:a})=>e((0,s.DF)(t,a)),TXObjects:t}}},claimStakedCvxFxnRewards:{rewardsBalancesHook:()=>{let e=(0,r.useContext)(x.A),t=(0,r.useContext)(y.A),a=t?.CvxFxnStaking;return void 0!==a&&e?.areCurveTokenPricesLoaded?a.map(([t,a])=>{let o=e?.get(t.address);return[t,a,void 0!==o?a.times(o):void 0]}):[]},inputCoin:c.Ay.crv,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,w.A)("CvxFxnStaking","getReward"),{ethereumWeb3:{account:a}}=(0,r.useContext)(h.A);return{send:()=>e(a),TXObjects:t}}},createVault:{actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,w.A)("Booster","createVault");return{send:({extraData:t})=>e(t.actionPool.id),TXObjects:t}},actionContractKey:"Booster"},stakeInVault:{balanceHook:({actionPool:e})=>{let t=(0,r.useContext)(p.A);return"FxusdRebalancePool"===e.vaultSubtype?t?.[c.Ay.fxusd.contractKey]:"RusdRebalancePool"===e.vaultSubtype?t?.[c.Ay.rusd.contractKey]:"BtcusdRebalancePool"===e.vaultSubtype?t?.[c.Ay.btcusd.contractKey]:"CvxusdRebalancePool"===e.vaultSubtype?t?.[c.Ay.cvxusd.contractKey]:k.yV.includes(e.id)?t?.[c.Ay.fxbase.contractKey]:t?.[e.stakingTokenContractKey]},getInputCoin:({actionPool:e})=>({address:e.stakingTokenAddress,contractKey:e.stakingTokenContractKey,decimals:e.stakingTokenDecimals,..."FxusdRebalancePool"===e.vaultSubtype?{address:c.Ay.fxusd.address,contractKey:c.Ay.fxusd.contractKey,decimals:c.Ay.fxusd.decimals,name:c.Ay.fxusd.name,symbol:c.Ay.fxusd.symbol,blockchainId:"ethereum"}:"RusdRebalancePool"===e.vaultSubtype?{address:c.Ay.rusd.address,contractKey:c.Ay.rusd.contractKey,decimals:c.Ay.rusd.decimals,name:c.Ay.rusd.name,symbol:c.Ay.rusd.symbol,blockchainId:"ethereum"}:"BtcusdRebalancePool"===e.vaultSubtype?{address:c.Ay.btcusd.address,contractKey:c.Ay.btcusd.contractKey,decimals:c.Ay.btcusd.decimals,name:c.Ay.btcusd.name,symbol:c.Ay.btcusd.symbol,blockchainId:"ethereum"}:"CvxusdRebalancePool"===e.vaultSubtype?{address:c.Ay.cvxusd.address,contractKey:c.Ay.cvxusd.contractKey,decimals:c.Ay.cvxusd.decimals,name:c.Ay.cvxusd.name,symbol:c.Ay.cvxusd.symbol,blockchainId:"ethereum"}:k.yV.includes(e.id)?{address:c.Ay.fxbase.address,contractKey:c.Ay.fxbase.contractKey,decimals:c.Ay.fxbase.decimals,name:c.Ay.fxbase.name,symbol:c.Ay.fxbase.symbol,blockchainId:"ethereum"}:"FtokenRebalancePool"===e.vaultSubtype?{name:e.stakingTokenSymbol,symbol
1:e.stakingTokenSymbol,blockchainId:"ethereum"}:{underlyingCoins:e.underlyingCurvePool.coins,name:"LP",symbol:"LP"}}),needsApproving:1,actionFactoryHook:({extraData:{vault:e,actionPool:{vaultSubtype:t}}})=>{let{send:a,TXObjects:o}=(0,w.A)(e.contractKey,"FxusdRebalancePool"===t||"RusdRebalancePool"===t||"BtcusdRebalancePool"===t||"CvxusdRebalancePool"===t?"depositFxUsd":"deposit");return{send:({amount:e,decimals:t})=>a((0,s.DF)(e,t)),TXObjects:o}},getActionContractKey:({vault:e})=>e.contractKey},migrateToVault:{balanceHook:({actionPool:e})=>{let t=(0,r.useContext)(p.A);return t?.[e.gaugeContractKey]},getInputCoin:({actionPool:e})=>({address:e.stakingTokenAddress,contractKey:e.stakingTokenContractKey,decimals:e.stakingTokenDecimals,name:"Gauge Deposit",symbol:"Gauge Deposit"}),needsApproving:0,actionFactoryHook:({extraData:{actionPool:e,vault:t,gaugeTokensBalance:a}})=>{let{send:o,TXObjects:r}=(0,w.A)(e.gaugeContractKey,"transfer");return{send:()=>o(t.address,(0,s.DF)(a.toFixed(),18)),TXObjects:r}},getActionContractKey:({actionPool:e})=>e.gaugeContractKey},unstakeFromVault:{balanceHook:({vault:e})=>e.liquidityTotal,getInputCoin:({actionPool:e})=>({address:e.stakingTokenAddress,contractKey:e.stakingTokenContractKey,decimals:e.stakingTokenDecimals,..."FxusdRebalancePool"===e.vaultSubtype?{address:c.Ay.fxusd.address,contractKey:c.Ay.fxusd.contractKey,decimals:c.Ay.fxusd.decimals,name:c.Ay.fxusd.name,symbol:c.Ay.fxusd.symbol,blockchainId:"ethereum"}:"RusdRebalancePool"===e.vaultSubtype?{address:c.Ay.rusd.address,contractKey:c.Ay.rusd.contractKey,decimals:c.Ay.rusd.decimals,name:c.Ay.rusd.name,symbol:c.Ay.rusd.symbol,blockchainId:"ethereum"}:"BtcusdRebalancePool"===e.vaultSubtype?{address:c.Ay.btcusd.address,contractKey:c.Ay.btcusd.contractKey,decimals:c.Ay.btcusd.decimals,name:c.Ay.btcusd.name,symbol:c.Ay.btcusd.symbol,blockchainId:"ethereum"}:"CvxusdRebalancePool"===e.vaultSubtype?{address:c.Ay.cvxusd.address,contractKey:c.Ay.cvxusd.contractKey,decimals:c.Ay.cvxusd.decimals,name:c.Ay.cvxusd.name,symbol:c.Ay.cvxusd.symbol,blockchainId:"ethereum"}:k.yV.includes(e.id)?{address:c.Ay.fxbase.address,contractKey:c.Ay.fxbase.contractKey,decimals:c.Ay.fxbase.decimals,name:c.Ay.fxbase.name,symbol:c.Ay.fxbase.symbol,blockchainId:"ethereum"}:"FtokenRebalancePool"===e.vaultSubtype?{name:e.stakingTokenSymbol,symbol:e.stakingTokenSymbol,blockchainId:"ethereum"}:{underlyingCoins:e.underlyingCurvePool.coins,name:"LP",symbol:"LP"}}),actionFactoryHook:({extraData:{vault:e,actionPool:{vaultSubtype:t}}})=>{let{send:a,TXObjects:o}=(0,w.A)(e.contractKey,"FxusdRebalancePool"===t||"RusdRebalancePool"===t||"BtcusdRebalancePool"===t||"CvxusdRebalancePool"===t?"withdrawFxUsd":"withdraw");return{send:({amount:e,decimals:t})=>a((0,s.DF)(e,t)),TXObjects:o}},getActionContractKey:({vault:e})=>e.contractKey},unstakeBaseTokenFromFxusdRpVault:{balanceHook:({vault:e})=>e.liquidityTotal,getInputCoin:({actionPool:e})=>"FxusdRebalancePool"===e.vaultSubtype?{address:c.Ay.fxusd.address,contractKey:c.Ay.fxusd.contractKey,decimals:c.Ay.fxusd.decimals,name:c.Ay.fxusd.name,symbol:c.Ay.fxusd.symbol,blockchainId:"ethereum"}:"RusdRebalancePool"===e.vaultSubtype?{address:c.Ay.rusd.address,contractKey:c.Ay.rusd.contractKey,decimals:c.Ay.rusd.decimals,name:c.Ay.rusd.name,symbol:c.Ay.rusd.symbol,blockchainId:"ethereum"}:"CvxusdRebalancePool"===e.vaultSubtype?{address:c.Ay.cvxusd.address,contractKey:c.Ay.cvxusd.contractKey,decimals:c.Ay.cvxusd.decimals,name:c.Ay.cvxusd.name,symbol:c.Ay.cvxusd.symbol,blockchainId:"ethereum"}:{address:c.Ay.btcusd.address,contractKey:c.Ay.btcusd.contractKey,decimals:c.Ay.btcusd.decimals,name:c.Ay.btcusd.name,symbol:c.Ay.btcusd.symbol,blockchainId:"ethereum"},actionFactoryHook:({extraData:{vault:e,actionPool:{vaultSubtype:t}}})=>{let{send:a,TXObjects:r}=(0,w.A)(e.contractKey,"withdrawAsBase");return{send:({amount:e,decimals:t})=>a((0,s.DF)(e,t),o.fxn.facet,o.fxn.converter),TXObjects:r}},getActionContractKey:({vault:e})=>e.contractKey},claimVaultRewards:{actionFactoryHook:({extraData:{vault:e}})=>{let{send:t,TXObjects:a}=(0,w.A)(e.contractKey,"getReward");return{send:()=>t(),TXObjects:a}}},claimAllVaultRewards:{actionFactoryHook:({extraData:{nonEmptyVaults:e}})=>{let{ethereumWeb3:{account:t,library:a,chainId:o}}=(0,r.useContext)(h.A),{calls:n}=(0,d.Y5)(e.map(({contractKey:e})=>({address:v.Ay[e].address,abi:v.Ay[e].abi,methodName:"getReward",web3Data:{account:t,library:a,chainId:o}}))),{send:i,TXObjects:s}=(0,w.A)(l.ry.ethereum,"aggregate");return{send:()=>{i(n)},TXObjects:s}}}},"ACTIONS"),D=(0,u.m)({approve:{actionFactoryHook:(e,t,a=!1)=>{let{send:o,TXObjects:r}
1=(0,w.A)(e,"approve");return{send:()=>o(v.Ay[t].address,a?0:l.V9.toFixed()),TXObjects:r}}}},"SPECIAL_ACTIONS");if(m.HL){for(let[e,t]of Array.from(Object.entries(F)))if(t.needsApproving&&!t.actionContractKey&&!t.getActionContractKey)throw Error(`Missing \`actionContractKey\` prop (or alternate \`getActionContractKey\` prop) on action with needsApproving > 0 [${e}]`)}},37573:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});let o=a(67141).createContext()},38032:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});var o=a(66305);a(67141);var r=a(58511),n=a.n(r),i=a(16019),s=a(10908);let d=({actionType:e,extraData:t,changeCopyIfWrongNetwork:a,ConfirmationModal:r,...n})=>(0,o.jsx)(i.A,{color:"primary",size:"large",...n,disabled:!0,children:n.customCopy?.[0]||s.Np[e][0]});d.propTypes={actionType:n().string.isRequired,extraData:n().object,changeCopyIfWrongNetwork:n().bool};let c=d},38498:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});let o=a(67141).createContext()},39842:(e,t,a)=>{"use strict";a.d(t,{A:()=>p,S:()=>v});var o=a(67141),r=a(87233),n=a(64904),i=a(80646),s=a(15406),d=a(25223),c=a(30394);let l={network:"ethereum",SILENCE_ANY_ERROR:!1,returnMetaData:!1},u,v=(e,t,a,...v)=>{a={...l,...a};let{[(0,c.P)(a.network)]:{account:p,library:A,chainId:C}}=(0,o.useContext)(s.A),{network:x}=a,y=(0,o.useCallback)(e=>(0,d.IL)(x,e),[x]),m=(0,o.useCallback)(()=>(0,d.vD)(x),[x]),k=(0,o.useSyncExternalStore)(y,m,d.Oz),[g,w]=(0,i.A)(a.returnMetaData?{data:u,metaData:{account:p,params:v}}:u),b="ethereum"===a.network?n.Ay[e]:n.Ay[a.network][e];return(0,o.useEffect)(()=>{if((b||(0,n.zE)())&&A){let o=!1;if(!b)throw Error(`contract metadata not found for "${e}"`);let n=(0,r.GP)(b.address,b.abi,p,A,C);return v.includes(null)&&console.log({params:v,contractName:e,methodName:t}),n[t]||console.log({params:v,contractName:e,methodName:t}),n[t](...v).then(e=>{o||(a.returnMetaData?w({data:e,metaData:{account:p,params:v}}):w(e))}).catch(r=>{a.SILENCE_ANY_ERROR||(console.error(`Caught error in useCacheCall (“${r}”), see call details below ↓`),console.log({contract:n,contractName:e,methodName:t,params:v})),o||(a.returnMetaData?w({data:null,metaData:{account:p,params:v}}):w(null))}),()=>{o=!0}}},[p,A,A?.provider,A?.provider?.selectedAddress,A?.provider?.chainId,C,k,JSON.stringify(v),(0,n.zE)()]),g},p=(e,t,...a)=>v(e,t,{},...a)},43814:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});let o=a(67141).createContext()},44251:(e,t,a)=>{"use strict";a.d(t,{A:()=>i});var o=a(36027),r=a(49333),n=a(33027);let i=Number(window.ethereum?.chainId||0)===n.o1.arbitrum[0]?new o.k(window.ethereum):new r.FR(n.ax.arbitrum[0],void 0,{staticNetwork:!0})},46591:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});let o=a(67141).createContext()},48491:(e,t,a)=>{"use strict";a.r(t),a.d(t,{areLendingVaultsLoaded:()=>u,arePoolsLoaded:()=>m,default:()=>h,findLendingVaultForGaugeAddress:()=>w,findLendingVaultForLpTokenAddress:()=>b,findPoolForGaugeAddress:()=>C,findPoolForLpTokenAddress:()=>x,getCurveLendingVaults:()=>k,getCurvePools:()=>y,getLendingVaultByConvexPoolId:()=>g,getPoolByConvexPoolId:()=>A,getPoolById:()=>p,lendingVaults:()=>v});var o=a(31804),r=a(81403),n=a(17654),i=a.n(n),s=a(55969),d=a(67896);let c=!1,l=[];setTimeout(async()=>{let[e,t]=await Promise.all([(await (0,d.A)(`${o.Rh.curve}/api/curve/lending-vaults`)).lendingVaults.map(e=>({...e,blockchainId:"ethereum"})),(await (0,d.A)(`${o.Rh.curve}/api/curve/lending-vaults-fraxtal`)).lendingVaults.map(e=>({...e,blockchainId:"fraxtal"}))]),a=[...(0,s.Ph)(e),...(0,s.Ph)(t)].map(e=>({...e,...{isLendingVault:!0,get name(){return`${e.assets.borrowed.symbol} (${e.assets.collateral.symbol} collateral)`},get lendingVaultUrl(){return e.lendingVaultUrls.deposit},get isKilled(){return e.isGaugeKilled||e.convexPoolData.shutdown},get lpTokenContractKey(){return`${e.blockchainId}${e.convexPoolData.id}LendingVaultLpToken`},get lpTokenInfo(){return{symbol:"LP",name:`${e.assets.borrowed.symbol}(${e.assets.collateral.symbol}) LP`,lendingVaultAssets:e.assets,wrapperCoinId:"crv"}},get wrappedLpTokenContractKey(){return`${e.blockchainId}${e.convexPoolData.id}LendingVaultWrappedLpToken`},get rewardContractKey(){return`${e.blockchainId}${e.convexPoolData.id}LendingVaultReward`},get usesHarvester(){return"ethereum"===e.blockchainId},get usesDepositToken(){return"ethereum"===e.blockchainId},get key(){return(0,s.Ye)(e.blockchainId,e.address,e.convexPoolData.id)},get curveKey(){return(0,s.dD)(e.blockchainId,e.address)}}}));l.push(...a),c=!0},0);let u=()=>c,v=l,p=(e,t="ethereum")=>s.Ay.find(a=>e===a.id&&a.blockchainId===t)||s.Ay.find(a=>e===a.idAlias&&a.blockchainId===t),A=(e,t="ethereum")=>s.Ay.find(a=>e===a.convexPoolData.id&&a.blockchainId===t),C=(e,t="ethereum")=>{let a=e?.toLowerCase();return s.Ay.find(e=>e?.gaugeAddress?.toLowerCase()===a&&e.blockchainId===t)},x=i()((e,t="ethereum",a=!1)=>{let o=e.toLowerCase(),r=s.Ay.find(e=>(e.lpTokenAddress||e.address).toLowerCase()===o&&e.blockchainId===t);if(!r&&!a)throw Error(`Curve pool couldn’t be found for lp token "${e}", likely due to Curve pools data not being loaded yet.`);return r},{length:3,max:20}),y=i()(e=>{if(o.HL&&!r.Ek.includes(e))throw Error("Invalid blockchainId used when calling getCurvePools, must be a valid CURVE_BLOCKCHAIN_IDS");return s.Ay.filter(t=>t.blockchainId===e)}
1,{normalizer:([e])=>`${s.Ay.length}-${e}`,max:20}),m=()=>s.Ay?.length>0,k=i()(e=>{if(o.HL&&!r.Ek.includes(e))throw Error("Invalid blockchainId used when calling getCurveLendingVaults, must be a valid CURVE_BLOCKCHAIN_IDS");return v.filter(t=>t.blockchainId===e)},{normalizer:([e])=>`${v.length}-${e}`,max:20}),g=(e,t="ethereum")=>v.find(a=>e===a.convexPoolData.id&&a.blockchainId===t),w=(e,t="ethereum")=>{let a=e?.toLowerCase();return v.find(e=>e?.gaugeAddress?.toLowerCase()===a&&e.blockchainId===t)},b=i()((e,t="ethereum",a=!1)=>{let o=e.toLowerCase(),r=v.find(e=>e.address.toLowerCase()===o&&e.blockchainId===t);if(!r&&!a)throw Error(`Curve lending vault couldn’t be found for lp token "${e}", likely due to Curve lending vault data not being loaded yet.`);return r},{length:3,max:20}),h=s.Ay},49685:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});let o=a(67141).createContext()},49911:(e,t,a)=>{var o={"./Actions-curve":59472,"./Actions-curve.js":59472,"./Actions-frax":92897,"./Actions-frax.js":92897,"./Actions-fxp":32220,"./Actions-fxp.js":32220,"./Actions-prisma":70110,"./Actions-prisma.js":70110,"./Actions-root":65110,"./Actions-root.js":65110};function r(e){return a(n(e))}function n(e){if(!a.o(o,e)){var t=Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return o[e]}r.keys=function(){return Object.keys(o)},r.resolve=n,e.exports=r,r.id=49911},52387:(e,t,a)=>{"use strict";a.d(t,{A:()=>g});var o=a(66305),r=a(67141),n=a(15406),i=a(58511),s=a.n(i),d=a(16019),c=a(56474),l=a(91139),u=a(10908);let v=e=>{let t,a,{ConfirmationModal:n,tooltip:i,...s}=e,{type:p="erc20",disabled:A=!1,onSuccess:C=()=>{},onError:x=()=>{},extraData:y={},actionType:m,customCopy:k,customColor:g,value:w,selectedTokenId:b,amount:h,amounts:f,useMaxValue:F,completed:D,loading:S,...P}=s,[K,T]=(0,r.useState)(),[R,L]=(0,r.useState)(!1),I=void 0!==n,{actionFactoryHook:H,nftActionFactoryHook:W,...V}=u.kl[m],E="text"===p||"custom"===p?{}:V.inputCoin||V.getInputCoin?.(y);"erc20"===p?{send:t,TXObjects:a}=H({useMaxValue:F,extraData:y}):"text"===p||"custom"===p?{send:t,TXObjects:a}=H({extraData:y}):{send:t,TXObjects:a}=W({tokenId:b,extraData:y});let N=a.length>0?a[a.length-1]:null,O=N?.status;void 0!==O&&O!==K&&T(O),(0,r.useEffect)(()=>{"success"===K&&C(),"error"===K&&x()},[K]);let U="pending"===K,j=void 0!==D?D:"success"===K,G=()=>{let e="erc20"===p?{amount:h,amounts:f,decimals:E?.decimals,useMaxValue:F}:"text"===p?{value:w}:"univ3"===p?{tokenId:b}:{};t({...e,extraData:y})},M=(0,r.useCallback)(e=>{e.preventDefault(),I?L(!0):G()},[I,L,G]),$=(0,r.useCallback)(()=>{L(!1)},[L]),B=j?2:+!!U,_=void 0!==S?S:U,X=(0,o.jsxs)(d.A,{color:g??"primary",size:"large",disabled:A||U||j,completed:j,loading:_,onClick:M,...P,children:[_&&(0,o.jsx)(l.A,{}),k?.[B]||u.Np[m][B]]});return(0,o.jsxs)(o.Fragment,{children:[void 0===i?X:(0,o.jsx)(c.A,{arrow:!0,title:R?"":i,children:(0,o.jsx)("span",{children:X})}),I&&R&&(0,o.jsx)(n,{amount:h,actionType:m,handleClose:$,renderActionButton:({customModalCopy:e,customColor:t,size:a})=>(0,o.jsx)(v,{...s,...e?{customCopy:e}:{},...t?{customColor:t}:{},...a?{size:a}:{}})})]})};v.propTypes={type:s().string,tooltip:s().string,actionType:s().string.isRequired,value:s().string,selectedTokenId:s().string,amount:s().string,amounts:s().arrayOf(s().string),useMaxValue:s().bool,disabled:s().bool,completed:s().bool,loading:s().bool,onSuccess:s().func,onError:s().func,customCopy:s().arrayOf(s().node),customColor:s().string,ConfirmationModal:s().func,extraData:s().shape({actionPool:s().object})};var p=a(38032),A=a(96295),C=a.n(A),x=a(12290),y=a(33027);let m=({actionType:e,network:t,changeCopyIfWrongNetwork:a,ConfirmationModal:r,...n})=>{let i=(0,o.jsxs)(d.A,{color:"primary",size:"large",...n,disabled:!0,children:[n.loading&&(0,o.jsx)(l.A,{}),(0,o.jsx)("span",{children:n?.customCopy?.[0]?n.customCopy[0]:"Switch Network"})]});return a?(0,o.jsxs)("span",{className:"jsx-586293fa47c1bd59 button-container",children:[(0,o.jsxs)(x.A,{size:"large",to:t,title:`Please connect to the ${y.HA[t]} network in order to use this feature`,...n,children:[n.loading&&(0,o.jsx)(l.A,{}),(0,o.jsx)("span",{className:"jsx-586293fa47c1bd59",children:"Change Network"}),(0,o.jsxs)("span",{className:"jsx-586293fa47c1bd59",children:["Connect to ",y.HA[t]]})]}),(0,o.jsx)(C(),{id:"586293fa47c1bd59",children:".button-container.jsx-586293fa47c1bd59 .MuiButton-sizeLarge{padding-left:12px;padding-right:12px}.button-container.jsx-586293fa47c1bd59 .MuiButton-root{display:block}.button-container.jsx-586293fa47c1bd59 .MuiButton-root span:last-child{display:block;font-size:.8em;font-weight:normal;line-height:1em;position:relative;top:-4px;white-space:nowrap}"})]}):i};m.propTypes={actionType:s().string.isRequired,network:s().string.isRequired,changeCopyIfWrongNetwork:s().bool.isRequired};let k=({network:e="ethereum",changeCopyIfWrongNetwork:t=!0,extraInitCondition:a=!0,tooltip:i,...s})=>{let{ethereumWeb3:{library:d,userChainId:c}}=(0,r.useContext)(n.A),l=!!d,u=y.o1[e],A=l&&void 0!==c&&u.includes(c)&&a,C=A?v:l&&void 0!==c&&a?m:p.A;return(0,o.jsx)(C,{...s,...A?{tooltip:i}:{},network:e,changeCopyIfWrongNetwork:t})};k.propTypes={tooltip:s().string,network:s().string,changeCopyIfWrongNetwork:s().bool,extraInitCondition:s().bool};let g=k},53007:(e,t,a)=>{"use strict";a.d(t,{A:()=>b,a:()=>w});var o=a(67141),r=a(17654),n=a.n(r),i=a(37851),s=a(68056),d=a.n(s),c=a(66629),l=a(87233),u=a(74320),v=a(33027),p=a(95589),A=a(48491),C=a(48514),x=a(41732),y=a(5901),m=a(80646),k=a(15406),g=a(96522);let w=n()(async(e,t,a,o,r)=>{await (0,x.Kc)(()=>(0,A.arePoolsLoaded)()&&(0,C.isContractMetadataLoaded)());let n=(0,A.getCurvePools)("ethereum"),s=[{address:C.default.CvxCrvWrapper.address,abi:C.default.CvxCrvWrapper.abi,methodName:"userRewardWeight",params:[e||v.cF],metaData:{dataType:"userRewardWeight"},web3Data:{account:e,library:t,chainId:a}},{address:C.default.CvxCrvWrapper.address,abi:C.default.CvxCrvWrapper.abi,methodName:"totalSupply",metaData:{dataType:"totalSupply"},web3Data:{account:e,library:t,chainId:a}},{address:C.default.CvxCrvWrapper.address,abi:C.default.CvxCrvWrapper.abi,methodName:"supplyWeight",metaData:{dataType:"supplyWeight"},web3Data:{account:e,library:t,chainId:a}},{address:C.default.CvxCrvUtilities.address,abi:C.default.CvxCrvUtilities.abi,methodName:"accountRewardRates",params:[e||v.cF],metaData:{dataType:"userRewardRates"},web3Data:{account:e,library:t,chainId:a}},{address:C.default.CvxCrvUtilities.address,abi:C.default.CvxCrvUtilities.abi,methodName:"accountExtraRewardRates",params:[e||v.cF],metaData:{dataType:"userExtraRewardRates"},web3Data:{account:e,library:t,chainId:a}},{address:C.default.CvxCrvUtilities.address,abi:C.default.CvxCrvUtilities.abi,methodName:"mainRewardRates",metaData:{dataType:"mainRewardRates"},web3Data:{account:e,library:t,chainId:a}},{address:C.default.CvxCrvUtilities.address,abi:C.default.CvxCrvUtilities.abi,methodName:"extraRewardRates",metaData:{dataType:"extraRewardRates"},web3Data:{account:e,library:t,chainId:a}}],m=await (0,l.Ay)(s),k=d()(m,({metaData:{dataType:e}})=>e),w=k.userRewardWeight[0].data,b={groups:[...k.userRewardRates[0].data.groups,...k.userExtraRewardRates[0].data.groups],rates:[...k.userRewardRates[0].data.rates,...k.userExtraRewardRates[0].data.rates],tokens:[...k.userRewardRates[0].data.tokens,...k.userExtraRewardRates[0].data.tokens]},[h,f]=[{groups:[...k.mainRewardRates[0].data.groups,...k.extraRewardRates[0].data.groups],rates:[...k.mainRewardRates[0].data.rates,...k.extraRewardRates[0].data.rates],tokens:[...k.mainRewardRates[0].data.tokens,...k.extraRewardRates[0].data.tokens]},b].map(e=>e.tokens.reduce((t,a,o)=>
1{if((0,y.lc)(a)===(0,y.lc)(p.Ay["3crv"].address))return t;let r=t.tokens.indexOf(a);return -1!==r?t.rates[r]=(0,u.tT)(t.rates[r]).plus((0,u.tT)(e.rates[o])).toString():(t.groups.push(e.groups[o]),t.rates.push(e.rates[o]),t.tokens.push(e.tokens[o])),t},{groups:[],rates:[],tokens:[]})),F=o?.get(p.Ay.cvxcrv.address),[D,S]=await (0,x.TO)([h,f],async e=>{let t=await (0,g.A)(e.tokens);return e.tokens.map((a,i)=>{let s=t[(0,y.lc)(a)],d=(0,u.wt)(e.rates[i],s.decimals),c=o?.get(s.address)||r?.[n.find(({address:e,lpTokenAddress:t})=>(t||e).toLowerCase()===s.address.toLowerCase())?.address],l=d.times(c).div(F).times(31536e3).times(100);return{coin:s,rateBN:d,apr:l,group:(0,u.tT)(e.groups[i])}})}),P=[(0,i.A)(100).minus((0,u.tT)(w).div(100)),(0,u.tT)(w).div(100)],K=(0,c.EJ)(S.map(({apr:e})=>e)),T=(0,c.EJ)(D.filter(({group:e})=>e.eq(0)).map(({apr:e})=>e)),R=(0,c.EJ)(D.filter(({group:e})=>e.eq(1)).map(({apr:e})=>e));return{userRewardWeights:P,mainRewards:D,userRewards:S,userTotalApr:K,maxTotalGroup0Apr:T,maxTotalGroup1Apr:R}}
1,{promise:!0,maxAge:8e3,normalizer:([e,t,a,o,r])=>`${e}-${o?.areCurveTokenPricesLoaded}-${typeof r}`}),b=(e,t,a)=>{let[r,n]=(0,m.A)(),{ethereumWeb3:{account:i,library:s,chainId:d}}=(0,o.useContext)(k.A);return(0,o.useEffect)(()=>{s&&e?.areCurveTokenPricesLoaded&&void 0!==a&&(0,A.arePoolsLoaded)()&&(0,C.isContractMetadataLoaded)()&&w(i,s,d,e,a).then(e=>{n(e)})},[i,t,s,d,e?.areCurveTokenPricesLoaded,typeof a]),r}},55951:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});let o=a(67141).createContext()},59472:(e,t,a)=>{"use strict";a.r(t),a.d(t,{ACTIONS:()=>q,LANGUAGE:()=>$,SPECIAL_ACTIONS:()=>Q});var o=a(37851),r=a(17654),n=a.n(r),i=a(67141),s=a(74320),d=a(87233),c=a(95589),l=a(33027),u=a(65343),v=a(66629),p=a(5901),A=a(34668),C=a(64904),x=a(62867),y=a(21080),m=a(19071),k=a(46591),g=a(2629),w=a(12425),b=a(49685),h=a(22489),f=a(37573),F=a(60920),D=a(43814),S=a(78989),P=a(22750),K=a(4360),T=a(3235),R=a(31804),L=a(81403),I=a(8734),H=a(78273),W=a(89619),V=a(64107),E=a(15406),N=a(39842),O=a(21576),U=a(25964);a(53007);var j=a(65972),G=a(30394),M=a(84260);let $=(0,u.m)({approve:["Approve","Approving…","Approved"],convertAndStakeCrvOld:["Convert & Stake","Converting & Staking…","Converted & Staked"],convertAndStakeCrv:["Convert & Stake","Converting & Staking…","Converted & Staked"],convertCrv:["Convert","Converting…","Converted"],stakeCvxCrv:["Stake","Staking…","Staked"],setStakedCvxCrvRewardsWeight:["Update Weights","Updating…","Updated Weights"],unstakeCrvOld:["Unstake cvxCRV","Unstaking cvxCRV…","Unstaked cvxCRV"],unstakeCrv:["Unstake cvxCRV","Unstaking cvxCRV…","Unstaked cvxCRV"],depositAndStakeLpToken:["Deposit & Stake","Depositing & Staking…","Deposited & Staked"],depositLpToken:["Deposit","Depositing…","Deposited"],stakeWrappedLpToken:["Stake","Staking…","Staked"],unstakeAndWithdrawLpToken:["Unstake & Withdraw","Unstaking & Withdrawing…","Unstaked & Withdrawn"],unstakeLpToken:["Unstake","Unstaking…","Unstaked"],withdrawWrappedLpToken:["Withdraw","Withdrawing…","Withdrawn"],claimPoolRewards:["Claim","Claiming…","Claimed"],claimAbraPoolRewards:["Claim","Claiming…","Claimed"],claimDexPoolRewards1:["Claim","Claiming…","Claimed"],claimDexCvxCrvCrvPoolCvxRewards:["Claim","Claiming…","Claimed"],claimAllPoolRewards:["Claim All","Claiming…","Claimed All"],claimAllAbraPoolRewards:["Claim All","Claiming…","Claimed All"],claimAllFraxlendWrapperRewards:["Claim All","Claiming…","Claimed All"],claimAllSiloWrapperRewards:["Claim All","Claiming…","Claimed All"],claimAllMorphoWrapperRewards:["Claim All","Claiming…","Claimed All"],claimStakedCvxCrvRewardsOld:["Claim","Claiming…","Claimed"],claimStakedCvxCrvRewards:["Claim","Claiming…","Claimed"],claimStakedCvxRewards:["Claim","Claiming…","Claimed"],claimCvxAirdrop:["Claim airdropped CVX","Claiming…","Claimed airdropped CVX"],stakeCvx:["Stake CVX","Staking CVX…","Staked CVX"],unstakeCvx:["Unstake CVX","Unstaking CVX…","Unstaked CVX"],stakeDexLpToken1:["Stake","Staking…","Staked"],unstakeDexLpToken0:["Unstake","Unstaking…","Unstaked"],unstakeDexLpToken1:["Unstake","Unstaking…","Unstaked"],harvestPoolRewards:["Harvest pool rewards","Harvesting…","Harvested pool rewards"],deployConvexPool:["Deploy","Deploying…","Deployed"]},"LANGUAGE"),B=({ClaimCvx:e=!1,ClaimCvxAndStake:t=!1,ClaimCvxCrv:a=!1,ClaimLockedCvx:o=!1,ClaimLockedCvxStake:r=!1,LockCrvDeposit:n=!1,UseAllWalletFunds:i=!1,LockCvx:s=!1}={})=>[1*!!e,2*!!t,4*!!a,8*!!o,16*!!r,32*!!n,64*!!i,128*!!s].reduce((e,t)=>e|t,0),_={ethereum:y.A,arbitrum:m.A,polygon:g.A,fraxtal:b.A},X={arbitrum:k.A,polygon:w.A,fraxtal:h.A},q=(0,u.m)({claimPoolRewards:{rewardsBalancesHook:(e,t,a,o,r,n,i,s,d)=>{let l=e?.get(c.Ay.crv.address),u=e?.get(c.Ay.cvx.address),p={ethereum:t,arbitrum:a,polygon:o,fraxtal:r},A=[...s,...d];return(0,v.pl)(A.map(t=>{if("ethereum"===t.blockchainId){let e=p[t.blockchainId]?.[t.rewardContractKey],a=void 0!==e&&void 0!==l?e.times(l):void 0,o=i?.earned?.[t.rewardContractKey],r=(0,V.A)(n,e),s=void 0!==r&&void 0!==u?r.times(u):void 0;return[t.key,[...void 0===e||void 0===a?[]:[[c.Ay.crv,e,a]],...void 0===o?[]:o.filter(({earnedBN:e,earnedUsdValueBN:t})=>void 0!==e&&void 0!==t).map(({coin:e,earnedBN:t,earnedUsdValueBN:a})=>
1[e,t,a]),...void 0===r||void 0===s?[]:[[c.Ay.cvx,r,s]]]]}{let a=p[t.blockchainId]?.[t.rewardContractKey];return[t.key,void 0!==a?a.map(([a,o])=>{let r=e?.get(a.address,t.blockchainId),n=void 0!==r?o.times(r):void 0;return[a,o,n]}):[]]}}))},actionFactoryHook:({extraData:{actionPool:e}})=>{let{send:t,TXObjects:a}=(0,j.A)(e.rewardContractKey,"getReward",e.blockchainId),{[(0,G.P)(e.blockchainId)]:{account:o}}=(0,i.useContext)(E.A);return{send:()=>t(...e.usesHarvester?[o,!0]:[o]),TXObjects:a}}},claimAllPoolRewards:{actionFactoryHook:({extraData:{network:e,nonEmptyPools:t}})=>{if("ethereum"===e){let{send:e,TXObjects:t}=(0,j.A)("ClaimZap","claimRewards"),a=B();return{send:({extraData:{rewardContracts:t=[]}})=>e(t,[],[],[],0,0,0,0,a),TXObjects:t}}{let{[(0,G.P)(e)]:{account:a,library:o,chainId:r}}=(0,i.useContext)(E.A),n="ethereum"===e?C.Ay:C.Ay[e],{calls:s}=(0,d.Y5)(t.map(({rewardContractKey:e})=>({address:n[e].address,abi:n[e].abi,methodName:"getReward",params:[a],web3Data:{account:a,library:o,chainId:r}}))),{send:c,TXObjects:u}=(0,j.A)(l.ry[e],"aggregate",e);return{send:()=>{c(s)},TXObjects:u}}}},claimAllAbraPoolRewards:{actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,j.A)("ClaimZap","claimRewards"),a=B();return{send:({extraData:{rewardContracts:t=[]}})=>e([],t,[],[],0,0,0,0,a),TXObjects:t}}},claimAllFraxlendWrapperRewards:{actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,j.A)("ClaimZap","claimRewards"),a=B();return{send:({extraData:{rewardContracts:t=[]}})=>e([],t,[],[],0,0,0,0,a),TXObjects:t}}},claimAllSiloWrapperRewards:{actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,j.A)("ClaimZap","claimRewards"),a=B();return{send:({extraData:{rewardContracts:t=[]}})=>e([],t,[],[],0,0,0,0,a),TXObjects:t}}},claimAllMorphoWrapperRewards:{actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,j.A)("ClaimZap","claimRewards"),a=B();return{send:({extraData:{rewardContracts:t=[]}})=>e([],t,[],[],0,0,0,0,a),TXObjects:t}}},claimAllSelected:{getInputCoin:({stakeCrv:e,stakeCvx:t},a)=>e&&t&&0===a?c.Ay.crv:e&&t&&1===a?c.Ay.cvx:e?c.Ay.crv:t?c.Ay.cvx:void 0,getNeedsApproving:({stakeCrv:e,stakeCvx:t})=>e&&t?2:e||t?1:0,actionContractKey:"ClaimZap",actionFactoryHook:({extraData:{claimAllChoices:e,stakeCrv:t}})=>{let{send:a,TXObjects:r}=(0,j.A)("ClaimZap","claimRewards"),{blockNumber:n}=(0,i.useContext)(W.A),d=(0,U.A)(n),u=[...e.pools,...e.lendingVaults],p=[...e.fxs?[H.system.cvxFxsStaking]:[],...e.fpis?[H.system.cvxFpisStaking]:[],...e.abraPools,...e.fraxLendWrappers,...e.siloWrappers,...e.morphoWrappers],A=e.crv,y=(A||u.length>0||p.length>0)&&t,m=y?(0,v.EJ)([u.length>0||p.length>0?e.lpClaimableCrv.plus(e.curvelendLpClaimableCrv):(0,o.A)(0),A?e.cvxCrvClaimableCrv:(0,o.A)(0)]):(0,o.A)(0),k=(0,M.A)(c.Ay.crv,c.Ay.cvxcrv,m);if(void 0===k)return{send:()=>{},TXObjects:r};let g=void 0!==k?(0,o.A)(k).minus(1).times(100):void 0,w=y&&g.gt(3)?m.times(k).div(1.03).toNumber():"0";return{send:({extraData:{claimAllChoices:e,stakeCvx:t,lockCvx:o}})=>{let r=e.cvx,n=e.lockedCvx,i=e.crv,{tokenRewardTokens:c,tokenRewardContracts:A}=(({claimAllChoices:e,earnedOnLockedCvxExtraIncentives:t})=>{let a=(0,v.ed)(e.extraEarningsTokens.map(e=>{let{earnedOnV1:a,earnedOnV2:o,earnedOnV3:r}=Array.from(Object.values(t)).find(({tokenAddress:t})=>t===e);return[a?.gt(0)?[e,x.default.LockedCvxExtraIncentivesDistribution.address]:null,o?.gt(0)?[e,x.default.LockedCvxExtraIncentivesDistribution2.address]:null,r?.gt(0)?[e,x.default.LockedCvxExtraIncentivesDistribution3.address]:null].filter(e=>null!==e)})),[o,r]=[a.map(([e])=>e),a.map(([,e])=>e)];return{tokenRewardTokens:o,tokenRewardContracts:r}})({claimAllChoices:e,earnedOnLockedCvxExtraIncentives:d}),m=i||u.length>0||p.length>0,k=y?l.V9.div(10**C.Ay.Crv.decimals).minus(1).toFixed(0):0,g=m&&t?l.V9.div(10**C.Ay.Cvx.decimals).minus(1).toFixed(0):0,b=B({ClaimCvx:r,ClaimCvxAndStake:!1,ClaimCvxCrv:i,ClaimLockedCvx:n,ClaimLockedCvxStake:!1,LockCvx:o});a(u,p,A,c,(0,s.DF)(k,C.Ay.Crv.decimals),(0,s.DF)(w,C.Ay.Crv.decimals),(0,s.DF)(g,C.Ay.Cvx.decimals),0,b)},TXObjects:r}}},claimDexPoolRewards0:{rewardsBalancesHook:e=>{let t=(0,i.useContext)(P.A),a=t?.get(c.Ay.cvx.address);return(0,v.pl)(e.map(e=>{let t=(e=>{if(void 0===e)throw Error("pid must be passed as first argument to useConvexChefCvxRewardsForPool()");let{ethereumWeb3:{account:t}}=(0,i.useContext)(E.A),a=(0,N.A)("ConvexMasterChef","pendingCvx",e,t||"0x0000000000000000000000000000000000000000");return(0,s.wt)(a,c.Ay.cvx.decimals)})(e.pid),o=void 0!==t&&void 0!==a?t.times(a):void 0;return[e.id,[...void 0===t||void 0===o?[]:[[c.Ay.cvx,t,o,{isOldCvxRewardContract:!0}]]]]}))}},claimDexPoolRewards1:{rewardsBalancesHook:e=>{let t=(0,i.useContext)(P.A),a=(0,i.useContext)(D.A),o=t?.get(c.Ay.cvx.address),r=t?.get(c.Ay.sushi.address);return(0,v.pl)(e.map(e=>{let t=a?.[e.rewarderContractKey],n=void 0!==t&&void 0!==o?t.times(o):void 0,d=(e=>{if(void 0===e)throw Error("pid must be passed as first argument to useChefV2SushiRewardsForPool()");let{ethereumWeb3:{account:t}}=(0,i.useContext)(E.A),a=(0,N.A)("MasterchefV2","pendingSushi",e,t||"0x0000000000000000000000000000000000000000");return(0,s.wt)(a,c.Ay.sushi.decimals)})(e.chefV2Pid),l=void 0!==d&&void 0!==r?d.times(r):void 0,u=0===e.id?{isCvxCrvCrvSlp:!0}:void 0;return[e.id,[...void 0===t||void 0===n?[]:[[c.Ay.cvx,t,n,u]],...void 0===d||void 0===l?[]:[[c.Ay.sushi,d,l,u]]]]}))},actionFactoryHook:({extraData:e})=>{let t=e.earnings.find(([e])=>"sushi"===e.id),a=t?t[1]:(0,o.A)(0),r=(0,N.A)(c.Ay.sushi.contractKey,"balanceOf",C.Ay.MasterchefV2.address),n=(0,s.wt)(r,c.Ay.sushi.decimals),l=a.gte(n),{send:u,TXObjects:v}=(0,j.A)("MasterchefV2","batch"),{ethereumWeb3:{account:p}}=(0,i.useContext)(E.A),A=(0,d.RK)(C.Ay.MasterchefV2.abi),x=[l?A.encodeFunctionData("harvestFromMasterChef"):void 0,A.encodeFunctionData("harvest",[e.actionPool.chefV2Pid,p])].filter(e=>e);return{send:()=>u(x,!0),TXObjects:v}}},claimDexCvxCrvCrvPoolCvxRewards:{actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,j.A)("CvxCrvCrvRewarder","getReward");return{send:()=>e(),TXObjects:t}}}
1,claimStakedCvxCrvRewardsOld:{rewardsBalancesHook:()=>{let e=(0,i.useContext)(P.A),t=e?.get(c.Ay.crv.address),a=e?.get(c.Ay.cvx.address),o=(0,i.useContext)(D.A),r=(0,i.useContext)(f.A),n=(0,i.useContext)(S.A),s=o?.CvxCrvRewards,d=void 0!==s&&void 0!==t?s.times(t):void 0,l=n?.earned?.CvxCrvRewards,u=(0,V.A)(r,s),v=void 0!==u&&void 0!==a?u.times(a):void 0;return[...void 0===s||void 0===d?[]:[[c.Ay.crv,s,d]],...void 0===l?[]:l.filter(({earnedBN:e,earnedUsdValueBN:t})=>void 0!==e&&void 0!==t).map(({coin:e,earnedBN:t,earnedUsdValueBN:a})=>[e,t,a]),...void 0===u||void 0===v?[]:[[c.Ay.cvx,u,v]]]},inputCoin:c.Ay.crv,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,j.A)("CvxCrvRewards","getReward"),{ethereumWeb3:{account:a}}=(0,i.useContext)(E.A);return{send:()=>e(a,!0),TXObjects:t}}},claimStakedCvxCrvRewards:{rewardsBalancesHook:()=>{let e=(0,i.useContext)(P.A),t=(0,i.useContext)(D.A),a=t?.CvxCrvWrapper;return void 0!==a&&e?.areCurveTokenPricesLoaded?a.map(([t,a])=>[t,a,a.times(e?.get(t.address))]):[]},inputCoin:c.Ay.crv,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,j.A)("CvxCrvWrapper","getReward"),{ethereumWeb3:{account:a}}=(0,i.useContext)(E.A);return{send:()=>e(a),TXObjects:t}}},setStakedCvxCrvRewardsWeight:{balanceHook:()=>{},ratesAndWeightsHook:()=>(0,i.useContext)(T.A),inputCoin:c.Ay.cvxcrv,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,j.A)("CvxCrvWrapper","setRewardWeight","ethereum",{gasLimit:"800000"});return{send:({extraData:{sliderValue:t}})=>e((0,o.A)(t).div(100).times(1e4).toFixed()),TXObjects:t}}},claimStakedCvxRewards:{rewardsBalancesHook:(e,t)=>{let a=e?.CvxRewards,o=t?.get(c.Ay.cvxcrv.address),r=void 0!==a&&void 0!==o?a.times(o):void 0;return void 0===a||void 0===r?[]:[[c.Ay.cvxcrv,a,r]]},inputCoin:c.Ay.cvxcrv,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,j.A)("CvxRewards","getReward");return{send:()=>e(!1),TXObjects:t}}},claimCvxAirdrop:{actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,j.A)("Airdrop","claim"),{ethereumWeb3:{account:a}}=(0,i.useContext)(E.A);return{send:({amount:t,extraData:{proof:o}})=>{e(o.map(e=>`0x${e}`),a,(0,s.DF)(t,C.Ay.Cvx.decimals))},TXObjects:t}}},convertAndStakeCrvOld:{balanceHook:()=>{let e=(0,i.useContext)(y.A);return e?.[c.Ay.crv.contractKey]},inputCoin:c.Ay.crv,needsApproving:1,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,j.A)("CrvDepositor","deposit"),a=(0,N.A)(c.Ay.crv.contractKey,"balanceOf",C.Ay.CrvDepositor.address),o=(0,s.wt)(a,c.Ay.crv.decimals);return{send:({amount:t,decimals:a})=>{let r=o.plus(t).gte(L.Lr);return e((0,s.DF)(t,a),r,C.Ay.CvxCrvRewards.address)},TXObjects:t}},actionContractKey:"CrvDepositor",apyHook:e=>{let t=(0,i.useContext)(P.A),a=(0,i.useContext)(S.A),o=(0,i.useContext)(K.A),r=o?.CvxCrvRewards?.rewardRate.times(I.Q),n=(0,V.A)(e,r),s=a?.rewardRate?.CvxCrvRewards?.[0]?.rewardRateUsdValueBN?.times(I.Q),d=void 0!==s&&void 0!==e?.CvxCrvRewards?s.div(e.CvxCrvRewards):void 0,l=t?.get(c.Ay.crv.address),u=t?.get(c.Ay.cvx.address),v=t?.get(c.Ay.cvxcrv.address),p=void 0!==r&&void 0!==l&&void 0!==v?r.times(l).div(v).times(100):void 0,A=void 0!==n&&void 0!==u&&void 0!==v?n.times(u).div(v).times(100):void 0,C=void 0!==d&&void 0!==v?d.div(v).times(100):void 0;return{cumulativeApy:void 0!==p&&void 0!==A&&void 0!==C?p.plus(A).plus(C):void 0,crvApy:p,cvxApy:A,tricrvApy:C}}},convertAndStakeCrv:{balanceHook:()=>{let e=(0,i.useContext)(y.A);return e?.[c.Ay.crv.contractKey]},inputCoin:c.Ay.crv,needsApproving:1,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,j.A)("CrvDepositor","deposit"),a=(0,N.A)(c.Ay.crv.contractKey,"balanceOf",C.Ay.CrvDepositor.address),o=(0,s.wt)(a,c.Ay.crv.decimals);return{send:({amount:t,decimals:a})=>{let r=o.plus(t).gte(L.Lr);return e((0,s.DF)(t,a),r,C.Ay.CvxCrvWrapper.address)},TXObjects:t}},actionContractKey:"CrvDepositor",apyHook:e=>{let t=(0,i.useContext)(P.A),a=(0,i.useContext)(S.A),o=(0,i.useContext)(K.A),r=o?.CvxCrvWrapper?.rewardRate.times(I.Q),n=(0,V.A)(e,r),s=a?.rewardRate?.CvxCrvWrapper?.[0]?.rewardRateUsdValueBN?.times(I.Q),d=void 0!==s&&void 0!==e?.CvxCrvWrapper?s.div(e.CvxCrvWrapper):void 0,l=t?.get(c.Ay.crv.address),u=t?.get(c.Ay.cvx.address),v=t?.get(c.Ay.cvxcrv.address),p=void 0!==r&&void 0!==l&&void 0!==v?r.times(l).div(v).times(100):void 0,A=void 0!==n&&void 0!==u&&void 0!==v?n.times(u).div(v).times(100):void 0,C=void 0!==d&&void 0!==v?d.div(v).times(100):void 0;return{cumulativeApy:void 0!==p&&void 0!==A&&void 0!==C?p.plus(A).plus(C):void 0,crvApy:p,cvxApy:A,tricrvApy:C}}},convertCrv:{balanceHook:()=>{let e=(0,i.useContext)(y.A);return e?.[c.Ay.crv.contractKey]},inputCoin:c.Ay.crv,needsApproving:1,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,j.A)("CrvDepositor","deposit"),a=(0,N.A)(c.Ay.crv.contractKey,"balanceOf",C.Ay.CrvDepositor.address),o=(0,s.wt)(a,c.Ay.crv.decimals);return{send:({amount:t,decimals:a})=>{let r=o.plus(t).gte(L.Lr);return e((0,s.DF)(t,a),r)},TXObjects:t}},actionContractKey:"CrvDepositor"},stakeCvxCrvOld:{balanceHook:()=>{let e=(0,i.useContext)(y.A);return e?.[c.Ay.cvxcrv.contractKey]},inputCoin:c.Ay.cvxcrv,needsApproving:1,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,j.A)("CvxCrvRewards","stake");return{send:({amount:t,decimals:a})=>e((0,s.DF)(t,a)),TXObjects:t}},actionContractKey:"CvxCrvRewards"},stakeCvxCrv:{balanceHook:()=>{let e=(0,i.useContext)(y.A);return e?.[c.Ay.cvxcrv.contractKey]},inputCoin:c.Ay.cvxcrv,needsApproving:1,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,j.A)("CvxCrvWrapper","stake"),{ethereumWeb3:{account:a}}=(0,i.useContext)(E.A);return{send:({amount:t,decimals:o})=>e((0,s.DF)(t,o),a),TXObjects:t}},actionContractKey:"CvxCrvWrapper"},unstakeCrvOld:{balanceHook:()=>{let e=(0,i.useContext)(y.A);return e?.CvxCrvRewards},tvlHook:()=>{let e=(0,i.useContext)(f.A),t=e?.CvxCrvRewards,a=(0,i.useContext)(P.A),o=a?.get(c.Ay.cvxcrv.address);return void 0!==t&&void 0!==o?t.times(o):void 0},inputCoin:c.Ay.cvxcrv,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,j.A)("CvxCrvRewards","withdraw");return{send:({amount:t,decimals:a})=>e((0,s.DF)(t,a),!1),TXObjects:t}}},unstakeCrv:{balanceHook:()=>{let e=(0,i.useContext)(y.A);return e?.CvxCrvWrapper},tvlHook:()=>{let e=(0,i.useContext)(f.A),t=e?.CvxCrvWrapper,a=(0,i.useContext)(P.A),o=a?.get(c.Ay.cvxcrv.address);return void 0!==t&&void 0!==o?t.times(o):void 0},inputCoin:c.Ay.cvxcrv,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,j.A)("CvxCrvWrapper","withdraw");return{send:({amount:t,decimals:a})=>e((0,s.DF)(t,a)),TXObjects:t}}},depositLpToken:{balanceHook:({actionPool:e})=>{let t=(0,i.useContext)(y.A);return t?.[e.lpTokenContractKey]},getInputCoin:({actionPool:e})=>
1({...e.lpTokenInfo,contractKey:e.lpTokenContractKey,decimals:18}),needsApproving:1,actionFactoryHook:({useMaxValue:e})=>{if(e){let{send:e,TXObjects:t}=(0,j.A)("Booster","depositAll");return{send:({extraData:t})=>e(t.actionPool.convexPoolData.id,!1),TXObjects:t}}{let{send:e,TXObjects:t}=(0,j.A)("Booster","deposit");return{send:({amount:t,decimals:a,extraData:o})=>e(o.actionPool.convexPoolData.id,(0,s.DF)(t,a),!1),TXObjects:t}}},actionContractKey:"Booster"},harvestPoolRewards:{actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,j.A)("frax"===R.yl||"fxp"===R.yl?"CurveHarvester":"Harvester","earmark");return{send:({extraData:t})=>e(t.pool.convexPoolData.id),TXObjects:t}},actionContractKey:"frax"===R.yl||"fxp"===R.yl?"CurveHarvester":"Harvester"},stakeWrappedLpToken:{balanceHook:({actionPool:e})=>{let t=(0,i.useContext)(y.A);return t?.[e.wrappedLpTokenContractKey]},getInputCoin:({actionPool:e})=>({...e.lpTokenInfo,contractKey:e.wrappedLpTokenContractKey,decimals:18}),needsApproving:1,actionFactoryHook:({extraData:{actionPool:e}})=>{let{send:t,TXObjects:a}=(0,j.A)(e.rewardContractKey,"stake");return{send:({amount:e,decimals:a})=>t((0,s.DF)(e,a)),TXObjects:a}},getActionContractKey:({actionPool:e})=>e.rewardContractKey},depositAndStakeLpToken:{balanceHook:({actionPool:e})=>{let t=(0,i.useContext)(_[e.blockchainId]);return t?.[e.lpTokenContractKey]},getInputCoin:({actionPool:e})=>({...e.lpTokenInfo,contractKey:e.lpTokenContractKey,decimals:18}),needsApproving:1,actionFactoryHook:({useMaxValue:e,extraData:t})=>{if(e){let{send:e,TXObjects:a}=(0,j.A)("Booster","depositAll",t.actionPool.blockchainId);return{send:({extraData:t})=>e(...t.actionPool.usesDepositToken?[t.actionPool.convexPoolData.id,!0]:[t.actionPool.convexPoolData.id]),TXObjects:a}}{let{send:e,TXObjects:a}=(0,j.A)("Booster","deposit",t.actionPool.blockchainId);return{send:({amount:t,decimals:a,extraData:o})=>e(...o.actionPool.usesDepositToken?[o.actionPool.convexPoolData.id,(0,s.DF)(t,a),!0]:[o.actionPool.convexPoolData.id,(0,s.DF)(t,a)]),TXObjects:a}}},actionContractKey:"Booster",apyHook:n()((e,t,a,r,n)=>{if(e.usesHarvester){let s,d;e.isLendingVault?(s=e.rates.lendApyPcent,d=t?.get(c.Ay.crv.address)):{baseApy:s,crvPrice:d}=n?.[e.id]||{};let l=(0,i.useContext)(S.A),u=(0,i.useContext)(K.A),p=!e.isKilled&&void 0!==u?.[e.rewardContractKey]?.periodFinish&&u[e.rewardContractKey].periodFinish.lt((0,A.j2)()),C=u?.[e.rewardContractKey]?.rewardRate.eq(0)||p?(0,o.A)(0):u?.[e.rewardContractKey]?.rewardRate.times(I.Q),x=(0,V.A)(a,C),y=(0,v.pl)((l?.rewardRate?.[e.rewardContractKey]||[]).map(({rewardRateUsdValueBN:t,rewardPeriodFinish:n,coin:i})=>[i.symbol,{coinAddress:i.address,apy:a?.[e.rewardContractKey]?.eq(0)||n.eq(0)?(0,o.A)(0):t?.times(I.Q)?.div(a[e.rewardContractKey])?.div(r).times(100)}])),m=Array.from(Object.entries(y)).filter(([e])=>"CVX"!==e).map(([e,{apy:t,coinAddress:a}])=>({name:e,symbol:e,apy:t,coinAddress:a})),k=(0,v.EJ)(m.map(({apy:e})=>e)),g=(0,v.EJ)(Array.from(Object.entries(y)).filter(([e])=>"CVX"===e).map(([,{apy:e}])=>e)),w=t?.get(c.Ay.cvx.address),b=void 0===x||void 0===w||void 0===g?void 0:0===r?0:x.times(w).div(r).times(100).plus(g),h=void 0===C||void 0===d?void 0:C.eq(0)||0===r?(0,o.A)(0):C.times(d).div(r).times(100);return{cumulativeApy:void 0!==s&&void 0!==h&&void 0!==k&&void 0!==b?(0,o.A)(0).plus(s).plus(h).plus(k).plus(b):void 0,isPendingHarvest:p,baseApy:s,crvApy:h,cvxApy:b,additionalRewards:m}}{let t=(0,i.useContext)(X[e.blockchainId]),a=t?.[e.key],r=a?.baseApy,n=a?.crvApy,s=a?.cvxApy,d=a?.extraRewards,c=void 0!==d?(0,v.EJ)(d.map(({apy:e})=>e)):void 0;return{cumulativeApy:void 0!==r&&void 0!==n&&void 0!==s&&void 0!==c?(0,o.A)(0).plus(r).plus(n).plus(s).plus(c):void 0,isPendingHarvest:null,baseApy:r,crvApy:n,cvxApy:s,additionalRewards:d,crvBoost:a?.crvBoost}}},{normalizer:([e,t,a,o,r])=>{let n=(0,i.useContext)(S.A),s=(0,i.useContext)(K.A);return`
2          ${e.id}|
3          ${e.blockchainId}|
4          ${Object.keys(a).length}|
5          ${t?.areCurveTokenPricesLoaded}|
6          ${o}|
7          ${void 0!==r?Object.keys(r).length:0}|
8          ${void 0!==n?.rewardRate?Object.keys(n.rewardRate).length:0}|
9          ${Object.keys(s).length}|
10        `},maxAge:3e5}),projectedApyHook:n()(({curveApys:e,tvl:t,cvxPrice:a,lpTokenPrice:r,actionPool:n})=>{let s=(0,i.useContext)(S.A),d=(0,v.pl)((s?.rewardRate?.[n.rewardContractKey]||[]).map(({rewardRateUsdValueBN:e,coin:a,rewardPeriodFinish:i}
10)=>[a.symbol,{coinAddress:a.address,apy:t?.[n.rewardContractKey]?.eq(0)||i.eq(0)||void 0===r?(0,o.A)(0):e?.times(I.Q)?.div(t[n.rewardContractKey])?.div(r),periodFinish:i}])),l=(0,v.EJ)(Array.from(Object.values(d)).filter(({coinAddress:e})=>(0,c.XI)(e,c.Ay.cvx)).map(({apy:e})=>e)),{baseApy:u,crvApy:A,crvBoost:C,crvPrice:x}=e?.[n.id]||{},y=(void 0!==t?.[n.rewardContractKey]&&t?.[n.rewardContractKey].eq(0)?(0,o.A)(A).times(2.5):(0,o.A)(A)).times(1-L.$E),m=void 0!==t?.[n.rewardContractKey]&&t?.[n.rewardContractKey].eq(0)?(0,o.A)(2.5):C,k=L.KQ.includes(n.id)?l:0,g=(0,o.A)(y).div(100).div(x),w=(0,V.A)(t,g),b=void 0!==w&&void 0!==a&&void 0!==k?w.times(a).plus(k).times(100):void 0,h=Array.from(Object.entries(d)).filter(([e])=>"CVX"!==e).map(([e,{apy:t,periodFinish:a,coinAddress:r}])=>{let i=t?.times(100)||(0,o.A)(0),s=n.gaugeRewards?.find(({tokenAddress:e})=>(0,p.lc)(e)===(0,p.lc)(r))?.apy||0;return{name:e,symbol:e,apy:o.A.max(i,s),isPendingHarvest:!1,coinAddress:r}});return{cumulativeApy:void 0!==u&&void 0!==y&&void 0!==m&&void 0!==b?(0,o.A)(0).plus(u).plus(y).plus((0,v.EJ)(h.map(({apy:e})=>e))).plus(b):void 0,crvBoost:m,baseApy:u,crvApy:y,cvxApy:b,additionalRewards:h}},{normalizer:([{curveApys:e,tvl:t,cvxPrice:a,lpTokenPrice:o,actionPool:r}])=>{let n=(0,i.useContext)(S.A);return`
11          ${r.id}-
12          ${r.blockchainId}-
13          ${Object.keys(t).length}-
14          ${o}-
15          ${a}-
16          ${void 0!==e?Object.keys(e).length:0}-
17          ${void 0!==n?.rewardRate?Object.keys(n.rewardRate).length:0}
18        `},maxAge:3e5})},unstakeAndWithdrawLpToken:{balanceHook:({actionPool:e})=>{let t=(0,i.useContext)(_[e.blockchainId]);return t?.[e.rewardContractKey]},tvlHook:({actionPool:e})=>{let t=(0,i.useContext)(f.A),a=t?.[e.rewardContractKey],o=(0,i.useContext)(F.A),r=o?.get(e.address);return void 0!==a&&void 0!==r?a.times(r):void 0},getInputCoin:({actionPool:e})=>({...e.lpTokenInfo,contractKey:e.lpTokenContractKey,decimals:18}),actionFactoryHook:({extraData:{actionPool:e}})=>{let t,a;return e.usesDepositToken?{send:t,TXObjects:a}=(0,j.A)(e.rewardContractKey,"withdrawAndUnwrap",e.blockchainId):{send:t,TXObjects:a}=(0,j.A)(e.rewardContractKey,"withdraw",e.blockchainId),{send:({amount:e,decimals:a})=>t((0,s.DF)(e,a),!1),TXObjects:a}}},unstakeLpToken:{balanceHook:({actionPool:e})=>{let t=(0,i.useContext)(y.A);return t?.[e.rewardContractKey]},getInputCoin:({actionPool:e})=>({...e.lpTokenInfo,contractKey:e.wrappedLpTokenContractKey,decimals:18}),actionFactoryHook:({extraData:{actionPool:e}})=>{let{send:t,TXObjects:a}=(0,j.A)(e.rewardContractKey,"withdraw");return{send:({amount:e,decimals:a})=>t((0,s.DF)(e,a),!1),TXObjects:a}}},withdrawWrappedLpToken:{balanceHook:({actionPool:e})=>{let t=(0,i.useContext)(y.A);return t?.[e.wrappedLpTokenContractKey]},getInputCoin:({actionPool:e})=>({...e.lpTokenInfo,contractKey:e.wrappedLpTokenContractKey,decimals:18}),actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,j.A)("Booster","withdraw");return{send:({amount:t,decimals:a,extraData:o})=>e(o.actionPool.convexPoolData.id,(0,s.DF)(t,a)),TXObjects:t}}},stakeCvx:{balanceHook:()=>{let e=(0,i.useContext)(y.A);return e?.[c.Ay.cvx.contractKey]},inputCoin:c.Ay.cvx,needsApproving:1,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,j.A)("CvxRewards","stake");return{send:({amount:t,decimals:a})=>e((0,s.DF)(t,a)),TXObjects:t}},actionContractKey:"CvxRewards",apyHook:e=>{let t=(0,i.useContext)(K.A),a=t?.CvxRewards?.rewardRate.times(I.Q),o=e?.get(c.Ay.cvx.address),r=e?.get(c.Ay.cvxcrv.address);return void 0!==a&&void 0!==r&&void 0!==o?a.times(r).div(o).times(100):void 0}},unstakeCvx:{balanceHook:()=>{let e=(0,i.useContext)(y.A);return e?.CvxRewards},tvlHook:()=>{let e=(0,i.useContext)(f.A),t=e?.CvxRewards,a=(0,i.useContext)(P.A),o=a?.get(c.Ay.cvx.address);return void 0!==t&&void 0!==o?t.times(o):void 0},inputCoin:c.Ay.cvx,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,j.A)("CvxRewards","withdraw");return{send:({amount:t,decimals:a})=>e((0,s.DF)(t,a),!1),TXObjects:t}}},stakeDexLpToken1:{balanceHook:({actionPool:e})=>{let t=(0,i.useContext)(y.A);return t?.[e.lpTokenContractKey]},getInputCoin:({actionPool:e})=>
18({...e.lpTokenInfo,contractKey:e.lpTokenContractKey,decimals:18,firstIconProps:e.tokens[0],secondIconProps:e.tokens[1]}),needsApproving:1,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,j.A)("MasterchefV2","deposit"),{ethereumWeb3:{account:a}}=(0,i.useContext)(E.A);return{send:({amount:t,decimals:o,extraData:r})=>e(r.actionPool.chefV2Pid,(0,s.DF)(t,o),a),TXObjects:t}},actionContractKey:"MasterchefV2"},unstakeDexLpToken0:{balanceHook:({actionPool:e})=>(e=>{if(void 0===e)throw Error("pid must be passed as first argument to useConvexChefUserInfoOnPool()");let{ethereumWeb3:{account:t}}=(0,i.useContext)(E.A),a=(0,N.A)("ConvexMasterChef","userInfo",e,t||"0x0000000000000000000000000000000000000000"),o=a?.amount;return(0,s.wt)(o,C.Ay.ConvexMasterChef.decimals)})(e.pid),tvlHook:({actionPool:e},t)=>((e,t)=>{if(void 0===e)throw Error("pid must be passed as first argument to useConvexChefTvlOnPool()");let a=O.Ay.find(t=>t.pid===e),o=a.lpTokenContractKey,r=C.Ay.ConvexMasterChef.address,n=(0,N.A)(o,"balanceOf",r),i=(0,s.wt)(n,C.Ay[o].decimals),d=t?.[a.name].lpTokenPrice;return void 0!==i&&void 0!==d?i.times(d):void 0})(e.pid,t),getInputCoin:({actionPool:e})=>({...e.lpTokenInfo,contractKey:e.lpTokenContractKey,decimals:18,firstIconProps:e.tokens[0],secondIconProps:e.tokens[1]}),actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,j.A)("ConvexMasterChef","withdraw");return{send:({amount:t,decimals:a,extraData:o})=>e(o.actionPool.pid,(0,s.DF)(t,a)),TXObjects:t}}},unstakeDexLpToken1:{balanceHook:({actionPool:e})=>(e=>{if(void 0===e)throw Error("pid must be passed as first argument to useChefV2UserInfoOnPool()");let{ethereumWeb3:{account:t}}=(0,i.useContext)(E.A),a=(0,N.A)("MasterchefV2","userInfo",e,t||"0x0000000000000000000000000000000000000000"),o=a?.amount;return(0,s.wt)(o,C.Ay.MasterchefV2.decimals)})(e.chefV2Pid),tvlHook:({actionPool:e},t)=>((e,t)=>{if(void 0===e)throw Error("pid must be passed as first argument to useChefV2TvlOnPool()");let a=O.Ay.find(t=>t.chefV2Pid===e),o=a.lpTokenContractKey,r=C.Ay.MasterchefV2.address,n=(0,N.A)(o,"balanceOf",r),i=(0,s.wt)(n,C.Ay[o].decimals),d=t?.[a.name].lpTokenPrice;return void 0!==i&&void 0!==d?i.times(d):void 0})(e.chefV2Pid,t),getInputCoin:({actionPool:e})=>({...e.lpTokenInfo,contractKey:e.lpTokenContractKey,decimals:18,firstIconProps:e.tokens[0],secondIconProps:e.tokens[1]}),actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,j.A)("MasterchefV2","withdraw"),{ethereumWeb3:{account:a}}=(0,i.useContext)(E.A);return{send:({amount:t,decimals:o,extraData:r})=>e(r.actionPool.chefV2Pid,(0,s.DF)(t,o),a),TXObjects:t}}},deployConvexPool:{actionFactoryHook:({extraData:{network:e,gaugeAddress:t}})=>{if("ethereum"!==e){let{send:a,TXObjects:o}=(0,j.A)("PoolManager","addPool",e);return{send:()=>a(t,"0xabC000d88f23Bb45525E447528DBF656A9D55bf5"),TXObjects:o}}{let{send:e,TXObjects:a}=(0,j.A)("PoolManager","addPool");return{send:()=>e(t),TXObjects:a}}}}},"ACTIONS"),Q=(0,u.m)({approve:{actionFactoryHook:(e,t,a=!1,o)=>{let{send:r,TXObjects:n}=(0,j.A)(e,"approve",o),i="ethereum"===o?C.Ay[t]:C.Ay[o][t];return{send:()=>r(i.address,a?0:l.V9.toFixed()),TXObjects:n}}}},"SPECIAL_ACTIONS");if(R.HL){for(let[e,t]of Array.from(Object.entries(q)))if(t.needsApproving&&!t.actionContractKey&&!t.getActionContractKey)throw Error(`Missing \`actionContractKey\` prop (or alternate \`getActionContractKey\` prop) on action with needsApproving > 0 [${e}]`)}},59825:(e,t,a)=>{"use strict";a.d(t,{A:()=>i});var o=a(36027),r=a(49333),n=a(33027);let i=Number(window.ethereum?.chainId||0)===n.o1.fraxtal[0]?new o.k(window.ethereum):new r.FR(n.ax.fraxtal[0],void 0,{staticNetwork:!0})},60920:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});let o=a(67141).createContext()},64107:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});var o=a(37851),r=a(81403);let n=(e,t)=>{let a=e?.Cvx;if(void 0===a||void 0===t)return;let n=a.div(r.F1).dp(0,o.A.ROUND_FLOOR),i=(0,o.A)(r.RQ).minus(a);if(n>r.L)return(0,o.A)(0);let s=(0,o.A)(r.L).minus(n);return o.A.min(t.times(s).div(r.L),i)}},65110:(e,t,a)=>{"use strict";a.r(t),a.d(t,{ACTIONS:()=>D,LANGUAGE:()=>h,SPECIAL_ACTIONS:()=>S});var o=a(37851),r=a(65343),n=a(66629),i=a(31804),s=a(64904),d=a(59472),c=a(33027),l=a(87233),u=a(95589),v=a(67141),p=a(21080),A=a(37573),C=a(22750),x=a(4360),y=a(8734),m=a(74320),k=a(89619),g=a(65972),w=a(15406),b=a(25964);let h=(0,r.m)({approve:["Approve","Approving…","Approved"],claimLockedCvxRewards:["Claim","Claiming…","Claimed"],claimLockedCvxV2Rewards:["Claim","Claiming…","Claimed"],claimLockedCvxRewardsOld:["Claim","Claiming…","Claimed"],claimAllLockedCvxRewards:["Claim All","Claiming…","Claimed All"],claimLockedCvxExtraIncentives:["Claim","Claiming…","Claimed"],claimAllLockedCvxExtraIncentives:["Claim All","Claiming…","Claimed All"],lockCvx:["Lock CVX","Locking CVX…","Locked CVX"],lockCvxOld:["Lock CVX","Locking CVX…","Locked CVX"],withdrawFromOldLocker:["Withdraw unlocked CVX","Withdrawing unlocked CVX…","Withdrew unlocked CVX"],claimUnlockedCvx:["Withdraw expired","Withdrawing expired…","Withdrew expired"],claimUnlockedCvxV2:["Withdraw expired","Withdrawing expired…","Withdrew expired"],relockUnlockedCvxV2:["Relock expired","Relocking expired…","Relocked expired"],setVoteSurrogateAddress:["Set surrogate","Saving…","Surrogate set"],clearVoteSurrogateAddress:["Clear surrogate","Clearing surrogate…","Cleared surrogate"],addGaugeForVote:["Add","Adding…","Added"],voteForGaugeWeights:["Vote","Voting…","Voted"],updateVoteForGaugeWeights:["Update vote","Updating vote…","Updated vote"],voteOnDaoProposal:["Vote","Voting…","Voted"],updateVoteOnDaoProposal:["Update vote","Updating vote…","Updated vote"],setVoteDelegate:["Delegate","Delegating…","Delegated"],setVoteDelegateToKnownEntity:["Delegate","Delegating…","Delegated"],clearVoteDelegate:["Clear delegate","Clearing delegate…","Cleared delegate"],syncVoteWeights:["
18Sync vote weight","Syncing weight…","Synced vote weight"],syncVoteWeightsForAddress:["Sync vote weight","Syncing weight…","Synced vote weight"],claimCvxAirdrop:d.LANGUAGE.claimCvxAirdrop},"LANGUAGE"),f=({ClaimCvx:e=!1,ClaimCvxAndStake:t=!1,ClaimCvxCrv:a=!1,ClaimLockedCvx:o=!1,ClaimLockedCvxStake:r=!1,LockCrvDeposit:n=!1,UseAllWalletFunds:i=!1,LockCvx:s=!1}={})=>[1*!!e,2*!!t,4*!!a,8*!!o,16*!!r,32*!!n,64*!!i,128*!!s].reduce((e,t)=>e|t,0),F=({claimAllChoices:e,earnedOnLockedCvxExtraIncentives:t})=>{let a=(0,n.ed)(e.extraEarningsTokens.map(e=>{let{earnedOnV1:a,earnedOnV2:o,earnedOnV3:r}=Array.from(Object.values(t)).find(({tokenAddress:t})=>t===e);return[a?.gt(0)?[e,s.Ay.LockedCvxExtraIncentivesDistribution.address]:null,o?.gt(0)?[e,s.Ay.LockedCvxExtraIncentivesDistribution2.address]:null,r?.gt(0)?[e,s.Ay.LockedCvxExtraIncentivesDistribution3.address]:null].filter(e=>null!==e)})),[o,r]=[a.map(([e])=>e),a.map(([,e])=>e)];return{tokenRewardTokens:o,tokenRewardContracts:r}},D=(0,r.m)({stakeCvx:d.ACTIONS.stakeCvx,claimCvxAirdrop:d.ACTIONS.claimCvxAirdrop,claimLockedCvxRewards:{rewardsBalancesHook:(e,t)=>{let a=e?.CvxLocker?.[0]?.[1],o=t?.get(u.Ay.cvxcrv.address),r=void 0!==a&&void 0!==o?a.times(o):void 0;return void 0===a||void 0===r?[]:[[u.Ay.cvxcrv,a,r]]},inputCoin:u.Ay.cvxcrv,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,g.A)("CvxLocker","getReward"),{ethereumWeb3:{account:a}}=(0,v.useContext)(w.A);return{send:()=>e(a,!1),TXObjects:t}}},claimLockedCvxV2Rewards:{rewardsBalancesHook:(e,t)=>{let a=e?.CvxLockerV2;return void 0!==a&&t?.areCurveTokenPricesLoaded?a.map(([e,a])=>{let r=t.get(e.address);return[e,(0,o.A)(a),(0,o.A)(a).times(r||0)]}):[]},inputCoin:u.Ay.cvxcrv,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,g.A)("CvxLockerV2","getReward"),{ethereumWeb3:{account:a}}=(0,v.useContext)(w.A);return{send:()=>e(a,!1),TXObjects:t}}},claimLockedCvxRewardsOld:{rewardsBalancesHook:(e,t)=>{let a=e?.CvxLockerOld?.[0]?.[1],o=t?.get(u.Ay.cvxcrv.address),r=void 0!==a&&void 0!==o?a.times(o):void 0;return void 0===a||void 0===r?[]:[[u.Ay.cvxcrv,a,r]]},inputCoin:u.Ay.cvxcrv,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,g.A)("CvxLockerOld","getReward"),{ethereumWeb3:{account:a}}=(0,v.useContext)(w.A);return{send:()=>e(a,!1),TXObjects:t}}},claimLockedCvxExtraIncentives:{rewardsBalancesHook:(e,t)=>void 0!==e&&t?.areCurveTokenPricesLoaded?Array.from(Object.entries(e)).map(([e,{totalEarned:a}])=>[u.Ay[e],a,a.times(t.get(u.Ay[e].address)||0)]):[],actionFactoryHook:({extraData:{coin:e}})=>{let{send:t,TXObjects:a}=(0,g.A)("ClaimZap","claimRewards"),o=f(),{blockNumber:r}=(0,v.useContext)(k.A),n=(0,b.A)(r);return{send:()=>{let{tokenRewardTokens:a,tokenRewardContracts:r}=F({claimAllChoices:{extraEarningsTokens:[e.address]},earnedOnLockedCvxExtraIncentives:n});return t([],[],r,a,0,0,0,0,o)},TXObjects:a}}},claimAllLockedCvxExtraIncentives:{actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,g.A)("ClaimZap","claimRewards"),a=f(),{blockNumber:o}=(0,v.useContext)(k.A),r=(0,b.A)(o);return{send:({extraData:{claimAllChoices:t}})=>{let{tokenRewardTokens:o,tokenRewardContracts:n}=F({claimAllChoices:t,earnedOnLockedCvxExtraIncentives:r});return e([],[],n,o,0,0,0,0,a)},TXObjects:t}}},claimAllLockedCvxRewards:{actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,g.A)("ClaimZap","claimRewards"),{blockNumber:a}=(0,v.useContext)(k.A),o=(0,b.A)(a);return{send:({extraData:{claimAllChoices:t}})=>{let{tokenRewardTokens:a,tokenRewardContracts:r}=F({claimAllChoices:t,earnedOnLockedCvxExtraIncentives:o});return e([],[],r,a,0,0,0,0,f({ClaimLockedCvx:t.lockedCvx}))},TXObjects:t}}},lockCvx:{balanceHook:()=>{let e=(0,v.useContext)(p.A);return e?.[u.Ay.cvx.contractKey]},inputCoin:u.Ay.cvx,needsApproving:1,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,g.A)("CvxLockerV2","lock"),{ethereumWeb3:{account:a}}=(0,v.useContext)(w.A);return{send:({amount:t,decimals:o})=>e(a,(0,m.DF)(t,o),0),TXObjects:t}},actionContractKey:"CvxLockerV2",apyHook:e=>{let t=(0,v.useContext)(x.A),a=t?.CvxLockerV2?.rewardRates?.filter(([,e])=>e.gt(0))?.map(([e,t])=>[e,t.times(y.Q)]);return void 0!==a&&e?.areCurveTokenPricesLoaded?a.map(([t,a])=>[t,a.times(e.get(t.address)||0).div(e.get(u.Ay.cvx.address)||1).times(100)]):void 0},apyHookV1:e=>{let t=(0,v.useContext)(x.A),a=t?.CvxLocker?.rewardRate.times(y.Q),o=e?.get(u.Ay.cvx.address),r=e?.get(u.Ay.cvxcrv.address);return void 0!==a&&void 0!==r&&void 0!==o?a.times(r).div(o).times(100):void 0},tvlHook:()=>{let e=(0,v.useContext)(A.A),t=e?.CvxLockerV2,a=(0,v.useContext)(C.A),o=a?.get(u.Ay.cvx.address);return void 0!==t&&void 0!==o?t.times(o):void 0}},lockCvxOld:{inputCoin:u.Ay.cvx,actionContractKey:"CvxLockerOld",apyHook:e=>{let t=(0,v.useContext)(x.A),a=t?.CvxLockerOld?.rewardRate.times(y.Q),o=e?.get(u.Ay.cvx.address),r=e?.get(u.Ay.cvxcrv.address);return void 0!==a&&void 0!==r&&void 0!==o?a.times(r).div(o).times(100):void 0},tvlHook:()=>{let e=(0,v.useContext)(A.A),t=e?.CvxLockerOld,a=(0,v.useContext)(C.A),o=a?.get(u.Ay.cvx.address);return void 0!==t&&void 0!==o?t.times(o):void 0}},withdrawFromOldLocker:{actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,g.A)("CvxLockerOld","processExpiredLocks");return{send:()=>e(!1),TXObjects:t}}},claimUnlockedCvx:{actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,g.A)("CvxLocker","processExpiredLocks");return{send:()=>e(!1),TXObjects:t}}},claimUnlockedCvxV2:{actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,g.A)("CvxLockerV2","processExpiredLocks");return{send:()=>e(!1),TXObjects:t}}},relockUnlockedCvxV2:{actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,g.A)("CvxLockerV2","processExpiredLocks");return{send:()=>e(!0),TXObjects:t}}},setVoteSurrogateAddress:{actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,g.A)("SurrogateRegistry","setSurrogate");return{send:({value:t})=>e(t),TXObjects:t}}},clearVoteSurrogateAddress:{actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,g.A)("SurrogateRegistry","setSurrogate");return{send:()=>e(c.cF),TXObjects:t}}},addGaugeForVote:{actionFactoryHook:({extraData:{gaugeAddress:e,contractKey:t="CurveGaugeRegistry"}})=>{let{send:a,TXObjects:o}=(0,g.A)(t,"setGauge");return{send:()=>a(e),TXObjects:o}}},voteForGaugeWeights:{actionFactoryHook:({extraData:{contractKey:e,userInfo:t,userChosenGauges:a}})=>{let{send:o,TXObjects:r}=(0,g.A)(e,"vote"),n=a.map(({gaugeData:{gaugeAddress:e}})=>
18e),i=a.map(({scaledChoice:e})=>e);return{send:()=>o(t.account,n,i),TXObjects:r}}},updateVoteForGaugeWeights:{actionFactoryHook:({extraData:{contractKey:e,userInfo:t,userChosenGauges:a}})=>{let{send:o,TXObjects:r}=(0,g.A)(e,"vote"),n=a.map(({gaugeData:{gaugeAddress:e}})=>e),i=a.map(({scaledChoice:e})=>e);return{send:()=>o(t.account,n,i),TXObjects:r}}},voteOnDaoProposal:{actionFactoryHook:({extraData:{contractKey:e,proposalId:t,account:a,yesWeight:o,noWeight:r}})=>{let{send:n,TXObjects:i}=(0,g.A)(e,"vote");return{send:()=>n(t,a,o,r),TXObjects:i}}},updateVoteOnDaoProposal:{actionFactoryHook:({extraData:{contractKey:e,proposalId:t,account:a,yesWeight:o,noWeight:r}})=>{let{send:n,TXObjects:i}=(0,g.A)(e,"vote");return{send:()=>n(t,a,o,r),TXObjects:i}}},setVoteDelegate:{actionFactoryHook:({extraData:{contractKey:e}})=>{let{send:t,TXObjects:a}=(0,g.A)(e,"setDelegate");return{send:({value:e})=>t(e),TXObjects:a}}},setVoteDelegateToKnownEntity:{actionFactoryHook:({extraData:{contractKey:e,delegateAddress:t}})=>{let{send:a,TXObjects:o}=(0,g.A)(e,"setDelegate");return{send:()=>a(t),TXObjects:o}}},clearVoteDelegate:{actionFactoryHook:({extraData:{contractKey:e}})=>{let{send:t,TXObjects:a}=(0,g.A)(e,"setDelegate");return{send:()=>t(c.cF),TXObjects:a}}},syncVoteWeights:{actionFactoryHook:({extraData:{account:e,contractKeys:t=[]}})=>{let{ethereumWeb3:{library:a,chainId:o}}=(0,v.useContext)(w.A),r=t.length>1,{calls:n}=(0,l.Y5)(t.map(t=>({address:s.Ay[t].address,abi:s.Ay[t].abi,methodName:"sync",params:[e],web3Data:{account:e,library:a,chainId:o}}))),i=(0,g.A)(t[0]||"GaugeDelegation","sync"),d=(0,g.A)(c.ry.ethereum,"aggregate"),{send:u,TXObjects:p}=r?d:i;return{send:()=>r?u(n):u(e),TXObjects:p}}},syncVoteWeightsForAddress:{actionFactoryHook:()=>{let{ethereumWeb3:{account:e,library:t,chainId:a}}=(0,v.useContext)(w.A),{send:o,TXObjects:r}=(0,g.A)(c.ry.ethereum,"aggregate");return{send:({value:r})=>{let{calls:n}=(0,l.Y5)(["GaugeDelegation","DaoDelegation"].map(o=>({address:s.Ay[o].address,abi:s.Ay[o].abi,methodName:"sync",params:[r],web3Data:{account:e,library:t,chainId:a}})));return o(n)},TXObjects:r}}}},"ACTIONS"),S=(0,r.m)({approve:{actionFactoryHook:(e,t,a=!1)=>{let{send:o,TXObjects:r}=(0,g.A)(e,"approve");return{send:()=>o(s.Ay[t].address,a?0:c.V9.toFixed()),TXObjects:r}}}},"SPECIAL_ACTIONS");if(i.HL){for(let[e,t]of Array.from(Object.entries(D)))if(t.needsApproving&&!t.actionContractKey&&!t.getActionContractKey)throw Error(`Missing \`actionContractKey\` prop (or alternate \`getActionContractKey\` prop) on action with needsApproving > 0 [${e}]`)}},65972:(e,t,a)=>{"use strict";a.d(t,{A:()=>u});var o=a(67141),r=a(87233),n=a(15406),i=a(25223),s=a(48633),d=a(64904),c=a(30394);let l=e=>e.some(({status:e})=>"pending"===e),u=(e,t,a="ethereum",u)=>{let v={send:void 0},p=[],{[(0,c.P)(a)]:{account:A,library:C,signer:x,chainId:y}}=(0,o.useContext)(n.A),m="ethereum"===a?d.Ay[e]:d.Ay[a][e],[{send:k},g]=(0,o.useState)(v),[w,b]=(0,o.useState)(p),h=(0,o.useRef)(0);return(0,o.useEffect)(()=>{let e;if(m&&x&&(e=(0,r.f_)(m.address,m.abi,A,x,y)),C)return A&&x?g({send:async(...a)=>{let o=h.current;h.current+=1;let r=e=>{b(t=>t.map(t=>t.id===o?{...t,status:e}:t))}
18,n="pending";b(e=>e.concat({id:o,status:n}));let d=(0,s.A)({methodName:t,abi:m.abi,params:a});if(!e[d])throw console.error("Error below is relative to this contract instance:",e),Error(`useCacheSend couldn’t find method "${d}" on provided contract (contract logged above)`);let c=e.interface.encodeFunctionData(d,[...a]);return await x.sendTransaction({to:m.address,data:c,...void 0!==u?u:{}}).then(e=>{e.wait(1).then(()=>{r(n="success"),(0,i.nX)()})}).catch(e=>{console.log({err:e}),r(n="error")}),n}}):(g(v),b(e=>l(e)?e:p)),()=>{g(v),b(e=>l(e)?e:p)}},[A,C,x,y,e,t,JSON.stringify(u),m]),{send:k,TXObjects:w}}},70110:(e,t,a)=>{"use strict";a.r(t),a.d(t,{ACTIONS:()=>P,LANGUAGE:()=>S,SPECIAL_ACTIONS:()=>K});var o=a(65972),r=a(39842),n=a(15406),i=a(37851),s=a(67141),d=a(59472),c=a(92897),l=a(74320),u=a(95589),v=a(33027),p=a(65343),A=a(90276),C=a(64904),x=a(21080),y=a(4360),m=a(55951),k=a(37573),g=a(22750),w=a(43814),b=a(31804),h=a(81403),f=a(5901),F=a(8734),D=a(30394);let S=(0,p.m)({approve:["Approve","Approving…","Approved"],convertPrisma:["Convert","Converting…","Converted"],stakeCvxPrisma:["Stake","Staking…","Staked"],stakeLpToken:["Stake","Staking…","Staked"],stakeStabilityPool:["Deposit","Depositing…","Deposited"],unstakeLpToken:["Unstake","Unstaking…","Unstaked"],unstakeCvxPrisma:["Unstake cvxPRISMA","Unstaking cvxPRISMA…","Unstaked cvxPRISMA"],unstakeStabilityPool:["Withdraw","Withdrawing…","Withdrawn"],convertAndStakePrisma:["Convert & Stake","Converting & Staking…","Converted & Staked"],claimStakedCvxPrismaRewards:["Claim","Claiming…","Claimed"],claimOnPrismaBoostedRewards:["Claim","Claiming…","Claimed"],claimOnPrismaAllocPreclaim:["Claim","Claiming…","Claimed"],claimPrismaAirdrop:["Claim airdropped vePRISMA","Claiming…","Claimed airdropped vePRISMA"],claimAndConvertPrismaAirdrop:["Claim airdropped cvxPRISMA","Claiming…","Claimed airdropped cvxPRISMA"],claimAllPoolRewards:d.LANGUAGE.claimAllPoolRewards,claimPoolRewards:d.LANGUAGE.claimPoolRewards,harvestPoolRewards:d.LANGUAGE.harvestPoolRewards,claimCvxAirdrop:d.LANGUAGE.claimCvxAirdrop,unstakeAndWithdrawDexLpToken:c.LANGUAGE.unstakeAndWithdrawDexLpToken,depositAndStakeDexLpToken:c.LANGUAGE.depositAndStakeDexLpToken,depositDexLpToken:c.LANGUAGE.depositDexLpToken,unstakeDexLpToken:c.LANGUAGE.unstakeDexLpToken,stakeWrappedDexLpToken:c.LANGUAGE.stakeWrappedDexLpToken,withdrawWrappedDexLpToken:c.LANGUAGE.withdrawWrappedDexLpToken},"LANGUAGE"),P=(0,p.m)({claimAllPoolRewards:d.ACTIONS.claimAllPoolRewards,claimPoolRewards:d.ACTIONS.claimPoolRewards,claimAllSelected:d.ACTIONS.claimAllSelected,harvestPoolRewards:d.ACTIONS.harvestPoolRewards,claimCvxAirdrop:d.ACTIONS.claimCvxAirdrop,unstakeAndWithdrawDexLpToken:c.ACTIONS.unstakeAndWithdrawDexLpToken,depositAndStakeDexLpToken:c.ACTIONS.depositAndStakeDexLpToken,depositDexLpToken:c.ACTIONS.depositDexLpToken,unstakeDexLpToken:c.ACTIONS.unstakeDexLpToken,stakeWrappedDexLpToken:c.ACTIONS.stakeWrappedDexLpToken,withdrawWrappedDexLpToken:c.ACTIONS.withdrawWrappedDexLpToken,claimDexPoolRewards:c.ACTIONS.claimDexPoolRewards,convertPrisma:{balanceHook:()=>{let e=(0,s.useContext)(x.A);return e?.[u.Ay.prisma.contractKey]},inputCoin:u.Ay.prisma,needsApproving:1,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,o.A)("PrismaDepositor","deposit"),a=(0,r.A)(u.Ay.prisma.contractKey,"balanceOf",C.Ay.PrismaDepositor.address),n=(0,l.wt)(a,u.Ay.prisma.decimals);return{send:({amount:t,decimals:a})=>{let o=n.plus(t).gte(h.Y9);return e((0,l.DF)(t,a),o)},TXObjects:t}},actionContractKey:"PrismaDepositor"},stakeCvxPrisma:{balanceHook:()=>{let e=(0,s.useContext)(x.A);return e?.[u.Ay.cvxprisma.contractKey]},inputCoin:u.Ay.cvxprisma,needsApproving:1,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,o.A)("CvxPrismaStaking","stake","ethereum");return{send:({amount:t,decimals:a})=>e((0,l.DF)(t,a)),TXObjects:t}},actionContractKey:"CvxPrismaStaking"},convertAndStakePrisma:{balanceHook:()=>{let e=(0,s.useContext)(x.A);return e?.[u.Ay.prisma.contractKey]},inputCoin:u.Ay.prisma,needsApproving:1,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,o.A)("CvxPrismaStaking","deposit","ethereum"),a=(0,r.A)(u.Ay.prisma.contractKey,"balanceOf",C.Ay.PrismaDepositor.address),n=(0,l.wt)(a,u.Ay.prisma.decimals);return{send:({amount:t,decimals:a})=>{let o=n.plus(t).gte(h.Y9);return e((0,l.DF)(t,a),o)},TXObjects:t}},actionContractKey:"CvxPrismaStaking",apyHook:e=>{let t=(0,s.useContext)(y.A),a=t?.CvxPrismaStaking?.rewardRates.map(([e,t])=>[e,t.times(F.Q)]);return void 0!==a&&e?.areCurveTokenPricesLoaded?a.map(([t,a])=>[t,a.times(e.get(t.address)||0).div(e.get(u.Ay.cvxprisma.address)).times(100)]):void 0}},unstakeCvxPrisma:{balanceHook:()=>{let e=(0,s.useContext)(x.A);return e?.CvxPrismaStaking},tvlHook:()=>{let e=(0,s.useContext)(k.A),t=e?.CvxPrismaStaking,a=(0,s.useContext)(g.A),o=a?.get(u.Ay.cvxprisma.address);return void 0!==t&&void 0!==o?t.times(o):void 0},inputCoin:u.Ay.cvxprisma,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,o.A)("CvxPrismaStaking","withdraw","ethereum");return{send:({amount:t,decimals:a})=>e((0,l.DF)(t,a)),TXObjects:t}}},claimStakedCvxPrismaRewards:{rewardsBalancesHook:()=>{let e=(0,s.useContext)(g.A),t=(0,s.useContext)(w.A),a=t?.CvxPrismaStaking;return void 0!==a&&e?.areCurveTokenPricesLoaded?a.map(([t,a])=>[t,a,a.times(e.get(t.address))]):[]},inputCoin:u.Ay.crv,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,o.A)("CvxPrismaStaking","getReward"),{ethereumWeb3:{account:a}}=(0,s.useContext)(n.A);return{send:()=>e(a),TXObjects:t}}},claimPrismaAirdrop:{actionFactoryHook:({extraData:{airdropId:e}})=>{let{send:t,TXObjects:a}=(0,o.A)("vecrv"===e?"PrismaAirdropVecrv":"PrismaAirdropPoints","claim"),{ethereumWeb3:{account:r}}=(0,s.useContext)(n.A);return{send:({amount:e,extraData:{proof:a,index:o}})=>{t(r,r,o,(0,l.DF)(e,0),a)},TXObjects:a}}},claimAndConvertPrismaAirdrop:{actionFactoryHook:({extraData:{airdropId:e}})=>{let{send:t,TXObjects:a}=(0,o.A)("vecrv"===e?"PrismaAirdropVecrv":"PrismaAirdropPoints","claim"),{ethereumWeb3:{account:r}}=(0,s.useContext)(n.A);return{send:({amount:e,extraData:{proof:a,index:o}})=>{t(r,A.system.voteProxy,o,(0,l.DF)(e,0),a)},TXObjects:a}}}
18,claimOnPrismaBoostedRewards:{actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,o.A)("PrismaVault","batchClaimRewards"),{ethereumWeb3:{account:a}}=(0,s.useContext)(n.A);return{send:({extraData:{earnedOnPrisma:t}})=>{let o=Array.from(Object.entries(t.withConvexBoost.earned)).filter(([,e])=>e.some(([e,t])=>e===u.Ay.prisma?t.gt(1):t.gt(0))).map(([e])=>e);e(a,v.cF,o,3e3)},TXObjects:t}}},claimOnPrismaAllocPreclaim:{needsApproving:1,customApproveActionButtonBehavior:{buttonCopy:["Delegate Claiming","Delegating…","Delegated"],useAllowanceHook:()=>{let{ethereumWeb3:{account:e}}=(0,s.useContext)(n.A);return(0,r.A)("AllocationVesting","isApprovedDelegate",e,C.Ay.AllocationClaiming.address)},actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,o.A)("AllocationVesting","setDelegateApproval");return{send:()=>e(C.Ay.AllocationClaiming.address,!0),TXObjects:t}}},actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,o.A)("AllocationClaiming","claimToConvexFull");return{send:()=>e(),TXObjects:t}}},stakeLpToken:{balanceHook:({actionPool:e})=>{let t=(0,s.useContext)(x.A);return t?.[e.underlyingTokenContractKey]},getInputCoin:({actionPool:e})=>({...e.curvePool.lpTokenInfo,contractKey:e.underlyingTokenContractKey,decimals:18}),needsApproving:1,actionFactoryHook:({extraData:e})=>{let{stakingTokenContractKey:t,curvePool:{blockchainId:a}}=e.actionPool,{send:r,TXObjects:i}=(0,o.A)(t,"deposit",a),{[(0,D.P)(a)]:{account:d}}=(0,s.useContext)(n.A);return{send:({amount:e,decimals:t})=>r(d,(0,l.DF)(e,t)),TXObjects:i}},getActionContractKey:({actionPool:e})=>e.stakingTokenContractKey},unstakeLpToken:{balanceHook:({actionPool:e})=>{let t=(0,s.useContext)(x.A);return t?.[e.underlyingTokenContractKey]},getInputCoin:({actionPool:e})=>({...e.curvePool.lpTokenInfo,contractKey:e.underlyingTokenContractKey,decimals:18}),needsApproving:1,actionFactoryHook:({extraData:e})=>{let{stakingTokenContractKey:t,curvePool:{blockchainId:a}}=e.actionPool,{send:r,TXObjects:i}=(0,o.A)(t,"deposit",a),{[(0,D.P)(a)]:{account:d}}=(0,s.useContext)(n.A);return{send:({amount:e,decimals:t})=>r(d,(0,l.DF)(e,t)),TXObjects:i}},getActionContractKey:({actionPool:e})=>e.stakingTokenContractKey},unstakeLpToken:{balanceHook:({actionPool:e})=>{let t=(0,s.useContext)(x.A);return t?.[e.stakingTokenContractKey]},getInputCoin:({actionPool:e})=>({...e.curvePool.lpTokenInfo,contractKey:e.underlyingTokenContractKey,decimals:18}),actionFactoryHook:({extraData:e})=>{let{stakingTokenContractKey:t,curvePool:{blockchainId:a}}=e.actionPool,{send:r,TXObjects:i}=(0,o.A)(t,"withdraw",a),{[(0,D.P)(a)]:{account:d}}=(0,s.useContext)(n.A);return{send:({amount:e,decimals:t})=>r(d,(0,l.DF)(e,t)),TXObjects:i}}},stakeStabilityPool:{balanceHook:({stablecoin:e})=>{let t=(0,s.useContext)(x.A);return t?.[u.Ay[e].contractKey]},getInputCoin:({stablecoin:e})=>u.Ay[e],actionFactoryHook:({extraData:{stablecoin:e}})=>{let{send:t,TXObjects:a}=(0,o.A)("mkusd"===e?"StabilityPoolMkusd":"StabilityPoolUltra","provideToSP");return{send:({amount:e,decimals:a})=>t((0,l.DF)(e,a)),TXObjects:a}},rewardsBalancesHook:e=>{let t=(0,s.useContext)(m.A);return t?.withConvexBoost.earned[(0,f.lc)(C.Ay["mkusd"===e?"StabilityPoolMkusd":"StabilityPoolUltra"].address)]},apyHook:(e,t)=>{let a=(0,s.useContext)(m.A),o=a?.rewardUsdRates[(0,f.lc)(C.Ay["mkusd"===e?"StabilityPoolMkusd":"StabilityPoolUltra"].address)];return void 0!==o&&void 0!==t?o.map(([e,,a])=>[e,(0,i.A)(a).div(t).times(100)]):void 0}},unstakeStabilityPool:{balanceHook:({stablecoin:e})=>{let t=(0,s.useContext)(x.A);return t?.["mkusd"===e?"StabilityPoolMkusd":"StabilityPoolUltra"]},getInputCoin:({stablecoin:e})=>u.Ay[e],actionFactoryHook:({extraData:{stablecoin:e}})=>{let{send:t,TXObjects:a}=(0,o.A)("mkusd"===e?"StabilityPoolMkusd":"StabilityPoolUltra","withdrawFromSP");return{send:({amount:e,decimals:a})=>t((0,l.DF)(e,a)),TXObjects:a}}}},"ACTIONS"),K=(0,p.m)({approve:{actionFactoryHook:(e,t,a=!1)=>{let{send:r,TXObjects:n}=(0,o.A)(e,"approve");return{send:()=>r(C.Ay[t].address,a?0:v.V9.toFixed()),TXObjects:n}}}},"SPECIAL_ACTIONS");if(b.HL){for(let[e,t]of Array.from(Object.entries(P)))if(t.needsApproving&&!t.customApproveActionButtonBehavior&&!t.actionContractKey&&!t.getActionContractKey)throw Error(`Missing \`actionContractKey\` prop (or alternate \`getActionContractKey\` prop) on action with needsApproving > 0 [${e}]`)}},73553:(e,t,a)=>{"use strict";a.d(t,{A:()=>i});var o=a(36027),r=a(49333),n=a(33027);let i=Number(window.ethereum?.chainId||0)===n.o1.polygon[0]?new o.k(window.ethereum):new r.FR(n.ax.polygon[0],void 0,{staticNetwork:!0})},74320:(e,t,a)=>{"use strict";a.d(t,{DF:()=>i,tT:()=>n,wt:()=>r});var o=a(37851);let r=(e,t)=>"bigint"==typeof e?(0,o.A)(e.toString()).div((0,o.A)(10).pow(t)):void 0!==e?(0,o.A)(e).div((0,o.A)(10).pow(t)):void 0,n=e=>"bigint"==typeof e?(0,o.A)(e.toString()):(0,o.A)(e),i=(e,t)=>{if(void 0===e||void 0===t)throw Error("Missing some mandatory parameters for numberToUint(number, decimals)");return(0,o.A)(e).times(new o.A(10).pow(t)).toFixed()}},78989:(e,t,a)=>{"use strict";a.d(t,{A:()=>
18o});let o=a(67141).createContext()},82840:(e,t,a)=>{"use strict";a.d(t,{G:()=>m});var o=a(32016),r=a(84401),n=a(92767),i=a(97739),s=a(88193),d=a(803),c=a(38842),l=a(21404),u=a(52106),v=a(99754),p=a(33027),A=a(78590),C=a(66629);let x="5ef0bb18011ba8c281f3128255163a17",y={id:1337,name:"Localhost",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["http://127.0.0.1:8545"]}}},m=(0,o.Z)({chains:[n.r,i.D,s.n,d.d,y],connectors:[(0,c.b)(),(0,l.u)({projectId:x,optionalChains:p.$Y,rpcMap:(0,C.pl)(Array.from(Object.entries(p.O4)).map(([e,t])=>[Number(p.o1[e][0]),t])),showQrModal:!0,qrModalOptions:{projectId:x},metadata:{name:"Convex",description:"Convex Finance",url:A.Ay.APP_URL||"https://www.convexfinance.com",icons:[`${A.Ay.APP_URL||"https://www.convexfinance.com"}/static/icons/svg/cvx.svg`]}}),(0,u.m)({appName:"Convex",appLogoUrl:`${A.Ay.APP_URL||"https://www.convexfinance.com"}/static/icons/svg/cvx.svg`}),(0,v.g)()],transports:{[n.r.id]:(0,r.L)(p.ax.ethereum[0]),[i.D.id]:(0,r.L)(p.ax.arbitrum[0]),[s.n.id]:(0,r.L)(p.ax.polygon[0]),[d.d.id]:(0,r.L)(p.ax.fraxtal[0]),[y.id]:(0,r.L)("http://127.0.0.1:8545")},multiInjectedProviderDiscovery:!0,ssr:!0})},84260:(e,t,a)=>{"use strict";a.d(t,{A:()=>k});var o=a(67141),r=a(17654),n=a.n(r),i=a(87233),s=a(74320),d=a(41732),c=a(48514);let l=n()(async(e,t,a,o,r,n,l)=>{if("0"===o||!n||!r)return 0;await (0,d.Kc)(c.isContractMetadataLoaded);let u=c.default[e],v=(0,i.GP)(u.address,u.abi,r,n,l),p=await v.get_dy(t,a,o);return(0,s.tT)(p).div(o)},{promise:!0,maxAge:2e4,normalizer:([e,t,a,o,r,n,i])=>`${e}-${t}-${a}-${o}-${typeof n}`});var u=a(37851),v=a(5901),p=a(80646),A=a(15406),C=a(48491),x=a(66629);let y={ethereum:[(0,v.lc)("0x971add32ea87f10bd192671630be3be8a11b8623"),(0,v.lc)("0x6a9014fb802dcc5efe3b97fd40aaa632585636d0"),(0,v.lc)("0xfbb481a443382416357fa81f16db5a725dc6cec8"),(0,v.lc)("0x1062fd8ed633c1f080754c19317cb3912810b5e5"),(0,v.lc)("0x3b21c2868b6028cfb38ff86127ef22e68d16d53b")],fraxtal:[(0,v.lc)("0x3a38e9b0b5cb034de01d5298fc2ed2d793c0c36f")]},m=Object.keys(y),k=(e,t,a)=>{let[r,n]=(0,o.useState)(void 0),{ethereumWeb3:i,fraxtalWeb3:s}=(0,o.useContext)(A.A),[k,g]=(0,p.A)(void 0),w=e.blockchainId??t.blockchainId,{account:b,library:h,chainId:f}="ethereum"===w?i:s;return(0,o.useEffect)(()=>{(0,d.Kc)(()=>(0,C.arePoolsLoaded)()&&(0,c.isContractMetadataLoaded)()).then(()=>{n((0,x.pl)(m.map(e=>{let t=(0,C.getCurvePools)(e).filter(({address:t})=>y[e].includes((0,v.lc)(t)));return[e,t]})))})},[]),(0,o.useEffect)(()=>{if(void 0!==r&&(0,u.A)(a).gt(0)){let o=r[w].find(({coins:a})=>a.find(({address:a})=>(0,v.lc)(a)===(0,v.lc)(e.address)||(0,v.lc)(a)===(0,v.lc)(t.address)));if(void 0!==o){let r=o.curveSwapContractKey,n=o.coins.findIndex(({address:t})=>(0,v.lc)(t)===(0,v.lc)(e.address)),i=o.coins.findIndex(({address:e})=>(0,v.lc)(e)===(0,v.lc)(t.address)),s=(0,u.A)(a).times((0,u.A)(10).pow(o.coins[n].decimals));l(r,n,i,s.toFixed(),b,h,f).then(e=>{g(e)})}}},[r,e,t,a,b,h,f]),k}},91139:(e,t,a)=>{"use strict";a.d(t,{A:()=>u});var o=a(66305),r=a(96295),n=a.n(r),i=a(67141),s=a(58511),d=a.n(s),c=a(80543);let l=({big:e=!1})=>(0,o.jsxs)(i.Fragment,{children:[(0,o.jsx)("div",{className:n().dynamic([["f8289560b40eb68",[e?"16px":"12px",e?"16px":"12px","3px",c.Tj.dark,"3px"]]])+" spinner"}),(0,o.jsx)(n(),{id:"f8289560b40eb68",dynamic:[e?"16px":"12px",e?"16px":"12px","3px",c.Tj.dark,"3px"],children:`.spinner.__jsx-style-dynamic-selector::after{content:"";display:block;width:${e?"16px":"12px"};height:${e?"16px":"12px"};border-radius:50%;border:3px solid ${c.Tj.dark};border-left:3px solid transparent;transform:translatez(0);animation:spin 1.1s infinite linear}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}`})]});l.propTypes={big:d().bool};let u=l},92897:(e,t,a)=>{"use strict";a.r(t),a.d(t,{ACTIONS:()=>V,LANGUAGE:()=>W,SPECIAL_ACTIONS:()=>E});var o=a(67141),r=a(37851),n=a(59472),i=a(74320),s=a(87233),d=a(95589),c=a(33027),l=a(65343),u=a(5901),v=a(66629),p=a(34668),A=a(64904),C=a(21080),x=a(49685),y=a(78989),m=a(4360),k=a(37573),g=a(22750),w=a(43814),b=a(96925),h=a(60920),f=a(38498),F=a(31804),D=a(81403),S=a(8734),P=a(8546),K=a(80646),T=a(18249),R=a(65972),L=a(39842),I=a(15406),H=a(64107);let W=(0,l.m)({approve:["Approve","Approving…","Approved"],convertFxs:["Convert","Convert
18ing…","Converted"],convertFxsFraxtal:["Convert","Converting…","Converted"],convertFpis:["Convert","Converting…","Converted"],stakeCvxFxs:["Stake","Staking…","Staked"],stakeCvxFxsFraxtal:["Stake","Staking…","Staked"],migrateFpisFraxtal:["Migrate","Migrating…","Migrated"],migrateCvxfpisFraxtal:["Migrate","Migrating…","Migrated"],unstakeCvxFxs:["Unstake cvxFXS","Unstaking cvxFXS…","Unstaked cvxFXS"],unstakeCvxFxsFraxtal:["Unstake cvxFXS","Unstaking cvxFXS…","Unstaked cvxFXS"],unstakeCvxFpis:["Unstake cvxFPIS","Unstaking cvxFPIS…","Unstaked cvxFPIS"],convertAndStakeFxs:["Convert & Stake","Converting & Staking…","Converted & Staked"],convertAndStakeFxsFraxtal:["Convert & Stake","Converting & Staking…","Converted & Staked"],convertAndStakeFpis:["Convert & Stake","Converting & Staking…","Converted & Staked"],stakeWrappedDexLpToken:["Stake","Staking…","Staked"],addLiquidityToUniv2Interface:["Deposit","Depositing…","Deposited"],stakeInVault:["Stake","Staking…","Staked"],stakeInVaultLock:["Add to lock","Adding…","Added"],stakeInConvexVaultLock:["Add to lock","Adding…","Added"],stakeInConvexVaultLockAlreadyWrapped:["Add to lock","Adding…","Added"],wrapForConvexFarmVault:["Deposit","Depositing…","Deposited"],extendVaultLockDuration:["Extend","Extending…","Extended"],unwrapForConvexFarmVault:["Unwrap","Unwrapping…","Unwrapped"],wrapForConvexFarmAndStakeInVault:["Stake","Staking…","Staked"],unstakeAndWithdrawDexLpToken:["Unstake & Withdraw","Unstaking & Withdrawing…","Unstaked & Withdrawn"],depositAndStakeDexLpToken:["Deposit & Stake","Depositing & Staking…","Deposited & Staked"],depositDexLpToken:["Deposit","Depositing…","Deposited"],unstakeDexLpToken:["Unstake","Unstaking…","Unstaked"],depositFxb:["Deposit","Depositing…","Deposited"],withdrawFxb:["Unstake","Unstaking…","Unstaked"],withdrawWrappedDexLpToken:["Withdraw","Withdrawing…","Withdrawn"],claimVaultRewards:["Claim","Claiming…","Claimed"],claimStakedCvxFxsRewards:["Claim","Claiming…","Claimed"],claimStakedCvxFxsRewardsFraxtal:["Claim","Claiming…","Claimed"],claimStakedCvxFpisRewards:["Claim","Claiming…","Claimed"],getRewardOnConvexWrapper:["Claim","Claiming…","Claimed"],claimAllVaultRewards:["Claim All","Claiming…","Claimed All"],claimAllPoolRewards:n.LANGUAGE.claimAllPoolRewards,claimPoolRewards:n.LANGUAGE.claimPoolRewards,harvestPoolRewards:n.LANGUAGE.harvestPoolRewards,claimAllFraxlendWrapperRewards:n.LANGUAGE.claimAllFraxlendWrapperRewards,claimCvxAirdrop:n.LANGUAGE.claimCvxAirdrop,claimFpisAirdrop:["Claim airdropped FPIS","Claiming…","Claimed airdropped FPIS"],createVault:["Create vault","Creating vault…","Vault created"],withdrawFromVault:["Withdraw expired","Withdrawing…","Withdrawn"],withdrawFromConvexVaultAndUnwrap:["Withdraw expired","Withdrawing…","Withdrawn"],claimAndWithdrawFromConvexVaultAndUnwrapForPoolId3:["Claim and withdraw expired","Claiming and withdrawing…","Claimed and withdrawn"]},"LANGUAGE"),V=(0,l.m)({claimAllSelected:n.ACTIONS.claimAllSelected,claimAllPoolRewards:n.ACTIONS.claimAllPoolRewards,claimPoolRewards:n.ACTIONS.claimPoolRewards,harvestPoolRewards:n.ACTIONS.harvestPoolRewards,claimAllFraxlendWrapperRewards:n.ACTIONS.claimAllFraxlendWrapperRewards,claimCvxAirdrop:n.ACTIONS.claimCvxAirdrop,convertFxs:{balanceHook:()=>{let e=(0,o.useContext)(C.A);return e?.[d.Ay.fxs.contractKey]},inputCoin:d.Ay.fxs,needsApproving:1,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,R.A)("FxsDepositor","deposit"),a=(0,L.A)(d.Ay.fxs.contractKey,"balanceOf",A.Ay.FxsDepositor.address),o=(0,i.wt)(a,d.Ay.fxs.decimals);return{send:({amount:t,decimals:a})=>{let r=o.plus(t).gte(D.Z$);return e((0,i.DF)(t,a),r)},TXObjects:t}},actionContractKey:"FxsDepositor"},convertFxsFraxtal:{balanceHook:()=>{let e=(0,o.useContext)(x.A);return e?.[d.Ay.fxs_fraxtal.contractKey]},inputCoin:d.Ay.fxs_fraxtal,needsApproving:1,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,R.A)("FxsDepositorFraxtal","deposit","fraxtal");return{send:({amount:t,decimals:a})=>e((0,i.DF)(t,a),c.cF),TXObjects:t}},actionContractKey:"FxsDepositorFraxtal"},migrateFpisFraxtal:{balanceHook:()=>{let e=(0,o.useContext)(x.A);return e?.[d.Ay.fpis_fraxtal.contractKey]},inputCoin:d.Ay.fpis_fraxtal,needsApproving:1,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,R.A)("FpisMigratorFraxtal","migrate","fraxtal");return{send:({amount:t,decimals:a})=>e((0,i.DF)(t,a),0),TXObjects:t}},actionContractKey:"FpisMigratorFraxtal"},migrateCvxfpisFraxtal:{balanceHook:()=>{let e=(0,o.useContext)(x.A);return e?.[d.Ay.cvxfpis_fraxtal.contractKey]},inputCoin:d.Ay.cvxfpis_fraxtal,needsApproving:1,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,R.A)("FpisMigratorFraxtal","migrate","fraxtal");return{send:({amount:t,decimals:a})=>e(0,(0,i.DF)(t,a)),TXObjects:t}},actionContractKey:"FpisMigratorFraxtal"},convertFpis:{balanceHook:()=>{let e=(0,o.useContext)(C.A);return e?.[d.Ay.fpis.contractKey]},inputCoin:d.Ay.fpis,needsApproving:1,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,R.A)("FpisDepositor","deposit"),a=(0,L.A)(d.Ay.fpis.contractKey,"balanceOf",A.Ay.FpisDepositor.address),o=(0,i.wt)(a,d.Ay.fpis.decimals);return{send:({amount:t,decimals:a})=>{let r=o.plus(t).gte(D.iF);return e((0,i.DF)(t,a),r)},TXObjects:t}},actionContractKey:"FpisDepositor"},stakeCvxFxs:{balanceHook:()=>{let e=(0,o.useContext)(C.A);
18return e?.[d.Ay.cvxfxs.contractKey]},inputCoin:d.Ay.cvxfxs,needsApproving:1,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,R.A)("CvxFxsStaking","stake");return{send:({amount:t,decimals:a})=>e((0,i.DF)(t,a)),TXObjects:t}},actionContractKey:"CvxFxsStaking"},stakeCvxFxsFraxtal:{balanceHook:()=>{let e=(0,o.useContext)(x.A);return e?.[d.Ay.cvxfxs_fraxtal.contractKey]},inputCoin:d.Ay.cvxfxs_fraxtal,needsApproving:1,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,R.A)("StakedCvxFxsFraxtal","stake","fraxtal"),{ethereumWeb3:{account:a}}=(0,o.useContext)(I.A);return{send:({amount:t,decimals:o})=>e((0,i.DF)(t,o),a),TXObjects:t}},actionContractKey:"StakedCvxFxsFraxtal"},convertAndStakeFxs:{balanceHook:()=>{let e=(0,o.useContext)(C.A);return e?.[d.Ay.fxs.contractKey]},inputCoin:d.Ay.fxs,needsApproving:1,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,R.A)("CvxFxsStaking","deposit"),a=(0,L.A)(d.Ay.fxs.contractKey,"balanceOf",A.Ay.FxsDepositor.address),o=(0,i.wt)(a,d.Ay.fxs.decimals);return{send:({amount:t,decimals:a})=>{let r=o.plus(t).gte(D.Z$);return e((0,i.DF)(t,a),r)},TXObjects:t}},actionContractKey:"CvxFxsStaking",apyHook:e=>{let t=(0,o.useContext)(m.A),a=t?.CvxFxsStaking?.rewardRates.map(([e,t])=>[e,t.times(S.Q)]);return void 0!==a&&e?.areCurveTokenPricesLoaded?a.map(([t,a])=>[t,a.times(e.get(t.address)||0).div(e.get(d.Ay.cvxfxs.address)||1).times(100)]):void 0}},convertAndStakeFxsFraxtal:{balanceHook:()=>{let e=(0,o.useContext)(x.A);return e?.[d.Ay.fxs_fraxtal.contractKey]},inputCoin:d.Ay.fxs_fraxtal,needsApproving:1,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,R.A)("FxsDepositorFraxtal","deposit","fraxtal");return{send:({amount:t,decimals:a})=>e((0,i.DF)(t,a),A.Ay.fraxtal.StakedCvxFxsFraxtal.address),TXObjects:t}},actionContractKey:"FxsDepositorFraxtal",apyHook:()=>{let e=(()=>{let[e,t]=(0,K.A)(void 0);return(0,o.useEffect)(()=>{(0,T.A)().then(({rewards:e})=>{t(e)})},[void 0]),e})();return(0,o.useMemo)(()=>{if(void 0!==e)return e.map(({tokenAddress:e,tokenSymbol:t,apr:a})=>[{address:e,symbol:t,blockchainId:"fraxtal"},(0,r.A)(a)])},[e])}},convertAndStakeFpis:{balanceHook:()=>{let e=(0,o.useContext)(C.A);return e?.[d.Ay.fpis.contractKey]},inputCoin:d.Ay.fpis,needsApproving:1,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,R.A)("CvxFpisStaking","deposit"),a=(0,L.A)(d.Ay.fpis.contractKey,"balanceOf",A.Ay.FpisDepositor.address),o=(0,i.wt)(a,d.Ay.fpis.decimals);return{send:({amount:t,decimals:a})=>{let r=o.plus(t).gte(D.iF);return e((0,i.DF)(t,a),r)},TXObjects:t}},actionContractKey:"CvxFpisStaking",apyHook:e=>{let t=(0,o.useContext)(m.A),a=t?.CvxFpisStaking?.rewardRates.map(([e,t])=>[e,t.times(S.Q)]);return void 0!==a&&e?.areCurveTokenPricesLoaded?a.map(([t,a])=>[t,a.times(e.get(t.address)||0).div(e.get(d.Ay.cvxfpis.address)||1).times(100)]):void 0}},unstakeCvxFxs:{balanceHook:()=>{let e=(0,o.useContext)(C.A);return e?.CvxFxsStaking},tvlHook:()=>{let e=(0,o.useContext)(k.A),t=e?.CvxFxsStaking,a=(0,o.useContext)(g.A),r=a?.get(d.Ay.cvxfxs.address);return void 0!==t&&void 0!==r?t.times(r):void 0},inputCoin:d.Ay.cvxfxs,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,R.A)("CvxFxsStaking","withdraw");return{send:({amount:t,decimals:a})=>e((0,i.DF)(t,a)),TXObjects:t}}},unstakeCvxFxsFraxtal:{balanceHook:()=>{let e=(0,o.useContext)(x.A);return e?.StakedCvxFxsFraxtal},tvlHook:()=>{let e=(0,o.useContext)(P.A),t=e?.StakedCvxFxsFraxtal,a=(0,o.useContext)(g.A),r=a?.get(d.Ay.cvxfxs.address);return void 0!==t&&void 0!==r?t.times(r):void 0},inputCoin:d.Ay.cvxfxs_fraxtal,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,R.A)("StakedCvxFxsFraxtal","withdraw","fraxtal");return{send:({amount:t,decimals:a})=>e((0,i.DF)(t,a),!1),TXObjects:t}}},unstakeCvxFpis:{balanceHook:()=>{let e=(0,o.useContext)(C.A);return e?.CvxFpisStaking},tvlHook:()=>{let e=(0,o.useContext)(k.A),t=e?.CvxFpisStaking,a=(0,o.useContext)(g.A),r=a?.get(d.Ay.cvxfpis.address);return void 0!==t&&void 0!==r?t.times(r):void 0},inputCoin:d.Ay.cvxfpis,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,R.A)("CvxFpisStaking","withdraw");return{send:({amount:t,decimals:a})=>e((0,i.DF)(t,a)),TXObjects:t}}},claimStakedCvxFxsRewards:{rewardsBalancesHook:()=>{let e=(0,o.useContext)(g.A),t=(0,o.useContext)(w.A),a=t?.CvxFxsStaking;return void 0!==a&&e?.areCurveTokenPricesLoaded?a.map(([t,a])=>[t,a,a.times(e?.get(t.address))]):[]},inputCoin:d.Ay.cvxfxs,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,R.A)("CvxFxsStaking","getReward"),{ethereumWeb3:{account:a}}=(0,o.useContext)(I.A);return{send:()=>e(a),TXObjects:t}}},claimStakedCvxFxsRewardsFraxtal:{rewardsBalancesHook:()=>{let e=(0,o.useContext)(g.A),t=(0,o.useContext)(b.A),a=t?.StakedCvxFxsFraxtal;return void 0!==a&&e?.areCurveTokenPricesLoaded?a.map(([t,a])=>[t,a,a.times(e?.get(t.address,"fraxtal"))]):[]},inputCoin:d.Ay.cvxfxs_fraxtal,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,R.A)("StakedCvxFxsFraxtal","getReward","fraxtal"),{ethereumWeb3:{account:a}}=(0,o.useContext)(I.A);return{send:()=>e(a),TXObjects:t}}},claimStakedCvxFpisRewards:{rewardsBalancesHook:()=>{let e=(0,o.useContext)(g.A),t=(0,o.useContext)(w.A),a=t?.CvxFpisStaking;return void 0!==a&&e?.areCurveTokenPricesLoaded?a.map(([t,a])=>[t,a,a.times(e?.get(t.address))]):[]},inputCoin:d.Ay.crv,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,R.A)("CvxFpisStaking","getReward"),{ethereumWeb3:{account:a}}=(0,o.useContext)(I.A);return{send:()=>e(a),TXObjects:t}}},claimDexPoolRewards:{rewardsBalancesHook:(e,t,a,o,r,n,i)=>{let s=e?.get(d.Ay.crv.address),c=e?.get(d.Ay.cvx.address),l={ethereum:t,arbitrum:a};return(0,v.pl)(i.map(a=>{if("ethereum"===a.blockchainId){let e=t?.[a.rewardContractKey],r=void 0!==e&&void 0!==s?e.times(s):void 0,i=n?.earned?.[a.rewardContractKey],l=(0,H.A)(o,e),u=void 0!==l&&void 0!==c?l.times(c):void 0;return[a.key,[...void 0===e||void 0===r?[]:[[d.Ay.crv,e,r]],...void 0===i?[]:i.filter(({earnedBN:e,earnedUsdValueBN:t})=>void 0!==e&&void 0!==t).map(({coin:e,earnedBN:t,earnedUsdValueBN:a})=>
18[e,t,a]),...void 0===l||void 0===u?[]:[[d.Ay.cvx,l,u]]]]}{let t=l[a.blockchainId]?.[a.rewardContractKey];return[a.key,void 0!==t?t.map(([t,o])=>{let r=e?.get(t.address,a.blockchainId),n=void 0!==r?o.times(r):void 0;return[t,o,n]}):[]]}}))},actionFactoryHook:({extraData:e})=>{let{send:t,TXObjects:a}=(0,R.A)(e.actionPool.rewardContractKey,"getReward"),{ethereumWeb3:{account:r}}=(0,o.useContext)(I.A);return{send:()=>t(r,!0),TXObjects:a}}},depositAndStakeDexLpToken:{balanceHook:({actionPool:e})=>{let t=(0,o.useContext)(C.A);return t?.[e.lpTokenContractKey]},getInputCoin:({actionPool:e})=>({...e.lpTokenInfo,contractKey:e.lpTokenContractKey,decimals:18}),needsApproving:1,actionFactoryHook:({useMaxValue:e})=>{if(e){let{send:e,TXObjects:t}=(0,R.A)("CurveBooster","depositAll");return{send:({extraData:t})=>e(t.actionPool.convexPoolData.id,!0),TXObjects:t}}{let{send:e,TXObjects:t}=(0,R.A)("CurveBooster","deposit");return{send:({amount:t,decimals:a,extraData:o})=>e(o.actionPool.convexPoolData.id,(0,i.DF)(t,a),!0),TXObjects:t}}},actionContractKey:"CurveBooster",apyHook:(e,t,a,n,i)=>{let{baseApy:s,crvPrice:c}=i?.[e.id]||{},l=(0,o.useContext)(y.A),u=(0,o.useContext)(m.A),A=!e.isKilled&&void 0!==u?.[e.rewardContractKey]?.periodFinish&&u[e.rewardContractKey].periodFinish.lt((0,p.j2)()),C=u?.[e.rewardContractKey]?.rewardRate.eq(0)||A?(0,r.A)(0):u?.[e.rewardContractKey]?.rewardRate.times(S.Q),x=(0,H.A)(a,C),k=(0,v.pl)((l?.rewardRate?.[e.rewardContractKey]||[]).map(({rewardRateUsdValueBN:t,rewardPeriodFinish:o,coin:i})=>[i.symbol,{coinAddress:i.address,apy:!a?.[e.rewardContractKey]||a?.[e.rewardContractKey].eq(0)||o.eq(0)?(0,r.A)(0):t?.times(S.Q)?.div(a[e.rewardContractKey])?.div(n).times(100)}])),g=Array.from(Object.entries(k)).filter(([e])=>"CVX"!==e).map(([e,{apy:t,coinAddress:a}])=>({name:e,apy:t,coinAddress:a})),w=(0,v.EJ)(g.map(({apy:e})=>e)),b=(0,v.EJ)(Array.from(Object.entries(k)).filter(([e])=>"CVX"===e).map(([,{apy:e}])=>e)),h=t?.get(d.Ay.cvx.address),f=void 0!==x&&void 0!==h&&void 0!==b?x.times(h).div(n).times(100).plus(b):void 0,F=void 0===C||void 0===c?void 0:C.eq(0)?(0,r.A)(0):C.times(c).div(n).times(100);return{cumulativeApy:void 0!==s&&void 0!==F&&void 0!==w&&void 0!==f?(0,r.A)(0).plus(s).plus(F).plus(w).plus(f):void 0,isPendingHarvest:A,baseApy:s,crvApy:F,cvxApy:f,additionalRewards:g}},projectedApyHook:({curveApys:e,tvl:t,cvxPrice:a,lpTokenPrice:n,actionPool:i})=>{let s=(0,o.useContext)(y.A),c=(0,v.pl)((s?.rewardRate?.[i.rewardContractKey]||[]).map(({rewardRateUsdValueBN:e,coin:a,rewardPeriodFinish:o})=>[a.symbol,{coinAddress:a.address,apy:t?.[i.rewardContractKey]?.eq(0)||o.eq(0)||void 0===n?(0,r.A)(0):e?.times(S.Q)?.div(t[i.rewardContractKey])?.div(n),periodFinish:o}])),l=(0,v.EJ)(Array.from(Object.values(c)).filter(({coinAddress:e})=>(0,u.lc)(e)===(0,u.lc)(d.Ay.cvx.address)).map(({apy:e})=>e)),{baseApy:p,crvApy:A,crvBoost:C,crvPrice:x}=e?.[i.id]||{},m=(void 0!==t?.[i.rewardContractKey]&&t?.[i.rewardContractKey].eq(0)?(0,r.A)(A).times(2.5):(0,r.A)(A)).times(1-D.$E),k=void 0!==t?.[i.rewardContractKey]&&t?.[i.rewardContractKey].eq(0)?(0,r.A)(2.5):C,g=D.KQ.includes(i.id)?l:0,w=(0,r.A)(m).div(100).div(x),b=(0,H.A)(t,w),h=void 0!==b&&void 0!==a&&void 0!==g?b.times(a).plus(g).times(100):void 0,f=Array.from(Object.entries(c)).filter(([e])=>"CVX"!==e).map(([e,{apy:t,periodFinish:a,coinAddress:o}])=>{let n=t?.times(100)||(0,r.A)(0),s=i.gaugeRewards?.find(({tokenAddress:e})=>(0,u.lc)(e)===(0,u.lc)(o))?.apy||0;return{name:e,apy:r.A.max(n,s),isPendingHarvest:!1,coinAddress:o}});return{cumulativeApy:void 0!==p&&void 0!==m&&void 0!==k&&void 0!==h?(0,r.A)(0).plus(p).plus(m).plus((0,v.EJ)(f.map(({apy:e})=>e))).plus(h):void 0,crvBoost:k,baseApy:p,crvApy:m,cvxApy:h,additionalRewards:f}}},stakeWrappedDexLpToken:{balanceHook:({actionPool:e})=>{let t=(0,o.useContext)(C.A);return t?.[e.wrappedLpTokenContractKey]},getInputCoin:({actionPool:e})=>({...e.lpTokenInfo,contractKey:e.wrappedLpTokenContractKey,decimals:18}),needsApproving:1,actionFactoryHook:({extraData:{actionPool:e}})=>{let{send:t,TXObjects:a}=(0,R.A)(e.rewardContractKey,"stake");return{send:({amount:e,decimals:a})=>t((0,i.DF)(e,a)),TXObjects:a}},getActionContractKey:({actionPool:e})=>e.rewardContractKey},unstakeAndWithdrawDexLpToken:{balanceHook:({actionPool:e})=>{let t=(0,o.useContext)(C.A);return t?.[e.rewardContractKey]},tvlHook:({actionPool:e})=>{let t=(0,o.useContext)(k.A),a=t?.[e.rewardContractKey],r=(0,o.useContext)(h.A),n=r?.get(e.address);return void 0!==a&&void 0!==n?a.times(n):void 0},getInputCoin:({actionPool:e})=>
18({...e.lpTokenInfo,contractKey:e.lpTokenContractKey,decimals:18}),actionFactoryHook:({extraData:{actionPool:e}})=>{let{send:t,TXObjects:a}=(0,R.A)(e.rewardContractKey,"withdrawAndUnwrap");return{send:({amount:e,decimals:a})=>t((0,i.DF)(e,a),!1),TXObjects:a}}},depositDexLpToken:{balanceHook:({actionPool:e})=>{let t=(0,o.useContext)(C.A);return t?.[e.lpTokenContractKey]},getInputCoin:({actionPool:e})=>({...e.lpTokenInfo,contractKey:e.lpTokenContractKey,decimals:18}),needsApproving:1,actionFactoryHook:({useMaxValue:e})=>{if(e){let{send:e,TXObjects:t}=(0,R.A)("CurveBooster","depositAll");return{send:({extraData:t})=>e(t.actionPool.convexPoolData.id,!1),TXObjects:t}}{let{send:e,TXObjects:t}=(0,R.A)("CurveBooster","deposit");return{send:({amount:t,decimals:a,extraData:o})=>e(o.actionPool.convexPoolData.id,(0,i.DF)(t,a),!1),TXObjects:t}}},actionContractKey:"CurveBooster"},unstakeDexLpToken:{balanceHook:({actionPool:e})=>{let t=(0,o.useContext)(C.A);return t?.[e.rewardContractKey]},getInputCoin:({actionPool:e})=>({...e.lpTokenInfo,contractKey:e.wrappedLpTokenContractKey,decimals:18}),actionFactoryHook:({extraData:{actionPool:e}})=>{let{send:t,TXObjects:a}=(0,R.A)(e.rewardContractKey,"withdraw");return{send:({amount:e,decimals:a})=>t((0,i.DF)(e,a),!1),TXObjects:a}}},depositFxb:{balanceHook:()=>{let e=(0,o.useContext)(x.A);return e?.[d.Ay.fxb_fraxtal.contractKey]},inputCoin:d.Ay.fxb_fraxtal,needsApproving:1,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,R.A)("WFxbFraxtal","deposit","fraxtal"),{ethereumWeb3:{account:a}}=(0,o.useContext)(I.A);return{send:({amount:t,decimals:o})=>e((0,i.DF)(t,o),a),TXObjects:t}},actionContractKey:"WFxbFraxtal"},withdrawFxb:{balanceHook:()=>{let e=(0,o.useContext)(x.A);return e?.[d.Ay.wfxb_fraxtal.contractKey]},inputCoin:d.Ay.wfxb_fraxtal,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,R.A)("WFxbFraxtal","withdraw","fraxtal"),{ethereumWeb3:{account:a}}=(0,o.useContext)(I.A);return{send:({amount:t,decimals:o})=>e((0,i.DF)(t,o),a,a),TXObjects:t}}},withdrawWrappedDexLpToken:{balanceHook:({actionPool:e})=>{let t=(0,o.useContext)(C.A);return t?.[e.wrappedLpTokenContractKey]},getInputCoin:({actionPool:e})=>({...e.lpTokenInfo,contractKey:e.wrappedLpTokenContractKey,decimals:18}),actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,R.A)("CurveBooster","withdraw");return{send:({amount:t,decimals:a,extraData:o})=>e(o.actionPool.convexPoolData.id,(0,i.DF)(t,a)),TXObjects:t}}},claimFpisAirdrop:{actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,R.A)("FpisAirdrop","claim"),{ethereumWeb3:{account:a}}=(0,o.useContext)(I.A);return{send:({amount:t,extraData:{proof:o}})=>{e(o.map(e=>`0x${e}`),a,(0,i.DF)(t,A.Ay.Fpis.decimals))},TXObjects:t}}},createVault:{actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,R.A)("Booster","createVault");return{send:({extraData:t})=>e(t.actionPool.id),TXObjects:t}},actionContractKey:"Booster"},wrapForConvexFarmVault:{balanceHook:({actionPool:e})=>{let t=(0,o.useContext)(C.A);return t?.[e.underlyingTokenContractKey]},getInputCoin:({actionPool:e})=>({address:e.underlyingCoin.address,name:e.underlyingCoin.name,symbol:e.underlyingCoin.symbol,contractKey:e.underlyingTokenContractKey,decimals:e.underlyingCoin.decimals,underlyingCoins:e.underlyingCurvePool.coins,customWrapperExternalId:"curve"}),needsApproving:1,actionFactoryHook:({extraData:{actionPool:e}})=>{let{send:t,TXObjects:a}=(0,R.A)(e.stakingTokenContractKey,"deposit"),{ethereumWeb3:{account:r}}=(0,o.useContext)(I.A);return{send:({amount:e,decimals:a})=>t((0,i.DF)(e,a),r),TXObjects:a}},getActionContractKey:({actionPool:e})=>e.stakingTokenContractKey},unwrapForConvexFarmVault:{balanceHook:({actionPool:e})=>{let t=(0,o.useContext)(C.A);return t?.[e.stakingTokenContractKey]},getInputCoin:({actionPool:e})=>({address:e.stakingTokenAddress,name:"convex"===e.type?`Wrapped ${e.underlyingCurvePool.coins.map(({symbol:e})=>e).join("/")}`:e.stakingTokenName,symbol:"convex"===e.type?`wcvx${e.underlyingCurvePool.coins.map(({symbol:e})=>e).join("")}`:e.stakingTokenSymbol,contractKey:e.stakingTokenContractKey,decimals:e.stakingTokenDecimals,..."convex"===e.type?{underlyingCoins:e.underlyingCurvePool.coins}:e.underlyingCoins?{underlyingCoins:e.underlyingCoins}:{underlyingCoin:e.underlyingCoin},customWrapperExternalId:e.subtype||e.type}),actionFactoryHook:({extraData:{actionPool:e}})=>{let{send:t,TXObjects:a}=(0,R.A)(e.stakingTokenContractKey,"withdrawAndUnwrap");return{send:({amount:e,decimals:a})=>t((0,i.DF)(e,a)),TXObjects:a}},getActionContractKey:({actionPool:e})=>e.stakingTokenContractKey},getRewardOnConvexWrapper:{actionFactoryHook:({extraData:{actionPool:e}})=>{let{send:t,TXObjects:a}=(0,R.A)(e.stakingTokenContractKey,"getReward"),{ethereumWeb3:{account:r}}=(0,o.useContext)(I.A);return{send:()=>t(r),TXObjects:a}},getActionContractKey:({actionPool:e})=>e.stakingTokenContractKey},wrapForConvexFarmAndStakeInVault:{balanceHook:({actionPool:e})=>{let t=(0,o.useContext)(C.A);return t?.[e.underlyingTokenContractKey]},getInputCoin:({actionPool:e})=>({address:e.underlyingCoin.address,name:e.underlyingCoin.name,symbol:e.underlyingCoin.symbol,contractKey:e.underlyingTokenContractKey,decimals:e.underlyingCoin.decimals,underlyingCoins:e.underlyingCurvePool.coins,customWrapperExternalId:"curve"}),needsApproving:1,actionFactoryHook:({extraData:{vault:e}})=>{let{send:t,TXObjects:a}=(0,R.A)(e.contractKey,"stakeLockedCurveLp");return{send:({amount:e,decimals:a,extraData:o})=>t((0,i.DF)(e,a),86400*Math.max(1,o.sliderValue)),TXObjects:a}},getActionContractKey:({vault:e})=>e.contractKey},stakeInVault:{balanceHook:({actionPool:e})=>{let t=(0,o.useContext)(C.A);return t?.[e.stakingTokenContractKey]},nftPositionsHook:({actionPool:e})=>(0,o.useContext)(f.A).filter(({poolId:t})=>t===e.id),getInputCoin:({actionPool:e})=>({address:e.stakingTokenAddress,name:"convex"===e.type?`Wrapped ${e.underlyingCurvePool.coins.map(({symbol
18:e})=>e).join("/")}`:e.stakingTokenName,symbol:"convex"===e.type?`wcvx${e.underlyingCurvePool.coins.map(({symbol:e})=>e).join("")}`:e.stakingTokenSymbol,contractKey:e.stakingTokenContractKey,decimals:e.stakingTokenDecimals,..."convex"===e.type?{underlyingCoins:e.underlyingCurvePool.coins}:e.underlyingCoins?{underlyingCoins:e.underlyingCoins}:{underlyingCoin:e.underlyingCoin},customWrapperExternalId:e.subtype||e.type}),needsApproving:1,actionFactoryHook:({extraData:{vault:e}})=>{let{send:t,TXObjects:a}=(0,R.A)(e.contractKey,"stakeLocked");return{send:({amount:e,decimals:a,extraData:o})=>t((0,i.DF)(e,a),86400*Math.max(1,o.sliderValue)),TXObjects:a}},nftActionFactoryHook:({extraData:{vault:e}})=>{let{send:t,TXObjects:a}=(0,R.A)(e.contractKey,"stakeLocked");return{send:({tokenId:e,extraData:a})=>t(e,86400*Math.max(1,a.sliderValue)),TXObjects:a}},getActionContractKey:({vault:e})=>e.contractKey},addLiquidityToUniv2Interface:{balanceHook:({actionPool:e},t)=>{let a=(0,o.useContext)(C.A);return a?.[e.underlyingTokensContractKeys[t]]},getInputCoin:({actionPool:e},t)=>({...e.underlyingCoins[t],contractKey:e.underlyingTokensContractKeys[t]}),needsApproving:2,actionFactoryHook:()=>{let{send:e,TXObjects:t}=(0,R.A)("TempleRouter","addLiquidity"),{ethereumWeb3:{account:a}}=(0,o.useContext)(I.A);return{send:({amounts:t,extraData:o})=>{let r=o.actionPool.underlyingCoins.map(({decimals:e})=>e);return e((0,i.DF)(t[0],r[0]),(0,i.DF)(t[1],r[1]),(0,i.DF)(.98*t[0],r[0]),(0,i.DF)(.98*t[1],r[1]),a,(0,p.j2)()+86400)},TXObjects:t}},actionContractKey:"TempleRouter"},stakeInVaultLock:{balanceHook:({actionPool:e})=>{let t=(0,o.useContext)(C.A);return t?.[e.stakingTokenContractKey]},getInputCoin:({actionPool:e})=>({address:e.stakingTokenAddress,name:"convex"===e.type?`Wrapped ${e.underlyingCurvePool.coins.map(({symbol:e})=>e).join("/")}`:e.stakingTokenName,symbol:"convex"===e.type?`wcvx${e.underlyingCurvePool.coins.map(({symbol:e})=>e).join("")}`:e.stakingTokenSymbol,contractKey:e.stakingTokenContractKey,decimals:e.stakingTokenDecimals,..."convex"===e.type?{underlyingCoins:e.underlyingCurvePool.coins}:e.underlyingCoins?{underlyingCoins:e.underlyingCoins}:{underlyingCoin:e.underlyingCoin},customWrapperExternalId:e.subtype||e.type}),needsApproving:1,actionFactoryHook:({extraData:{vault:e}})=>{let{send:t,TXObjects:a}=(0,R.A)(e.contractKey,"lockAdditional");return{send:({amount:e,decimals:a,extraData:{kekId:o}})=>t(o,(0,i.DF)(e,a)),TXObjects:a}},getActionContractKey:({vault:e})=>e.contractKey},extendVaultLockDuration:{balanceHook:()=>{},getInputCoin:()=>{},needsApproving:0,actionFactoryHook:({extraData:{vault:e}})=>{let{send:t,TXObjects:a}=(0,R.A)(e.contractKey,"lockLonger");return{send:({extraData:{sliderValue:e,kekId:a,lockInfo:{endingTimestamp:o}}})=>t(a,Math.max(+o,(0,p.j2)())+86400*e),TXObjects:a}},getActionContractKey:({vault:e})=>e.contractKey},stakeInConvexVaultLock:{balanceHook:({actionPool:e})=>{let t=(0,o.useContext)(C.A);return t?.[e.underlyingTokenContractKey]},getInputCoin:({actionPool:e})=>({address:e.underlyingCoin.address,name:e.underlyingCoin.name,symbol:e.underlyingCoin.symbol,contractKey:e.underlyingTokenContractKey,decimals:e.underlyingCoin.decimals,underlyingCoins:e.underlyingCurvePool.coins,customWrapperExternalId:"curve"}),needsApproving:1,actionFactoryHook:({extraData:{vault:e}})=>{let{send:t,TXObjects:a}=(0,R.A)(e.contractKey,"lockAdditionalCurveLp");return{send:({amount:e,decimals:a,extraData:{kekId:o}})=>t(o,(0,i.DF)(e,a)),TXObjects:a}},getActionContractKey:({vault:e})=>e.contractKey},stakeInConvexVaultLockAlreadyWrapped:{balanceHook:({actionPool:e})=>{let t=(0,o.useContext)(C.A);return t?.[e.stakingTokenContractKey]},getInputCoin:({actionPool:e})=>({address:e.stakingTokenAddress,name:"convex"===e.type?`Wrapped ${e.underlyingCurvePool.coins.map(({symbol:e})=>e).join("/")}`:e.stakingTokenName,symbol:"convex"===e.type?`wcvx${e.underlyingCurvePool.coins.map(({symbol:e})=>e).join("")}`:e.stakingTokenSymbol,contractKey:e.stakingTokenContractKey,decimals:e.stakingTokenDecimals,..."convex"===e.type?{underlyingCoins:e.underlyingCurvePool.coins}:e.underlyingCoins?{underlyingCoins:e.underlyingCoins}:{underlyingCoin:e.underlyingCoin},customWrapperExternalId:e.subtype||e.type}),needsApproving:1,actionFactoryHook:({extraData:{vault:e}})=>{let{send:t,TXObjects:a}=(0,R.A)(e.contractKey,"lockAdditionalConvexToken");return{send:({amount:e,decimals:a,extraData:{kekId:o}})=>t(o,(0,i.DF)(e,a)),TXObjects:a}},getActionContractKey:({vault:e})=>e.contractKey},withdrawFromVault:{actionFactoryHook:({extraData:{vault:e}})=>{let{send:t,TXObjects:a}=(0,R.A)(e.contractKey,"withdrawLocked");return{send:({extraData:{kekId:e}})=>t(e),TXObjects:a}}},withdrawFromConvexVaultAndUnwrap:{actionFactoryHook:({extraData:{vault:e}})=>{let{send:t,TXObjects:a}=(0,R.A)(e.contractKey,"withdrawLockedAndUnwrap");return{send:({extraData:{kekId:e}})=>t(e),TXObjects:a}}},claimAndWithdrawFromConvexVaultAndUnwrapForPoolId3:{actionFactoryHook:({extraData:{vault:e}})=>
18{let[t,a]=(0,o.useState)(0),r=[(0,R.A)(e.contractKey,"getReward"),(0,R.A)(e.contractKey,"withdrawLockedAndUnwrap")];return{send:({extraData:{kekId:e}})=>{r[0].send(e).then(t=>{"error"!==t&&(a(1),r[1].send(e))})},TXObjects:r[t].TXObjects}}},claimVaultRewards:{actionFactoryHook:({extraData:{vault:e}})=>{let{send:t,TXObjects:a}=(0,R.A)(e.contractKey,"getReward");return{send:()=>t(),TXObjects:a}}},claimAllVaultRewards:{actionFactoryHook:({extraData:{nonEmptyVaults:e}})=>{let{ethereumWeb3:{account:t,library:a,chainId:r}}=(0,o.useContext)(I.A),{calls:n}=(0,s.Y5)(e.map(({contractKey:e})=>({address:A.Ay[e].address,abi:A.Ay[e].abi,methodName:"getReward",web3Data:{account:t,library:a,chainId:r}}))),{send:i,TXObjects:d}=(0,R.A)(c.ry.ethereum,"aggregate");return{send:()=>{i(n)},TXObjects:d}}}},"ACTIONS"),E=(0,l.m)({approve:{actionFactoryHook:(e,t,a=!1,o)=>{let{send:r,TXObjects:n}=(0,R.A)(e,"approve",o),i="ethereum"===o?A.Ay[t]:A.Ay[o][t];return{send:()=>r(i.address,a?0:c.V9.toFixed()),TXObjects:n}}},approveUniv3Nft:{actionFactoryHook:(e,t,a)=>{let{send:o,TXObjects:r}=(0,R.A)(e,"approve");return{send:()=>o(A.Ay[t].address,a),TXObjects:r}}}},"SPECIAL_ACTIONS");if(F.HL){for(let[e,t]of Array.from(Object.entries(V)))if(t.needsApproving&&!t.actionContractKey&&!t.getActionContractKey)throw Error(`Missing \`actionContractKey\` prop (or alternate \`getActionContractKey\` prop) on action with needsApproving > 0 [${e}]`)}},96522:(e,t,a)=>{"use strict";a.d(t,{A:()=>x});var o=a(11442),r=a(44251),n=a(73553),i=a(59825),s=a(87233),d=a(74320),c=a(64316),l=a(33027),u=a(66629),v=a(5901);let p={ethereum:{account:"",library:o.A,chainId:l.o1.ethereum[0]},arbitrum:{account:"",library:r.A,chainId:l.o1.arbitrum[0]},polygon:{account:"",library:n.A,chainId:l.o1.polygon[0]},fraxtal:{account:"",library:i.A,chainId:l.o1.fraxtal[0]}},A=new Map([...Object.keys(p).map(e=>[`${e}-${l.cF}`,{address:l.cF,symbol:"ZERO_ADDRESS",decimals:18,blockchainId:e}])]),C=async(e,t="ethereum")=>{Array.from(Object.entries((await (0,s.Ay)((0,u.ed)(e.map(e=>[{address:e,abi:c,methodName:"symbol",metaData:{address:e,type:"symbol"},web3Data:p[t]},{address:e,abi:c,methodName:"decimals",metaData:{address:e,type:"decimals"},web3Data:p[t]}])))).reduce((e,{data:t,metaData:{type:a,address:o}})=>{let r=e[o];return e[o]={...r,[a]:"decimals"===a?(0,d.tT)(t).toNumber():t},e},{}))).forEach(([e,a])=>{A.set(`${t}-${e}`,{...a,address:e,blockchainId:t})})},x=async(e,t="ethereum")=>{if(0===e.length)return{};let a=(0,u.sb)(e.map(v.lc)),o=a.filter(e=>!A.has(`${t}-${e}`));return o.length>0&&await C(o,t),(0,u.pl)(a.map(e=>[e,A.get(`${t}-${e}`)]))}},96925:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});let o=a(67141).createContext()}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.