{"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":"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","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 You must install Metamask, a virtual Ethereum wallet, in your\r\n browser.\r\n \r\n
{imageUrl.description}
\r\nNo 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\nYou 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 Press the \"Mint NFT\" button to mint a random NFT from our Narcicity Outcast collection.\r\n
\r\nThe 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 {minted}\r\n
\r\n \r\n