{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/utility/AnimatedComponent.vue?bf56","webpack:///./src/components/common/ConnectWallet.vue?149d","webpack:///./src/components/utility/AnimatedComponent.vue","webpack:///./src/components/utility/AnimatedComponent.vue?dee5","webpack:///./src/components/common/Toast.vue","webpack:///./src/services/ethers.service.js","webpack:///./src/store/alert/actions.js","webpack:///./src/store/alert/mutations.js","webpack:///./src/store/alert/index.js","webpack:///./src/utility/auth-header.js","webpack:///./src/utility/cache-helper.js","webpack:///./src/utility/format.js","webpack:///./src/initialize-config/index.js","webpack:///./src/utility/validation-rules.js","webpack:///./src/services/mint.service.js","webpack:///./src/store/ethers/actions.js","webpack:///./src/store/ethers/mutations.js","webpack:///./src/store/ethers/index.js","webpack:///./src/store/index.js","webpack:///./src/components/icons/CloseIcon.vue","webpack:///./src/components/icons/CloseIcon.vue?2284","webpack:///./src/components/icons/ToastSpinnerIcon.vue","webpack:///./src/components/icons/ToastSpinnerIcon.vue?6d94","webpack:///./src/components/icons/GreenCheckIcon.vue","webpack:///./src/components/icons/GreenCheckIcon.vue?0b30","webpack:///./src/components/ui/ToastButton.vue","webpack:///./src/components/ui/ToastButton.vue?53f1","webpack:///./src/components/common/Toast.vue?0e14","webpack:///./src/App.vue","webpack:///./src/pages/layout/Header.vue","webpack:///./src/pages/layout/WalletModal.vue","webpack:///./src/pages/layout/WalletModal.vue?18e3","webpack:///./src/pages/layout/MobileMenu.vue","webpack:///./src/pages/layout/MobileMenu.vue?1dac","webpack:///./src/components/common/Ethereum.vue","webpack:///./src/components/common/Ethereum.vue?f76a","webpack:///./src/pages/layout/Header.vue?4eda","webpack:///./src/pages/layout/Footer.vue","webpack:///./src/pages/layout/Footer.vue?1d1e","webpack:///./src/App.vue?8ecf","webpack:///./src/pages/home/Home.vue","webpack:///./src/components/common/ConnectWallet.vue","webpack:///./src/components/ui/Button.vue","webpack:///./src/components/ui/Button.vue?75a0","webpack:///./src/components/common/ConnectWallet.vue?c5fc","webpack:///./src/pages/home/Home.vue?8984","webpack:///./src/pages/not-found/NotFound.vue","webpack:///./src/pages/not-found/NotFound.vue?79d4","webpack:///./src/router/index.js","webpack:///./src/main.js","webpack:///./src/components/common/Toast.vue?3149","webpack:///./src/pages/layout/MobileMenu.vue?cdb5","webpack:///./src/components/ui/Button.vue?2759","webpack:///./src/components/ui/ToastButton.vue?be98","webpack:///./src/pages/layout/WalletModal.vue?e9ec","webpack:///./src/App.vue?845b","webpack:///./src/pages/layout/Header.vue?4bc7"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","ref","class","animationType","animate","props","type","String","required","default","setup","target","observer","IntersectionObserver","entry","isIntersecting","threshold","observe","__exports__","render","style","toastStyle","isTransactionConfirmed","isTransactionSubmitted","messageStyle","message","metadata","amount","transaction","isSecondary","openEtherscan","buttonStyle","closeToast","config","success","commit","duration","info","warning","error","updateDeployedToastIds","deployedToastId","clear","showWalletModal","hideWalletModal","state","deployedToastIds","add","toast","this","$toasts","remove","Set","namespaced","actions","mutations","user","JSON","parse","localStorage","getItem","SessionTicket","CacheHelper","isWorking","doneWorking","waiters","onBeginWorking","onError","onFinishWorking","response","promiseGetter","bust","waiter","responseAvailable","waiterPromise","Promise","resolve","resolver","formatAddress","address","shortenedAddress","substring","yup","email","min","fetch","process","Date","now","then","json","initializeConfig","ethereum","autoRefreshOnNetworkChange","dispatch","watcherInterval","localProvider","infuraProvider","ethereumAccountsCache","currentAddress","originalPollingInterval","PROVIDER_POLL_RATE","MESSAGES","NO_PROVIDER","REJECTED","callbacks","startProviderWatcher","_dispatch","callback","checkProviderAvailability","connectInfuraProvider","getEthereumAccounts","activeAddresses","connectLocalEthereumProvider","disconnectLocalEthereumProvider","console","log","setInterval","stopProviderWatcher","clearInterval","currentNetworkId","infuraNetworkId","ethers","BigNumber","from","toNumber","providers","InfuraProvider","infuraProjectId","pollingInterval","networkPollingIntervals","on","handleBlockChanged","root","hasLocalProvider","canSign","provider","enableEthereumAccounts","ethereumAddresses","selectedAddress","Web3Provider","getNetwork","network","networkId","utils","hexValue","chainId","request","method","accounts","handleAccountsChanged","handleChainChanged","connectWalletConnectProvider","walletConnectProvider","WalletConnectProvider","infuraId","qrcode","enable","connected","createSession","sign","getSigner","getAddress","requestAccountsPromiseGetter","cache","blockNumber","priorAccountsLength","pause","unpause","poll","getProvider","getNetworkName","undefined","ethersService","NO_INFURA","UNKNOWN","initialize","initializeFailure","errorReason","initializeSuccess","signer","changePaused","pauseStatus","connectWallet","connectWCProvider","disconnectWallet","changeCurrentAddress","changeChainId","changeBlockNumber","initializeRequest","initializing","pausedChanged","paused","addressChanged","networkChanged","blockNumberChanged","createStore","alert","width","height","viewBox","xmlns","fill","script","xmlns:xlink","preserveAspectRatio","cx","cy","secondaryStyles","disabled","isDisabled","Boolean","isActive","isText","computed","classes","components","ToastButton","CloseIcon","ToastSpinnerIcon","GreenCheckIcon","badge","id","Number","mounted","color","backgroundColor","methods","$emit","open","store","hideWalletModalDisplay","showMobileMenu","isVisible","mobileMenuIsVisible","showWalletModalDisplay","profileAddressLabel","src","exitModal","appear","handleMetaMask","emits","show","triggerClose","walletPrompt","isHome","context","router","onscroll","emit","openUrl","url","routeTo","Function","created","ethereumReference","getLaunchpadItemsTask","signal","perform","WalletModal","MobileMenu","Ethereum","connect","disconnect","path","scrollTo","Header","Footer","assign","$store","watch","deep","handler","newAlert","lastMessage","base","Button","isWalletModalVisible","ConnectWallet","routes","component","Home","NotFound","createRouter","history","createWebHistory","beforeMount","element","visibility","updated","binding","node","oldValue","transition","beforeEnter","enter","leave","createApp","App","use","Toaster","VueSmoothScroll","updateHistory","VueMyToasts","Toast","options","position","padding","directive","VueTilt","onLoad","AnimatedComponent","Skeletor","mount","$app","app"],"mappings":"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","file":"js/app.b3d65df4.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AnimatedComponent.vue?vue&type=style&index=0&id=547affaa&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./ConnectWallet.vue?vue&type=style&index=0&id=36b7f02f&scoped=true&lang=scss\"","\n
\n \n
\n \n
\n \n
\n\n\n\n\n\n","import { render } from \"./AnimatedComponent.vue?vue&type=template&id=547affaa&scoped=true\"\nimport script from \"./AnimatedComponent.vue?vue&type=script&lang=js\"\nexport * from \"./AnimatedComponent.vue?vue&type=script&lang=js\"\n\nimport \"./AnimatedComponent.vue?vue&type=style&index=0&id=547affaa&scoped=true&lang=css\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-547affaa\"]])\n\nexport default __exports__","\n
\n \n \n
\n
{{ message }}
\n
{{ metadata.amount }}
\n
\n
\n \n
View on Etherscan
\n \n
\n \n
\n\n\n\n\n\n","'use strict';\n\n// Imports.\nimport { ethers } from 'ethers';\nimport { CacheHelper } from '../utility';\nimport initializeConfig from '../initialize-config';\nimport WalletConnectProvider from '@walletconnect/web3-provider';\n\n// Initialize this service's configuration.\nlet config;\n(async () => {\n config = await initializeConfig();\n})();\n\n// If an Ethereum provider is available locally, disable its automatic reload on\n// network change. This avoids a warning when MetaMask is the local provider.\nif (window.ethereum) {\n window.ethereum.autoRefreshOnNetworkChange = false;\n}\n\n// The rate in milliseconds at which to poll for a local Ethereum provider.\nconst PROVIDER_POLL_RATE = 1000;\n\n// Accessible status messages for future localization.\nconst MESSAGES = {\n NO_PROVIDER: `You have no Ethereum provider. Try installing MetaMask.`,\n REJECTED: `You rejected the request to connect your wallet. Please attempt to connect again and accept the request this time.`\n};\n\n// Begin polling for the availability of our local Ethereum provider.\n// If it is available, attach event handlers. This function is given a reference\n// to the VueX event dispatcher which this servive uses elsewhere.\nlet dispatch;\nlet callbacks = [];\nlet watcherInterval;\nlet localProvider;\nlet infuraProvider;\nconst startProviderWatcher = async function(_dispatch, callback) {\n callbacks.push(callback);\n\n // No-op on multiple calls to start the provider.\n if (dispatch) {\n return;\n }\n dispatch = _dispatch;\n console.log('Starting a watcher for the local Ethereum provider ...');\n\n // Poll for changes of availability in our local Ethereum provider. If the\n // local provider doesn't exist, notify the user and give a read-only option.\n async function checkProviderAvailability() {\n if (!window.ethereum) {\n // The user does not have a local Ethereum provider.\n // Attempt to connect to an Infura provider.\n await connectInfuraProvider();\n\n // If there is a local Ethereum provider, check to see if it is connected\n // to a signing account already. The local provider may be:\n // - locked; when the provider is available but not yet configured or\n // \t\t\t\t\t awaiting password input.\n // - unlocked; when the provider is available but a signer is not connected\n //\t\t\t\t\t to the site yet.\n // - connected; when the local signer is fully available to use.\n //\n // If the signer is not yet connected to the site, this polling loop will do\n // nothing. The user must explicitly request connection to the site via an\n // on-page interaction.\n } else {\n let activeAddresses = await getEthereumAccounts();\n // If there exists a selected address, a signing account is connected.\n // We can therefore shortcut requiring the user to connect via a prompt.\n if (activeAddresses.length > 0) {\n await connectLocalEthereumProvider();\n // Otherwise, the signer is not yet connected. Clear the local Ethereum\n // provider to a blank slate and fall back upon the default Infura\n // provider.\n } else {\n await disconnectLocalEthereumProvider();\n }\n }\n }\n\n // Begin checking for changes to provider availability on the polling interval.\n await checkProviderAvailability();\n watcherInterval = setInterval(checkProviderAvailability, PROVIDER_POLL_RATE);\n};\n\n// Stop the polling interval looking for the local Ethereum provider.\nconst stopProviderWatcher = async function() {\n if (watcherInterval) {\n clearInterval(watcherInterval);\n watcherInterval = null;\n }\n};\n\n// Attempt to connect to a default read-only Infura provider.\n// If the connection to Infura already exists, this function will not attempt to\n// replace that connection. It will, however, dispatch an update to VueX.\nconst connectInfuraProvider = async function() {\n if (!infuraProvider) {\n console.log('Initializing a new Infura provider ...');\n try {\n if (!config) {\n config = await initializeConfig();\n }\n // TODO: make configurable read-only network selection\n let currentNetworkId = '0x1';\n let infuraNetworkId = ethers.BigNumber.from(currentNetworkId).toNumber();\n infuraProvider = await new ethers.providers.InfuraProvider(\n infuraNetworkId,\n config.infuraProjectId\n );\n // infuraProvider = await new ethers.providers.AlchemyProvider(infuraNetworkId, config.alchemyApiKey[currentNetworkId]);\n // wss://eth-goerli.ws.alchemyapi.io/v2/SmRibxWnqII5gXgiuPDRiJT4gzA1vo7t\n infuraProvider.pollingInterval =\n config.networkPollingIntervals[currentNetworkId];\n\n // Update our VueX state whenever the provider detects a block change.\n infuraProvider.on('block', handleBlockChanged);\n console.log('... successfully initialized Infura provider.');\n\n // If an error occurs when connecting to Infura, we cannot recover.\n // Stop attempting to poll for a provider and notify the user.\n } catch (error) {\n await dispatch('ethers/initializeFailure', 'NO_INFURA', { root: true });\n await stopProviderWatcher();\n }\n }\n\n // We've completed initialization of the Infura provider.\n await dispatch(\n 'ethers/initializeSuccess',\n {\n hasLocalProvider: !!window.ethereum,\n canSign: false,\n provider: infuraProvider,\n callbacks: callbacks\n },\n { root: true }\n );\n callbacks = [];\n};\n\n// Attempt to connect to the local Ethereum provider's currently active account.\n// If there is no local Ethereum provider, notify the user.\n// If the connection to the local account already exists, this function will not\n// attempt to replace that signer connection. It will dispatch a VueX update.\nconst connectLocalEthereumProvider = async function() {\n if (!window.ethereum && !infuraProvider) {\n await dispatch(\n 'alert/error',\n {\n message: MESSAGES['NO_PROVIDER'],\n duration: 10000\n },\n { root: true }\n );\n await connectInfuraProvider();\n }\n\n // If a local provider is available but not connected yet, attempt to connect\n // and retrieve a signing account.\n if (window.ethereum) {\n if (!localProvider) {\n let ethereumAddresses = await enableEthereumAccounts();\n\n // The addresses returned may be null if the user intervenes to reject the\n // connection request.\n if (ethereumAddresses) {\n window.ethereum.selectedAddress = ethereumAddresses[0];\n try {\n localProvider = new ethers.providers.Web3Provider(window.ethereum);\n let network = await localProvider.getNetwork();\n let networkId = ethers.utils.hexValue(network.chainId);\n if (!config) {\n config = await initializeConfig();\n }\n localProvider.pollingInterval =\n config.networkPollingIntervals[networkId];\n\n // Emit events whenever the provider detects a change in block.\n localProvider.on('block', handleBlockChanged);\n\n // Retrieve the user's accounts and handle any account-changed event.\n // User accounts are only exposed for the local Ethereum provider.\n const accounts = await window.ethereum.request({\n method: 'eth_accounts'\n });\n await handleAccountsChanged(accounts);\n window.ethereum.on('accountsChanged', handleAccountsChanged);\n\n // Set our Ethereum network and handle any network change events.\n window.ethereum.on('chainChanged', handleChainChanged);\n console.log('... local Ethereum provider successfully initialized.');\n\n // An unexpected error has occurred retrieving our provider references.\n } catch (error) {\n console.error(\n '... encountered error initializing local Ethereum provider.',\n error\n );\n await dispatch('ethers/initializeFailure', 'UNKNOWN', { root: true });\n await stopProviderWatcher();\n }\n\n // We've completed initialization of the Ethereum provider.\n await dispatch(\n 'ethers/initializeSuccess',\n {\n hasLocalProvider: !!window.ethereum,\n canSign: true,\n provider: localProvider,\n callbacks: callbacks\n },\n { root: true }\n );\n callbacks = [];\n\n // The user rejected the connection, so suspend the current local provider\n // if it happens to exist and restore the Infura provider.\n } else {\n if (localProvider) {\n localProvider.pollingInterval = 1000000;\n localProvider = null;\n }\n await connectInfuraProvider();\n }\n }\n\n // If a local provider has been configured properly, suspend the Infura\n // provider.\n if (localProvider && infuraProvider) {\n infuraProvider.pollingInterval = 1000000;\n infuraProvider = null;\n }\n }\n};\n\nconst connectWalletConnectProvider = async function(callback) {\n if (!infuraProvider) {\n await dispatch(\n 'alert/error',\n {\n message: MESSAGES['NO_PROVIDER'],\n duration: 10000\n },\n { root: true }\n );\n await connectInfuraProvider(callback);\n }\n // if (window.ethereum) {\n if (!localProvider) {\n try {\n if (!config) {\n config = await initializeConfig();\n }\n const walletConnectProvider = new WalletConnectProvider({\n infuraId: config.infuraProjectId, // Required\n qrcode: true\n });\n await walletConnectProvider.enable();\n if (!walletConnectProvider.connected) {\n walletConnectProvider.createSession();\n }\n\n localProvider = new ethers.providers.Web3Provider(walletConnectProvider);\n\n let networkId = ethers.utils.hexValue(1);\n localProvider.pollingInterval =\n config.networkPollingIntervals[networkId] * 100;\n\n localProvider.on('block', handleBlockChanged);\n\n const accounts = localProvider.provider.accounts;\n console.log('ACCOUNTS:', accounts);\n await handleAccountsChanged(accounts);\n\n localProvider.on('accountsChanged', accounts => {\n console.log(accounts);\n handleAccountsChanged(accounts);\n });\n\n localProvider.on('chainChanged', chainId => {\n handleChainChanged(chainId);\n });\n } catch (error) {\n console.error(\n '... encountered error initializing local Ethereum provider.',\n error\n );\n await dispatch('ethers/initializeFailure', 'UNKNOWN', { root: true });\n await stopProviderWatcher();\n }\n\n let sign = localProvider.getSigner();\n console.log('signer', await sign.getAddress());\n await dispatch(\n 'ethers/initializeSuccess',\n {\n hasLocalProvider: true,\n canSign: true,\n provider: localProvider,\n callbacks: callbacks\n },\n { root: true }\n );\n callbacks = [];\n }\n //}\n};\n// Clear the local Ethereum provider. This may happen due to signing account\n// disconnection, or may happen as a no-op when the user's local Ethereum\n// provider is locked. When the local Ethereum provider is cleared, it is\n// replaced with a default Infura provider.\nconst disconnectLocalEthereumProvider = async function() {\n ethereumAccountsCache = null;\n currentAddress = null;\n localProvider = null;\n window.ethereum.selectedAddress = null;\n await connectInfuraProvider();\n};\n\n// If a local Ethereum provider has been detected, attempt to retrieve signing\n// accounts known to the local provider. Accounts will not be visible if they\n// have not been unlocked using `enableEthereumAccounts`.\nconst getEthereumAccounts = async function() {\n return window.ethereum.request({ method: 'eth_accounts' });\n};\n\nconst getWCEthereumAccounts = async function() {\n return new Promise(localProvider.provider.accounts);\n};\n\n// If a local Ethereum provider has been detected, attempt to retrieve signing\n// accounts known to the local provider. Stash the results in our cache.\n// This method prompts the user to unlock their accounts if they've not already\n// done so; once unlocked the accounts can be seen by `getEthereumAccounts`.\nlet ethereumAccountsCache;\nconst enableEthereumAccounts = async function() {\n if (!ethereumAccountsCache) {\n // Configure a new cache to unlock and store the potential signing accounts.\n ethereumAccountsCache = new CacheHelper();\n\n // If this the first attempt at a connection to the local Ethereum provider,\n // display messages regarding connection status.\n if (!window.ethereum.selectedAddress) {\n ethereumAccountsCache.onBeginWorking = async () => {\n await dispatch(\n 'alert/success',\n {\n message: `Please connect to this application with your wallet.`,\n duration: false\n },\n { root: true }\n );\n };\n ethereumAccountsCache.onError = async error => {\n await dispatch('alert/clear', '', { root: true });\n await dispatch(\n 'alert/error',\n {\n message: MESSAGES.REJECTED,\n duration: 10000\n },\n { root: true }\n );\n };\n ethereumAccountsCache.onFinishWorking = async response => {\n if (response) {\n await dispatch('alert/clear', '', { root: true });\n await dispatch(\n 'alert/success',\n {\n message: `We have successfully connected to your wallet.`,\n duration: 10000\n },\n { root: true }\n );\n }\n };\n }\n }\n\n // Retrieve the local Ethereum provider's signing accounts.\n let requestAccountsPromiseGetter = () =>\n window.ethereum.request({ method: 'eth_requestAccounts' });\n let result = await ethereumAccountsCache.cache(requestAccountsPromiseGetter);\n return result;\n};\n\n// Handle an event where the provider's block number changes by updating VueX.\nconst handleBlockChanged = async function(blockNumber) {\n await dispatch('ethers/changeBlockNumber', blockNumber, { root: true });\n};\n\n// Handle an event where the Ethereum network is changed by updating VueX.\nconst handleChainChanged = async function(chainId) {\n await dispatch('ethers/changeChainId', chainId, { root: true });\n};\n\n// Handle an event where the user's account is changed. If they've no accounts,\n// then the local Ethereum provider is locked or the user has not connected\n// any accounts. Update the current account address in VueX.\nlet priorAccountsLength = 0;\nlet currentAddress;\nconst handleAccountsChanged = async function(accounts) {\n if (accounts.length === 0) {\n // The user has disconnected; there are no accounts where there used to be.\n // Reset the local provider in response.\n if (priorAccountsLength > 0) {\n await disconnectLocalEthereumProvider();\n }\n\n // The active signing address has changed; reconnect the local provider.\n } else if (accounts[0] !== currentAddress) {\n currentAddress = accounts[0];\n await dispatch('ethers/changeCurrentAddress', currentAddress, {\n root: true\n });\n }\n priorAccountsLength = accounts.length;\n};\n\n// Pause the provider by giving it a tremendously large polling interval.\nlet originalPollingInterval;\nconst pause = async function(_dispatch) {\n if (!dispatch) {\n dispatch = _dispatch;\n }\n if (infuraProvider) {\n if (!originalPollingInterval) {\n originalPollingInterval = infuraProvider.pollingInterval;\n }\n infuraProvider.pollingInterval = 1000000;\n }\n if (localProvider) {\n if (!originalPollingInterval) {\n originalPollingInterval = localProvider.pollingInterval;\n }\n localProvider.pollingInterval = 1000000;\n }\n await dispatch('ethers/changePaused', true, { root: true });\n};\n\n// Unpause the provider by restoring its original polling interval.\nconst unpause = async function(_dispatch) {\n if (!dispatch) {\n dispatch = _dispatch;\n }\n if (infuraProvider) {\n if (!originalPollingInterval) {\n originalPollingInterval = infuraProvider.pollingInterval;\n }\n infuraProvider.pollingInterval = originalPollingInterval;\n await infuraProvider.poll();\n }\n if (localProvider) {\n if (!originalPollingInterval) {\n originalPollingInterval = localProvider.pollingInterval;\n }\n localProvider.pollingInterval = originalPollingInterval;\n await localProvider.poll();\n }\n await dispatch('ethers/changePaused', false, { root: true });\n};\n\n// Return a reference to the current available Ethereum provider.\nconst getProvider = function() {\n return localProvider ?? infuraProvider;\n};\n\n// Return the name of a particular network.\nconst getNetworkName = function(networkId) {\n switch (networkId) {\n case '0x1':\n return 'Mainnet';\n case '0x2':\n return 'Morden (deprecated)';\n case '0x3':\n return 'Ropsten Test Network';\n case '0x4':\n return 'Rinkeby Test Network';\n case '0x5':\n return 'Goerli Test Network';\n case '0x2a':\n return 'Kovan Test Network';\n case undefined:\n case null:\n return 'No Chain!';\n\n // Local testing networks should land here.\n default:\n return 'Local Test Network';\n }\n};\n\n// Export the various management functions of the Ethers service.\nexport const ethersService = {\n startProviderWatcher,\n connectLocalEthereumProvider,\n connectWalletConnectProvider,\n disconnectLocalEthereumProvider,\n getProvider,\n getNetworkName,\n getEthereumAccounts,\n pause,\n unpause\n};\n","'use strict';\n\n// Specified actions for mutating the alert state.\nexport default {\n // Display a success-themed alert.\n success({ commit }, { message, duration }) {\n commit('success', { message, duration });\n },\n\n // Display an information-themed alert.\n info({ commit }, { message, duration, metadata }) {\n commit('info', { message, duration, metadata });\n },\n\n // Display a warning-themed alert.\n warning({ commit }, { message, duration }) {\n commit('warning', { message, duration });\n },\n\n // Display an error-themed alert.\n error({ commit }, { message, duration }) {\n commit('error', { message, duration });\n },\n\n // Display an alert with the default theme.\n default({ commit }, { message, duration }) {\n commit('default', { message, duration });\n },\n\n updateDeployedToastIds({ commit }, { deployedToastId }) {\n commit('updateDeployedToastIds', { deployedToastId });\n },\n\n // Clear all alerts.\n clear({ commit }) {\n commit('clear');\n },\n\n // TODO\n showWalletModal({ commit }) {\n commit('showWalletModal');\n },\n hideWalletModal({ commit }) {\n commit('hideWalletModal');\n }\n};\n","'use strict';\n\n// Specified state transitions per particular actions.\nexport default {\n success(state, { message, duration, metadata }) {\n state.message = message;\n state.type = 'success';\n state.duration = duration;\n state.metadata = metadata;\n },\n\n info(state, { message, duration, metadata }) {\n state.message = message;\n state.type = 'info';\n state.duration = duration;\n state.metadata = metadata;\n },\n\n warning(state, { message, duration, metadata }) {\n state.message = message;\n state.type = 'warning';\n state.duration = duration;\n state.metadata = metadata;\n },\n\n error(state, { message, duration, metadata }) {\n state.message = message;\n state.type = 'error';\n state.duration = duration;\n state.metadata = metadata;\n },\n\n default(state, { message, duration, metadata }) {\n state.message = message;\n state.type = 'default';\n state.duration = duration;\n state.metadata = metadata;\n },\n\n updateDeployedToastIds(state, { deployedToastId }) {\n state.deployedToastIds.add(deployedToastId);\n },\n\n // Tell the app to clear all alerts.\n clear(state) {\n for (let toast of state.deployedToastIds) {\n this.$toasts.remove(toast);\n }\n state.message = null;\n state.type = null;\n state.deployedToastIds = new Set();\n },\n\n // TODO\n showWalletModal(state) {\n state.showWalletModal = true;\n },\n hideWalletModal(state) {\n state.showWalletModal = false;\n }\n};\n","'use strict';\n\n// Import our module information.\nimport actions from './actions';\nimport mutations from './mutations';\n\n// Prepare state.\nconst state = {\n message: null,\n type: null,\n duration: 10000,\n metadata: {},\n deployedToastIds: new Set(),\n\n // TODO: fix this alert VueX storage hijacking.\n showWalletModal: false\n};\n\n// Return the module prepared for use.\nexport default {\n namespaced: true,\n state,\n actions,\n mutations\n};\n","\"use strict\";\n\n// Export the user's session ticket for authenticating with the backend.\nlet user = JSON.parse(localStorage.getItem(\"user\"));\nexport const authHeader =\n user && user.SessionTicket ? { Authorization: user.SessionTicket } : {};\n","\"use strict\";\n\n// Construct a cache helper which can consume a promise and caches its result.\nexport class CacheHelper {\n constructor() {\n this.isWorking = false;\n this.doneWorking = false;\n this.waiters = [];\n this.onBeginWorking = null;\n this.onError = null;\n this.onFinishWorking = null;\n this.response = null;\n }\n\n // Multiple pending calls to this helper function will only call the promise\n // once unless cache-busting is specified.\n async cache(promiseGetter, bust) {\n if (!this.doneWorking && !this.isWorking) {\n this.isWorking = true;\n if (this.onBeginWorking) {\n await this.onBeginWorking();\n }\n try {\n this.response = await promiseGetter();\n } catch (error) {\n if (this.onError) {\n await this.onError(error);\n } else {\n throw error;\n }\n }\n if (this.onFinishWorking) {\n await this.onFinishWorking(this.response);\n }\n this.doneWorking = true;\n\n // Process any registered callbacks.\n for (let waiter of this.waiters) {\n waiter.responseAvailable(this.response);\n }\n this.waiters = [];\n return this.response;\n\n // If another request has been made to the cache while it is working,\n // register a callback to resolve with the cached value once available.\n } else if (!this.doneWorking && this.isWorking) {\n let waiterPromise = new Promise(resolve => {\n this.waiters.push({\n resolver: resolve,\n responseAvailable: function (response) {\n this.resolver(response);\n }\n });\n });\n return waiterPromise;\n\n // If the value is available, return it from the cache.\n } else if (this.doneWorking) {\n return this.response;\n }\n }\n}\n","'use strict';\n\n// Format a number with place delimiters.\nexport const formatNumber = function (value, decimals = 6) {\n value = value.toString().split('.');\n value[0] = value[0].replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, '$1' + ',');\n if (value[1]) {\n value[1] = value[1].substring(0, decimals);\n value[1] = value[1].padEnd(decimals, '0');\n } else {\n value[1] = ''.padEnd(decimals, '0');\n }\n value = value.join('.');\n if (decimals === 0) {\n value = value.substring(0, value.length - 1);\n }\n return value;\n};\n\n// Format an address to have an ellipsis in the middle.\nexport const formatAddress = function (address) {\n const length = address.length;\n if (length > 0) {\n const shortenedAddress = address.substring(0, 6) + '...' + address.substring(length - 4);\n return shortenedAddress;\n }\n return '';\n};\n","let config = null;\n\nexport default async () => {\n config =\n config === null\n ? await fetch(`${process.env.BASE_URL}config.json?t=${Date.now()}`).then(\n response => {\n return response.json();\n }\n )\n : config;\n return config;\n};\n","\"use strict\";\n\n// Imports.\nimport * as yup from \"yup\";\n\n// Export some predefined validation rules from yup.\nexport const emailRules = yup.string().required().email();\nexport const passwordRules = yup.string().required().min(8);\n","'use strict';\n\n// Imports.\nimport initializeConfig from '../initialize-config';\nimport { ethersService } from './index';\nimport { ethers } from 'ethers';\nimport axios from 'axios';\n\n// Initialize this service's configuration.\nlet config;\n(async () => {\n config = await initializeConfig();\n})();\n\n// A helper function to parse pool output data.\nconst parsePool = async function(provider, pool) {\n let poolItems = [];\n for (let i = 0; i < pool.items.length; i++) {\n let item = pool.items[i];\n let itemPrices = [];\n for (let j = 0; j < item.prices.length; j++) {\n let pricePair = item.prices[j];\n itemPrices.push({\n assetType: pricePair.assetType,\n asset: pricePair.asset,\n price: pricePair.price\n });\n }\n let metadataId = item.groupId\n .shl(128)\n ._hex.substring(2)\n .padStart(64, '0');\n let itemMetadataUri = pool.itemMetadataUri.replace('{id}', metadataId);\n let metadataResponse = await axios.get(itemMetadataUri);\n let metadata = metadataResponse.data;\n poolItems.push({\n metadataUri: itemMetadataUri,\n metadata: metadata,\n groupId: item.groupId,\n cap: item.cap,\n minted: item.minted,\n prices: itemPrices\n });\n }\n return {\n name: pool.name,\n startTime: pool.startTime,\n endTime: pool.endTime,\n requirement: {\n requiredType: pool.requirement.requiredType,\n requiredAsset: pool.requirement.requiredAsset,\n requiredAmount: pool.requirement.requiredAmount\n },\n items: poolItems\n };\n};\n\n// Fetch all available launchpad items.\nconst getShopItems = async function(shopAddress) {\n if (!config) {\n config = await initializeConfig();\n }\n let provider = await ethersService.getProvider();\n\n let isValid = await ethers.utils.isAddress(shopAddress);\n if (!isValid) {\n return {};\n }\n\n let shopContract = new ethers.Contract(\n shopAddress,\n config.mintShopABI,\n provider\n );\n\n let pools = await shopContract.getPools([0]);\n let poolA = await parsePool(provider, pools[0]);\n poolA.id = 0;\n return {\n pools: [poolA]\n };\n};\n\n// Purchase an item from the shop.\nconst purchaseItem = async function(\n shopAddress,\n poolId,\n groupId,\n assetId,\n amount,\n dispatch\n) {\n if (!config) {\n config = await initializeConfig();\n }\n let provider = await ethersService.getProvider();\n\n let isValid = await ethers.utils.isAddress(shopAddress);\n if (!isValid) {\n return; // TODO: throw useful error.\n }\n\n // Check for token spend approval.\n let signer = await provider.getSigner();\n let address = await signer.getAddress();\n\n // Purchase the item.\n let shopContract = new ethers.Contract(\n shopAddress,\n config.mintShopABI,\n signer\n );\n\n try {\n let purchaseTransaction = await shopContract.mintFromPool(\n poolId,\n groupId,\n assetId,\n amount,\n { value: ethers.utils.parseEther('0.001').mul(amount) }\n );\n\n purchaseTransaction.wait().then(async result => {\n await dispatch('alert/clear', '', { root: true });\n await dispatch(\n 'alert/info',\n {\n message: 'Transaction Confirmed',\n duration: 10000\n },\n { root: true }\n );\n });\n\n await dispatch(\n 'alert/info',\n {\n message: 'Transaction Submitted',\n metadata: {\n transaction: purchaseTransaction.hash\n },\n duration: 300000\n },\n { root: true }\n );\n\n // Return a user-friendly error for the purchase failure.\n } catch (error) {\n throw error;\n }\n};\n\n// Parse the items owned by a given address.\nconst processItems = async function(\n contractAddress,\n userAddress,\n groupId,\n provider\n) {\n if (!config) {\n config = await initializeConfig();\n }\n let itemContract = new ethers.Contract(\n contractAddress,\n config.itemABI,\n provider\n );\n\n // Check relative item transfer events to determine this user's current\n // inventory.\n let ownershipData = {};\n let batchTransfers = await itemContract.queryFilter('TransferBatch');\n // TokenRedemption\n console.log(`Processing ${batchTransfers.length} batch transfer events ...`);\n for (let i = 0; i < batchTransfers.length; i++) {\n let batchTransfer = batchTransfers[i];\n let blockNumber = batchTransfer.blockNumber;\n let itemIds = batchTransfer.args.ids;\n let to = batchTransfer.args.to;\n let amounts = batchTransfer.args[4];\n for (let j = 0; j < itemIds.length; j++) {\n let itemId = itemIds[j];\n let transferredId = itemId.shr(128);\n\n if (groupId != parseInt(transferredId) && groupId != 0) {\n break;\n }\n let itemAmount = amounts[j];\n if (ownershipData[itemId.toString()]) {\n if (ownershipData[itemId.toString()].block <= blockNumber) {\n ownershipData[itemId.toString()] = {\n itemId: itemId,\n amount: itemAmount,\n owner: to,\n block: blockNumber\n };\n }\n } else {\n ownershipData[itemId.toString()] = {\n itemId: itemId,\n amount: itemAmount, // TODO: likely wrong\n owner: to,\n block: blockNumber\n };\n }\n }\n }\n\n // Single transfer events.\n let singleTransfers = await itemContract.queryFilter('TransferSingle');\n console.log(\n `Processing ${singleTransfers.length} single transfer events ...`\n );\n for (let i = 0; i < singleTransfers.length; i++) {\n let singleTransfer = singleTransfers[i];\n let blockNumber = singleTransfer.blockNumber;\n let itemId = singleTransfer.args.id;\n let transferredId = itemId.shr(128);\n if (groupId != parseInt(transferredId) && groupId != 0) {\n break;\n }\n let to = singleTransfer.args.to;\n let amount = singleTransfer.args.value;\n if (ownershipData[itemId.toString()]) {\n if (ownershipData[itemId.toString()].block <= blockNumber) {\n ownershipData[itemId.toString()] = {\n itemId: itemId,\n amount: amount,\n owner: to,\n block: blockNumber\n };\n }\n } else {\n ownershipData[itemId.toString()] = {\n itemId: itemId,\n amount: amount,\n owner: to,\n block: blockNumber\n };\n }\n }\n\n // Process the item event history to find owned items.\n let metadataUri = await itemContract.metadataUri({\n gasLimit: ethers.BigNumber.from('14500000')\n });\n let ownedItems = [];\n for (const itemId in ownershipData) {\n let itemOwnershipData = ownershipData[itemId];\n if (itemOwnershipData.owner === userAddress) {\n let group = parseInt(itemOwnershipData.itemId.shr(128));\n let metadataId = itemOwnershipData.itemId._hex\n .substring(2)\n .padStart(64, '0');\n let itemMetadataUri = metadataUri.replace('{id}', metadataId);\n let metadataResponse = await axios.get(itemMetadataUri);\n let metadata = metadataResponse.data;\n ownedItems.push({\n id: metadataId,\n gid: group,\n metadataUri: itemMetadataUri,\n metadata: metadata,\n balance: itemOwnershipData.amount,\n cap: ethers.BigNumber.from(metadata.groupSize)\n });\n }\n }\n return ownedItems;\n};\n\n// Fetch all items owned by a particular address.\nconst getOwnedItems = async function(address, collectionAddress, groupId) {\n if (!config) {\n config = await initializeConfig();\n }\n\n let provider = await ethersService.getProvider();\n let network = await provider.getNetwork();\n let networkId = ethers.utils.hexValue(network.chainId);\n\n let ownedItems = [];\n\n let itemCollections = config.itemCollections[networkId];\n for (let itemCollectionAddress of itemCollections) {\n if (itemCollectionAddress === collectionAddress) {\n let isValid = await ethers.utils.isAddress(itemCollectionAddress);\n if (isValid) {\n ownedItems = ownedItems.concat(\n await processItems(itemCollectionAddress, address, groupId, provider)\n );\n }\n }\n }\n return ownedItems;\n};\n\n// Export the user service functions.\nexport const mintService = {\n getShopItems,\n purchaseItem,\n getOwnedItems\n};\n","'use strict';\n\n// Import the Ethers library for some data manipulation tasks.\nimport { ethers } from 'ethers';\n\n// Import Ethers connection helper functions.\nimport { ethersService } from '../../services';\n\n// Accessible status messages for future localization.\nconst MESSAGES = {\n NO_INFURA: `We were unable to connect to the default Infura provider.`,\n UNKNOWN: `We were unable to connect to your Ethereum provider for an unknown reason.`\n};\n\n// Export the Ethers actions.\nexport default {\n // Attempt to initialize our Ethereum provider with event handling.\n // Initialization can be passed a callback which is triggered upon success.\n async initialize({ dispatch, commit }, callback) {\n commit('initializeRequest');\n await ethersService.startProviderWatcher(dispatch, callback);\n },\n\n // Handle the results of failing to initialize the Ethereum provider.\n async initializeFailure({ dispatch, commit }, errorReason) {\n commit('initializeFailure');\n await dispatch(\n 'alert/error',\n {\n message: MESSAGES[errorReason],\n duration: 10000\n },\n { root: true }\n );\n },\n\n // Handle the results of a successful Ethereum provider initialization.\n async initializeSuccess(\n { commit },\n { hasLocalProvider, canSign, provider, callbacks }\n ) {\n let address;\n if (canSign) {\n let signer = provider.getSigner();\n address = await signer.getAddress();\n }\n let network = await provider.getNetwork();\n let networkId = ethers.utils.hexValue(network.chainId);\n commit('initializeSuccess', {\n hasLocalProvider,\n canSign,\n provider,\n address,\n networkId\n });\n\n // Trigger any callbacks attached to our initialization request.\n if (callbacks.length > 0) {\n for (let callback of callbacks) {\n await callback();\n }\n }\n },\n\n // Pause polling on the provider.\n async pause({ dispatch }) {\n await ethersService.pause(dispatch);\n },\n\n // Unpause polling on the provider.\n async unpause({ dispatch }) {\n await ethersService.unpause(dispatch);\n },\n\n // Update the paused status of the provider's polling.\n async changePaused({ commit }, pauseStatus) {\n commit('pausedChanged', pauseStatus);\n },\n\n // Connect the user's current signing address to the application.\n async connectWallet({}) {\n await ethersService.connectLocalEthereumProvider();\n },\n\n async connectWCProvider({}) {\n await ethersService.connectWalletConnectProvider();\n },\n\n // Disconnect the user's current signing address from the application.\n async disconnectWallet({}) {\n await ethersService.disconnectLocalEthereumProvider();\n },\n\n // Change the currently connected address that we're tracking in VueX state.\n async changeCurrentAddress({ commit }, currentAddress) {\n commit('addressChanged', currentAddress);\n },\n\n // Change the Ethereum network that we're tracking in VueX state.\n async changeChainId({ commit }, chainId) {\n commit('networkChanged', chainId);\n },\n\n // Change the block number that we're tracking in VueX state.\n async changeBlockNumber({ commit }, blockNumber) {\n commit('blockNumberChanged', blockNumber);\n }\n};\n","\"use strict\";\n\n// Export state mutation functions.\nexport default {\n // Handle requests by the page to initialize the Ethereum provider.\n initializeRequest(state, value) {\n state.initializing = true;\n },\n\n // Handle a failure to initialize the Ethereum provider.\n initializeFailure(state, value) {\n state.initializing = false;\n },\n\n // Handle the successful initialization of a provider. This can\n // occur immediately upon loading the page when the default provider is\n // initialized, or it can occur when the user disconnects a signing account\n // from the application. When that happens, we replace the user's\n // provider with an Infura provider for sustained read-only access.\n // This also intializes the user's write-enabled provider upon successfully\n // connecting to the local Ethereum provider.\n initializeSuccess(\n state,\n { hasLocalProvider, canSign, provider, address, networkId }\n ) {\n state.initializing = false;\n state.hasLocalProvider = hasLocalProvider;\n state.canSign = canSign;\n state.provider = provider;\n state.address = address;\n state.networkId = networkId;\n },\n\n // This function is called whenever we update the status of the provider's\n // polling activity.\n pausedChanged(state, pauseStatus) {\n state.paused = pauseStatus;\n },\n\n // This function is called whenever we detect a new active Ethereum address.\n addressChanged(state, address) {\n state.address = address;\n },\n\n // This function is called whenever we detect a new Ethereum network.\n networkChanged(state, chainId) {\n state.networkId = chainId;\n },\n\n // This function is called whenever we detect a new Ethereum block number.\n blockNumberChanged(state, blockNumber) {\n state.blockNumber = blockNumber;\n }\n};\n","\"use strict\";\n\n// Import our module information.\nimport actions from \"./actions\";\nimport mutations from \"./mutations\";\n\n// Prepare state.\nconst state = () => ({\n\n // Is the provider currently initializing?\n initializing: false,\n\n // Does a local Ethereum provider exist which we may try and connect to?\n hasLocalProvider: false,\n\n // Is the provider able to sign transactions?\n canSign: false,\n\n // A reference to the Ethers provider; this is either a reference to our local\n // Ethereum provider with a signer, or a read-only Infura provider.\n provider: null,\n\n // Whether or not the provider's event polling is paused.\n paused: false,\n\n // The address of the currently active signing account.\n address: null,\n\n // The connected Ethereum network's ID.\n networkId: null,\n\n // The connected Ethereum network's current block number.\n blockNumber: 0\n});\n\n// Return the module prepared for use.\nexport default {\n namespaced: true,\n state,\n actions,\n mutations\n};\n","'use strict';\n\n// Imports.\nimport { createStore } from 'vuex';\n\n// Import data modules for the store.\nimport alert from './alert';\nimport ethers from './ethers';\n\n// Export the data store using our modules.\nexport default createStore({\n state: {},\n mutations: {},\n actions: {},\n modules: {\n alert,\n ethers\n }\n});\n","\n \n\n","import { render } from \"./CloseIcon.vue?vue&type=template&id=2247bd4a\"\nconst script = {}\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n","import { render } from \"./ToastSpinnerIcon.vue?vue&type=template&id=3e317cb4\"\nconst script = {}\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n","import { render } from \"./GreenCheckIcon.vue?vue&type=template&id=27f677fd\"\nconst script = {}\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n\n\n\n\n\n","import { render } from \"./ToastButton.vue?vue&type=template&id=4b5d06df&scoped=true\"\nimport script from \"./ToastButton.vue?vue&type=script&lang=js\"\nexport * from \"./ToastButton.vue?vue&type=script&lang=js\"\n\nimport \"./ToastButton.vue?vue&type=style&index=0&id=4b5d06df&scoped=true&lang=css\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4b5d06df\"]])\n\nexport default __exports__","import { render } from \"./Toast.vue?vue&type=template&id=99fb46be&scoped=true\"\nimport script from \"./Toast.vue?vue&type=script&lang=js\"\nexport * from \"./Toast.vue?vue&type=script&lang=js\"\n\nimport \"./Toast.vue?vue&type=style&index=0&id=99fb46be&scoped=true&lang=css\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-99fb46be\"]])\n\nexport default __exports__","\n
\n
\n \n \n
\n \n
\n\n\n\n\n\n","\n {}\" />\n \n
\n \n
\n \n\n
\n
\n
\n \n \n
\n\n \n\n \n \n \n
\n
\n\n\n\n\n\n","\r\n \r\n \r\n
\r\n
Connect to your Wallet
\r\n
\r\n
Get MetaMask
\r\n \r\n
\r\n
\r\n \r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./WalletModal.vue?vue&type=template&id=35a8115b&scoped=true\"\nimport script from \"./WalletModal.vue?vue&type=script&lang=js\"\nexport * from \"./WalletModal.vue?vue&type=script&lang=js\"\n\nimport \"./WalletModal.vue?vue&type=style&index=0&id=35a8115b&scoped=true&lang=css\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-35a8115b\"]])\n\nexport default __exports__","\n \n \n \n \n \n
\n
\n \n
\n
\n {{ profileAddressLabel }}\n
\n \n
\n {{ walletPrompt }}\n
\n
\n \n\n\n\n","import { render } from \"./MobileMenu.vue?vue&type=template&id=0364b7b6&scoped=true\"\nimport script from \"./MobileMenu.vue?vue&type=script&lang=js\"\nexport * from \"./MobileMenu.vue?vue&type=script&lang=js\"\n\nimport \"./MobileMenu.vue?vue&type=style&index=0&id=0364b7b6&scoped=true&lang=scss\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0364b7b6\"]])\n\nexport default __exports__","\n
\n
\n\n\n\n","import { render } from \"./Ethereum.vue?vue&type=template&id=4aaa803e\"\nimport script from \"./Ethereum.vue?vue&type=script&lang=js\"\nexport * from \"./Ethereum.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Header.vue?vue&type=template&id=758b24ce&scoped=true\"\nimport script from \"./Header.vue?vue&type=script&lang=js\"\nexport * from \"./Header.vue?vue&type=script&lang=js\"\n\nimport \"./Header.vue?vue&type=style&index=0&id=758b24ce&scoped=true&lang=scss\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-758b24ce\"]])\n\nexport default __exports__","\n footer\n\n\n\n","import { render } from \"./Footer.vue?vue&type=template&id=7c6499ef\"\nimport script from \"./Footer.vue?vue&type=script&lang=js\"\nexport * from \"./Footer.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./App.vue?vue&type=template&id=482508ca&scoped=true\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport \"./App.vue?vue&type=style&index=0&id=482508ca&scoped=true&lang=scss\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-482508ca\"]])\n\nexport default __exports__","\n \n
\n yellow wurld\n
\n \n\n\n\n","\n \n
\n \n
\n \n
\n
Wallet not detected
\n \n
\n\n\n\n","\n \n\n\n\n","import { render } from \"./Button.vue?vue&type=template&id=0b021116&scoped=true\"\nconst script = {}\n\nimport \"./Button.vue?vue&type=style&index=0&id=0b021116&scoped=true&lang=css\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0b021116\"]])\n\nexport default __exports__","import { render } from \"./ConnectWallet.vue?vue&type=template&id=36b7f02f&scoped=true\"\nimport script from \"./ConnectWallet.vue?vue&type=script&lang=js\"\nexport * from \"./ConnectWallet.vue?vue&type=script&lang=js\"\n\nimport \"./ConnectWallet.vue?vue&type=style&index=0&id=36b7f02f&scoped=true&lang=scss\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-36b7f02f\"]])\n\nexport default __exports__","import { render } from \"./Home.vue?vue&type=template&id=1d27d3f7\"\nimport script from \"./Home.vue?vue&type=script&lang=js\"\nexport * from \"./Home.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n
\n not foun!\n
\n\n\n\n","import { render } from \"./NotFound.vue?vue&type=template&id=6307680c&lang=true\"\nimport script from \"./NotFound.vue?vue&type=script&lang=js\"\nexport * from \"./NotFound.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/opt/buildhome/repo/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","// Imports.\nimport { createRouter, createWebHistory } from 'vue-router';\n\n// Page imports.\nimport Home from '../pages/home/Home.vue';\nimport NotFound from '../pages/not-found/NotFound.vue';\n// Create routes.\nconst routes = [\n {\n path: '/',\n name: 'Home',\n component: Home\n },\n { path: '/:pathMatch(.*)*', component: NotFound }\n];\n\n// Set up the Vue router to operate in web history mode.\nconst router = createRouter({\n history: createWebHistory(process.env.BASE_URL),\n routes\n});\nexport default router;\n","'use strict';\n\n// Component imports.\nimport { createApp } from 'vue';\nimport Toaster from '@meforma/vue-toaster';\nimport VueSmoothScroll from 'vue3-smooth-scroll';\nimport VueTilt from 'vue-tilt.js';\nimport AnimatedComponent from '/src/components/utility/AnimatedComponent.vue';\nimport VueMyToasts from 'vue-my-toasts';\nimport Toast from '/src/components/common/Toast.vue';\nimport { Skeletor } from 'vue-skeletor';\nimport * as onLoad from 'vue-onload';\n\n// Style imports.\nimport './assets/style/main.scss';\nimport 'animate.css';\nimport 'vue-skeletor/dist/vue-skeletor.css';\n\n// Application imports.\nimport App from './App.vue';\nimport router from './router';\nimport store from './store';\n\nimport { Directive, DirectiveBinding, VNode } from 'vue';\n\nexport const appear = {\n beforeMount(element) {\n element.style.visibility = 'hidden';\n },\n updated(element, binding, node) {\n if (!binding.value === !binding.oldValue || null === node.transition) {\n return;\n }\n if (!binding.value) {\n node.transition.leave(element, () => {\n element.style.visibility = 'hidden';\n });\n return;\n }\n node.transition.beforeEnter(element);\n element.style.visibility = '';\n node.transition.enter(element);\n }\n};\n\n// Create our application with required dependencies.\ncreateApp(App)\n .use(router)\n .use(store)\n .use(Toaster)\n .use(VueSmoothScroll, {\n duration: 1500,\n updateHistory: false\n })\n .use(VueMyToasts, {\n // component: BootstrapComponent,\n component: Toast,\n options: {\n width: '50vw',\n position: 'bottom-left',\n padding: '2rem'\n }\n })\n .directive('appear', appear)\n .use(VueTilt)\n .use(onLoad.plugin)\n .component('animated-component', AnimatedComponent)\n .component(Skeletor.name, Skeletor)\n .mount('#app');\n\nstore.$app = app;\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Toast.vue?vue&type=style&index=0&id=99fb46be&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./MobileMenu.vue?vue&type=style&index=0&id=0364b7b6&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Button.vue?vue&type=style&index=0&id=0b021116&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./ToastButton.vue?vue&type=style&index=0&id=4b5d06df&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./WalletModal.vue?vue&type=style&index=0&id=35a8115b&scoped=true&lang=css\"","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./App.vue?vue&type=style&index=0&id=482508ca&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Header.vue?vue&type=style&index=0&id=758b24ce&scoped=true&lang=scss\""],"sourceRoot":""}