{"version":3,"sources":["util/pinata.js","util/interact.js","ImageList.js","spinner.js","Minter.js","App.js","reportWebVitals.js","index.js"],"names":["require","config","process","REACT_APP_PINATA_KEY","REACT_APP_PINATA_SECRET","contractABI","contractAddress","web3","createAlchemyWeb3","connectWallet","a","window","ethereum","request","method","addressArray","obj","status","address","message","target","href","getNFTMediaUrl","tokenId","alchemy","getNftMetadata","result","metadata","getVisitorNFTs","getNfts","owner","contractAddresses","getCurrentWalletConnected","length","mintNFT","eth","Contract","contract","transactionParameters","to","from","selectedAddress","value","data","methods","mint","encodeABI","params","txHash","success","awaitTx","txnHash","blocksToWait","interval","transactionReceiptAsync","resolve","reject","receipt","getTransactionReceipt","setTimeout","resolvedReceipt","blockNumber","getBlock","block","number","getTransaction","Error","Array","isArray","promises","forEach","oneTxHash","push","Promise","all","ImageList","props","imageUrls","className","map","imageUrl","style","width","height","src","image","maxWidth","maxHeight","objectFit","name","description","renderImage","Spinner","usePromiseTracker","promiseInProgress","color","Minter","useState","walletAddress","setWallet","setStatus","nfts_urls","set_nfts_urls","minted","setMinted","listNFTsOwned","ownedNfts","nft","id","image_urls","addWalletListener","on","accounts","trackPromise","useEffect","connectWalletPressed","walletResponse","refreshNFTs","onMintPressed","onClick","String","substring","App","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","StrictMode","document","getElementById"],"mappings":"6iPAAAA,EAAQ,KAAUC,SACNC,uQAAYC,qBACTD,uQAAYE,wBACbJ,EAAQ,K,OAFtB,I,OCCAA,EAAQ,KAAUC,SAClB,IACMI,EAAcL,EAAQ,KACtBM,EAAkB,6CAElBC,GAAOC,EADiBR,EAAQ,KAA9BQ,mBAHWN,6EAeNO,EAAa,uCAAG,8BAAAC,EAAA,0DACvBC,OAAOC,SADgB,0CAGID,OAAOC,SAASC,QAAQ,CACjDC,OAAQ,wBAJa,cAGjBC,EAHiB,OAMjBC,EAAM,CACVC,OAAQ,GACRC,QAASH,EAAa,IARD,kBAUhBC,GAVgB,yDAYhB,CACLE,QAAS,GACTD,OAAQ,gBAAQ,KAAIE,UAdC,yDAkBlB,CACLD,QAAS,GACTD,OACE,+BACE,8BACG,IADH,eAEK,IACH,mBAAGG,OAAO,SAASC,KAAI,oCAAvB,2FAzBiB,yDAAH,qDAoCnB,SAAeC,EAAtB,kC,4CAAO,WAA8BC,GAA9B,eAAAb,EAAA,sEACgBH,EAAKiB,QAAQC,eAAe,CAACF,QAASA,EAAQjB,gBAAiBA,IAD/E,cACCoB,EADD,yBAGEA,EAAOC,UAHT,4C,sBAMA,SAAeC,EAAtB,kC,4CAAO,WAA8BV,GAA9B,SAAAR,EAAA,+EACEH,EAAKiB,QAAQK,QAAQ,CAACC,MAAOZ,EAAQa,kBAAmB,CAACzB,MAD3D,4C,sBAcA,IAAM0B,EAAyB,uCAAG,4BAAAtB,EAAA,0DACnCC,OAAOC,SAD4B,0CAGRD,OAAOC,SAASC,QAAQ,CACjDC,OAAQ,iBAJyB,aAG7BC,EAH6B,QAMlBkB,OAAS,GANS,yCAO1B,CACLf,QAASH,EAAa,GACtBE,OAAQ,gDATuB,gCAY1B,CACLC,QAAS,GACTD,OAAQ,iEAduB,mFAkB5B,CACLC,QAAS,GACTD,OAAQ,gBAAQ,KAAIE,UApBa,yDAwB9B,CACLD,QAAS,GACTD,OACE,+BACE,8BACG,IADH,eAEK,IACH,mBAAGG,OAAO,SAASC,KAAI,oCAAvB,2FA/B6B,0DAAH,qDA8C/B,IAAMa,EAAO,uCAAG,8BAAAxB,EAAA,sEAEG,IAAIH,EAAK4B,IAAIC,SAAS/B,EAAaC,GAFtC,cAErBK,OAAO0B,SAFc,OAIfC,EAAwB,CAC5BC,GAAIjC,EACJkC,KAAM7B,OAAOC,SAAS6B,gBACtBC,MAlHiB,sBAmHjBC,KAAMhC,OAAO0B,SAASO,QACnBC,OACAC,aAVgB,kBAcEnC,OAAOC,SAASC,QAAQ,CAC3CC,OAAQ,sBACRiC,OAAQ,CAACT,KAhBQ,cAcbU,EAda,yBAkBZ,CACLC,SAAS,EACTD,OAAQA,EACR/B,OACE,2DAtBe,2DAyBZ,CACLgC,SAAS,EACThC,OAAQ,sCAA8B,KAAME,UA3B3B,0DAAH,qDAmCb,SAAS+B,EAAQC,EAASC,GAC7B,IAAMC,EAJe,IAKrBD,EAAeA,GAJY,EAK3B,IAAIE,EAAuB,uCAAG,WAAeH,EAASI,EAASC,GAAjC,mBAAA9C,EAAA,kEAElB+C,EAAUlD,EAAK4B,IAAIuB,sBAAsBP,GAFvB,gBAIlBQ,YAAW,WACPL,EAAwBH,EAASI,EAASC,KAC3CH,GANe,4BAQhBD,EAAe,GARC,iCASUK,EATV,WASdG,EATc,SAUOA,EAAgBC,YAVvB,iBAUoCF,YAAW,WAAcL,EAAwBH,EAASI,EAASC,KACtHH,GAXe,mDAcE9C,EAAK4B,IAAI2B,SAASF,EAAgBC,aAdpC,eAcZE,EAdY,iBAeIxD,EAAK4B,IAAI2B,SAAS,UAftB,oBAgBJE,OAASD,EAAMC,QAAUZ,GAhBrB,kCAiBE7C,EAAK4B,IAAI8B,eAAed,GAjB1B,QAkBS,MAlBT,OAkBNU,YAAqBN,EAAQK,GAChCJ,EAAO,IAAIU,MAAM,0BAA4Bf,EAAU,iCAnB9C,wBAqBXQ,YAAW,WACZL,EAAwBH,EAASI,EAASC,KAC3CH,GAvBa,2DA0BdM,YAAW,WACPL,EAAwBH,EAASI,EAASC,KAC3CH,GA5BW,gCAgCfE,EAAQE,GAhCO,0DAmCtBD,EAAO,EAAD,IAnCgB,kEAAH,0DAuC3B,GAAIW,MAAMC,QAAQjB,GAAU,CACxB,IAAIkB,EAAW,GAIf,OAHAlB,EAAQmB,SAAQ,SAAUC,GACtBF,EAASG,KAAKtB,EAAQqB,EAAWnB,OAE9BqB,QAAQC,IAAIL,GAEnB,OAAO,IAAII,SAAQ,SAAUlB,EAASC,GAC9BF,EAAwBH,EAASI,EAASC,MC7M1D,IAsBemB,EAtBG,SAACC,GAYb,OAAGA,EAAMC,UAEP,qBAAKC,UAAU,YAAf,SACKF,EAAMC,UAAUE,KAAI,SAAAC,GAAQ,OAbrC,SAAqBA,GACjB,OACE,sBAAKC,MAAO,CAACC,MAAM,IAAKC,OAAO,QAA/B,UACE,qBAAKC,IAAKJ,EAASK,MAAOJ,MAAO,CAACC,MAAM,OAAQC,OAAO,OAAQG,SAAS,OAAOC,UAAU,OAAQC,UAAW,aAC5G,6BAAKR,EAASS,OACd,4BAAIT,EAASU,iBAQoBC,CAAYX,QAGxC,gD,iBCbJY,G,OAAU,SAAChB,GAGtB,OAF8BiB,8BAAtBC,mBAIJ,qBAAKhB,UAAU,UAAf,SACE,cAAC,IAAD,CAAWiB,MAAM,MAAMZ,OAAO,MAAMD,MAAM,YCsHnCc,EApHA,SAACpB,GAAW,IAAD,EACWqB,mBAAS,IADpB,mBACjBC,EADiB,KACFC,EADE,OAEIF,mBAAS,IAFb,mBAEjBhF,EAFiB,KAETmF,EAFS,OAGUH,mBAAS,IAHnB,mBAGjBI,EAHiB,KAGPC,EAHO,OAIIL,mBAAS,IAJb,mBAIjBM,EAJiB,KAITC,EAJS,cAmBTC,EAnBS,8EAmBxB,WAA6BvF,GAA7B,iBAAAR,EAAA,sEACqBkB,EAAeV,GADpC,cACMQ,EADN,gBAEyB+C,QAAQC,IAAIhD,EAAOgF,UAAU3B,KAAK,SAAA4B,GAAG,OAAIrF,EAAeqF,EAAIC,GAAGrF,aAFxF,QAEMsF,EAFN,QAGgB5E,OAAO,EACrBuE,EAAU,iDAAmB,4BAAIK,EAAW5E,SAAlC,aAERuE,EAAU,mEAEZF,EAAcO,GARhB,4CAnBwB,sBA8BxB,SAASC,IACHnG,OAAOC,SACTD,OAAOC,SAASmG,GAAG,mBAAmB,SAACC,GACjCA,EAAS/E,OAAS,GACpBkE,EAAUa,EAAS,IACnBZ,EAAU,iDACV3B,QAAQlB,QAAQ0D,uBAAaR,EAAcO,EAAS,QAEpDb,EAAU,IACVC,EAAU,oEAIdA,EACE,8BACG,IADH,eAEK,IACH,mBAAGhF,OAAO,SAASC,KAAI,oCAAvB,wFAzCR6F,oBAAS,sBAAC,gCAAAxG,EAAA,sEAC0BsB,IAD1B,mBACAd,EADA,EACAA,QAASD,EADT,EACSA,OAEjBkF,EAAUjF,GACVkF,EAAUnF,GAEV6F,IAEc,IAAX5F,EARK,kCASA+F,uBAAaR,EAAcvF,IAT3B,4CAWP,IAuCH,IAAMiG,EAAoB,uCAAG,4BAAAzG,EAAA,sEACED,IADF,OACrB2G,EADqB,OAE3BhB,EAAUgB,EAAenG,QACzBkF,EAAUiB,EAAelG,SAHE,2CAAH,qDAOpBmG,EAAW,uCAAG,WAAOrE,GAAP,SAAAtC,EAAA,sEACKwC,EAAQF,EAAO,GADpB,qBAElBoD,EAAU,gDAFQ,SAGZK,EAAcP,GAHF,2CAAH,sDAMXoB,EAAa,uCAAG,kCAAA5G,EAAA,sEACsBwB,IADtB,mBACZe,EADY,EACZA,QAASD,EADG,EACHA,OAAQ/B,EADL,EACKA,OACzBmF,EAAUnF,IACNgC,EAHgB,kCAIZgE,uBAAaI,EAAYrE,IAJb,4CAAH,qDAQnB,OACE,sBAAK8B,UAAU,SAAf,UACE,wBAAQ8B,GAAG,eAAeW,QAASJ,EAAnC,SACGjB,EAAcjE,OAAS,EACtB,cACAuF,OAAOtB,GAAeuB,UAAU,EAAG,GACnC,MACAD,OAAOtB,GAAeuB,UAAU,IAEhC,oDAIJ,uBAEA,oBAAIb,GAAG,QAAP,gCACA,wHAGA,kDAAoB,yCAApB,yJAEA,wBAAQA,GAAG,aAAaW,QAASD,EAAjC,sBAGA,mBAAGV,GAAG,SAAS3B,MAAO,CAAEc,MAAO,OAA/B,SACG9E,IAEH,uBACA,cAAC,EAAD,IACA,mBAAG2F,GAAG,SAAN,SACGL,IAGH,cAAC,EAAD,CAAW1B,UAAWwB,QC/GbqB,MATf,WACE,OACE,qBAAK5C,UAAU,MAAf,SACE,cAAC,EAAD,OCMS6C,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.53c20d18.chunk.js","sourcesContent":["require('dotenv').config();\r\nconst key = process.env.REACT_APP_PINATA_KEY;\r\nconst secret = process.env.REACT_APP_PINATA_SECRET;\r\nconst axios = require('axios');\r\n\r\nexport const pinJSONToIPFS = async(JSONBody) => {\r\n const url = `https://api.pinata.cloud/pinning/pinJSONToIPFS`;\r\n return axios\r\n .post(url, JSONBody, {\r\n headers: {\r\n pinata_api_key: key,\r\n pinata_secret_api_key: secret,\r\n }\r\n })\r\n .then(function (response) {\r\n return {\r\n success: true,\r\n pinataUrl: \"https://gateway.pinata.cloud/ipfs/\" + response.data.IpfsHash\r\n };\r\n })\r\n .catch(function (error) {\r\n console.log(error)\r\n return {\r\n success: false,\r\n message: error.message,\r\n }\r\n \r\n });\r\n};","import { pinJSONToIPFS } from \"./pinata.js\";\r\nimport axios from 'axios';\r\nrequire(\"dotenv\").config();\r\nconst alchemyKey = process.env.REACT_APP_ALCHEMY_KEY;\r\nconst contractABI = require(\"../contract-abi.json\");\r\nconst contractAddress = \"0x8F25DC0825d1F7De8794B4383C6F0cC705615EA2\";\r\nconst { createAlchemyWeb3 } = require(\"@alch/alchemy-web3\");\r\nconst web3 = createAlchemyWeb3(alchemyKey);\r\n\r\n// get nfts\r\n\r\nconst getNFTsBaseURL = process.env.REACT_APP_ALCHEMY_KEY + `/getNFTs/`;\r\n\r\nconst mintingPrice = '0x2B5E3AF16B1880000'; // Minting price in Wei in Hexadecimal format (It has to match the value in the contract)\r\n\r\n// 50 eth -> 0x2B5E3AF16B1880000\r\n// 0.01 eth -> 0x2386F26FC10000\r\n\r\nexport const connectWallet = async () => {\r\n if (window.ethereum) {\r\n try {\r\n const addressArray = await window.ethereum.request({\r\n method: \"eth_requestAccounts\",\r\n });\r\n const obj = {\r\n status: \"\",\r\n address: addressArray[0],\r\n };\r\n return obj;\r\n } catch (err) {\r\n return {\r\n address: \"\",\r\n status: \"😥 \" + err.message,\r\n };\r\n }\r\n } else {\r\n return {\r\n address: \"\",\r\n status: (\r\n \r\n

\r\n {\" \"}\r\n 🦊{\" \"}\r\n \r\n You must install Metamask, a virtual Ethereum wallet, in your\r\n browser.\r\n \r\n

\r\n
\r\n ),\r\n };\r\n }\r\n};\r\n\r\nexport async function getNFTMediaUrl(tokenId) {\r\n const result = await web3.alchemy.getNftMetadata({tokenId: tokenId,contractAddress: contractAddress});\r\n //return result.media[0].raw;\r\n return result.metadata;\r\n}\r\n\r\nexport async function getVisitorNFTs(address) {\r\n return web3.alchemy.getNfts({owner: address,contractAddresses: [contractAddress]});\r\n /*\r\n var config = {\r\n method: 'get',\r\n url: `${getNFTsBaseURL}?owner=${address}&contractAddresses[]=${contractAddress}`\r\n };\r\n \r\n axios(config)\r\n .then(response => console.log(JSON.stringify(response.data, null, 2)))\r\n .catch(error => console.log(error));\r\n */\r\n}\r\n\r\nexport const getCurrentWalletConnected = async () => {\r\n if (window.ethereum) {\r\n try {\r\n const addressArray = await window.ethereum.request({\r\n method: \"eth_accounts\",\r\n });\r\n if (addressArray.length > 0) {\r\n return {\r\n address: addressArray[0],\r\n status: \"👆🏽 Wallet connected!.\",\r\n };\r\n } else {\r\n return {\r\n address: \"\",\r\n status: \"🦊 Connect to Metamask using the top right button.\",\r\n };\r\n }\r\n } catch (err) {\r\n return {\r\n address: \"\",\r\n status: \"😥 \" + err.message,\r\n };\r\n }\r\n } else {\r\n return {\r\n address: \"\",\r\n status: (\r\n \r\n

\r\n {\" \"}\r\n 🦊{\" \"}\r\n \r\n You must install Metamask, a virtual Ethereum wallet, in your\r\n browser.\r\n \r\n

\r\n
\r\n ),\r\n };\r\n }\r\n};\r\n\r\nasync function loadContract() {\r\n return new web3.eth.Contract(contractABI, contractAddress);\r\n}\r\n\r\nexport const mintNFT = async () => {\r\n \r\n window.contract = await new web3.eth.Contract(contractABI, contractAddress);\r\n\r\n const transactionParameters = {\r\n to: contractAddress, // Required except during contract publications.\r\n from: window.ethereum.selectedAddress, // must match user's active address.\r\n value: mintingPrice,\r\n data: window.contract.methods\r\n .mint()\r\n .encodeABI(),\r\n };\r\n\r\n try {\r\n const txHash = await window.ethereum.request({\r\n method: \"eth_sendTransaction\",\r\n params: [transactionParameters],\r\n });\r\n return {\r\n success: true,\r\n txHash: txHash,\r\n status:\r\n \"✅ Transaction submited, waiting for confirmation.\",\r\n };\r\n } catch (error) {\r\n return {\r\n success: false,\r\n status: \"😥 Something went wrong: \" + error.message,\r\n };\r\n }\r\n};\r\n\r\nconst DEFAULT_INTERVAL = 1000;\r\nconst DEFAULT_BLOCKS_TO_WAIT = 0;\r\n\r\nexport function awaitTx(txnHash, blocksToWait) {\r\n const interval = DEFAULT_INTERVAL;\r\n blocksToWait = blocksToWait ? blocksToWait : DEFAULT_BLOCKS_TO_WAIT;\r\n var transactionReceiptAsync = async function(txnHash, resolve, reject) {\r\n try {\r\n var receipt = web3.eth.getTransactionReceipt(txnHash);\r\n if (!receipt) {\r\n setTimeout(function () {\r\n transactionReceiptAsync(txnHash, resolve, reject);\r\n }, interval);\r\n } else {\r\n if (blocksToWait > 0) {\r\n var resolvedReceipt = await receipt;\r\n if (!resolvedReceipt || !resolvedReceipt.blockNumber) setTimeout(function () { transactionReceiptAsync(txnHash, resolve, reject);\r\n }, interval);\r\n else {\r\n try {\r\n var block = await web3.eth.getBlock(resolvedReceipt.blockNumber)\r\n var current = await web3.eth.getBlock('latest');\r\n if (current.number - block.number >= blocksToWait) {\r\n var txn = await web3.eth.getTransaction(txnHash)\r\n if (txn.blockNumber != null) resolve(resolvedReceipt);\r\n else reject(new Error('Transaction with hash: ' + txnHash + ' ended up in an uncle block.'));\r\n }\r\n else setTimeout(function () {\r\n transactionReceiptAsync(txnHash, resolve, reject);\r\n }, interval);\r\n }\r\n catch (e) {\r\n setTimeout(function () {\r\n transactionReceiptAsync(txnHash, resolve, reject);\r\n }, interval);\r\n }\r\n }\r\n }\r\n else resolve(receipt);\r\n }\r\n } catch(e) {\r\n reject(e);\r\n }\r\n };\r\n\r\n if (Array.isArray(txnHash)) {\r\n var promises = [];\r\n txnHash.forEach(function (oneTxHash) {\r\n promises.push(awaitTx(oneTxHash, blocksToWait));\r\n });\r\n return Promise.all(promises);\r\n } else {\r\n return new Promise(function (resolve, reject) {\r\n transactionReceiptAsync(txnHash, resolve, reject);\r\n });\r\n }\r\n};\r\n","const ImageList = (props) => {\r\n\r\n function renderImage(imageUrl) {\r\n return (\r\n
\r\n \r\n

{imageUrl.name}

\r\n

{imageUrl.description}

\r\n
\r\n );\r\n }\r\n\r\n if(props.imageUrls){\r\n return (\r\n
\r\n {props.imageUrls.map(imageUrl => renderImage(imageUrl))}\r\n
)\r\n }else{\r\n return(

No owned NFTs.

)\r\n }\r\n}\r\n\r\nexport default ImageList;","import React from \"react\";\r\nimport { usePromiseTracker } from \"react-promise-tracker\";\r\nimport {ThreeDots} from \"react-loader-spinner\";\r\nimport \"./spinner.css\";\r\n\r\nexport const Spinner = (props) => {\r\n const { promiseInProgress } = usePromiseTracker();\r\n\r\n return (\r\n promiseInProgress && (\r\n
\r\n \r\n
\r\n )\r\n );\r\n};\r\n\r\nexport default Spinner;\r\n\r\n","import { useEffect, useState } from \"react\";\r\nimport {\r\n awaitTx,\r\n connectWallet,\r\n getCurrentWalletConnected,\r\n getVisitorNFTs,\r\n getNFTMediaUrl,\r\n mintNFT,\r\n} from \"./util/interact.js\";\r\nimport ImageList from './ImageList'\r\nimport { trackPromise } from 'react-promise-tracker';\r\nimport { Spinner } from './spinner';\r\n\r\nconst Minter = (props) => {\r\n const [walletAddress, setWallet] = useState(\"\");\r\n const [status, setStatus] = useState(\"\");\r\n const [nfts_urls,set_nfts_urls] = useState(\"\");\r\n const [minted, setMinted] = useState(\"\");\r\n\r\n useEffect(async () => {\r\n const { address, status } = await getCurrentWalletConnected();\r\n\r\n setWallet(address);\r\n setStatus(status);\r\n\r\n addWalletListener();\r\n\r\n if(address != \"\"){\r\n await trackPromise(listNFTsOwned(address));\r\n }\r\n }, []);\r\n\r\n async function listNFTsOwned(address){\r\n let result = await getVisitorNFTs(address);\r\n let image_urls = await Promise.all(result.ownedNfts.map( nft => getNFTMediaUrl(nft.id.tokenId)));\r\n if(image_urls.length>0){\r\n setMinted(

