diff --git a/dapp/controllers/navCtrl.js b/dapp/controllers/navCtrl.js index 5357da31..1b9b63a0 100644 --- a/dapp/controllers/navCtrl.js +++ b/dapp/controllers/navCtrl.js @@ -7,6 +7,7 @@ $scope.isElectron = isElectron; $scope.config = Config.getConfiguration(); $scope.metamaskInjected = Web3Service.isMetamaskInjected(); + $scope.web3ProviderName = null; // Reload config when it changes $scope.$watch( @@ -219,6 +220,7 @@ Connection.checkConnection(); $scope.updateConnectionStatus(); $scope.connectionInterval = $interval($scope.updateConnectionStatus, txDefault.connectionChecker.checkInterval); + $scope.web3ProviderName = txDefault.wallet; $scope.updateInfo().then(function () { var chooseWeb3ProviderShown = Config.getConfiguration('chooseWeb3ProviderShown'); diff --git a/dapp/index.html b/dapp/index.html index 52218d94..c998d7a6 100644 --- a/dapp/index.html +++ b/dapp/index.html @@ -179,7 +179,7 @@ {{ethereumChain.chain.substr(0, 1).toUpperCase() + ethereumChain.chain.substr(1)}} -
  • +
  • Unlock Metamask
  • diff --git a/dapp/package.json b/dapp/package.json index 5d4b641c..570232c6 100644 --- a/dapp/package.json +++ b/dapp/package.json @@ -1,6 +1,6 @@ { "name": "multisigweb", - "version": "1.4.0", + "version": "1.4.1", "eslintConfig": { "env": { "browser": true, diff --git a/dapp/services/Web3Service.js b/dapp/services/Web3Service.js index 25115222..ee19ad89 100644 --- a/dapp/services/Web3Service.js +++ b/dapp/services/Web3Service.js @@ -24,7 +24,7 @@ */ factory.enableMetamask = function (callback) { $window.ethereum.enable().then(function (accounts) { - factory.reloadWeb3Provider(); + factory.reloadWeb3Provider(null, callback); // Set accounts and coinbase factory.accounts = accounts; factory.coinbase = accounts[0]; @@ -67,26 +67,26 @@ // Ledger wallet if (txDefault.wallet == "ledger") { if (isElectron) { - factory.ledgerElectronSetup(); - factory.web3.eth.getAccounts(function (e, accounts) { - if (e) { - if (reject) { - reject(e); - } - } else { - factory.accounts = accounts; - factory.coinbase = factory.accounts[0]; - if (resolve) { - resolve(); - } + factory.ledgerElectronSetup().then(function () { + if (resolve) { + resolve() } - }); + }, function (e) { + if (reject) { + reject(e) + } + }) } else { - factory.ledgerSetup(); - if (resolve) { - resolve(); - } + factory.ledgerSetup().then(function () { + if (resolve) { + resolve() + } + }, function (e) { + if (reject) { + reject(e) + } + }) } } else if (txDefault.wallet == "trezor") { @@ -240,42 +240,70 @@ }); }; + // /** + // * Get ethereum accounts and update account list. + // */ + // factory.updateAccounts = function (cb) { + // if (!isElectron && factory.coinbase) { + // return factory.web3.eth.getAccounts( + // function (e, accounts) { + // if (e) { + // cb(e); + // } + // else { + // factory.accounts = accounts; + // + // if (factory.coinbase && accounts && accounts.length && accounts.indexOf(factory.coinbase) != -1) { + // // same coinbase + // } + // else if (accounts) { + // factory.coinbase = accounts[0]; + // } + // else { + // factory.coinbase = null; + // } + // + // cb(null, accounts); + // } + // } + // ); + // } + // else { + // cb(null, null); + // } + // }; + /** * Get ethereum accounts and update account list. */ factory.updateAccounts = function (cb) { - if (!isElectron && factory.coinbase) { - return factory.web3.eth.getAccounts( - function (e, accounts) { - if (e) { - cb(e); + return factory.web3.eth.getAccounts( + function (e, accounts) { + if (e) { + cb(e); + } + else { + factory.accounts = accounts; + + if (factory.coinbase && accounts && accounts.length && accounts.indexOf(factory.coinbase) != -1) { + // same coinbase + } + else if (accounts) { + factory.coinbase = accounts[0]; } else { - factory.accounts = accounts; - - if (factory.coinbase && accounts && accounts.length && accounts.indexOf(factory.coinbase) != -1) { - // same coinbase - } - else if (accounts) { - factory.coinbase = accounts[0]; - } - else { - factory.coinbase = null; - } - - cb(null, accounts); + factory.coinbase = null; } + + cb(null, accounts); } - ); - } - else { - cb(null, null); - } + } + ); }; /* Ledger setup on browser*/ factory.ledgerSetup = function () { - ledgerwallet( + return ledgerwallet( { rpcUrl: txDefault.ethereumNode, onSubmit: function () { @@ -332,6 +360,18 @@ $scope.checkCoinbase(); } }); + + return new Promise(function(resolve, reject) { + factory.web3.eth.getAccounts(function (e, accounts) { + if (e) { + reject(e); + } else { + factory.accounts = accounts; + factory.coinbase = factory.accounts[0]; + resolve(); + } + }); + }); } ); }; @@ -424,6 +464,18 @@ $scope.checkCoinbase(); } }); + + return new Promise(function(resolve, reject) { + factory.web3.eth.getAccounts(function (e, accounts) { + if (e) { + reject(e); + } else { + factory.accounts = accounts; + factory.coinbase = factory.accounts[0]; + resolve(); + } + }); + }); }; /* Trezor setup */ diff --git a/package.json b/package.json index 634c2242..4e7bacdc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "multisig-wallet-gnosis", - "version": "1.4.0", + "version": "1.4.1", "description": "Main module, for installing all dependencies", "scripts": { "test-dapp": "cd dapp && npm test",