{"version":3,"sources":["providerOptions.js","util/interact.js","HelloWorld.js","0xlogo.svg","example.js","App.js","reportWebVitals.js","index.js"],"names":["providerOptions","walletlink","package","CoinbaseWalletSDK","options","appName","infuraId","process","INFURA_KEY","require","config","price","web3","createAlchemyWeb3","contractABI","helloWorldContract","eth","Contract","window","Web3Modal","default","WalletConnectProvider","Fortmatic","evmChains","BigNumber","web3Modal","cacheProvider","newMessage","HelloWorld","useState","status","setStatus","newMessage_","setNewMessage","pricemessage","setPrice","setProvider","setLibrary","account","setAccount","useEffect","a","cachedProvider","connectWallet","addEventListener","onUpdatePressed","length","substring","test","toLowerCase","methods","registryIsPossible","call","searchName","registeredaddress","cost","addNameToRegistry","send","from","value","err","res","console","log","onChangeFunc","e","len","target","substr","temp","connect","provider","library","ethers","providers","Web3Provider","listAccounts","accounts","getNetwork","disconnect","clearCachedProvider","id","src","logo","width","height","className","onClick","String","type","placeholder","onChange","onKeyPress","key","App","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","StrictMode","xmlns","fill","class","viewBox","d","document","getElementById"],"mappings":"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","file":"static/js/main.107e7de6.chunk.js","sourcesContent":["import WalletConnect from \"@walletconnect/web3-provider\";\nimport CoinbaseWalletSDK from \"@coinbase/wallet-sdk\";\nimport walletlink from 'walletlink';\nconst rpcUrl = `https://eth-ropsten.alchemyapi.io/v2/gAQOlZdHS3eIpGULYGNg2jRhyxwmA-DS`;\n\nexport const providerOptions = {\n walletlink: {\n package: CoinbaseWalletSDK, // Required\n options: {\n appName: \"Web 3 Modal Demo\", // Required\n infuraId: process.env.INFURA_KEY // Required unless you provide a JSON RPC url; see `rpc` below\n }\n },\n // mewconnect: {\n // package: () => import('@myetherwallet/mewconnect-web-client'),\n // packageFactory: true,\n // options: {\n // rpc: rpcUrl,\n // description: ''\n // }\n // },\n // walletlink: {\n // package: walletlink,\n // // packageFactory: true,\n // options: {\n // appName: 'Web 3 Modal Demo',\n // jsonRpcUrl: rpcUrl,\n // }\n // },\n\n // walletconnect: {\n // package: WalletConnect, // required\n // options: {\n // infuraId: process.env.INFURA_KEY // required\n // }\n // }\n};","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 disconnectWallet = async () => {\n\n}\n\n\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","import React from \"react\";\nimport { useEffect, useState } from \"react\";\n// import { ConnectWallet } from \"@3rdweb/react\";\n// import { useWeb3 } from \"@3rdweb/hooks\";\nimport Web3Modal from \"web3modal\";\nimport { ethers } from \"ethers\";\nimport { providerOptions } from \"./providerOptions\";\nimport {\n helloWorldContract,\n connectWallet,\n updateMessage,\n loadCurrentMessage,\n getCurrentWalletConnected,\n disconnectWallet,\n} from \"./util/interact.js\";\n\nimport {\n init,\n onConnect,\n onDisconnect,\n refreshAccountData,\n fetchAccountData,\n} from \"./example.js\"\n\nimport metamask from \"./metamask.png\";\nimport coinbase from \"./coinbase.png\"\nimport logo from \"./0xlogo.svg\";\nconst BigNumber = require('bignumber.js')\n\nconst web3Modal = new Web3Modal({\n cacheProvider: true, // optional\n providerOptions // required\n});\n\n\nlet newMessage = \"\";\nlet price;\n// const { address, chainId, provider } = useWeb3();\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 [pricemessage, setPrice] = useState(\"\");\n const [provider, setProvider] = useState(\"\");\n const [library, setLibrary] = useState(\"\");\n const [account, setAccount] = useState(\"\");\n \n //called only once\n useEffect(async () => {\n // const message = await loadCurrentMessage();\n // setMessage(message);\n// init();\n // addSmartContractListener();\n\n // const {address, status} = await getCurrentWalletConnected();\n // setWallet(address);\n // setStatus(status);\n\n // addWalletListener();\n\n if (web3Modal.cachedProvider) {\n connectWallet();\n }\n }, []);\n\n window.addEventListener('load', async () => {\n // alert(\"example\")\n \n // document.querySelector(\"#btn-connect\").addEventListener(\"click\", onConnect);\n // document.querySelector(\"#btn-disconnect\").addEventListener(\"click\", onDisconnect);\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 connectWalletPressed = async () => { //TODO: implement\n // const walletResponse = await onConnect();\n // // setStatus(walletResponse.status);\n // setWallet(walletResponse);\n // alert(walletAddress)\n // };\n\n function containsSpecialChars(str) {\n const specialChars = /[`!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?~]/;\n return specialChars.test(str);\n }\n\n const onUpdatePressed = async () => { //TODO: implement\n setStatus(\"\")\n if(newMessage.length == 0){\n setStatus(\"Domain name cannot be empty!\")\n return;\n }\n if(newMessage.length >=3 )\n if(newMessage.substring(newMessage.length - 3) === \".0x\" ||newMessage.substring(newMessage.length - 3) === \".0X\")\n newMessage = newMessage.substring(0,newMessage.length - 3)\n if(containsSpecialChars(newMessage))\n {\n setStatus(\"Incorrect format!\")\n return\n }\n newMessage += '.0x'\n newMessage = newMessage.toLowerCase()\n setNewMessage(newMessage)\n setPrice('Price: '+price+' eth')\n \n\n const ispsble = await helloWorldContract.methods.registryIsPossible(newMessage).call();\n if(!ispsble){\n const registeredaddress = await helloWorldContract.methods.searchName(newMessage).call();\n setStatus(\"Unavailable: registered by \"+registeredaddress);\n return;\n }\n\n \n if(account == \"\"){\n setStatus(\"Connect to wallet using the top right button!\") \n return;\n }\n\n let cost = new BigNumber(1e+18)\n cost *= price;\n // alert(cost)\n await helloWorldContract.methods\n .addNameToRegistry(newMessage)\n .send({ from: account, 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};\nconst onChangeFunc = async (e) =>\n {\n setNewMessage(\"\");\n setStatus(\"\")\n setPrice(\"\")\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 price = temp;\n\n newMessage = e.target.value;\n // newMessage +='.0x'\n // const ispsble = await helloWorldContract.methods.registryIsPossible(newMessage).call();\n // if(!ispsble){\n // const registeredaddress = await helloWorldContract.methods.searchName(newMessage).call();\n // setStatus(\"Unavailable: registered by \"+registeredaddress);\n // return;\n // }\n }\n\n\n\n\n\n const connectWallet = async () => {\n // try {\n const provider = await web3Modal.connect();\n const library = new ethers.providers.Web3Provider(provider);\n const accounts = await library.listAccounts();\n const network = await library.getNetwork();\n setProvider(provider);\n setLibrary(library);\n if (accounts){\n setAccount(accounts[0]);\n }\n // alert(accounts)\n // setChainId(network.chainId);\n // } \n // catch (error) {\n // setError(error);\n // }\n };\n const refreshState = () => {\n setAccount(\"\");\n // setChainId();\n // setNetwork(\"\");\n // setMessage(\"\");\n // setSignature(\"\");\n // setVerified(undefined);\n };\n\n const disconnect = async () => {\n await web3Modal.clearCachedProvider();\n refreshState();\n };\n\n //the UI of our component\n return (\n
{message}
*/}\n\n \n{status}
\n