diff options
author | Frankie <frankie.diamond@gmail.com> | 2017-08-18 01:29:09 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-08-18 01:29:08 +0800 |
commit | 5f9862c89e2357a26384e1b48ab34ba052e967a4 (patch) | |
tree | 1e6c020045a780070f894d6bbf7554d78da2ee63 | |
parent | 9b57c77cb8db1a76dd8ac4a6ef3fb9fd4531b127 (diff) | |
parent | f684b53b69116ef6b9e2b0449956d8f59df56253 (diff) | |
download | tangerine-wallet-browser-5f9862c89e2357a26384e1b48ab34ba052e967a4.tar tangerine-wallet-browser-5f9862c89e2357a26384e1b48ab34ba052e967a4.tar.gz tangerine-wallet-browser-5f9862c89e2357a26384e1b48ab34ba052e967a4.tar.bz2 tangerine-wallet-browser-5f9862c89e2357a26384e1b48ab34ba052e967a4.tar.lz tangerine-wallet-browser-5f9862c89e2357a26384e1b48ab34ba052e967a4.tar.xz tangerine-wallet-browser-5f9862c89e2357a26384e1b48ab34ba052e967a4.tar.zst tangerine-wallet-browser-5f9862c89e2357a26384e1b48ab34ba052e967a4.zip |
Merge pull request #1935 from MetaMask/i1091-ShowTxErrors
Transition home after tx errors
-rw-r--r-- | CHANGELOG.md | 2 | ||||
-rw-r--r-- | test/unit/actions/tx_test.js | 87 | ||||
-rw-r--r-- | ui/app/actions.js | 23 |
3 files changed, 8 insertions, 104 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index d4fecac83..88c794652 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## Current Master +- Fix bug where some transaction submission errors would show an empty screen. + ## 3.9.8 2017-8-16 - Reenable token list. diff --git a/test/unit/actions/tx_test.js b/test/unit/actions/tx_test.js index 67c72e9a5..ea6dfda6a 100644 --- a/test/unit/actions/tx_test.js +++ b/test/unit/actions/tx_test.js @@ -53,7 +53,7 @@ describe('tx confirmation screen', function () { result = reducers(initialState, action) done() }) - + }) it('should transition to the account detail view', function () { @@ -65,91 +65,6 @@ describe('tx confirmation screen', function () { assert.equal(count, 0) }) }) - - describe('sendTx', function () { - var result - - describe('when there is an error', function () { - before(function (done) { - actions._setBackgroundConnection({ - approveTransaction (txId, cb) { cb({message: 'An error!'}) }, - }) - - actions.sendTx({id: firstTxId})(function (action) { - result = reducers(initialState, action) - done() - }) - }) - - it('should stay on the page', function () { - assert.equal(result.appState.currentView.name, 'confTx') - }) - - it('should set errorMessage on the currentView', function () { - assert(result.appState.currentView.errorMessage) - }) - }) - - describe('when there is success', function () { - it('should complete tx and go home', function () { - actions._setBackgroundConnection({ - approveTransaction (txId, cb) { cb() }, - }) - - var dispatchExpect = sinon.mock() - dispatchExpect.twice() - - actions.sendTx({id: firstTxId})(dispatchExpect) - }) - }) - }) - - describe('when there are two pending txs', function () { - var firstTxId = 1457634084250832 - var result, initialState - before(function (done) { - initialState = { - appState: { - currentView: { - name: 'confTx', - }, - }, - metamask: { - unapprovedTxs: { - '1457634084250832': { - id: firstTxId, - status: 'unconfirmed', - time: 1457634084250, - }, - '1457634084250833': { - id: 1457634084250833, - status: 'unconfirmed', - time: 1457634084255, - }, - }, - }, - } - freeze(initialState) - - // Mocking a background connection: - actions._setBackgroundConnection({ - approveTransaction (firstTxId, cb) { cb() }, - }) - - actions.sendTx({id: firstTxId})(function (action) { - result = reducers(initialState, action) - }) - done() - }) - - it('should stay on the confTx view', function () { - assert.equal(result.appState.currentView.name, 'confTx') - }) - - it('should transition to the first tx', function () { - assert.equal(result.appState.currentView.context, 0) - }) - }) }) }) diff --git a/ui/app/actions.js b/ui/app/actions.js index eafd04b4c..eebe65ba2 100644 --- a/ui/app/actions.js +++ b/ui/app/actions.js @@ -97,7 +97,6 @@ var actions = { cancelMsg: cancelMsg, signPersonalMsg, cancelPersonalMsg, - sendTx: sendTx, signTx: signTx, updateAndApproveTx, cancelTx: cancelTx, @@ -397,26 +396,13 @@ function signPersonalMsg (msgData) { function signTx (txData) { return (dispatch) => { + dispatch(actions.showLoadingIndication()) global.ethQuery.sendTransaction(txData, (err, data) => { dispatch(actions.hideLoadingIndication()) - if (err) return dispatch(actions.displayWarning(err.message)) - dispatch(actions.hideWarning()) - }) - dispatch(this.showConfTxPage()) - } -} - -function sendTx (txData) { - log.info(`actions - sendTx: ${JSON.stringify(txData.txParams)}`) - return (dispatch) => { - log.debug(`actions calling background.approveTransaction`) - background.approveTransaction(txData.id, (err) => { - if (err) { - dispatch(actions.txError(err)) - return log.error(err.message) - } - dispatch(actions.completedTx(txData.id)) + if (err) dispatch(actions.displayWarning(err.message)) + dispatch(this.goHome()) }) + dispatch(actions.showConfTxPage()) } } @@ -428,6 +414,7 @@ function updateAndApproveTx (txData) { dispatch(actions.hideLoadingIndication()) if (err) { dispatch(actions.txError(err)) + dispatch(actions.goHome()) return log.error(err.message) } dispatch(actions.completedTx(txData.id)) |