1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-26 12:29:06 +01:00

tx controller - correctly set error message on resubmit error

This commit is contained in:
kumavis 2017-07-07 19:09:32 -07:00
parent 4fa999e4de
commit c53aac398a

View File

@ -417,14 +417,13 @@ module.exports = class TransactionController extends EventEmitter {
// only try resubmitting if their are transactions to resubmit
if (!pending.length) return
const resubmit = denodeify(this._resubmitTx.bind(this))
pending.forEach((txMeta) => resubmit(txMeta)
.catch((reason) => {
pending.forEach((txMeta) => resubmit(txMeta).catch((err) => {
/*
Dont marked as failed if the error is a "known" transaction warning
"there is already a transaction with the same sender-nonce
but higher/same gas price"
*/
const errorMessage = reason.message.toLowerCase()
const errorMessage = err.message.toLowerCase()
const isKnownTx = (
// geth
errorMessage === 'replacement transaction underpriced'
@ -434,7 +433,12 @@ module.exports = class TransactionController extends EventEmitter {
|| errorMessage === 'transaction with the same hash was already imported.'
)
// ignore resubmit warnings, return early
if (!isKnownTx) this.setTxStatusFailed(txMeta.id, reason.message)
if (isKnownTx) return
// encountered real error - transition to error state
this.setTxStatusFailed(txMeta.id, {
errCode: err.errCode || err,
message: err.message,
})
}))
}