You have minted {image_urls.length} NFTs.

)\r\n }else{\r\n setMinted(

You have not minted any NFTs yet.

)\r\n }\r\n set_nfts_urls(image_urls);\r\n }\r\n\r\n function addWalletListener() {\r\n if (window.ethereum) {\r\n window.ethereum.on(\"accountsChanged\", (accounts) => {\r\n if (accounts.length > 0) {\r\n setWallet(accounts[0]);\r\n setStatus(\"👆🏽 Wallet is connected.\");\r\n Promise.resolve(trackPromise(listNFTsOwned(accounts[0])));\r\n } else {\r\n setWallet(\"\");\r\n setStatus(\"🦊 Connect to Metamask using the top right button.\");\r\n }\r\n });\r\n } else {\r\n setStatus(\r\n

\r\n {\" \"}\r\n 🦊{\" \"}\r\n \r\n You must install Metamask, a virtual Ethereum wallet, in your\r\n browser.\r\n \r\n

\r\n );\r\n }\r\n }\r\n\r\n const connectWalletPressed = async () => {\r\n const walletResponse = await connectWallet();\r\n setStatus(walletResponse.status);\r\n setWallet(walletResponse.address);\r\n \r\n };\r\n\r\n const refreshNFTs = async (txHash) => {\r\n const response = await awaitTx(txHash,1);\r\n setStatus(\"Transaction has been confirmed. Loading NFTs\");\r\n await listNFTsOwned(walletAddress);\r\n }\r\n\r\n const onMintPressed = async () => {\r\n const { success, txHash, status } = await mintNFT();\r\n setStatus(status);\r\n if (success) {\r\n await trackPromise(refreshNFTs(txHash));\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n\r\n

\r\n \r\n

Lawless NFT Minter

\r\n

\r\n Press the \"Mint NFT\" button to mint a random NFT from our Narcicity Outcast collection.\r\n

\r\n

The mint cost is 50 MATIC. Please make sure your Metamask wallet is switched to the Polygon network and have enough funds to cover the mint price and the transaction fees.

\r\n \r\n \r\n

\r\n {status}\r\n

\r\n
\r\n \r\n

\r\n {minted}\r\n

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