diff options
author | Csaba Solya <csaba.solya@gmail.com> | 2018-05-10 19:26:02 +0800 |
---|---|---|
committer | Csaba Solya <csaba.solya@gmail.com> | 2018-05-10 19:26:02 +0800 |
commit | 9026651224f03069d3ab80cef5fe1386f9d7a532 (patch) | |
tree | 5ab373e3eef6549bc6ea0d319dbcb59d77c9ea85 /app | |
parent | f17dc5f4520ce6f9f08db1e87ec9a8917697029a (diff) | |
download | tangerine-wallet-browser-9026651224f03069d3ab80cef5fe1386f9d7a532.tar tangerine-wallet-browser-9026651224f03069d3ab80cef5fe1386f9d7a532.tar.gz tangerine-wallet-browser-9026651224f03069d3ab80cef5fe1386f9d7a532.tar.bz2 tangerine-wallet-browser-9026651224f03069d3ab80cef5fe1386f9d7a532.tar.lz tangerine-wallet-browser-9026651224f03069d3ab80cef5fe1386f9d7a532.tar.xz tangerine-wallet-browser-9026651224f03069d3ab80cef5fe1386f9d7a532.tar.zst tangerine-wallet-browser-9026651224f03069d3ab80cef5fe1386f9d7a532.zip |
add time stamps to transaction history log entries
Diffstat (limited to 'app')
-rw-r--r-- | app/scripts/controllers/transactions/lib/tx-state-history-helper.js | 21 | ||||
-rw-r--r-- | app/scripts/controllers/transactions/tx-state-manager.js | 23 |
2 files changed, 28 insertions, 16 deletions
diff --git a/app/scripts/controllers/transactions/lib/tx-state-history-helper.js b/app/scripts/controllers/transactions/lib/tx-state-history-helper.js index 59a4b562c..bb51c9871 100644 --- a/app/scripts/controllers/transactions/lib/tx-state-history-helper.js +++ b/app/scripts/controllers/transactions/lib/tx-state-history-helper.js @@ -25,26 +25,31 @@ function migrateFromSnapshotsToDiffs (longHistory) { } /** - generates an array of history objects sense the previous state. - The object has the keys opp(the operation preformed), - path(the key and if a nested object then each key will be seperated with a `/`) - value - with the first entry having the note + Generates an array of history objects sense the previous state. + The object has the keys + op (the operation performed), + path (the key and if a nested object then each key will be seperated with a `/`) + value + with the first entry having the note and a timestamp when the change took place @param previousState {object} - the previous state of the object @param newState {object} - the update object @param note {string} - a optional note for the state change - @reurns {array} + @returns {array} */ function generateHistoryEntry (previousState, newState, note) { const entry = jsonDiffer.compare(previousState, newState) // Add a note to the first op, since it breaks if we append it to the entry - if (note && entry[0]) entry[0].note = note + if (entry[0]) { + if (note) entry[0].note = note + + entry[0].timestamp = (new Date()).getTime() + } return entry } /** Recovers previous txMeta state obj - @return {object} + @returns {object} */ function replayHistory (_shortHistory) { const shortHistory = clone(_shortHistory) diff --git a/app/scripts/controllers/transactions/tx-state-manager.js b/app/scripts/controllers/transactions/tx-state-manager.js index 380214c1d..0aae4774b 100644 --- a/app/scripts/controllers/transactions/tx-state-manager.js +++ b/app/scripts/controllers/transactions/tx-state-manager.js @@ -2,6 +2,7 @@ const extend = require('xtend') const EventEmitter = require('events') const ObservableStore = require('obs-store') const ethUtil = require('ethereumjs-util') +const log = require('loglevel') const txStateHistoryHelper = require('./lib/tx-state-history-helper') const createId = require('../../lib/random-id') const { getFinalStates } = require('./lib/util') @@ -158,7 +159,7 @@ class TransactionStateManager extends EventEmitter { /** updates the txMeta in the list and adds a history entry @param txMeta {Object} - the txMeta to update - @param [note] {string} - a not about the update for history + @param [note] {string} - a note about the update for history */ updateTx (txMeta, note) { // validate txParams @@ -398,13 +399,19 @@ class TransactionStateManager extends EventEmitter { _setTxStatus (txId, status) { const txMeta = this.getTx(txId) txMeta.status = status - this.emit(`${txMeta.id}:${status}`, txId) - this.emit(`tx:status-update`, txId, status) - if (['submitted', 'rejected', 'failed'].includes(status)) { - this.emit(`${txMeta.id}:finished`, txMeta) - } - this.updateTx(txMeta, `txStateManager: setting status to ${status}`) - this.emit('update:badge') + setTimeout(() => { + try { + this.updateTx(txMeta, `txStateManager: setting status to ${status}`) + this.emit(`${txMeta.id}:${status}`, txId) + this.emit(`tx:status-update`, txId, status) + if (['submitted', 'rejected', 'failed'].includes(status)) { + this.emit(`${txMeta.id}:finished`, txMeta) + } + this.emit('update:badge') + } catch (error) { + log.error(error) + } + }) } /** |