From 64d94fd315774529e3dbc444d94b2aadbdf999d6 Mon Sep 17 00:00:00 2001 From: Garret Alfert Date: Thu, 4 Apr 2019 11:48:42 +0200 Subject: [PATCH] Add support for new metamask privacy mode --- app/services/kredits.js | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/app/services/kredits.js b/app/services/kredits.js index cc057e7..704332b 100644 --- a/app/services/kredits.js +++ b/app/services/kredits.js @@ -5,7 +5,7 @@ import RSVP from 'rsvp'; import Service from '@ember/service'; import { computed } from '@ember/object'; import { alias, notEmpty } from '@ember/object/computed'; -import { isEmpty } from '@ember/utils'; +import { isEmpty, isPresent } from '@ember/utils'; import config from 'kredits-web/config/environment'; import Contributor from 'kredits-web/models/contributor' @@ -35,7 +35,20 @@ export default Service.extend({ getEthProvider: function() { return new RSVP.Promise((resolve) => { let ethProvider; - if (typeof window.web3 !== 'undefined') { + if (isPresent(window.ethereum)) { + window.web3 = new window.Web3(window.ethereum); + window.ethereum.enable().then(() => { + ethProvider = new ethers.providers.Web3Provider(window.web3.currentProvider); + ethProvider.listAccounts().then((accounts) => { + this.set('currentUserAccounts', accounts); + const ethSigner = accounts.length === 0 ? null : ethProvider.getSigner(); + resolve({ + ethProvider, + ethSigner + }); + }); + }); + } else if (isPresent(window.web3)) { console.debug('[kredits] Using user-provided instance, e.g. from Mist browser or Metamask'); ethProvider = new ethers.providers.Web3Provider(window.web3.currentProvider); ethProvider.listAccounts().then((accounts) => {