PageSourceSearch

https://letterskull.vercel.app/_next/static/chunks/3bd02d491b1e18ff.js?dpl=dpl_CfmW4NouVLJKEKAN5tGvj62ZQNxN

js letterskull.vercel.app collected 2026-10-03 07:14:06 UTC 24,042 bytes, 1 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,6685,e=>{"use strict";var t=e.i(8861),n=e.i(96516);function r(e,r){if(!(0,n.isAddress)(e,{strict:!1}))throw new t.InvalidAddressError({address:e});if(!(0,n.isAddress)(r,{strict:!1}))throw new t.InvalidAddressError({address:r});return e.toLowerCase()===r.toLowerCase()}e.s(["isAddressEqual",()=>r])},510,e=>{"use strict";var t=e.i(24335);function n(e,r={}){let a=function(e,t={}){try{return e.getClient(t)}catch{return}}(e,r);return a?.extend(t.publicActions)}var r=e.i(51797),a=e.i(7034);function s(e={}){let t=(0,a.useConfig)(e);return(0,r.useSyncExternalStoreWithSelector)(e=>(function(e,t){let{onChange:r}=t;return e.subscribe(()=>n(e),r,{equalityFn:(e,t)=>e?.uid===t?.uid})})(t,{onChange:e}),()=>n(t,e),()=>n(t,e),e=>e,(e,t)=>e?.uid===t?.uid)}e.s(["usePublicClient",()=>s],510)},16862,22113,71786,e=>{"use strict";var t=e.i(54616),n=e.i(38630),r=e.i(71807),a=e.i(63625),s=e.i(11347),i=e.i(23838),l=e.i(89991),o=e.i(57393);async function c(e,t={}){let n,{assertChainId:r=!0}=t;if(t.connector){let{connector:r}=t;if("reconnecting"===e.state.status&&!r.getAccounts&&!r.getChainId)throw new o.ConnectorUnavailableReconnectingError({connector:r});let[a,s]=await Promise.all([r.getAccounts().catch(e=>{if(null===t.account)return[];throw e}),r.getChainId()]);n={accounts:a,chainId:s,connector:r}}else n=e.state.connections.get(e.state.current);if(!n)throw new o.ConnectorNotConnectedError;let d=t.chainId??n.chainId,u=await n.connector.getChainId();if(r&&u!==d)throw new o.ConnectorChainMismatchError({connectionChainId:d,connectorChainId:u});let m=n.connector;if(m.getClient)return m.getClient({chainId:d});let h=(0,l.parseAccount)(t.account??n.accounts[0]);if(h&&(h.address=(0,i.getAddress)(h.address)),t.account&&!n.accounts.some(e=>e.toLowerCase()===h.address.toLowerCase()))throw new o.ConnectorAccountNotFoundError({address:h.address,connector:m});let f=e.chains.find(e=>e.id===d),p=await n.connector.getProvider({chainId:d});return(0,a.createClient)({account:h,chain:f,name:"Connector Client",transport:e=>(0,s.custom)(p)({...e,retryCount:0})})}async function d(e,t){let a,{account:s,chainId:i,connector:l,...o}=t;a="object"==typeof s&&s?.type==="local"?e.getClient({chainId:i}):await c(e,{account:s??void 0,assertChainId:!1,chainId:i,connector:l});let d=i&&a.chain?.id!==i?{id:i}:a.chain,u=(0,r.getAction)(a,n.writeContract,"writeContract");return await u({...o,...s?{account:s}:{},assertChainId:!!i,chain:d})}e.s(["getConnectorClient",()=>c],22113);var u=e.i(7034);function m(e={}){let n=function(e,t={}){return{...t.mutation,mutationFn:t=>d(e,t),mutationKey:["writeContract"]}}((0,u.useConfig)(e),e),r=(0,t.useMutation)(n);return{...r,writeContract:r.mutate,writeContractAsync:r.mutateAsync}}e.s(["useWriteContract",()=>m],16862);var h=e.i(50323),f=e.i(89509),p=e.i(79917),g=e.i(86182);async function x(e,t){let{chainId:n,timeout:a=0,...s}=t,i=e.getClient({chainId:n}),l=(0,r.getAction)(i,g.waitForTransactionReceipt,"waitForTransactionReceipt"),o=await l({...s,timeout:a});if("reverted"===o.status){let e=(0,r.getAction)(i,p.getTransaction,"getTransaction"),{from:t,...n}=await e({hash:o.transactionHash}),a=(0,r.getAction)(i,f.call,"call"),s=await a({...n,account:t,data:n.input,gasPrice:"eip1559"!==n.type?n.gasPrice:void 0,maxFeePerGas:"eip1559"===n.type?n.maxFeePerGas:void 0,maxPriorityFeePerGas:"eip1559"===n.type?n.maxPriorityFeePerGas:void 0});throw Error(s?.data?(0,h.hexToString)(`0x${s.data.substring(138)}`):"unknown reason")}return{...o,chainId:i.chain.id}}var y=e.i(27912),w=e.i(48396),v=e.i(70778);function N(e={}){let t=(0,u.useConfig)(e),n=(0,v.useChainId)({config:t}),r=function(e,t={}){return{...t.query,enabled:!!(t.hash&&(t.query?.enabled??!0)),queryFn:async n=>{let[,{scopeKey:r,...a}]=n.queryKey;if(!a.hash)throw Error("hash is required");return x(e,{...a,onReplaced:t.onReplaced,hash:a.hash})},queryKey:function(e={}){let{onReplaced:t,...n}=e;return["waitForTransactionReceipt",(0,y.filterQueryOptions)(n)]}(t)}}(t,{...e,chainId:e.chainId??n});return(0,w.useQuery)(r)}e.s(["useWaitForTransactionReceipt",()=>N],71786)},70317,e=>{"use strict";var t=e.i(43476),n=e.i(52236);function r({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"card",className:(0,n.cn)("bg-card text-card-foreground flex flex-col gap-6 border py-6 shadow-sm",e),...r})}function a({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"card-header",className:(0,n.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",e),...r})}function s({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"card-title",className:(0,n.cn)("leading-none font-semibold",e),...r})}function i({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"card-description",className:(0,n.cn)("text-muted-foreground text-sm",e),...r})}function l({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"card-content",className:(0,n.cn)("px-6",e),...r})}e.s(["Card",()=>r,"CardContent",()=>l,"CardDescription",()=>i,"CardHeader",()=>a,"CardTitle",()=>s])},38630,11573,42305,88794,11347,e=>{"use strict";var t=e.i(89991),n=e.i(69934);class r extends n.BaseError{constructor({docsPath:e}={}){super("Could not find an Account to execute with this Action.\nPlease provide an Account with the `account` argument on the Action, or by supplying an `account` to the Client.",{docsPath:e,docsSlug:"account",name:"AccountNotFoundError"})}}class a extends n.BaseError{constructor({docsPath:e,metaMessages:t,type:n}){super(`Account type "${n}" is not supported.`,{docsPath:e,metaMessages:t,name:"AccountTypeNotSupportedError"})}}e.s(["AccountNotFoundError",()=>
1r,"AccountTypeNotSupportedError",()=>a],11573);var s=e.i(56679),i=e.i(7749),l=e.i(67125),o=e.i(90392),c=e.i(5880);function d({chain:e,currentChainId:t}){if(!e)throw new c.ChainNotFoundError;if(t!==e.id)throw new c.ChainMismatchError({chain:e,currentChainId:t})}e.s(["assertCurrentChain",()=>d],42305);var u=e.i(47526),m=e.i(10725),h=e.i(64404),f=e.i(90521),p=e.i(76677),g=e.i(53464),x=e.i(75948),y=e.i(68941),w=e.i(38291);let v=new p.LruMap(128);async function N(e,s){let{account:i=e.account,assertChainId:c=!0,chain:p=e.chain,accessList:N,authorizationList:j,blobs:k,data:C,dataSuffix:b="string"==typeof e.dataSuffix?e.dataSuffix:e.dataSuffix?.value,gas:T,gasPrice:I,maxFeePerBlobGas:S,maxFeePerGas:A,maxPriorityFeePerGas:E,nonce:L,type:M,value:F,...R}=s;if(void 0===i)throw new r({docsPath:"/docs/actions/wallet/sendTransaction"});let P=i?(0,t.parseAccount)(i):null;try{(0,g.assertRequest)(s);let t=await (async()=>s.to?s.to:null!==s.to&&j&&j.length>0?await (0,o.recoverAuthorizationAddress)({authorization:j[0]}).catch(()=>{throw new n.BaseError("`to` is required. Could not infer from `authorizationList`.")}):void 0)();if(P?.type==="json-rpc"||null===P){let n;null!==p&&(n=await (0,l.getAction)(e,x.getChainId,"getChainId")({}),c&&d({currentChainId:n,chain:p}));let r=e.chain?.formatters?.transactionRequest?.format,a=(r||f.formatTransactionRequest)({...(0,h.extract)(R,{format:r}),accessList:N,account:P,authorizationList:j,blobs:k,chainId:n,data:C?(0,u.concat)([C,b??"0x"]):C,gas:T,gasPrice:I,maxFeePerBlobGas:S,maxFeePerGas:A,maxPriorityFeePerGas:E,nonce:L,to:t,type:M,value:F},"sendTransaction"),s=v.get(e.uid);try{return await e.request({method:s?"wallet_sendTransaction":"eth_sendTransaction",params:[a]},{retryCount:0})}catch(t){if(!1===s)throw t;if("InvalidInputRpcError"===t.name||"InvalidParamsRpcError"===t.name||"MethodNotFoundRpcError"===t.name||"MethodNotSupportedRpcError"===t.name)return await e.request({method:"wallet_sendTransaction",params:[a]},{retryCount:0}).then(t=>(v.set(e.uid,!0),t)).catch(n=>{if("MethodNotFoundRpcError"===n.name||"MethodNotSupportedRpcError"===n.name)throw v.set(e.uid,!1),t;throw n});throw t}}if(P?.type==="local"){let n=await (0,l.getAction)(e,y.prepareTransactionRequest,"prepareTransactionRequest")({account:P,accessList:N,authorizationList:j,blobs:k,chain:p,data:C?(0,u.concat)([C,b??"0x"]):C,gas:T,gasPrice:I,maxFeePerBlobGas:S,maxFeePerGas:A,maxPriorityFeePerGas:E,nonce:L,nonceManager:P.nonceManager,parameters:[...y.defaultParameters,"sidecars"],type:M,value:F,...R,to:t}),r=p?.serializers?.transaction,a=await P.signTransaction(n,{serializer:r});return await (0,l.getAction)(e,w.sendRawTransaction,"sendRawTransaction")({serializedTransaction:a})}if(P?.type==="smart")throw new a({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:"/docs/actions/bundler/sendUserOperation",type:"smart"});throw new a({docsPath:"/docs/actions/wallet/sendTransaction",type:P?.type})}catch(e){if(e instanceof a)throw e;throw(0,m.getTransactionError)(e,{...s,account:P,chain:s.chain||void 0})}}async function j(e,t){return j.internal(e,N,"sendTransaction",t)}e.s(["sendTransaction",()=>N],88794),(j||(j={})).internal=async function(e,n,a,o){let{abi:c,account:d=e.account,address:u,args:m,functionName:h,...f}=o;if(void 0===d)throw new r({docsPath:"/docs/contract/writeContract"});let p=d?(0,t.parseAccount)(d):null,g=(0,s.encodeFunctionData)({abi:c,args:m,functionName:h});try{return await (0,l.getAction)(e,n,a)({data:g,to:u,account:p,...f})}catch(e){throw(0,i.getContractError)(e,{abi:c,address:u,args:m,docsPath:"/docs/contract/writeContract",functionName:h,sender:p?.address})}},e.s(["writeContract",()=>j],38630);var k=e.i(95331);function C(e,t={}){let{key:n="custom",methods:r,name:a="Custom Provider",retryDelay:s}=t;return({retryCount:i})=>(0,k.createTransport)({key:n,methods:r,name:a,request:e.request.bind(e),retryCount:t.retryCount??i,retryDelay:s,type:"custom"})}e.s(["custom",()=>C],11347)},99509,77064,68375,e=>{"use strict";var t=e.i(55723),n=e.i(69934);class r extends n.BaseError{constructor({value:e}){super(`Number \`${e}\` is not a valid decimal number.`,{name:"InvalidDecimalNumberError"})}}function a(e,t){if(!/^(-?)([0-9]*)\.?([0-9]*)$/.test(e))throw new r({value:e});let[n,a="0"]=e.split("."),s=n.startsWith("-");if(s&&(n=n.slice(1)),a=a.replace(/(0+)$/,""),0===t)1===Math.round(Number(`.${a}`))&&(n=`${BigInt(n)+1n}`),a="";else if(a.length>t){let[e,r,s]=[a.slice(0,t-1),a.slice(t-1,t),a.slice(t)],i=Math.round(Number(`${r}.${s}`));(a=i>9?`${BigInt(e)+BigInt(1)}0`.padStart(e.length+1,"0"):`${e}${i}`).length>t&&(a=a.slice(1),n=`${BigInt(n)+1n}`),a=a.slice(0,t)}else a=a.padEnd(t,"0");return BigInt(`${s?"-":""}${n}${a}`)}function s(e,n="wei"){return a(e,t.etherUnits[n])}e.s(["InvalidDecimalNumberError",()=>r],77064),e.s(["parseUnits",()=>a],68375),e.s(["parseEther",()=>s],99509)},17661,e=>{"use strict";var t=e.i(43476),n=e.i(71645),r=e.i(12573),a=e.i(510),s=e.i(16862),i=e.i(71786),l=e.i(43996),o=e.i(99509),c=e.i(66691),d=e.i(70317),u=e.i(81194),m=e.i(22016);let h=BigInt(0),f=BigInt(1),p="0xb8261f4431928F176c5A07887c8fcAcCd13c6D16",g="0x75A9bd203aFbB4D8FB233372d1D9Ea30E0F1Adfd",x=[{type:"function",name:"skullOfLetter",stateMutability:"view",inputs:[{name:"letterTokenId",type:"uint256"}],outputs:[{name:"",type:"uint256"}]},{type:"function",name:"usedLetterToken",stateMutability:"view",inputs:[{name:"",type:"uint256"}],outputs:[{name:"",type:"bool"}]},{type:"function",name:"nonceOf",stateMutability:"view",inputs:[{name:"skullTokenId",type:"uint256"}],outputs:[{name:"",type:"uint256"}]},{type:"function",name:"previewSvg",stateMutability:"pure",inputs:[{name:"letterTokenId",type:"uint256"},{name:"nonce",type:"uint256"}],outputs:[{name:"",type:"string"}]},{type:"function",name:"ownerOf",stateMutability:"view",inputs:[{name:"tokenId",type:"uint256"}],outputs:[{name:"",type:"address"}]},{type:"function",name:"mint",stateMutability:"payable",inputs:[{name:"letterTokenId",type:"uint256"}],outputs:[{name:"skullTokenId",type:"uint256"}]},{type:"function",name:"nextTokenId",stateMutability:"view",inputs:[],outputs:[{name:"",type:"uint256"}]}],y=[{type:"function",name:"totalSupply",stateMutability:"view",inputs:[],outputs:[{name:"",type:"uint256"}]}];function w(e){let t=e.toString();return t.length>18?`${t.slice(0,10)}…${t.slice(-8)}`:t}function v(e){return e?e.length>12?`${e.slice(0,6)}…${e.slice(-4)}`:e:""}function N(){var e;let N,{address:j,isConnected:k,chain:C}=(0,r.useAccount)(),b=(0,a.usePublicClient)({chainId:l.shape.id}),{writeContract:T,data:I,isPending:S,error:A}=(0,s.useWriteContract)(),{isLoading:E,isSuccess:L}=(0,i.useWaitForTransactionReceipt)({hash:I}
1),M=k&&C?.id!==l.shape.id,[F,R]=(0,n.useState)([]),[P,O]=(0,n.useState)(!1),[$,B]=(0,n.useState)("0"),[q,U]=(0,n.useState)(null),[D,_]=(0,n.useState)({skullsMinted:null,lettersMinted:null});async function H(){if(!u.config.alchemyKey)return null;let e=`https://shape-mainnet.g.alchemy.com/nft/v3/${u.config.alchemyKey}/getNFTsForContract?contractAddress=${p}&withMetadata=false`;try{let n=await fetch(e,{method:"GET"});if(!n.ok)return null;let r=await n.json();var t=r?.contract?.totalSupply??r?.nfts?.[0]?.contract?.totalSupply??null;try{if("bigint"==typeof t)return t;if("number"==typeof t&&Number.isFinite(t))return BigInt(t);if("string"==typeof t&&""!==t.trim())return BigInt(t.trim());return null}catch{return null}}catch{return null}}async function K(){if(b)try{let e=await b.readContract({address:g,abi:x,functionName:"nextTokenId",args:[]}),t=e>f?e-f:h,n=null;try{n=await b.readContract({address:p,abi:y,functionName:"totalSupply",args:[]})}catch{n=await H()}_({skullsMinted:t,lettersMinted:n})}catch{}}async function G(e){if(!b||0===e.length)return;R(e=>e.map(e=>({...e,loading:!0})));let t=await Promise.all(e.slice(0,80).map(async e=>{try{let[t,n]=await Promise.all([b.readContract({address:g,abi:x,functionName:"usedLetterToken",args:[e.letterTokenId]}),b.readContract({address:g,abi:x,functionName:"skullOfLetter",args:[e.letterTokenId]})]);if(!(t||n!==h)||n===h)return{...e,usedLetter:t,skullTokenId:n,skullOwner:null,skullNonce:h,skullSvg:void 0,loading:!1};let[r,a]=await Promise.all([b.readContract({address:g,abi:x,functionName:"ownerOf",args:[n]}),b.readContract({address:g,abi:x,functionName:"nonceOf",args:[n]})]),s=await b.readContract({address:g,abi:x,functionName:"previewSvg",args:[e.letterTokenId,a]});return{...e,usedLetter:t,skullTokenId:n,skullOwner:r,skullNonce:a,skullSvg:s,loading:!1}}catch{return{...e,loading:!1}}}));R(e=>[...t,...e.slice(t.length)])}async function W(){if(j){O(!0),U(null);try{let e=await fetch("/api/get-nfts",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({address:j})}),t=await e.json();if(!e.ok){let e="object"==typeof t&&null!==t&&"error"in t?String(t.error??"Failed to fetch letters"):"Failed to fetch letters";throw Error(e)}let n=("object"==typeof t&&null!==t&&"letters"in t?t.letters??[]:[]).map(e=>({letterTokenId:BigInt(e.tokenId),letterName:e.name??null,letterImageUrl:e.imageUrl??null})).sort((e,t)=>e.letterTokenId<t.letterTokenId?-1:1).map(e=>({letterTokenId:e.letterTokenId,letterName:e.letterName,letterImageUrl:e.letterImageUrl,usedLetter:!1,skullTokenId:h,skullNonce:h,skullSvg:void 0,skullOwner:null,loading:!0}));R(n),G(n)}catch(e){U(function(e){if(e instanceof Error)return e.message;try{return JSON.stringify(e)}catch{return String(e)}}(e)??"Failed to load Letters"),R([])}finally{O(!1)}}}function z(e){U(null);let t=""===$.trim()?"0":$.trim();T({address:g,abi:x,functionName:"mint",args:[e],value:"0"===t?h:(0,o.parseEther)(t)})}(0,n.useEffect)(()=>{K()},[]),(0,n.useEffect)(()=>{k&&j?W():R([])},[k,j]),(0,n.useEffect)(()=>{L&&(U("✅ Mint confirmed"),G(F),K())},[L]);let Y=F.length>0,J=(0,n.useMemo)(()=>F.filter(e=>!e.loading&&!e.usedLetter&&e.skullTokenId===h).length,[F]);return(0,t.jsxs)("div",{className:"space-y-8 pb-[220px]",children:[(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("h1",{className:"text-4xl font-bold tracking-tight sm:text-6xl",children:["LetterSkull"," ",(0,t.jsxs)("span",{className:"text-lg font-medium text-muted-foreground sm:text-2xl",children:["minted Skulls:"," ",(0,t.jsx)("span",{className:"text-foreground",children:D.skullsMinted?.toString()??"—"})," ","• Letters:"," ",(0,t.jsx)("span",{className:"text-foreground",children:D.lettersMinted?.toString()??"—"})]})]}),(0,t.jsxs)("p",{className:"text-muted-foreground max-w-2xl text-lg",children:["A SKULL FOR YOU — a fully on-chain generative art project by"," ",(0,t.jsx)("a",{href:"https://x.com/0xfilter8",target:"_blank",rel:"noreferrer",className:"underline underline-offset-4 hover:text-foreground transition-colors",children:"filter8"}),"."]})]}),(0,t.jsxs)("div",{className:"text-muted-foreground max-w-2xl space-y-3 text-base leading-relaxed",children:[(0,t.jsx)("p",{children:"Every Skull is born from a Letter."}),(0,t.jsx)("p",{children:"The contract binds them 1:1 - a Skull can only exist if you hold its corresponding Letter token. The Letter’s tokenId becomes the seed. The seed shapes the form. The form becomes the Skull."}),(0,t.jsx)("p",{children:"No metadata servers. No IPFS dependencies. The SVG, the palette, the composition - everything is generated and stored fully on-chain. Immutable. Deterministic. Eternal."}),(0,t.jsx)(m.default,{href:"/skulls",className:"text-sm text-muted-foreground underline underline-offset-4 hover:text-foreground transition-colors",children:"View Skull Gallery →"})]})]}
1),k?M?(0,t.jsx)(d.Card,{children:(0,t.jsxs)(d.CardHeader,{children:[(0,t.jsx)(d.CardTitle,{children:"Wrong network"}),(0,t.jsx)(d.CardDescription,{children:"Please switch to Shape Mainnet to mint."})]})}):(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,t.jsx)(c.Button,{onClick:()=>{W(),K()},variant:"secondary",disabled:P,children:P?"Loading…":"Refresh"}),(0,t.jsxs)("div",{className:"text-muted-foreground text-sm",children:["Letters: ",(0,t.jsx)("b",{children:F.length})," • Mintable: ",(0,t.jsx)("b",{children:J})]}),(S||E)&&(0,t.jsxs)("div",{className:"text-sm",children:["Minting… ",E?"confirming":"sign tx"]}),(q||A)&&(0,t.jsx)("div",{className:"text-sm",children:q||(0,t.jsx)("span",{className:"text-red-500",children:(N=(e=A.message).toLowerCase()).includes("letteralreadyused")?"This Letter has already minted a Skull.":N.includes("needletter")?"You don’t own that Letter tokenId in this wallet.":N.includes("mintclosed")?"Mint is currently closed.":N.includes("sealedforever")?"Mint is sealed forever.":e})})]}),Y?(0,t.jsx)("div",{className:F.length<=1?"space-y-4":"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:F.map(e=>{let n=e.usedLetter||e.skullTokenId!==h,r=!n||!e.skullOwner||!j||e.skullOwner.toLowerCase()===j.toLowerCase(),a=n||S||E||e.loading;return F.length<=1?(0,t.jsx)(d.Card,{className:"overflow-hidden",children:(0,t.jsxs)("div",{className:"grid gap-6 p-6 lg:grid-cols-[1fr_1fr]",children:[(0,t.jsx)("div",{className:"flex items-center justify-center",children:(0,t.jsx)("div",{className:"w-full max-w-[520px]",children:e.letterImageUrl?(0,t.jsx)("img",{src:e.letterImageUrl,alt:e.letterName??"Letter",className:"mx-auto w-full border"}):(0,t.jsx)("div",{className:"text-muted-foreground text-sm",children:"Loading letter image…"})})}),(0,t.jsxs)("div",{className:"flex flex-col justify-center space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsx)("div",{className:"text-xl font-semibold",children:e.letterName?e.letterName:`Letter #${w(e.letterTokenId)}`}),n?(0,t.jsx)("span",{className:"text-xs text-green-500",children:"Skull minted"}):(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:"Mintable"})]}),n&&(0,t.jsx)("div",{className:"text-muted-foreground text-sm",children:e.skullTokenId!==h?(0,t.jsxs)(t.Fragment,{children:["Skull #",e.skullTokenId.toString(),e.skullOwner?(0,t.jsxs)(t.Fragment,{children:[" ","• owner:"," ",(0,t.jsx)("span",{className:r?"text-green-500":"text-yellow-500",children:r?"you":v(e.skullOwner)})]}):null]}):(0,t.jsx)(t.Fragment,{children:"Already minted • syncing skull id…"})})]}),n&&e.skullTokenId!==h&&(0,t.jsx)("div",{className:"bg-muted p-4 flex justify-center",children:e.skullSvg?(0,t.jsx)("div",{className:" aspect-square w-full max-w-[520px] [&>svg]:w-full [&>svg]:h-full ",style:{imageRendering:"pixelated"},dangerouslySetInnerHTML:{__html:e.skullSvg}}):(0,t.jsx)("div",{className:"text-muted-foreground text-sm",children:"Rendering skull…"})}),(0,t.jsx)(c.Button,{className:"w-full",disabled:a,onClick:()=>z(e.letterTokenId),children:n?"Already minted":e.loading?"Loading…":"Mint Skull"})]})]})},e.letterTokenId.toString()):(0,t.jsxs)(d.Card,{className:"overflow-hidden",children:[(0,t.jsxs)(d.CardHeader,{className:"pb-3",children:[(0,t.jsxs)(d.CardTitle,{className:"flex items-center justify-between text-base",children:[(0,t.jsx)("span",{children:e.letterName?e.letterName:`Letter #${w(e.letterTokenId)}`}),n?(0,t.jsx)("span",{className:"text-xs text-green-500",children:"Skull minted"}):(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:"Mintable"})]}),n&&(0,t.jsx)(d.CardDescription,{className:"text-xs",children:e.skullTokenId!==h?(0,t.jsxs)(t.Fragment,{children:["Skull #",e.skullTokenId.toString(),e.skullOwner?(0,t.jsxs)(t.Fragment,{children:[" ","• owner:"," ",(0,t.jsx)("span",{className:r?"text-green-500":"text-yellow-500",children:r?"you":v(e.skullOwner)})]}):null]}):(0,t.jsx)(t.Fragment,{children:"Already minted • syncing skull id… (Refresh)"})})]}),(0,t.jsxs)(d.CardContent,{className:"space-y-3",children:[(0,t.jsx)("div",{className:"bg-muted p-3",children:e.letterImageUrl?(0,t.jsx)("img",{src:e.letterImageUrl,alt:e.letterName??"Letter",className:"mx-auto h-auto w-full max-w-[260px]"}):(0,t.jsx)("div",{className:"text-muted-foreground text-sm",children:"Loading letter image…"})}),n&&e.skullTokenId!==h&&(0,t.jsx)("div",{className:"bg-muted p-3 flex justify-center",children:e.skullSvg?(0,t.jsx)("div",{className:" aspect-square w-full max-w-[220px] [&>svg]:w-full [&>svg]:h-full ",style:{imageRendering:"pixelated"},dangerouslySetInnerHTML:{__html:e.skullSvg}}):(0,t.jsx)("div",{className:"text-muted-foreground text-sm",children:"Rendering skull…"})}),(0,t.jsx)(c.Button,{className:"w-full",disabled:a,onClick:()=>z(e.letterTokenId),children:n?"Already minted":e.loading?"Loading…":"Mint Skull"})]})]},e.letterTokenId.toString())})}):(0,t.jsxs)(d.Card,{className:"border-2",children:[(0,t.jsxs)(d.CardHeader,{children:[(0,t.jsx)(d.
1CardTitle,{className:"text-2xl",children:"No Letter found"}),(0,t.jsx)(d.CardDescription,{className:"text-base",children:"You need a Letter to mint a Skull."})]}),(0,t.jsx)(d.CardContent,{children:(0,t.jsx)("a",{href:"https://letters.shape.network/",target:"_blank",rel:"noreferrer",className:"block w-full border bg-muted px-6 py-10 text-center text-2xl font-bold tracking-tight hover:bg-muted/70",children:"A LETTER FOR YOU"})})]})]}):(0,t.jsx)(d.Card,{children:(0,t.jsxs)(d.CardHeader,{children:[(0,t.jsx)(d.CardTitle,{children:"Connect your wallet"}),(0,t.jsx)(d.CardDescription,{children:"Use the top-right button."})]})}),(0,t.jsx)("div",{className:"sticky bottom-0 z-50 border-t bg-background/90 backdrop-blur",children:(0,t.jsxs)("div",{className:"mx-auto flex max-w-5xl flex-col gap-2 px-4 py-4 sm:flex-row sm:items-center sm:justify-between",children:[(0,t.jsxs)("div",{className:"space-y-0.5",children:[(0,t.jsx)("div",{className:"font-semibold",children:"Donation (optional)"}),(0,t.jsx)("div",{className:"text-muted-foreground text-sm",children:"Sent to donation wallet when you mint."})]}),(0,t.jsxs)("div",{className:"flex w-full items-center gap-2 sm:w-[360px]",children:[(0,t.jsx)("input",{className:"border-input bg-background h-10 w-full border px-3 text-sm",value:$,onChange:e=>B(e.target.value),inputMode:"decimal",placeholder:"0"}),(0,t.jsx)("div",{className:"text-muted-foreground text-sm",children:"ETH"})]})]})})]})}e.s(["default",()=>N])},89892,e=>{e.v(e=>Promise.resolve().then(()=>e(37575)))}]);

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.