diff options
author | Kevin Serrano <kevin.serrano@consensys.net> | 2017-03-23 23:28:06 +0800 |
---|---|---|
committer | Kevin Serrano <kevin.serrano@consensys.net> | 2017-03-23 23:28:06 +0800 |
commit | fa0bbd66b6896188c5a47ed6978fc992068ae22c (patch) | |
tree | 79cdb5ebf5a960150e0652b5d37693adb1e9262c | |
parent | b9714b881a862302baa0c21d8b8c5360c0e9f85d (diff) | |
download | tangerine-wallet-browser-fa0bbd66b6896188c5a47ed6978fc992068ae22c.tar tangerine-wallet-browser-fa0bbd66b6896188c5a47ed6978fc992068ae22c.tar.gz tangerine-wallet-browser-fa0bbd66b6896188c5a47ed6978fc992068ae22c.tar.bz2 tangerine-wallet-browser-fa0bbd66b6896188c5a47ed6978fc992068ae22c.tar.lz tangerine-wallet-browser-fa0bbd66b6896188c5a47ed6978fc992068ae22c.tar.xz tangerine-wallet-browser-fa0bbd66b6896188c5a47ed6978fc992068ae22c.tar.zst tangerine-wallet-browser-fa0bbd66b6896188c5a47ed6978fc992068ae22c.zip |
Fix persistence of transactions between networks.
-rw-r--r-- | app/scripts/transaction-manager.js | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/app/scripts/transaction-manager.js b/app/scripts/transaction-manager.js index 31c1c8431..7227bdc87 100644 --- a/app/scripts/transaction-manager.js +++ b/app/scripts/transaction-manager.js @@ -47,27 +47,39 @@ module.exports = class TransactionManager extends EventEmitter { // Returns the tx list getTxList () { let network = this.getNetwork() - let fullTxList = this.store.getState().transactions + let fullTxList = this.getFullTxList() return fullTxList.filter(txMeta => txMeta.metamaskNetworkId === network) } + // Returns the number of txs for the current network. + getTxCount () { + return this.getTxList().length + } + + // Returns the full tx list across all networks + getFullTxList () { + return this.store.getState().transactions + } + // Adds a tx to the txlist addTx (txMeta) { - var txList = this.getTxList() - var txHistoryLimit = this.txHistoryLimit + let txCount = this.getTxCount() + let network = this.getNetwork() + let fullTxList = this.getFullTxList() + let txHistoryLimit = this.txHistoryLimit - // checks if the length of th tx history is + // checks if the length of the tx history is // longer then desired persistence limit // and then if it is removes only confirmed // or rejected tx's. // not tx's that are pending or unapproved - if (txList.length > txHistoryLimit - 1) { - var index = txList.findIndex((metaTx) => metaTx.status === 'confirmed' || metaTx.status === 'rejected') - txList.splice(index, 1) + if (txCount > txHistoryLimit - 1) { + var index = fullTxList.findIndex((metaTx) => ((metaTx.status === 'confirmed' || metaTx.status === 'rejected') && network === txMeta.metamaskNetworkId)) + fullTxList.splice(index, 1) } - txList.push(txMeta) + fullTxList.push(txMeta) - this._saveTxList(txList) + this._saveTxList(fullTxList) this.once(`${txMeta.id}:signed`, function (txId) { this.removeAllListeners(`${txMeta.id}:rejected`) }) @@ -89,7 +101,7 @@ module.exports = class TransactionManager extends EventEmitter { // updateTx (txMeta) { var txId = txMeta.id - var txList = this.getTxList() + var txList = this.getFullTxList() var index = txList.findIndex(txData => txData.id === txId) txList[index] = txMeta this._saveTxList(txList) |