1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[838],{27928:(e,t,s)=>{"use strict";s.d(t,{wl:()=>j,l9:()=>w,yo:()=>g,HI:()=>b});var n=s(37876),l=s(78944),a=s(13666),i=s(7110);s(14232);var r=s(41089),o=s(10164),c=s(48230),d=s.n(c),h=s(35321),u=s(96523);let f=e=>{let t=e.menu,s=e.wallet;return(0,n.jsxs)(o.A,{id:"menu",expand:"md",children:[(0,n.jsx)(o.A.Toggle,{"aria-controls":"basic-navbar-nav"}),(0,n.jsx)(o.A.Collapse,{id:"basic-navbar-nav",children:(0,n.jsxs)(r.A,{className:"me-auto",children:[(0,n.jsx)(d(),{href:"/",className:"nav-link",children:(0,n.jsx)(u.gc,{icon:"home"})}),t.map((e,t)=>{let l=e.href;return(0,a.Ie)(s)||(l+="?wallet="+s),(0,n.jsx)(d(),{href:l,className:"nav-link",children:(0,n.jsxs)(n.Fragment,{children:[!(0,a.Ie)(e.icon)&&(0,n.jsx)(u.gc,{icon:e.icon}),!(0,a.Ie)(e.img)&&(0,n.jsx)(n.Fragment,{children:e.img}),(0,n.jsx)("span",{children:e.title})]})},t)})]})}),(0,n.jsx)("div",{id:"wallet_connector_container",children:(0,n.jsx)(o.A.Text,{children:(0,n.jsx)(h.l,{})})})]})};var m=s(45701),p=s(89099),_=s.n(p),x=s(75067),k=null;function y(e,t){let s=document.getElementById("menu_container");if(!s){(s=document.createElement("div")).id="menu_container";let e=document.getElementById("wrapper");e&&e.insertAdjacentElement("afterbegin",s),k=(0,l.createRoot)(s)}k||(k=(0,l.createRoot)(s)),k.render((0,n.jsx)(x.RouterContext.Provider,{value:_(),children:(0,n.jsx)(f,{menu:t,wallet:e})}))}async function w(){let e=[];return e.push({title:"Gas Station",href:"/mempool",icon:"gas-pump"}),e.push({title:"Drop analysis",href:"/mempool/drop",icon:"chart-bar"}),y("",e)}async function j(e=""){let t=[];t.push({title:"Sales",href:"/fxhash/sales",icon:"money-bill"}),t.push({title:"Secondary",href:"/fxhash/follow",icon:"hand-holding-usd"}),t.push({title:"Offers",href:"/fxhash/offers",icon:"comment-dollar"}),t.push({title:"Project",href:"/fxhash/generative",icon:"clipboard-list"}),t.push({title:"Holders",href:"/fxhash/holders",icon:"users"}),t.push({title:"Broom",href:"/fxhash/floor",icon:"broom"}),t.push({title:"Stats",href:"/fxhash/top",icon:"chart-area"});let s=(0,a.Ie)(e)?await (0,i.connectedWalletAddress)():e;return(0,a.Ie)(s)||s!=m.hQ||t.push({title:"Bids",href:"/fxhash/bids",icon:"gavel"}),y(e,t)}async function b(){let e=a._S.get("wallet"),t=[];return t.push({title:"FXHash",href:"/sales/fxhash"}),t.push({title:"Teia",href:"/sales/teia"}),t.push({title:"Objkt",href:"/sales/objkt"}),t.push({title:"Invalid",href:"/sales/invalid"}),y(e,t)}async function g(e){let t=a._S.get("hide");if((0,a.Ie)(t)||"1"!=t){(0,a.Ie)(e)&&(e=await (0,i.connectedWalletAddress)());let t=[];(0,a.Ie)(e)&&(e=""),t.push({title:"Gallery",href:"/gallery",icon:"palette"}),t.push({title:"Artist",href:"/artist",icon:"chart-bar"}),t.push({title:"Collected",href:"/resale",icon:"hand-holding-usd"}),t.push({title:"Fans",href:"/fans",icon:"users"}),t.push({title:"Gifted",href:"/gifted",icon:"gifts"}),t.push({title:"Flex",href:"/flex",icon:"grin-stars"}),t.push({title:"Activity",href:"/activity",icon:"file-invoice-dollar"}),t.push({title:"Offers",href:"/offers/manage",icon:"comment-dollar"}),t.push({title:"Linked",href:"/discovery",icon:"eye"}),y(e,t)}}},45105:(e,t,s)=>{e.exports=s(13209)},57042:(e,t,s)=>{"use strict";s.d(t,{w:()=>c});var n=s(37876),l=s(14232),a=s(13666),i=s(96523),r=s(78944),o=s(98477);class c extends l.Component{constructor(e){super(e),this.downloadJson=(e,t)=>{(0,a.Ie)(t)&&(t="data.json"),t.match(/\.json$/i)||(t+=".json");let s=`data:text/json;chatset=utf-8,${encodeURIComponent(JSON.stringify(e))}`,n=document.createElement("a");n.href=s,n.download=t,n.style.display="none",n.click()}}downloadCsv(e,t){let s=new Blob([e],{type:"text/csv"}),n=document.createElement("a");n.download=t,n.href=window.URL.createObjectURL(s),n.style.display="none",document.body.appendChild(n),n.click()}prepareDataForCsv(){if((0,a.Ie)(this.props.data))return;let e=null,t=[];for(let s of this.props.data)e||(e=Object.keys(s)),t.push(Object.values(s));return[e].concat(t)}getText(e){let t=null,s=e.querySelector(".timeago");return s&&((0,a.Ie)(s.dataset.date)?(0,a.Ie)(s.title)||(t=s.title.replace(/[,;]+/g,"")):t=s.dataset.date),(0,a.Ie)(t)&&!(0,a.Ie)(e.dataset.csv)&&(t=e.dataset.csv),(0,a.Ie)(t)&&(t=e.textContent),e.classList.contains("currency")?isNaN(t=parseFloat(t.replace(/(tz\s*)$/i,"")))&&(t=0):e.classList.contains("number")?isNaN(t=parseFloat(t))&&(t=0):e.classList.contains("integer")?isNaN(t=parseInt(t))&&(t=0):t=String(t).replace(/"/gi,'""').trim(),t}exportTableToCsv(e,t=!1){e&&e.preventDefault();var s=[];let l=(0,a.Ie)(this.props.table_id)?this.props.id:this.props.table_id,i=(0,a.Ie)(this.props.filename)?l:this.props.filename;if(t&&(i="fxhash"),this.props.data)s=this.prepareDataForCsv(this.props.data).map(e=>'"'+e.join('","')+'"');else{var c=document.querySelectorAll("#"+l+" tr:not([style='display:none'])");if(this.props.buildLines){let e=this.props.buildLines();for(let t of(c=[c[0]],e)){let e=document.createElement("tr"),s=(0,r.createRoot)(e);(0,o.flushSync)(()=>{s.render((0,n.jsx)(n.Fragment,{children:t.content}))}),c.push(e)}}for(var d=0;d<c.length;d++){var h=[],u=c[d].querySelectorAll("td,th");if(t)0==d?(h.push("address"),h.push("amount")):(h.push(c[d].querySelector(".fxhash_wallet").textContent),h.push(c[d].querySelector(".fxhash_count").textContent));else for(var f=0;f<u.length;f++){let e=u[f];if(e.classList.contains("nocsv"))continue;let t=this.getText(e);h.push(t)}s.push('"'+h.join('","')+'"')}}i.match(/\.csv$/i)||(i+=".csv"),this.downloadCsv(s.join("\n"),i)}exportTableToJson(e){e&&e.preventDefault();var t=[];let s=(0,a.Ie)(this.props.table_id)?this.props.id:this.props.table_id,n=(0,a.Ie)(this.props.filename)?s:this.props.filename;if(this.props.data)t=this.props.data;else{let e=document.querySelectorAll("#"+s+" tr:not([style='display:none'])"),n={};for(var l=0;l<e.length;l++){let s=e[l].querySelectorAll("td,th");if(0==l)for(var i=0;i<s.length;i++){let e=s[i];e.classList.contains("nocsv")?n[i]=!1:n[i]=e.dataset.fn?e.dataset.fn:String(e.textContent).replace(/[^a-z0-9_]+/gi,"").trim().toLowerCase()}else{let e={};for(var i=0;i<s.length;i++){if(!n[i])continue;let t=s[i];if(t.classList.contains("nocsv"))continue;let l=this.getText(t);e[n[i]]=l}t.push(e)}}}this.downloadJson(t,n)}render(){let e=(0,a.Ie)(this.props.style)?"":this.props.style;return this.props.disabled?this.props.children:(0,n.jsx)(n.Fragment,{children:(0,n.jsxs)("div",{id:this.props.id,className:`with_csv ${e}`.trim(),children:[(0,n.jsxs)("a",{href:"#",className:"download_csv",onClick:e=>this.exportTableToCsv(e),children:[(0,n.jsx)(i.gc,{icon:"download"}),"CSV"]}),this.props.fxhash&&(0,n.jsxs)(n.Fragment,{children:["\xa0",(0,n.jsxs)("a",{href:"#",className:"download_csv",onClick:e=>this.exportTableToCsv(e,!0),children:[(0,n.jsx)(i.gc,{icon:"download"}),"fxhash"]})]}),this.props.json&&(0,n.jsxs)(n.Fragment,{children:["\xa0",(0,n.jsxs)("a",{href:"#",className:"download_csv",onClick:e=>this.exportTableToJson(e),children:[(0,n.jsx)(i.gc,{icon:"download"}),"JSON"]})]}),this.props.children]})})}}},65525:(e,t,s)=>{"use strict";s.d(t,{c:()=>d});var n=s(13666),l=s(86743),a=s(45701),i=s(68375);let r=` 2query qryNftBiker($conditions: [token_bool_exp!]) { 3 token(where: {_or: $conditions}, limit: ${a.vZ}) { 4 id: token_id 5 fa2_id: fa_contract 6 supply 7 timestamp 8 title: name 9 display_uri 10 mime
11 token_holders: holders(where: {quantity: {_gt: "0"}}) { 12 quantity 13 holder_id: holder_address 14 } 15 asks:listings_active(where: {${a.q_}, amount_left: { _gt: 0}, marketplace_contract: {_nin: ${JSON.stringify(a.p8)}}}) { 16 id 17 amount 18 amount_left 19 marketplace_contract 20 timestamp 21 seller_id:seller_address 22 end_time:expiry 23 } 24 } 25} 26`,o={name:null,twitter:null,wallet:null,tokens:0,editions:0,inactive:!1};async function c(e){let t=[];for(let s of e){for(let e of s.token_holders)t.push(e.holder_id);for(let e of s.asks)t.push(e.seller_id)}return t=[...new Set(t)],await (0,n.sd)(t)}async function d(e){let t=(0,i.cR)(e),{errors:s,data:d}=await (0,n.R_)(r,"qryNftBiker",{conditions:t});if(!(0,n.Ie)(s))return(0,n.Qg)(s);let h={},u=0,f=await c(d.token);for(let e of(console.log("tokens",d.token.length,"holders",Object.keys(f).length),d.token)){for(let t of(e.uuid=`${e.fa2_id}_${e.id}`,u+=e.supply,e.token_holders)){let e=f[t.holder_id];e&&(t.holder=e)}let t=(0,n.Hx)(e.token_holders);if((0,n.Ie)(t)){console.debug("empty holders",tokem);continue}for(let s in t){let i=t[s];if(e.creator_id,a.mk.includes(s)||s==a.pV||0)continue;let r=(0,l.Rm)(s,i.name);(0,n.Ie)(h[s])&&(h[s]=Object.assign({},o),h[s].list=[],h[s].name=r,h[s].twitter=i.twitter,h[s].wallet=s),h[s].tokens+=1,h[s].editions+=i.quantity,h[s].list.push(e.uuid)}for(let t of e.asks){let e=f[t.seller_id];e&&(t.seller=e)}for(let t of e.asks){if((0,n.$T)(t.platform)||0==t.amount_left)continue;let s=t.seller.address;(0,n.Ie)(h[s])&&(h[s]=Object.assign({},o),h[s].list=[],h[s].name=(0,n.Ie)(t.seller.name)?null:t.seller.name,h[s].wallet=s),h[s].list.includes(e.uuid)||(h[s].tokens+=1,h[s].list.push(e.uuid)),h[s].editions+=t.amount_left}}return{summary:{editions:u,tokens:d.token.length},fans:h}}},68032:(e,t,s)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/fans",function(){return s(86385)}])},86385:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>O});var n=s(37876),l=s(14232),a=s(45105),i=s.n(a),r=s(77328),o=s.n(r),c=s(45701),d=s(64228),h=s(57042),u=s(13666),f=s(86743),m=s(93007),p=s(86615),_=s(27928),x=s(59130),k=s(65525),y=s(7051);let w=` 27query qryNftBiker($wallet: String) { 28 onchain { 29 user(where: { id: { _eq: $wallet } }) { 30 id 31 name 32 generative_tokens { 33 id 34 objkts { 35 owner_id 36 timestamp:created_at 37 owner { 38 id 39 name 40 account: wallet_account { 41 name:username 42 } 43 } 44 } 45 } 46 } 47 } 48} 49`;var j={editions:0,artist:0,collectors:0,fees:0,objkt:0,profits:0,buyback:0},b={},g=null,v=null;let I={name:null,twitter:null,banned:!1,wallet:null,tokens:0,editions:0,fxhash:0,gentk:0,first_token:null},N=()=>(0,n.jsxs)("div",{id:"help",children:[(0,n.jsx)("p",{children:(0,n.jsx)("b",{children:"Help"})}),(0,n.jsxs)("ul",{children:[(0,n.jsx)("li",{children:"Fans are sorted by total number of tokens owned, then total number of editions owned, and then first time they collected an objkt."}),(0,n.jsx)("li",{children:"Banned: wallet appear in your own ban list on this tool"}),(0,n.jsx)("li",{children:"Artworks: distinct tokens minted on hen/teia/objkt"}),(0,n.jsx)("li",{children:"Editions: total number of editions from all artworks owned"}),(0,n.jsx)("li",{children:"fxhash: distinct fxhash project owned"}),(0,n.jsx)("li",{children:"Gentk: total number of minted editions from all fxhash projects owned"}),(0,n.jsx)("li",{children:"Tokens: artworks + fxhash"}),(0,n.jsx)("li",{children:"Total ed.: editions + Genk"})]})]}),S=()=>{let e=document.getElementById("dump").textContent;navigator.clipboard.writeText(e)};function q(e,t){return!!c.mk.includes(e)||e==c.pV||e==t||!1}async function $(e){let t=await (0,u.Kh)(w,"qryNftBiker",{wallet:e});if(t.errors)return(0,u.Qg)(t.errors);j.fxhash=0,j.gentk=0;let s=(t.data?.onchain?.user||[])[0];if(!(0,u.Ie)(s?.generative_tokens)){for(let t of s.generative_tokens)for(let s of(j.fxhash+=1,t.objkts)){
49j.gentk+=1;let n=s.owner_id;if(q(n,e))continue;let l=new Date(s.timestamp);(0,u.Ie)(b[n])&&(b[n]=Object.assign({},I),b[n].list=[],b[n].name=s.owner?.account?.name||s.owner?.name,b[n].wallet=n,b[n].first_token=l,b[n].last_token=l),b[n].list.includes(t.id)||(b[n].fxhash+=1),l<b[n].first_token&&(b[n].first_token=l),l>b[n].last_token&&(b[n].last_token=l),b[n].gentk+=1,b[n].list.push(t.id)}for(let e of Object.keys(b))b[e].first_buy||(b[e].first_buy=b[e].first_token),b[e].last_buy||(b[e].last_buy=b[e].last_token)}}async function C(e,t=null){let s=await (0,f.S9)(e,t);for(let t of((0,u.Ie)(g)&&s.length>0&&(g=s[0].creator),(0,u.Ie)(g.name)&&(g.name=await (0,u.vj)(e,!1)),s)){let s=(0,u.Hx)(t.holders);if((0,u.Ie)(s))continue;t.available=0,c.mk.forEach(e=>{(0,u.Ie)(s[e])||(t.available+=s[e].quantity)}),t.held=(0,u.Ie)(s[e])?0:s[e].quantity,t.total=0;let n=new Date(t.timestamp);for(let l in s){let a=s[l];if(t.total+=Number(a.quantity),q(l,e))continue;let i=(0,f.Rm)(l,a.name);(0,u.Ie)(b[l])&&(b[l]=Object.assign({},I),b[l].list=[],b[l].name=i,b[l].twitter=a.twitter,b[l].wallet=l,b[l].first_token=n,b[l].last_token=n),b[l].tokens+=1,b[l].editions+=a.quantity,b[l].list.push(t.pk_id),n<b[l].first_token&&(b[l].first_token=n),n>b[l].last_token&&(b[l].last_token=n)}for(let s of t.swaps){if(s.platform=(0,u.Yl)(s.marketplace_contract),s.seller.address==e){(0,u.$T)(s.platform)&&s.amount_left>t.held&&(s.amount_left=t.held),t.held-=s.amount_left;continue}if((0,u.$T)(s.platform))continue;let n=s.seller.address,l=new Date(s.timestamp);if(0==s.amount_left){if(!b[n])continue;(!b[n].first_buy||l<b[n].first_buy)&&(b[n].first_buy=l),(!b[n].last_buy||l>b[n].last_buy)&&(b[n].last_buy=l);continue}(0,u.Ie)(b[n])&&(b[n]=Object.assign({},I),b[n].list=[],b[n].name=(0,u.Ie)(s.seller.name)?null:s.seller.name,b[n].wallet=n,b[n].first_buy=l,b[n].last_buy=l),b[n].list.includes(t.pk_id)||(b[n].tokens+=1),(!b[n].first_buy||l<b[n].first_buy)&&(b[n].first_buy=l),(!b[n].last_buy||l>b[n].last_buy)&&(b[n].last_buy=l),b[n].editions+=s.amount_left}j.objkt+=1,j.editions+=t.total}for(let e of Object.keys(b))b[e].first_buy||(b[e].first_buy=b[e].first_token),b[e].last_buy||(b[e].last_buy=b[e].last_token)}async function T(e){let t=`https://api.tzkt.io/v1/contracts/${e}/bigmaps/ledger`,s=await (0,u.u5)(t),n=s.ptr;t=`https://api.tzkt.io/v1/bigmaps/${n}/keys?active=true&limit=10000`,s=await (0,u.u5)(t),j={editions:0,objkt:0,gentk:0,fxhash:0};let l={};for(let e of s){let t=null,s=null;if(e.key&&e.key.address){if(t=e.key.address,s=String(e.key.nat),0==parseInt(e.value))continue}else s=e.key,t=String(e.value);c.qd.includes(t)||((0,u.Ie)(l[t])&&(l[t]={wallet:t,tokens:0,editions:0,objkts:[]}),l[t].tokens+=1,l[t].editions+=parseInt(e.value),l[t].objkts.push(s))}for(let e of Object.values(await (0,u.sd)([...new Set(Object.keys(l))]))){let t=l[e.address];(0,u.Ie)(t)||(t.name=e.name,t.twitter=e.twitter)}for(let e of l=Object.values(l))j.objkt+=e.tokens,j.editions+=e.editions;return l}class E extends l.Component{constructor(e){super(e)}componentDidMount(){var e=document.getElementById("fanst");e&&sorttable.makeSortable(e)}render(){let e=this.props.fans||[];if(0==e.length)return null;let t=e.filter(e=>e.total>1);return this.props.full||(e=t),(0,n.jsx)("div",{className:"inline_table",children:(0,n.jsxs)(h.w,{id:"fans",fxhash:!0,children:["\xa0",(0,n.jsx)("a",{href:"#",className:"download_csv",onClick:S,children:"Copy wallets"}),(0,n.jsxs)("table",{id:"fanst",className:"ranked first sortable",children:[(0,n.jsx)("thead",{children:(0,n.jsxs)("tr",{children:[(0,n.jsx)("th",{className:"sorttable_nosort",children:"Rank"}),(0,n.jsx)("th",{className:"sorttable_nosort",children:"Fans"}),(0,n.jsx)("th",{className:"sorttable_nosort",children:"Twitter"}),(0,n.jsx)("th",{children:"Banned"}),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("th",{className:"right",children:"Artworks"}),(0,n.jsx)("th",{className:"right",children:"Editions"})]}),(0,n.jsx)("th",{className:"right",children:"fxhash"}),(0,n.jsx)("th",{className:"right",children:"Gentk"}),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("th",{className:"right fxhash_count",children:"Tokens"}),(0,n.jsx)("th",{className:"right",children:"Tot. ed."})]}),(0,n.jsx)("th",{className:"sorttable_nosort fxhash_wallet",children:"Wallet"}),(0,n.jsx)("th",{className:"nocsv",children:"Activity"})]})}),(0,n.jsx)("tbody",{children:e.map((e,t)=>{let s=(0,u.Ie)(e.name)?(0,f.Rm)(e.wallet):e.name;return(0,u.Ie)(s)&&(s=(0,m.sA)(e.wallet)),(0,n.jsxs)("tr",{children:[(0,n.jsx)("td",{className:"right"}),(0,n.jsx)("td",{children:(0,m.x$)({address:e.wallet,name:s},{fxh_base:g?.eth})}),(0,n.jsx)("td",{children:(0,m.L3)(e.twitter)}),(0,n.jsx)("td",{children:e.banned||"no"}),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("td",{className:"right fxhash_count",children:e.tokens}
49),(0,n.jsx)("td",{className:"right",children:e.editions})]}),(0,n.jsx)("td",{className:"right",children:e.fxhash}),(0,n.jsx)("td",{className:"right",children:e.gentk}),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("td",{className:"right fxhash_count",children:e.total}),(0,n.jsx)("td",{className:"right",children:e.total_ed})]}),(0,n.jsx)("td",{className:"addy fxhash_wallet",children:e.wallet}),(0,n.jsx)("td",{className:"nocsv",children:(0,n.jsx)("a",{href:`/activity?wallet=${e.wallet}&creator=${v}`,children:"Activity"})})]},t)})})]}),(0,n.jsx)("div",{id:"dump",style:{display:"none"},children:e.map(e=>e.wallet).join("\n")})]})})}}function O(){let[e,t]=(0,l.useState)(),[s,a]=(0,l.useState)(),[r,c]=(0,l.useState)(),[h,w]=(0,l.useState)(),[I,S]=(0,l.useState)(!1),[q,O]=(0,l.useState)(),[B,F]=(0,l.useState)(),A=async()=>{let e=document.getElementById("show_all").checked;u._S.set("full",+!!e),(0,u.wQ)(),c(!!e)},R=async()=>{let e=document.getElementById("hide_banned").checked;e?u._S.set("hide_banned",1):u._S.delete("hide_banned"),(0,u.wQ)(),w(!!e)};async function L(t=!1){if((0,u.Ie)(s)&&(0,u.Ie)(e))return;t||await H();let n=Object.values(b);u.EB.loaded||await u.EB.load({storage_only:!0}),n.forEach(e=>{e.total=e.tokens+(isNaN(e.fxhash)?0:e.fxhash),e.total_ed=e.editions+(isNaN(e.gentk)?0:e.gentk),u.EB.exists(e.wallet)&&(e.banned="YES")});let l=(n=n.sort(function(e,t){let s=t.total-e.total;return 0==s&&(s=t.total_ed-e.total_ed),0==s&&(s=t.tokens-e.tokens),0==s&&(s=t.editions-e.editions),0==s&&(s=e.first_buy-t.first_buy),s})).filter(e=>e.total>1),a=Object.assign({nb_collectors:n.length,nb_fans:l.length||0},j);h&&(n=n.filter(e=>!e.banned)),t||(0,u.Vw)(),F(a),O(n),a.nb_collectors>0&&a.nb_collectors<=500&&null==r&&c(!0)}async function D(e){e&&e.preventDefault();let t=document.getElementById("wallet")?.value;if((0,u.Ie)(t))return;t=t.trim(),document.getElementById("wallet").value=t;let s=t.split(/[\r\n]+/im);1!=s.length||s[0].match(/kt[^\/]+\/.+/)?await Q(s):await z(s[0])}async function Q(e){let s=await (0,x.cR)(e.join("\n"));t(null),a(s)}async function z(e){u._S.set("wallet",e),document.getElementById("wallet").value=e,(0,u.wQ)(),a(null),w("1"==u._S.get("hide_banned"));let s=u._S.get("full");(0,u.Ie)(s)||c(s="0"!=s&&"all"),t(e)}async function G(){if(S(!1),g={},v=null,b={},j={editions:0,banned:0,artist:0,collectors:0,fees:0,objkt:0,profits:0,buyback:0},(0,u.Ie)(e)){O(null),F(null);return}if((0,u.Lq)(!0),e.match(/fxhash\.xyz/im))return(0,u.Qg)("This tool does not support fxhash project urls, please use the fxhash holders tool instead."),!1;let t=!!e.match(/^KT.+/im),s=null;if(t&&(g={address:e},s=await (0,f.mg)(e),(0,u.Ie)(s)||(g.name=s.name),(0,u.Ie)(s)||(0,u.Ie)(s?.collection_id))){b=await T(e),await L();return}j={editions:0,objkt:0,gentk:0,fxhash:0},await C(e,s),t||await $(e),await L()}async function H(){let e=[];for(let t of Object.values(b))(0,u.Ie)(t.name)&&e.push(t.wallet);for(let t of((0,u.Ie)(e)||(e=[...new Set(e)],e=await (0,u.sd)(e)),Object.values(e||{}))){let e=b[t.address];!(0,u.Ie)(e)&&((0,u.Ie)(e.name)&&(e.name=t.name),(0,u.Ie)(e.twitter)&&(e.twitter=t.twitter))}}async function J(){if((0,u.Ie)(s))return;(0,u.Lq)(!0);let e=await (0,k.c)(s);j=e.summary,b=Object.values(e.fans),S(!0),await L()}return(0,l.useEffect)(()=>{!async function(){let e=u._S.get("wallet");(0,u.Ie)(e)||z(e)}()},[]),(0,l.useEffect)(()=>{G()},[e]),(0,l.useEffect)(()=>{J()},[s]),(0,l.useEffect)(()=>{L(!0)},[r,h]),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{id:"input",className:"block",children:[(0,n.jsx)(o(),{children:(0,n.jsx)("title",{children:"Fans - Tezos NFT Tools"})}),(0,n.jsx)(i(),{src:"/js/sorttable.js"}),(0,n.jsx)(y.w,{title:"Artist's fans list",menu:_.yo}),(0,n.jsxs)(p.A.Group,{controlId:"wallet",children:[(0,n.jsx)(p.A.Label,{children:"Wallet / Contract"}),(0,n.jsx)(p.A.Control,{as:"textarea",rows:"3"})]}),(0,n.jsx)("div",{className:"help",children:"If you want to find the owners of a specific set of artworks, just enter each artwork url (1 per line)"}),(0,n.jsx)("a",{onClick:e=>D(e),id:"fetch",className:"btn btn-secondary",children:"CHECK"})]}),(0,n.jsx)(d.Q,{children:!(0,u.Ie)(q)&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e=>{if(e.collectorMode)return null;let t=e.stats,s=e.infos;return(0,u.Ie)(s)&&(0,u.Ie)(t)?null:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"block",children:["There are ",(0,n.jsxs)("b",{children:[t.nb_collectors," collectors"]})," (owning at least one edition) including ",(0,n.jsxs)("b",{children:[t.nb_fans," fans (owning at least 2 differents tokens)"]})," of ",(0,m.Vb)(s),(0,n.jsx)("br",{}),"Artworks : ",t.objkt," - Editions : ",t.editions," - fxhash projects : ",t.fxhash," - Gentks : ",t.gentk]}),(0,n.jsxs)("div",{className:"block",children:[(0,n.jsx)(p.A.Check,{inline:!0,type:"switch",id:"show_all",name:"show_all",label:"View all collectors",defaultChecked:r,onChange:A}),(0,n.jsx)(p.A.Check,{inline:!0,type:"switch",id:"hide_banned",name:"hide_banned",label:"Hide banned collectors",defaultChecked:h,onChange:R})]})]})},{collectorMode:I,stats:B,infos:g,full:r}),(0,n.jsx)(E,{fans:q,full:r}),(0,n.jsx)(N,{})]})})]})}O.layout="skip_result",O.acl="artist"},86743:(e,t,s)=>{"use strict";s.d(t,{Rm:()=>r,S9:()=>h,ci:()=>d,mg:()=>o});var n=s(45701),l=s(13666);let a=` 50query qryNftBiker($conditions: token_bool_exp, $wallet: String!, $offset: Int = 0, $limit: Int = ${n.vZ}) { 51 token(where: $conditions, offset: $offset, limit: $limit) { 52 id: token_id 53 fa2_id: fa_contract 54 timestamp 55 creators(where: {creator_address: {_eq: $wallet}}) { 56 holder { 57 address 58 name:alias 59 } 60 } 61 asks:listings_active(where: {${n.q_}
61, amount_left: { _gt: 0}, marketplace_contract: {_nin: ${JSON.stringify(n.p8)}}}) { 62 id 63 amount_left 64 marketplace_contract 65 timestamp 66 seller { 67 address 68 name: alias 69 twitter 70 tzdomain 71 } 72 } 73 holders(where: {quantity: {_gt: 0}}) { 74 quantity 75 holder_address 76 holder { 77 address 78 name: alias 79 twitter 80 tzdomain 81 } 82 } 83 } 84} 85`;var i={};function r(e,t){return(0,l.Ie)(i[e])?(0,l.Ie)(t)?l.FP.loaded&&!(0,l.Ie)(l.FP.get(e))?(i[e]=l.FP.get(e),i[e]):null:(i[e]=t,t):i[e]}async function o(e){let t=` 86 query qryNftBiker($address: String!) { 87 fa2:fa(where: {contract: {_eq: $address}}) { 88 name 89 items 90 type 91 creator_id:creator_address 92 contract 93 collection_id 94 collection_type 95 } 96 } 97 `,{errors:s,data:n}=await (0,l.R_)(t,"qryNftBiker",{address:e},{timeout:30});return(0,l.Ie)(n.fa2)?{}:n.fa2[0]}let c=` 98query qryNftBiker($address: String!) { 99 gallery( 100 where: {curators: {curator_address: {_eq: $address}}, max_items: {_gt: 0}} 101 ) { 102 title:name 103 supply:items 104 display_uri: logo 105 gallery_id 106 gallery_pk: pk 107 slug 108 floor:floor_price 109 volume_total 110 owners 111 published 112 timestamp:inserted_at 113 registry { 114 name 115 slug 116 type 117 } 118 tokens(limit: 1) { 119 fa_contract 120 } 121 } 122} 123`;async function d(e,t=!1){let{errors:s,data:a}=await (0,l.R_)(c,"qryNftBiker",{address:e},{timeout:30});if((0,l.Ie)(a?.gallery))return[];let i=a.gallery;for(let e of i)e.fa2_id=e.tokens&&e.tokens[0]?e.tokens[0].fa_contract:null,e.thumbnail_uri=e.display_uri,e.mime="image",e.uuid=`${e.fa2_id}_0`,e.project_path=e.registry.slug+"/projects/"+e.slug,e.balance=0;return i.filter(e=>e.fa2_id&&!n.yZ.includes(e.fa2_id))}async function h(e,t=null){let s=!!e.match(/^KT.+/im);if(s){if(n.mk.includes(e))return null;null===t&&(t=await o(e,!0)),t||(s=!1)}let i={supply:{_gt:0}};s?i.fa_contract={_eq:e}:(i.fa_contract={_nin:n.yZ},i.creators={verified:{_eq:!0},creator_address:{_eq:e}});let r=[],c=0;for(;;){let t=await (0,l.R_)(a,"qryNftBiker",{conditions:i,wallet:e,offset:c});if(t.errors){(0,l.Qg)(t.errors);break}for(let e of(await (0,l.Z_)(t.data.token,{per_token:!0})))e.uuid=`${e.fa2_id}-${e.id}`,r.push(e);if(t.data.token.length<n.vZ)break;c+=n.vZ}return r}}},e=>{e.O(0,[8802,9140,636,6593,8792],()=>e(e.s=68032)),_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.