mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
Fail transactions after a day of retries
This commit is contained in:
parent
4de977e63e
commit
0ad310e096
@ -40,6 +40,10 @@ module.exports = class TransactionController extends EventEmitter {
|
||||
err: undefined,
|
||||
})
|
||||
},
|
||||
giveUpOnTransaction: (txId) => {
|
||||
const msg = `Gave up submitting after 3500 blocks un-mined.`
|
||||
this.setTxStatusFailed(txId, msg)
|
||||
},
|
||||
})
|
||||
this.query = new EthQuery(this.provider)
|
||||
this.txProviderUtil = new TxProviderUtil(this.provider)
|
||||
@ -451,4 +455,4 @@ module.exports = class TransactionController extends EventEmitter {
|
||||
})
|
||||
this.memStore.updateState({ unapprovedTxs, selectedAddressTxList })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
const EventEmitter = require('events')
|
||||
const EthQuery = require('ethjs-query')
|
||||
const sufficientBalance = require('./util').sufficientBalance
|
||||
const RETRY_LIMIT = 3500 // Retry 3500 blocks, or about 1 day.
|
||||
/*
|
||||
|
||||
Utility class for tracking the transactions as they
|
||||
@ -28,6 +29,7 @@ module.exports = class PendingTransactionTracker extends EventEmitter {
|
||||
this.getBalance = config.getBalance
|
||||
this.getPendingTransactions = config.getPendingTransactions
|
||||
this.publishTransaction = config.publishTransaction
|
||||
this.giveUpOnTransaction = config.giveUpOnTransaction
|
||||
}
|
||||
|
||||
// checks if a signed tx is in a block and
|
||||
@ -100,6 +102,10 @@ module.exports = class PendingTransactionTracker extends EventEmitter {
|
||||
if (balance === undefined) return
|
||||
if (!('retryCount' in txMeta)) txMeta.retryCount = 0
|
||||
|
||||
if (txMeta.retryCount > RETRY_LIMIT) {
|
||||
return this.giveUpOnTransaction(txMeta.id)
|
||||
}
|
||||
|
||||
// if the value of the transaction is greater then the balance, fail.
|
||||
if (!sufficientBalance(txMeta.txParams, balance)) {
|
||||
const insufficientFundsError = new Error('Insufficient balance during rebroadcast.')
|
||||
@ -160,4 +166,4 @@ module.exports = class PendingTransactionTracker extends EventEmitter {
|
||||
}
|
||||
nonceGlobalLock.releaseLock()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user