diff options
author | kumavis <kumavis@users.noreply.github.com> | 2016-06-04 06:40:41 +0800 |
---|---|---|
committer | kumavis <kumavis@users.noreply.github.com> | 2016-06-04 06:40:41 +0800 |
commit | b3520ee0ef9e36e8b62e10ae1547c18623234783 (patch) | |
tree | b094a08b9ebe437f5b61d8d0749ff6fd995e908f | |
parent | 6dec937c2a3b72cd5863edef1ced818fe32e43f0 (diff) | |
parent | b2b4b4dd25da0ac27fe2bcdb745ead9b193b6d9c (diff) | |
download | tangerine-wallet-browser-b3520ee0ef9e36e8b62e10ae1547c18623234783.tar tangerine-wallet-browser-b3520ee0ef9e36e8b62e10ae1547c18623234783.tar.gz tangerine-wallet-browser-b3520ee0ef9e36e8b62e10ae1547c18623234783.tar.bz2 tangerine-wallet-browser-b3520ee0ef9e36e8b62e10ae1547c18623234783.tar.lz tangerine-wallet-browser-b3520ee0ef9e36e8b62e10ae1547c18623234783.tar.xz tangerine-wallet-browser-b3520ee0ef9e36e8b62e10ae1547c18623234783.tar.zst tangerine-wallet-browser-b3520ee0ef9e36e8b62e10ae1547c18623234783.zip |
Merge pull request #245 from MetaMask/display_network
Display network
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | CHANGELOG.md | 1 | ||||
-rw-r--r-- | app/images/ethereum-network.jpg | bin | 0 -> 10807 bytes | |||
-rw-r--r-- | app/images/morden-test-network.jpg | bin | 0 -> 10517 bytes | |||
-rw-r--r-- | app/images/no-connection.jpg | bin | 0 -> 6946 bytes | |||
-rw-r--r-- | app/images/unknown-private-network.jpg | bin | 0 -> 3962 bytes | |||
-rw-r--r-- | app/scripts/background.js | 13 | ||||
-rw-r--r-- | app/scripts/lib/idStore.js | 16 | ||||
-rw-r--r-- | package.json | 2 | ||||
-rw-r--r-- | ui/app/actions.js | 8 | ||||
-rw-r--r-- | ui/app/app.js | 10 | ||||
-rw-r--r-- | ui/app/components/network.js | 44 |
12 files changed, 79 insertions, 16 deletions
diff --git a/.gitignore b/.gitignore index 476b197db..2ad6b035f 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ package .DS_Store builds/ +notes.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index c011ea6af..784c49cf5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## Current Master +- show network status in title bar - Added seed word recovery to config screen. ## 2.2.0 2016-06-02 diff --git a/app/images/ethereum-network.jpg b/app/images/ethereum-network.jpg Binary files differnew file mode 100644 index 000000000..61cb000ed --- /dev/null +++ b/app/images/ethereum-network.jpg diff --git a/app/images/morden-test-network.jpg b/app/images/morden-test-network.jpg Binary files differnew file mode 100644 index 000000000..458708c78 --- /dev/null +++ b/app/images/morden-test-network.jpg diff --git a/app/images/no-connection.jpg b/app/images/no-connection.jpg Binary files differnew file mode 100644 index 000000000..a5d21242b --- /dev/null +++ b/app/images/no-connection.jpg diff --git a/app/images/unknown-private-network.jpg b/app/images/unknown-private-network.jpg Binary files differnew file mode 100644 index 000000000..b8a5a9bbf --- /dev/null +++ b/app/images/unknown-private-network.jpg diff --git a/app/scripts/background.js b/app/scripts/background.js index 432040c53..f64209ecc 100644 --- a/app/scripts/background.js +++ b/app/scripts/background.js @@ -76,13 +76,20 @@ var providerOpts = { var provider = MetaMaskProvider(providerOpts) var web3 = new Web3(provider) idStore.web3 = web3 -idStore.getNetwork(3) +idStore.getNetwork() // log new blocks provider.on('block', function(block){ console.log('BLOCK CHANGED:', '#'+block.number.toString('hex'), '0x'+block.hash.toString('hex')) + + // Check network when restoring connectivity: + if (idStore._currentState.network === 'loading') { + idStore.getNetwork() + } }) +provider.on('error', idStore.getNetwork.bind(idStore)) + var ethStore = new EthStore(provider) idStore.setStore(ethStore) @@ -292,13 +299,13 @@ function addUnconfirmedMsg(msgParams, cb){ function setRpcTarget(rpcTarget){ configManager.setRpcTarget(rpcTarget) chrome.runtime.reload() - idStore.getNetwork(3) // 3 retry attempts + idStore.getNetwork() } function setProviderType(type) { configManager.setProviderType(type) chrome.runtime.reload() - idStore.getNetwork(3) + idStore.getNetwork() } function useEtherscanProvider() { diff --git a/app/scripts/lib/idStore.js b/app/scripts/lib/idStore.js index e9fc10cea..33d842d54 100644 --- a/app/scripts/lib/idStore.js +++ b/app/scripts/lib/idStore.js @@ -137,16 +137,22 @@ IdentityStore.prototype.revealAccount = function(cb) { cb(null) } -IdentityStore.prototype.getNetwork = function(tries) { - if (tries === 0) { - this._currentState.network = 'error' - return +IdentityStore.prototype.getNetwork = function(err) { + + if (err) { + this._currentState.network = 'loading' + this._didUpdate() } + this.web3.version.getNetwork((err, network) => { if (err) { - return this.getNetwork(tries - 1, cb) + this._currentState.network = 'loading' + return this._didUpdate() } + + console.log('web3.getNetwork returned ' + network) this._currentState.network = network + this._didUpdate() }) } diff --git a/package.json b/package.json index f1307a1fd..af032a79a 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "through2": "^2.0.1", "vreme": "^3.0.2", "web3": "ethereum/web3.js#0.16.0", - "web3-provider-engine": "^7.7.2", + "web3-provider-engine": "^7.8.1", "web3-stream-provider": "^2.0.1", "xtend": "^4.0.1" }, diff --git a/ui/app/actions.js b/ui/app/actions.js index 684d33f3d..dd38c5f0a 100644 --- a/ui/app/actions.js +++ b/ui/app/actions.js @@ -6,6 +6,8 @@ var actions = { toggleMenu: toggleMenu, SET_MENU_STATE: 'SET_MENU_STATE', closeMenu: closeMenu, + getNetworkStatus: 'getNetworkStatus', + // remote state UPDATE_METAMASK_STATE: 'UPDATE_METAMASK_STATE', updateMetamaskState: updateMetamaskState, @@ -135,6 +137,12 @@ function closeMenu() { } } +function getNetworkStatus(){ + return { + type: actions.getNetworkStatus, + } +} + // async actions function tryUnlockMetamask(password) { diff --git a/ui/app/app.js b/ui/app/app.js index 094cae76c..7d5d2108a 100644 --- a/ui/app/app.js +++ b/ui/app/app.js @@ -28,6 +28,7 @@ const txHelper = require('../lib/tx-helper') const SandwichExpando = require('sandwich-expando') const MenuDroppo = require('menu-droppo') const DropMenuItem = require('./components/drop-menu-item') +const NetworkIndicator = require('./components/network') module.exports = connect(mapStateToProps)(App) @@ -47,6 +48,7 @@ function mapStateToProps(state) { unconfTxs: state.metamask.unconfTxs, unconfMsgs: state.metamask.unconfMsgs, menuOpen: state.appState.menuOpen, + network: state.metamask.network, } } @@ -109,16 +111,10 @@ App.prototype.renderAppBar = function(){ }, }, state.isUnlocked && [ - // mini logo - h('img', { - height: 24, - width: 24, - src: '/images/icon-128.png', - }), + h(NetworkIndicator, {network: this.props.network}), // metamask name h('h1', 'MetaMask'), - // hamburger h(SandwichExpando, { width: 16, diff --git a/ui/app/components/network.js b/ui/app/components/network.js new file mode 100644 index 000000000..37046fd30 --- /dev/null +++ b/ui/app/components/network.js @@ -0,0 +1,44 @@ +const Component = require('react').Component +const h = require('react-hyperscript') +const inherits = require('util').inherits + +module.exports = Network + +inherits(Network, Component) + +function Network() { + Component.call(this) +} + +Network.prototype.render = function() { + const state = this.props + const networkNumber = state.network + let iconName, hoverText + const imagePath = "/images/" + + if (networkNumber == 'loading') { + return h('img', { + title: 'Attempting to connect to blockchain.', + style: { + width: '27px', + marginRight: '-16px' + }, + src: 'images/loading.svg', + }) + } else if (networkNumber == 1) { + hoverText = 'Main Ethereum Network' + iconName = 'ethereum-network' + }else if (networkNumber == 2) { + hoverText = "Morden Test Network" + iconName = 'morden-test-network' + }else { + hoverText = "Unknown Private Network" + iconName = 'unknown-private-network' + } + return ( + h('#network_component.flex-center', { + style: { marginRight: '-16px' }, + title: hoverText, + },[ h('img',{src: imagePath + iconName + ".jpg", width: '25px'}) ]) + ) +} |