From 5a5051bac6530e9873b0f1911aa9e2d2a64d2bcf Mon Sep 17 00:00:00 2001 From: Sebastian Kippe Date: Wed, 4 Sep 2019 18:51:49 +0200 Subject: [PATCH] Check required network before using user provider closes #82 --- app/services/kredits.js | 12 +++++++++--- config/environment.js | 2 ++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/app/services/kredits.js b/app/services/kredits.js index 553d0e2..e651336 100644 --- a/app/services/kredits.js +++ b/app/services/kredits.js @@ -6,7 +6,7 @@ import Service from '@ember/service'; import EmberObject from '@ember/object'; import { computed } from '@ember/object'; import { alias, notEmpty } from '@ember/object/computed'; -import { isEmpty } from '@ember/utils'; +import { isEmpty, isPresent } from '@ember/utils'; import groupBy from 'kredits-web/utils/group-by'; import formatKredits from 'kredits-web/utils/format-kredits'; @@ -99,10 +99,16 @@ export default Service.extend({ } async function instantiateWithAccount (web3Provider, context) { - // TODO check if network is rinkeby console.debug('[kredits] Using user-provided instance, e.g. from Mist browser or Metamask'); ethProvider = new ethers.providers.Web3Provider(web3Provider); - // const network = await ethProvider.getNetwork(); + + const network = await ethProvider.getNetwork(); + if (isPresent(config.web3RequiredNetwork) && + network.name !== config.web3RequiredNetwork) { + window.alert(`Please switch your Ethereum wallet to the "${config.web3RequiredNetwork}" network before connecting your account.`); + return instantiateWithoutAccount(); + } + ethProvider.listAccounts().then(accounts => { context.set('currentUserAccounts', accounts); const ethSigner = accounts.length === 0 ? null : ethProvider.getSigner(); diff --git a/config/environment.js b/config/environment.js index a94e638..3554ed2 100644 --- a/config/environment.js +++ b/config/environment.js @@ -36,6 +36,7 @@ module.exports = function(environment) { }, web3ProviderUrl: 'https://rinkeby.infura.io/v3/d4f788b7a6584f7db2fc3c268d4d09e9', + web3RequiredNetwork: 'rinkeby', githubConnectUrl: 'https://hal8000.chat.kosmos.org/kredits/signup/connect/github', githubSignupUrl: 'https://hal8000.chat.kosmos.org/kredits/signup/github', @@ -81,6 +82,7 @@ module.exports = function(environment) { if (process.env.WEB3_PROVIDER_URL) { ENV.web3ProviderUrl = process.env.WEB3_PROVIDER_URL; + ENV.web3RequiredNetwork = null; } if (process.env.KREDITS_DAO_ADDRESS) { ENV.kreditsKernelAddress = process.env.KREDITS_DAO_ADDRESS;