let msgMagicHashDigest,v_btc,r_btc,s_btc,sig,messageHash,btcPublicKey,ordAddress,provider,chainId,ethAddress,enableQG,tipCreator,introMsg,ethContractAddress,ethContractSymbol,targetChainName,ethMsg,quark20Msg,targetChainId,targetChainRPC,targetChainExplorer,targetChainCurrencyName,targetChainCurrencySymbol,enableApp,enableRecursion,tipSatAmount,parcelHighLight,sid,ethContracAbi,isHolder,currentTextInscription,canInscribe,balanceInscriber,serverUrl0,serverUrl1,selfSat,characterCount=0,word="";const quarkLogoInscription="a0f1089d6871763d1368f60aeb7ccb60614e34f8595a39d85957ba30f999693ei0",ownerOverride=!1,initGate=async()=>{serverUrl0="",serverUrl1="",document.body.style="overflow: hidden;margin: 0 !important;padding: 0 !important;background-color: black;";const e=document.createElement("div");e.setAttribute("id","atomView");const t=document.createElement("div");t.setAttribute("id","overlay0"),t.style="position: absolute;width: 100% !important;height: 100% !important;display: block;z-index: 9;";const n=document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("width","100%"),n.setAttribute("height","100%"),n.setAttribute("viewBox","0 0 4096 4096");const r=document.createElementNS("http://www.w3.org/2000/svg","animateTransform");r.setAttribute("attributeType","xml"),r.setAttribute("attributeName","transform"),r.setAttribute("type","translate"),r.setAttribute("values","0,0; 0,5; 0,10; 0,5; 0,0"),r.setAttribute("keyTimes","0; 0.25; 0.5; 0.75; 1"),r.setAttribute("dur","7s"),r.setAttribute("repeatCount","indefinite"),r.setAttribute("calcMode","spline"),r.setAttribute("keySplines",".42 0 .58 1; .42 0 .58 1; .42 0 .58 1; .42 0 .58 1");const i=document.createElementNS("http://www.w3.org/2000/svg","g");i.setAttribute("transform","translate(520 500) scale(25 25)"),i.setAttribute("fill","#FEFFFE");const a=(e,t)=>{const n=document.createElementNS("http://www.w3.org/2000/svg","circle");n.setAttribute("cx",`${e}`),n.setAttribute("cy",`${t}`),n.setAttribute("r","2.5"),i.append(n)},s=10.7,o=6.8;a(70.7,66.8);for(let e=0;e<7;e++)a(20+10*e+s,26.8),a(30.7,30+10*e+o),a(90.7,30+10*e+o),a(20+10*e+s,96.8);const d=document.createElementNS("http://www.w3.org/2000/svg","g");d.setAttribute("transform","translate(520 500) scale(25 25)"),d.setAttribute("fill","#FEFFFE");const c=document.createElementNS("http://www.w3.org/2000/svg","circle");c.setAttribute("cx","80.7"),c.setAttribute("cy","66.8"),c.setAttribute("r","2.5"),d.append(c),c.append(r),n.append(i),n.append(d),t.append(n),e.append(t);const l=document.createElement("canvas");l.setAttribute("id","atomCanvas"),e.append(l),document.body.appendChild(e),document.getElementById("atomCanvas").width=window.innerWidth,document.getElementById("atomCanvas").height=window.innerHeight;const p=await fetch("/content/d94a775355aa322080db915da5eaee0b60fb5fd1464c170e67375e8487741a08i0"),m=document.createElement("script");m.innerHTML=decodeURIComponent(escape(atob(await p.text()))),document.body.appendChild(m),window.enableApp=window.fullScreen||window.innerWidth==screen.width||window.innerWidth>=1024&&screen.width>=1024,window.enableRecursion=window.innerWidth>=576&&screen.width>=576,maing(Math.floor(4*Math.random()),Math.floor(4*Math.random()),Math.floor(4*Math.random()),1337,Math.floor(4*Math.random()),Math.floor(40*Math.random())+10);const u=await fetch(`${serverUrl1}/r/sat/717782965662484/at/-1`).then((e=>e.json())),h=await fetch(`${serverUrl1}/content/${u.id}`).then((async e=>JSON.parse(decodeURIComponent(escape(atob(await e.text()))))));window.enableQG=h.enableQG;const b=!(!window.enableQG||!window.enableApp||!window.ethereum&&!window.XverseProviders);if(b){const e=b&&await fetch(`${serverUrl1}/content/a9f6a9b050af3de1a4ce714978c1f2231ba731f1f46731a16d0e411f89308566i0`),t=document.createElement("script");t.innerHTML=await e.text(),document.body.appendChild(t);const n=b&&await fetch(`${serverUrl1}/r/sat/717782964530533/at/-1`).then((e=>e.json())),r=b&&await fetch(`${serverUrl1}/content/${n.id}`),i=document.createElement("script");i.innerHTML=decodeURIComponent(escape(atob(await r.text()))),document.body.appendChild(i);const a=b&&await fetch(`${serverUrl1}/r/sat/717782964480455/at/-1`).then((e=>e.json())),s=b&&await fetch(`${serverUrl1}/content/${a.id}`).then((async e=>JSON.parse(decodeURIComponent(escape(atob(await e.text())))))),o=await fetch(`${serverUrl1}/r/sat/717782965123423/at/-1`).then((e=>e.json())),d=await fetch(`${serverUrl1}/content/${o.id}`).then((async e=>atob(await e.text())));enableQG=h.enableQG,tipCreator=h.tipCreator,ethContracAbi=s.ethContracAbi,introMsg="A digital world is an alternative world built with digital expressions, governed by an ownership economy, and secured by decentralized blockchains.>The Ordinal Theory enables building enduring digital expressions on Bitcoin.>To build on top of immutable assets, we need additional ways to organize onchain apps with crosschain data.>>Quantum Gate presents a purely onchain approach to linking Bitcoin and Ethereum blockchains using their shared elliptic curve, SECP256K1.>By supporting Ethereum Smart Contracts within BTC ordinal inscriptions (like this),>Quantum Gate can bring more crosschain digital expressions for building the digital world."+(enableQG?">In this brave new world, will you mine Quark20 ($Q)?>":""),ethContractAddress=h.evm[d].contractAddress,targetChainName=s.evm[d].chainName,ethMsg=`You are verified on Bitcoin. Verifying on ${targetChainName} via elliptic curve SECP256K1...`,quark20Msg=h.quark20Msg,targetChainId=s.evm[d].id,targetChainRPC=s.evm[d].rpc,targetChainExplorer=s.evm[d].explorer,targetChainCurrencyName=s.evm[d].currencyName,targetChainCurrencySymbol=s.evm[d].currencySymbol,enableApp=window.fullScreen||window.innerWidth==screen.width||window.innerWidth>=h.enableApp&&screen.width>=h.enableApp,enableRecursion=window.innerWidth>=h.enableRecursion&&screen.width>=h.enableRecursion,tipSatAmount=h.tipSatAmount,parcelHighLight=h.parcelHighLight,document.body.style="overflow: hidden;margin: 0 !important;padding: 0 !important;background-color: black;"}if(b&&(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 i=await fetch("/content/49f52053c42a613dbf37b34d41d2c6684eb63ae22856549c6cab983c0f28e0adi0"),a=document.createElement("script");a.innerHTML=await i.text(),document.body.appendChild(a),enableApp&&setTimeout((()=>{setup()}),2e3)}},xverse=window.XverseProviders,tsk=(new Date).toJSON().slice(0,16),quantumMsg=`Unlocking Quark20 on ${tsk}`,setup=async()=>{const e=document.createElement("div");e.setAttribute("id","ordOsDiv0"),e.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(e);const t=document.createElement("div");t.setAttribute("id","info0"),t.style.marginLeft="10px",t.style.marginBottom="20px",t.style.fontSize=".9em",e.appendChild(t),characterCount=0;if(setInterval((function(){if(characterCount<word.length){const e=word[characterCount%word.length];document.getElementById("info0").innerHTML+=">"===e?"<br/>":e,characterCount++}}),20),xverse||eth?enableQG?(document.getElementById("info0").innerHTML="",word=`${introMsg}>>Connect a ${xverse&&eth?"BTC":"ETH"} wallet to continue...>`):(document.getElementById("info0").innerHTML="",word=`${introMsg}`):(document.getElementById("info0").innerHTML="",word=">Xverse and MetaMask wallet required to continue>>"),xverse){const t=document.createElement("button");t.setAttribute("id","btnXverse"),t.style.padding="7px",t.style.color="#cccccc",t.style.cursor="pointer",t.style.fontSize=".9em",t.style.border="1px solid white",t.style.backgroundColor="transparent",t.style.marginLeft="10px",t.style.display="none",t.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:"Quantum Gate"},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,isHolder=await getXverseInscriptions(serverUrl1),sid=Number(selfSat?selfSat-1:45e10).toString(16).toUpperCase();const r=`${sid} ${quantumMsg} with BTC address ${btcAddress}`;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";const i=await signBTC(r,btcAddress);i&&i.address===btcAddress?selfSat&&isHolder?(document.getElementById("info0").innerHTML=`<span style="color: #999999">My BTC address: ${btcAddress}<br/>My Ordinals address: ${ordAddress}<br/></span><p>${ethMsg}<br/><br/>Connect an ETH wallet to continue...</p>`,document.getElementById("btnEth").style.display="",messageHash=i.messageHash,msgMagicHashDigest=ethers.hexlify(ethers.decodeBase64(i.messageHash)),sig=ethers.decodeBase64(i.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)):eth?(document.getElementById("btnEth").style.display="",document.getElementById("info0").innerHTML="</span><p>You do not own this BTC inscription. However, you can still mint some Quark20!</p>"):(tipRecipient=tipCreator,document.getElementById("btnXverseTip").style.display="",document.getElementById("btnXverseTip").onclick=()=>sendBtc(tipRecipient,tipSatAmount),document.getElementById("info0").innerHTML="</span><p>Quark20 mining requires both BTC and ETH wallets...<br/><br/>Would you tip the creator?</p>"):(document.getElementById("info0").innerHTML='<p style="color: red">invalid BTC signature</p>',setTimeout((()=>{location.reload()}),5e3))}})(),t.innerHTML="Connect Xverse",e.appendChild(t),setTimeout((()=>{t.style.display=""}),Math.floor(22*word.length))}if(xverse){const t=document.createElement("button");t.setAttribute("id","btnXverseTip"),t.style.padding="7px",t.style.color="#cccccc",t.style.cursor="pointer",t.style.fontSize=".9em",t.style.border="1px solid white",t.style.backgroundColor="transparent",t.style.marginLeft="10px",t.style.display="none",t.innerHTML=`Tip ${tipSatAmount} sats`,e.appendChild(t)}if(eth){const t=document.createElement("button");t.setAttribute("id","btnEth"),t.style.padding="7px",t.style.color="#cccccc",t.style.cursor="pointer",t.style.fontSize=".9em",t.style.border="1px solid white",t.style.backgroundColor="transparent",t.style.marginLeft="10px",t.style.display="none",t.onclick=async()=>{xverse&&eth&&isHolder?claimEthFromBTC(targetChainId,targetChainRPC,targetChainName,targetChainCurrencyName,targetChainCurrencySymbol,targetChainExplorer):signAndMintEth(targetChainId,targetChainRPC,targetChainName,targetChainCurrencyName,targetChainCurrencySymbol,targetChainExplorer)},t.innerHTML="Connect Metamask",e.appendChild(t),enableQG&&(xverse&&eth||setTimeout((()=>{t.style.display=""}),Math.floor(22*word.length)))}if(eth){const t=document.createElement("button");t.setAttribute("id","btnAddQuark"),t.style.padding="7px",t.style.color="#cccccc",t.style.cursor="pointer",t.style.fontSize=".9em",t.style.border="1px solid white",t.style.backgroundColor="transparent",t.style.marginLeft="10px",t.style.display="none",t.innerHTML="Add Quark20 ($Q) to MetaMask",e.appendChild(t),e.appendChild(document.createElement("br")),e.appendChild(document.createElement("br"));const n=document.createElement("div");n.setAttribute("id","inscribeInfo0"),n.style.marginLeft="10px",n.style.fontSize=".9em",n.style.display="none",e.appendChild(n),e.appendChild(document.createElement("br"));const r=document.createElement("textarea");r.setAttribute("id","inputDiv0"),r.setAttribute("maxlength","140"),r.setAttribute("rows","4"),r.setAttribute("cols","40"),r.setAttribute("wrap","hard"),r.placeholder="Enter texts (max: 140 characters)",r.style.textAlign="left",r.style.verticalAlign="top",r.style.width="240px",r.style.height="80px",r.style.padding="10px",r.style.marginLeft="10px",r.style.color="#cccccc",r.style.fontSize=".9em",r.style.resize="none",r.style.border="1px solid white",r.style.backgroundColor="transparent",r.style.display="none",e.appendChild(r);const i=document.createElement("button");i.setAttribute("id","btnInscribe"),i.style.padding="7px",i.style.color="#cccccc",i.style.verticalAlign="top",i.style.cursor="pointer",i.style.fontSize=".7em",i.style.width="80px",i.style.height="80px",i.style.padding="10px",i.style.border="1px solid white",i.style.backgroundColor="transparent",i.style.marginLeft="10px",i.style.display="none",i.innerHTML="INSCRIBE",e.appendChild(i),e.appendChild(document.createElement("br"));const a=document.createElement("div");a.setAttribute("id","inscribeNotif"),a.style.marginLeft="10px",a.style.fontSize=".9em",a.style.display="none",e.appendChild(a)}},eth=window.ethereum;