import { constants } from "./constants"; let errorMsgNoMetamaskAccount = `You haven't chosen any account in MetaMask. Please choose your initial key in MetaMask and reload the page. Check POA Network wiki for more info.`; function generateElement(msg){ let errorNode = document.createElement("div"); errorNode.innerHTML = `
${msg}
`; return errorNode; } let getWeb3 = () => { return new Promise(function (resolve, reject) { // Wait for loading completion to avoid race conditions with web3 injection timing. window.addEventListener('load', function () { var results var web3 = window.web3 // Checking if Web3 has been injected by the browser (Mist/MetaMask) if (typeof web3 !== 'undefined') { // Use Mist/MetaMask's provider. var errorMsg = null; web3 = new window.Web3(web3.currentProvider) web3.version.getNetwork((err, netId) => { let netIdName; switch (netId) { case constants.NETID_SOKOL: netIdName = 'Sokol' console.log('This is sokol') break case constants.NETID_DAI_TEST: netIdName = 'Dai-Test' console.log('This is Dai-Test') break case constants.NETID_CORE: netIdName = 'Core' console.log('This is Core') break case constants.NETID_DAI: netIdName = 'Dai' console.log('This is Dai') break default: netIdName = 'Unknown' errorMsg = `You aren't connected to POA Network. Please switch on Metamask and refresh the page. Check POA Network wiki for more info. Current Network ID is ${netId}` console.log('This is an unknown network.', netId) } results = { web3Instance: web3, netIdName, netId, injectedWeb3: true } document.title = `${netIdName} - Dapp Keys Generation` var defaultAccount = web3.eth.defaultAccount || null; if(defaultAccount === null){ reject({msg: errorMsgNoMetamaskAccount, node: generateElement(errorMsgNoMetamaskAccount)}) } if(errorMsg !== null){ reject({msg: errorMsg, node: generateElement(errorMsg)}) } resolve(results) }) console.log('Injected web3 detected.'); } else { reject({msg: errorMsgNoMetamaskAccount, node: generateElement(errorMsgNoMetamaskAccount)}) console.error('Metamask not found'); } }) }) } export default getWeb3