1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4334],{64334:(e,t,r)=>{r.r(t),r.d(t,{default:()=>h});var a=r(37876),n=r(14232),o=r(98626),s=r(57512),i=r(33987),l=r(63463),d=r(23402);let c="0x5308545d3ca57d051e1cfa56e9e1a330c2933d79";function u(e,t){if(!e||!t)return!1;try{return String(e).toLowerCase()===String(t).toLowerCase()}catch{return!1}}function p(e){return e&&"string"==typeof e?`${e.slice(0,6)}â¦${e.slice(-4)}`:"â"}function f({label:e,values:t}){let[r,o]=(0,n.useState)(!1),s=`[${t.map(e=>`"${e}"`).join(",")}]`,i=async()=>{try{await navigator.clipboard.writeText(s),o(!0),setTimeout(()=>o(!1),1200)}catch{}};return(0,a.jsxs)("div",{style:{marginTop:12},children:[(0,a.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:4},children:[(0,a.jsxs)("strong",{style:{fontSize:11,color:"#aaa"},children:[e," (",t.length,")"]}),(0,a.jsx)("button",{onClick:i,style:{background:"#222",color:"#fff",border:"1px solid #555",borderRadius:4,padding:"2px 8px",cursor:"pointer",fontSize:11},children:r?"copied!":"copy"})]}),(0,a.jsx)("textarea",{readOnly:!0,value:s,onFocus:e=>e.target.select(),style:{width:"100%",minHeight:60,background:"#0a0a0a",color:"#cfc",border:"1px solid #333",borderRadius:4,padding:6,fontFamily:"monospace",fontSize:11,wordBreak:"break-all",resize:"vertical"}})]})}function h({artworks:e}
1){let t=(0,o.e)(),[r,g]=(0,n.useState)(!1),[x,m]=(0,n.useState)(!1),[w,y]=(0,n.useState)({}),b=(0,n.useMemo)(()=>(e||[]).filter(e=>e?.contract&&(0,s.P)(e.contract)&&e?.tokenId!=null),[e]),v=(0,n.useMemo)(()=>b.filter(e=>e?.nftInternalStatus!=="Sold"),[b]),k=async()=>{if(!t||0===v.length)return void y({});m(!0);let e={};await Promise.all(v.map(async r=>{let a=`${r.contract}-${r.tokenId}`;try{let n=await t.readContract({address:r.contract,abi:i.H,functionName:"ownerOf",args:[r.tokenId]});e[a]={...e[a]||{},owner:n,ownerError:null}}catch(t){e[a]={...e[a]||{},owner:null,ownerError:t?.shortMessage||t?.message||"ownerOf failed"}}}));let r={};for(let e of v){if(!e?.contractLogic||!(0,s.P)(e.contractLogic))continue;let t=e.contractLogic.toLowerCase();(r[t]=r[t]||[]).push(e)}await Promise.all(Object.entries(r).map(async([r,a])=>{let n=a.map(e=>(0,d.ut)(e.contract,e.tokenId));try{let o=await t.readContract({address:r,abi:l.H,functionName:"getAuctionStatusBulk",args:[n]});a.forEach((t,r)=>{let a=`${t.contract}-${t.tokenId}`;e[a]={...e[a]||{},status:o?.[r]??null,statusError:null}})}catch(r){let t=r?.shortMessage||r?.message||"bulk status failed";a.forEach(r=>{let a=`${r.contract}-${r.tokenId}`;e[a]={...e[a]||{},status:null,statusError:t}})}})),y(e),m(!1)};(0,n.useEffect)(()=>{k()},[t,v.length]);let j=0===v.length||Object.keys(w).length>0,S=(0,n.useMemo)(()=>b.map(e=>{let t=`${e.contract}-${e.tokenId}`,r=e?.nftInternalStatus==="Sold"?null:w[t],{available:a,reasons:n,ownerReverted:o,sold:i}=function(e,t){let r=[],a=e?.nftInternalStatus==="Sold";if(a&&r.push("marked Sold"),a)return{available:!1,reasons:r,ownerReverted:!1,sold:!0};if(t){let a=!!t.ownerError&&/reverted/i.test(t.ownerError);t.ownerError&&!a?r.push(`ownerOf error: ${t.ownerError}`):!t.ownerError&&(t.owner?u(t.owner,c)||r.push(`owned by ${p(t.owner)}`):r.push("no owner returned")),e?.contractLogic&&(0,s.P)(e.contractLogic)&&(t.statusError?r.push(`status error: ${t.statusError}`):function(e){if(!e)return!1;try{if(null!=e.currentBid&&BigInt(e.currentBid)>0n)return!0}catch{}return!(!e.highestBidder||u(e.highestBidder,"0x0000000000000000000000000000000000000000"))}(t.status)&&r.push(`active bid (highestBidder ${p(t.status.highestBidder)})`))}else r.push("chain data not loaded");return{available:0===r.length,reasons:r,ownerReverted:!!t?.ownerError&&/reverted/i.test(t.ownerError),sold:!1}}(e,r);return{artwork:e,available:a,reasons:n,ownerReverted:o,sold:i}}),[b,w]),I=S.filter(e=>e.available).map(e=>e.artwork),E=I.map(e=>String(e.tokenId)),$=I.map(e=>e.contract);return(0,a.jsxs)("div",{style:{position:"fixed",bottom:16,right:16,zIndex:9999,width:"min(820px, 95vw)",maxHeight:r?"auto":"80vh",display:"flex",flexDirection:"column",background:"rgba(20,20,20,0.97)",color:"#fafafa",border:"1px solid #444",borderRadius:8,boxShadow:"0 8px 32px rgba(0,0,0,0.4)",fontSize:12,fontFamily:"-apple-system, system-ui, sans-serif"},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"8px 12px",borderBottom:r?"none":"1px solid #333",background:j?I.length>0?"#1a3a1a":"#3a2a1a":"#222",cursor:"pointer"},onClick:()=>g(e=>!e),children:[(0,a.jsxs)("strong",{children:["Available Works \xb7 ",I.length," available \xb7 ",b.length," total",x&&" \xb7 loadingâ¦"]}),(0,a.jsxs)("span",{style:{display:"flex",gap:8,alignItems:"center"},children:[(0,a.jsx)("button",{onClick:e=>{e.stopPropagation(),k()},style:{background:"#222",color:"#fff",border:"1px solid #555",borderRadius:4,padding:"2px 8px",cursor:"pointer"},children:x?"â¦":"refetch"}),(0,a.jsx)("span",{children:r?"â²":"â¼"})]})]}),!r&&(0,a.jsxs)("div",{style:{overflow:"auto",padding:12},children:[(0,a.jsxs)("div",{style:{marginBottom:10,color:"#aaa",fontSize:11},children:["Available = not Sold \xb7 owned by ",(0,a.jsx)("code",{children:c})," \xb7 no active bid"]}),0===b.length&&(0,a.jsx)("div",{style:{color:"#aaa"},children:"No artworks with a valid contract."}),b.length>0&&(0,a.jsx)("div",{style:{border:"1px solid #2a2a2a",borderRadius:4},children:S.map(({artwork:e,available:t,reasons:r,ownerReverted:n,sold:o},s)=>{let i=!t&&!o&&r.includes("chain data not loaded");return(0,a.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"70px 50px 1fr",alignItems:"start",ga
1p:8,padding:"6px 12px",borderTop:0===s?"none":"1px solid #2a2a2a",background:t?"#13261a":o?"#222":i?"transparent":"#2a1a1a"},children:[(0,a.jsx)("span",{style:{fontWeight:700,color:t?"#8e6":o?"#aaa":i?"#888":"#f88"},children:t?"â avail":o?"SOLD":i?"â¦":"â"}),(0,a.jsxs)("span",{style:{fontFamily:"monospace"},children:["#",String(e.tokenId)]}),(0,a.jsxs)("div",{style:{minWidth:0},children:[(0,a.jsxs)("div",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[e.artworkTitle||e.title||"(untitled)",n&&(0,a.jsx)("span",{style:{marginLeft:8,color:"#aaa",fontSize:10,fontStyle:"italic"},children:"(unminted)"}),(0,a.jsx)("span",{style:{marginLeft:8,color:"#666",fontFamily:"monospace",fontSize:10},children:p(e.contract)})]}),!t&&!i&&r.length>0&&(0,a.jsx)("div",{style:{marginTop:2,color:"#fbb",fontSize:11},children:r.join(" \xb7 ")})]})]},`${e.contract}-${e.tokenId}`)})}),(0,a.jsx)(f,{label:"tokenIds",values:E}),(0,a.jsx)(f,{label:"contracts",values:$})]})]})}}}]);
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.