let msgMagicHashDigest,v_btc,r_btc,s_btc,sig,messageHash,btcPublicKey,ordAddress,provider,chainId,ethAddress,characterCount=0,word="";const enableQG=window.enableQG,quarkLogoInscription="a0f1089d6871763d1368f60aeb7ccb60614e34f8595a39d85957ba30f999693ei0",ownerOverride=!1,initGate=async()=>{if(document.body.style="overflow: hidden;margin: 0 !important;padding: 0 !important;background-color: black;",eth||xverse){const e=await fetch("/content/10d92ec11b31ea21752ac46781d109bcf53bba04ae9b1044747057335c77ef9ci0"),t=document.createElement("script");t.innerHTML=await e.text(),document.body.appendChild(t);const n=await fetch("/content/d445cf76e59778e09e1cdaecd39bf741df91a32b83dea991efbbeb05d2258067i0"),r=document.createElement("script");r.innerHTML=await n.text(),document.body.appendChild(r);const o=await fetch("/content/49f52053c42a613dbf37b34d41d2c6684eb63ae22856549c6cab983c0f28e0adi0"),s=document.createElement("script");s.innerHTML=await o.text(),document.body.appendChild(s),window.enableApp&&setTimeout((()=>{setup()}),2e3)}},xverse=window.XverseProviders,tsk=(new Date).toJSON().slice(0,16),quantumMsg=`Mining Quark20 on ${tsk}`,setup=async()=>{let e;window.selfInscriptions=[];const t=async()=>{document.getElementById("info0").innerHTML='<span style="color: white">Checking Quark20 on Ethereum via MetaMask...</span>';const e=await eth.request({method:"eth_requestAccounts"}).catch((e=>{document.getElementById("info0").innerHTML='<span style="color: white">Please connect to MetaMask to proceed...</span>',4001===e.code||(document.getElementById("btnEth").style.display="")}));ethAddress=e[0],document.getElementById("info0").innerHTML="Verifying Quark20 on Ethereum via MetaMask...",document.getElementById("btnEth").style.display="none",provider=new ethers.BrowserProvider(window.ethereum);const t=(await provider.getNetwork()).chainId;chainId=Number(t)},n=document.createElement("div");n.setAttribute("id","ordOsDiv0"),n.style="color: white; position: absolute;width: 100% !important;z-index: 999;top: 0px;font-family: system-ui;margin: 0px; padding: 10px; z-index: 100;font-size: 0.9em;line-height: 150%;",document.body.appendChild(n);const r=document.createElement("div");if(r.setAttribute("id","info0"),r.style.marginLeft="10px",r.style.marginBottom="20px",r.style.fontSize=".9em",n.appendChild(r),characterCount=0,setInterval((function(){if(characterCount<word.length){const e=word[characterCount%word.length];document.getElementById("info0").innerHTML+=">"===e?"<br/>":e,characterCount++}}),30),xverse||eth?enableQG?(document.getElementById("info0").innerHTML="",word=`${window.introMsg}>>Connect a ${xverse&&eth?"BTC":"ETH"} wallet to continue...>`):(document.getElementById("info0").innerHTML="",word=`${window.introMsg}`):(document.getElementById("info0").innerHTML="",word=">Xverse and MetaMask wallet required to continue>>"),xverse){const e=document.createElement("button");e.setAttribute("id","btnXverse"),e.style.padding="7px",e.style.color="#cccccc",e.style.cursor="pointer",e.style.fontSize=".9em",e.style.border="1px solid white",e.style.backgroundColor="transparent",e.style.marginLeft="10px",e.style.display="none",e.onclick=()=>(async()=>{document.getElementById("btnXverse").disable=!0,document.getElementById("btnXverse").style.display="none",document.getElementById("btnEth").style.display="none",document.getElementById("info0").innerHTML="<p>Connecting to Bitcoin via Xverse...</p>";const e=await xverse.BitcoinProvider.request("getAccounts",{purposes:["payment","ordinals"],message:"Digital Elements Fusion Node"},xverse.BitcoinProvider);if(e.error&&(document.getElementById("btnXverse").style.display="",document.getElementById("info0").innerHTML="<p>Connect a BTC wallet to continue...</p>"),e.result){const t=e.result.find((e=>"ordinals"===e.purpose)),n=e.result.find((e=>"payment"===e.purpose));btcAddress=n?.address,ordAddress=t?.address,btcPublicKey=n?.publicKey,window.sid=Number(window.selfSat).toString(16).toUpperCase();const r=`${window.sid} ${quantumMsg} with BTC address ${btcAddress}`;if(document.getElementById("info0").innerHTML=`<span style="color: #999999">BTC Address: ${btcAddress}<br/><br/><span style="color: white">Sign a human-readable BTC message to verify:<br/>"${r}"</span></span>`,document.getElementById("btnXverse").style.display="none",enableQG){const e=await(async e=>{try{const t=await xverse.BitcoinProvider.request("signMessage",{address:btcAddress,message:e},xverse.BitcoinProvider);if(t.result)return t.result}catch(e){return document.getElementById("info0").innerHTML='<p style="color: red">invalid signing attempt on BTC...</p>',setTimeout((()=>{location.reload()}),5e3),null}})(r);e&&e.address===btcAddress?ordAddress===window.ownerAddress?(document.getElementById("info0").innerHTML=`<span style="color: #999999">My BTC address: ${btcAddress}<br/>My Ordinals address: ${ordAddress}<br/>Landlord address (the owner of ${window.assetName}): ${window.ownerAddress}</span><p>${window.ethMsg}<br/><br/>Connect an ETH wallet to continue...</p>`,document.getElementById("btnEth").style.display="",messageHash=e.messageHash,msgMagicHashDigest=ethers.hexlify(ethers.decodeBase64(e.messageHash)),sig=ethers.decodeBase64(e.signature),v_btc=Number(ethers.dataSlice(sig,0,1))-27&!1?27:28,r_btc=ethers.zeroPadValue(ethers.dataSlice(sig,1,33),32),s_btc=ethers.zeroPadValue(ethers.dataSlice(sig,33,65),32)):(document.getElementById("info0").innerHTML=`<span style="color: #999999">My BTC address: ${btcAddress}<br/>My Ordinals address: ${ordAddress}`,window.ownerAddress?(document.getElementById("info0").innerHTML+=`<br/>Landlord address (the owner of ${window.assetName}): ${window.ownerAddress}</span><p>`,eth?(document.getElementById("btnEth").style.display="",document.getElementById("info0").innerHTML+="You do not own this land. However, you can still mint some Quark20!</p>"):(window.tipRecipient=window.ownerAddress,document.getElementById("info0").innerHTML+="Quark20 is not available yet. How about tipping the landlord?</p>",document.getElementById("btnXverseTip").style.display="")):eth?(document.getElementById("btnEth").style.display="",document.getElementById("info0").innerHTML="</span><p>You do not own this land. However, you can still mint some Quark20!</p>"):(window.tipRecipient=window.tipCreator,document.getElementById("btnXverseTip").style.display="",document.getElementById("info0").innerHTML+="</span><p>Quark20 is not available yet...<br/><br/>Would you tip the creator?</p>")):(document.getElementById("info0").innerHTML='<p style="color: red">invalid BTC signature</p>',setTimeout((()=>{location.reload()}),5e3)),await(async()=>{let e=0,t=60;for(;t>=e;){const n=await xverse.BitcoinProvider.request("ord_getInscriptions",{offset:e,limit:60});if(e+=60,n.result&&n.result.inscriptions.length>0){const e=n.result;t=e.total,window.selfInscriptions=window.selfInscriptions.concat(e.inscriptions)}}})()}else window.ownerAddress?(window.tipRecipient=window.ownerAddress,document.getElementById("info0").innerHTML=`<span style="color: #999999">My BTC address: ${btcAddress}<br/>My Ordinals address: ${ordAddress}<br/>Landlord address (the owner of ${window.assetName}): ${window.ownerAddress}</span><p>The metaverse is under construction. How about tipping the landlord?</p>`):(window.tipRecipient=window.tipCreator,document.getElementById("btnXverseTip").style.display="",document.getElementById("info0").innerHTML=`<span style="color: #999999">My BTC address: ${btcAddress}<br/>My Ordinals address: ${ordAddress}</span><p>The metaverse is under construction. Would you tip the creator?</p>`),document.getElementById("btnXverseTip").style.display=""}})(),e.innerHTML="Connect Xverse",n.appendChild(e),setTimeout((()=>{e.style.display=""}),Math.floor(33*word.length))}if(xverse){const e=document.createElement("button");e.setAttribute("id","btnXverseTip"),e.style.padding="7px",e.style.color="#cccccc",e.style.cursor="pointer",e.style.fontSize=".9em",e.style.border="1px solid white",e.style.backgroundColor="transparent",e.style.marginLeft="10px",e.style.display="none",e.onclick=()=>(async()=>{document.getElementById("btnXverseTip").disabled=!0,"success"===(await xverse.BitcoinProvider.request("sendTransfer",{recipients:[{address:window.tipRecipient,amount:Number(window.tipSatAmount)}]})).status||setTimeout((()=>{location.reload()}),5e3)})(),e.innerHTML=`Tip ${window.tipSatAmount} sats`,n.appendChild(e)}if(eth){const r=document.createElement("button");r.setAttribute("id","btnEth"),r.style.padding="7px",r.style.color="#cccccc",r.style.cursor="pointer",r.style.fontSize=".9em",r.style.border="1px solid white",r.style.backgroundColor="transparent",r.style.marginLeft="10px",r.style.display="none",r.onclick=async()=>{xverse&&eth&&ordAddress===window.ownerAddress?(async()=>{if(await t(),chainId!==targetChainId)document.getElementById("btnEth").style.display="",await switchEthNetwork();else{const t=await provider.getSigner();if(e=t,ethers.formatEther(await provider.getBalance(e))<.001)return void(document.getElementById("info0").innerHTML=`<span style="color: red">Not enough balance to proceed via ${window.targetChainName}</span>`);const n=new ethers.Contract(ethContractAddress,ethContracAbi,e),r=await n.balanceOf(e.address),o=Point.fromHex(`${btcPublicKey}`),s=ethers.computeAddress(`0x${o.toHex(!1)}`);let a,i,d,c;try{a=ethers.formatEther(await n.maxBtcSupply()),i=Number(await n.currentEpoch()),d=ethers.formatEther(await n.rewardsBtcSig(i)),c=ethers.formatEther(await n.totalBtcSupply())}catch(e){document.getElementById("info0").innerHTML='<span style="color: red">This chain is not supported yet.</span>',setTimeout((()=>{location.reload()}),1e4)}if(2*d+c<=a){const e=await n.getRemainTimeLocked(s);if(Number(e)>86400){let e;if(document.getElementById("info0").innerHTML=`<span style="color: #999999">ETH Address: ${ethAddress}<br/><br/><span style="color: white">Minting Quark20 tokens...</span></span>`,r_btc&&s_btc){let t;try{const e=await n.recoverEthAddressFromVRS(msgMagicHashDigest,27,r_btc,s_btc),r=await n.recoverEthAddressFromVRS(msgMagicHashDigest,28,r_btc,s_btc);s===e?(v_btc=27,t=e):s===r&&(v_btc=28,t=r)}catch(e){document.getElementById("info0").innerHTML='<p style="color: red">oops</p>',document.getElementById("btnXverse").style.display="none",setTimeout((()=>{location.reload()}),2e3)}if(v_btc&&t===s)try{e=await n.claim(`${window.sid} ${quantumMsg} with BTC address ${btcAddress}`,s,msgMagicHashDigest,v_btc,r_btc,s_btc)}catch(e){document.getElementById("info0").innerHTML='<p style="color: red">invalid claiming attempt...</p>',document.getElementById("btnXverse").style.display="none"}else document.getElementById("info0").innerHTML='<p style="color: red">oops</p>',document.getElementById("btnXverse").style.display="none",setTimeout((()=>{location.reload()}),2e3)}e&&e.hash&&(document.getElementById("info0").innerHTML=`<span style="color: #999999">Verifying signed messages...<br/>Minting Quark20 tokens using BTC and ETH's elliptic curve SECP256K1 via ${targetChainName}...<br/>Just a moment...<br/>And, Good Luck!</span>`,await e.wait(),document.getElementById("info0").innerHTML=`<span style="color: #999999">TX: ${e.hash} via ${targetChainName}<br/><br/><b style="color: white">You successfully mined Quark20 ($Q) from BTC with ${targetChainName}!</b></span>`,setTimeout((()=>{document.getElementById("btnAddQuark").style.display=""}),3e3))}else{let t=0;document.getElementById("info0").innerHTML="",word=window.quark20Msg,characterCount=0;const n=40;setInterval((function(){if(characterCount<word.length){const e=word[characterCount%word.length];document.getElementById("info0").innerHTML+=">"===e?"<br/>":e,characterCount++}}),n),setTimeout((()=>{setTimeout((()=>{document.getElementById("btnAddQuark").style.display=""}),3e3),setInterval((()=>{document.getElementById("info0").innerHTML=`<span style="color: white">You currently own ${ethers.formatEther(r)} $Q.<br/> Please wait ${86400-Number(e)-t} seconds for the next Quark20 claim. Be patient...</span>`,t++}),1e3)}),Math.floor(word.length*n))}}else document.getElementById("info0").innerHTML=`<span style="color: white">${window.quark20Msg}<br/>You currently own <b>${ethers.formatEther(r)}</b> $Q.</span>`,setTimeout((()=>{document.getElementById("btnAddQuark").style.display=""}),3e3)}})():(async()=>{if(await t(),chainId!==targetChainId)await switchEthNetwork();else{const t=await provider.getSigner();if(e=t,ethers.formatEther(await provider.getBalance(e))<.001)return void(document.getElementById("info0").innerHTML=`<span style="color: red">Not enough balance to proceed via ${window.targetChainName}</span>`);const n=`${Number(window.targetChainId).toString(16).toUpperCase()} ${quantumMsg} with ETH address ${e.address}`;document.getElementById("info0").innerHTML=`<span style="color: #999999">ETH Address: ${ethAddress}<br/><br/><span style="color: white">Sign a human-readable ETH message to verify:<br/>"${n}"</span></span>`;const r=await(async(e,t)=>{try{const n=e,r=t;return await eth.request({method:"personal_sign",params:[r,n]})}catch(e){return document.getElementById("info0").innerHTML='<p style="color: red">invalid signing attempt on ETH...</p>',setTimeout((()=>{location.reload()}),5e3),null}})(e.address,n),o=ethers.verifyMessage(n,r),s=new ethers.Contract(ethContractAddress,ethContracAbi,e),a=await s.balanceOf(e.address);if(o.toLowerCase()===ethAddress.toLowerCase()){let t,o,i,d;try{t=ethers.formatEther(await s.maxEthSupply()),o=Number(await s.currentEpoch()),i=ethers.formatEther(await s.rewardsEthSig(o)),d=ethers.formatEther(await s.totalEthSupply())}catch(e){document.getElementById("info0").innerHTML='<span style="color: red">This chain is not supported yet.</span>',setTimeout((()=>{location.reload()}),5e3)}if(2*i+d<=t){const t=await s.getRemainTimeLocked(e.address);if(Number(t)>86400){let e;document.getElementById("info0").innerHTML=`<span style="color: #999999">ETH Address: ${ethAddress}<br/><br/><span style="color: white">Minting Quark20 tokens...</span></span>`;try{e=await s.mint(n,r)}catch(e){document.getElementById("info0").innerHTML='<p style="color: red">invalid minting attempt...</p>'}e&&e.hash&&(document.getElementById("info0").innerHTML=`<span style="color: #999999">Verifying signed messages...<br/>Minting Quark20 tokens using ETH's elliptic curve SECP256K1 via ${targetChainName}...<br/>Just a moment...<br/>And, Good Luck!</span>`,await e.wait(),document.getElementById("info0").innerHTML=`<span style="color: #999999">TX: ${e.hash} via ${targetChainName}<br/><br/><b style="color: white">You successfully mined Quark20 ($Q) from BTC with ${targetChainName}!</b></span>`,setTimeout((()=>{document.getElementById("btnAddQuark").style.display=""}),3e3))}else{let e=0;document.getElementById("info0").innerHTML="",word=window.quark20Msg,characterCount=0;const n=40;setInterval((function(){if(characterCount<word.length){const e=word[characterCount%word.length];document.getElementById("info0").innerHTML+=">"===e?"<br/>":e,characterCount++}}),n),setTimeout((()=>{setTimeout((()=>{document.getElementById("btnAddQuark").style.display=""}),3e3),setInterval((()=>{document.getElementById("info0").innerHTML=`<span style="color: white">You currently own ${ethers.formatEther(a)} $Q.<br/> Please wait ${86400-Number(t)-e} seconds for the next Quark20 mint. Be patient...</span>`,e++}),1e3)}),Math.floor(word.length*n))}}}}})()},r.innerHTML="Connect Metamask",n.appendChild(r),enableQG&&(xverse&&eth||setTimeout((()=>{r.style.display=""}),Math.floor(33*word.length)))}if(eth){const e=document.createElement("button");e.setAttribute("id","btnAddQuark"),e.style.padding="7px",e.style.color="#cccccc",e.style.cursor="pointer",e.style.fontSize=".9em",e.style.border="1px solid white",e.style.backgroundColor="transparent",e.style.marginLeft="10px",e.style.display="none",e.onclick=async()=>{addQuark20ToMM()},e.innerHTML="Add Quark20 ($Q) to MetaMask",n.appendChild(e)}},eth=window.ethereum,switchEthNetwork=async()=>{if(document.getElementById("btnEth").style.display="none",targetChainId>1)try{await eth.request({method:"wallet_addEthereumChain",params:[{chainId:`0x${targetChainId.toString(16)}`,rpcUrls:[targetChainRPC],chainName:targetChainName,nativeCurrency:{name:targetChainCurrencyName,symbol:targetChainCurrencySymbol,decimals:18},blockExplorerUrls:[targetChainExplorer]}]}),setTimeout((()=>{location.reload()}),2e3)}catch(e){setTimeout((()=>{location.reload()}),2e3)}await window.ethereum.request({method:"wallet_switchEthereumChain",params:[{chainId:`0x${targetChainId.toString(16)}`}]}),setTimeout((()=>{location.reload()}),2e3)},addQuark20ToMM=async()=>{await window.ethereum.request({method:"wallet_switchEthereumChain",params:[{chainId:`0x${targetChainId.toString(16)}`}]});const e=window.ethContractAddress,t=`https://ordinals.com/content/${quarkLogoInscription}`;if(e)try{await ethereum.request({method:"wallet_watchAsset",params:{type:"ERC20",options:{address:e,symbol:"T",decimals:18,image:t}}})}catch(e){setTimeout((()=>{location.reload()}),1e4)}};