From 5202fe0f8e064a9a5458d8bb452a273c5ebec7be Mon Sep 17 00:00:00 2001 From: Sebastian Kippe Date: Thu, 4 Apr 2019 10:57:02 +0200 Subject: [PATCH 1/3] Use new Infura URL/auth closes #83 --- config/environment.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/environment.js b/config/environment.js index 7ab6ff7..009e880 100644 --- a/config/environment.js +++ b/config/environment.js @@ -35,7 +35,7 @@ module.exports = function(environment) { ] }, - web3ProviderUrl: 'https://kovan.infura.io/keUVk6OMaAvpmRF3m57n', + web3ProviderUrl: 'https://rinkeby.infura.io/v3/d4f788b7a6584f7db2fc3c268d4d09e9', ipfs: { host: 'ipfs.kosmos.org', @@ -50,7 +50,7 @@ module.exports = function(environment) { // ENV.APP.LOG_TRANSITIONS = true; // ENV.APP.LOG_TRANSITIONS_INTERNAL = true; // ENV.APP.LOG_VIEW_LOOKUPS = true; - ENV.web3ProviderUrl = 'https://kovan.infura.io/keUVk6OMaAvpmRF3m57n'; + ENV.web3ProviderUrl = 'https://rinkeby.infura.io/v3/d4f788b7a6584f7db2fc3c268d4d09e9'; ENV.ipfs = { host: 'localhost', From 1f8fa367a56166d4c721f6bb024a0dc4983101ae Mon Sep 17 00:00:00 2001 From: Sebastian Kippe Date: Thu, 4 Apr 2019 12:13:39 +0200 Subject: [PATCH 2/3] Support new Metamask/Web3 privacy mode closes #87 --- app/services/kredits.js | 51 ++++++++++++++++++++++++++++++----------- 1 file changed, 37 insertions(+), 14 deletions(-) diff --git a/app/services/kredits.js b/app/services/kredits.js index cc057e7..4dadb25 100644 --- a/app/services/kredits.js +++ b/app/services/kredits.js @@ -33,20 +33,10 @@ export default Service.extend({ // this is called in the routes beforeModel(). So it is initialized before everything else // and we can rely on the ethProvider and the potential currentUserAccounts to be available getEthProvider: function() { - return new RSVP.Promise((resolve) => { - let ethProvider; - if (typeof window.web3 !== 'undefined') { - 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) => { - this.set('currentUserAccounts', accounts); - const ethSigner = accounts.length === 0 ? null : ethProvider.getSigner(); - resolve({ - ethProvider, - ethSigner - }); - }); - } else { + let ethProvider; + + return new RSVP.Promise(async (resolve) => { + function instantiateWithoutAccount () { console.debug('[kredits] Creating new instance from npm module class'); console.debug(`[kredits] providerURL: ${config.web3ProviderUrl}`); ethProvider = new ethers.providers.JsonRpcProvider(config.web3ProviderUrl); @@ -55,6 +45,39 @@ export default Service.extend({ ethSigner: null }); } + + function instantiateWithAccount (web3, context) { + console.debug('[kredits] Using user-provided instance, e.g. from Mist browser or Metamask'); + ethProvider = new ethers.providers.Web3Provider(web3.currentProvider); + ethProvider.listAccounts().then(accounts => { + context.set('currentUserAccounts', accounts); + const ethSigner = accounts.length === 0 ? null : ethProvider.getSigner(); + resolve({ + ethProvider, + ethSigner + }); + }); + } + + if (window.ethereum) { + window.web3 = new window.Web3(window.ethereum); + try { + // Request account access if needed + await window.ethereum.enable(); + // Acccounts now exposed + instantiateWithAccount(window.web3, this); + } catch (error) { + instantiateWithoutAccount(); + } + } + // Legacy dapp browsers... + else if (window.web3) { + instantiateWithAccount(window.web3, this); + } + // Non-dapp browsers... + else { + instantiateWithoutAccount(); + } }); }, From f0b75d96db5103873c1570c2eafb8db5e3817ed8 Mon Sep 17 00:00:00 2001 From: Michael Bumann Date: Fri, 5 Apr 2019 12:31:21 +0200 Subject: [PATCH 3/3] No bignumber anymore as numbers are uint32 in the contract so no bignumber in JS anymore --- app/services/kredits.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/services/kredits.js b/app/services/kredits.js index 4dadb25..e33b877 100644 --- a/app/services/kredits.js +++ b/app/services/kredits.js @@ -171,7 +171,6 @@ export default Service.extend({ return this.kredits.Contributor .functions.getContributorIdByAddress(this.get('currentUserAccounts.firstObject')) .then((id) => { - id = id.toNumber(); // check if the user is a contributor or not if (id === 0) { return RSVP.resolve(); @@ -234,7 +233,7 @@ export default Service.extend({ this.contributors .findBy('id', contributorId.toString()) - .incrementProperty('balance', amount.toNumber()); + .incrementProperty('balance', amount); }, handleTransfer(from, to, value) {