PageSourceSearch

https://app.harborfinance.io/_next/static/chunks/app/anchor/page-5…?dpl=dpl_5Hj1pMrDRJqmWxTNFkddRZRHPRsP

js harborfinance.io collected 2026-10-08 07:18:13 UTC 218,921 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9762],{9878:(e,t,l)=>{"use strict";l.d(t,{U:()=>r});var a=l(22454);function r(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];return(0,a.I)({queryKey:["wsteth-apr"],queryFn:async()=>{try{let e,t=await fetch("https://yields.llama.fi/pools");if(!t.ok)throw console.error("[useWstETHAPR] HTTP error:",t.status,t.statusText),Error("Failed to fetch pools: ".concat(t.statusText));let l=await t.json();console.log("[useWstETHAPR] Pools data type:",typeof l,Array.isArray(l)?"array length: ".concat(l.length):"not array"),console.log("[useWstETHAPR] Pools data keys:",l?Object.keys(l):"null/undefined");let a=[];Array.isArray(l)?a=l:(null==l?void 0:l.data)&&Array.isArray(l.data)?a=l.data:(null==l?void 0:l.pools)&&Array.isArray(l.pools)?a=l.pools:console.error("[useWstETHAPR] Unexpected response structure. Full response:",JSON.stringify(l,null,2).substring(0,500));let r=null;if(a.length>0&&((r=a.find(e=>{let t=(e.symbol||"").toLowerCase(),l=(e.project||"").toLowerCase();return"wsteth"===t&&"lido"===l}))||(r=a.find(e=>{let t=(e.symbol||"").toLowerCase(),l=(e.project||"").toLowerCase();return"steth"===t&&"lido"===l})),r||(r=a.find(e=>{let t=(e.symbol||"").toLowerCase();return"wsteth"===t})),r||(r=a.find(e=>{let t=(e.symbol||"").toLowerCase();return"steth"===t}))),!r)throw console.error("[useWstETHAPR] Pool not found. Searching for wstETH/stETH from Lido"),console.error("[useWstETHAPR] Total pools available:",a.length),a.length>0&&console.error("[useWstETHAPR] Sample pools (first 5):",a.slice(0,5).map(e=>({pool:e.pool||e.poolId||e.id,symbol:e.symbol,project:e.project}))),Error("wstETH/stETH pool not found in DeFiLlama");console.log("[useWstETHAPR] Found pool:",{pool:r.pool||r.poolId||r.id,symbol:r.symbol,project:r.project,apy:r.apy,apyBase:r.apyBase,apyMean30d:r.apyMean30d});let n=r;if((null==n?void 0:n.apy)!==void 0&&null!==n.apy)e=parseFloat(String(n.apy));else if((null==n?void 0:n.apyBase)!==void 0&&null!==n.apyBase)e=parseFloat(String(n.apyBase));else if((null==n?void 0:n.apyMean30d)!==void 0&&null!==n.apyMean30d)e=parseFloat(String(n.apyMean30d));else throw console.error("[useWstETHAPR] No APR data found in pool. Available fields:",Object.keys(n)),console.error("[useWstETHAPR] Pool data:",JSON.stringify(n,null,2)),Error("No APR data available for wstETH pool");if(console.log("[useWstETHAPR] Parsed APR:",e),isNaN(e)||e<0||!isFinite(e))throw console.error("[useWstETHAPR] Invalid APR value:",e,"from data:",n),Error("Invalid APR data from DeFiLlama");let o=e/100,s=Math.pow(1+o/365,365)-1;return console.log("[useWstETHAPR] Converted APR to APY:",{apr:o,apy:s,aprPercent:e,apyPercent:100*s}),s}catch(e){throw console.error("[useWstETHAPR] Error fetching APR:",e),e}},enabled:e,refetchInterval:36e5,staleTime:18e5,retry:2})}},12108:(e,t,l)=>{"use strict";l.d(t,{A:()=>a});let a=(0,l(71847).A)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]])},14943:(e,t,l)=>{"use strict";l.d(t,{V:()=>n});let a=10n**18n;function r(e){return e<=0n?0:Number(10000n*e/a)/100}function n(e,t,l){let n=r(t),o=r(l),s=e>0n&&t+l>a;if(e<=0n)return{bounty:0n,cut:0n,toPools:0n,bountyPct:0,cutPct:0,poolsPct:0,configuredBountyPct:n,configuredCutPct:o,ratiosExceedHarvestable:s};let i=e*t/a,d=e*l/a;i+d>e&&(d=e>i?e-i:0n);let c=e>i+d?e-i-d:0n,u=10000n*i/e,m=10000n*d/e;return{bounty:i,cut:d,toPools:c,bountyPct:Number(u)/100,cutPct:Number(m)/100,poolsPct:Number(10000n-u-m)/100,configuredBountyPct:n,configuredCutPct:o,ratiosExceedHarvestable:s}}},24033:(e,t,l)=>{"use strict";l.d(t,{A:()=>a});let a=(0,l(71847).A)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]])},32203:(e,t,l)=>{"use strict";l.d(t,{t:()=>i});var a=l(12115),r=l(55229),n=l(78935),o=l(70082),s=l(21179);function i(e,t,l){var i,d,c,u,m,p,f;let g=o.u,h=(0,n.H)(),{price:v}=(0,r.R)("f-x-protocol-fxusd"),{price:x}=(0,r.R)("fx-usd-saving"),{price:b}=(0,r.R)("usd-coin"),w=(0,a.useMemo)(()=>{var l,a,r,n;if(console.log("[useAnchorPrices] EUR price calculation useMemo triggered",{readsAvailable:t?"array(".concat(t.length,")"):"null/undefined",readsType:t?Array.isArray(t)?"array":typeof t:"null/undefined",anchorMarketsCount:(null==e?void 0:e.length)||0,marketIds:(null==e?void 0:e.map(e=>{let[t]=e;return t}))||[],timestamp:new Date().toISOString()}),!t||!Array.isArray(t)||0===t.length)return null==t?console.log("[useAnchorPrices] Reads not yet available (expected during initial render)"):console.warn("[useAnchorPrices] Reads is not an array or is empty",{reads:t?"type: ".concat(typeof t,", length: ").concat(Array.isArray(t)?t.length:"N/A"):"null/undefined"}),null;if(!e||0===e.length)return console.warn("[useAnchorPrices] No anchorMarkets available"),null;console.log("[useAnchorPrices] Searching for EUR market in ".concat(e.length," markets:"),e.map(e=>{var t,l,a;let[r,n]=e;return{id:r,pegTarget:null==n?void 0:n.pegTarget,collateralSymbol
1:null==(t=n.collateral)?void 0:t.symbol,hasCollateralPrice:!!(null==(l=n.addresses)?void 0:l.collateralPrice),collateralPriceAddress:null==(a=n.addresses)?void 0:a.collateralPrice}})),console.log("[useAnchorPrices] Starting EUR market search...");let o=e.findIndex(t=>{var l,a,r;let[n,o]=t,s=null==o||null==(l=o.pegTarget)?void 0:l.toLowerCase(),i=(null==(r=o.collateral)||null==(a=r.symbol)?void 0:a.toLowerCase())||"",d=("eur"===s||"euro"===s)&&("fxusd"===i||"fxsave"===i);return d&&console.log("[useAnchorPrices] ✓ Found EUR market: ".concat(n,", pegTarget: ").concat(s,", collateralSymbol: ").concat(i,", index: ").concat(e.findIndex(e=>{let[t]=e;return t===n}))),d});if(console.log("[useAnchorPrices] EUR market search result: index=".concat(o,", found=").concat(-1!==o)),-1===o){let l=e.findIndex(e=>{let[t]=e;return t.toLowerCase().includes("eur")});if(-1!==l){console.log("[useAnchorPrices] Found EUR market by ID fallback: ".concat(e[l][0]));let o=e[l],i=o[0],d=null==(a=o[1].addresses)?void 0:a.collateralPrice;if(d){console.log("[useAnchorPrices] Using EUR market found by ID: ".concat(i,", oracle: ").concat(d));let a=(0,s.B)(e,l);if(a>=t.length)return console.warn("[useAnchorPrices] Calculated offset ".concat(a," exceeds reads array length ").concat(t.length)),null;let o=null==t||null==(r=t[a])?void 0:r.result,c=null==t||null==(n=t[a])?void 0:n.status;if(console.log("[useAnchorPrices] EUR oracle read from batched reads (fallback) - offset: ".concat(a,"/").concat(t.length,", status: ").concat(c,", result: ").concat(o?Array.isArray(o)?"tuple[".concat(o.length,"]"):o.toString():"null")),"success"===c&&o){if(Array.isArray(o)){if(!o.every(e=>0n===e||e===BigInt(0))){let e=o[1];if(e&&e>0n){let t=Number(e)/1e18;if(t>0&&t<2){let e=1/t;if(e>.5&&e<2)return console.log("[useAnchorPrices] Calculated EUR/USD from fallback market: ".concat(e)),e}}}}else if("bigint"==typeof o&&0n!==o){let e=Number(o)/1e8;if(e>.5&&e<2)return console.log("[useAnchorPrices] Using EUR/USD from Chainlink (fallback): ".concat(e)),e;if((e=Number(o)/1e18)>.5&&e<2)return console.log("[useAnchorPrices] Using EUR/USD from Chainlink 18dec (fallback): ".concat(e)),e}}}}return console.warn("[useAnchorPrices] EUR market not found in anchorMarkets",{marketCount:e.length,marketIds:e.map(e=>{let[t]=e;return t}),pegTargets:e.map(e=>{let[t,l]=e;return null==l?void 0:l.pegTarget}),collateralSymbols:e.map(e=>{var t;let[l,a]=e;return null==(t=a.collateral)?void 0:t.symbol}),searchedFor:"pegTarget='eur'/'euro' AND collateralSymbol='fxusd'/'fxsave'"}),null}let i=e[o],d=i[0],c=null==(l=i[1].addresses)?void 0:l.collateralPrice;if(!c)return console.warn("[useAnchorPrices] EUR market has no price oracle",{marketId:d}),null;console.log("[useAnchorPrices] ✓ EUR market found: ".concat(d,", oracle: ").concat(c,", index: ").concat(o)),console.log("[useAnchorPrices] Calculating price oracle offset for market index ".concat(o,"..."));let u=(0,s.B)(e,o);if(console.log("[useAnchorPrices] ✓ Calculated offset for EUR market at index ".concat(o,": ").concat(u,", total markets: ").concat(e.length,", total reads: ").concat(t.length,", offset within bounds: ").concat(u<t.length)),u>=t.length)return console.warn("[useAnchorPrices] Calculated offset ".concat(u," exceeds reads array length ").concat(t.length)),null;console.log("[useAnchorPrices] Reading from reads array at offset ".concat(u,"..."));let m=null==t?void 0:t[u],p=null==m?void 0:m.result,f=null==m?void 0:m.status,h=null==m?void 0:m.error;if(console.log("[useAnchorPrices] EUR oracle read result:",{offset:"".concat(u,"/").concat(t.length),status:f,hasResult:!!p,resultType:p?Array.isArray(p)?"tuple[".concat(p.length,"]"):typeof p:"null",resultValue:p?Array.isArray(p)?p.map((e,t)=>"[".concat(t,"]: ").concat(e.toString())).join(", "):p.toString():"null",error:h?JSON.stringify(h).substring(0,200):"none"}),p&&Array.isArray(p)?console.log("[useAnchorPrices] EUR oracle tuple breakdown:",p.map((e,t)=>({index:t,value:e.toString(),valueNum:Number(e)/1e18,label:0===t?"minUnderlyingPrice":1===t?"maxUnderlyingPrice":2===t?"minWrappedRate":"maxWrappedRate"}))):"bigint"==typeof p&&console.log("[useAnchorPrices] EUR oracle bigint value:",{raw:p.toString(),as8dec:Number(p)/1e8,as18dec:Number(p)/1e18}),"success"!==f)return console.warn("[useAnchorPrices] EUR oracle read failed with status: ".concat(f),{error:h,offset:u,totalReads:t.length,oracleAddress:c,marketId:d}),null;if(!p)return console.warn("[useAnchorPrices] EUR oracle data not available in reads array"),null;if(Array.isArray(p)){if(p.every(e=>0n===e||e===BigInt(0)))return g&&console.warn("[useAnchorPrices] EUR oracle returned all zeros - oracle may not be initialized or contract read failed"),null}else if("bigint"==typeof p&&0n===p)return g&&console.warn("[useAnchorPrices] EUR oracle returned zero - oracle may not be initialized or contract read failed"),null;if(Array.isArray(p)){let e=p[0],t=p[1],l=p[2],a=p[3];if(console.log("[useAnchorPrices] EUR oracle tuple interpretations:",JSON.stringify({minUnderlyingPrice:{raw:e.toString(),as8dec:Number(e)/1e8,as18dec:Number(e)/1e18},maxUnderlyingPrice:{raw:t.toString(),as8dec:Number(t)/1e8,as18dec:Number(t)/1e18,inverted18dec:Number(t)/1e18>0?1/(Number(t)/1e18):null},minWrappedRate:{raw:l.toString(),as18dec:Number(l)/1e18},maxWrappedRate:{raw:a.toString(),as18dec:Number(a)/1e18}},null,2)),t&&t>0n){let e=Number(t),l=[{decimals:8,value:e/1e8,label:"8dec (Chainlink standard)"},{decimals:15,value:e/1e15,label:"15dec"},{decimals:18,value:e/1e18,label:"18dec"},{decimals:6,value:e/1e6,label:"6dec"},{decimals:10,value:e/1e10,label:"10dec"}],a=l.map(e=>({...e,value:e.value>0?1/e.value:null,label:"".concat(e.label," (inverted)")}));for(let e of[...l,...a])if(null!==e.value&&e.value>.5&&e.value<2)return console.log("[useAnchorPrices] ✓ Using maxUnderlyingPrice as EUR/USD (".concat(e.label,"): ").concat(e.value)),e.value;for(let t=5;t<=20;t++){let l=e/10**t;if(l>.5&&l<2)return console.log("[useAnchorPrices] ✓ Using maxUnderlyingPrice as EUR/USD (".concat(t,"dec): ").concat(l)),l;if(l>0&&l<1){let e=1/l;if(e>.5&&e<2)return console.log("[useAnchorPrices] ✓ Using maxUnderlyingPrice as inverted (".concat(t,"dec): ").concat(e)),e}}}if(e&&e>0n){let t=Number(e)/1e8;if(t>.5&&t<2)return console.log("[useAnchorPrices] ✓ Using minUnderlyingPrice as EUR/USD (8dec): ".concat(t)),t}if(a&&a>0n){let e=Number(a)/1e18;if(e>.5&&e<2)return console.log("[useAnchorPrices] ✓ Using maxWrappedRate as EUR/USD (18dec): ".concat(e)),e}if(l&&l>0n){let e=Number(l)/1e18;if(e>.5&&e<2)return console.log("[useAnchorPrices] ✓ Using minWrappedRate as EUR/USD (18dec): ".concat(e)),e}}else if("bigint"==typeof p){let e=Number(p)/1e8;if(g&&console.log("[useAnchorPrices] EUR oracle raw: ".concat(p.toString(),", trying 8 decimals: ").concat(e)),e>.5&&e<2)return g&&console.log("[useAnchorPrices] Using EUR/USD from Chainlink (8dec): ".concat(e)),e;if(e=Number(p)/1e18,g&&console.log("[useAnchorPrices] Trying 18 decimals: ".concat(e)),e>.5&&e<2)return g&&console.log("[useAnchorPrices] Using EUR/USD from Chainlink (18dec): ".concat(e)),e;if(e>0&&e<=.5){let t=1/e;if(g&&console.log("[useAnchorPrices] Price seems inverted, trying inverted value: ".concat(t)),t>.5&&t<2)return t}g&&console.warn("[useAnchorPrices] EUR oracle price out of range: ".concat(e," (tried 8 and 18 decimals)"))}return null},[t,e,g]),y=null!=(d=null!=(i=h.eurPrice)?i:w)?d:null;g&&console.log("[useAnchorPrices] EUR price:",{central:h.eurPrice,harborOracle:w,final:y});let k=null!=(c=h.ethPrice)?c:null,N=null!=(u=h.btcPrice)?u:null,P=null!=(m=h.goldPrice)?m:null,j=null!=(p=h.silverPrice)?p:null,A=null!=(f=h.eurPriceCoinGecko)?f:null,C=(0,a.useMemo)(()=>{let a={};return t?(g&&console.log("[peggedPriceUSDMap] ETH price:",k,"Available markets:",e.length),e.forEach((r,n)=>{var o,i,d,c,u,m,p,f;let[h,w]=r,C=l[h],T=(null==(i=w.collateral)||null==(o=i.symbol)?void 0:o.toLowerCase())||"",E="fxusd"===T||"fxsave"===T,S=!!(null==(d=w.addresses)?void 0:d.collateralPrice),L=0;if(S){let l,a,r=(0,s.B)(e,n),o=null==t||null==(p=t[r])?void 0:p.result;if(null!=o&&(Array.isArray(o)?l=o[3]:"object"==typeof o&&(l=o.maxWrappedRate)),E){let e=null==t||null==(f=t[r+1])?void 0:f.result;null!=e&&(a=e)}if(E&&a&&l&&k)L=Number(a)/1e18*k/(Number(l)/1e18);else if(null!=o){let e;Array.isArray(o)?e=o[1]:"object"==typeof o?e=o.maxUnderlyingPrice:"bigint"==typeof o&&(e=o),e&&(L=Number(e)/1e18)}}E&&0===L&&(L="fxusd"===T?v||b||1:"fxsave"===T?x||b||1:b||1);let M=(null==(u=w.peggedToken)||null==(c=u.symbol)?void 0:c.toLowerCase())||"",R=(null==w||null==(m
1=w.pegTarget)?void 0:m.toLowerCase())||"",I="eth"===R||"ethereum"===R||M.includes("eth")||"haeth"===M,D="btc"===R||"bitcoin"===R||M.includes("btc")||"habtc"===M,F="eur"===R||"euro"===R||M.includes("eur")||"haeur"===M,U="gold"===R||M.includes("gold")||"hagold"===M,B="silver"===R||M.includes("silver")||"hasilver"===M;if(g&&console.log("[peggedPriceUSDMap] Market ".concat(h,': symbol="').concat(M,'", pegTarget="').concat(R,'", isGOLDPegged=').concat(U,", isSILVERPegged=").concat(B)),I&&k){let e=BigInt(Math.floor(1e18*k));a[h]=e,g&&console.log("[peggedPriceUSDMap] Market ".concat(h," (").concat(M,"): Using ETH price directly: $").concat(k," = ").concat(e.toString()))}else if(D&&N){let e=BigInt(Math.floor(1e18*N));a[h]=e,g&&console.log("[peggedPriceUSDMap] Market ".concat(h," (").concat(M,"): Using BTC price directly: $").concat(N," = ").concat(e.toString()))}else if(F&&y){let e=BigInt(Math.floor(1e18*y));a[h]=e,g&&console.log("[peggedPriceUSDMap] Market ".concat(h," (").concat(M,"): Using EUR/USD exchange rate: $").concat(y," = ").concat(e.toString()))}else if(F&&!y){let e=A&&A>0?A:1.08;a[h]=BigInt(Math.floor(1e18*e)),g&&console.log("[peggedPriceUSDMap] Market ".concat(h," (").concat(M,"): EUR price fallback: $").concat(e))}else if(U&&P)a[h]=BigInt(Math.floor(1e18*P));else if(B&&j)a[h]=BigInt(Math.floor(1e18*j));else if(D&&!N)g&&console.warn("[peggedPriceUSDMap] Market ".concat(h," (").concat(M,"): BTC price not available yet (btcPrice=").concat(N,"), skipping price calculation"));else if(!C||!(L>0)||F||U||B)I&&!k?g&&console.warn("[peggedPriceUSDMap] Market ".concat(h," (").concat(M,"): ETH price not available yet")):C?a[h]=C:g&&console.warn("[peggedPriceUSDMap] Market ".concat(h,": No price calculated"));else{let e=Number(C)/1e18*L;a[h]=BigInt(Math.floor(1e18*e))}})):g&&console.log("[peggedPriceUSDMap] No reads available"),a},[e,t,l,v,x,b,k,N,y,A,P,j,g]),T=(0,a.useMemo)(()=>{let e={...C};return Object.entries(l).forEach(t=>{let[l,a]=t;void 0===a||e[l]||(e[l]=a)}),g&&console.log("[mergedPeggedPriceMap] Final price map:",Object.entries(e).map(e=>{let[t,l]=e;return{marketId:t,price:l?Number(l)/1e18:void 0}})),e},[C,l,g]);return{peggedPriceUSDMap:C,mergedPeggedPriceMap:T,ethPrice:k,btcPrice:N,eurPrice:y,goldPrice:P,silverPrice:j,fxUSDPrice:v,fxSAVEPrice:x,usdcPrice:b}}},33791:(e,t,l)=>{"use strict";l.d(t,{r:()=>a});let a=(0,l(91053).x)({id:1,name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},blockTime:12e3,rpcUrls:{default:{http:["https://eth.merkle.io"]}},blockExplorers:{default:{name:"Etherscan",url:"https://etherscan.io",apiUrl:"https://api.etherscan.io/api"}},contracts:{ensUniversalResolver:{address:"0xeeeeeeee14d718c2b47d9923deab1335e144eeee",blockCreated:0x16041f6},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:0xdb04c1}}})},34090:(e,t,l)=>{"use strict";l.d(t,{A:()=>i});var a=l(95155),r=l(15239),n=l(12120),o=l(52759),s=l(22029);function i(e){let{chainName:t,chainLogo:l="icons/eth.png",className:i="",size:d=20}=e,c=(0,s.F)(t),u=(null==l?void 0:l.startsWith("/"))?l:"/".concat(l);return(0,a.jsx)(n.A,{label:t,children:(0,a.jsx)("span",{className:"inline-flex items-center justify-center shrink-0 cursor-help ".concat(i),children:c?(0,a.jsx)(o.A,{name:c,size:d,variant:"branded"}):(0,a.jsx)(r.default,{src:u,alt:"",width:d,height:d,className:"rounded-full object-contain"})})})}},48281:(e,t,l)=>{"use strict";function a(e){var t,l;return null!=(l=null==(t=e.chain)?void 0:t.name)?l:"Ethereum"}l.d(t,{FV:()=>a}),l(95155),l(34090),l(26866)},48409:(e,t,l)=>{"use strict";l.d(t,{BC:()=>s,D5:()=>v,Fk:()=>S,Fm:()=>f,H4:()=>h,I$:()=>B,IW:()=>M,K7:()=>g,LB:()=>d,N0:()=>U,O7:()=>P,OR:()=>j,US:()=>m,Ud:()=>V,XW:()=>p,XY:()=>D,YB:()=>W,ah:()=>E,bp:()=>L,di:()=>T,eA:()=>i,fV:()=>I,gP:()=>x,jk:()=>F,kU:()=>w,le:()=>A,m:()=>N,md:()=>c,ny:()=>R,po:()=>C,q0:()=>n.Lv,qs:()=>O,w5:()=>H,xZ:()=>y,xt:()=>k,zb:()=>u});var a=l(70827),r=l(22095),n=l(814),o=l(45725);let s="rounded-xl overflow-hidden h-full min-h-[4.25rem] ".concat(r.Pm),i="divide-x divide-y divide-[#1E4775]/10",d="text-[10px] font-medium uppercase tracking-wide text-[#1E4775]/55",c="mt-1 truncate font-mono text-xs font-semibold tabular-nums text-[#1E4775] sm:text-sm";r.Pm;let u=n.OR,m=r.OV,p="rounded-xl ".concat(a.Gc),f=r.Pm,g=a.s3,h="relative grid w-full max-w-full shrink-0 grid-cols-1 gap-2 sm:w-auto 
1sm:grid-cols-[10.25rem_275px] sm:gap-2",v="min-w-0 w-full shrink-0 self-start sm:w-[10.25rem]",x="min-w-0 w-full shrink-0 self-start sm:w-[275px]",b="mb-1 block pl-0 text-[10px] font-semibold leading-none tracking-wide text-white/55",w="".concat(b," uppercase"),y=20,k="flex h-11 w-full min-w-0 items-center gap-2 rounded-xl px-3 text-left transition hover:brightness-[1.02] ".concat(f),N="flex min-w-0 flex-1 items-center gap-2.5",P="truncate text-sm font-semibold leading-none text-[#1E4775]",j=b,A="text-sm font-semibold leading-snug text-[#1E4775]",C="text-xs text-[#1E4775]/75",T="text-sm leading-relaxed text-[#1E4775]/85",E="font-mono text-sm font-semibold tabular-nums text-[#1E4775]",S="text-[10px] font-semibold uppercase tracking-wider text-white/50",L="text-xs text-white/65",M="font-mono text-sm font-semibold tabular-nums text-white/90",R="rounded-xl px-2.5 pt-2.5 pb-0 sm:px-3 sm:pt-3 text-[#1E4775] ".concat(f),I="flex-1 rounded-lg px-4 py-2.5 text-sm active:scale-[0.98] ".concat(o.x4),D="flex-1 rounded-lg px-4 py-2.5 text-sm active:scale-[0.98] ".concat(o.Tj),F="#1F9D6A",U="#FF8A7A",B="Leveraged token",O=12,H=9,V="rounded-md border border-[#1E4775]/15 bg-white/60 px-2.5 py-1 text-[11px] font-medium text-[#1E4775]/55 transition hover:border-[#1E4775]/25 hover:bg-[#1E4775]/5",W="".concat(o.T2," px-2.5 py-1 text-[11px]")},49537:(e,t,l)=>{"use strict";l.d(t,{A:()=>r});var a=l(12115);let r=a.forwardRef(function(e,t){let{title:l,titleId:r,...n}=e;return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:t,"aria-labelledby":r},n),l?a.createElement("title",{id:r},l):null,a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m8.25 4.5 7.5 7.5-7.5 7.5"}))})},49734:(e,t,l)=>{"use strict";l.d(t,{F2:()=>v,Hp:()=>f,LA:()=>s,LS:()=>i,V4:()=>n,Xt:()=>p,_J:()=>d,b5:()=>m,gT:()=>r,o4:()=>g,sr:()=>h,zv:()=>o});var a=l(67109);function r(e){let t=(e||"USD").trim().toUpperCase();return"USD"===t?"USD":"ETH"===t||"ETHEREUM"===t?"ETH":"BTC"===t||"BITCOIN"===t?"BTC":"EUR"===t||"EURO"===t?"EUR":"GOLD"===t||"XAU"===t?"XAU":"SILVER"===t||"XAG"===t?"XAG":null}function n(e){switch(e){case"XAU":return"Gold";case"XAG":return"Silver";default:return e}}function o(e,t){switch(e){case"ETH":return t.ethPrice;case"BTC":return t.btcPrice;case"EUR":return t.eurPrice;case"XAU":return t.goldPrice;case"XAG":return t.silverPrice;case"USD":return 1}}function s(e,t){return null!=e&&Number.isFinite(e)?"EUR"===t?"$".concat(e.toFixed(4)):"$".concat(e.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})):"—"}function i(e){if(null==e||!Number.isFinite(e))return"—";let t=e>=0?"+":"";return"".concat(t).concat(e.toFixed(2),"%")}function d(e){if(e.length<2)return null;let t=e[0].priceUsd,l=e[e.length-1].priceUsd;return t>0&&Number.isFinite(t)&&Number.isFinite(l)?(l-t)/t*100:null}function c(e,t){return null!=e&&null!=t&&e>0&&Number.isFinite(e)&&Number.isFinite(t)?(t-e)/e*100:null}function u(e,t){if(0===e.length)return null;let l=null;for(let a of e)a.timestamp<=t&&(!l||a.timestamp>l.timestamp)&&(l=a);return l?l.priceUsd:e[0].priceUsd}function m(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Math.floor(Date.now()/1e3);return Math.floor(Date.UTC(new Date(1e3*e).getUTCFullYear(),0,1)/1e3)}function p(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Math.floor(Date.now()/1e3);return Math.min(t-(0,a.IC)(e)-14400,t-86400-7200)}let f=["1D","1W","1M","3M"];function g(e,t){let l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Math.floor(Date.now()/1e3);if(0===e.length)return[];let r=l-(0,a.IC)(t);return e.filter(e=>e.timestamp>=r&&e.timestamp<=l)}function h(e,t){var l;let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Math.floor(Date.now()/1e3),r=null!=t?t:e.length>0?e[e.length-1].priceUsd:null,n=m(a),o=null!=(l=u(e,n))?l:function(e,t){for(let l of e)if(l.timestamp>=t)return l.priceUsd;return null}(e,n);return{change1hPct:c(u(e,a-3600),r),change24hPct:c(u(e,a-86400),r),changeYtdPct:c(o,r)}}
1function v(e){return null!=e&&Number.isFinite(e)&&0!==e?e>0?"text-emerald-700":"text-red-600":"text-[#1E4775]/70"}},52056:(e,t,l)=>{"use strict";l.d(t,{A:()=>a});let a=(0,l(71847).A)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},55702:(e,t,l)=>{"use strict";l.d(t,{A:()=>o});var a=l(95155),r=l(12115),n=l(47650);function o(e){let{label:t,children:l,className:o,side:s="top",centerOnMobile:i=!1}=e,[d,c]=(0,r.useState)(!1),[u,m]=(0,r.useState)({top:0,left:0}),[p,f]=(0,r.useState)(!1),[g,h]=(0,r.useState)(!1),v=(0,r.useRef)(null);(0,r.useEffect)(()=>{f(!0)},[]);let x=(0,r.useCallback)(()=>{if(!v.current)return;let e=v.current.getBoundingClientRect();if(i&&window.innerWidth<768){m({top:window.innerHeight/2,left:window.innerWidth/2}),h(!0);return}h(!1),"right"===s?m({top:e.top+e.height/2,left:e.right+12}):"left"===s?m({top:e.top+e.height/2,left:e.left-12}):"bottom"===s?m({top:e.bottom+8,left:e.left+e.width/2}):m({top:e.top-8,left:e.left+e.width/2})},[s,i]);(0,r.useEffect)(()=>{d&&x()},[d,x]),(0,r.useEffect)(()=>{if(!d)return;let e=()=>x();return window.addEventListener("scroll",e,!0),window.addEventListener("resize",e),()=>{window.removeEventListener("scroll",e,!0),window.removeEventListener("resize",e)}},[d,x]);let b=d&&(0,a.jsxs)("div",{role:"tooltip",className:"pointer-events-none fixed z-[2147483647] w-max max-w-2xl border border-gray-700 bg-gray-900 px-6 py-4 text-base text-white shadow-xl",style:{top:"".concat(u.top,"px"),left:"".concat(u.left,"px"),transform:g?"translate(-50%, -50%)":"right"===s?"translate(0, -50%)":"left"===s?"translate(-100%, -50%)":"bottom"===s?"translate(-50%, 0)":"translate(-50%, -100%)"},children:[(0,a.jsx)("div",{className:"break-words whitespace-normal leading-relaxed",children:t}),!g&&"right"===s&&(0,a.jsx)("span",{className:"absolute left-0 top-1/2 -translate-x-1 -translate-y-1/2 h-3 w-3 rotate-45 bg-gray-900 border-l border-b border-gray-700"}),!g&&"left"===s&&(0,a.jsx)("span",{className:"absolute right-0 top-1/2 translate-x-1 -translate-y-1/2 h-3 w-3 rotate-45 bg-gray-900 border-r border-t border-gray-700"}),!g&&"bottom"===s&&(0,a.jsx)("span",{className:"absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1 h-3 w-3 rotate-45 bg-gray-900 border-l border-b border-gray-700"}),!g&&"top"===s&&(0,a.jsx)("span",{className:"absolute bottom-0 left-1/2 -translate-x-1/2 translate-y-1 h-3 w-3 rotate-45 bg-gray-900 border-r border-t border-gray-700"})]});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{ref:v,className:"relative inline-flex items-center"+(null!=o?o:""),onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),onFocus:()=>c(!0),onBlur:()=>c(!1),children:l?(0,a.jsx)("span",{tabIndex:0,"aria-label":"Info",children:l}):(0,a.jsx)("span",{tabIndex:0,className:"inline-flex h-5 w-5 items-center justify-center text-white/60 hover:text-white focus:outline-none focus-visible:ring-1 focus-visible:ring-white/30","aria-label":"Info",children:(0,a.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,className:"h-3.5 w-3.5",children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,a.jsx)("path",{d:"M12 16v-4"}),(0,a.jsx)("path",{d:"M12 8h.01"})]})})}),p&&b?(0,n.createPortal)(b,document.body):null]})}},60592:(e,t,l)=>{"use strict";l.d(t,{m:()=>o});var a=l(12115),r=l(86275),n=l(80149);function o(e,t){let{refetchInterval:l=3e4,enabled:o=!0}=null!=t?t:{},s=(0,a.useMemo)(()=>e.flatMap(e=>{if(!e.minterAddress)return[];let t=[{address:e.minterAddress,abi:n.bq,functionName:"collateralRatio"},{address:e.minterAddress,abi:n.bq,functionName:"peggedTokenBalance"},{address:e.minterAddress,abi:n.bq,functionName:"collateralTokenBalance"}];return e.collateralPoolAddress&&t.push({address:e.collateralPoolAddress,abi:n.yH,functionName:"totalAssetSupply"}),e.sailPoolAddress&&t.push({address:e.sailPoolAddress,abi:n.yH,functionName:"totalAssetSupply"}),t}),[e]),{data:i,isLoading:d,error:c}=(0,r.X)({contracts:s,enabled:o&&s.length>0,refetchInterval:l});return{data:(0,a.useMemo)(()=>{let t=new Map,l=0;
1return e.forEach(e=>{var a,r,n,o,s;let u,m;if(!e.minterAddress)return;if(!i)return void t.set(e.minterAddress.toLowerCase(),{protection:"-",protectionPercent:void 0,collateralRatio:void 0,totalDebt:void 0,collateralPoolTVL:void 0,sailPoolTVL:void 0,collateralTokenBalance:void 0,isLoading:d,error:c});let p=(null==(a=i[l])?void 0:a.status)==="success"?i[l].result:void 0,f=(null==(r=i[l+1])?void 0:r.status)==="success"?i[l+1].result:void 0,g=(null==(n=i[l+2])?void 0:n.status)==="success"?i[l+2].result:void 0;l+=3,e.collateralPoolAddress&&(u=(null==(o=i[l])?void 0:o.status)==="success"?i[l].result:void 0,l++),e.sailPoolAddress&&(m=(null==(s=i[l])?void 0:s.status)==="success"?i[l].result:void 0,l++);let{protection:h,protectionPercent:v}=function(e,t,l,a){if(!e||!t||0n===t)return{protection:"-",protectionPercent:void 0};let r=e*t/10n**18n,n=l||0n,o=n+(a||0n),s=t-(o>t?t:o),i=r-(n>r?r:n);if(0n===s)return{protection:">100%",protectionPercent:100};if(0n===i)return{protection:"0%",protectionPercent:0};let d=Number(s),c=Number(i);if(d>=c)return{protection:"0%",protectionPercent:0};let u=(1-d/c)*100;return u<=0?{protection:"0%",protectionPercent:0}:u>=100?{protection:">100%",protectionPercent:100}:{protection:"".concat(u.toFixed(1),"%"),protectionPercent:u}}(p,f,u,m);t.set(e.minterAddress.toLowerCase(),{protection:h,protectionPercent:v,collateralRatio:p,totalDebt:f,collateralPoolTVL:u,sailPoolTVL:m,collateralTokenBalance:g,isLoading:d,error:c})}),t},[e,i,d,c]),isLoading:d,error:c}}},61440:(e,t,l)=>{"use strict";l.d(t,{x:()=>o});var a=l(95155),r=l(1473),n=l(14111);function o(e){let{message:t,className:l=""}=e;return(0,a.jsxs)("div",{className:"".concat(n.lj," flex flex-col items-center justify-center gap-2 px-3 py-3 sm:flex-row sm:gap-3 sm:py-2.5 ").concat(l).trim(),children:[(0,a.jsx)("p",{className:"text-center text-xs leading-snug text-[#1E4775]/70",children:t}),(0,a.jsx)("div",{className:"shrink-0",children:(0,a.jsx)(r.U,{})})]})}},62673:(e,t,l)=>{"use strict";l.d(t,{S:()=>n});var a=l(95155),r=l(814);function n(e){let{header:t,banner:l,primary:n,action:o,tradePanelId:s,gridClassName:i=r.iC,gridWrapperClassName:d,gridId:c,actionClassName:u="order-2 flex min-h-0 w-full min-w-0 flex-col scroll-mt-20 lg:order-none lg:h-full lg:self-stretch",primaryClassName:m="order-1 flex min-h-0 flex-col gap-3 lg:order-none lg:h-full",metrics:p,mobileBar:f,infoFooter:g,children:h,className:v="space-y-5 pb-[calc(4.25rem+env(safe-area-inset-bottom))] lg:pb-0"}=e;return(0,a.jsxs)("div",{className:v,children:[t,l,(0,a.jsxs)("div",{className:"space-y-4 pt-0.5",children:[(0,a.jsxs)("div",{id:c,className:d?"relative z-0 ".concat(i," ").concat(d):"relative z-0 ".concat(i),children:[(0,a.jsx)("div",{className:m,children:n}),s?(0,a.jsx)("div",{id:s,className:u,children:o}):(0,a.jsx)("div",{className:u,children:o})]}),p]}),f,g,h]})}},66808:(e,t,l)=>{"use strict";l.d(t,{y:()=>r});var a=l(22454);function r(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],t="ee0b7069-f8f3-4aa2-a415-728f13e6cc3d";return(0,a.I)({queryKey:["fxsave-apr",t],queryFn:async()=>{try{let e,l=await fetch("https://yields.llama.fi/pools");if(!l.ok)throw console.error("[useFxSAVEAPR] HTTP error:",l.status,l.statusText),Error("Failed to fetch pools: ".concat(l.statusText));let a=await l.json();console.log("[useFxSAVEAPR] Pools data type:",typeof a,Array.isArray(a)?"array length: ".concat(a.length):"not array"),console.log("[useFxSAVEAPR] Pools data keys:",a?Object.keys(a):"null/undefined");let r=[];Array.isArray(a)?r=a:(null==a?void 0:a.data)&&Array.isArray(a.data)?r=a.data:(null==a?void 0:a.pools)&&Array.isArray(a.pools)?r=a.pools:console.error("[useFxSAVEAPR] Unexpected response structure. Full response:",JSON.stringify(a,null,2).substring(0,500));let n=null;if(r.length>0&&((n=r.find(e=>e.pool===t||e.poolId===t||e.id===t))||(n=r.find(e=>{let t=(e.symbol||"").toLowerCase(),l=(e.name||"").toLowerCase(),a=(e.project||"").toLowerCase();return t.includes("fxsave")||l.includes("fxsave")||a.includes("fx")&&(t.includes("save")||l.includes("save"))})),!n&&r.length>0&&console.log("[useFxSAVEAPR] Sample pools (first 5):",r.slice(0,5).map(e=>
1({pool:e.pool||e.poolId||e.id,symbol:e.symbol,name:e.name,project:e.project})))),!n)throw console.error("[useFxSAVEAPR] Pool not found. Pool ID:",t),console.error("[useFxSAVEAPR] Total pools available:",r.length),console.error("[useFxSAVEAPR] Sample pools (first 3):",r.slice(0,3).map(e=>({pool:e.pool||e.poolId||e.id,symbol:e.symbol,name:e.name}))),Error("Pool not found in DeFiLlama");console.log("[useFxSAVEAPR] Found pool:",{pool:n.pool||n.poolId||n.id,symbol:n.symbol,apy:n.apy,apyBase:n.apyBase,apyReward:n.apyReward,apyMean30d:n.apyMean30d,apyPct1D:n.apyPct1D,apyPct7D:n.apyPct7D,apyPct30D:n.apyPct30D});let o=n;if((null==o?void 0:o.apy)!==void 0&&null!==o.apy)e=parseFloat(String(o.apy)),console.log("[useFxSAVEAPR] Using apy (total):",e);else if((null==o?void 0:o.apyBase)!==void 0&&null!==o.apyBase)e=parseFloat(String(o.apyBase)),console.log("[useFxSAVEAPR] Using apyBase:",e);else if((null==o?void 0:o.apyMean30d)!==void 0&&null!==o.apyMean30d)e=parseFloat(String(o.apyMean30d)),console.log("[useFxSAVEAPR] Using apyMean30d:",e);else throw console.error("[useFxSAVEAPR] No APY data found in pool. Available fields:",Object.keys(o)),console.error("[useFxSAVEAPR] All APY-related fields:",{apy:null==o?void 0:o.apy,apyBase:null==o?void 0:o.apyBase,apyReward:null==o?void 0:o.apyReward,apyMean30d:null==o?void 0:o.apyMean30d,apyPct1D:null==o?void 0:o.apyPct1D,apyPct7D:null==o?void 0:o.apyPct7D,apyPct30D:null==o?void 0:o.apyPct30D}),Error("No APY data available for this pool");if(console.log("[useFxSAVEAPR] Final parsed APY:",e),isNaN(e)||e<0||!isFinite(e))throw console.error("[useFxSAVEAPR] Invalid APY value:",e,"from data:",o),Error("Invalid APY data from DeFiLlama");return e/100}catch(e){throw console.error("[useFxSAVEAPR] Error fetching APR:",e),e}},enabled:e,refetchInterval:36e5,staleTime:18e5,retry:2})}},67109:(e,t,l)=>{"use strict";l.d(t,{IC:()=>o,cg:()=>a,eq:()=>r,lB:()=>n,mC:()=>i,r9:()=>s});let a=366,r=["1D","1W","1M","3M","6M","1Y"];function n(e){return Math.min(a,Math.ceil(o(e)/86400)+5)}function o(e){switch(e){case"1D":return 86400;case"1W":return 604800;case"1M":return 2678400;case"3M":return 7776e3;case"6M":return 15552e3;case"1Y":return 31536e3}}function s(e,t){if(0===e.length)return[];let l=e.reduce((e,t)=>t.timestamp>e?t.timestamp:e,0);if(l<=0)return e;let a=l-o(t);return e.filter(e=>e.timestamp>=a)}function i(e,t){let l=new Date(1e3*e);switch(t){case"1D":return l.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0});case"1W":return l.toLocaleDateString("en-US",{weekday:"short",month:"numeric",day:"numeric"});case"1M":case"3M":return l.toLocaleDateString("en-US",{month:"short",day:"numeric"});case"6M":case"1Y":return l.toLocaleDateString("en-US",{month:"short",year:"2-digit"})}}},68851:(e,t,l)=>{"use strict";l.d(t,{N:()=>n});var a=l(95155),r=l(74562);function n(e){let{markets:t,showSection:l,onToggleShow:n,onManage:o,className:s="",sectionId:i,heading:d="Archived markets",subtitle:c="New deposits disabled \xb7 withdrawals and redeems still available",expandedContent:u}=e;return 0===t.length?null:(0,a.jsxs)("section",{id:i,className:"space-y-3 mt-8 ".concat(s),children:[(0,a.jsxs)("button",{type:"button",onClick:n,className:"flex w-full items-center justify-between gap-2 rounded-md border border-white/15 bg-white/5 px-3 py-2 text-left hover:bg-white/10 transition-colors",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h2",{className:"text-xs font-medium text-white/80 uppercase tracking-wider",children:d}),(0,a.jsx)("p",{className:"text-[11px] text-white/50 mt-0.5",children:c})]}),(0,a.jsxs)("span",{className:"text-xs text-white/60 shrink-0",children:[l?"Hide":"Show"," (",t.length,")"]})]}),l?null!=u?u:(0,a.jsx)("ul",{className:"space-y-2",children:t.map(e=>{var t;let[l,n]=e;return(0,a.jsxs)("li",{className:"flex flex-wrap items-center justify-between gap-2 rounded-md border border-white/10 bg-white/5 px-3 py-2",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2 min-w-0",children:[(0,a.jsx)("span",{className:"text-sm font-medium text-white truncate",children:null!=(t=n.name)?t:l}),(0,a.jsx)(r.AS,{compact:!0}),(0,a.jsx)(r.$8,{})]}),(0,a.jsx)("button",{type:"button",onClick:()=>null==o?void 0:o(l),className:"shrink-0 rounded-md bg-white/10 px-3 py-1.5 text-xs font-medium text-white hover:bg-white/15 transition-colors",children:"Manage"})]},l)})}):null]})}},71701:(e,t,l)=>{"use strict";l.d(t,{Z:()=>n});var a=l(12115),r=l(20063);function n(){var e;let t=null!=(e=(0,r.usePathname)())?e:"",[l,n]=(0,a.useState)(null),o=(0,a.useCallback)(()=>new URLSearchParams(window.location.search).get("market"),[]);return(0,a.useEffect)(()=>{n(o())},[t,o]),(0,a.useEffect)(()=>{let e=()=>n(o());return window.addEventListener("popstate",e),()=>window.removeEventListener("popstate",e)},[o]),{marketParam:l,setMarketParam:(0,a.useCallback)(e=>{n(e);let l=new URLSearchParams(window.location.search);l.set("market",e);let a=l.toString(),r=window.location.hash,o="".concat(a?"".concat(t,"?").concat(a):t).concat(r);window.history.replaceState(window.history.state,"",o)},[t]),pathname:t}}},74562:(e,t,l)=>{"use strict";l.d(t,{$8:()=>p,AS:()=>m,Jl:()=>s,QB:()=>i,RZ:()=>c});var a=l(95155);l(12115);var r=l(63397),n=l(80633);let o={bg:"bg-orange-500/20",text:"text-orange-800"};
1function s(e){let{compact:t=!1,className:l=""}=e,{bg:n,text:s}=o,i=r.A,d="Maintenance";return t?(0,a.jsxs)("span",{title:"This market is in maintenance",className:"inline-flex items-center gap-1 rounded-none px-2 py-0.5 text-[10px] font-medium ".concat(n," ").concat(s," ").concat(l),children:[(0,a.jsx)(i,{className:"h-3 w-3 shrink-0"}),d]}):(0,a.jsxs)("span",{title:"This market is in maintenance",className:"inline-flex items-center gap-1 rounded-none px-2 py-0.5 text-xs font-medium ".concat(n," ").concat(s," ").concat(l),children:[(0,a.jsx)(i,{className:"h-3.5 w-3.5 shrink-0"}),d]})}function i(e){let{className:t=""}=e;return(0,a.jsx)(s,{compact:!1,className:t})}function d(e){let{className:t=""}=e;return(0,a.jsx)("span",{className:"inline-flex items-center rounded-none border border-gray-400/60 bg-gray-200/90 px-2 py-0.5 text-[10px] font-semibold text-gray-700 ".concat(t),title:"While this market is in maintenance you can claim rewards to your wallet; compounding is unavailable",children:"Claim only"})}function c(e){let{className:t=""}=e;return(0,a.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-1 ".concat(t),children:[(0,a.jsx)(s,{compact:!0}),(0,a.jsx)(d,{})]})}let u={bg:"bg-gray-500/20",text:"text-gray-600"};
1function m(e){let{compact:t=!1,className:l=""}=e,{bg:r,text:o}=u,s=n.A,i="Archived";return t?(0,a.jsxs)("span",{title:"This market is archived",className:"inline-flex items-center gap-1 rounded-none px-2 py-0.5 text-[10px] font-medium ".concat(r," ").concat(o," ").concat(l),children:[(0,a.jsx)(s,{className:"h-3 w-3 shrink-0"}),i]}):(0,a.jsxs)("span",{title:"This market is archived",className:"inline-flex items-center gap-1 rounded-none px-2 py-0.5 text-xs font-medium ".concat(r," ").concat(o," ").concat(l),children:[(0,a.jsx)(s,{className:"h-3.5 w-3.5 shrink-0"}),i]})}function p(e){let{className:t=""}=e;return(0,a.jsx)("span",{className:"inline-flex items-center rounded-none border border-gray-400/60 bg-gray-200/90 px-2 py-0.5 text-[10px] font-semibold text-gray-700 ".concat(t),title:"This market is archived. New deposits are disabled; you can still withdraw existing balances.",children:"Withdraw only"})}},91053:(e,t,l)=>{"use strict";function a(e){return{formatters:void 0,fees:void 0,serializers:void 0,...e}}l.d(t,{x:()=>a})},98658:(e,t,l)=>{Promise.resolve().then(l.bind(l,99691))},99691:(e,t,l)=>{"use strict";l.r(t),l.d(t,{default:()=>tV});var a=l(95155),r=l(12115),n=l(99941),o=l(86954),s=l(78490),i=l(44457),d=l(71613),c=l(22095),u=l(28245),m=l(99361),p=l(10702),f=l(31648),g=l(48281),h=l(97849),v=l(58444),x=l(43569),b=l(87804),w=l(74562);let y=e=>{let{isOpen:t,onClose:l,onBasicClaim:n,onCompound:o,onBuyTide:s,positions:i=[],isLoading:d=!1}=e,[u,m]=(0,r.useState)(new Set);r.useEffect(()=>{t&&i.length>0&&m(new Set(i.map(e=>"".concat(e.marketId,"-").concat(e.poolType))))},[t,i]);let f=(0,r.useMemo)(()=>Array.from(u).map(e=>{let t=e.lastIndexOf("-");return{marketId:e.substring(0,t),poolType:e.substring(t+1)}}),[u]),g=(0,r.useMemo)(()=>i.filter(e=>u.has("".concat(e.marketId,"-").concat(e.poolType))).reduce((e,t)=>e+t.rewardsUSD,0),[i,u]),h=(0,r.useMemo)(()=>i.some(e=>{if(!u.has("".concat(e.marketId,"-").concat(e.poolType))||"collateral"!==e.poolType)return!1;let t=p.Q0[e.marketId];return(0,p.D7)(null!=t?t:e.market)}),[i,u]);return t?(0,a.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[(0,a.jsx)("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-sm",onClick:l}),(0,a.jsxs)("div",{className:"relative isolate ".concat(c.GM," w-full max-w-4xl mx-2 sm:mx-4 animate-in fade-in-0 scale-in-95 duration-200 flex flex-col max-h-[95vh] sm:max-h-[90vh] overflow-hidden rounded-xl border border-[#1E4775]/10"),children:[(0,a.jsxs)("div",{className:"flex items-center justify-between p-3 sm:p-4 lg:p-6 border-b border-[#1E4775]/20 shrink-0",children:[(0,a.jsx)("h2",{className:"text-2xl font-bold text-[#1E4775]",children:"Claim Rewards"}),(0,a.jsx)("button",{onClick:l,className:"text-[#1E4775]/50 hover:text-[#1E4775] transition-colors",disabled:d,children:(0,a.jsx)("svg",{className:"w-6 h-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,a.jsxs)("div",{className:"flex flex-1 min-h-0 overflow-hidden",children:[(0,a.jsx)("div",{className:"w-1/2 border-r border-[#1E4775]/20 overflow-y-auto min-h-0",children:(0,a.jsxs)("div",{className:"p-4",children:[(0,a.jsxs)("div",{className:"mb-4",children:[(0,a.jsx)("h3",{className:"text-lg font-semibold text-[#1E4775] mb-2",children:"Select Pools to Claim"}),i.length>0?(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1 text-sm",children:[(0,a.jsx)("button",{type:"button",onClick:()=>{m(new Set(i.map(e=>"".concat(e.marketId,"-").concat(e.poolType))))},disabled:d,className:"text-[#1E4775] font-medium underline underline-offset-2 hover:text-[#17395F] disabled:opacity-50 disabled:cursor-not-allowed disabled:no-underline",children:"Select all"}),(0,a.jsx)("button",{type:"button",onClick:()=>{m(new Set)},disabled:d,className:"text-[#1E4775] font-medium underline underline-offset-2 hover:text-[#17395F] disabled:opacity-50 disabled:cursor-not-allowed disabled:no-underline",children:"Deselect all"})]}):null]}),0===i.length?(0,a.jsx)("p",{className:"text-sm text-[#1E4775]/70",children:"No positions with rewards available."}):(0,a.jsx)("div",{className:"space-y-2",children:i.map(e=>{var t,l;let r="".concat(e.marketId,"-").concat(e.poolType),n=u.has(r),o=(null==(l=e.market)||null==(t=l.peggedToken)?void 0:t.symbol)||e.marketId,s=p.Q0[e.marketId],i="collateral"===e.poolType&&(0,p.D7)(null!=s?s:e.market);return(0,a.jsxs)("label",{className:"flex items-center gap-3 p-3 rounded-md border border-[#1E4775]/20 hover:bg-[#1E4775]/5 curs
1or-pointer transition-colors",children:[(0,a.jsx)("input",{type:"checkbox",checked:n,onChange:()=>((e,t)=>{let l="".concat(e,"-").concat(t);m(e=>{let t=new Set(e);return t.has(l)?t.delete(l):t.add(l),t})})(e.marketId,e.poolType),className:"w-4 h-4 text-[#1E4775] border-[#1E4775]/30 focus:ring-[#1E4775]",disabled:d}),(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2 mb-1",children:[(0,a.jsxs)("span",{className:"text-sm font-semibold text-[#1E4775]",children:[o," ",e.poolType," pool"]}),(0,a.jsxs)("span",{className:"text-sm font-semibold text-[#1E4775]",children:["$",e.rewardsUSD.toFixed(2)]})]}),(0,a.jsxs)("div",{className:"flex justify-between gap-2 items-end",children:[(0,a.jsxs)("div",{className:"text-xs text-[#1E4775]/70 min-w-0",children:[e.rewardTokens&&e.rewardTokens.length>0?e.rewardTokens.map((e,t)=>{let l=parseFloat(e.claimableFormatted);return(0,a.jsxs)("div",{children:[l.toLocaleString(void 0,{maximumFractionDigits:l>=1?2:6,minimumFractionDigits:0})," ",e.symbol]},t)}):(0,a.jsx)("div",{children:"No rewards available"}),e.depositUSD>0&&(0,a.jsxs)("div",{className:"mt-1",children:["Position: $",e.depositUSD.toFixed(2)]})]}),i?(0,a.jsx)("div",{className:"shrink-0 pt-0.5",children:(0,a.jsx)(w.RZ,{})}):null]})]})]},r)})})]})}),(0,a.jsxs)("div",{className:"w-1/2 p-6 flex flex-col",children:[(0,a.jsxs)("div",{className:"mb-6",children:[(0,a.jsx)("p",{className:"text-sm text-[#1E4775]/80 mb-2",children:"Choose how you would like to handle your rewards:"}),(0,a.jsxs)("div",{className:"bg-[#1E4775]/5 p-3 rounded-md",children:[(0,a.jsx)("div",{className:"text-xs text-[#1E4775]/70 mb-1",children:"Total Selected Rewards"}),(0,a.jsxs)("div",{className:"text-lg font-bold text-[#1E4775] font-mono",children:["$",g.toFixed(2)]})]})]}),(0,a.jsxs)("div",{className:"space-y-3 flex-1",children:[(0,a.jsxs)("button",{onClick:()=>{n(f),l()},disabled:d||0===f.length,className:"w-full p-4 text-left rounded-md bg-white/85 backdrop-blur-sm border-2 border-[#1E4775] hover:bg-[#1E4775]/5 transition-colors flex items-center justify-between group disabled:opacity-50 disabled:cursor-not-allowed",children:[(0,a.jsx)("div",{className:"flex items-center gap-3",children:(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"font-semibold text-[#1E4775]",children:"Basic Claim"}),(0,a.jsx)("p",{className:"text-xs text-[#1E4775]/70 mt-1",children:"Receive rewards directly to your wallet"})]})}),(0,a.jsx)("svg",{className:"w-5 h-5 text-[#1E4775] group-hover:translate-x-1 transition-transform",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})]}),(0,a.jsxs)("div",{children:[(0,a.jsxs)("button",{onClick:()=>{o(f)},disabled:d||0===f.length||h,className:"w-full p-4 text-left rounded-md bg-white/85 backdrop-blur-sm border-2 border-[#1E4775] hover:bg-[#1E4775]/5 transition-colors flex items-center justify-between group disabled:opacity-50 disabled:cursor-not-allowed",title:h?"Deselect pools marked Maintenance / Claim only to use Compound, or use Basic Claim":void 0,children:[(0,a.jsx)("div",{className:"flex items-center gap-3",children:(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"font-semibold text-[#1E4775]",children:"Compound"}),(0,a.jsx)("p",{className:"text-xs text-[#1E4775]/70 mt-1",children:"Automatically reinvest rewards for compound growth"})]})}),(0,a.jsx)("svg",{className:"w-5 h-5 text-[#1E4775] group-hover:translate-x-1 transition-transform",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})]}),h&&f.length>0?(0,a.jsxs)("p",{className:"mt-1.5 text-xs text-[#1E4775]/80",children:["Compound needs minter interaction. Deselect pools in maintenance (or use"," ",(0,a.jsx)("span",{className:"font-semibold",children:"Basic Claim"}),")."]}):null]}),(0,a.jsxs)("button",{onClick:()=>{s(f),l()},disabled:d||0===f.length,className:"w-full p-4 text-left rounded-md bg-white/85 backdrop-blur-sm border-2 border-[#1E4775] hover:bg-[#1E4775]/5 transition-colors flex items-center justify-between group disabled:opacity-50 disabled:cursor-not-allowed disabled:border-gray-300",children:[(0,a.jsx)("div",{className:"flex items-center gap-3",children:(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"font-semibold text-[#1E4775]",children:"Buy $TIDE"}),(0,a.jsx)("p",{className:"text-xs text-[#1E4775]/70 mt-1",children:"Claim rewards, swap via Velora, and buy TIDE through the Uniswap POL pool"})]})}),(0,a.jsx)("svg",{className:"w-5 h-5 text-[#1E4775] group-hover:translate-x-1 transition-transform",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})]})]})]})]})]})]}):null};function k(e){let t=null;if(e.id.startsWith("simple-mint-"))t=e.id.slice(12);else if(/^mint /i.test(e.label.trim())){let l=/\(([^)]+)\)\s*$/.exec(e.label);l&&(t=l[1])}if(!t)return!1;let l=p.Q0[t];return(0,p.D7)(l)}let N=e=>{var t;let{isOpen:l,onClose:n,positions:o,options:s,selectedClaimPools:i,preflight:d,simplePreflight:u,onPreflight:m,onSimplePreflight:f,onContinue:g}=e,[h,v]=(0,r.useState)("keep-per-token"),[x,b]=(0,r.useState)(null==(t=s[0])?void 0:t.marketId),[y,N]=(0,r.useState)(new Set),[P,j]=(0,r.useState)(new Map);(0,r.useEffect)(()=>
1{if(l){if(!x||!s.some(e=>e.marketId===x)){var e;b(null==(e=s[0])?void 0:e.marketId)}v("keep-per-token"),N(new Set),j(new Map)}},[l,s]),(0,r.useMemo)(()=>Array.from(new Set(s.flatMap(e=>e.pools.map(e=>e.collateralSymbol)))),[s]);let A=s.length>0,C=(0,r.useMemo)(()=>s.find(e=>e.marketId===x),[s,x]),T=(0,r.useMemo)(()=>s.map(e=>{let t=e.pools.map(e=>e.apr).filter(e=>void 0!==e),l=t.length?Math.min(...t):void 0,a=t.length?Math.max(...t):void 0;return{marketId:e.marketId,symbol:e.symbol,min:l,max:a,poolsCount:e.pools.length}}),[s]),E=(0,r.useMemo)(()=>Array.from(y).reduce((e,t)=>e+(P.get(t)||0),0),[y,P]),S="single-token"===h&&y.size>0&&100!==E?"Percentages must add up to 100%":null,L=(0,r.useMemo)(()=>Array.from(y).map(e=>({poolAddress:e,percentage:P.get(e)||0})),[y,P]),M=(0,r.useMemo)(()=>x?JSON.stringify({t:x,a:L.slice().sort((e,t)=>e.poolAddress.localeCompare(t.poolAddress)).map(e=>[e.poolAddress.toLowerCase(),e.percentage]),c:i.slice().sort((e,t)=>"".concat(e.marketId,"-").concat(e.poolType).localeCompare("".concat(t.marketId,"-").concat(t.poolType)))}):"",[L,i,x]),R=(0,r.useMemo)(()=>JSON.stringify({c:i.slice().sort((e,t)=>"".concat(e.marketId,"-").concat(e.poolType).localeCompare("".concat(t.marketId,"-").concat(t.poolType)))}),[i]);return((0,r.useEffect)(()=>{if(l){if("keep-per-token"===h){u&&u.key===R||(null==u?void 0:u.isLoading)&&u.key===R||f({selectedClaimPools:i});return}if("single-token"===h){if(!x||0===y.size||S)return;d&&d.key===M||(null==d?void 0:d.isLoading)&&d.key===M||m({targetMarketId:x,allocations:L,selectedClaimPools:i})}}},[L,l,h,m,f,S,d,M,i,y.size,u,R,x]),l)?(0,a.jsxs)("div",{className:"fixed inset-0 z-[65] flex items-center justify-center",children:[(0,a.jsx)("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-sm",onClick:n}),(0,a.jsxs)("div",{className:"relative ".concat(c.GM," w-full max-w-3xl mx-2 sm:mx-4 animate-in fade-in-0 scale-in-95 duration-200 flex flex-col max-h-[95vh] sm:max-h-[90vh] rounded-none overflow-hidden"),children:[(0,a.jsxs)("div",{className:"flex items-center justify-between p-3 sm:p-4 lg:p-6 border-b border-[#1E4775]/20",children:[(0,a.jsx)("h2",{className:"text-2xl font-bold text-[#1E4775]",children:"Choose Anchor Token to Compound To"}),(0,a.jsx)("button",{onClick:n,className:"text-[#1E4775]/50 hover:text-[#1E4775] transition-colors",children:(0,a.jsx)("svg",{className:"w-6 h-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,a.jsxs)("div",{className:"p-4 sm:p-6 flex-1 overflow-y-auto space-y-6",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-sm font-semibold text-[#1E4775] mb-2",children:"Selected positions"}),(0,a.jsx)("div",{className:"border border-[#1E4775]/20",children:o.map(e=>{var t,l,r;let n=(null==(l=e.market)||null==(t=l.peggedToken)?void 0:t.symbol)||e.marketId,o=p.Q0[e.marketId],s="collateral"===e.poolType&&(0,p.D7)(null!=o?o:e.market);return(0,a.jsxs)("div",{className:"border-b border-[#1E4775]/10 px-3 py-2 last:border-b-0",children:[(0,a.jsxs)("div",{className:"mb-1 flex items-center justify-between gap-2",children:[(0,a.jsxs)("div",{className:"min-w-0 truncate text-sm font-semibold text-[#1E4775]",children:[n," ",e.poolType," pool"]}),(0,a.jsxs)("div",{className:"shrink-0 text-sm font-semibold text-[#1E4775]",children:["$",e.rewardsUSD.toFixed(2)]})]}),(0,a.jsxs)("div",{className:"flex justify-between gap-2 items-end",children:[(0,a.jsx)("div",{className:"min-w-0 text-xs text-[#1E4775]/70",children:null==(r=e.rewardTokens)?void 0:r.map(e=>"".concat(e.claimableFormatted," ").concat(e.symbol)).join(", ")}),s?(0,a.jsx)("div",{className:"shrink-0 pt-0.5",children:(0,a.jsx)(w.RZ,{})}):null]})]},"".concat(e.marketId,"-").concat(e.poolType))})})]}),(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsx)("div",{className:"text-sm font-semibold text-[#1E4775]",children:"Compounding mode"}),(0,a.jsxs)("label",{className:"flex items-start gap-3 p-3 border border-[#1E4775]/20",children:[(0,a.jsx)("input",{type:"radio",checked:"keep-per-token"===h,onChange:()=>v("keep-per-token"),className:"mt-1"}),(0,a.jsxs)("div",{className:"flex-1",children:[(0,a.jsx)("div",{className:"font-semibold text-[#1E4775]",children:"Simple c
1ompound"}),(0,a.jsx)("div",{className:"text-xs text-[#1E4775]/70 mt-1",children:"Claim rewards, convert to Anchor tokens, deposit back into original stability pools."}),(0,a.jsxs)("div",{className:"pt-3 mt-3 border-t border-[#1E4775]/15 space-y-2",children:[(0,a.jsx)("div",{className:"text-xs font-semibold text-[#1E4775]/80 uppercase tracking-wide",children:"Estimated fees (dry run)"}),(null==u?void 0:u.key)!==R&&(0,a.jsx)("div",{className:"text-xs text-[#1E4775]/70",children:"Calculating…"}),(null==u?void 0:u.isLoading)&&(0,a.jsx)("div",{className:"text-xs text-[#1E4775]/70",children:"Calculating…"}),(null==u?void 0:u.error)&&u.key===R&&(0,a.jsx)("div",{className:"text-xs text-rose-600",children:u.error}),!u||u.isLoading||u.error||u.key!==R?null:u.fees.length?(0,a.jsx)("div",{className:"space-y-2",children:u.fees.map(e=>{let t=k(e);return(0,a.jsxs)("div",{className:"border border-amber-200 bg-amber-50 p-2 text-xs",children:[(0,a.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,a.jsx)("div",{className:"min-w-0 font-semibold text-amber-900",children:e.label}),(0,a.jsxs)("div",{className:"shrink-0 text-right font-mono font-semibold text-amber-900",children:[e.feeFormatted," ",e.tokenSymbol,void 0!==e.feePercentage&&(0,a.jsxs)("span",{className:"ml-2 text-amber-700",children:["(",e.feePercentage.toFixed(2),"%)"]})]})]}),e.details&&!t&&(0,a.jsx)("div",{className:"mt-1 text-amber-800/80",children:e.details}),e.details&&t&&(0,a.jsxs)("div",{className:"mt-1 flex items-end justify-between gap-2",children:[(0,a.jsx)("div",{className:"min-w-0 text-amber-800/80",children:e.details}),(0,a.jsx)("div",{className:"shrink-0 pt-0.5",children:(0,a.jsx)(w.RZ,{})})]}),!e.details&&t&&(0,a.jsx)("div",{className:"mt-1 flex justify-end",children:(0,a.jsx)(w.RZ,{})})]},e.id)})}):(0,a.jsx)("div",{className:"text-xs text-[#1E4775]/70",children:"No protocol fees detected for your current rewards."})]})]})]}),(0,a.jsxs)("label",{className:"flex items-start gap-3 p-3 border border-[#1E4775]/20 ".concat(A?"":"opacity-50"),children:[(0,a.jsx)("input",{type:"radio",checked:"single-token"===h,onChange:()=>v("single-token"),disabled:!A,className:"mt-1"}),(0,a.jsxs)("div",{className:"flex-1",children:[(0,a.jsx)("div",{className:"font-semibold text-[#1E4775]",children:"Advanced compound"}),(0,a.jsx)("div",{className:"text-xs text-[#1E4775]/70 mt-1",children:"Claim rewards and allocate to any stability pools"}),"single-token"===h&&A&&(0,a.jsxs)("div",{className:"mt-3 space-y-3",children:[(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)("div",{className:"text-xs font-semibold text-[#1E4775]/80 uppercase tracking-wide",children:"Filter by Anchor token"}),(0,a.jsx)("div",{className:"flex flex-wrap gap-2",children:T.map(e=>(0,a.jsxs)("button",{type:"button",onClick:()=>{b(e.marketId),N(new Set),j(new Map)},className:"px-3 py-1.5 border text-sm transition-colors ".concat(x===e.marketId?"border-[#1E4775] bg-[#1E4775]/5 text-[#1E4775]":"border-[#1E4775]/20 hover:bg-[#1E4775]/5 text-[#1E4775]"),children:[(0,a.jsx)("span",{className:"font-semibold",children:e.symbol}),(0,a.jsx)("span",{className:"text-[#1E4775]/70 ml-2",children:void 0!==e.min&&void 0!==e.max?e.min===e.max?"".concat(e.min.toFixed(2),"%"):"".concat(e.min.toFixed(2),"–").concat(e.max.toFixed(2),"%"):"—"})]},e.marketId))})]}),C&&(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)("div",{className:"text-xs font-semibold text-[#1E4775]/80 uppercase tracking-wide",children:"Choose stability pools"}),(0,a.jsx)("div",{className:"space-y-2",children:[...C.pools].sort((e,t)=>{var l,a;return(null!=(l=t.apr)?l:-1/0)-(null!=(a=e.apr)?a:-1/0)}).map(e=>{var t;let l=e.poolAddress.toLowerCase(),r=y.has(l),n=y.size>1&&r,o=null!=(t=P.get(l))?t:0;return(0,a.jsx)("div",{className:"border border-[#1E4775]/20 p-3",children:(0,a.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,a.jsxs)("label",{className:"flex items-start gap-3 cursor-pointer",children:[(0,a.jsx)("input",{type:"checkbox",checked:r,onChange:()=>(e=>{N(t=>{let l=new Set(t);return l.has(e)?l.delete(e):l.add(e),l}),j(t=>{let l=new Map(t);return l.has(e)?l.delete(e):l.set(e,0),l}),setTimeout(()=>{N(e=>{if(1!==e.size)return e;let t=Array.from(e)[0];return j(e=>{let l=new Map(e);return l.set(t,100),l}),e})},0)})(l),className:"mt-1"}),(0,a.jsx)("div",{className:"min-w-0",children:(0,a.jsxs)("div",{className:"font-semibold text-[#1E4775] flex flex-wrap items-center gap-x-2",children:[(0,a.jsxs)("span",{children:[C.symbol," (",e.collateralSymbol,") ",e.poolType," pool"]}),(0,a.jsxs)("span",{className:"text-xs font-semibold text-[#1E4775]/70",children:["APR: ",void 0!==e.apr?"".concat(e.apr.toFixed(2),"%"):"—","(",e.marketId,")"]})]})})]}),n&&(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("input",{type:"number",min:0,max:100,value:o,onChange:e=>((e,t)=>{let l=Math.max(0,Math.min(100,t));j(t=>new Map(t).set(e,l))})(l,Number(e.target.value)),className:"w-20 px-2 py-1 border border-[#1E4775]/30 text-[#1E4775] text-sm"}),(0,a.jsx)("span",{className:"text-sm text-[#1E4775]/70",children:"%"})]})]})},"".concat(e.marketId,"-").concat(l))})}),0===y.size?(0,a.jsx)("div",{className:"text-xs text-[#1E4775]/70",children:"Select one or more pools to continue."}):(0,a.jsxs)("div",{className:"text-xs text-[#1E4775]/70",children:["Total: ",E,"%"," ",S?(0,a.jsxs)("span",{className:"text-rose-600",children:["(",S,")"]}):null]}),x&&y.size>0&&!S&&(0,a.jsxs)("div",{className:"pt-3 border-t border-[#1E4775]/15 space-y-2",children:[(0,a.jsx)("div",{className:"flex items-center justify-between gap-3",children:(0,a.jsx)("div",{className:"text-xs font-semibold text-[#1E4775]/80 uppercase tracking-wide",children:"Estimated fees (dry run)"})}),(null==d?void 0:d.key)!==M&&(0,a.jsx)("div",{className:"text-xs text-[#1E4775]/70",children:"Calculating…"}),(null==d?void 0:d.isLoading)&&(0,a.jsx)("div",{className:"text-xs text-[#1E4775]/70",children:"Calculating…"}),(null==d?void 0:d.error)&&d.key===M&&(0,a.jsx)("div",{className:"text-xs text-rose-600",children:d.error}),!d||d.isLoading||d.error||d.key!==M?null:d.fees.length?(0,a.jsx)("div",{className:"space-y-2",children:d.fees.map(e=>{let t=k(e);return(0,a.jsxs)("div",{className:"border border-amber-200 bg-amber-50 p-2 text-xs",children:[(0,a.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,a.jsx)("div",{className:"min-w-0 font-semibold text-amber-900",children:e.label}),(0,a.jsxs)("div",{className:"shrink-0 text-right font-mono font-semibold text-amber-900",children:[e.feeFormatted," ",e.tokenSymbol,void 0!==e.feePercentage&&(0,a.jsxs)("span",{className:"ml-2 text-amber-700",children:["(",e.feePercentage.toFixed(2),"%)"]})]})]}),e.details&&!t&&(0,a.jsx)("div",{className:"mt-1 text-amber-800/80",children:e.details}),e.details&&t&&(0,a.jsxs)("div",{className:"mt-1 flex items-end justify-between gap-2",children:[(0,a.jsx)("div",{className:"min-w-0 text-amber-800/80",children:e.details}),(0,a.jsx)("div",{className:"shrink-0 pt-0.5",children:(0,a.jsx)(w.RZ,{})})]}),!e.details&&t&&(0,a.jsx)("div",{className:"mt-1 flex justify-end",children:(0,a.jsx)(w.RZ,{})})]},e.id)})}):(0,a.jsx)("div",{className:"text-xs text-[#1E4775]/70",children:"No protocol fees detected for your current rewards."})]})]})]})]})]})]})]}),(0,a.jsxs)("div",{className:"flex gap-2 sm:gap-4 p-3 sm:p-4 lg:p-6 border-t border-[#1E4775]/20",children:[(0,a.jsx)("button",{onClick:n,className:"flex-1 py-2 px-4 text-[#1E4775]/70 hover:text-[#1E4775] transition-colors",children:"Back"}),(0,a.jsx)("button",{onClick:()=>g({mode:h,targetMarketId:"single-token"===h?x:void 0,allocations:"single-token"===h?L:void 0}),disabled:"single-token"===h&&(!A||!x||0===y.size||!!S||!d||d.isLoading||!!d.error||d.key!==M)||"keep-per-token"===h&&(!u||u.isLoading||!!u.error||u.key!==R),className:"flex-1 py-2 px-4 font-medium transition-colors bg-[#1E4775] hover:bg-[#17395F] text-white disabled:bg-gray-300 disabled:text-gray-500 disabled:cursor-not-allowed",children:"Continue"})]})]})]}):null};var P=l(87619),j=l(96059),A=l(49537);let C=e=>{let t="string"==typeof e?parseFloat(e):e;return isNaN(t)||0===t?"0":t>=1?t.toFixed(4):t>=1e-4?t.toFixed(6):t.toPrecision(4)},T=e=>e>=1||e>=.01?e.toFixed(2):e>=1e-4?e.toFixed(4):"<$0.01",E=e=>{let{fee:t}=e;return(0,a.jsxs)("div",{className:"flex items-center gap-1.5 px-2 py-0.5 bg-amber-100 border border-amber-300 text-[10px] text-amber-800 font-medium whitespace-nowrap",children:[(0,a.jsx)("span",{className:"text-amber-600",children:"Fee:"}),(0,a.jsxs)("span",{className:"font-semibold",children:[C(t.feeFormatted)," ",t.tokenSymbol]}),void 0!==t.feeUSD&&t.feeUSD>0&&(0,a.jsxs)("span",{className:"text-amber-600",children:["($",T(t.feeUSD),")"]})]})},S=e=>{let{isOpen:t,onClose:l,onConfirm:n,steps:o,fees:s,feeErrors:i=[]}=e,[d,u]=(0,r.useState)(new Set);if(!t)return null;let m=s.reduce((e,t)=>
1e+(t.feeUSD||0),0);return(0,a.jsxs)("div",{className:"fixed inset-0 z-[60] flex items-center justify-center",children:[(0,a.jsx)("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-sm",onClick:l}),(0,a.jsxs)("div",{className:"relative ".concat(c.GM," w-full max-w-md mx-2 sm:mx-4 animate-in fade-in-0 scale-in-95 duration-200 max-h-[95vh] sm:max-h-[90vh] overflow-y-auto rounded-none"),children:[(0,a.jsxs)("div",{className:"flex items-center justify-between p-3 border-b border-[#1E4775]/20",children:[(0,a.jsx)("h2",{className:"text-base font-bold text-[#1E4775]",children:"Compound Rewards"}),(0,a.jsx)("button",{onClick:l,className:"text-[#1E4775]/50 hover:text-[#1E4775] transition-colors p-1",children:(0,a.jsx)("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,a.jsxs)("div",{className:"p-3 space-y-3",children:[(0,a.jsx)("div",{className:"space-y-1",children:o.map((e,t)=>{let l=(e=>e.fee?{feeAmount:e.fee.amount,feeFormatted:e.fee.formatted,feeUSD:e.fee.usd,feePercentage:e.fee.percentage,tokenSymbol:e.fee.tokenSymbol,label:"redeem"===e.id?"Redeem Sail Tokens":"mint"===e.id?"Mint Anchor Tokens":""}:s.find(t=>"redeem"===e.id?"Redeem Sail Tokens"===t.label:"mint"===e.id&&"Mint Anchor Tokens"===t.label))(e),r=d.has(e.id),n=e.details||l;return(0,a.jsxs)("div",{className:"border border-[#1E4775]/15 overflow-hidden transition-all ".concat(n?"cursor-pointer hover:border-[#1E4775]/30":""),onClick:()=>n&&(e=>{u(t=>{let l=new Set(t);return l.has(e)?l.delete(e):l.add(e),l})})(e.id),children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 p-2 bg-white/85 backdrop-blur-sm",children:[n?(0,a.jsx)("div",{className:"w-4 h-4 flex items-center justify-center text-[#1E4775]/50",children:r?(0,a.jsx)(j.A,{className:"w-3 h-3"}):(0,a.jsx)(A.A,{className:"w-3 h-3"})}):(0,a.jsx)("div",{className:"w-4"}),(0,a.jsx)("div",{className:"w-5 h-5 rounded-full bg-[#1E4775] flex items-center justify-center text-[10px] text-white font-semibold flex-shrink-0",children:t+1}),(0,a.jsx)("span",{className:"text-xs font-medium text-[#1E4775] flex-1 truncate",children:e.label}),l&&(0,a.jsx)(E,{fee:l})]}),r&&n&&(0,a.jsxs)("div",{className:"px-3 pb-2 pt-0 border-t border-[#1E4775]/10 bg-[#1E4775]/[0.02]",children:[e.details&&(0,a.jsx)("p",{className:"text-[11px] text-[#1E4775]/70 mt-2 ml-9",children:e.details}),l&&(0,a.jsx)("div",{className:"mt-2 ml-9 p-2 bg-amber-50 border border-amber-200 text-[11px]",children:(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,a.jsx)("span",{className:"text-amber-700",children:"Fee:"}),(0,a.jsxs)("span",{className:"text-amber-800 font-medium",children:[void 0!==l.feePercentage&&(0,a.jsxs)("span",{className:"text-amber-600 mr-1",children:["(",l.feePercentage.toFixed(2),"%)"]}),C(l.feeFormatted)," ",l.tokenSymbol,void 0!==l.feeUSD&&l.feeUSD>0&&(0,a.jsxs)("span",{className:"text-amber-600 ml-1",children:["≈ $",T(l.feeUSD)]})]})]})})]})]},e.id)})}),s.length>0&&(0,a.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 bg-amber-50 border border-amber-200",children:[(0,a.jsx)("span",{className:"text-xs font-medium text-amber-800",children:"Total Fees:"}),(0,a.jsxs)("span",{className:"text-xs font-bold text-amber-900",children:[s.map((e,t)=>(0,a.jsxs)("span",{children:[t>0&&" +",C(e.feeFormatted)," ",e.tokenSymbol]},t)),m>0&&(0,a.jsxs)("span",{className:"text-amber-700 font-medium ml-1",children:["($",T(m),")"]})]})]}),0===s.length&&i.length>0&&(0,a.jsx)("div",{className:"px-3 py-2 bg-orange-50 border border-orange-200",children:(0,a.jsx)("p",{className:"text-[11px] text-orange-700",children:"⚠️ Fee estimation unavailable. Fees will be shown during transaction."})}),0===s.length&&0===i.length&&(0,a.jsx)("div",{className:"px-3 py-2 bg-green-50 border border-green-200",children:(0,a.jsx)("p",{className:"text-[11px] text-green-700",children:"✓ No protocol fees for this operation."})}),(0,a.jsxs)("div",{className:"flex gap-2 pt-1",children:[(0,a.jsx)("button",{onClick:l,className:"flex-1 px-3 py-2 text-xs font-medium bg-white/85 backdrop-blur-sm text-[#1E4775] border border-[#1E4775]/30 hover:bg-[#1E4775]/5 transition-colors rounded-full",children:"Cancel"}),(0,a.jsx)("button",{onClick:n,className:"flex-1 px-3 py-2 text-xs font-medium bg-[#1E4775] text-white hover:bg-[#17395F] transition-colors rounded-full",children:"Continue"})]})]})]})]})},L=e=>
1{let{isOpen:t,onClose:l,onConfirm:n,pools:o,marketSymbol:s}=e,i=o.filter(e=>e.enabled),[d,u]=(0,r.useState)(new Set),[m,p]=(0,r.useState)(new Map);if((0,r.useEffect)(()=>{t&&(u(new Set),p(new Map))},[t]),!t)return null;let f=Array.from(d).reduce((e,t)=>e+(m.get(t)||0),0),g=d.size>0&&100!==f?"Percentages must add up to 100%":null;return(0,a.jsxs)("div",{className:"fixed inset-0 z-[70] flex items-center justify-center",children:[(0,a.jsx)("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-sm",onClick:l}),(0,a.jsxs)("div",{className:"relative ".concat(c.GM," w-full max-w-md mx-2 sm:mx-4 animate-in fade-in-0 scale-in-95 duration-200 rounded-none max-h-[95vh] sm:max-h-[90vh] overflow-y-auto"),children:[(0,a.jsxs)("div",{className:"flex items-center justify-between p-4 border-b border-[#1E4775]/20",children:[(0,a.jsx)("h2",{className:"text-xl font-bold text-[#1E4775]",children:"Select Pools to Compound To"}),(0,a.jsx)("button",{onClick:l,className:"text-[#1E4775]/50 hover:text-[#1E4775] transition-colors",children:(0,a.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,a.jsxs)("div",{className:"p-4 space-y-4",children:[(0,a.jsx)("p",{className:"text-sm text-[#1E4775]/80",children:"Choose how to split your rewards between the available stability pools."}),0===i.length&&(0,a.jsx)("div",{className:"text-center py-8 text-sm text-[#1E4775]/70",children:"No pools available for this market."}),i.length>0&&(0,a.jsxs)("div",{className:"space-y-2",children:[i.map(e=>{var t;let l=e.address.toLowerCase(),r=d.has(l),n=d.size>1&&r,o=null!=(t=m.get(l))?t:0;return(0,a.jsx)("div",{className:"border border-[#1E4775]/20 p-3",children:(0,a.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,a.jsxs)("label",{className:"flex items-start gap-3 cursor-pointer",children:[(0,a.jsx)("input",{type:"checkbox",checked:r,onChange:()=>(e=>{u(t=>{let l=new Set(t);return l.has(e)?l.delete(e):l.add(e),l}),p(t=>{let l=new Map(t);return d.has(e)?l.delete(e):l.set(e,0),l}),setTimeout(()=>{u(e=>{if(1!==e.size)return e;let t=Array.from(e)[0];return p(e=>{let l=new Map(e);return l.set(t,100),l}),e})},0)})(l),className:"mt-1"}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("div",{className:"font-semibold text-[#1E4775] truncate",children:e.name}),(0,a.jsxs)("div",{className:"text-xs text-[#1E4775]/70 mt-1",children:["APR: ",void 0!==e.apr?"".concat(e.apr.toFixed(2),"%"):"—","  ","•","  ","TVL: ",void 0!==e.tvlUSD?function e(t){if(0===t)return"$0";if(t<0)return"-".concat(e(-t));let l=Math.abs(t);return l>=1e9?"$".concat((l/1e9).toFixed(2),"b"):l>=1e6?"$".concat((l/1e6).toFixed(2),"m"):l>=1e3?"$".concat((l/1e3).toFixed(2),"k"):"$".concat(l.toFixed(2))}(e.tvlUSD):"—"]})]})]}),n&&(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("input",{type:"number",min:0,max:100,value:o,onChange:e=>((e,t)=>{let l=Math.max(0,Math.min(100,t));p(t=>new Map(t).set(e,l))})(l,Number(e.target.value)),className:"w-20 px-2 py-1 border border-[#1E4775]/30 text-[#1E4775] text-sm"}),(0,a.jsx)("span",{className:"text-sm text-[#1E4775]/70",children:"%"})]})]})},e.address)}),d.size>1&&(0,a.jsxs)("div",{className:"text-xs text-[#1E4775]/70",children:["Total: ",f,"% ",g?(0,a.jsxs)("span",{className:"text-rose-600",children:["(",g,")"]}):null]})]}),(0,a.jsxs)("div",{className:"flex gap-2 pt-2",children:[(0,a.jsx)("button",{onClick:l,className:"flex-1 px-4 py-2 text-sm font-medium bg-white/85 backdrop-blur-sm text-[#1E4775] border border-[#1E4775] hover:bg-[#1E4775]/5 transition-colors rounded-full",children:"Cancel"}),(0,a.jsx)("button",{onClick:()=>{0===d.size||g||n(Array.from(d).map(e=>({poolAddress:e,percentage:m.get(e)||0})))},disabled:0===i.length||0===d.size||!!g,className:"flex-1 px-4 py-2 text-sm font-medium bg-[#1E4775] text-white hover:bg-[#17395F] disabled:bg-gray-300 disabled:text-gray-500 disabled:cursor-not-allowed transition-colors rounded-full",children:"Continue"})]})]})]})]})};var M=l(55702),R=l(34898);let I=e=>{let{isOpen:t,onClose:l,onBasicClaim:r,onCompound:n,onBuyTide:o,marketSymbol
1:s,isLoading:i=!1}=e;return t?(0,a.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[(0,a.jsx)("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-sm",onClick:l}),(0,a.jsxs)("div",{className:"relative ".concat(c.GM," w-full max-w-md mx-2 sm:mx-4 animate-in fade-in-0 scale-in-95 duration-200 rounded-none max-h-[95vh] sm:max-h-[90vh] overflow-y-auto"),children:[(0,a.jsxs)("div",{className:"flex items-center justify-between p-3 sm:p-4 lg:p-6 border-b border-[#1E4775]/20",children:[(0,a.jsxs)("h2",{className:"text-2xl font-bold text-[#1E4775]",children:["Claim ",s," Rewards"]}),(0,a.jsx)("button",{onClick:l,className:"text-[#1E4775]/50 hover:text-[#1E4775] transition-colors",disabled:i,children:(0,a.jsx)("svg",{className:"w-6 h-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,a.jsxs)("div",{className:"p-3 sm:p-4 lg:p-6 space-y-3 sm:space-y-4 overflow-y-auto flex-1 min-h-0",children:[(0,a.jsxs)("p",{className:"text-sm text-[#1E4775]/80 leading-relaxed",children:["Choose how you'd like to handle your claimable rewards for ",s,"."]}),(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between p-3 rounded-md bg-[#F0F4F8]",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"text-lg font-semibold text-[#1E4775]",children:"Basic Claim"}),(0,a.jsx)(M.A,{label:"Claim rewards to your wallet.",side:"top",className:"text-[#1E4775]/60"})]}),(0,a.jsx)("button",{type:"button",onClick:()=>{r(),l()},disabled:i,className:i?"inline-flex items-center justify-center min-w-[7rem] px-4 py-2 text-xs font-medium rounded-md bg-gray-300 text-gray-500 cursor-not-allowed":R.Uk,children:i?"Claiming...":"Claim"})]}),(0,a.jsxs)("div",{className:"flex items-center justify-between p-3 rounded-md bg-[#F0F4F8]",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"text-lg font-semibold text-[#1E4775]",children:"Compound"}),(0,a.jsx)(M.A,{label:"Convert rewards to more anchor tokens and deposit into stability pools.",side:"top",className:"text-[#1E4775]/60"})]}),(0,a.jsx)("button",{type:"button",onClick:()=>{n()},disabled:i,className:i?"inline-flex items-center justify-center min-w-[7rem] px-4 py-2 text-xs font-medium rounded-md bg-gray-300 text-gray-500 cursor-not-allowed":R.lY,children:i?"Compounding...":"Compound"})]}),(0,a.jsxs)("div",{className:"flex items-center justify-between p-3 rounded-md bg-[#F0F4F8]",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"text-lg font-semibold text-[#1E4775]",children:"Buy $TIDE"}),(0,a.jsx)(M.A,{label:"Claim rewards, swap to wstETH via Velora (ParaSwap), then buy TIDE through Harbor's Uniswap v4 POL pool.",side:"top",className:"text-[#1E4775]/60"})]}),(0,a.jsx)("button",{type:"button",onClick:()=>{o(),l()},disabled:i,className:i?"inline-flex items-center justify-center min-w-[7rem] px-4 py-2 text-xs font-medium rounded-md bg-gray-300 text-gray-500 cursor-not-allowed":R.Uk,children:i?"Processing...":"Buy TIDE"})]})]})]})]})]}):null};var D=l(60592),F=l(86275),U=l(66706),B=l(80149),O=l(14943),H=l(66808),V=l(9878),W=l(22454),z=l(24268),_=l(55229),$=l(60376),q=l(94935),G=l(32203),K=l(70082),Y=l(65220),X=l(63731),Q=l(87398),Z=l(42033),J=l(58782);let ee="pegged",et="leveraged";var el=l(551),ea=l(21179),er=l(4520),en=l(66305),eo=l(79756);function es(e){var t;if(!e)return!1;let l=(null==(t=e.message)?void 0:t.toLowerCase())||"",a=e.code;return!!(l.includes("user rejected")||l.includes("user denied")||l.includes("rejected")||l.includes("denied")||l.includes("action rejected")||l.includes("user cancelled")||l.includes("user canceled"))||4001===a||4900===a}var ei=l(26785),ed=l(26424),ec=l(97525),eu=l(76115),em=l(24784),ep=l(40290),ef=l(72427),eg=l(34561),eh=l(1588),ev=l(41706),ex=l(39659);let eb=[{type:"function",name:"getSlot0",stateMutability:"view",inputs:[{name:"poolId",type:"bytes32"}],outputs:[{name:"sqrtPriceX96",type:"uint160"},{name:"tick",type:"int24"},{name:"protocolFee",type:"uint24"},{name:"lpFee",type:"uint24"}]}],ew=[{type:"function",name:"approve",stateMutability:"nonpayable",inputs:[{name:"token",type:"address"},{name:"spender",type:"address"},{name:"amount",type:"uint160"},{name:"expiration",type:"uint48"}],outputs:[]},{type:"function",name:"allowance",stateMutability:"view",inputs:[{name:"owner",type:"address"},{name:"token",type:"address"},{name:"spender",type:"address"}],outputs:[{name:"amount",type:"uint160"},{name:"expiration",type:"uint48"},{name:"nonce",type:"uint48"}]}],ey=[{type:"function",name:"execute",stateMutability:"payable",inputs:[{name:"commands",type:"bytes"},{name:"inputs",type:"bytes[]"},{name:"deadline",type:"uint256"}],outputs:[]}],ek=[{type:"function",name:"quoteExactInputSingle",stateMutability:"nonpayable",inputs:[{name:"poolKey",type:"tuple",components:[{name:"currency0",type:"address"},{name:"currency1",type:"address"},{name:"fee",type:"uint24"},{name:"tickSpacing",type:"int24"},{name:"hooks",type:"address"}]},{name:"zeroForOne",type:"bool"},{name:"exactAmount",type:"uint128"},{name:"hookData",type:"bytes"}],outputs:[{name:"amountOut",type:"uint256"},{name:"gasEstimate",type:"uint256"}]}],{poolKey:eN,universalRouter:eP,permit2:ej,v4Quoter:eA,stateView:eC,slippagePct:eT}
1=ei.A,eE=function(e,t){if(e.length!==t.length)throw new ec.YE({expectedLength:e.length,givenLength:t.length});let l=[];for(let a=0;a<e.length;a++){let r=e[a],n=t[a];l.push(function e(t,l,a=!1){if("address"===t){if(!(0,em.P)(l))throw new eu.M({address:l});return(0,ef.eV)(l.toLowerCase(),{size:a?32:null})}if("string"===t)return(0,eg.i3)(l);if("bytes"===t)return l;if("bool"===t)return(0,ef.eV)((0,eg.$P)(l),{size:a?32:1});let r=t.match(eh.Ge);if(r){let[e,t,n="256"]=r,o=Number.parseInt(n,10)/8;return(0,eg.cK)(l,{size:a?32:o,signed:"int"===t})}let n=t.match(eh.BD);if(n){let[e,t]=n;if(Number.parseInt(t,10)!==(l.length-2)/2)throw new ec.BI({expectedSize:Number.parseInt(t,10),givenSize:(l.length-2)/2});return(0,ef.eV)(l,{dir:"right",size:a?32:null})}let o=t.match(eh.D5);if(o&&Array.isArray(l)){let[t,a]=o,r=[];for(let t=0;t<l.length;t++)r.push(e(a,l[t],!0));return 0===r.length?"0x":(0,ep.aP)(r)}throw new ec.Wl(t)}(r,n))}return(0,ep.aP)(l)}(["uint8","uint8","uint8"],[6,12,15]);function eS(e){return e.toLowerCase()===ei.A.tideToken.toLowerCase()}async function eL(e,t){if(t<=0n)return 0n;try{let{result:l}=await e.simulateContract({address:eA,abi:ek,functionName:"quoteExactInputSingle",args:[eN,!0,t,"0x"]}),[a]=l;return a>0n?a:null}catch(e){}try{let l=(await e.readContract({address:eC,abi:eb,functionName:"getSlot0",args:[ei.A.poolId]}))[0];if(l<=0n)return null;let a=2n**96n,r=1000000n-BigInt(eN.fee),n=t*r/1000000n*(l*l)/(a*a);return n>0n?n:null}catch(e){return null}}async function eM(e){let{publicClient:t,owner:l,token:a,amount:r,writeContractAsync:n,ensureErc20Allowance:o}=e;if(r<=0n)return;await o(a,ej,r);let[s,i]=await t.readContract({address:ej,abi:ew,functionName:"allowance",args:[l,a,eP]}),d=Math.floor(Date.now()/1e3);if(s>=r&&i>d+60)return;let c=await n({address:ej,abi:ew,functionName:"approve",args:[a,eP,2n**160n-1n,d+2592e3],chainId:ei.A.chainId});await t.waitForTransactionReceipt({hash:c})}async function eR(e){let{publicClient:t,owner:l,amountIn:a,writeContractAsync:r,ensureErc20Allowance:n}=e;if(a<=0n)throw Error("Nothing to swap through the TIDE POL pool.");let o=await eL(t,a),s=null!=o?o*(10000n-BigInt(Math.round(100*eT)))/10000n:0n;await eM({publicClient:t,owner:l,token:eN.currency0,amount:a,writeContractAsync:r,ensureErc20Allowance:n});let i=function(e){let t=e.amountIn>2n**128n-1n?2n**128n-1n:e.amountIn,l=e.amountOutMinimum>2n**128n-1n?2n**128n-1n:e.amountOutMinimum,a=(0,ev.h)((0,ex.m)("((address currency0, address currency1, uint24 fee, int24 tickSpacing, address hooks) poolKey, bool zeroForOne, uint128 amountIn, uint128 amountOutMinimum, bytes hookData)"),[{poolKey:{currency0:eN.currency0,currency1:eN.currency1,fee:eN.fee,tickSpacing:eN.tickSpacing,hooks:eN.hooks},zeroForOne:!0,amountIn:t,amountOutMinimum:l,hookData:"0x"}]),r=(0,ev.h)((0,ex.m)("address, uint256"),[eN.currency0,e.amountIn]),n=(0,ev.h)((0,ex.m)("address, uint256"),[eN.currency1,e.amountOutMinimum]);return{to:eP,commands:"0x10",inputs:[(0,ev.h)((0,ex.m)("bytes, bytes[]"),[eE,[a,r,n]])],deadline:BigInt(Math.floor(Date.now()/1e3)+1200)}}({amountIn:a,amountOutMinimum:s}),d=await r({address:i.to,abi:ey,functionName:"execute",args:[i.commands,i.inputs,i.deadline],chainId:ei.A.chainId});return await t.waitForTransactionReceipt({hash:d}),d}let{paraswapTransferProxy:eI,pairToken:eD,tideToken:eF,slippagePct:eU}=ei.A;function eB(e,t){let l=e.addresses;return"collateral"===t?null==l?void 0:l.stabilityPoolCollateral:null==l?void 0:l.stabilityPoolLeveraged}async function eO(e,t,l,a){let r=await e.readContract({address:t,abi:B.iA,functionName:"balanceOf",args:[l]});return r>a?r-a:0n}function eH(e){let t=e.toLowerCase(),l=eD.toLowerCase(),a=eF.toLowerCase();return t===l?"".concat(l,"-").concat(a):"".concat(t,"-").concat(l,"-").concat(a)}async function eV(e){let t=await (0,ed.wj)(e.fromToken,e.destToken,e.amount,e.address,eU,e.decimals,e.destDecimals,{route:e.routeHint});if(!t)throw Error("Velora route unavailable");await e.ensureAllowance(e.fromToken,eI,e.amount),await new Promise(e=>setTimeout(e,500));let l=await e.sendTransactionAsync({to:t.to,data:t.data,value:t.value,account:e.address});return await e.publicClient.waitForTransactionReceipt({hash:l}),l}async function eW(e){var t,l,a;let r,n,o,s,i,d,c,{address:u,publicClient:m,anchorMarkets:p,selectedPools:f,getPoolRewardTokens:g,writeContractAsync:h,sendTransactionAsync:v,ensureAllowance:x,setTransactionProgress:b,updateProgressStep:w,setCurrentStep:y,isUserRejection:k,resume:N,flowSource:P="all"}=e;if(N)r=N.steps.map((e,t)=>t>=N.stepIndex?{...e,status:"pending",error:void 0,txHash:void 0,details:void 0}:e),n=N.stepIndex,o=new Map(Object.entries(N.balanceBefore).map(e=>{let[t,l]=e;return[t,BigInt(l)]})),s=BigInt(N.wstEthBefore),i=N.poolsToClaim,d=N.swapTokens,c=N.needsPolSwap,b({isOpen:!0,title:"Buy TIDE with Rewards",steps:r,currentStepIndex:n});else{if(0===(i=f.filter(e=>{var t;let{marketId:l,poolType:a}=e,r=null==(t=p.find(e=>{let[t]=e;return t===l}))?void 0:t[1];if(!r)return!1;let n=eB(r,a);return!!n&&g(n).some(e=>e.claimable>0n)})).length)return{ok:!1,error:"No claimable rewards in the selected pools."};let e=function(e,t,l){let a=new Map;for(let{marketId:n,poolType:o}of e){var r;let e=null==(r=t.find(e=>{let[t]=e;return t===n}))?void 0:r[1];if(!e)continue;let s=eB(e,o);
1if(s)for(let e of l(s)){if(e.claimable<=0n)continue;let t=e.address.toLowerCase(),l=a.get(t);l?a.set(t,{...l,claimable:l.claimable+e.claimable}):a.set(t,{...e})}}return a}(i,p,g);c=(d=[...e.values()].filter(e=>!eS(e.address))).some(e=>!eS(e.address));let l=i.map(e=>{var t,l;let{marketId:a,poolType:r}=e,n=null==(t=p.find(e=>{let[t]=e;return t===a}))?void 0:t[1],o=(null==n||null==(l=n.peggedToken)?void 0:l.symbol)||a;return{id:"claim-".concat(a,"-").concat(r),label:"Claim rewards from ".concat(o," ").concat(r," pool"),status:"pending"}}),a=d.filter(e=>e.address.toLowerCase()!==ei.A.pairToken.toLowerCase()).map(e=>({id:"swap-".concat(e.address.toLowerCase()),label:"Swap ".concat(e.symbol," for TIDE"),status:"pending"})),h=c?{id:"pol-tide",label:"Swap wstETH for TIDE",status:"pending"}:null;for(let t of(b({isOpen:!0,title:"Buy TIDE with Rewards",steps:r=[...l,...a,...h?[h]:[]],currentStepIndex:0}),o=new Map,e.values())){let e=await m.readContract({address:t.address,abi:B.iA,functionName:"balanceOf",args:[u]});o.set(t.address.toLowerCase(),null!=e?e:0n)}s=null!=(t=o.get(eD.toLowerCase()))?t:await m.readContract({address:eD,abi:B.iA,functionName:"balanceOf",args:[u]}),n=0}let j=()=>{var e,t,l;return{source:(l={source:null!=(e=null==N?void 0:N.source)?e:P,selectedPools:null!=(t=null==N?void 0:N.selectedPools)?t:f,steps:r,stepIndex:n,balanceBefore:o,wstEthBefore:s,poolsToClaim:i,swapTokens:d,needsPolSwap:c}).source,selectedPools:l.selectedPools,steps:l.steps,stepIndex:l.stepIndex,balanceBefore:Object.fromEntries([...l.balanceBefore.entries()].map(e=>{let[t,l]=e;return[t,l.toString()]})),wstEthBefore:l.wstEthBefore.toString(),poolsToClaim:l.poolsToClaim,swapTokens:l.swapTokens,needsPolSwap:l.needsPolSwap}},A=new Map(d.map(e=>[e.address.toLowerCase(),e]));try{for(;n<r.length;n++){let e=r[n];if(y(n),w(e.id,{status:"in_progress"}),e.id.startsWith("claim-")){let t=function(e){if(!e.startsWith("claim-"))return null;let t=e.slice(6),l=t.lastIndexOf("-");if(l<=0)return null;let a=t.slice(l+1);return"collateral"!==a&&"sail"!==a?null:{marketId:t.slice(0,l),poolType:a}}(e.id);if(!t)return w(e.id,{status:"error",error:"Invalid claim step"}),{ok:!1,error:"Invalid claim step",resumeState:j()};let a=null==(l=p.find(e=>{let[l]=e;return l===t.marketId}))?void 0:l[1],r=a?eB(a,t.poolType):void 0;if(!r)return w(e.id,{status:"error",error:"Pool address not found"}),{ok:!1,error:"Pool address not found",resumeState:j()};let n=await h({address:r,abi:eo.L,functionName:"claim"});w(e.id,{status:"in_progress",txHash:n,details:"Waiting for confirmation…"}),await m.waitForTransactionReceipt({hash:n}),w(e.id,{status:"completed",txHash:n});continue}if(e.id.startsWith("swap-")){n===r.findIndex(e=>e.id.startsWith("swap-"))&&await new Promise(e=>setTimeout(e,1500));let t=e.id.slice(5),l=A.get(t);if(!l)return w(e.id,{status:"error",error:"Reward token not found"}),{ok:!1,error:"Reward token not found",resumeState:j()};let s=null!=(a=o.get(t))?a:0n,i=await eO(m,l.address,u,s);if(i<=0n){w(e.id,{status:"completed",details:"No balance to swap"});continue}let d=await (0,ed.qU)(l.address,m),c=eH(l.address);w(e.id,{details:"Finding Velora route to TIDE…"});try{let t=await eV({fromToken:l.address,amount:i,decimals:d,destToken:eF,destDecimals:18,address:u,routeHint:c,ensureAllowance:x,sendTransactionAsync:v,publicClient:m});w(e.id,{status:"completed",txHash:t,details:"Routed to TIDE via Velora"})}catch(t){if(k(t))throw t;w(e.id,{details:"Direct TIDE route unavailable — swapping to wstETH…"});try{let t=await eV({fromToken:l.address,amount:i,decimals:d,destToken:eD,destDecimals:18,address:u,routeHint:"".concat(l.address.toLowerCase(),"-").concat(eD.toLowerCase()),ensureAllowance:x,sendTransactionAsync:v,publicClient:m});w(e.id,{status:"completed",txHash:t,details:"Swapped to wstETH — final TIDE leg via POL pool next"})}catch(e){if(k(e))throw e;throw Error("Could not find a swap route for ".concat(l.symbol,". Your tokens are still in your wallet."))}}continue}if("pol-tide"===e.id){await new Promise(e=>setTimeout(e,1500));let e=await eO(m,eD,u,s);if(e<=0n)return w("pol-tide",{status:"completed",details:"TIDE already received via Velora"}),{ok:!0};w("pol-tide",{details:"Trying Velora wstETH → TIDE route…"});try{let t=await eV({fromToken:eD,amount:e,decimals:18,destToken:eF,destDecimals:18,address:u,routeHint:eH(eD),ensureAllowance:x,sendTransactionAsync:v,publicClient:m});w("pol-tide",{status:"completed",txHash:t,details:"Routed to TIDE via Velora"})}catch(l){if(k(l))throw l;w("pol-tide",{details:"Velora unavailable — swapping via Uniswap v4 POL pool…"});let t=await eR({publicClient:m,owner:u,amountIn:e,writeContractAsync:h,ensureErc20Allowance:x});w("pol-tide",{status:"completed",txHash:t,details:"Routed via Uniswap v4 POL pool"})}}}return{ok:!0}}catch(l){let e=function(e,t){if(t(e))return"Transaction was rejected in your wallet.";let l=e instanceof Error?e.message:String(null!=e?e:"Unknown error"),a=l.toLowerCase();return a.includes("route unavailable")||a.includes("could not find a swap route")?l:a.includes("revert")||a.includes("execution reverted")||a.includes("transaction failed")?"The transaction failed on-chain. Please try again.":l||"Something went wrong. Please try again."}(l,k),t=r[n];return t&&w(t.id,{status:"error",error:e}),{ok:!1,error:e,resumeState:j()}}}let ez=B.Sl,e_=B.J6;var e$=l(48409),eq=l(814);function eG(e){let{isConnected:t,claimableRewardsUSD:l,isClaiming:r=!1,onClaim:n,placement:o="below"}=e;if(!t)return null;let s=l>0;return(0,a.jsxs)("div",{className:"grid h-[60px] w-full grid-cols-[1fr_auto] items-center gap-2 rounded-xl px-3.5 sm:gap-4 sm:px-4 ".concat(e$.Fm," ").concat("above"===o?"mb-3":"mt-3"),children:[(0,a.jsxs)("div",{className:"min-w-0 leading-tight",children:[(0,a.jsx)("p",{className:e$.LB,children:"Claimable value"}),(0,a.jsx)("p",{className:"".concat(e$.md," text-sm sm:text-base ").concat(s?"text-[#2d6b5c]":""),children:(0,h.az)(l,{compact:!1})})]}),(0,a.jsx)("button",{type:"button",onClick:n,disabled:r||!s,className:"".concat(R.Uk," h-9 min-w-[6rem] shrink-0 px-6 sm:min-w-[7.5rem] disabled:cursor-not-allowed disabled:opacity-40"),children:r?"Claiming…":"Claim"})]})}function eK(e){let{marketId:t,market:l,initialTab:r="deposit",onSuccess:n,allMarkets:o,positionsMap:s,isComingSoon:i=!1,claimBar:d=null}=e;return(0,a.jsxs)("aside",{className:"flex w-full min-w-0 flex-col",children:[d?(0,a.jsx)(eG,{...d,placement:"above"}):null,(0,a.jsx)("div",{className:"".concat(e$.ny," ").concat(eq.Lv," flex w-full min-w-0 flex-col overflow-hidden"),children:i?(0,a.jsxs)("div",{className:"flex min-h-[16rem] flex-1 flex-col items-center justify-center gap-2 px-4 py-8 text-center",children:[(0,a.jsx)("p",{className:e$.le,children:"Coming soon"}),(0,a.jsx)("p",{className:e$.di,children:"This market is not live yet. Check back when deposits open."})]}):(0,a.jsx)("div",{className:"flex min-h-0 flex-1 w-full flex-col",children:(0,a.jsx)(b.X,{embedded:!0,isOpen:!0,onClose:()=>{},marketId:t,market:l,initialTab:r,onSuccess:n,simpleMode:!0,bestPoolType:"collateral",allMarkets:o,positionsMap:s})})})]})}var eY=l(67909),eX=l(49734);let eQ=(0,eY.default)(()=>Promise.all([l.e(20887),l.e(29400),l.e(92444)]).then(l.bind(l,92444)).then(e=>e.PegTargetUsdChart),{loadableGenerated:{webpack:()=>[92444]},ssr:!1,loading:()=>(0,a.jsx)("div",{className:"flex h-full min-h-48 items-center justify-center text-sm text-[#1E4775]/60",children:"Loading chart…"})});function eZ(e){let{market:t}=e,n=t.pegTarget||"USD",o=(0,eX.gT)(n);return(0,r.useEffect)(()=>{Promise.all([l.e(20887),l.e(29400),l.e(92444)]).then(l.bind(l,92444))},[]),(0,a.jsx)("div",{className:"flex h-full min-h-[22rem] flex-1 flex-col overflow-hidden rounded-xl p-3 sm:min-h-[26rem] ".concat(e$.Fm),children:(0,a.jsx)("div",{className:"min-h-0 flex-1",children:o?(0,a.jsx)(eQ,{asset:o,className:"h-full"}):(0,a.jsx)("div",{className:"flex h-full min-h-48 items-center justify-center px-6 text-center",children:(0,a.jsxs)("p",{className:e$.di,children:["Price chart is not available for peg target “",n,"”."]})})})})}let eJ=(0,l(71847).A)("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);var e0=l(34090),e1=l(83207);let e7=["ETH","BTC","EUR","USD","GOLD","SILVER","MCAP"];function e5(e){let t=e7.indexOf(e);return t>=0?t:e7.length}function e2(e){if(!e)return -1;let t=e.match(/([\d.]+)/);return t?parseFloat(t[1]):-1}
1let e4="absolute left-0 top-[calc(100%+0.35rem)] z-[120] min-w-full w-max max-w-[min(100vw-2rem,26rem)] max-h-80 overflow-y-auto rounded-xl shadow-2xl ".concat(e$.Fm," p-1.5"),e8="bg-[#1E4775]/10",e3="hover:bg-[#1E4775]/[0.06]",e6="truncate text-sm font-semibold text-[#1E4775]",e9="truncate text-[11px] font-medium text-[#1E4775]/55",te="shrink-0 rounded-full bg-[#1E4775]/8 px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-[#64748b]";function tt(e){let{apyLabel:t,className:l=""}=e,r=function(e){if(!e)return null;let t=e.trim();return t?(t.toUpperCase().startsWith("MAX ")&&(t=t.slice(4).trim()),t||null):null}(t);return r?(0,a.jsxs)("span",{className:"inline-flex items-center gap-0.5 ".concat(l).trim(),title:"Max ".concat(r),children:[(0,a.jsx)(eJ,{className:"h-3 w-3 shrink-0 text-[#4A9784]","aria-hidden":!0}),(0,a.jsx)("span",{className:"whitespace-nowrap text-[11px] font-semibold tabular-nums text-[#4A9784] sm:text-xs",children:r})]}):null}function tl(e){var t;let{label:l,trigger:n,children:o,className:s="",open:i,onOpenChange:d}=e,c=(0,r.useRef)(null);return t=()=>d(!1),(0,r.useEffect)(()=>{if(!i)return;let e=e=>{var l;(null==(l=c.current)?void 0:l.contains(e.target))||t()};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[i,t,c]),(0,a.jsxs)("div",{ref:c,className:"relative min-w-0 ".concat(i?"z-[110]":""," ").concat(s).trim(),children:[(0,a.jsx)("p",{className:e$.kU,children:l}),(0,a.jsxs)("button",{type:"button",onClick:()=>d(!i),className:"".concat(e$.xt," w-full"),"aria-expanded":i,"aria-haspopup":"listbox",children:[n,(0,a.jsx)(j.A,{className:"ml-auto h-4 w-4 shrink-0 text-[#1E4775]/50 transition-transform ".concat(i?"rotate-180":""),"aria-hidden":!0})]}),i?(0,a.jsx)("ul",{role:"listbox",className:e4,children:o}):null]})}function ta(e){var t;let{market:l}=e;return(0,a.jsx)(e0.A,{chainName:(0,g.FV)(l),chainLogo:null==(t=l.chain)?void 0:t.logo,size:e$.xZ})}function tr(e){let{group:t,active:l,onSelect:r}=e,n=t.backingOptions.filter(e=>!e.isComingSoon&&e.apyLabel).sort((e,t)=>{var l,a,r,n,o,s;return(parseFloat(null!=(n=null==(l=(null!=(r=t.apyLabel)?r:"").match(/([\d.]+)/))?void 0:l[1])?n:"0")||0)-(parseFloat(null!=(s=null==(a=(null!=(o=e.apyLabel)?o:"").match(/([\d.]+)/))?void 0:a[1])?s:"0")||0)})[0],o=null==n?void 0:n.apyLabel;return(0,a.jsx)("li",{children:(0,a.jsxs)("button",{type:"button",role:"option","aria-selected":l,onClick:r,className:"flex w-full items-start gap-2.5 rounded-lg px-2.5 py-2.5 text-left transition ".concat(l?e8:e3),children:[(0,a.jsx)(ta,{market:t.representativeMarket}),(0,a.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-0.5",children:[(0,a.jsx)("span",{className:e6,children:t.pegLabel}),(0,a.jsxs)("span",{className:e9,children:["Pegged to ",t.pegTarget,t.multiChain?" \xb7 ".concat((0,g.FV)(t.representativeMarket)):""]})]}),o?(0,a.jsx)(tt,{apyLabel:o,className:"mt-0.5 shrink-0"}):null]})})}function tn(e){var t,l;let{option:r,active:n,showChain:o,onSelect:s}=e,{market:i,backingLabel:d,apyLabel:c,isComingSoon:u}=r;return(0,a.jsx)("li",{children:(0,a.jsxs)("button",{type:"button",role:"option","aria-selected":n,onClick:s,className:"flex w-full items-start gap-2.5 rounded-lg px-2.5 py-2.5 text-left transition ".concat(u?"opacity-90 saturate-[0.78]":""," ").concat(n?e8:e3),children:[(0,a.jsx)(v.RU,{symbol:d,size:e$.xZ}),(0,a.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-0.5 overflow-hidden",children:[(0,a.jsx)("span",{className:"truncate ".concat(e6," ").concat(u?"text-[#64748b]":""),children:d}),(0,a.jsx)("span",{className:e9,children:o?(0,g.FV)(i):"Pegged ".concat(null!=(l=null==(t=i.peggedToken)?void 0:t.symbol)?l:"haToken")})]}),u?(0,a.jsx)("span",{className:"".concat(te," mt-0.5"),children:"Coming soon"}):c?(0,a.jsx)(tt,{apyLabel:c,className:"mt-0.5 shrink-0"}):null]})})}function to(e){let{markets:t,selectedMarketId:l,marketsDataById:n,marketPositions:o,onSelectMarket:s,className:i=""}=e,[d,c]=(0,r.useState)(!1),[u,m]=(0,r.useState)(!1),f=d||u,g=(0,r.useMemo)(()=>{let e=new Map;for(let[l]of t){let t=n.get(l),a=Math.max((null==t?void 0:t.maxAPR)||0,(null==t?void 0:t.minAPR)||0);e.set(l,a>0?"".concat((0,e1.Ft)(a)," APY"):void 0)}return e},[t,n]),h=(0,r.useMemo)(()=>(function(e,t){var l,a,r,n,o;let s=new Map;for(let[r,n]of e){let e=function(e){var t,l;return(null==(t=e.peggedToken)?void 0:t.symbol)||"ha".concat(null!=(l=e.pegTarget)?l:"")||0}(n),o={marketId:r,market:n,backingLabel:function(e){var t,l;return(null==(t=e.collateral)?void 0:t.symbol)||(null==(l=e.collateral)?void 0:l.underlyingSymbol)||"—"}(n),chainKey:function(e){var t,l;return null!=(l=null==(t=e.chain)?void 0:t.name)?l:"Ethereum"}(n),apyLabel:null==t||null==(l=t.apyByMarketId)?void 0:l.get(r),isComingSoon:(0,p.pK)(n)},i=null!=(a=s.get(e))?a:[];i.push(o),s.set(e,i)}let i=[];for(let[e,t]of s){let l=new Set(t.map(e=>e.chainKey)).size>1,a=null!=(o=null==(r=t.find(e=>!e.isComingSoon))?void 0:r.market)?o:null==(n=t[0])?void 0:n.market;a&&i.push({pegKey:e,pegLabel:e,haSymbol:e,pegTarget:function(e){var t,l;return e.pegTarget||(null==(l=e.peggedToken)||null==(t=l.symbol)?void 0:t.replace(/^ha/i,""))||"—"}(a),representativeMarket:a,multiChain:l,backingOptions:[...t].sort((e,t)=>
1{if(e.isComingSoon!==t.isComingSoon)return e.isComingSoon?1:-1;let l=e2(e.apyLabel),a=e2(t.apyLabel);return l!==a?a-l:e.backingLabel.localeCompare(t.backingLabel)})})}return i.sort((e,t)=>e5(e.pegTarget)-e5(t.pegTarget)||e.pegLabel.localeCompare(t.pegLabel)),i})(t,{apyByMarketId:g}),[t,g]),x=(0,r.useMemo)(()=>l?h.find(e=>e.backingOptions.some(e=>e.marketId===l)):h[0],[h,l]),b=(0,r.useMemo)(()=>null==x?void 0:x.backingOptions.find(e=>e.marketId===l),[x,l]),w=e=>{let t=o[e];return!!t&&(void 0!==t.collateralPool&&t.collateralPool>0n||void 0!==t.sailPool&&t.sailPool>0n)},y=e=>{s(e),m(!1)};if(!x||!b)return null;let k=x.backingOptions.filter(e=>e.isComingSoon),N=x.backingOptions.filter(e=>!e.isComingSoon);return(0,a.jsxs)("div",{className:"".concat(e$.H4," ").concat(f?"z-[100]":""," ").concat(i).trim(),children:[(0,a.jsx)(tl,{label:"Peg",className:e$.D5,open:d,onOpenChange:e=>{c(e),e&&m(!1)},trigger:(0,a.jsxs)("div",{className:e$.m,children:[(0,a.jsx)(ta,{market:b.market}),(0,a.jsx)("span",{className:"min-w-0 flex-1 ".concat(e$.O7),children:x.pegLabel})]}),children:h.map(e=>(0,a.jsx)(tr,{group:e,active:e.pegKey===x.pegKey,onSelect:()=>(e=>{if(e.pegKey===(null==x?void 0:x.pegKey))return void c(!1);let t=function(e,t){var l,a,r;for(let l of e.backingOptions)if(!l.isComingSoon&&t(l.marketId))return l.marketId;let n=e.backingOptions.find(e=>!e.isComingSoon);return null!=(r=null!=(a=null==n?void 0:n.marketId)?a:null==(l=e.backingOptions[0])?void 0:l.marketId)?r:null}(e,w);t&&s(t),c(!1),m(!1)})(e)},e.pegKey))}),(0,a.jsxs)(tl,{label:"Backing",className:e$.gP,open:u,onOpenChange:e=>{m(e),e&&c(!1)},trigger:(0,a.jsxs)("div",{className:"".concat(e$.m," min-w-0"),children:[(0,a.jsx)(v.RU,{symbol:b.backingLabel,size:e$.xZ}),(0,a.jsx)("span",{className:"shrink-0 whitespace-nowrap ".concat(e$.O7," ").concat(b.isComingSoon?"text-[#64748b]":""),children:b.backingLabel}),!b.isComingSoon&&b.apyLabel?(0,a.jsx)(tt,{apyLabel:b.apyLabel,className:"shrink-0"}):null,b.isComingSoon?(0,a.jsx)("span",{className:te,children:"Coming soon"}):null,(0,a.jsx)("span",{className:"min-w-0 flex-1","aria-hidden":"true"})]}),children:[N.map(e=>(0,a.jsx)(tn,{option:e,active:e.marketId===l,showChain:x.multiChain,onSelect:()=>y(e.marketId)},e.marketId)),k.length>0?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("li",{className:"px-2 pb-1 pt-2 text-[10px] font-semibold uppercase tracking-wide text-[#1E4775]/45",role:"presentation",children:"Coming soon"}),k.map(e=>(0,a.jsx)(tn,{option:e,active:e.marketId===l,showChain:x.multiChain,onSelect:()=>y(e.marketId)},e.marketId))]}):null]})]})}function ts(e){let{label:t,value:l}=e;return(0,a.jsxs)("div",{className:"flex min-w-0 flex-col items-center justify-center px-3 py-2.5 text-center",children:[(0,a.jsx)("span",{className:e$.LB,children:t}),(0,a.jsx)("span",{className:e$.md,title:l,children:l})]})}function ti(e){let{pegTarget:t="USD",bestAprLabel:l,className:r=""}=e;return(0,a.jsxs)("div",{className:"".concat(e$.BC," grid grid-cols-2 ").concat(e$.eA," sm:grid-cols-4 sm:divide-y-0 ").concat(r).trim(),"aria-label":"This market facts",children:[(0,a.jsx)(ts,{label:"Peg target",value:t}),(0,a.jsx)(ts,{label:"Yield source",value:"Stability pools"}),(0,a.jsx)(ts,{label:"Redemptions",value:"Anytime"}),(0,a.jsx)(ts,{label:"APR",value:null!=l?l:"Variable"})]})}var td=l(61440);function tc(e){let{label:t,value:l}=e;return(0,a.jsxs)("div",{className:"flex min-w-0 flex-col items-center justify-center px-2 py-2.5 text-center sm:px-4",children:[(0,a.jsx)("span",{className:e$.LB,children:t}),(0,a.jsx)("span",{className:e$.md,title:l,children:l})]})}function tu(e){let{market:t,isConnected:l,positionUSD:r,collateralPoolUSD:n=0,sailPoolUSD:o=0,bestApr:s,haTokenPriceUSD:i,isLoading:d=!1,className:c=""}=e,u="".concat(e$.BC," grid grid-cols-2 ").concat(e$.eA," sm:grid-cols-4 sm:divide-y-0 ").concat(c).trim();if(!l)return(0,a.jsx)("div",{className:u,"aria-label":"Your position in this market",children:(0,a.jsx)(td.x,{message:"Connect your wallet to view your position in this market.",className:"col-span-2 sm:col-span-4"})});let m=(null!=r?r:0)>0,p=t.pegTarget||"USD",f=d?"…":"—";return(0,a.jsxs)("div",{className:u,"aria-label":"Your position in this market",children:[(0,a.jsx)(tc,{label:"Your position",value:d?"…":m?(0,h.az)(null!=r?r:0):f}),(0,a.jsx)(tc,{label:"Collateral pool",value:d?"…":n>0?(0,h.az)(n):f}),(0,a.jsx)(tc,{label:"Sail pool",value:d?"…":o>0?(0,h.az)(o):f}),(0,a.jsx)(tc,{label:s&&s>0?"Best APR":"ha / ".concat(p),value:d?"…":s&&s>0?(0,e1.Ft)(s):void 0!==i&&i>0?(0,h.az)(i):f})]})}let tm="font-extrabold text-[#6bc4a8]",tp=["Pegged exposure","Stability pool yield","Redeem anytime"];function tf(e){var t,l;let{market:r,className:n="",layout:o="default"}=e,s=r.pegTarget||(null==(t=r.peggedToken)?void 0:t.symbol)||"asset",i=(null==(l=r.peggedToken)?void 0:l.symbol)||"haToken",d="inline"===o;return(0,a.jsxs)("div",{className:"w-full ".concat(n).trim(),children:[d?null:(0,a.jsx)("ul",{className:"mb-1 flex flex-wrap items-center justify-center gap-x-3 gap-y-1.5 text-[11px] font-medium tracking-wide text-white/70 sm:gap-x-0 sm:text-xs",children:tp.map((e,t)=>(0,a.jsxs)("li",{className:"inline-flex items-center",children:[t>0?(0,a.jsx)("span",{className:"mx-2.5 hidden h-3 w-px shrink-0 bg-white/20 sm:mx-3 sm:inline-block","aria-hidden":"true"}):null,(0,a.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-white/75",children:[(0,a.jsx)("span",{className:"inline-block h-1 w-1 rounded-full bg-[#6bc4a8]","aria-hidden":"true"}),(0,a.jsx)("span",{children:e})]})]},e))}),(0,a.jsxs)("p",{className:d?"min-w-0 text-left text-lg font-bold leading-tight text-white/90 sm:text-xl lg:text-center lg:text-2xl xl:text-3xl":"min-w-0 text-center text-xl font-bold leading-snug text-white/90 sm:text-2xl lg:text-3xl",children:["Earn native yield with"," ",(0,a.jsx)("span",{className:tm,children:i}),", pegged to"," ",(0,a.jsx)("span",{className:tm,children:s}),"."]})]})}function tg(e){let{label:t,value:l,valueClassName:r=e$.md,labelExtra:n}=e;return(0,a.jsxs)("div",{className:"flex min-w-0 flex-col items-center justify-center px-2 py-2.5 text-center sm:px-4",children:[(0,a.jsxs)("span",{className:"".concat(e$.LB," inline-flex items-center justify-center gap-1"),children:[t,n]}),(0,a.jsx)("span",{className:r,title:l,children:l})]})}function th(e){let{isConnected:t,earnPortfolioUSD:l,positionsCount:r,vaprPercent:n,isLoadingMarks:o,isLoadingPortfolio:s=!1,totalMarks:i,marksPerDay:d,className:c=""}=e;if(!t)return(0,a.jsx)("div",{className:"".concat(e$.BC," grid grid-cols-1 ").concat(c).trim(),"aria-label":"Your Earn wallet",children:(0,a.jsx)(td.x,{message:"Connect your wallet to view portfolio stats."})});let u=s?"…":null!==n&&n>0?(0,e1.Ft)(n):"—";return(0,a.jsxs)("div",{className:"".concat(e$.BC," grid w-full grid-cols-2 ").concat(e$.eA," sm:grid-cols-4 sm:divide-y-0 ").concat(c).trim(),"aria-label":"Your Earn wallet",children:[(0,a.jsx)(tg,{label:"Earn portfolio",value:s?"…":(0,h.az)(l,{compact:!1})}),(0,a.jsx)(tg,{label:"Positions",value:s?"…":String(r)}),(0,a.jsx)(tg,{label:"vAPR",value:u}),(0,a.jsx)(tg,{label:"Marks",value:o?"…":i<=0?"0":i.toLocaleStr
1ing(void 0,{minimumFractionDigits:2*(i<100),maximumFractionDigits:2*(i<100)}),labelExtra:(0,a.jsx)(M.A,{label:(0,a.jsxs)("div",{className:"space-y-2 text-left",children:[(0,a.jsx)("p",{className:"text-sm font-semibold text-white",children:o?"…":d<=0?"0 marks/day":"".concat(d.toLocaleString(void 0,{maximumFractionDigits:2})," marks/day")}),(0,a.jsx)("p",{className:"text-xs leading-relaxed text-white/85",children:"Marks are earned by holding anchor tokens and depositing into stability pools."})]}),side:"top",children:(0,a.jsx)("span",{className:"inline-flex h-3.5 w-3.5 items-center justify-center rounded-full border border-[#1E4775]/35 text-[9px] font-bold leading-none text-[#1E4775]/70","aria-hidden":!0,children:"i"})})})]})}function tv(e){let{selectedMarketId:t,selectedMarket:l,dropdownMarkets:r,marketsDataById:n,marketPositions:o,onSelectMarket:s,walletStats:i,marketPosition:d,educationBestAprLabel:c}=e;if(!l)return null;let u=d.isConnected;return(0,a.jsxs)("header",{className:"relative z-10 flex flex-col gap-4 overflow-visible border-b border-white/10 pb-4",children:[(0,a.jsx)("div",{className:"min-w-0 overflow-visible",children:(0,a.jsxs)("div",{className:"grid min-w-0 gap-4 overflow-visible lg:grid-cols-[auto_minmax(0,1fr)] lg:items-center lg:gap-8",children:[(0,a.jsx)(to,{markets:r,selectedMarketId:t,marketsDataById:n,marketPositions:o,onSelectMarket:s}),(0,a.jsx)("div",{className:"flex w-full min-w-0 items-center justify-center",children:(0,a.jsx)(tf,{market:l})})]})}),u?(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-4 lg:grid-cols-2 lg:items-stretch",children:[(0,a.jsxs)("div",{className:"flex min-h-0 min-w-0 flex-col",children:[(0,a.jsx)("p",{className:"mb-1 ".concat(e$.OR),children:"Your wallet"}),(0,a.jsx)(th,{...i,className:"min-h-0 w-full flex-1"})]}),(0,a.jsxs)("div",{className:"flex min-h-0 min-w-0 flex-col",children:[(0,a.jsx)("p",{className:"mb-1 ".concat(e$.OR),children:"This market"}),(0,a.jsx)(tu,{market:l,...d,className:"min-h-0 w-full flex-1"})]})]}):(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("p",{className:"mb-1 ".concat(e$.OR),children:"This market"}),(0,a.jsx)(ti,{pegTarget:l.pegTarget,bestAprLabel:c,className:"min-w-0 w-full"})]})]})}var tx=l(24287),tb=l(72019),tw=l(76414),ty=l(10874);function tk(e){let{icon:t,title:l,body:r}=e;return(0,a.jsxs)("div",{className:"".concat(e$.US," p-4 sm:p-5"),children:[(0,a.jsxs)("div",{className:"mb-2.5 flex items-center gap-2.5",children:[(0,a.jsx)(t,{className:"h-5 w-5 shrink-0 text-[#1E4775]/80","aria-hidden":!0}),(0,a.jsx)("h3",{className:e$.le,children:l})]}),(0,a.jsx)("p",{className:e$.di,children:r})]})}function tN(){return(0,a.jsxs)("footer",{className:"".concat(e$.K7," px-3 py-3 sm:px-4"),children:[(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-3 md:grid-cols-3",children:[(0,a.jsx)(tk,{icon:tx.A,title:"What is an haToken",body:"haTokens are pegged tokens that track a peg target (ETH, BTC, EUR, and more) while earning protocol yield funded by collateral yield and trading fees."}),(0,a.jsx)(tk,{icon:tb.A,title:"Stability pools",body:"Deposit haTokens into Collateral or Sail stability pools. Pools help the protocol rebalance by exchanging pegged tokens for collateral or leveraged tokens when needed."}),(0,a.jsx)(tk,{icon:tw.A,title:"Redeem anytime",body:"haTokens stay redeemable for collateral at the peg-target market price. Deposits also earn Ledger marks over time for future rewards and governance."})]}),(0,a.jsxs)("p",{className:"mt-3 flex items-center justify-center gap-1.5 text-sm text-white/65",children:[(0,a.jsx)(ty.A,{className:"h-3.5 w-3.5","aria-hidden":!0}),"Yield is paid to stability pools that protect the protocol"]})]})}function tP(e){return"—"===e||"-"===e||null==e||""===e}function tj(e){let{label:t,value:l}=e;return tP(l)?null:(0,a.jsxs)("div",{className:"flex items-start justify-between gap-3 border-b border-white/[0.08] py-2 last:border-b-0",children:[(0,a.jsx)("span",{className:e$.bp,children:t}),(0,a.jsx)("span",{className:"text-right ".concat(e$.IW),children:l})]})}function tA(e){let{title:t,rows:l}=e,r=l.filter(e=>!tP(e.value));return 0===r.length?null:(0,a.jsxs)("div",{className:"".concat(e$.XW," p-3"),children:[(0,a.jsx)("h3",{className:"mb-2 ".concat(e$.Fk),children:t}),(0,a.jsx)("div",{children:r.map(e=>(0,a.jsx)(tj,{label:e.label,value:e.value},e.label))})]})}function tC(e,t){if(e&&t&&!(t<=0))return(0,e1.ff)(Number(e)/1e18*t)}function tT(e){if(!e)return;let t=(e.collateral||0)+(e.steam||0);if(!(t<=0))return(0,e1.Ft)(t)}function tE(e){var t,l;let{market:r,marketData:n,peggedPriceUSD:o}
1=e,s=(null==(t=r.peggedToken)?void 0:t.symbol)||"haToken",i=null==(l=r.collateral)?void 0:l.symbol,d=r.pegTarget||"USD";return(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,a.jsx)(tA,{title:"Market",rows:[{label:"haToken",value:s},{label:"Collateral",value:i},{label:"Peg target",value:d},{label:"haToken price",value:void 0!==o&&o>0?(0,h.az)(o):void 0}]}),(0,a.jsx)(tA,{title:"Stability pools",rows:[{label:"Collateral pool TVL",value:tC(null==n?void 0:n.collateralPoolTVL,o)},{label:"Collateral pool APR",value:tT(null==n?void 0:n.collateralPoolAPR)},{label:"Sail pool TVL",value:tC(null==n?void 0:n.sailPoolTVL,o)},{label:"Sail pool APR",value:tT(null==n?void 0:n.sailPoolAPR)}]})]})}function tS(e){let{market:t,marketData:l,peggedPriceUSD:n,isLoading:o=!1}=e,[s,i]=(0,r.useState)(!1);return(0,a.jsxs)("div",{children:[(0,a.jsxs)("button",{type:"button",onClick:()=>i(e=>!e),"aria-expanded":s,className:"mb-1 flex w-full items-center justify-between gap-2 text-left",children:[(0,a.jsx)("span",{className:e$.OR,children:"Market metrics"}),(0,a.jsx)(j.A,{className:"h-4 w-4 shrink-0 text-white/55 transition-transform ".concat(s?"rotate-180":""),"aria-hidden":!0})]}),s?o&&!l?(0,a.jsx)("p",{className:"rounded-xl border border-white/[0.08] bg-white/[0.04] px-4 py-6 text-center text-sm text-white/55",children:"Loading market metrics…"}):(0,a.jsx)(tE,{market:t,marketData:l,peggedPriceUSD:n}):null]})}function tL(e){let{onMint:t,onRedeem:l,mintDisabled:r=!1}=e;return(0,a.jsx)("div",{className:"fixed inset-x-0 bottom-0 z-40 border-t border-white/15 bg-[#0d2847]/92 backdrop-blur-lg lg:hidden",style:{paddingBottom:"max(0.75rem, env(safe-area-inset-bottom))"},children:(0,a.jsxs)("div",{className:"mx-auto flex max-w-lg gap-2 px-3 pt-3",children:[(0,a.jsx)("button",{type:"button",onClick:t,disabled:r,className:"".concat(e$.fV," ").concat(r?"cursor-not-allowed opacity-40":""),children:"Mint"}),(0,a.jsx)("button",{type:"button",onClick:l,className:e$.XY,children:"Redeem"})]})})}var tM=l(62673);let tR=eq.cu,tI="anchor-trade-panel";function tD(e){let{selectedMarketId:t,selectedMarket:l,selectedMarketData:n,dropdownMarkets:o,onSelectMarket:s,isConnected:i,marketPositions:d,marketsDataById:c,peggedPriceUSDMap:u,walletStats:m,onManageSuccess:f,allMarketsForSelectedToken:g,claimableRewardsUSD:h=0,isClaiming:v=!1,onClaim:x,isLoadingMarketData:b=!1,marketDataError:w=!1,onRetryMarketData:y}=e,[k,N]=(0,r.useState)("deposit"),P=!!l&&(0,p.pK)(l);(0,r.useEffect)(()=>{N("deposit")},[t]);let j=(0,r.useCallback)(()=>{var e;null==(e=document.getElementById(tI))||e.scrollIntoView({behavior:"smooth",block:"start"})},[]),A=(0,r.useCallback)(e=>{N(e),requestAnimationFrame(()=>j())},[j]),C=(0,r.useMemo)(()=>{if(!t||!u)return;let e=u[t];if(!e)return;let l=Number(e)/1e18;return l>0?l:void 0},[t,u]),T=((null==n?void 0:n.collateralPoolDepositUSD)||0)+((null==n?void 0:n.sailPoolDepositUSD)||0),E=Math.max((null==n?void 0:n.maxAPR)||0,(null==n?void 0:n.minAPR)||0),S=E>0?"".concat(E.toFixed(1),"%"):void 0;return t&&l?(0,a.jsx)(tM.S,{header:(0,a.jsx)(tv,{selectedMarketId:t,selectedMarket:l,dropdownMarkets:o,marketsDataById:c,marketPositions:d,onSelectMarket:s,walletStats:m,marketPosition:{isConnected:i,positionUSD:T,collateralPoolUSD:null==n?void 0:n.collateralPoolDepositUSD,sailPoolUSD:null==n?void 0:n.sailPoolDepositUSD,bestApr:E>0?E:void 0,haTokenPriceUSD:C,isLoading:b},educationBestAprLabel:S}),banner:w?(0,a.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3 rounded-lg border border-amber-400/25 bg-amber-500/10 px-4 py-3 text-sm text-white/90",role:"status",children:[(0,a.jsx)("p",{className:"min-w-0",children:"Some on-chain market data could not be loaded. The chart and trade panel are still available."}),y?(0,a.jsx)("button",{type:"button",onClick:y,className:"shrink-0 rounded-md bg-white/10 px-3 py-1.5 text-xs font-semibold text-white transition hover:bg-white/15",children:"Retry"}):null]}):null,tradePanelId:tI,gridClassName:tR,primary:(0,a.jsx)("div",{className:"flex min-h-[22rem] flex-1 flex-col sm:min-h-[26rem] lg:min-h-0",children:(0,a.jsx)(eZ,{market:l})}),action:(0,a.jsx)(eK,{marketId:t,market:l,initialTab:k,onSuccess:f,allMarkets:g,positionsMap:d,isComingSoon:P,claimBar:x?{isConnected:i,claimableRewardsUSD:h,isClaiming:v,onClaim:x}:null},t),metrics:(0,a.jsx)(tS,{market:l,marketData:n,peggedPriceUSD:C,isLoading:b}),mobileBar:P?null:(0,a.jsx)(tL,{onMint:()=>A("deposit"),onRedeem:()=>A("withdraw")}),infoFooter:(0,a.jsx)(tN,{})}):(0,a.jsx)("div",{className:"rounded-2xl border border-white/[0.08] bg-white/[0.06] px-4 py-8 text-center text-sm text-white/70",children:"No Earn markets match the current filters."})}e$.Fm,e$.Fm;var tF=l(71701),tU=l(78211),tB=l(68851),tO=l(45725),tH=l(21904);function tV(){var e,t,l,w,k,j,A,C,T,E,M,ei,ed,ec,eu,em,ep;let{address:ef,isConnected:eg}=(0,d.$)(),eh=(0,n.i)(),{switchChain:ev}=(0,o.R)(),{writeContractAsync:ex}=(0,s.x)();(0,i.e)();let[eb,ew]=(0,r.useState)(null),[ey,ek]=(0,r.useState)(!1),eN=(0,tH.a)({isConnected:eg,connectedChainId:eh,switchChain:ev,setManageModal:ew,logLabel:"Anchor"}),eP=(0,r.useCallback)(async e=>{let t=new Set(["mint","deposit","deposit-mint"]),l=(0,p.f)(e.market)&&e.initialTab&&t.has(e.initialTab)?{...e,initialTab:"withdraw"}:e;await eN(l)},[eN]),[ej,eA]=(0,r.useState)(!1),[eC,eT]=(0,r.useState)(null);(0,r.useEffect)(()=>{eA(!0)},[]);let{chainFilterSelected:eE,setChainFilterSelected:eS,anchorMarkets:eL,displayedAnchorMarkets:eM,displayedArchivedAnchorMarkets:eR,anch
1orChainOptions:eI,stagger:eD,volProtectionData:eF,projectedAPR:eU,fxSAVEApy:eB,wstETHApy:eO,allPoolAddresses:eH,withdrawalRequests:eV,poolToRewardTokens:e$,reads:eq,refetchReads:eG,isLoadingReads:eK,isReadsError:eY,readsError:eX,peggedPricesFromReads:eQ,coinGeckoIds:eZ,coinGeckoPrices:eJ,coinGeckoLoading:e0,coinGeckoError:e1,peggedPriceUSDMap:e7,mergedPeggedPriceMap:e5,ethPrice:e2,btcPrice:e4,eurPrice:e8,goldPrice:e3,silverPrice:e6,fxUSDPrice:e9,fxSAVEPrice:te,usdcPrice:tt,totalAnchorMarks:tl,totalAnchorMarksPerDay:ta,totalMarksPerDay:tr,sailMarksPerDay:tn,maidenVoyageMarksPerDay:to,haBalances:ts,poolDeposits:ti,sailBalances:td,isLoadingAnchorMarks:tc,anchorMarksError:tu,haLedgerBalances:tm,poolLedgerDeposits:tp,isLoadingLedgerMarks:tf,ledgerMarksError:tg,totalAnchorLedgerMarks:th,totalAnchorLedgerMarksPerDay:tv,userDepositMap:tx,refetchUserDeposits:tb,allPoolRewards:tw,poolRewardsMap:ty,isLoadingAllRewards:tk,isFetchingAllRewards:tN,isErrorAllRewards:tP,showLiveAprLoading:tj,marketPositionConfigs:tA,tokenPricesByMarket:tC,marketPositions:tT,allMarketsTotalPositionUSD:tE,userHasPositions:tS,refetchPositions:tL,groupedMarkets:tM,allMarketsData:tR,anchorStats:tI,claimAllPositions:tV}=function(e){var t;let l=(0,r.useMemo)(()=>Object.entries(p.Q0).filter(e=>{let[t,l]=e;return l.peggedToken}),[]),{chainFilterSelected:a,setChainFilterSelected:n,chainOptions:o,displayedMarkets:s,archivedMarkets:c}=(0,el.z)({markets:l,isVisible:p.E,partitionArchived:!0}),m=(0,r.useMemo)(()=>l.map(e=>{var t,l,a;let[r,n]=e;return{minterAddress:null==(t=n.addresses)?void 0:t.minter,collateralPoolAddress:null==(l=n.addresses)?void 0:l.stabilityPoolCollateral,sailPoolAddress:null==(a=n.addresses)?void 0:a.stabilityPoolLeveraged}}),[l]),f=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50,[l,a]=(0,r.useState)(0),n=(0,r.useRef)(null);return(0,r.useEffect)(()=>{if(!(e<=1))return n.current=setInterval(()=>{a(t=>t>=e-1?(n.current&&(clearInterval(n.current),n.current=null),t):t+1)},t),()=>{n.current&&(clearInterval(n.current),n.current=null)}},[e,t]),Array.from({length:e},(e,t)=>t<=l)}(6,50),{data:g}=(0,D.m)(m,{refetchInterval:6e4,enabled:f[3]}),h=function(){var e,t,l,a,n,o,s,i;let d=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"pb-steth",c=p.Q0[d],u=(null==c||null==(e=c.addresses)?void 0:e.minter)||U.Mh.minter,m=(null==c||null==(t=c.addresses)?void 0:t.stabilityPoolManager)||U.Mh.stabilityPoolManager,f=null==c||null==(l=c.addresses)?void 0:l.stabilityPoolCollateral,g=null==c||null==(a=c.addresses)?void 0:a.stabilityPoolLeveraged,h=(null==c||null==(n=c.addresses)?void 0:n.priceOracle)||U.Mh.priceOracle,v=(null==c||null==(o=c.addresses)?void 0:o.genesis)||U.Mh.genesis,x=(null==c||null==(s=c.addresses)?void 0:s.collateralToken)||U.Mh.wrappedCollateralToken,{data:b,isLoading:w}=(0,F.X)({contracts:[{address:u,abi:B.bq,functionName:"harvestable"},{address:u,abi:B.bq,functionName:"WRAPPED_COLLATERAL_TOKEN"},{address:m,abi:B.On,functionName:"harvestBountyRatio"},{address:m,abi:B.On,functionName:"harvestCutRatio"},{address:f,abi:B.yH,functionName:"totalAssetSupply"},{address:g,abi:B.yH,functionName:"totalAssetSupply"},{address:v,abi:U.iG,functionName:"genesisIsEnded"},{address:h,abi:B._E,functionName:"latestAnswer"},{address:h,abi:B._E,functionName:"decimals"}],enabled:!!u&&!!m&&!!f&&!!g,refetchInterval:6e4}),{data:y,isLoading:k}=(0,F.X)({contracts:[{address:x,abi:B.Fo,functionName:"stEthPerToken"},{address:x,abi:B.iA,functionName:"balanceOf",args:[u]}],enabled:!!x&&!!u,refetchInterval:6e4}),N=null==b||null==(i=b[1])?void 0:i.result,{data:P,isLoading:j}=(0,F.X)({contracts:[{address:f,abi:B.yH,functionName:"rewardData",args:N?[N]:void 0},{address:g,abi:B.yH,functionName:"rewardData",args:N?[N]:void 0},{address:f,abi:B.yH,functionName:"REWARD_PERIOD_LENGTH"}],enabled:!!N&&!!f&&!!g,refetchInterval:6e4});return(0,r.useMemo)(()=>{let e={collateralPoolAPR:null,leveragedPoolAPR:null,isLoading:w||k||j,error:null,harvestableAmount:null,projectedHarvestable:null,remainingDays:null,collateralQueuedRewards:null,leveragedQueuedRewards:null,collateralRewards7Day:null,leveragedRew
1ards7Day:null,hasRewardsNoTVL:!1,collateralPoolHasRewardsNoTVL:!1,leveragedPoolHasRewardsNoTVL:!1,collateralPoolTVL:null,leveragedPoolTVL:null};if(w||k||j)return e;try{var t,l,a,r,n,o,s,i,d,u,m,p,f,g,h,v,x,N,A,C;let w,k=null==b||null==(t=b[0])?void 0:t.result,j=null==b||null==(l=b[2])?void 0:l.result,T=null==b||null==(a=b[3])?void 0:a.result,E=null==b||null==(r=b[4])?void 0:r.result,S=null==b||null==(n=b[5])?void 0:n.result,L=null==b||null==(o=b[6])?void 0:o.result,M=null==b||null==(s=b[7])?void 0:s.result,R=null!=(g=null==b||null==(i=b[8])?void 0:i.result)?g:8,I=null==y||null==(d=y[0])?void 0:d.result,D=null==y||null==(u=y[1])?void 0:u.result,F=null==P||null==(m=P[2])?void 0:m.result,U=null==P||null==(p=P[0])?void 0:p.result,B=null==P||null==(f=P[1])?void 0:f.result,H=U?{lastUpdate:Number(U[0]),finishAt:Number(U[1]),rate:U[2],queued:U[3]}:void 0,V=B?{lastUpdate:Number(B[0]),finishAt:Number(B[1]),rate:B[2],queued:B[3]}:void 0,W=null!=(h=null==H?void 0:H.queued)?h:0n,z=null!=(v=null==V?void 0:V.queued)?v:0n,_=null!=(x=null==H?void 0:H.rate)?x:0n,$=null!=(N=null==V?void 0:V.rate)?N:0n,q=F?Number(F):604800,G=W+_*BigInt(q),K=z+$*BigInt(q);if(void 0===k||0n===k){let t=G>0n&&(!E||0n===E),l=K>0n&&(!S||0n===S);if(W+z>0n||G>0n||K>0n)return{...e,collateralPoolAPR:t?1e4:null,leveragedPoolAPR:l?1e4:null,error:null,harvestableAmount:null!=k?k:0n,collateralQueuedRewards:W,leveragedQueuedRewards:z,collateralRewards7Day:G,leveragedRewards7Day:K,hasRewardsNoTVL:t&&l,collateralPoolHasRewardsNoTVL:t,leveragedPoolHasRewardsNoTVL:l,collateralPoolTVL:null!=E?E:null,leveragedPoolTVL:null!=S?S:null};return{...e,error:"No harvestable amount available",harvestableAmount:null!=k?k:0n,collateralQueuedRewards:W,leveragedQueuedRewards:z,collateralPoolTVL:null!=E?E:null,leveragedPoolTVL:null!=S?S:null}}let Y=null!=E?E:0n,X=null!=S?S:0n,Q=Y+X,Z=G>0n&&0n===Y,J=K>0n&&0n===X;if(0n===Q)return{...e,collateralPoolAPR:G>0n?1e4:null,leveragedPoolAPR:K>0n?1e4:null,error:G>0n||K>0n?null:"No deposits in stability pools",harvestableAmount:k,collateralQueuedRewards:W,leveragedQueuedRewards:z,collateralRewards7Day:G,leveragedRewards7Day:K,hasRewardsNoTVL:G>0n||K>0n,collateralPoolHasRewardsNoTVL:Z,leveragedPoolHasRewardsNoTVL:J,collateralPoolTVL:Y,leveragedPoolTVL:X};let ee=Math.floor(Date.now()/1e3),et=F?Number(F):604800,el=null!=(A=null==H?void 0:H.finishAt)?A:0;if(el>ee)w=el-ee;else if(L)w=et;else{let e=null==c||null==(C=c.genesis)?void 0:C.endDate;if(e){let t=new Date(e).getTime()/1e3;w=t>ee?t-ee+et:et}else w=et}let ea=w/86400,er=k;if(I&&D&&I>0n){let e=(D>k?D-k:0n)*I/BigInt(1e18),t=I*BigInt(Math.floor(1e18*(1+.035/365*ea)))/BigInt(1e18);if(t>I){let l=e*BigInt(1e18)/I,a=e*BigInt(1e18)/t;er=k+(l>a?l-a:0n)}}let en=(0,O.V)(er,null!=j?j:0n,null!=T?T:0n).toPools,eo=en*Y/Q,es=eo+W,ei=en-eo+z,ed=es/BigInt(et),ec=ei/BigInt(et),eu=M?Number(M)/10**R:0,em=null;if(Y>0n&&eu>0){let e=Number(ed)*et,t=Number(Y)/1e18*eu;t>0&&(em=e/1e18*eu/t*(365/7)*100)}else Z&&(em=1e4);let ep=null;if(X>0n&&eu>0){let e=Number(ec)*et,t=Number(X)/1e18*eu;t>0&&(ep=e/1e18*eu/t*(365/7)*100)}else J&&(ep=1e4);return{collateralPoolAPR:null!==em&&"number"==typeof em&&isFinite(em)?em:null,leveragedPoolAPR:null!==ep&&"number"==typeof ep&&isFinite(ep)?ep:null,isLoading:!1,error:null,harvestableAmount:k,projectedHarvestable:er,remainingDays:ea,collateralQueuedRewards:W,leveragedQueuedRewards:z,collateralRewards7Day:es,leveragedRewards7Day:ei,hasRew
1ardsNoTVL:Z&&J,collateralPoolHasRewardsNoTVL:Z,leveragedPoolHasRewardsNoTVL:J,collateralPoolTVL:Y,leveragedPoolTVL:X}}catch(t){return console.error("[useProjectedAPR] Error calculating APR:",t),{...e,error:t instanceof Error?t.message:"Unknown error"}}},[b,y,P,w,k,j,c])}("pb-steth"),{data:v}=(0,H.y)(!0),{data:x}=(0,V.U)(!0),b=(0,r.useMemo)(()=>{let e=[];return l.forEach(t=>{var l,a;let[r,n]=t;(null==(l=n.addresses)?void 0:l.stabilityPoolCollateral)&&e.push(n.addresses.stabilityPoolCollateral),(null==(a=n.addresses)?void 0:a.stabilityPoolLeveraged)&&e.push(n.addresses.stabilityPoolLeveraged)}),e},[l]),{data:w=[]}=function(e){let{address:t}=(0,d.$)(),l=(0,i.e)();return(0,W.I)({queryKey:["withdrawal-requests",t,e],queryFn:async()=>{if(!t||!e.length)return[];if(!l)return console.debug("No client available for withdrawal requests"),[];let a=[];for(let r of e)try{let[e,n]=await l.readContract({address:r,abi:B.yH,functionName:"getWithdrawalRequest",args:[t]});if(!e||!n||0n===e&&0n===n)continue;let o=0n;try{o=await l.readContract({address:r,abi:B.yH,functionName:"getEarlyWithdrawalFee",args:[]})}catch(e){o=0n}let s=await l.getBlock({blockTag:"latest"}),i=BigInt(s.timestamp),d="waiting";i>=e&&i<=n?d="window":i>n&&(d="expired");let c="window"===d;a.push({poolAddress:r,start:e,end:n,earlyWithdrawFee:o,status:d,canWithdraw:c,currentTime:i})}catch(t){let e=(null==t?void 0:t.message)||"";if(e.includes("Failed to fetch")||e.includes("network")||e.includes("revert")||e.includes("execution reverted"))continue;console.debug("Skipping withdrawal request check for ".concat(r,":"),(0,z.Vb)(e))}return a},enabled:!!t&&e.length>0&&!!l,refetchInterval:e=>!!(e.state.data&&Array.isArray(e.state.data))&&e.state.data.length>0&&15e3,staleTime:3e3,retry:!1,throwOnError:!1})}(b),y=(0,r.useMemo)(()=>{let e=new Map;return l.forEach(t=>{var l,a;let[r,n]=t,o=null==(l=n.addresses)?void 0:l.stabilityPoolCollateral,s=null==(a=n.addresses)?void 0:a.stabilityPoolLeveraged;o&&e.set(o,[]),s&&e.set(s,[])}),e},[l]);!function(e,t){var l;let a=null==(l=null==t?void 0:t.enabled)||l,n=(0,r.useMemo)(()=>{let t=[],l=[];return e.forEach(e=>{var a,r;let[n,o]=e,s=null!=(r=null==o?void 0:o.chainId)?r:1,i=null==(a=o.addresses)?void 0:a.minter;i&&"string"==typeof i&&i.startsWith("0x")&&42===i.length&&(t.push({address:i,abi:B.bq,functionName:"PEGGED_TOKEN",chainId:s}),l.push({marketId:n,kind:ee}),t.push({address:i,abi:B.bq,functionName:"LEVERAGED_TOKEN",chainId:s}),l.push({marketId:n,kind:et}))}),{contracts:t,meta:l}},[e]),{data:o}=(0,F.X)({contracts:n.contracts,query:{enabled:a&&n.contracts.length>0,staleTime:3e5,allowFailure:!0}}),s=(0,r.useMemo)(()=>{let e=new Map;return n.meta.forEach((t,l)=>{let a=null==o?void 0:o[l];if((null==a?void 0:a.status)==="success"&&a.result){let l=a.result,r=e.get(t.marketId)||{};t.kind===ee&&(r.peggedAddress=l),t.kind===et&&(r.leveragedAddress=l),e.set(t.marketId,r)}}),e},[n.meta,o]),i=(0,r.useMemo)(()=>new Map(e.map(e=>{var t;let[l,a]=e;return[l,null!=(t=null==a?void 0:a.chainId)?t:1]})),[e]),d=(0,r.useMemo)(()=>{let e=[],t=[];return s.forEach((l,a)=>{var r;let n=null!=(r=i.get(a))?r:1;l.peggedAddress&&(e.push({address:l.peggedAddress,abi:B.iA,functionName:"symbol",chainId:n}),t.push({marketId:a,kind:ee,field:"symbol"}),e.push({address:l.peggedAddress,abi:B.iA,functionName:"name",chainId:n}),t.push({marketId:a,kind:ee,field:"name"})),l.leveragedAddress&&(e.push({address:l.leveragedAddress,abi:B.iA,functionName:"symbol",chainId:n}),t.push({marketId:a,kind:et,field:"symbol"}),e.push({address:l.leveragedAddress,abi:B.iA,functionName:"name",chainId:n}),t.push({marketId:a,kind:et,field:"name"}))}),{contracts:e,meta:t}},[s,i]),{data:c}=(0,F.X)({contracts:d.contracts,query:{enabled:d.contracts.length>0,staleTime:3e5,allowFailure:!0}}),u=(0,r.useMemo)(()=>{let e=new Map;return d.meta.forEach((t,l)=>{let a=null==c?void 0:c[l];if((null==a?void 0:a.status)==="success"&&a.result){let l=e.get(t.marketId)||{};t.kind===ee?("symbol"===t.field&&(l.peggedSymbol=a.result),"name"===t.field&&(l.peggedName=a.result)):("symbol"===t.field&&(l.leveragedSymbol=a.result),"name"===t.field&&(l.leveragedName=a.result)),e.set(t.marketId,l)}}),e},[d.meta,c]);(0,r.useEffect)(()=>{u.forEach((e,t)=>{var l,a,r,n;let o=p.Q0[t];o&&((e.peggedSymbol||e.peggedName)&&(o.peggedToken={...o.peggedToken||{},symbol:e.peggedSymbol||(null==(l=o.peggedToken)?void 0:l.symbol),name:e.peggedName||(null==(a=o.peggedToken)?void 0:a.name)}),(e.leveragedSymbol||e.leveragedName)&&(o.leveragedToken={...o.leveragedToken||{},symbol:e.leveragedSymbol||(null==(r=o.leveragedToken)?void 0:r.symbol),name:e.leveragedName||(null==(n=o.leveragedToken)?void 0:n.name)}))})}
1,[u]),o||n.contracts.length}(l,{enabled:f[5]});let{reads:k,refetchReads:N,isLoading:P,isError:j,error:A}=(0,Y.K)(l,!1,{enabled:f[0]}),C=(0,r.useMemo)(()=>{let e={};return k&&l.forEach((t,a)=>{let[r,n]=t,o=(0,ea.K)(l,a),s=null==k?void 0:k[o+3];s&&void 0!==s.result&&null!==s.result&&(e[r]=s.result)}),e},[l,k]),T=(0,r.useMemo)(()=>{let e=new Set;return l.forEach(t=>{let[l,a]=t,r=a.underlyingCoinGeckoId;r&&e.add(r);let n=a.coinGeckoId;n&&e.add(n)}),e.add("wrapped-steth"),e.add("lido-staked-ethereum-steth"),e.add("bitcoin"),e.add("ethereum"),Array.from(e)},[l]),{prices:E,isLoading:S,error:L}=(0,_.K)(T),{peggedPriceUSDMap:M,mergedPeggedPriceMap:R,ethPrice:I,btcPrice:er,eurPrice:en,goldPrice:eo,silverPrice:es,fxUSDPrice:ei,fxSAVEPrice:ed,usdcPrice:ec}=(0,G.t)(l,k,C),{totalAnchorMarks:eu,totalAnchorMarksPerDay:em,totalMarksPerDay:ep,sailMarksPerDay:ef,maidenVoyageMarksPerDay:eg,haBalances:eh,poolDeposits:ev,sailBalances:ex,isLoading:eb,error:ew}=function(e,t,l){let{address:a}=(0,d.$)(),{haBalances:n,poolDeposits:o,sailBalances:s,loading:i,error:c,userTotalMarks:u}=(0,Q.s)({enabled:!0}),m=(0,r.useMemo)(()=>s?s.reduce((e,t)=>e+t.marksPerDay,0):0,[s]),{marksPerDay:p,isLoading:f}=function(e){var t;let{data:l,isLoading:a,refetch:r}=(0,W.I)({queryKey:["genesisMarksPerDay",e],queryFn:async()=>{var t;if(!e)return{userHarborMarks:[]};let l=(0,Z.AO)(),a=await fetch(l,{method:"POST",headers:(0,Z.BW)(),body:JSON.stringify({query:"\n            query GetUserDeposits($userAddress: Bytes!) {\n              deposits(\n                where: { user: $userAddress }\n                first: 1000\n              ) {\n                id\n                user\n                contractAddress\n              }\n            }\n          ",variables:{userAddress:e.toLowerCase()}})});if(!a.ok)return{userHarborMarks:[]};let r=await a.json();if(r.errors||!(null==(t=r.data)?void 0:t.deposits))return{userHarborMarks:[]};let n=new Set;r.data.deposits.forEach(e=>{n.add(e.contractAddress.toLowerCase())});let o=Array.from(n).map(async t=>{var a;let r="".concat(t,"-").concat(e.toLowerCase()),n=await fetch(l,{method:"POST",headers:(0,Z.BW)(),body:JSON.stringify({query:"\n                query GetUserMarks($id: ID!) {\n                  userHarborMarks(id: $id) {\n                    marksPerDay\n                  }\n                }\n              ",variables:{id:r}})});return n.ok&&(null==(a=(await n.json()).data)?void 0:a.userHarborMarks)||null});return{userHarborMarks:(await Promise.all(o)).filter(e=>null!==e)}},enabled:!!e,refetchInterval:J.v5.RARE}),n=(null==l||null==(t=l.userHarborMarks)?void 0:t.reduce((e,t)=>e+parseFloat(t.marksPerDay||"0"),0))||0;return{data:l,marksPerDay:n,isLoading:a,refetch:r}}(a),[g,h]=(0,r.useState)(0);(0,r.useEffect)(()=>{let e=0,t=0,l=0,a=0;if(n&&n.length>0&&(n.forEach(e=>{t+=e.estimatedMarks}),e+=t),o&&o.length>0&&(o.forEach(e=>{l+=e.estimatedMarks}),e+=l),u){a=parseFloat(u.haTokenMarks||"0")+parseFloat(u.stabilityPoolMarks||"0");let t=parseInt(u.lastUpdated||"0");if(t>0){let e=parseFloat(u.totalMarksPerDay||"0"),l=Math.floor(Date.now()/1e3)-t;l>0&&(a+=l/86400*e)}(0===e||a>1.1*e)&&(e=a)}let r=u?{haTokenMarks:u.haTokenMarks,haTokenMarksNum:parseFloat(u.haTokenMarks||"0"),stabilityPoolMarks:u.stabilityPoolMarks,stabilityPoolMarksNum:parseFloat(u.stabilityPoolMarks||"0"),totalMarks:u.totalMarks,totalMarksNum:parseFloat(u.totalMarks||"0"),totalMarksPerDay:u.totalMarksPerDay,totalMarksPerDayNum:parseFloat(u.totalMarksPerDay||"0"),lastUpdated:u.lastUpdated,lastUpdatedNum:parseInt(u.lastUpdated||"0")}:null;K.u&&console.log("[useAnchorMarks] Total marks calculation:",{haBalancesLength:(null==n?void 0:n.length)||0,poolDepositsLength:(null==o?void 0:o.length)||0,marksFromHa:t,marksFromPools:l,marksFromUserTotal:a,userTotalMarks:r,finalTotalMarks:e,haBalances:null==n?void 0:n.map(e=>({tokenAddress:e.tokenAddress,balance:e.balance,estimatedMarks:e.estimatedMarks,marksPerDay:e.marksPerDay,accumulatedMarks:e.accumulatedMarks})),poolDeposits:null==o?void 0:o.map(e=>({poolAddress:e.poolAddress,balance:e.balance,estimatedMarks:e.estimatedMarks,marksPerDay:e.marksPerDay,accumulatedMarks:e.accumulatedMarks})),totalMarks:e}),h(e)},[n,o,u]);let{totalAnchorMarks:v,totalAnchorMarksPerDay:x}=(0,r.useMemo)(()=>{let e=0,t=0,l=0;return n&&n.length>
10&&(n.forEach(e=>{let l=parseFloat(e.balanceUSD||"0"),a=parseFloat(e.balance||"0");a>0&&l<.01&&K.u&&console.warn("[useAnchorMarks] Subgraph data issue: User has ".concat(a," tokens but balanceUSD is only $").concat(l,". Subgraph may not have proper prices for token ").concat(e.tokenAddress)),l>0&&K.u&&(console.log("[useAnchorMarks] Subgraph balanceUSD for token ".concat(e.tokenAddress,": $").concat(l.toFixed(4)," (balance: ").concat(a,")")),t+=l)}),e+=t),o&&o.length>0&&(o.forEach(e=>{let t=parseFloat(e.balanceUSD||"0"),a=parseFloat(e.balance||"0");a>0&&t<.01&&K.u&&console.warn("[useAnchorMarks] Subgraph data issue: User has ".concat(a," deposit but balanceUSD is only $").concat(t,". Subgraph may not have proper prices for pool ").concat(e.poolAddress)),t>0&&(l+=t)}),e+=l),K.u&&console.log("[useAnchorMarks] Marks per day calculation:",{totalMarks:g,totalPerDay:e,haBalancesLength:(null==n?void 0:n.length)||0,poolDepositsLength:(null==o?void 0:o.length)||0,perDayFromHaBalances:t,perDayFromPoolDeposits:l,userTotalMarks:u?{totalMarksPerDay:u.totalMarksPerDay,haTokenMarks:u.haTokenMarks,stabilityPoolMarks:u.stabilityPoolMarks}:null,haBalances:null==n?void 0:n.map(e=>({tokenAddress:e.tokenAddress,balanceUSD:e.balanceUSD,marksPerDay:e.marksPerDay})),poolDeposits:null==o?void 0:o.map(e=>({poolAddress:e.poolAddress,balanceUSD:e.balanceUSD,marksPerDay:e.marksPerDay}))}),{totalAnchorMarks:g,totalAnchorMarksPerDay:e}},[g,n,o,u]),b=(0,r.useMemo)(()=>x+m+p,[x,m,p]),w=(0,r.useMemo)(()=>{let e=n&&n.some(e=>parseFloat(e.balance||"0")>0),t=n&&n.some(e=>{let t=parseFloat(e.balance||"0"),l=parseFloat(e.balanceUSD||"0");return t>0&&l<.01}),l=o&&o.some(e=>parseFloat(e.balance||"0")>0),a=o&&o.some(e=>{let t=parseFloat(e.balance||"0"),l=parseFloat(e.balanceUSD||"0");return t>0&&l<.01});return e&&t||l&&a?Error("Subgraph is returning incorrect price data. Your positions are detected but USD values are missing or incorrect. Please try refreshing the page."):null},[n,o]);return{totalAnchorMarks:v,totalAnchorMarksPerDay:x,totalMarksPerDay:b,sailMarksPerDay:m,maidenVoyageMarksPerDay:p,isLoading:i||f,error:c||w,haBalances:n,poolDeposits:o,sailBalances:s}}(0,0,0),{haBalances:ey,poolDeposits:ek,loading:eN,error:eP}=(0,Q.s)({enabled:!0}),{totalAnchorLedgerMarks:ej,totalAnchorLedgerMarksPerDay:eA}=(0,r.useMemo)(()=>({totalAnchorLedgerMarks:(null!=ey?ey:[]).reduce((e,t)=>{var l;return e+(null!=(l=t.estimatedMarks)?l:0)},0)+(null!=ek?ek:[]).reduce((e,t)=>{var l;return e+(null!=(l=t.estimatedMarks)?l:0)},0),totalAnchorLedgerMarksPerDay:(null!=ey?ey:[]).reduce((e,t)=>{var l;return e+(null!=(l=t.marksPerDay)?l:0)},0)+(null!=ek?ek:[]).reduce((e,t)=>{var l;return e+(null!=(l=t.marksPerDay)?l:0)},0)}),[ey,ek]),{userDepositMap:eC,refetchUserDeposits:eT}=function(e){var t;let l=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=arguments.length>2?arguments[2]:void 0,n=null==(t=null==a?void 0:a.enabled)||t,{address:o}=(0,d.$)(),s=(0,r.useMemo)(()=>e.map((e,t)=>{var l,a;let[r,n]=e,s=null!=(a=n.chainId)?a:1,i=null==(l=n.addresses)?void 0:l.peggedToken;return i&&"string"==typeof i&&i.startsWith("0x")&&42===i.length&&o?{marketIndex:t,contract:{address:i,abi:B.iA,functionName:"balanceOf",args:[o],chainId:s}}:null}).filter(e=>null!==e),[e,o]),i=(0,r.useMemo)(()=>s.map(e=>e.contract),[s]),c=(0,F.X)({contracts:i,query:{enabled:n&&e.length>0&&!!o&&!l,retry:1,retryOnMount:!1,allowFailure:!0,staleTime:3e4,gcTime:3e5,structuralSharing:!0}}),u=(0,F.X)({contracts:i,query:{enabled:n&&e.length>0&&!!o&&l,refetchInterval:J.v5.FAST,allowFailure:!0,staleTime:1e4,gcTime:3e5,structuralSharing:!0}}),m=l?u.data:c.data,p=l?u.refetch:c.refetch;return{userDepositMap:(0,r.useMemo)(()=>{let e=new Map;return s.forEach((t,l)=>{var a;let{marketIndex:r}=t;e.set(r,null==m||null==(a=m[l])?void 0:a.result)}),e},[m,s]),refetchUserDeposits:p,isLoading:!m&&i.length>0}}(l,!1,{enabled:f[1]}),{allPoolRewards:eE,poolRewardsMap:eS,isLoadingAllRewards:eL,isFetchingAllRewards:eM,isErrorAllRewards:eR}=(0,X.$)(l,k,I,er,M),eI=eL||eM&&0===eS.size,eD=(0,r.useMemo)(()=>l.map(e=>{var t,l,a,r,n,o;let[s,i]=e,d=!!(null==(t=i.addresses)?void 0:t.stabilityPoolCollateral),c=!!(null==(l=i.addresses)?void 0:l.stabilityPoolLeveraged);return{marketId:s,peggedTokenAddress:null==i||null==(a=i.addresses)?void 0:a.peggedToken,collateralPoolAddress:d?null==(r=i.addresses)?void 0:r.stabilityPoolCollateral:void 0,sailPoolAddress:c?null==(n=i.addresses)?void 0:n.stabilityPoolLeveraged:void 0,minterAddress:null==(o=i.addresses)?void 0:o.minter}}),[l]),eF=(0,r.useMemo)(()=>eD.map(e=>{var t;let a=null==(t=l.find(t=>{let[l]=t;return l===e.marketId}))?void 0:t[1];return{marketId:e.marketId,minterAddress:e.minterAddress,pegTarget:(null==a?void 0:a.pegTarget)||"USD"}}).filter(e=>e.minterAddress),[eD,l]),eU=(0,q.z)(eF),{positionsMap:eB,totalPositionUSD:eO,hasPositions:eH,refetch:eV}=(0,$.o)(eD,e,R,{enabled:f[2]}),eW=(0,r.useMemo)(()=>
1{if(!k)return null;let e={};l.forEach((t,l)=>{var a;let[r,n]=t,o=(null==(a=n.peggedToken)?void 0:a.symbol)||"UNKNOWN";e[o]||(e[o]=[]),e[o].push({marketId:r,market:n,marketIndex:l})});let t=[];return Object.entries(e).forEach(e=>{let[a,r]=e,n=0,o=r[0].marketId,s=r[0].market,i=r[0].marketIndex,d="collateral",c=0,u=0,m="",p=!1,f=!1;r.forEach(e=>{var t,a,r,g,h,v,x,b,w,y,N,P,j,A,C,T;let E,S,L,M,R,{marketId:I,market:D,marketIndex:F}=e,U=!!(null==(t=D.addresses)?void 0:t.stabilityPoolCollateral),B=!!(null==(a=D.addresses)?void 0:a.stabilityPoolLeveraged),O=0;for(let e=0;e<F;e++){let t=l[e][1],a=!!(null==(v=t.addresses)?void 0:v.stabilityPoolCollateral),r=!!(null==(x=t.addresses)?void 0:x.stabilityPoolLeveraged),n=!!(null==(b=t.addresses)?void 0:b.collateralPrice);O+=5,(null==(w=t.addresses)?void 0:w.stabilityPoolManager)&&(O+=1),a&&(O+=4),r&&(O+=4),n&&(O+=1)}let H=O,V=null==k||null==(r=k[H+3])?void 0:r.result,W=H+5;if(U){let e=null==k||null==(y=k[W+1])?void 0:y.result;E=e?{collateral:Number(e[0])/1e16*100,steam:Number(e[1])/1e16*100}:void 0,L=null==k||null==(N=k[W+2])?void 0:N.result,null==k||null==(P=k[W+3])||P.result,W+=4}if(B){let e=null==k||null==(j=k[W+1])?void 0:j.result;S=e?{collateral:Number(e[0])/1e16*100,steam:Number(e[1])/1e16*100}:void 0,M=null==k||null==(A=k[W+2])?void 0:A.result,null==k||null==(C=k[W+3])||C.result,W+=4}if(null==(g=D.addresses)?void 0:g.collateralPrice){let e=null==k||null==(T=k[W])?void 0:T.result;null!=e&&(Array.isArray(e)?R=e[1]:"object"==typeof e?R=e.maxUnderlyingPrice:"bigint"==typeof e&&(R=e))}let z=E?(E.collateral||0)+(E.steam||0):0,_=S?(S.collateral||0)+(S.steam||0):0;if(z>n&&(n=z,o=I,s=D,i=F,d="collateral"),_>n&&(n=_,o=I,s=D,i=F,d="sail"),L&&R&&1){let e=Number(R)/10**(Number(18)||8),t=Number(L)/1e18;c+=t*e}if(M&&V&&R&&1){let e=Number(V)/1e18,t=Number(R)/10**(Number(18)||8),l=Number(M)/1e18;c+=e*t*l}let $=eB[I];$&&($.collateralPool>0n&&(p=!0),$.sailPool>0n&&(p=!0),$.walletHa>0n&&(f=!0),u+=$.totalUSD||0),!m&&(null==(h=D.collateral)?void 0:h.symbol)&&(m=D.collateral.symbol)}),t.push({symbol:a,markets:r,bestMarketId:o,bestMarket:s,bestMarketIndex:i,bestPoolType:d,combinedAPR:n,combinedRewardsUSD:c,combinedPositionUSD:u,collateralSymbol
1:m,hasStabilityPoolDeposits:p,hasHaTokens:f})}),t},[k,l,eB]),ez=(t={fxSAVEApy:null!=v?v:null,wstETHApy:null!=x?x:null},(0,r.useMemo)(()=>{if(!k)return[];let e={};l.forEach((t,l)=>{var a;let[r,n]=t,o=(null==(a=n.peggedToken)?void 0:a.symbol)||"UNKNOWN";e[o]||(e[o]=[]),e[o].push({marketId:r,market:n,marketIndex:l})});let a=[];return Object.entries(e).forEach(e=>{let[r,n]=e,o=n.map(e=>{var a,r,n,o,s,i,d,c,u,m,p,f,g,h,v,x,b,w,y,N,P,j,A,C,T,E,S,L,R,D,F,U,B,O;let H,V,W,z,_,$,q,G,Y,X,Q,Z,J,{marketId:ee,market:et,marketIndex:el}=e,ea=!!(null==(a=et.addresses)?void 0:a.stabilityPoolCollateral),er=!!(null==(r=et.addresses)?void 0:r.stabilityPoolLeveraged),en=null==(o=et.addresses)||null==(n=o.stabilityPoolCollateral)?void 0:n.toLowerCase(),eo=null==(i=et.addresses)||null==(s=i.stabilityPoolLeveraged)?void 0:s.toLowerCase();null==ev||ev.find(e=>en&&e.poolAddress.toLowerCase()===en&&("collateral"===e.poolType||"Collateral"===e.poolType)),null==ev||ev.find(e=>eo&&e.poolAddress.toLowerCase()===eo&&("sail"===e.poolType||"Sail"===e.poolType||"leveraged"===e.poolType));let es=(null==(c=et.collateral)||null==(d=c.symbol)?void 0:d.toLowerCase())||"",ei="fxusd"===es||"fxsave"===es,ed=0;for(let e=0;e<el;e++){let t=l[e][1],a=!!(null==(x=t.addresses)?void 0:x.stabilityPoolCollateral),r=!!(null==(b=t.addresses)?void 0:b.stabilityPoolLeveraged),n=!!(null==(w=t.addresses)?void 0:w.collateralPrice),o=!!(null==(y=t.addresses)?void 0:y.stabilityPoolManager),s=null==t||null==(N=t.addresses)?void 0:N.peggedToken,i=(null==(j=t.collateral)||null==(P=j.symbol)?void 0:P.toLowerCase())||"",d="fxusd"===i||"fxsave"===i;ed+=7,o&&(ed+=1),a&&(ed+=4,s&&(ed+=1)),r&&(ed+=4,s&&(ed+=1)),n&&(ed+=1,d&&(ed+=1))}let ec=ed,eu=null==k?void 0:k[ec],em=null==k?void 0:k[ec+1],ep=null==k?void 0:k[ec+2],ef=(null==em?void 0:em.status)==="success"&&(null==em?void 0:em.result)!==void 0&&(null==em?void 0:em.result)!==null?em.result:void 0,eg=(null==ep?void 0:ep.status)==="success"&&(null==ep?void 0:ep.result)!==void 0&&(null==ep?void 0:ep.result)!==null?ep.result:void 0;(null==eu?void 0:eu.status)==="success"&&void 0!==eu.result&&null!==eu.result?H=eu.result:void 0!==ef&&void 0!==eg&&eg>0n&&(H=ef*10n**18n/eg);let eh=eB[ee],ex=null==k?void 0:k[ec+3],eb=(null==ex?void 0:ex.status)==="success"?ex.result:null==eh?void 0:eh.peggedTokenPrice,ew=null==k?void 0:k[ec+4],ey=(null==ew?void 0:ew.status)==="success"?ew.result:void 0,ek=null==k?void 0:k[ec+5],eN=(null==ek?void 0:ek.status)==="success"?ek.result:void 0,eP=null==k||null==(u=k[ec+6])?void 0:u.result,ej=null==k?void 0:k[ec+7];if((null==ej?void 0:ej.status)==="success"&&ej.result)V=ej.result;else{let e=[];(null==eP||null==(C=eP.mintPeggedIncentiveConfig)||null==(A=C.collateralRatioBandUpperBounds)?void 0:A[0])&&e.push(eP.mintPeggedIncentiveConfig.collateralRatioBandUpperBounds[0]),(null==eP||null==(E=eP.redeemPeggedIncentiveConfig)||null==(T=E.collateralRatioBandUpperBounds)?void 0:T[0])&&e.push(eP.redeemPeggedIncentiveConfig.collateralRatioBandUpperBounds[0]),(null==eP||null==(L=eP.mintLeveragedIncentiveConfig)||null==(S=L.collateralRatioBandUpperBounds)?void 0:S[0])&&e.push(eP.mintLeveragedIncentiveConfig.collateralRatioBandUpperBounds[0]),(null==eP||null==(D=eP.redeemLeveragedIncentiveConfig)||null==(R=D.collateralRatioBandUpperBounds)?void 0:R[0])&&e.push(eP.redeemLeveragedIncentiveConfig.collateralRatioBandUpperBounds[0]),e.length>0&&(V=e.reduce((e,t)=>t<e?t:e))}let eA=!!(null==(m=et.addresses)?void 0:m.stabilityPoolManager),eC=null==(p=et.addresses)?void 0:p.peggedToken,eT=ec+7;if(eA&&(eT+=1),ea){let e=null==k?void 0:k[eT],t=null==k?void 0:k[eT+1],l=(null==e?void 0:e.status)==="success"&&void 0!==e.result&&null!==e.result?e.result:void 0,a=(null==t?void 0:t.status)==="success"&&void 0!==t.result&&null!==t.result?t.result:void 0;W=null!=l?l:a,z=void 0;let r=null==k?void 0:k[eT+2];_=(null==r?void 0:r.status)==="success"&&void 0!==r.result&&null!==r.result?r.result:void 0;let n=null==k?void 0:k[eT+3];$=(null==n?void 0:n.status)==="success"&&void 0!==n.result&&null!==n.result?n.result:0n;let o=eC?null==k?void 0:k[eT+4]:void 0,s=(null==o?void 0:o.status)==="success"&&o.result?o.result:void 0,i=0;if(s&&W&&W>0n&&eb){let e=s[2];if(e>0n){let t=Number(e)/Number(W)*Number(W)*31536e3,l=Number(eb)/1e18,a=Number(eb)/1e18,r=Number(W)*a/1e18;r>0&&(i=t*l/1e18/r*100)>0&&(z=z?{collateral:(z.collateral||0)+i,steam:z.steam||0}:{collateral:i,steam:0})}}
1let d=ea?null==(F=et.addresses)?void 0:F.stabilityPoolCollateral:void 0;if(d){let e=eS.get(d),t=z?(z.collateral||0)+(z.steam||0):0;(null==e?void 0:e.totalRewardAPR)!==void 0&&e.totalRewardAPR>0?(K.u&&console.log("[useAnchorMarketData] Using poolReward.totalRewardAPR for collateral pool",{marketId:ee,poolAddress:d,contractAPR:t,totalRewardAPR:e.totalRewardAPR}),z={collateral:e.totalRewardAPR,steam:0}):K.u&&d&&console.log("[useAnchorMarketData] No poolReward.totalRewardAPR for collateral pool, using contract APR",{marketId:ee,poolAddress:d,contractAPR:t,poolRewardExists:!!e,totalRewardAPR:null==e?void 0:e.totalRewardAPR})}eT+=4,eC&&(eT+=1)}if(er){let e=null==k?void 0:k[eT],t=null==k?void 0:k[eT+1],l=(null==e?void 0:e.status)==="success"&&void 0!==e.result&&null!==e.result?e.result:void 0,a=(null==t?void 0:t.status)==="success"&&void 0!==t.result&&null!==t.result?t.result:void 0;q=null!=l?l:a,G=void 0;let r=null==k?void 0:k[eT+2];Y=(null==r?void 0:r.status)==="success"&&void 0!==r.result&&null!==r.result?r.result:void 0;let n=null==k?void 0:k[eT+3];X=(null==n?void 0:n.status)==="success"&&void 0!==n.result&&null!==n.result?n.result:0n;let o=eC?null==k?void 0:k[eT+4]:void 0,s=(null==o?void 0:o.status)==="success"&&o.result?o.result:void 0;if(s&&q&&q>0n&&eb){let e=s[2];if(e>0n){let t=Number(e)/Number(q)*Number(q)*31536e3,l=Number(eb)/1e18,a=Number(eb)/1e18,r=Number(q)*a/1e18;if(r>0){let e=t*l/1e18/r*100;e>0&&(G=G?{collateral:(G.collateral||0)+e,steam:G.steam||0}:{collateral:e,steam:0})}}}let i=er?null==(U=et.addresses)?void 0:U.stabilityPoolLeveraged:void 0;if(i){let e=eS.get(i),t=G?(G.collateral||0)+(G.steam||0):0;(null==e?void 0:e.totalRewardAPR)!==void 0&&e.totalRewardAPR>0?(K.u&&console.log("[useAnchorMarketData] Using poolReward.totalRewardAPR for sail pool",{marketId:ee,poolAddress:i,contractAPR:t,totalRewardAPR:e.totalRewardAPR}),G={collateral:e.totalRewardAPR,steam:0}):K.u&&i&&console.log("[useAnchorMarketData] No poolReward.totalRewardAPR for sail pool, using contract APR",{marketId:ee,poolAddress:i,contractAPR:t,poolRewardExists:!!e,totalRewardAPR:null==e?void 0:e.totalRewardAPR})}eT+=4,eC&&(eT+=1)}if(null==(f=et.addresses)?void 0:f.collateralPrice){let e=null==k||null==(B=k[eT])?void 0:B.result;if(null!=e&&(Array.isArray(e)?(Q=e[1],Z=e[3]):"object"==typeof e?(Q=e.maxUnderlyingPrice,Z=e.maxWrappedRate):"bigint"==typeof e&&(Q=e,Z=BigInt("1000000000000000000"))),ei){let e=null==k||null==(O=k[eT+1])?void 0:O.result;null!=e&&(J=e),eT+=2}else eT+=1}let eE=(null==eh?void 0:eh.walletHa)||0n,eL=(null==eh?void 0:eh.collateralPool)||$||0n,eM=(null==eh?void 0:eh.sailPool)||X||0n,eR=(null==eh?void 0:eh.collateralPoolUSD)||0,eI=(null==eh?void 0:eh.sailPoolUSD)||0,eD=(null==eh?void 0:eh.walletHaUSD)||0,eF=0,eU=0,eO=ea?null==(g=et.addresses)?void 0:g.stabilityPoolCollateral:void 0;if(eO){let e=eS.get(eO);e&&(eF=e.claimableValue)}let eH=er?null==(h=et.addresses)?void 0:h.stabilityPoolLeveraged:void 0;if(eH){let e=eS.get(eH);e&&(eU=e.claimableValue)}let eV=z?(z.collateral||0)+(z.steam||0):0,eW=G?(G.collateral||0)+(G.steam||0):0,ez=ei?t.fxSAVEApy:"wsteth"===es||"steth"===es?t.wstETHApy:null,e_=null,e$=null,eq="wsteth"===es||"steth"===es;if((ei||eq)&&null!==ez&&ef&&eb){let e=0;if(M&&M[ee])e=Number(M[ee])/1e18;else if(eg&&ef){let t=Number(ef)/1e18,l=Number(eg)/1e18;e=l>0?t/l:0}let t=0;W&&e>0&&(t=Number(W)/1e18*e);let l=0;q&&e>0&&(l=Number(q)/1e18*e);let a=t+l,r=0;if(ef){if(ei)r=Number(ef)/1e18;else if(eq&&Z){let e=Number(Z)/1e18,t=Number(ef)/1e18,l=I&&I>0?I*e:3e3*e;r=(e>0?t/e:t)*l}}if(K.u&&console.log("[Dynamic APR Pre-calculation]",{marketId:ee,isFxUSDMarket:ei,baseYield:ez,baseYieldPercent:ez?100*ez:null,collateralValue:null==ef?void 0:ef.toString(),peggedTokenPrice:null==eb?void 0:eb.toString(),totalDebt:null==eg?void 0:eg.toString(),collateralPoolTVL:null==W?void 0:W.toString(),sailPoolTVL:null==q?void 0:q.toString(),anchorPoolTVLUSD:t,sailPoolTVLUSD:l,totalPoolTVLUSD:a,minterCollateralUSD:r,ratio:a>0?r/a:0}),a>=100&&r>0&&r/a<1e3){let e=100*ez,n=r/a,o=e*n;K.u&&console.log("[Dynamic APR Calculation]",{marketId:ee,baseYieldPercent:e,collateralSymbol
1:es,minterCollateralUSD:r,anchorPoolTVLUSD:t,sailPoolTVLUSD:l,totalPoolTVLUSD:a,ratio:n,dynamicAPR:o});let s=Math.min(o,1e3);e_=s,e$=s}else{let e=void 0!==H?Number(H)/1e18:0,t=e>0?ez*e*100:null;e_=t,e$=t}}else if(null!==ez){let e=void 0!==H?Number(H)/1e18:0,t=e>0?ez*e*100:null;e_=t,e$=t}let eG=[eV,eW].filter(e=>e>0),eK=eG.length>0?Math.min(...eG):0,eY=eG.length>0?Math.max(...eG):0,eX=[e_,e$].filter(e=>null!==e&&e>0);return{marketId:ee,market:et,marketIndex:el,collateralRatio:H,collateralValue:ef,totalDebt:eg,peggedTokenPrice:eb,leveragedTokenBalance:ey,leveragedTokenPrice:eN,collateralPoolTVL:W,collateralPoolAPR:z,collateralPoolRewards:_,collateralPoolDeposit:eL,collateralPoolDepositUSD:eR,sailPoolTVL:q,sailPoolAPR:G,sailPoolRewards:Y,sailPoolDeposit:eM,sailPoolDepositUSD:eI,haTokenBalanceUSD:eD,collateralRewardsUSD:eF,sailRewardsUSD:eU,collateralPrice:Q,collateralPriceDecimals:18,wrappedRate:Z,fxSAVEPriceInETH:J,userDeposit:eE,minAPR:eK,maxAPR:eY,minProjectedAPR:eX.length>0?Math.min(...eX):null,maxProjectedAPR:eX.length>0?Math.max(...eX):null,minterAddress:null==(v=et.addresses)?void 0:v.minter,minCollateralRatio:V}
1}).filter(e=>(0,p.pK)(e.market)||void 0!==e.collateralValue&&e.collateralValue>0n||void 0!==e.totalDebt&&e.totalDebt>0n||void 0!==e.collateralPoolTVL&&e.collateralPoolTVL>0n||void 0!==e.sailPoolTVL&&e.sailPoolTVL>0n||e.collateralPoolDeposit>0n||e.sailPoolDeposit>0n),s=o.map(e=>null!==e.maxProjectedAPR&&e.maxProjectedAPR>0?e.maxProjectedAPR:null!==e.minProjectedAPR&&e.minProjectedAPR>0?e.minProjectedAPR:null).filter(e=>null!==e&&e>0);if(s.length>0){let e=Math.min(...s),t=Math.max(...s);K.u&&console.log("[Group APR Calculation]",{symbol:r,marketIds:o.map(e=>e.marketId),individualAPRs:o.map(e=>{var t,l;return{marketId:e.marketId,collateral:null==(l=e.market)||null==(t=l.collateral)?void 0:t.symbol,minProjectedAPR:e.minProjectedAPR,maxProjectedAPR:e.maxProjectedAPR}}),allProjectedAPRs:s,groupMinProjectedAPR:e,groupMaxProjectedAPR:t}),o.forEach(l=>{l.minProjectedAPR=e,l.maxProjectedAPR=t})}a.push(...o)}),a},[k,l,eB,eS,ev,h,t,M,I])),e_=(0,r.useMemo)(()=>{let e=I&&I>0?I:null,t=0,l=0,a=0,r=null;for(let u of ez){var n,o,s,i,d,c;let m=(null==(i=u.market)||null==(s=i.collateral)||null==(o=s.symbol)||null==(n=o.toLowerCase)?void 0:n.call(o))||"",p="fxusd"===m||"fxsave"===m,f="wsteth"===m||"steth"===m;if(u.collateralValue){if(p)t+=Number(u.collateralValue)/1e18;else if(f&&u.wrappedRate){let l=Number(u.wrappedRate)/1e18,a=Number(u.collateralValue)/1e18,r=l>0?a/l:a,n=null!==e?e*l:0;n>0&&(t+=r*n)}else if(u.collateralPrice){let e=Number(u.collateralPrice)/1e18,l=Number(u.collateralValue)/1e18;e>0&&Number.isFinite(e)&&(t+=l*e)}}let g=M&&M[u.marketId]?Number(M[u.marketId])/1e18:0;g>0&&(u.collateralPoolTVL&&(l+=Number(u.collateralPoolTVL)/1e18*g),u.sailPoolTVL&&(l+=Number(u.sailPoolTVL)/1e18*g));let h=u.collateralPoolAPR?(u.collateralPoolAPR.collateral||0)+(u.collateralPoolAPR.steam||0):0,v=u.sailPoolAPR?(u.sailPoolAPR.collateral||0)+(u.sailPoolAPR.steam||0):0,x=(null==(c=u.market)||null==(d=c.peggedToken)?void 0:d.symbol)||u.marketId;h>a&&(a=h,r="".concat(x," Collateral SP")),v>a&&(a=v,r="".concat(x," Sail SP"))}let u=l>0?t/l:0;return{yieldGeneratingTVLUSD:t,stabilityPoolTVLUSD:l,yieldConcentration:u,bestApr:a,bestAprLabel:r}},[ez,M,I]),e$=(0,r.useMemo)(()=>{let e=[];return k&&l&&eE&&l.forEach((t,a)=>{var r,n,o,s,i,d,c,m,p,f,g,h;let v,[x,b]=t,w=!!(null==(r=b.addresses)?void 0:r.stabilityPoolCollateral),y=!!(null==(n=b.addresses)?void 0:n.stabilityPoolLeveraged),N=0;for(let e=0;e<a;e++){let t=l[e][1],a=!!(null==(i=t.addresses)?void 0:i.stabilityPoolCollateral),r=!!(null==(d=t.addresses)?void 0:d.stabilityPoolLeveraged);N+=4,a&&(N+=3),r&&(N+=3),(null==(c=t.addresses)?void 0:c.collateralPrice)&&(N+=1)}let P=N,j=null==k||null==(o=k[P+3])?void 0:o.result,A=P+4,C=!!(null==(s=b.addresses)?void 0:s.collateralPrice),T=A;if(w&&(T+=3),y&&(T+=3),C){let e=null==k||null==(m=k[T])?void 0:m.result;null!=e&&(Array.isArray(e)?v=e[1]:"object"==typeof e?v=e.maxUnderlyingPrice:"bigint"==typeof e&&(v=e))}if(w){let t=null==(p=b.addresses)?void 0:p.stabilityPoolCollateral,l=null==k||null==(f=k[A])?void 0:f.result,a=eE.find(e=>e.poolAddress.toLowerCase()===t.toLowerCase()),r=0,n=(null==a?void 0:a.claimableValue)||0,o=(null==a?void 0:a.rewardTokens.reduce((e,t)=>e+t.claimable,0n))||0n;if(l&&v&&1){let e=Number(v)/10**(Number(18)||8);r=Number(l)/1e18*e}a&&a.claimableValue>0&&e.push({marketId:x,market:b,poolType:"collateral",rewards:o,rewardsUSD:n,deposit:l||0n,depositUSD:r,rewardTokens:a.rewardTokens.map(e=>({symbol:e.symbol,claimable:e.claimable,claimableFormatted:(0,u.c)(e.claimable)}))}),A+=3}if(y){let t=null==(g=b.addresses)?void 0:g.stabilityPoolLeveraged,l=null==k||null==(h=k[A])?void 0:h.result,a=eE.find(e=>e.poolAddress.toLowerCase()===t.toLowerCase()),r=0,n=(null==a?void 0:a.claimableValue)||0,o=(null==a?void 0:a.rewardTokens.reduce((e,t)=>e+t.claimable,0n))||0n;if(l&&j&&v&&1){let e=Number(j)/1e18;r=e*(Number(v)/10**(Number(18)||8))*(Number(l)/1e18)}a&&a.claimableValue>0&&e.push({marketId:x,market:b,poolType:"sail",rewards:o,rewardsUSD:n,deposit:l||0n,depositUSD:r,rewardTokens:a.rewardTokens.map(e=>({symbol:e.symbol,claimable:e.claimable,claimableFormatted:(0,u.c)(e.claimable)}))})}}),e},[k,l,eE]);
1return{chainFilterSelected:a,setChainFilterSelected:n,anchorMarkets:l,displayedAnchorMarkets:s,displayedArchivedAnchorMarkets:c,anchorChainOptions:o,volProtectionMarketsConfig:m,stagger:f,volProtectionData:g,projectedAPR:h,fxSAVEApy:v,wstETHApy:x,allPoolAddresses:b,withdrawalRequests:w,poolToRewardTokens:y,reads:k,refetchReads:N,isLoadingReads:P,isReadsError:j,readsError:A,peggedPricesFromReads:C,coinGeckoIds:T,coinGeckoPrices:E,coinGeckoLoading:S,coinGeckoError:L,peggedPriceUSDMap:M,mergedPeggedPriceMap:R,ethPrice:I,btcPrice:er,eurPrice:en,goldPrice:eo,silverPrice:es,fxUSDPrice:ei,fxSAVEPrice:ed,usdcPrice:ec,totalAnchorMarks:eu,totalAnchorMarksPerDay:em,totalMarksPerDay:ep,sailMarksPerDay:ef,maidenVoyageMarksPerDayFromHook:eg,maidenVoyageMarksPerDay:eg,haBalances:eh,poolDeposits:ev,sailBalances:ex,isLoadingAnchorMarks:eb,anchorMarksError:ew,haLedgerBalances:ey,poolLedgerDeposits:ek,isLoadingLedgerMarks:eN,ledgerMarksError:eP,totalAnchorLedgerMarks:ej,totalAnchorLedgerMarksPerDay:eA,userDepositMap:eC,refetchUserDeposits:eT,allPoolRewards:eE,poolRewardsMap:eS,isLoadingAllRewards:eL,isFetchingAllRewards:eM,isErrorAllRewards:eR,showLiveAprLoading:eI,marketPositionConfigs:eD,tokenPriceInputs:eF,tokenPricesByMarket:eU,marketPositions:eB,allMarketsTotalPositionUSD:eO,userHasPositions:eH,refetchPositions:eV,groupedMarkets:eW,allMarketsData:ez,anchorStats:e_,claimAllPositions:e$}}(ef),{compoundModal:tW,setCompoundModal:tz,compoundPoolSelection:t_,setCompoundPoolSelection:t$,isClaiming:tq,setIsClaiming:tG,isCompounding:tK,setIsCompounding:tY,isClaimingAll:tX,isCompoundingAll:tQ,earlyWithdrawModal:tZ,setEarlyWithdrawModal:tJ,withdrawAmountModal:t0,setWithdrawAmountModal:t1,withdrawAmountInput:t7,setWithdrawAmountInput:t5,withdrawAmountError:t2,setWithdrawAmountError:t4,transactionProgress:t8,setTransactionProgress:t3,compoundConfirmation:t6,setCompoundConfirmation:t9,compoundTargetModal:le,setCompoundTargetModal:lt,compoundIntent:ll,setCompoundIntent:la,advancedPreflight:lr,setAdvancedPreflight:ln,simplePreflight:lo,setSimplePreflight:ls,cancelOperationRef:li,isClaimAllModalOpen:ld,setIsClaimAllModalOpen:lc,isDropdownOpen:lu,setIsDropdownOpen:lm,selectedMarketForClaim:lp,setSelectedMarketForClaim:lf,isClaimMarketModalOpen:lg,setIsClaimMarketModalOpen:lh,dropdownRef:lv,handlePendingWithdraw:lx,handleClaimRewards:lb,handleCompoundRewards:lw,createCompoundHandlers:ly,handleClaimAll:lk,handleCompoundAll:lN,updateProgressStep:lP,setCurrentStep:lj,isUserRejection:lA,handleCompoundConfirm:lC,handleBuyTide:lT,ensureAllowance:lE,readErc20Balance:lS,getSelectedPoolsByMarket:lL,getPoolRewardTokens:lM,formatTokenAmount:lR,runAdvancedPreflight:lI,runSimplePreflight:lD,handleCompoundAllKeepPerToken:lF,handleCompoundAllToSingleToken:lU,handleClaimMarketBasicClaim:lB,handleClaimMarketCompound:lO,handleClaimMarketBuyTide:lH}=function(e){let{anchorMarkets:t,reads:l,peggedPriceUSDMap:a,allPoolRewards:n,poolRewardsMap:o,refetchReads:d,refetchUserDeposits:c}=e,{address:u}=(0,er.F)(),{writeContractAsync:m}=(0,s.x)(),{sendTransactionAsync:p}=(0,en.s)(),f=(0,i.e)(),[g,h]=(0,r.useState)(null),[v,x]=(0,r.useState)(null),[b,w]=(0,r.useState)(!1),[y,k]=(0,r.useState)(!1),[N,P]=(0,r.useState)(!1),[j,A]=(0,r.useState)(!1),[C,T]=(0,r.useState)(null),[E,S]=(0,r.useState)(null),[L,M]=(0,r.useState)(""),[R,I]=(0,r.useState)(null),[D,F]=(0,r.useState)(null),U=(0,r.useRef)(null),[O,H]=(0,r.useState)(null),[V,W]=(0,r.useState)(null),[z,_]=(0,r.useState)(null),[$,q]=(0,r.useState)(null),[G,K]=(0,r.useState)(null),Y=(0,r.useRef)(null),[X,Q]=(0,r.useState)(!1),[Z,J]=(0,r.useState)(!1),[ee,et]=(0,r.useState)("all"),[el,ea]=(0,r.useState)(!1),{handlePendingWithdraw:ei,handleClaimRewards:ed,handleCompoundRewards:ec,createCompoundHandlers:eu,handleClaimAll:em,handleCompoundAll:ep,updateProgressStep:ef,setCurrentStep:eg,isUserRejection:eh}=function(e){let{anchorMarkets:t,reads:l,peggedPriceUSDMap:a,allPoolRewards:n=[],poolRewardsMap:o,transactionProgress:d,setTransactionProgress:c,setCompoundConfirmation:u,setCompoundPoolSelection:m,setIsClaiming:p,setIsCompounding:f,setIsClaimingAll:g,setIsCompoundingAll:h,setEarlyWithdrawModal:v,refetchReads:x,refetchUserDeposits:b,cancelOperationRef:w,isClaimingAll:y=!1,isCompoundingAll:k=!1}
1=e,{address:N}=(0,er.F)(),{writeContractAsync:P}=(0,s.x)(),j=(0,i.e)(),A=(0,r.useCallback)((e,t)=>{c(l=>l?{...l,steps:l.steps.map(l=>l.id===e?{...l,...t}:l)}:l)},[c]),C=(0,r.useCallback)(e=>{c(t=>t?{...t,currentStepIndex:e}:t)},[c]),T=(0,r.useCallback)(async(e,t,l,a)=>{if(N){if(j&&(l||void 0!==a)){c({isOpen:!0,title:l?"Early Withdraw":"Withdraw",steps:[{id:"withdraw",label:l?"Withdraw (fee applies)":"Withdraw",status:"in_progress"}],currentStepIndex:0});try{let t=l?[N,0n]:[a,N,0n],r=await P({address:e,abi:B.yH,functionName:l?"withdrawEarly":"withdraw",args:t});await j.waitForTransactionReceipt({hash:r}),await Promise.allSettled([x(),b()])}catch(e){console.error("Pending withdraw error",e)}finally{c(null),v(null)}}}},[N,j,P,c,v,x,b]),E=(0,r.useCallback)(async(e,t)=>{var l,a,r;if(!N)return;let n="collateral"===t?null==(l=e.addresses)?void 0:l.stabilityPoolCollateral:null==(a=e.addresses)?void 0:a.stabilityPoolLeveraged;if(!n)return;let o=(null==(r=e.peggedToken)?void 0:r.symbol)||e.id,s="".concat(o," ").concat(t," pool");c({isOpen:!0,title:"Claiming Rewards",steps:[{id:"claim",label:"Claim rewards from ".concat(s),status:"pending"}],currentStepIndex:0});try{p(!0),C(0),A("claim",{status:"in_progress"});let e=await P({address:n,abi:eo.L,functionName:"claim"});A("claim",{status:"in_progress",txHash:e,details:"Waiting for transaction confirmation..."}),await (null==j?void 0:j.waitForTransactionReceipt({hash:e})),A("claim",{status:"completed",txHash:e,details:"Transaction confirmed"}),await new Promise(e=>setTimeout(e,2e3)),await Promise.all([x(),b()])}catch(e){A("claim",{status:"error",error:es(e)?"User declined the transaction":e.message||"Transaction failed"})}finally{p(!1)}},[N,P,j,c,p,C,A,x,b]),S=(0,r.useCallback)((e,l,r)=>{var o,s,i,d,c,u;let p=null==(o=e.addresses)?void 0:o.stabilityPoolCollateral,f=null==(s=e.addresses)?void 0:s.stabilityPoolLeveraged,g=null!=(d=null==(i=t.find(t=>{let[l,a]=t;return a===e}))?void 0:i[0])?d:null==e?void 0:e.id,h=g&&a?a[g]:void 0,v=[];if(p){let t,l=null==n?void 0:n.find(e=>e.poolAddress.toLowerCase()===p.toLowerCase()),a=null==l?void 0:l.totalAPR;(null==l?void 0:l.tvl)!==void 0&&h&&(t=Number(l.tvl)/1e18*(Number(h)/1e18)),v.push({id:"".concat(g||e.id,"-collateral"),name:"".concat((null==(c=e.peggedToken)?void 0:c.symbol)||e.id," Collateral Pool"),address:p,apr:a,tvl:null==l?void 0:l.tvl,tvlUSD:t,enabled:!0})}if(f){let t,l=null==n?void 0:n.find(e=>e.poolAddress.toLowerCase()===f.toLowerCase()),a=null==l?void 0:l.totalAPR;(null==l?void 0:l.tvl)!==void 0&&h&&(t=Number(l.tvl)/1e18*(Number(h)/1e18)),v.push({id:"".concat(g||e.id,"-sail"),name:"".concat((null==(u=e.peggedToken)?void 0:u.symbol)||e.id," Sail Pool"),address:f,apr:a,tvl:null==l?void 0:l.tvl,tvlUSD:t,enabled:!0})}0!==v.length&&m({market:e,pools:v})},[t,n,a,m]),L=(0,r.useCallback)(e=>{var t,l;let a=null==e||null==(t=e.addresses)?void 0:t.stabilityPoolCollateral,r=null==e||null==(l=e.addresses)?void 0:l.stabilityPoolLeveraged,n=a?o.get(a):void 0,s=r?o.get(r):void 0;return{onCompoundCollateralRewards:()=>{S(e,"collateral",n&&n.claimableValue>0?BigInt(Math.floor(1e18*n.claimableValue)):0n)},onCompoundSailRewards:()=>{S(e,"sail",s&&s.claimableValue>0?BigInt(Math.floor(1e18*s.claimableValue)):0n)}}},[o,S]),M=(0,r.useCallback)(async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(N&&!y)try{g(!0);let n=e.length>0?e:t.flatMap(e=>{var t,l;let[a,r]=e,n=[];return(null==(t=r.addresses)?void 0:t.stabilityPoolCollateral)&&n.push({marketId:a,poolType:"collateral"}),(null==(l=r.addresses)?void 0:l.stabilityPoolLeveraged)&&n.push({marketId:a,poolType:"sail"}),n});if(0===n.length)return void g(!1);let o=n.map(e=>{var l,a;let{marketId:r,poolType:n}=e,o=null==(l=t.find(e=>{let[t]=e;return t===r}))?void 0:l[1],s=(null==o||null==(a=o.peggedToken)?void 0:a.symbol)||r;return{id:"".concat(r,"-").concat(n),label:"Claim rewards from ".concat(s," ").concat(n," pool"),status:"pending"}}),s={current:!1};c({isOpen:!0,title:"Claiming All Rewards",steps:o,currentStepIndex:0});let i=0,d=0;for(let e=0;e<n.length;e++){var l,a,r;if(s.current)break;let{marketId:o,poolType:c}=n[e],u=null==(l=t.find(e=>{let[t]=e;return t===o}))?void 0:l[1];if(!u){let t="".concat(o,"-").concat(c);C(e),A(t,{status:"error",error:"Market ".concat(o," not found")}),d++;continue}let m="".concat(o,"-").concat(c);C(e),A(m,{status:"in_progress"});try{let e="collateral"===c?null==(a=u.addresses)?void 0:a.stabilityPoolCollateral:null==(r=u.addresses)?void 0:r.stabilityPoolLeveraged;if(!e){A(m,{status:"error",error:"Pool address not found"}),d++;continue}
1let t=await P({address:e,abi:eo.L,functionName:"claim"});A(m,{status:"in_progress",txHash:t,details:"Waiting for transaction confirmation..."}),await (null==j?void 0:j.waitForTransactionReceipt({hash:t})),A(m,{status:"completed",txHash:t,details:"Transaction confirmed"}),i++}catch(l){let t=es(l)?"User declined the transaction":l.message||"Transaction failed";if(A(m,{status:"error",error:t}),d++,es(l)){s.current=!0;for(let t=e+1;t<n.length;t++){let e="".concat(n[t].marketId,"-").concat(n[t].poolType);A(e,{status:"error",error:"Cancelled - previous transaction declined"})}break}}}w.current=null,i>0&&(await new Promise(e=>setTimeout(e,2e3)),await Promise.all([x(),b()]))}catch(t){let e=es(t)?"User declined the transaction":t.message||"Fatal error occurred";d&&d.steps.forEach(t=>{("pending"===t.status||"in_progress"===t.status)&&A(t.id,{status:"error",error:e})})}finally{g(!1)}},[N,t,P,j,c,g,C,A,w,x,b,d,y]),R=(0,r.useCallback)(async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(!N||k)return;let l=null,a="collateral",r=0n;for(let{marketId:c,poolType:u}of e.length>0?e:t.flatMap(e=>{var t,l;let[a,r]=e,n=[];return(null==(t=r.addresses)?void 0:t.stabilityPoolCollateral)&&n.push({marketId:a,poolType:"collateral"}),(null==(l=r.addresses)?void 0:l.stabilityPoolLeveraged)&&n.push({marketId:a,poolType:"sail"}),n})){var o,s,i,d;let e=null==(o=t.find(e=>{let[t]=e;return t===c}))?void 0:o[1];if(!e)continue;let m="collateral"===u?null==(s=e.addresses)?void 0:s.stabilityPoolCollateral:null==(i=e.addresses)?void 0:i.stabilityPoolLeveraged;if(!m)continue;let p=null==n?void 0:n.find(e=>e.poolAddress.toLowerCase()===m.toLowerCase());if(null==p||null==(d=p.rewardTokens)?void 0:d.some(e=>e.claimable>0n)){l=e,a=u,r=p.rewardTokens.reduce((e,t)=>e+t.claimable,0n);break}}l&&S(l,a,r)},[N,t,n,S,k]);return{handlePendingWithdraw:T,handleClaimRewards:E,handleCompoundRewards:S,createCompoundHandlers:L,handleClaimAll:M,handleCompoundAll:R,updateProgressStep:A,setCurrentStep:C,isUserRejection:es}}({anchorMarkets:t,reads:l,peggedPriceUSDMap:a,allPoolRewards:n,poolRewardsMap:o,transactionProgress:D,setTransactionProgress:F,setCompoundConfirmation:H,setCompoundPoolSelection:x,setIsClaiming:w,setIsCompounding:k,setIsClaimingAll:P,setIsCompoundingAll:A,setEarlyWithdrawModal:T,refetchReads:d,refetchUserDeposits:c,cancelOperationRef:Y,isClaimingAll:N,isCompoundingAll:j}),ev=async(e,t,l)=>{var a,r,o,s,i,p,g,h,v,x,b,w;if(!u)throw Error("Wallet not connected");let y=null==(a=e.addresses)?void 0:a.minter,N=null==(r=e.addresses)?void 0:r.stabilityPoolCollateral,P=null==(o=e.addresses)?void 0:o.stabilityPoolLeveraged,j=null==(s=e.addresses)?void 0:s.collateralToken,A=null==(i=e.addresses)?void 0:i.peggedToken,C=null==(p=e.addresses)?void 0:p.leveragedToken;if(!y||!u)throw Error("Missing required addresses");let T=(null==(g=e.peggedToken)?void 0:g.symbol)||e.id,E=(null==(h=e.collateralToken)?void 0:h.symbol)||(null==(v=e.collateral)?void 0:v.symbol)||"collateral";if((null==(x=e.leveragedToken)?void 0:x.symbol)||null==(b=e.sail)||b.symbol,0===t.length)throw Error("No pools selected for compounding");let S=t.filter(e=>e.percentage>0);if(0===S.length)throw Error("No pools selected for compounding");let L=[];if(N){let e=null==n?void 0:n.find(e=>{var t;return e.poolAddress.toLowerCase()===N.toLowerCase()&&(null==(t=e.rewardTokens)?void 0:t.some(e=>e.claimable>0n))});e&&L.push({poolType:"collateral",poolAddress:N,rewards:e})}if(P){let e=null==n?void 0:n.find(e=>{var t;return e.poolAddress.toLowerCase()===P.toLowerCase()&&(null==(t=e.rewardTokens)?void 0:t.some(e=>e.claimable>0n))});e&&L.push({poolType:"sail",poolAddress:P,rewards:e})}if(0===L.length)throw Error("No pools with claimable rewards found");if(!j||!A)throw Error("Missing required token addresses");F({isOpen:!0,title:"Compounding Rewards",steps:[{id:"setup",label:"Setting up compound process...",status:"in_progress"}],currentStepIndex:0});let M={current:!1},R=[],I=0n,U=0n,O=0n,V=0n,W=[];try{if(!n||0===n.length)throw Error("Rewards data not loaded yet. Please wait and try again.");let t=[];
1if(L.forEach(e=>{var l;(null==(l=e.rewards)?void 0:l.rewardTokens)&&e.rewards.rewardTokens.forEach(e=>{if(e.claimable>0n){let l=t.find(t=>t.address.toLowerCase()===e.address.toLowerCase());l?l.claimable+=e.claimable:t.push({address:e.address,symbol:e.symbol,claimable:e.claimable})}})}),0===t.length)throw ef("setup",{status:"error",error:"No rewards available to compound"}),Error("No rewards available to compound");O=(W=t.map(e=>{let t=e.address.toLowerCase(),l="collateral";return l=j&&t===j.toLowerCase()?"collateral":A&&t===A.toLowerCase()?"ha":C&&t===C.toLowerCase()?"hs":"collateral",{address:e.address,symbol:e.symbol,amount:e.claimable,type:l}})).filter(e=>"collateral"===e.type).reduce((e,t)=>e+t.amount,0n),V=W.filter(e=>"ha"===e.type).reduce((e,t)=>e+t.amount,0n),I=W.filter(e=>"hs"===e.type).reduce((e,t)=>e+t.amount,0n),R=[],L.forEach(e=>{var t,l;let a="collateral"===e.poolType?"Collateral":"Sail",r="".concat(T," ").concat(a," Pool"),n=null==(l=e.rewards)||null==(t=l.rewardTokens)?void 0:t.filter(e=>e.claimable>0n).map(e=>{let t,l=Number(e.claimable)/1e18;return t=l>=1?l.toLocaleString(void 0,{minimumFractionDigits:0,maximumFractionDigits:6}):l>=.01?l.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:6}):l.toLocaleString(void 0,{minimumFractionDigits:0,maximumFractionDigits:18,useGrouping:!1}).replace(/\.?0+$/,""),"".concat(t," ").concat(e.symbol)}).join(",");R.push({id:"claim-".concat(e.poolType),label:"Claim rewards from ".concat(r),status:"pending",details:n?"Claiming ".concat(n):void 0})});let l=null;I>0n&&C&&(R.push({id:"approve-leveraged",label:"Approve leveraged tokens for redemption",status:"pending",details:(()=>{var e;let t=Number(I)/1e18,l=t>=1?t.toLocaleString(void 0,{maximumFractionDigits:6}):t.toLocaleString(void 0,{maximumFractionDigits:18,useGrouping:!1}).replace(/\.?0+$/,"");return"Approve ".concat(l," ").concat((null==(e=W.find(e=>"hs"===e.type))?void 0:e.symbol)||"hs")})()},{id:"redeem",label:"Redeem leveraged tokens for collateral",status:"pending",details:(()=>{var e;let t=Number(I)/1e18,l=t>=1?t.toLocaleString(void 0,{maximumFractionDigits:6}):t.toLocaleString(void 0,{maximumFractionDigits:18,useGrouping:!1}).replace(/\.?0+$/,"");return"Redeem ".concat(l," ").concat((null==(e=W.find(e=>"hs"===e.type))?void 0:e.symbol)||"hs"," → ").concat(E)})()}),l=R.length-1);let a=O>0n||I>0n,r=null;a&&(R.push({id:"approve-collateral",label:"Approve ".concat(E," for minting"),status:"pending",details:O>0n?(()=>{let e,t=Number(O)/1e18;return e=t>=1?t.toLocaleString(void 0,{minimumFractionDigits:0,maximumFractionDigits:6}):t>=.01?t.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:6}):t.toLocaleString(void 0,{minimumFractionDigits:0,maximumFractionDigits:18,useGrouping:!1}).replace(/\.?0+$/,""),"Approve ".concat(e," ").concat(E)})():"Approve ".concat(E," from redemption")},{id:"mint",label:"Mint anchor tokens",status:"pending",details:"Mint anchor tokens from collateral"}),r=R.length-1);let o=V>0n;(a||o)&&S.forEach(e=>{let t="collateral"===e.poolId?"Collateral":"Sail";R.push({id:"approve-pegged-".concat(e.poolId),label:"Approve pegged tokens for ".concat(t," Pool"),status:"pending",details:"Approve anchor tokens for ".concat(t.toLowerCase()," pool deposit")}),R.push({id:"deposit-".concat(e.poolId),label:"Deposit to ".concat(t," Pool"),status:"pending",details:"Deposit ".concat(e.percentage,"% to ").concat(t.toLowerCase()," pool")})});let s=0,i=null==(w=e.addresses)?void 0:w.collateralPrice;if(i&&f)try{let e=await (null==f?void 0:f.readContract({address:i,abi:ez,functionName:"latestAnswer"}));if(e&&Array.isArray(e)&&e.length>=2){let t=e[1];s=Number(t)/1e18}}catch(e){}let d=[],c=[];if(U=O,I>0n&&C){let e;if(!f||!f)throw Error("Public client not available");for(let t=0;t<2;t++)try{if(e=await f.readContract({address:y,abi:e_,functionName:"redeemLeveragedTokenDryRun",args:[I]}))break}catch(e){0===t&&await new Promise(e=>setTimeout(e,500))}if(e&&Array.isArray(e)&&e.length>=4){let t=e[1],a=e[3];if(void 0!==t&&"bigint"==typeof t&&t>=0n){let e,r,n=Number(t)/1e18;if(n>
1=1)e=n.toLocaleString(void 0,{minimumFractionDigits:0,maximumFractionDigits:6});else if(n>=.01)e=n.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:6});else if(n>=1e-4)e=n.toLocaleString(void 0,{minimumFractionDigits:0,maximumFractionDigits:6,useGrouping:!1}).replace(/\.?0+$/,"");else{let t=Math.floor(Math.log10(Math.abs(n))),l=Math.max(0,8-t-1);e=n.toFixed(l).replace(/\.?0+$/,"")}let o=I>0n?Number(t)/Number(I)*100:0;s>0&&(r=parseFloat(e)*s);let i={feeAmount:t,feeFormatted:e,feeUSD:r,feePercentage:o,tokenSymbol:E,label:"Redeem Leveraged Tokens"};d.push(i),null!==l&&R[l]&&(R[l].fee={amount:t,formatted:e,usd:r,percentage:o,tokenSymbol:E}),void 0!==a&&"bigint"==typeof a&&(U=O+a)}}}if(U>0n){let e;if(!f||!f)throw Error("Public client not available");let t=null;for(let l=0;l<2;l++)try{if((e=await f.readContract({address:y,abi:e_,functionName:"mintPeggedTokenDryRun",args:[U]}))&&Array.isArray(e)&&e.length>=2)break}catch(e){t=e,0===l&&await new Promise(e=>setTimeout(e,500))}if(e&&Array.isArray(e)&&e.length>=2){let t=e[1];if(void 0!==t&&"bigint"==typeof t&&t>=0n){let e,l,a=Number(t)/1e18;if(a>=1)e=a.toLocaleString(void 0,{minimumFractionDigits:0,maximumFractionDigits:6});else if(a>=.01)e=a.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:6});else if(a>=1e-4)e=a.toLocaleString(void 0,{minimumFractionDigits:0,maximumFractionDigits:6,useGrouping:!1}).replace(/\.?0+$/,"");else{let t=Math.floor(Math.log10(Math.abs(a))),l=Math.max(0,8-t-1);e=a.toFixed(l).replace(/\.?0+$/,"")}let n=U>0n?Number(t)/Number(U)*100:0;s>0&&(l=parseFloat(e)*s);let o={feeAmount:t,feeFormatted:e,feeUSD:l,feePercentage:n,tokenSymbol:E,label:"Mint Pegged Tokens"};d.push(o),null!==r&&R[r]&&(R[r].fee={amount:t,formatted:e,usd:l,percentage:n,tokenSymbol:E})}}else t&&c.push("Failed to estimate mint fee: ".concat(t.message||"Unknown error"))}Y.current=()=>{M.current=!0,k(!1),R.forEach(e=>{"pending"===e.status&&ef(e.id,{status:"error",error:"Cancelled by user"})})},await new Promise((e,t)=>{H({steps:R,fees:d,feeErrors:c,onConfirm:()=>{H(null),e()}})}),F({isOpen:!0,title:"Compounding Rewards",steps:R,currentStepIndex:0}),await new Promise(e=>setTimeout(e,100))}catch(e){ef("setup",{status:"error",error:(null==e?void 0:e.message)||"Failed to set up compound process"}),k(!1);return}await new Promise(e=>setTimeout(e,200));try{if(k(!0),"function"!=typeof m)throw Error("writeContractAsync is not a function");let e=e=>R.findIndex(t=>t.id===e);for(let t=0;t<L.length;t++){let l=L[t],a="claim-".concat(l.poolType);if(M.current)throw Error("Cancelled by user");let r=e(a);if(eg(r),ef(a,{status:"in_progress"}),await new Promise(e=>setTimeout(e,100)),M.current)throw Error("Cancelled by user");ef(a,{status:"in_progress",details:"Sending transaction to wallet..."});let n=await m({address:l.poolAddress,abi:eo.L,functionName:"claim"});ef(a,{status:"in_progress",txHash:n,details:"Waiting for transaction confirmation..."}),await (null==f?void 0:f.waitForTransactionReceipt({hash:n})),ef(a,{status:"completed",txHash:n,details:"Transaction confirmed"}),await new Promise(e=>setTimeout(e,300))}let t=L.length;if(I>0n&&C){if(M.current)throw Error("Cancelled by user");t=e("approve-leveraged"),eg(t),ef("approve-leveraged",{status:"in_progress"});let l=await (null==f?void 0:f.readContract({address:C,abi:B.iA,functionName:"allowance",args:[u,y]}));if(!l||l<I){let e=await m({address:C,abi:B.iA,functionName:"approve",args:[y,I]});ef("approve-leveraged",{status:"in_progress",txHash:e,details:"Waiting for transaction confirmation..."}),await (null==f?void 0:f.waitForTransactionReceipt({hash:e})),ef("approve-leveraged",{status:"completed",txHash:e,details:"Transaction confirmed"})}else ef("approve-leveraged",{status:"completed",details:"Already approved"});if(M.current)throw Error("Cancelled by user");t=e("redeem"),eg(t),ef("redeem",{status:"in_progress"});let a=await (null==f?void 0:f.readContract({address:y,abi:e_,functionName:"calculateRedeemLeveragedTokenOutput",args:[I]}));if(!a)throw Error("Failed to calculate redeem output");let r=await m({address:y,abi:e_,functionName:"redeemLeveragedToken",args:[I,u,99n*a/100n]});ef("redeem",{status:"in_progress",txHash:r,details:"Waiting for transaction confirmation..."}),await (null==f?void 0:f.waitForTransactionReceipt({hash:r})),ef("redeem",{status:"completed",txHash:r,details:"Transaction confirmed"})}if(0n===U)throw Error("No collateral available for minting");let l=await (null==f?void 0:f.readContract({address:y,abi:e_,functionName:"mintPeggedTokenDryRun",args:[U]})),a=null==l?void 0:l[3];
1if(!a)throw Error("Failed to calculate mint output");if(M.current)throw Error("Cancelled by user");t=e("approve-collateral"),eg(t),ef("approve-collateral",{status:"in_progress"});let r=await (null==f?void 0:f.readContract({address:j,abi:B.iA,functionName:"allowance",args:[u,y]}));if(M.current)throw Error("Cancelled by user");if(!r||r<U){let e=await m({address:j,abi:B.iA,functionName:"approve",args:[y,U]});ef("approve-collateral",{status:"in_progress",txHash:e,details:"Waiting for transaction confirmation..."}),await (null==f?void 0:f.waitForTransactionReceipt({hash:e})),ef("approve-collateral",{status:"completed",txHash:e,details:"Transaction confirmed"})}else ef("approve-collateral",{status:"completed",details:"Already approved"});if(M.current)throw Error("Cancelled by user");t=e("mint"),eg(t),ef("mint",{status:"in_progress"});let n=await m({address:y,abi:e_,functionName:"mintPeggedToken",args:[U,u,99n*a/100n]});ef("mint",{status:"in_progress",txHash:n,details:"Waiting for transaction confirmation..."}),await (null==f?void 0:f.waitForTransactionReceipt({hash:n})),ef("mint",{status:"completed",txHash:n,details:"Transaction confirmed"});let o=V+(a||0n);if(0n===o)throw Error("No ha tokens from rewards/mint to deposit");let s=o;for(let l=0;l<S.length;l++){let a,r=S[l],n=r.poolId,i="collateral"===n?N:P;if(!i)throw Error("Pool address not found for ".concat(n," pool"));if(l===S.length-1?a=s:(a=o*BigInt(r.percentage)/100n,s-=a),M.current)throw Error("Cancelled by user");let d="approve-pegged-".concat(n);t=e(d),eg(t),ef(d,{status:"in_progress"});let c=await (null==f?void 0:f.readContract({address:A,abi:B.iA,functionName:"allowance",args:[u,i]}));if(!c||c<a){let e=await m({address:A,abi:B.iA,functionName:"approve",args:[i,a]});ef(d,{status:"in_progress",txHash:e,details:"Waiting for transaction confirmation..."}),await (null==f?void 0:f.waitForTransactionReceipt({hash:e})),ef(d,{status:"completed",txHash:e,details:"Transaction confirmed"})}else ef(d,{status:"completed",details:"Already approved"});if(M.current)throw Error("Cancelled by user");let p="deposit-".concat(n);t=e(p),eg(t),ef(p,{status:"in_progress"});let g=99n*a/100n,h=await m({address:i,abi:B.yH,functionName:"deposit",args:[a,u,g]});ef(p,{status:"in_progress",txHash:h,details:"Waiting for transaction confirmation..."}),await (null==f?void 0:f.waitForTransactionReceipt({hash:h})),ef(p,{status:"completed",txHash:h,details:"Transaction confirmed"}),l<S.length-1&&await new Promise(e=>setTimeout(e,500))}await new Promise(e=>setTimeout(e,2e3)),await Promise.all([d(),c()])}catch(t){let e=eh(t)?"User declined the transaction":t.message||"Transaction failed";if((eh(t)||"Cancelled by user"===t.message)&&D&&D.steps.forEach((e,t)=>{t>D.currentStepIndex&&"pending"===e.status&&ef(e.id,{status:"error",error:"Cancelled - previous transaction declined"})}),D){let t=D.steps[D.currentStepIndex];if(t)ef(t.id,{status:"error",error:e});else{let t=D.steps.find(e=>"pending"===e.status);t&&ef(t.id,{status:"error",error:e})}}else F({isOpen:!0,title:"Compounding Rewards",steps:R.map((t,l)=>0===l?{...t,status:"error",error:e}:t),currentStepIndex:0})}finally{k(!1),Y.current=null}},ex=(0,r.useCallback)(async(e,t,l)=>{if(!u||!f||l<=0n)return;let a=async()=>{let l=await f.readContract({address:e,abi:B.iA,functionName:"allowance",args:[u,t]});return null!=l?l:0n},r=async()=>{let a=await m({address:e,abi:B.iA,functionName:"approve",args:[t,l]});await f.waitForTransactionReceipt({hash:a})};if(!(await a()>=l))try{await r()}catch(t){let e=((null==t?void 0:t.message)||"").toLowerCase();if(e.includes("nonce")&&(e.includes("lower")||e.includes("too low"))){if(await new Promise(e=>setTimeout(e,1500)),await a()>=l)return;await r();return}throw Error((e=>{var t,l,a;let r=String((null==e?void 0:e.shortMessage)||(null==e||null==(t=e.cause)?void 0:t.shortMessage)||(null==e||null==(l=e.cause)?void 0:l.message)||(null==e?void 0:e.message)||String(e)),n=r.toLowerCase();return n.includes("device disconnected")||n.includes("disconnected during action")?"Wallet device disconnected. Reconnect your wallet and try again.":n.includes("user rejected")||n.includes("user denied")||n.includes("rejected the request")||n.includes("request rejected")?"Transaction was rejected in your wallet.":(null==(a=r.split("Request Arguments:")[0])?void 0:a.trim())||"Transaction failed. Please try again."})(t))}},[u,f,m]),eb=(0,r.useCallback)(async e=>{if(!u||!f)return 0n;let t=await f.readContract({address:e,abi:B.iA,functionName:"balanceOf",args:[u]});return null!=t?t:0n},[u,f]),ew=(0,r.useCallback)(e=>{let t=new Map;for(let a of e){var l;let e=null!=(l=t.get(a.marketId))?l:[];e.includes(a.poolType)||e.push(a.poolType),t.set(a.marketId,e)}return t},[]),ey=(0,r.useCallback)(e=>{var t;let l=null==n?void 0:n.find(t=>t.poolAddress.toLowerCase()===e.toLowerCase());return null!=(t=null==l?void 0:l.rewardTokens)?t:[]}
1,[n]),ek=(0,r.useRef)(()=>{}),eN=(0,r.useCallback)(async e=>{if(!u||!f)return;let l=await eW({address:u,publicClient:f,anchorMarkets:t,selectedPools:e.selectedPools,getPoolRewardTokens:ey,writeContractAsync:m,sendTransactionAsync:p,ensureAllowance:ex,setTransactionProgress:F,updateProgressStep:ef,setCurrentStep:eg,isUserRejection:eh,resume:e.resume,flowSource:e.flowSource});if(l.ok){U.current=null,F(e=>e?{...e,onRetry:void 0}:e),await new Promise(e=>setTimeout(e,2e3)),await Promise.all([d(),c()]);return}l.resumeState&&(U.current=l.resumeState,F(e=>e?{...e,onRetry:()=>{ek.current()}}:e))},[u,f,t,ey,m,p,ex,F,ef,eg,eh,d,c]),eP=(0,r.useCallback)(async()=>{let e=U.current;if(!u||!f||!e)return;let t="market"===e.source?w:P;try{t(!0),await eN({selectedPools:e.selectedPools,flowSource:e.source,resume:e})}finally{t(!1)}},[u,f,eN]);(0,r.useEffect)(()=>{ek.current=()=>{eP()}},[eP]);let ej=async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(u&&f&&!N)try{U.current=null,P(!0),Q(!1),await eN({selectedPools:e,flowSource:"all"})}finally{P(!1)}},eA=(0,r.useCallback)(e=>{let t=Number(e)/1e18;return Number.isFinite(t)&&0!==t?t>=1?t.toLocaleString(void 0,{maximumFractionDigits:6}):t.toLocaleString(void 0,{maximumFractionDigits:8,useGrouping:!1}).replace(/\.?0+$/,""):"0"},[]),eC=(0,r.useCallback)(async e=>{if(!f)return void q({key:"",isLoading:!1,error:"Public client not available",fees:[]});let l=JSON.stringify({t:e.targetMarketId,a:e.allocations.slice().sort((e,t)=>e.poolAddress.localeCompare(t.poolAddress)).map(e=>[e.poolAddress.toLowerCase(),e.percentage]),c:e.selectedClaimPools.slice().sort((e,t)=>"".concat(e.marketId,"-").concat(e.poolType).localeCompare("".concat(t.marketId,"-").concat(t.poolType)))});q({key:l,isLoading:!0,fees:[]});try{var a,r,n,o,s,i,d,c,u,m,p,g,h,v,x,b,w,y,k,N,P,j,A,C,T,E,S,L,M,R,I;let D=null==(a=t.find(t=>{let[l]=t;return l===e.targetMarketId}))?void 0:a[1];if(!D)throw Error("Target market not found");let F=null==(r=D.addresses)?void 0:r.peggedToken;if(!F)throw Error("Target pegged token missing");let U=new Map,B=new Map,O=new Map;for(let{marketId:l,poolType:a}of e.selectedClaimPools){let e=null==(n=t.find(e=>{let[t]=e;return t===l}))?void 0:n[1];if(!e)continue;let r="collateral"===a?null==(o=e.addresses)?void 0:o.stabilityPoolCollateral:null==(s=e.addresses)?void 0:s.stabilityPoolLeveraged;if(!r)continue;let f=ey(r),g=null==(i=e.addresses)?void 0:i.peggedToken,h=null==(d=e.addresses)?void 0:d.leveragedToken,v=null==(c=e.addresses)?void 0:c.wrappedCollateralToken;for(let e of f){if(!e.claimable||e.claimable<=0n)continue;let t=e.address.toLowerCase();g&&t===g.toLowerCase()?U.set(g,(null!=(u=U.get(g))?u:0n)+e.claimable):h&&t===h.toLowerCase()?B.set(l,(null!=(m=B.get(l))?m:0n)+e.claimable):v&&t===v.toLowerCase()&&O.set(v,(null!=(p=O.get(v))?p:0n)+e.claimable)}}let H=[];for(let[e,l]of B.entries()){let a=null==(g=t.find(t=>{let[l]=t;return l===e}))?void 0:g[1],r=null==a||null==(h=a.addresses)?void 0:h.minter,n=null==a||null==(v=a.addresses)?void 0:v.leveragedToken;if(!r||!n)continue;let o=await f.readContract({address:r,abi:e_,functionName:"redeemLeveragedTokenDryRun",args:[l]}),s=null!=(b=null==o?void 0:o[1])?b:0n,i=null!=(w=null==o?void 0:o[3])?w:0n;H.push({marketId:e,leveragedToken:n,amount:l,minter:r,expectedOut:i,fee:s});let d=null==a||null==(x=a.addresses)?void 0:x.wrappedCollateralToken;d&&O.set(d,(null!=(y=O.get(d))?y:0n)+i)}let V=[];for(let[e,l]of U.entries()){if(e.toLowerCase()===F.toLowerCase())continue;let a=t.map(e=>{let[t,l]=e;return{id:t,market:l}}).filter(t=>{var l;let{market:a}=t,r=null==a||null==(l=a.addresses)?void 0:l.peggedToken;return r&&r.toLowerCase()===e.toLowerCase()}),r=null;for(let e of a){let t=null==(k=e.market.addresses)?void 0:k.minter,a=null==(N=e.market.addresses)?void 0:N.wrappedCollateralToken;if(!t||!a)continue;let n=await f.readContract({address:t,abi:e_,functionName:"redeemPeggedTokenDryRun",args:[l]}),o=null!=(A=null==n?void 0:n[1])?A:0n,s=null!=(C=null==n?void 0:n[4])?C:0n,i=o+s,d=i>0n?Number(o)/Number(i)*100:void 0,c=(null==(j=e.market)||null==(P=j.peggedToken)?void 0:P.symbol)||"ha";(!r||void 0!==d&&void 0!==r.feePct&&d<r.feePct-1e-9||void 0!==d&&void 0===r.feePct||d===r.feePct&&s>r.out)&&(r={marketId:e.id,minter:t,wrapped:a,fee:o,out:s,feePct:d,tokenSymbol:c})}if(!r)throw Error("Failed to compute redeem dry run");V.push({peggedToken:e,amount:l,minter:r.minter,wrappedCollateralToken:r.wrapped,expectedOut:r.out,fee:r.fee,feePct:r.feePct,marketId:r.marketId,tokenSymbol:r.tokenSymbol}),O.set(r.wrapped,(null!=(T=O.get(r.wrapped))?T:0n)+r.out)}let W=[],z=t.map(e=>{let[t,l]=e;return{id:t,market:l}}).filter(e=>{var t,l,a;let{market:r}=e,n=null==r||null==(t=r.addresses)?void 0:t.peggedToken,o=null==r||null==(l=r.addresses)?void 0:l.minter,s=null==r||null==(a=r.addresses)?void 0:a.wrappedCollateralToken;return!!n&&!!o&&!!s&&n.toLowerCase()===F.toLowerCase()});for(let[e,t]of O.entries()){if(t<=0n)continue;let l=z.filter(t=>{var l;let{market:a}=t,r=null==a||null==(l=a.addresses)?void 0:l.wrappedCollateralToken;return r&&r.toLowerCase()===e.toLowerCase()});if(0===l.length)continue;let a=null;for(let e of l){let l=null==(E=e.market.addresses)?void 0:E.minter;if(!l)continue;let r=await f.readContract({address:l,abi:e_,functionName:"mintPeggedTokenDryRun",args:[t]}),n=null!=(M=null==r?void 0:r[1])?M:0n,o=null!=(R=null==r?void 0:r[2])?R:0n,s=null!=(I=null==r?void 0:r[3])?I:0n,i=o>0n?Number(n)/Number(o)*100:void 0,d=(null==(L=e.market)||null==(S=L.collateral)?void 0:S.symbol)||"collateral";(!a||void 0!==i&&void 0!==a.feePct&&i<a.feePct-1e-9||void 0!==i&&void 0===a.feePct||i===a.feePct&&s>a.minted)&&(a={marketId:e.id,minter:l,minted:s,fee:n,feePct:i,collateralSymbol
1:d})}a&&W.push({wrappedToken:e,amount:t,minter:a.minter,expectedMint:a.minted,fee:a.fee,feePct:a.feePct,marketId:a.marketId,collateralSymbol:a.collateralSymbol})}let _=[...H.map(e=>{var l,a;let r=null==(l=t.find(t=>{let[l]=t;return l===e.marketId}))?void 0:l[1],n=(null==r||null==(a=r.collateral)?void 0:a.symbol)||"collateral",o=e.fee+e.expectedOut>0n?Number(e.fee)/Number(e.fee+e.expectedOut)*100:void 0;return{id:"redeem-hs-".concat(e.marketId),label:"Redeem leveraged (".concat(e.marketId,")"),tokenSymbol:n,feeFormatted:eA(e.fee),feePercentage:o,details:"Redeem ".concat(eA(e.amount)," hs → ").concat(eA(e.expectedOut)," ").concat(n)}}),...V.map(e=>{var l,a;let r=null==(l=t.find(t=>{let[l]=t;return l===e.marketId}))?void 0:l[1],n=(null==r||null==(a=r.collateral)?void 0:a.symbol)||"collateral";return{id:"redeem-ha-".concat(e.peggedToken.toLowerCase()),label:"Redeem ".concat(e.tokenSymbol," (").concat(e.marketId,")"),tokenSymbol:n,feeFormatted:eA(e.fee),feePercentage:e.feePct,details:"Redeem ".concat(eA(e.amount)," ").concat(e.tokenSymbol," → ").concat(eA(e.expectedOut)," ").concat(n)}}),...W.map(e=>{var t;return{id:"mint-".concat(e.wrappedToken.toLowerCase()),label:"Mint ".concat((null==D||null==(t=D.peggedToken)?void 0:t.symbol)||"ha"," (").concat(e.marketId,")"),tokenSymbol:e.collateralSymbol,feeFormatted:eA(e.fee),feePercentage:e.feePct,details:"Mint ".concat(eA(e.expectedMint)," from ").concat(eA(e.amount)," ").concat(e.collateralSymbol)}})];q({key:l,isLoading:!1,fees:_,plan:{targetMarketId:e.targetMarketId,allocations:e.allocations,selectedClaimPools:e.selectedClaimPools,redeemPegged:V.map(e=>({peggedToken:e.peggedToken,amount:e.amount,minter:e.minter,wrappedCollateralToken:e.wrappedCollateralToken,expectedOut:e.expectedOut})),redeemLeveraged:H.map(e=>({marketId:e.marketId,leveragedToken:e.leveragedToken,amount:e.amount,minter:e.minter,expectedOut:e.expectedOut})),mint:W.map(e=>({wrappedToken:e.wrappedToken,amount:e.amount,minter:e.minter,expectedMint:e.expectedMint}))}})}catch(e){q({key:l,isLoading:!1,error:(null==e?void 0:e.message)||"Failed to calculate fees",fees:[]})}},[t,eA,ey,f]),eT=(0,r.useCallback)(async e=>{if(!f)return void K({key:"",isLoading:!1,error:"Public client not available",fees:[]});let l=JSON.stringify({c:e.selectedClaimPools.slice().sort((e,t)=>"".concat(e.marketId,"-").concat(e.poolType).localeCompare("".concat(t.marketId,"-").concat(t.poolType)))});K({key:l,isLoading:!0,fees:[]});try{var a,r,n,o,s,i,d,c,u,m,p,g,h,v,x,b,w,y,k,N;let P=new Map,j=new Map;for(let{marketId:l,poolType:c}of e.selectedClaimPools){let e=null==(a=t.find(e=>{let[t]=e;return t===l}))?void 0:a[1];if(!e)continue;let u="collateral"===c?null==(r=e.addresses)?void 0:r.stabilityPoolCollateral:null==(n=e.addresses)?void 0:n.stabilityPoolLeveraged;if(!u)continue;let m=null==(o=e.addresses)?void 0:o.leveragedToken,p=null==(s=e.addresses)?void 0:s.wrappedCollateralToken;if(p)for(let e of ey(u)){if(!e.claimable||e.claimable<=0n)continue;let t=e.address.toLowerCase();m&&t===m.toLowerCase()?P.set(l,(null!=(i=P.get(l))?i:0n)+e.claimable):t===p.toLowerCase()&&j.set(l,(null!=(d=j.get(l))?d:0n)+e.claimable)}}let A=[];for(let[e,l]of P.entries()){if(l<=0n)continue;let a=null==(c=t.find(t=>{let[l]=t;return l===e}))?void 0:c[1],r=null==a||null==(u=a.addresses)?void 0:u.minter;if(!a||!r)continue;let n=(null==a||null==(m=a.collateral)?void 0:m.symbol)||"collateral",o=await f.readContract({address:r,abi:e_,functionName:"redeemLeveragedTokenDryRun",args:[l]}),s=null!=(p=null==o?void 0:o[1])?p:0n,i=null!=(g=null==o?void 0:o[3])?g:0n,d=s+i>0n?Number(s)/Number(s+i)*100:void 0;A.push({id:"simple-redeem-hs-".concat(e),label:"Redeem leveraged (".concat(e,")"),tokenSymbol:n,feeFormatted:eA(s),feePercentage:d,details:"Redeem ".concat(eA(l)," hs → ").concat(eA(i)," ").concat(n)}),j.set(e,(null!=(h=j.get(e))?h:0n)+i)}for(let[e,l]of j.entries()){if(l<=0n)continue;let a=null==(v=t.find(t=>{let[l]=t;return l===e}))?void 0:v[1],r=null==a||null==(x=a.addresses)?void 0:x.minter;if(!a||!r)continue;let n=(null==a||null==(b=a.collateral)?void 0:b.symbol)||"collateral",o=(null==a||null==(w=a.peggedToken)?void 0:w.symbol)||"ha",s=await f.readContract({address:r,abi:e_,functionName:"mintPeggedTokenDryRun",args:[l]}),i=null!=(y=null==s?void 0:s[1])?y:0n,d=null!=(k=null==s?void 0:s[2])?k:0n,c=null!=(N=null==s?void 0:s[3])?N:0n,u=d>0n?Number(i)/Number(d)*100:void 0;A.push({id:"simple-mint-".concat(e),label:"Mint ".concat(o," (").concat(e,")"),tokenSymbol:n,feeFormatted:eA(i),feePercentage:u,details:"Mint ".concat(eA(c)," ").concat(o," from ").concat(eA(l)," ").concat(n)})}K({key:l,isLoading:!1,fees:A})}
1catch(e){K({key:l,isLoading:!1,error:(null==e?void 0:e.message)||"Failed to calculate fees",fees:[]})}},[t,eA,ey,f]),eE=(0,r.useCallback)(async(e,l)=>{var a,r,n,o,s,i,d,c,p,g,h,v,x,b,w,y;if(!u||!f)throw Error("Wallet not connected");let k=ew(e),N=Array.from(k.keys());if(0===N.length)return;let P=new Map;for(let e of N){let l=null==(a=t.find(t=>{let[l]=t;return l===e}))?void 0:a[1];if(!l)continue;let s=null==(r=l.addresses)?void 0:r.peggedToken,i=null==(n=l.addresses)?void 0:n.leveragedToken,d=null==(o=l.addresses)?void 0:o.wrappedCollateralToken;if(!s||!d)continue;let c=await eb(s),u=i?await eb(i):0n,m=await eb(d);P.set(e,{pegged:c,leveraged:u,wrapped:m})}let j=[];for(let e of N)for(let t of null!=(s=k.get(e))?s:[])j.push({id:"claim-".concat(e,"-").concat(t),label:"Claim rewards from ".concat(e," ").concat(t," pool"),status:"pending"});j.push({id:"compound",label:"Redeem / Mint / Deposit",status:"pending"}),F({isOpen:!0,title:"Compounding Rewards",steps:j,currentStepIndex:0});let A=0;for(let e of N){let l=null==(i=t.find(t=>{let[l]=t;return l===e}))?void 0:i[1];if(l)for(let t of null!=(d=k.get(e))?d:[]){let a="claim-".concat(e,"-").concat(t);eg(A),ef(a,{status:"in_progress"});let r="collateral"===t?null==(c=l.addresses)?void 0:c.stabilityPoolCollateral:null==(p=l.addresses)?void 0:p.stabilityPoolLeveraged;if(!r){ef(a,{status:"error",error:"Pool address not found"}),A++;continue}let n=await m({address:r,abi:eo.L,functionName:"claim"});ef(a,{status:"in_progress",txHash:n}),await f.waitForTransactionReceipt({hash:n}),ef(a,{status:"completed",txHash:n}),A++}}
1for(let e of(eg(A),ef("compound",{status:"in_progress"}),N)){let a=null==(g=t.find(t=>{let[l]=t;return l===e}))?void 0:g[1];if(!a)continue;let r=null==(h=a.addresses)?void 0:h.minter,n=null==(v=a.addresses)?void 0:v.peggedToken,o=null==(x=a.addresses)?void 0:x.leveragedToken,s=null==(b=a.addresses)?void 0:b.wrappedCollateralToken,i=null==(w=a.addresses)?void 0:w.stabilityPoolCollateral,d=null==(y=a.addresses)?void 0:y.stabilityPoolLeveraged;if(!r||!n||!s)continue;let c=P.get(e);if(!c)continue;let p=await eb(n),k=o?await eb(o):0n;await eb(s),p>c.pegged&&c.pegged;let N=k>c.leveraged?k-c.leveraged:0n;if(N>0n&&o){await ex(o,r,N);let e=0n;try{let t=await f.readContract({address:r,abi:e_,functionName:"redeemLeveragedTokenDryRun",args:[N]});if(t&&Array.isArray(t)&&t.length>=4){let l=t[3];e=99n*l/100n}}catch(e){}let t=await m({address:r,abi:e_,functionName:"redeemLeveragedToken",args:[N,u,e]});await f.waitForTransactionReceipt({hash:t})}let j=await eb(s),A=j>c.wrapped?j-c.wrapped:0n;if(A>0n){await ex(s,r,A);let e=0n;try{let t=await f.readContract({address:r,abi:e_,functionName:"mintPeggedTokenDryRun",args:[A]});if(t&&Array.isArray(t)&&t.length>=4){let l=t[3];e=99n*l/100n}}catch(e){}let t=await m({address:r,abi:e_,functionName:"mintPeggedToken",args:[A,u,e]});await f.waitForTransactionReceipt({hash:t})}let C=await eb(n),T=C>c.pegged?C-c.pegged:0n;if(T<=0n)continue;let E=new Set([i,d].filter(Boolean).map(e=>e.toLowerCase())),S=l.filter(e=>e.percentage>0).filter(e=>E.has(e.poolAddress.toLowerCase())),L=S.reduce((e,t)=>e+t.percentage,0);if(0!==L)for(let e of S){let t=e.poolAddress,l=T*BigInt(Math.round(100*e.percentage/L))/100n;if(l<=0n)continue;await ex(n,t,l);let a=await m({address:t,abi:B.yH,functionName:"deposit",args:[l,u,0n]});await f.waitForTransactionReceipt({hash:a})}}ef("compound",{status:"completed"})},[u,f,t,m,ef,eg,F,ex,eb,ew,ey]),eS=(0,r.useCallback)(async(e,l,a,r)=>{var n,o,s,i,d,c,p,g,h,v,x,b,w,y,k,N,P,j,A,C,T,E,S,L,M,R;if(!u||!f)throw Error("Wallet not connected");let I=null==(n=t.find(e=>{let[t]=e;return t===l}))?void 0:n[1];if(!I)throw Error("Target market not found");let D=null==(o=I.addresses)?void 0:o.peggedToken;if(null==(s=I.addresses)||s.stabilityPoolCollateral,null==(i=I.addresses)||i.stabilityPoolLeveraged,!D)throw Error("Missing target market addresses");let U=ew(e),O=Array.from(U.keys());if(0===O.length)return;let H=new Map,V=new Map,W=new Map;for(let e of O){let l=null==(d=t.find(t=>{let[l]=t;return l===e}))?void 0:d[1];if(!l)continue;let a=null==(c=l.addresses)?void 0:c.peggedToken,r=null==(p=l.addresses)?void 0:p.leveragedToken,n=null==(g=l.addresses)?void 0:g.wrappedCollateralToken;a&&!H.has(a)&&H.set(a,await eb(a)),r&&V.set(e,await eb(r)),n&&!W.has(n)&&W.set(n,await eb(n))}let z=[];for(let e of O)for(let t of null!=(h=U.get(e))?h:[])z.push({id:"claim-".concat(e,"-").concat(t),label:"Claim rewards from ".concat(e," ").concat(t," pool"),status:"pending"});F({isOpen:!0,title:"Compounding Rewards",steps:[...z,...r?[...r.redeemLeveraged.map(e=>({id:"redeem-hs-".concat(e.marketId),label:"Redeem leveraged rewards (".concat(e.marketId,")"),status:"pending",details:"Redeem leveraged rewards → wrapped collateral"})),...r.redeemPegged.map(e=>{var l,a,r;let n=(null==(r=t.find(t=>{var l;let[a,r]=t,n=null==r||null==(l=r.addresses)?void 0:l.peggedToken;return n&&n.toLowerCase()===e.peggedToken.toLowerCase()}))||null==(a=r[1])||null==(l=a.peggedToken)?void 0:l.symbol)||"ha";return{id:"redeem-ha-".concat(e.peggedToken.slice(2,8)),label:"Redeem ".concat(n," → collateral"),status:"pending",details:"Redeem non-target Anchor tokens → wrapped collateral"}}),...r.mint.map(e=>{var t;return{id:"mint-".concat(e.wrappedToken.slice(2,8)),label:"Mint ".concat((null==(t=I.peggedToken)?void 0:t.symbol)||"ha"," from collateral"),status:"pending",details:"Mint target Anchor token from wrapped collateral"}}),...a.filter(e=>e.percentage>0).map(e=>({id:"deposit-".concat(e.poolAddress.toLowerCase()),label:"Deposit to selected pool",status:"pending",details:"".concat(e.percentage,"% allocation")}))]:[]],currentStepIndex:0});let _=0;for(let e of O){let l=null==(v=t.find(t=>{let[l]=t;return l===e}))?void 0:v[1];if(l)for(let t of null!=(x=U.get(e))?x:[]){let a="claim-".concat(e,"-").concat(t);eg(_),ef(a,{status:"in_progress"});let r="collateral"===t?null==(b=l.addresses)?void 0:b.stabilityPoolCollateral:null==(w=l.addresses)?void 0:w.stabilityPoolLeveraged;if(!r){ef(a,{status:"error",error:"Pool address not found"}),_++;continue}
1let n=await m({address:r,abi:eo.L,functionName:"claim"});ef(a,{status:"in_progress",txHash:n}),await f.waitForTransactionReceipt({hash:n}),ef(a,{status:"completed",txHash:n}),_++}}let $=await eb(D),q=[];for(let e of O){let l=null==(y=t.find(t=>{let[l]=t;return l===e}))?void 0:y[1];if(!l)continue;let a=null==(k=l.addresses)?void 0:k.minter,n=null==(N=l.addresses)?void 0:N.leveragedToken;if(!a||!n)continue;let o=null!=(P=V.get(e))?P:0n,s=await eb(n),i=s>o?s-o:0n;if(i<=0n)continue;let d=0n,c=0n;if(r){let t=null==(j=r.redeemLeveraged)?void 0:j.find(t=>t.marketId===e);c=t&&t.amount>0n?t.expectedOut*i/t.amount:0n}else try{let e=await f.readContract({address:a,abi:e_,functionName:"redeemLeveragedTokenDryRun",args:[i]});e&&Array.isArray(e)&&e.length>=4&&(d=e[1],c=e[3])}catch(e){}let u=c>0n?99n*c/100n:0n;q.push({id:"redeem-hs-".concat(e),marketId:e,minter:a,leveragedToken:n,amount:i,fee:d,expectedOut:c,minOut:u})}let G=new Map;for(let[e,t]of H.entries()){let l=await eb(e),a=l>t?l-t:0n;a>0n&&G.set(e,a)}let K=[],Y=e=>{let t=Number(e)/1e18;return Number.isFinite(t)&&0!==t?t>=1?t.toLocaleString(void 0,{maximumFractionDigits:6}):t.toLocaleString(void 0,{maximumFractionDigits:8,useGrouping:!1}).replace(/\.?0+$/,""):"0"};for(let[e,l]of G.entries()){let a,n,o,s;if(e.toLowerCase()===D.toLowerCase())continue;let i=0n,d=0n;if(r){let s=null==(E=r.redeemPegged)?void 0:E.find(t=>t.peggedToken.toLowerCase()===e.toLowerCase());if(!s)throw Error("Missing preflight plan for pegged redemption");a=s.minter,n=s.wrappedCollateralToken,i=s.amount>0n?s.expectedOut*l/s.amount:0n,o=(null==(S=t.find(e=>{var t,l;let[r,n]=e;return(null==(l=n.addresses)||null==(t=l.minter)?void 0:t.toLowerCase())===a.toLowerCase()}))?void 0:S[0])||"preflight"}else{let r=t.map(e=>{let[t,l]=e;return{id:t,market:l}}).filter(t=>{var l,a;let{market:r}=t,n=null==(l=r.addresses)?void 0:l.peggedToken,o=null==(a=r.addresses)?void 0:a.minter;return!!n&&!!o&&n.toLowerCase()===e.toLowerCase()});if(0===r.length)throw Error("No redeem market found for a claimed pegged token");let c=null;for(let e of r){let t=null==(L=e.market.addresses)?void 0:L.minter,a=null==(M=e.market.addresses)?void 0:M.wrappedCollateralToken;if(t&&a)try{let r=await f.readContract({address:t,abi:e_,functionName:"redeemPeggedTokenDryRun",args:[l]}),n=r&&Array.isArray(r)&&r.length>=2?r[1]:0n,o=r&&Array.isArray(r)&&r.length>=5?r[4]:0n,s=n+o,i=s>0n?Number(n)/Number(s)*100:void 0;(!c||void 0!==i&&void 0!==c.feePct&&i<c.feePct-1e-9||void 0!==i&&void 0===c.feePct||i===c.feePct&&o>c.collateralOut)&&(c={marketId:e.id,minter:t,wrappedCollateralToken:a,collateralOut:o,fee:n,feePct:i})}catch(e){}}if(!c)throw Error("Failed to dry-run redeem on all candidate markets");a=c.minter,n=c.wrappedCollateralToken,o=c.marketId,i=c.collateralOut,d=c.fee,s=c.feePct}let c=i>0n?99n*i/100n:0n,u=(null==(T=t.find(t=>{var l;let[a,r]=t,n=null==(l=r.addresses)?void 0:l.peggedToken;return n&&n.toLowerCase()===e.toLowerCase()}))||null==(C=T[1])||null==(A=C.peggedToken)?void 0:A.symbol)||"ha";K.push({id:"redeem-ha-".concat(e.slice(2,8)),peggedToken:e,amount:l,chosenMarketId:o||"preflight",minter:a,wrappedCollateralToken:n,fee:d,feePct:s,expectedOut:i,minOut:c,tokenSymbol:u}),n&&!W.has(n)&&W.set(n,await eb(n))}let X=[];for(let[e,t]of W.entries()){let l=await eb(e),a=l>t?l-t:0n;a>0n&&X.push({token:e,amount:a})}let Q=t.map(e=>{let[t,l]=e;return{id:t,market:l}}).filter(e=>{var t,l,a;let{market:r}=e,n=null==(t=r.addresses)?void 0:t.peggedToken,o=null==(l=r.addresses)?void 0:l.minter,s=null==(a=r.addresses)?void 0:a.wrappedCollateralToken;return!!n&&!!o&&!!s&&n.toLowerCase()===D.toLowerCase()}),Z=[];for(let{token:e,amount:t}of X){let a,n,o=0n,s=0n;if(r){let l=null==(R=r.mint)?void 0:R.find(t=>t.wrappedToken.toLowerCase()===e.toLowerCase());if(!l)throw Error("Missing preflight plan for mint");a=l.minter,o=l.amount>0n?l.expectedMint*t/l.amount:0n}else{let l=Q.map(e=>{var t,l;let{market:a}=e;return{minter:null==(t=a.addresses)?void 0:t.minter,wrapped:null==(l=a.addresses)?void 0:l.wrappedCollateralToken,marketId:a.id}}).filter(t=>!!t.minter&&!!t.wrapped&&t.wrapped.toLowerCase()===e.toLowerCase());if(0===l.length)throw Error("No mint market found for one of the collateral types produced by redemption");let r=null;for(let e of l)try{let l=await f.readContract({address:e.minter,abi:e_,functionName:"mintPeggedTokenDryRun",args:[t]}),a=l&&Array.isArray(l)&&l.length>=2?l[1]:0n,n=l&&Array.isArray(l)&&l.length>=3?l[2]:0n,o=l&&Array.isArray(l)&&l.length>=4?l[3]:0n,s=n>0n?Number(a)/Number(n)*100:void 0;(!r||void 0!==s&&void 0!==r.feePct&&s<r.feePct-1e-9||void 0!==s&&void 0===r.feePct||s===r.feePct&&o>r.peggedOut)&&(r={minter:e.minter,peggedOut:o,fee:a,feePct:s})}catch(e){}if(!r)throw Error("Failed to dry-run mint on all candidate markets");a=r.minter,o=r.peggedOut,s=r.fee,n=r.feePct}let i=o>0n?99n*o/100n:0n;Z.push({id:"mint-".concat(e.slice(2,8)),wrappedToken:e,amount:t,chosenMarketId:l,minter:a,fee:s,feePct:n,expectedMint:o,minPeggedOut:i})}let J=a.filter(e=>e.percentage>0).map(e=>({id:"deposit-".concat(e.poolAddress.toLowerCase()),label:"Deposit to selected pool",status:"pending",details:"".concat(e.percentage,"% allocation")})),ee=[...q.map(e=>{var t;return{id:e.id,label:"Redeem leveraged rewards (".concat(e.marketId,")"),status:"pending",details:"Redeem ".concat(Y(e.amount)," hs → wrapped collateral"),fee:e.fee>0n?{amount:e.fee,formatted:Y(e.fee),percentage:e.fee+e.expectedOut>0n?Number(e.fee)/Number(e.fee+e.expectedOut)*100:void 0,tokenSymbol:(null==I||null==(t=I.collateral)?void 0:t.symbol)||"collateral"}:void 0}}),...K.map(e=>{var t;return{id:e.id,label:"Redeem ".concat(e.tokenSymbol," → collateral"),status:"pending",details:"Using ".concat(e.chosenMarketId,": redeem ").concat(Y(e.amount)," ").concat(e.tokenSymbol," → ").concat(Y(e.expectedOut)," wrapped collateral"),fee:e.fee>0n?{amount:e.fee,formatted:Y(e.fee),percentage:e.feePct,tokenSymbol:(null==I||null==(t=I.collateral)?void 0:t.symbol)||"collateral"}:void 0}}),...Z.map(e=>{var t,l,a;return{id:e.id,label:"Mint ".concat((null==(t=I.peggedToken)?void 0:t.symbol)||"ha"," from collateral"),status:"pending",details:"Mint ".concat(Y(e.expectedMint)," ").concat((null==(l=I.peggedToken)?void 0:l.symbol)||"ha"," from ").concat(Y(e.amount)," wrapped collateral"),fee:e.fee>0n?{amount:e.fee,formatted:Y(e.fee),percentage:e.feePct,tokenSymbol:(null==I||null==(a=I.collateral)?void 0:a.symbol)||"collateral"}:void 0}}),...J];for(let e of(F({isOpen:!0,title:"Compounding Rewards",steps:[...z.map(e=>({...e,status:"completed"})),...ee],currentStepIndex:z.length}),q)){eg(z.length+ee.findIndex(t=>t.id===e.id)),ef(e.id,{status:"in_progress"}),await ex(e.leveragedToken,e.minter,e.amount);let t=await m({address:e.minter,abi:e_,functionName:"redeemLeveragedToken",args:[e.amount,u,e.minOut]});ef(e.id,{status:"in_progress",txHash:t}),await f.waitForTransactionReceipt({hash:t}),ef(e.id,{status:"completed",txHash:t})}for(let e of K){eg(z.length+ee.findIndex(t=>t.id===e.id)),ef(e.id,{status:"in_progress"}),await ex(e.peggedToken,e.minter,e.amount);let t=await m({address:e.minter,abi:e_,functionName:"redeemPeggedToken",args:[e.amount,u,e.minOut]});ef(e.id,{status:"in_progress",txHash:t}),await f.waitForTransactionReceipt({hash:t}),ef(e.id,{status:"completed",txHash:t})}for(let e of Z){eg(z.length+ee.findIndex(t=>t.id===e.id)),ef(e.id,{status:"in_progress"}),await ex(e.wrappedToken,e.minter,e.amount);let t=await m({address:e.minter,abi:e_,functionName:"mintPeggedToken",args:[e.amount,u,e.minPeggedOut]});ef(e.id,{status:"in_progress",txHash:t}),await f.waitForTransactionReceipt({hash:t}),ef(e.id,{status:"completed",txHash:t})}let et=await eb(D),el=et>$?et-$:0n;if(el>0n){let e=a.filter(e=>e.percentage>0),t=e.reduce((e,t)=>
1e+t.percentage,0);if(0===t)return;for(let l of e){let e=l.poolAddress,a="deposit-".concat(e.toLowerCase()),r=el*BigInt(Math.round(100*l.percentage/t))/100n;if(!(r<=0n))try{let t=ee.findIndex(e=>e.id===a);t>=0&&eg(z.length+t),ef(a,{status:"in_progress",details:"".concat(l.percentage,"% allocation (approving & depositing…)")}),await ex(D,e,r),ef(a,{status:"in_progress",details:"".concat(l.percentage,"% allocation (depositing…)")});let n=await m({address:e,abi:B.yH,functionName:"deposit",args:[r,u,0n]});await f.waitForTransactionReceipt({hash:n}),ef(a,{status:"completed",txHash:n,details:"".concat(l.percentage,"% allocation (").concat(Y(r)," deposited)")})}catch(e){throw ef(a,{status:"error",error:(null==e?void 0:e.message)||"Deposit failed"}),e}}}},[u,f,t,m,ef,eg,F,ex,eb,ew,ey]),eL=async()=>{var e,l,a;if(!u||!ee||b)return;let r=null==(e=t.find(e=>{let[t]=e;return t===ee}))?void 0:e[1];if(r)try{w(!0),(null==(l=r.addresses)?void 0:l.stabilityPoolCollateral)&&await ed(r,"collateral"),(null==(a=r.addresses)?void 0:a.stabilityPoolLeveraged)&&await ed(r,"sail"),await new Promise(e=>setTimeout(e,2e3)),await Promise.all([d(),c()])}catch(e){}finally{w(!1)}},eM=async()=>{var e,l,a;if(!u||!ee||y||!f)return;let r=null==(e=t.find(e=>{let[t]=e;return t===ee}))?void 0:e[1];if(r)try{k(!0);let e=[];
1if(null==(l=r.addresses)?void 0:l.stabilityPoolCollateral){let t=await f.readContract({address:r.addresses.stabilityPoolCollateral,abi:eo.L,functionName:"getClaimableRewards",args:[u]});t&&t>0n&&e.push({poolType:"collateral",rewardAmount:t})}if(null==(a=r.addresses)?void 0:a.stabilityPoolLeveraged){let t=await f.readContract({address:r.addresses.stabilityPoolLeveraged,abi:eo.L,functionName:"getClaimableRewards",args:[u]});t&&t>0n&&e.push({poolType:"sail",rewardAmount:t})}if(0===e.length)return;for(let{poolType:t,rewardAmount:l}of e)"collateral"===t?await ed(r,"collateral"):await ed(r,"sail")}catch(e){}finally{k(!1)}},eR=async()=>{var e,l,a;if(!u||!f||!ee||b)return;let r=null==(e=t.find(e=>{let[t]=e;return t===ee}))?void 0:e[1];if(!r)return;let n=[];(null==(l=r.addresses)?void 0:l.stabilityPoolCollateral)&&n.push({marketId:ee,poolType:"collateral"}),(null==(a=r.addresses)?void 0:a.stabilityPoolLeveraged)&&n.push({marketId:ee,poolType:"sail"});try{U.current=null,w(!0),ea(!1),await eN({selectedPools:n,flowSource:"market"})}finally{w(!1)}},eI=(0,r.useRef)(null);return(0,r.useEffect)(()=>{let e=e=>{eI.current&&!eI.current.contains(e.target)&&J(!1)};return Z&&document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[Z]),{compoundModal:g,setCompoundModal:h,compoundPoolSelection:v,setCompoundPoolSelection:x,isClaiming:b,setIsClaiming:w,isCompounding:y,setIsCompounding:k,isClaimingAll:N,isCompoundingAll:j,earlyWithdrawModal:C,setEarlyWithdrawModal:T,withdrawAmountModal:E,setWithdrawAmountModal:S,withdrawAmountInput:L,setWithdrawAmountInput:M,withdrawAmountError:R,setWithdrawAmountError:I,transactionProgress:D,setTransactionProgress:F,compoundConfirmation:O,setCompoundConfirmation:H,compoundTargetModal:V,setCompoundTargetModal:W,compoundIntent:z,setCompoundIntent:_,advancedPreflight:$,setAdvancedPreflight:q,simplePreflight:G,setSimplePreflight:K,cancelOperationRef:Y,isClaimAllModalOpen:X,setIsClaimAllModalOpen:Q,isDropdownOpen:Z,setIsDropdownOpen:J,selectedMarketForClaim:ee,setSelectedMarketForClaim:et,isClaimMarketModalOpen:el,setIsClaimMarketModalOpen:ea,dropdownRef:eI,handlePendingWithdraw:ei,handleClaimRewards:ed,handleCompoundRewards:ec,createCompoundHandlers:eu,handleClaimAll:em,handleCompoundAll:ep,updateProgressStep:ef,setCurrentStep:eg,isUserRejection:eh,handleCompoundConfirm:ev,handleBuyTide:ej,handleBuyTideRetry:eP,ensureAllowance:ex,readErc20Balance:eb,getSelectedPoolsByMarket:ew,getPoolRewardTokens:ey,formatTokenAmount:eA,runAdvancedPreflight:eC,runSimplePreflight:eT,handleCompoundAllKeepPerToken:eE,handleCompoundAllToSingleToken:eS,handleClaimMarketBasicClaim:eL,handleClaimMarketCompound:eM,handleClaimMarketBuyTide:eR}}({anchorMarkets:eL,reads:eq,peggedPriceUSDMap:e7,allPoolRewards:tw,poolRewardsMap:ty,refetchReads:eG,refetchUserDeposits:tb}),lV=(0,r.useMemo)(()=>{let e=new Map;return tR.forEach(t=>{e.set(t.marketId,t)}),e},[tR]),lW=eM.length>0,{selectedMarketId:lz,setSelectedMarketId:l_,selectedMarket:l$,selectedMarketData:lq}=function(e){let{markets:t,marketsReady:l,marketPositions:a,marketsDataById:n}=e,{marketParam:o,setMarketParam:s}=(0,tF.Z)(),[i,d]=(0,r.useState)(null);(0,r.useEffect)(()=>{if(l&&0!==t.length){if(o&&t.some(e=>{let[t]=e;return t===o}))return void d(o);d(e=>{var l,r,n;if(e&&t.some(t=>{let[l]=t;return l===e}))return e;if(0===t.length)return null;for(let[e]of t)if(function(e,t){let l=e[t];return!!l&&(void 0!==l.collateralPool&&l.collateralPool>0n||void 0!==l.sailPool&&l.sailPool>0n)}(a,e))return e;let o=t.find(e=>{let[,t]=e;return!(0,p.pK)(t)});return null!=(n=null!=(r=null==o?void 0:o[0])?r:null==(l=t[0])?void 0:l[0])?n:null})}},[l,t,o,a]);let c=(0,r.useCallback)(e=>{d(e),s(e)},[s]),u=(0,r.useMemo)(()=>{if(!i)return null;let e=t.find(e=>{let[t]=e;return t===i});return e?{marketId:e[0],market:e[1]}:null},[t,i]),m=i?n.get(i):void 0;return{selectedMarketId:i,setSelectedMarketId:c,selectedMarket:u,selectedMarketData:m}}({markets:eM,marketsReady:lW,marketPositions:tT,marketsDataById:lV}),lG=(0,r.useMemo)(()=>{let e=0;for(let t of tR)e+=(t.collateralRewardsUSD||0)+(t.sailRewardsUSD||0);return e},[tR]),lK=(0,r.useMemo)(()=>{let e=0;for(let t of tR)(t.collateralPoolDepositUSD||0)>0&&(e+=1),(t.sailPoolDepositUSD||0)>0&&(e+=1);return e},[tR]),lY=(0,r.useMemo)(()=>{let e=0,t=0;for(let l of tR){let a=l.collateralPoolDepositUSD||0,r=l.sailPoolDepositUSD||0,n=l.collateralPoolAPR?(l.collateralPoolAPR.collateral||0)+(l.collateralPoolAPR.steam||0):0,o=l.sailPoolAPR?(l.sailPoolAPR.collateral||0)+(l.sailPoolAPR.steam||0):0;a>0&&(e+=a*n,t+=a),r>0&&(e+=r*o,t+=r)}return t<=0?null:e/t},[tR]),lX=(0,r.useMemo)(()=>{var e;if(!l$)return;let t=null==(e=l$.market.peggedToken)?void 0:e.symbol,l=(0,g.FV)(l$.market);return eM.filter(e=>{var a;let[,r]=e;return(null==(a=r.peggedToken)?void 0:a.symbol)===t&&(0,g.FV)(r)===l}).map(e=>{let[t,l]=e,a=lV.get(t);return{marketId:t,market:{...l,wrappedRate:null==a?void 0:a.wrappedRate}}})},[l$,eM,lV]),lQ=(0,r.useCallback)(async()=>{await new Promise(e=>setTimeout(e,2e3)),await Promise.all([eG(),tb(),tL()])},[eG,tb,tL]);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(f.Uu,{children:[tg&&(0,a.jsx)(tU.B,{error:tg}),0===eM.length?(0,a.jsx)("div",{className:"rounded-2xl border border-white/[0.08] bg-white/[0.06] px-4 py-8 text-center text-sm text-white/70",children:"No Earn markets match the current filters."}):(0,a.jsx)(tD,{selectedMarketId:lz,selectedMarket:null!=(M=null==l$?void 0:l$.market)?M:null,selectedMarketData:lq,dropdownMarkets:eM,onSelectMarket:l_,isConnected:eg,marketPositions:tT,marketsDataById:lV,peggedPriceUSDMap:e7,allMarketsForSelectedToken:lX,onManageSuccess:lQ,claimableRewardsUSD:lG,isClaiming:tX||tQ,onClaim:()=>lc(!0),isLoadingMarketData:eK,marketDataError:eY,onRetryMarketData:()=>eG(),walletStats:{isConnected:eg,earnPortfolioUSD:tE||0,positionsCount:lK,vaprPercent:lY,isLoadingMarks:tf||tc,isLoadingPortfolio:eK,totalMarks:th||tl||0,marksPerDay:tv||ta||tr||0}}),(0,a.jsx)(tB.N,{markets:eR,showSection:ey,onToggleShow:()=>ek(e=>!e),onManage:e=>{var t;let l=p.Q0[e];if(!l)return;let a=null==(t=l.peggedToken)?void 0:t.symbol,r=(0,g.FV)(l);eP({marketId:e,market:l,initialTab:"withdraw",simpleMode:!0,allMarkets:Object.entries(p.Q0).filter(e=>{var t;let[,l]=e;return(null==(t=l.peggedToken)?void 0:t.symbol)===a&&(0,g.FV)(l)===r}).map(e=>{let[t,l]=e;return{marketId:t,market:l}})})}})]}),eb&&(0,a.jsx)(b.X,{isOpen:!!eb,onClose:()=>ew(null),marketId:eb.marketId,market:eb.market,initialTab:"withdraw"===eb.initialTab||"withdraw-redeem"===eb.initialTab?"withdraw":"deposit",simpleMode:!0,bestPoolType:eb.bestPoolType||"collateral",allMarkets:eb.allMarkets,initialDepositAsset:eb.initialDepositAsset,positionsMap:tT,onSuccess:async()=>{await new Promise(e=>setTimeout(e,2e3)),await Promise.all([eG(),tb(),tL()])}}),tW&&(0,a.jsx)(L,{isOpen:!0,onClose:()=>tz(null),onConfirm:async e=>{tz(null);try{var t,l;let a=BigInt(0),r=null==(t=tW.market.addresses)?void 0:t.stabilityPoolCollateral,n=null==(l=tW.market.addresses)?void 0:l.stabilityPoolLeveraged;await lC(tW.market,e.map(e=>{let t=e.poolAddress.toLowerCase(),l=null==r?void 0:r.toLowerCase(),a=null==n?void 0:n.toLowerCase(),o=l&&t===l?"collateral":a&&t===a?"sail":null;return o?{poolId:o,percentage:e.percentage}:null}).filter(e=>null!==e),a)}catch(e){t3({isOpen:!0,title:"Compounding Rewards",steps:[{id:"error",label:"Error",status:"error",error:(null==e?void 0:e.message)||"An error occurred"}],currentStepIndex:0})}},pools:(()=>{var e,t,l,a,r,n,o,s,i,d;let c,u=tW.market,m=null==(e=u.addresses)?void 0:e.stabilityPoolCollateral,p=null==(t=u.addresses)?void 0:t.stabilityPoolLeveraged,f=[],g=eL.findIndex(e=>{var t;let[l]=e;return l===tW.market.id||(null==(t=tW.market.addresses)?void 0:t.peggedToken)});if(g>=0&&eq){let e=0;for(let t=0;t<g;t++){let l=eL[t][1],i=!!(null==(a=l.addresses)?void 0:a.stabilityPoolCollateral),d=!!(null==(r=l.addresses)?void 0:r.stabilityPoolLeveraged),c=!!(null==(n=l.addresses)?void 0:n.collateralPrice),u=!!(null==(o=l.addresses)?void 0:o.stabilityPoolManager),m=null==l||null==(s=l.addresses)?void 0:s.peggedToken;e+=5,u&&(e+=1),i&&(e+=4,m&&(e+=1)),d&&(e+=4,m&&(e+=1)),c&&(e+=1)}c=null==eq||null==(l=eq[e+3])?void 0:l.result}if(m){let e,t=null==tw?void 0:tw.find(e=>e.poolAddress.toLowerCase()===m.toLowerCase()),l=null==t?void 0:t.totalAPR;(null==t?void 0:t.tvl)!==void 0&&c&&(e=Number(t.tvl)/1e18*(Number(c)/1e18)),f.push({id:"collateral",name:"".concat((null==(i=tW.market.peggedToken)?void 0:i.symbol)||tW.market.id," Collateral Pool"),address:m,apr:l,tvl:null==t?void 0:t.tvl,tvlUSD:e,enabled:!0})}if(p){let e,t=null==tw?void 0:tw.find(e=>e.poolAddress.toLowerCase()===p.toLowerCase()),l=null==t?void 0:t.totalAPR;(null==t?void 0:t.tvl)!==void 0&&c&&(e=Number(t.tvl)/1e18*(Number(c)/1e18)),f.push({id:"sail",name:"".concat((null==(d=tW.market.peggedToken)?void 0:d.symbol)||tW.market.id," Sail Pool"),address:p,apr:l,tvl:null==t?void 0:t.tvl,tvlUSD:e,enabled:!0})}return f}
1)(),marketSymbol:(null==(e=tW.market.peggedToken)?void 0:e.symbol)||tW.market.id}),(0,a.jsx)(y,{isOpen:ld,onClose:()=>lc(!1),onBasicClaim:lk,onCompound:e=>{let t=new Set(e.map(e=>"".concat(e.marketId,"-").concat(e.poolType))),l=tV.filter(e=>t.has("".concat(e.marketId,"-").concat(e.poolType))),a=Array.from(new Set(l.map(e=>e.marketId))),r=new Map;for(let e of a){var n,o;let t=null==(n=eL.find(t=>{let[l]=t;return l===e}))?void 0:n[1],l=null==t||null==(o=t.addresses)?void 0:o.peggedToken;l&&(r.has(l.toLowerCase())||r.set(l.toLowerCase(),e))}lt({selectedPools:e,positions:l,options:Array.from(r.entries()).map(e=>{var t,l,a;let[r,n]=e,o=eL.filter(e=>{var t;let[l,a]=e,n=null==a||null==(t=a.addresses)?void 0:t.peggedToken;return n&&n.toLowerCase()===r}),s=(null==(a=eL.find(e=>{let[t]=e;return t===n}))||null==(l=a[1])||null==(t=l.peggedToken)?void 0:t.symbol)||n;return{marketId:n,symbol:s,pools:o.flatMap(e=>{var t,l,a,r,n;let[o,s]=e,i=(null==s||null==(t=s.collateral)?void 0:t.symbol)||"collateral",d=null==(l=s.addresses)?void 0:l.stabilityPoolCollateral,c=null==(a=s.addresses)?void 0:a.stabilityPoolLeveraged,u=lV.get(o),m=(null==u?void 0:u.collateralPoolAPR)?(u.collateralPoolAPR.collateral||0)+(u.collateralPoolAPR.steam||0):void 0,p=(null==u?void 0:u.sailPoolAPR)?(u.sailPoolAPR.collateral||0)+(u.sailPoolAPR.steam||0):void 0,f=[];if(d){let e=null!=m?m:null==tw||null==(r=tw.find(e=>e.poolAddress.toLowerCase()===d.toLowerCase()))?void 0:r.totalAPR;
1f.push({marketId:o,collateralSymbol:i,poolType:"collateral",poolAddress:d,apr:e})}if(c){let e=null!=p?p:null==tw||null==(n=tw.find(e=>e.poolAddress.toLowerCase()===c.toLowerCase()))?void 0:n.totalAPR;f.push({marketId:o,collateralSymbol:i,poolType:"sail",poolAddress:c,apr:e})}return f})}})}),lc(!1)},onBuyTide:lT,positions:tV,isLoading:tX||tQ}),le&&(0,a.jsx)(N,{isOpen:!0,onClose:()=>{lt(null),lc(!0)},positions:le.positions,options:le.options,selectedClaimPools:le.selectedPools,preflight:lr?{key:lr.key,isLoading:lr.isLoading,error:lr.error,fees:lr.fees}:null,onPreflight:lI,simplePreflight:lo?{key:lo.key,isLoading:lo.isLoading,error:lo.error,fees:lo.fees}:null,onSimplePreflight:lD,onContinue:e=>{var t;let{mode:l,targetMarketId:a,allocations:r}=e;if("single-token"===l&&a&&r){lt(null),(async()=>{try{let e=(null==lr?void 0:lr.isLoading)?void 0:(null==lr?void 0:lr.plan)&&lr.plan.targetMarketId===a?lr.plan:void 0;await lU(le.selectedPools,a,r,e)}catch(e){t3({isOpen:!0,title:"Compounding Rewards",steps:[{id:"error",label:"Error",status:"error",error:(null==e?void 0:e.message)||"An error occurred"}],currentStepIndex:0})}})();return}la({mode:l,selectedPools:le.selectedPools,targetMarketId:a});let n=null==(t=le.positions[0])?void 0:t.market;n&&lw(n,"collateral",0n),lt(null)}}),lp&&(0,a.jsx)(I,{isOpen:lg,onClose:()=>lh(!1),onBasicClaim:lB,onCompound:lO,onBuyTide:lH,marketSymbol:(null==(w=eL.find(e=>{let[t]=e;return t===lp}))||null==(l=w[1])||null==(t=l.peggedToken)?void 0:t.symbol)||"Market",isLoading:tq||tK}),t_&&(0,a.jsx)(L,{isOpen:!0,onClose:()=>{t$(null),la(null)},onConfirm:async e=>{t$(null);try{var t,l;if((null==ll?void 0:ll.mode)==="single-token"&&ll.targetMarketId){await lU(ll.selectedPools,ll.targetMarketId,e),la(null);return}if((null==ll?void 0:ll.mode)==="keep-per-token"){await lF(ll.selectedPools,e),la(null);return}let a=BigInt(0),r=t_.market,n=null==r||null==(t=r.addresses)?void 0:t.stabilityPoolCollateral,o=null==r||null==(l=r.addresses)?void 0:l.stabilityPoolLeveraged,s=e.map(e=>{let t=n&&e.poolAddress.toLowerCase()===n.toLowerCase()?"collateral":o&&e.poolAddress.toLowerCase()===o.toLowerCase()?"sail":null;return t?{poolId:t,percentage:e.percentage}:null}).filter(Boolean);await lC(t_.market,s,a)}catch(e){t3({isOpen:!0,title:"Compounding Rewards",steps:[{id:"error",label:"Error",status:"error",error:(null==e?void 0:e.message)||"An error occurred"}],currentStepIndex:0})}},pools:t_.pools,marketSymbol:(null==(k=t_.market.peggedToken)?void 0:k.symbol)||t_.market.id}),t6&&(0,a.jsx)(S,{isOpen:!0,onClose:()=>{t9(null),tY(!1)},onConfirm:t6.onConfirm,steps:t6.steps,fees:t6.fees,feeErrors:t6.feeErrors}),tZ&&(0,a.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/40 px-4",children:(0,a.jsxs)("div",{className:"".concat(c.GM," shadow-xl max-w-md w-full p-4 rounded-lg"),children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,a.jsx)("h3",{className:"text-[#1E4775] font-semibold",children:"Withdraw early?"}),(0,a.jsx)("button",{onClick:()=>tJ(null),className:"text-[#1E4775]/60 hover:text-[#1E4775]",children:"✕"})]}),(0,a.jsxs)("p",{className:"text-sm text-[#1E4775]/80",children:["Withdrawing now will incur the early withdrawal fee. The fee-free window opens in"," ",(0,h.$B)(new Date(1e3*Number(tZ.start)).toISOString())," ","and closes at"," ",(0,h.r6)(new Date(1e3*Number(tZ.end)).toISOString()),"."]}),(0,a.jsxs)("div",{className:"text-xs text-[#1E4775]/70 mt-2",children:["Fee:"," ",(Number(tZ.earlyWithdrawFee)/1e16).toFixed(2),"%"]}),(0,a.jsxs)("div",{className:"flex justify-end gap-2 mt-4",children:[(0,a.jsx)("button",{type:"button",onClick:()=>tJ(null),className:R.PZ,children:"Cancel"}),(0,a.jsx)("button",{type:"button",onClick:()=>{t5(""),t4(null),t1({poolAddress:tZ.poolAddress,poolType:tZ.poolType,useEarly:!0,symbol:tZ.symbol,maxAmount:tZ.poolBalance||0n}),tJ(null)},className:R.lY,children:"Continue with fee"})]})]})}),t0&&(0,a.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/40 px-4",children:(0,a.jsxs)("div",{className:"".concat(c.GM," max-w-lg w-full p-6 space-y-4"),children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("h3",{className:"text-[#1E4775] font-semibold text-lg",children:t0.useE
1arly?"Withdraw (fee applies)":"Withdraw"}),(0,a.jsx)("button",{onClick:()=>{t1(null),t5(""),t4(null)},className:"text-[#1E4775]/60 hover:text-[#1E4775]",children:"✕"})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)("div",{className:"flex justify-between items-center",children:[(0,a.jsx)("label",{className:"text-sm font-semibold text-[#1E4775]",children:"Enter Amount"}),(null==t0?void 0:t0.maxAmount)!==void 0&&(0,a.jsxs)("span",{className:"text-sm text-[#1E4775]/70",children:["Balance: ",(0,h.Bh)(t0.maxAmount)," ",t0.symbol||"pegged"]})]}),(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)("input",{value:t7,onChange:e=>{t5(e.target.value),t4(null)},type:"text",placeholder:"0.0",className:"w-full h-14 px-4 pr-24 bg-white/85 backdrop-blur-sm text-[#1E4775] border-2 ".concat(t2?"border-red-500":"border-[#1E4775]/30"," focus:border-[#1E4775] focus:ring-2 focus:ring-[#1E4775]/20 focus:outline-none transition-all text-xl font-mono ")}),(0,a.jsx)("button",{type:"button",onClick:()=>{(null==t0?void 0:t0.maxAmount)&&(t5((0,u.c)(t0.maxAmount)),t4(null))},className:tO.ZW,children:"MAX"})]}),t2&&(0,a.jsx)("p",{className:"mt-2 text-sm text-red-600",children:t2})]}),(0,a.jsxs)("div",{className:"flex gap-3 pt-2",children:[(0,a.jsx)("button",{onClick:()=>{t1(null),t5(""),t4(null)},className:tO.ZK,children:"Cancel"}),(0,a.jsx)("button",{onClick:async()=>{let e;if(!t0)return;let t=t7.trim();if(!t)return void t4("Enter an amount to withdraw");try{e=(0,m.g)(t)}catch(e){t4("Enter a valid amount");return}await lx(t0.poolAddress,t0.poolType,t0.useEarly,e),t1(null),t5(""),t4(null)},className:t0.useEarly?tO.w4:tO.z_,children:"Confirm Withdraw"})]})]})}),t8&&(0,a.jsx)(P.v,{isOpen:t8.isOpen,onClose:()=>{t3(null)},title:t8.title,steps:t8.steps,currentStepIndex:t8.currentStepIndex,onRetry:t8.onRetry,onCancel:()=>{li.current?(li.current(),li.current=null):t3(null)},canCancel:tX||tK}),eC&&(0,a.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onClick:()=>eT(null),children:(0,a.jsxs)("div",{className:"".concat(c.rP," p-6 max-w-md w-full mx-4"),onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,a.jsx)("h2",{className:"text-lg font-bold text-[#1E4775]",children:"Contract Addresses"}),(0,a.jsx)("button",{onClick:()=>eT(null),className:"text-[#1E4775]/70 hover:text-[#1E4775]",children:(0,a.jsx)(x.A,{className:"w-6 h-6"})})]}),(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-xs text-[#1E4775]/70 mb-1",children:"Minter"}),(0,a.jsx)(v.uB,{label:"",address:eC.minterAddress,chainId:null!=(ei=eC.market.chainId)?ei:1})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-xs text-[#1E4775]/70 mb-1",children:"Collateral Pool"}),(0,a.jsx)(v.uB,{label:"",address:null==(j=eC.market.addresses)?void 0:j.stabilityPoolCollateral,chainId:null!=(ed=eC.market.chainId)?ed:1})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-xs text-[#1E4775]/70 mb-1",children:"Sail Pool"}),(0,a.jsx)(v.uB,{label:"",address:null==(A=eC.market.addresses)?void 0:A.stabilityPoolLeveraged,chainId:null!=(ec=eC.market.chainId)?ec:1})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-xs text-[#1E4775]/70 mb-1",children:"Anchor Token"}),(0,a.jsx)(v.uB,{label:"",address:null==(C=eC.market.addresses)?void 0:C.peggedToken,chainId:null!=(eu=eC.market.chainId)?eu:1})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-xs text-[#1E4775]/70 mb-1",children:"Collateral Token"}),(0,a.jsx)(v.uB,{label:"",address:null==(T=eC.market.addresses)?void 0:T.collateralToken,chainId:null!=(em=eC.market.chainId)?em:1})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-xs text-[#1E4775]/70 mb-1",children:"Price Oracle"}),(0,a.jsx)(v.uB,{label:"",address:null==(E=eC.market.addresses)?void 0:E.collateralPrice,chainId:null!=(ep=eC.market.chainId)?ep:1})]})]})]})})]})}}},e=>{e.O(0,[85517,26985,12545,60268,69253,71763,20837,52497,54970,36700,81356,29910,43537,59286,64232,44061,80149,66706,10702,1473,14111,4582,71899,11325,68849,4463,96790,20730,77637,28441,31255,77358],()=>
1e(e.s=98658)),_N_E=e.O()}]);

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.