mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
Merge pull request #1935 from MetaMask/i1091-ShowTxErrors
Transition home after tx errors
This commit is contained in:
commit
5f9862c89e
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
## Current Master
|
## Current Master
|
||||||
|
|
||||||
|
- Fix bug where some transaction submission errors would show an empty screen.
|
||||||
|
|
||||||
## 3.9.8 2017-8-16
|
## 3.9.8 2017-8-16
|
||||||
|
|
||||||
- Reenable token list.
|
- Reenable token list.
|
||||||
|
@ -53,7 +53,7 @@ describe('tx confirmation screen', function () {
|
|||||||
result = reducers(initialState, action)
|
result = reducers(initialState, action)
|
||||||
done()
|
done()
|
||||||
})
|
})
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
it('should transition to the account detail view', function () {
|
it('should transition to the account detail view', function () {
|
||||||
@ -65,91 +65,6 @@ describe('tx confirmation screen', function () {
|
|||||||
assert.equal(count, 0)
|
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)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -97,7 +97,6 @@ var actions = {
|
|||||||
cancelMsg: cancelMsg,
|
cancelMsg: cancelMsg,
|
||||||
signPersonalMsg,
|
signPersonalMsg,
|
||||||
cancelPersonalMsg,
|
cancelPersonalMsg,
|
||||||
sendTx: sendTx,
|
|
||||||
signTx: signTx,
|
signTx: signTx,
|
||||||
updateAndApproveTx,
|
updateAndApproveTx,
|
||||||
cancelTx: cancelTx,
|
cancelTx: cancelTx,
|
||||||
@ -397,26 +396,13 @@ function signPersonalMsg (msgData) {
|
|||||||
|
|
||||||
function signTx (txData) {
|
function signTx (txData) {
|
||||||
return (dispatch) => {
|
return (dispatch) => {
|
||||||
|
dispatch(actions.showLoadingIndication())
|
||||||
global.ethQuery.sendTransaction(txData, (err, data) => {
|
global.ethQuery.sendTransaction(txData, (err, data) => {
|
||||||
dispatch(actions.hideLoadingIndication())
|
dispatch(actions.hideLoadingIndication())
|
||||||
if (err) return dispatch(actions.displayWarning(err.message))
|
if (err) dispatch(actions.displayWarning(err.message))
|
||||||
dispatch(actions.hideWarning())
|
dispatch(this.goHome())
|
||||||
})
|
|
||||||
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))
|
|
||||||
})
|
})
|
||||||
|
dispatch(actions.showConfTxPage())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -428,6 +414,7 @@ function updateAndApproveTx (txData) {
|
|||||||
dispatch(actions.hideLoadingIndication())
|
dispatch(actions.hideLoadingIndication())
|
||||||
if (err) {
|
if (err) {
|
||||||
dispatch(actions.txError(err))
|
dispatch(actions.txError(err))
|
||||||
|
dispatch(actions.goHome())
|
||||||
return log.error(err.message)
|
return log.error(err.message)
|
||||||
}
|
}
|
||||||
dispatch(actions.completedTx(txData.id))
|
dispatch(actions.completedTx(txData.id))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user