diff --git a/CHANGELOG.md b/CHANGELOG.md index e5f85dbb2..905f1f98f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,16 @@ ## Current Master +## 3.13.7 2018-1-22 + +- Add ability to bypass gas estimation loading indicator. +- Forward failed transactions to Sentry error reporting service +- Re-add changes from 3.13.5 + +## 3.13.6 2017-1-18 + +- Roll back changes to 3.13.4 to fix some issues with the new Infura REST provider. + ## 3.13.5 2018-1-16 - Estimating gas limit for simple ether sends now faster & cheaper, by avoiding VM usage on recipients with no code. diff --git a/app/manifest.json b/app/manifest.json index d906382e9..d795a225a 100644 --- a/app/manifest.json +++ b/app/manifest.json @@ -1,7 +1,7 @@ { "name": "MetaMask", "short_name": "Metamask", - "version": "4.0.10", + "version": "3.13.7", "manifest_version": 2, "author": "https://metamask.io", "description": "Ethereum Browser Extension", diff --git a/app/scripts/background.js b/app/scripts/background.js index 8c1252d3e..0471cee3b 100644 --- a/app/scripts/background.js +++ b/app/scripts/background.js @@ -27,7 +27,7 @@ global.METAMASK_NOTIFIER = notificationManager // setup sentry error reporting const release = platform.getVersion() -setupRaven({ release }) +const raven = setupRaven({ release }) let popupIsOpen = false @@ -77,6 +77,16 @@ function setupController (initState) { }) global.metamaskController = controller + // report failed transactions to Sentry + controller.txController.on(`tx:status-update`, (txId, status) => { + if (status !== 'failed') return + const txMeta = controller.txController.txStateManager.getTx(txId) + raven.captureMessage('Transaction Failed', { + // "extra" key is required by Sentry + extra: txMeta, + }) + }) + // setup state persistence pump( asStream(controller.store), diff --git a/app/scripts/setupRaven.js b/app/scripts/setupRaven.js index 4888c85fe..7beffeff9 100644 --- a/app/scripts/setupRaven.js +++ b/app/scripts/setupRaven.js @@ -21,4 +21,6 @@ function setupRaven(opts) { Raven.config(ravenTarget, { release, }).install() + + return Raven } diff --git a/old-ui/app/components/loading.js b/old-ui/app/components/loading.js index 163792584..b8e2eb599 100644 --- a/old-ui/app/components/loading.js +++ b/old-ui/app/components/loading.js @@ -11,7 +11,7 @@ function LoadingIndicator () { } LoadingIndicator.prototype.render = function () { - const { isLoading, loadingMessage } = this.props + const { isLoading, loadingMessage, canBypass, bypass } = this.props return ( isLoading ? h('.full-flex-height', { @@ -28,6 +28,16 @@ LoadingIndicator.prototype.render = function () { background: 'rgba(255, 255, 255, 0.8)', }, }, [ + canBypass ? h( 'i.fa.fa-close.cursor-pointer.close-loading', { + style: { + position: 'absolute', + top: '1px', + right: '15px', + color: '#AEAEAE', + }, + onClick: bypass, + }) : null, + h('img', { src: 'images/loading.svg', }), diff --git a/old-ui/app/conf-tx.js b/old-ui/app/conf-tx.js index 5e2ae9e78..1bb8eb97c 100644 --- a/old-ui/app/conf-tx.js +++ b/old-ui/app/conf-tx.js @@ -62,8 +62,12 @@ ConfirmTxScreen.prototype.render = function () { h('.flex-column.flex-grow', [ h(LoadingIndicator, { - isLoading: txData.loadingDefaults, + isLoading: this.state ? !this.state.bypassLoadingScreen : txData.loadingDefaults, loadingMessage: 'Estimating transaction cost…', + canBypass: true, + bypass: () => { + this.setState({bypassLoadingScreen: true}) + }, }), // subtitle and nav diff --git a/package.json b/package.json index bf15acc3b..bbecb1f40 100644 --- a/package.json +++ b/package.json @@ -78,7 +78,7 @@ "eth-bin-to-ops": "^1.0.1", "eth-block-tracker": "^2.3.0", "eth-json-rpc-filters": "^1.2.5", - "eth-json-rpc-infura": "^2.0.7", + "eth-json-rpc-infura": "^2.0.11", "eth-keyring-controller": "^2.1.4", "eth-contract-metadata": "^1.1.5", "eth-hd-keyring": "^1.2.1", @@ -113,7 +113,7 @@ "iframe-stream": "^3.0.0", "inject-css": "^0.1.1", "jazzicon": "^1.2.0", - "json-rpc-engine": "^3.5.0", + "json-rpc-engine": "^3.6.1", "json-rpc-middleware-stream": "^1.0.1", "lodash.debounce": "^4.0.8", "lodash.memoize": "^4.1.2", @@ -169,7 +169,7 @@ "valid-url": "^1.0.9", "vreme": "^3.0.2", "web3": "^0.20.1", - "web3-provider-engine": "^13.5.0", + "web3-provider-engine": "^13.5.6", "web3-stream-provider": "^3.0.1", "xtend": "^4.0.1" },