diff --git a/app/routes/application.js b/app/routes/application.js index e02d727..ac80616 100644 --- a/app/routes/application.js +++ b/app/routes/application.js @@ -7,19 +7,55 @@ export default Route.extend({ beforeModel(transition) { const kredits = this.kredits; - return kredits.setup().then(() => { - kredits.get('kredits').preflightChecks().catch((error) => { - console.error('Kredits preflight check failed!'); - console.error(error); - }); - if (kredits.get('accountNeedsUnlock')) { - if (confirm('It looks like you have an Ethereum wallet available. Please unlock your account.')) { - transition.retry(); + let selectedNetworkId = window.ethereum.networkVersion; + let kreditsNetwork = kredits.getKreditsDeployedNetwork(); + let kreditsNetworkName; + + switch(kreditsNetwork) { + case '1': + kreditsNetworkName = "Main"; + break; + case '2': + kreditsNetworkName = "Morden Test"; + break; + case '3': + kreditsNetworkName = "Ropsten Test"; + break; + case '4': + kreditsNetworkName = "Rinkeby Test"; + break; + case '42': + kreditsNetworkName = "Kovan Test"; + break; + default: + kreditsNetworkName = "Rinkeby Test"; + } + + if(selectedNetworkId == kreditsNetwork) { + return kredits.setup().then(() => { + kredits.get('kredits').preflightChecks().catch((error) => { + console.error('Kredits preflight check failed!'); + console.error(error); + }); + if (kredits.get('accountNeedsUnlock')) { + if (confirm('It looks like you have an Ethereum wallet available. Please unlock your account.')) { + transition.retry(); + } } + }).catch((error) => { + console.log('Error initializing Kredits', error); + }); + } + else { + //need to better display this one maybe + if(confirm(`Please change to ${kreditsNetworkName} network!`)) { + transition.abort(); } - }).catch((error) => { - console.log('Error initializing Kredits', error); - }); + } + + window.ethereum.on('networkChanged', function() { + transition.retry(); + }) }, afterModel() { diff --git a/app/services/kredits.js b/app/services/kredits.js index e31e714..79776cc 100644 --- a/app/services/kredits.js +++ b/app/services/kredits.js @@ -136,6 +136,10 @@ export default Service.extend({ }); }, + getKreditsDeployedNetwork() { + return Kredits.availableNetworks(); + }, + setup () { return this.getEthProvider().then((providerAndSigner) => { let kredits = new Kredits(providerAndSigner.ethProvider, providerAndSigner.ethSigner, { diff --git a/package-lock.json b/package-lock.json index 1e1bb71..fec30f8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10815,7 +10815,7 @@ "bs58": "^4.0.1", "buffer": "^5.2.1", "cids": "~0.5.5", - "concat-stream": "github:hugomrdias/concat-stream#feat/smaller", + "concat-stream": "github:hugomrdias/concat-stream#057bc7b5d6d8df26c8cf00a3f151b6721a0a8034", "debug": "^4.1.0", "detect-node": "^2.0.4", "end-of-stream": "^1.4.1", @@ -10837,7 +10837,7 @@ "multibase": "~0.6.0", "multicodec": "~0.5.0", "multihashes": "~0.4.14", - "ndjson": "github:hugomrdias/ndjson#feat/readable-stream3", + "ndjson": "github:hugomrdias/ndjson#4db16da6b42e5b39bf300c3a7cde62abb3fa3a11", "once": "^1.4.0", "peer-id": "~0.12.2", "peer-info": "~0.15.1",