{"version":3,"sources":["util/interact.js","0xlogo.svg","HelloWorld.js","App.js","reportWebVitals.js","index.js"],"names":["require","config","web3","createAlchemyWeb3","contractABI","helloWorldContract","eth","Contract","loadCurrentMessage","a","methods","getBalance","call","balance","connectWallet","window","ethereum","request","method","addressArray","obj","status","address","message","getCurrentWalletConnected","length","BigNumber","newMessage","HelloWorld","useState","walletAddress","setWallet","setStatus","setMessage","newMessage_","setNewMessage","price","setPrice","addWalletListener","on","useEffect","connectWalletPressed","walletResponse","onUpdatePressed","withdrawMoney","substr","registryIsPossible","cost","addNameToRegistry","send","from","value","err","res","console","log","id","src","alchemylogo","onClick","String","substring","type","placeholder","onChange","e","temp","len","target","onkeypress","alert","App","className","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","StrictMode","document","getElementById"],"mappings":"qhEAAAA,EAAQ,KAAUC,SAClB,IAEMC,GAAOC,EADiBH,EAAQ,KAA9BG,mBADW,yEAGbC,EAAcJ,EAAQ,KAKfK,EAAqB,IAAIH,EAAKI,IAAIC,SAC3CH,EALoB,8CAWXI,EAAkB,uCAAG,4BAAAC,EAAA,sEACRJ,EAAmBK,QAAQC,aAAaC,OADhC,cACxBC,EADwB,yBAGvBA,GAHuB,2CAAH,qDAMlBC,EAAa,uCAAG,8BAAAL,EAAA,0DACrBM,OAAOC,SADc,0CAGQD,OAAOC,SAASC,QAAQ,CACjDC,OAAQ,wBAJS,cAGbC,EAHa,OAMbC,EAAM,CAEVC,OAAO,GACPC,QAASH,EAAa,IATL,kBAWZC,GAXY,yDAaZ,CACLE,QAAS,GACTD,OAAQ,gBAAQ,KAAIE,UAfH,yDAoBd,CACLD,QAAS,GACTD,OAAQ,4EAtBW,yDAAH,qDA4BbG,EAAyB,uCAAG,4BAAAf,EAAA,0DACjCM,OAAOC,SAD0B,0CAGJD,OAAOC,SAASC,QAAQ,CACjDC,OAAQ,iBAJqB,aAGzBC,EAHyB,QAMdM,OAAS,GANK,yCAOtB,CACLH,QAASH,EAAa,GAEtBE,OAAO,KAVoB,gCAatB,CACLC,QAAS,GAETD,OAAO,KAhBoB,mFAoBxB,CACLC,QAAS,GACTD,OAAQ,gBAAQ,KAAIE,UAtBS,yDA2B1B,CACLD,QAAS,GACTD,OAAQ,4EA7BuB,0DAAH,qDClDvB,MAA0B,mC,QCWnCK,EAAY1B,EAAQ,KAGtB2B,EAAa,GAuJFC,EApJI,WAAM,MAEYC,mBAAS,IAFrB,mBAEhBC,EAFgB,KAEDC,EAFC,OAGKF,mBAAS,IAHd,mBAGhBR,EAHgB,KAGRW,EAHQ,OAIOH,mBAAS,iCAJhB,mBAIPI,GAJO,aAKcJ,mBAAS,IALvB,mBAKhBK,EALgB,KAKHC,EALG,OAMGN,mBAAS,IANZ,mBAMhBO,EANgB,KAMTC,EANS,KAyBvB,SAASC,IACHvB,OAAOC,UACTD,OAAOC,SAASuB,GAAG,kBAAmBzB,GAlB1C0B,oBAAS,sBAAC,kCAAA/B,EAAA,sEACcD,IADd,cACFe,EADE,OAERU,EAAWV,GAFH,SAMwBC,IANxB,gBAMDF,EANC,EAMDA,QAASD,EANR,EAMQA,OAChBU,EAAUT,GACVU,EAAUX,GAEViB,IAVQ,4CAWP,IAWH,IAIMG,EAAoB,uCAAG,4BAAAhC,EAAA,sEACIK,IADJ,OACnB4B,EADmB,OAEzBV,EAAUU,EAAerB,QACzBU,EAAUW,EAAepB,SAHA,2CAAH,qDAMpBqB,EAAe,uCAAG,4BAAAlC,EAAA,sEAChBJ,EAAmBK,QAAQkC,gBAAgBhC,OAD3B,UAEtBoB,EAAU,IACc,GAArBL,EAAWF,OAHQ,uBAIpBO,EAAU,gCAJU,6BASnBL,EAAWF,QAAS,EAE6B,QAA7CE,EAAWkB,OAAOlB,EAAWF,OAAS,KAEvCE,GAAc,OAGhBA,GAAc,MAIlBQ,EAAcR,GAEM,IAAjBG,EAtBmB,wBAuBlBE,EAAU,gEAvBQ,4CA2BA3B,EAAmBK,QAAQoC,mBAAmBnB,GAAYf,OA3B1D,0CA6BpBoB,EAAU,sCA7BU,kCAgClBe,EAAO,IAAIrB,EAAU,MACzBqB,GAAQX,EAjCc,UAmCf/B,EAAmBK,QACvBsC,kBAAkBrB,GAClBsB,KAAK,CAAEC,KAAMpB,EAAeqB,MAAOJ,IAAQ,SAAUK,EAAKC,GACrDD,EACFE,QAAQC,IAAI,mBAAoBH,GAGlCE,QAAQC,IAAI,4BAA8BF,MA1CxB,4CAAH,qDAqErB,OACE,sBAAKG,GAAG,YAAR,UACE,qBAAKA,GAAG,OAAOC,IAAKC,IACpB,wBAAQF,GAAG,eAAeG,QAASlB,EAAnC,SACGX,EAAcL,OAAS,EACtB,cACAmC,OAAO9B,GAAe+B,UAAU,EAAG,GACnC,MACAD,OAAO9B,GAAe+B,UAAU,IAEhC,oDAQJ,sBAAKL,GAAK,YAAV,UACA,mCAAMtB,EAAN,OACA,0CAAaE,EAAb,UACE,uBACE0B,KAAK,OACLC,YAAY,6BACZC,SA3CR,SAAsBC,GACpB9B,EAAc,IACd,IAII+B,EAJAC,EAAMF,EAAEG,OAAOjB,MAAM1B,OACtBwC,EAAEG,OAAOjB,MAAM1B,QAAU,GAC6B,OAApDwC,EAAEG,OAAOjB,MAAMN,OAAOoB,EAAEG,OAAOjB,MAAM1B,OAAS,KAC/C0C,GAAO,IAGPD,EADDC,EAAM,EACE,EACC,GAAkB,GAAZA,EAAM,IAEd,KACRD,EAAO,IACT7B,EAAS6B,GAETvC,EAAasC,EAAEG,OAAOjB,OA8BhBkB,WAjDV,SAAoBJ,GAEhBK,MAAM,aAkDF,wBAAQd,GAAG,UAAUG,QAAShB,EAA9B,qBAGA,mBAAGa,GAAG,QAAN,SAAenC,W,OCpJRkD,MARf,WACE,OACE,qBAAKC,UAAU,MAAf,SACA,cAAC,EAAD,OCMWC,EAZS,SAAAC,GAClBA,GAAeA,aAAuBC,UACxC,8BAAqBC,MAAK,YAAkD,IAA/CC,EAA8C,EAA9CA,OAAQC,EAAsC,EAAtCA,OAAQC,EAA8B,EAA9BA,OAAQC,EAAsB,EAAtBA,OAAQC,EAAc,EAAdA,QAC3DJ,EAAOH,GACPI,EAAOJ,GACPK,EAAOL,GACPM,EAAON,GACPO,EAAQP,OCDdQ,IAASC,OACP,cAAC,IAAMC,WAAP,UACE,cAAC,EAAD,MAEFC,SAASC,eAAe,SAM1Bb,M","file":"static/js/main.56cf1e6e.chunk.js","sourcesContent":["require('dotenv').config();\nconst alchemyKey = 'https://eth-ropsten.alchemyapi.io/v2/gAQOlZdHS3eIpGULYGNg2jRhyxwmA-DS';//process.env.REACT_APP_ALCHEMY_KEY;\nconst { createAlchemyWeb3 } = require(\"@alch/alchemy-web3\");\nconst web3 = createAlchemyWeb3(alchemyKey);\nconst contractABI = require(\"../contract-abi.json\");\nconst contractAddress = \"0xdAe246C410723c361991c7eF94C259898AcBEAa1\";\n\n\n\nexport const helloWorldContract = new web3.eth.Contract(\n contractABI,\n contractAddress\n);\n\n//export const helloWorldContract;\n\nexport const loadCurrentMessage = async () => { \n const balance = await helloWorldContract.methods.getBalance().call();\n // console.log(balance);\n return balance;\n};\n\nexport const connectWallet = async () => {\n if (window.ethereum) {\n try {\n const addressArray = await window.ethereum.request({\n method: \"eth_requestAccounts\",\n });\n const obj = {\n // status: \"👆🏽 Write a domain in the text-field above.\",\n status:\"\",\n address: addressArray[0],\n };\n return obj;\n } catch (err) {\n return {\n address: \"\",\n status: \"😥 \" + err.message,\n };\n }\n }\n else {\n return {\n address: \"\",\n status: \" You must install Metamask, a virtual Ethereum wallet, in your browser.\" \n }; \n }\n \n};\n\nexport const getCurrentWalletConnected = async () => {\n if (window.ethereum) {\n try {\n const addressArray = await window.ethereum.request({\n method: \"eth_accounts\",\n });\n if (addressArray.length > 0) {\n return {\n address: addressArray[0],\n // status: \"👆🏽 Write a domain in the text-field above.\",\n status:\"\",\n };\n } else {\n return {\n address: \"\",\n // status: \"🦊 Connect to Metamask using the top right button.\",\n status:\"\",\n };\n }\n } catch (err) {\n return {\n address: \"\",\n status: \"😥 \" + err.message,\n };\n }\n } \n else {\n return {\n address: \"\",\n status: \" You must install Metamask, a virtual Ethereum wallet, in your browser.\" \n }; \n }\n};\n\nexport const updateMessage = async (address, message) => {\n \n};\n","export default __webpack_public_path__ + \"static/media/0xlogo.37da5934.svg\";","import React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport {\n helloWorldContract,\n connectWallet,\n updateMessage,\n loadCurrentMessage,\n getCurrentWalletConnected,\n} from \"./util/interact.js\";\n\nimport alchemylogo from \"./0xlogo.svg\";\nconst BigNumber = require('bignumber.js')\n\n\nlet newMessage = \"\";\nvar flag = false;\n\nconst HelloWorld = () => {\n //state variables\n const [walletAddress, setWallet] = useState(\"\");\n const [status, setStatus] = useState(\"\");\n const [message, setMessage] = useState(\"No connection to the network.\"); //default message\n const [newMessage_, setNewMessage] = useState(\"\");\n const [price, setPrice] = useState(\"\");\n\n //called only once\n useEffect(async () => {\n const message = await loadCurrentMessage();\n setMessage(message);\n\n addSmartContractListener();\n\n const {address, status} = await getCurrentWalletConnected();\n setWallet(address);\n setStatus(status);\n\n addWalletListener();\n }, []);\n\n function addSmartContractListener() { //TODO: implement\n }\n\n function addWalletListener() { //TODO: implement\n if (window.ethereum) {\n window.ethereum.on(\"accountsChanged\", connectWallet);\n }\n }\n\n const withdraw = async () => { \n await helloWorldContract.methods.withdrawMoney().call();\n };\n\n const connectWalletPressed = async () => { //TODO: implement\n const walletResponse = await connectWallet();\n setStatus(walletResponse.status);\n setWallet(walletResponse.address);\n };\n\n const onUpdatePressed = async () => { //TODO: implement\n await helloWorldContract.methods.withdrawMoney().call();\n setStatus(\"\")\n if(newMessage.length == 0){\n setStatus(\"Domain name cannot be empty!\")\n return;\n }\n \n\n if(newMessage.length >=3 )\n {\n if(newMessage.substr(newMessage.length - 3) !== \".0x\")\n // setNewMessage(newMessage + '.0x')\n newMessage += '.0x'\n }\n else \n newMessage += '.0x'\n // setNewMessage(newMessage + '.0x');\n\n // flag = true;\n setNewMessage(newMessage)\n\n if(walletAddress == \"\"){\n setStatus(\"🦊 Connect to Metamask using the top right button!\") \n return;\n }\n // alert(newMessage)\n const ispsble = await helloWorldContract.methods.registryIsPossible(newMessage).call();\n if(!ispsble){\n setStatus(\"This domain is already registered!\");\n return;\n }\n let cost = new BigNumber(1e+18)\n cost *= price;\n // alert(cost)\n await helloWorldContract.methods\n .addNameToRegistry(newMessage)\n .send({ from: walletAddress, value: cost }, function (err, res) {\n if (err) {\n console.log(\"An error occured\", err)\n return\n }\n console.log(\"Hash of the transaction: \" + res)\n })\n};\n\nfunction onKeyEvent(e){\n // if(e.keyCode == 13)\n alert(\"afasdf\")\n}\n function onChangeFunc(e){\n setNewMessage(\"\");\n let len = e.target.value.length;\n if(e.target.value.length >= 3 )\n if(e.target.value.substr(e.target.value.length - 3) == \".0x\")\n len -= 3;\n var temp;\n if(len > 4) \n temp = 1;\n else temp = 20 - (len - 1 ) * 5;\n \n if(temp > 20)\n temp = 20; \n setPrice(temp);\n\n newMessage = e.target.value;\n }\n\n //the UI of our component\n return (\n
\n \n \n\n {/*

Your One Time Purchase Customizable Web3 Username

*/}\n {/*

{message}

*/}\n\n \n
\n

{newMessage_}

\n

Price: {price} eth

\n \n \n

{status}

\n
\n
\n );\n};\n\nexport default HelloWorld;\n","import HelloWorld from './HelloWorld'\nimport './App.css';\n\nfunction App() {\n return (\n
\n \n
\n );\n}\n\nexport default App;\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}