let characterCount=0,word="";const xverse=window.XverseProviders,eth=window.ethereum,initGate=async()=>{const e=await fetch("/content/d94a775355aa322080db915da5eaee0b60fb5fd1464c170e67375e8487741a08i0"),t=document.createElement("script");t.innerHTML=decodeURIComponent(escape(atob(await e.text()))),document.body.appendChild(t),document.body.style="overflow: hidden;margin: 0 !important;padding: 0 !important;background-color: black;";const n=document.createElement("div");n.setAttribute("id","atomView");const o=document.createElement("div");o.setAttribute("id","overlay0"),o.style="position: absolute;width: 100% !important;height: 100% !important;display: block;z-index: 9;";const r=document.createElementNS("http://www.w3.org/2000/svg","svg");r.setAttribute("width","100%"),r.setAttribute("height","100%"),r.setAttribute("viewBox","0 0 4096 4096");const s=document.createElementNS("http://www.w3.org/2000/svg","g");s.setAttribute("transform","translate(-850 -850) scale(20 20)"),s.setAttribute("fill","#FEFFFE");const i=document.createElementNS("http://www.w3.org/2000/svg","path");i.setAttribute("stroke","none"),i.setAttribute("d","M192.125 191.344c.403 1.86 2.563 6.219-.6 7.106-2.775.175-5.124.218-6.573.223-2.798.01-5.565.105-8.358.208-1.813.067-4.15.075-5.489-1.38-.76-2.818-1.193-5.715-1.504-8.613-.702-6.549-1.159-13.113-1.911-19.66-1.535-13.369-3.15-26.755-4.318-40.162-.25-2.861-.432-5.753-1.171-8.541-1.449-.611-3.748-.622-5.274-.402-5.696.817-11.313 1.111-17.082.948-2.669-.076-11.718-1.146-12.571-.443-1.156.953-1.555 3.908-1.695 5.327a688 688 0 0 1-1.254 11.64c-.93 7.992-1.897 15.973-2.752 23.972a9918 9918 0 0 0-2.084 19.661c-.296 2.817-.605 5.619-.711 8.451-.09 2.388.094 6.005-1.546 7.969-1.202 1.44-3.391 1.108-5.035 1.032-2.962-.138-5.955.004-8.92-.012-1.934-.011-4.464.364-6.348-.287-2.361-.816-.902-4.615-.553-6.216 2.852-13.086 6.016-26.112 8.993-39.171a5122 5122 0 0 0 4.307-19.012c.712-3.179 3.993-15.648 2.436-16.625-4.616-2.895-11.059-2.148-15.477-5.338-1.55-1.119-1.473-2.299-1.195-4.027.209-1.303.613-2.479 1.125-3.679.872-2.042.896-1.917 2.208-3.896.694-.887.771-.667 1.333-.5.376.111 8.134 2.354 8.988 2.771.938.25 2.351.875 7.645 2.052 6.832 1.521 13.841 2.366 20.827 2.714 13.005.649 26.448-.359 38.967-4.091 2.749-.82 10.747-4.338 12.061-2.714 1.941 2.401 4.663 7.102 3.61 9.772-2.457 6.232-13.078 2.704-16.554 8.511-.013.021 2.353 11.912 1.606 8.558");const a=document.createElementNS("http://www.w3.org/2000/svg","path");a.setAttribute("stroke","none"),a.setAttribute("d","M160.475 133.575c.927 1.539 3.221 9.174-.207 8.84-2.449-.239-5.518-3.484-7.742-.965 1.82.702 3.772 1.475 5.152 2.911.879.914 2.722 5.031.247 5.264-2.126-1.758-4.716-3.749-7.274-1.5-1.907 3.83 4.422 4.5 6.734 5.388 4.117 1.579 6.508 4.02 7.366 8.363.78 3.951.694 8.017.81 12.023.145 5.078-2.397 1.615-4.76-.112-.942-.688-6.546-3.88-5.583-.77 1.02 3.295 2.243 6.571 2.714 10.006 1.117 8.145-5.655 15.234-14.106 13.477-1.07-1.221 3.505-3.699 4.325-4.739.69-.875 3.413-5.791 1.675-6.586-4.13 2.988-6.854 8.2-12.333 8.972-2.544.359-5.253.04-7.549-1.155-.946-.493-5.41-4.156-2.094-3.956 2.136.129 4.537.52 6.566-.378 3.194-1.411 1.099-2.618-1.206-2.932-4.431-.603-12.479-5.577-9.86-11.051 1.596-1.074 3.956-.273 5.679-.028.864.123 7.003-.602 4.785-2.482-1.808-1.534-4.259-1.517-6.054-3.292-2.188-2.164-3.396-4.914-3.423-7.96-.014-1.594.27-6.873 2.769-4.47 1.467 1.41 6.479 4.998 5.43.359-1.339-5.918-1.449-11.619.267-17.458 1.065-3.625 2.655-9.186 6.305-11.076 2.231-1.155 1.905.472 1.746 2.108-.397 2.318-.681 4.276-.531 6.705.047.77.57 5.293 1.806 4.968 1.824-.48 3.323-3.276 4.382-4.664 2.937-3.851 9.708-6.619 13.964-3.81 1.365 2.267-.223-.147 0 0");const d=document.createElementNS("http://www.w3.org/2000/svg","animateTransform");d.setAttribute("attributeType","xml"),d.setAttribute("attributeName","transform"),d.setAttribute("type","translate"),d.setAttribute("values","0,0; 0,-1; 0,0; 0,1; 0,0"),d.setAttribute("keyTimes","0; 0.25; 0.5; 0.75; 1"),d.setAttribute("dur","1s"),d.setAttribute("repeatCount","indefinite"),d.setAttribute("calcMode","spline"),d.setAttribute("keySplines",".42 0 .58 1; .42 0 .58 1; .42 0 .58 1; .42 0 .58 1"),s.append(i),s.append(a),a.append(d),r.append(s),o.append(r),n.append(o);const c=document.createElement("canvas");if(c.setAttribute("id","atomCanvas"),n.append(c),document.body.appendChild(n),document.getElementById("atomCanvas").width=window.innerWidth,document.getElementById("atomCanvas").height=window.innerHeight,maing(2,3,1,1337,5,100),eth&&xverse){const e=await fetch("/content/10d92ec11b31ea21752ac46781d109bcf53bba04ae9b1044747057335c77ef9ci0"),t=document.createElement("script");t.innerHTML=await e.text(),document.body.appendChild(t),(window.fullScreen||window.innerWidth==screen.width||window.innerWidth>=1024)&&setTimeout((()=>{setup(),document.getElementById("overlay0").style.display="none"}),1e4)}},setup=async()=>{let e,t="",n="",o="";const r="Forging a Mithril Key to unlock the Quantum Gate...";function s(e){for(var t="",n=0;n<e.length;n++)t+=e.charCodeAt(n).toString(16);return t}const i=async()=>{const t=await eth.request({method:"eth_requestAccounts"}).catch((e=>{4001===e.code?console.log("Please connect to MetaMask."):(document.getElementById("btnEth").style.display="",console.error(e))}));o=t[0],console.log("ethAddress",o),document.getElementById("info0").innerHTML="",document.getElementById("infoEth").innerHTML=`<p style="color: #999999">ETH Address: ${o}<br/><br/><span style="color: white">${r}</span></p>`,document.getElementById("btnEth").style.display="none";const n=new ethers.BrowserProvider(window.ethereum),i=(await n.getNetwork()).chainId,a=Number(i);console.log("chainId",a),0x9a3288fb0b9b8!==a&&(document.getElementById("btnEth").style.display="",await switchEthNetwork(),location.reload());const d=await n.getSigner();e=d;const c=await(async()=>{try{const e=o,t=s(r);return await eth.request({method:"personal_sign",params:[t,e]})}catch(e){return console.error(e),setTimeout((()=>{location.reload()}),5e3),null}})(),l=Signature.from(c),u=ethers.verifyMessage(s(r),c);console.log("Recovered Address:",u);const m=new ethers.Contract("0xFb0DE5241F6f387F887bA312316EeB85c579EEC4",["function recoverStringFromVRS(string message, uint8 v, bytes32 r, bytes32 s) pure returns (address)","function recoverEthAddressFromVRS(bytes32 digest, uint8 v, bytes32 r, bytes32 s) pure returns (address)","function mint(string message, uint8 v, bytes32 r, bytes32 s)","function claim(address computedEthAddress, bytes32 digest, uint8 v, bytes32 r, bytes32 s)"],e);console.log("recoverStringFromVRS",await m.recoverStringFromVRS(s(r),l.v,l.r,l.s));try{const e=await m.mint(s(r),l.v,l.r,l.s);e&&e.hash&&(console.log("tx hash",e.hash),document.getElementById("infoEth").innerHTML='<p style="color: #999999">Verifying signed messages...<br/>Minting Quark20 tokens using BTC and ETH\'s SECP256K1 ECDSA curves via Another World SAGA Chainlet...<br/>Just a moment...<br/>And, Good Luck!</p>',await e.wait(),document.getElementById("infoEth").innerHTML=`<p style="color: #999999">TX: ${e.hash} via Another World SAGA Chainlet<br/><br/><b style="color: white">You unlocked the Quantum Gate from BTC with Another World!</b></p>`,console.log("done"))}catch(e){document.getElementById("infoEth").innerHTML='<p style="color: red">invalid attempt</p>',document.getElementById("btnXverse").style.display="none",setTimeout((()=>{location.reload()}),5e3)}},a=async()=>{document.getElementById("btnXverse").style.display="none",document.getElementById("btnEth").style.display="none",document.getElementById("info0").innerHTML="<p>Connect to 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 wallet to continue...</p>"),e.result){const o=e.result.find((e=>"ordinals"===e.purpose)),s=e.result.find((e=>"payment"===e.purpose));t=s?.address,n=o?.address,btcPublicKey=s?.publicKey,console.log("btcPublicKey",btcPublicKey),console.log("btcAddress",t),console.log("ordAddress",n),document.getElementById("info0").innerHTML=`<p>BTC: ${t}<br/>BTC PubKey (compressed): ${btcPublicKey}<br/>Ord: ${n}</p>`,document.getElementById("btnXverse").style.display="none";const i=await(async()=>{try{const e=await xverse.BitcoinProvider.request("signMessage",{address:t,message:r},xverse.BitcoinProvider);if(e.result)return e.result}catch(e){return setTimeout((()=>{location.reload()}),5e3),console.error(e),null}})();console.log("btcSig",i),i.address===t&&(document.getElementById("info0").innerHTML=`<p>BTC: ${t}<br/>BTC PubKey (compressed): ${btcPublicKey}<br/>Ord: ${n}</p><br/><p>You forged the half of the Mithril key from BTC. Now forge the other half on ETH...</p>`,document.getElementById("btnEth").style.display="")}},d=document.createElement("div");d.setAttribute("id","ordOsDiv0"),d.style="color: white; position: absolute;width: 100% !important;z-index: 999;top: 0px;font-family: system-ui;margin: 0px; padding: 0px",document.getElementById("atomView").appendChild(d);const c=document.createElement("div");c.setAttribute("id","info0"),c.style.marginLeft="10px",c.style.marginBottom="20px",c.style.fontSize=".9em",d.appendChild(c);const l=document.createElement("div");if(l.setAttribute("id","infoEth"),l.style.marginLeft="10px",l.style.fontSize=".9em",d.appendChild(l),setInterval((function(){if(characterCount<word.length){const e=word[characterCount%word.length];document.getElementById("info0").innerHTML+=">"===e?"<br/>":e,characterCount++}}),40),xverse||eth?(document.getElementById("info0").innerHTML="",word=">Welcome to the Quantum Gate of Another World, a gate in-between BTC and ETH/EVM blockchains...>>Connect Xverse wallet to unlock...>"):(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=()=>a(),e.innerHTML="Connect Xverse",d.appendChild(e),setTimeout((()=>{e.style.display=""}),7e3)}if(eth){const e=document.createElement("button");e.setAttribute("id","btnEth"),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()=>{o||i()},e.innerHTML="Connect Metamask",d.appendChild(e)}},switchEthNetwork=async()=>{eth.request({method:"wallet_addEthereumChain",params:[{chainId:`0x${(0x9a3288fb0b9b8).toString(16)}`,rpcUrls:["https://anotherworld-2712669395139000-1.jsonrpc.sagarpc.io"],chainName:"Another World SAGA Chainlet",nativeCurrency:{name:"awgg",symbol:"awgg",decimals:18},blockExplorerUrls:["https://anotherworld-2712669395139000-1.sagaexplorer.io/"]}]})};