aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/lib/config-manager.js
diff options
context:
space:
mode:
authorDan Finlay <dan@danfinlay.com>2016-04-19 08:44:10 +0800
committerDan Finlay <dan@danfinlay.com>2016-04-19 08:44:10 +0800
commit7291e3f1b32f933ef1c8cc9c2f96f48bb6f33652 (patch)
tree920378800e10539cc02330fcf0a110f91079c9b5 /app/scripts/lib/config-manager.js
parent15e953f11f2675a54447fa0eed6f46925a73d077 (diff)
parent28f14661fd484f215c5bfdc93e1b447ddcdb42ca (diff)
downloadtangerine-wallet-browser-7291e3f1b32f933ef1c8cc9c2f96f48bb6f33652.tar
tangerine-wallet-browser-7291e3f1b32f933ef1c8cc9c2f96f48bb6f33652.tar.gz
tangerine-wallet-browser-7291e3f1b32f933ef1c8cc9c2f96f48bb6f33652.tar.bz2
tangerine-wallet-browser-7291e3f1b32f933ef1c8cc9c2f96f48bb6f33652.tar.lz
tangerine-wallet-browser-7291e3f1b32f933ef1c8cc9c2f96f48bb6f33652.tar.xz
tangerine-wallet-browser-7291e3f1b32f933ef1c8cc9c2f96f48bb6f33652.tar.zst
tangerine-wallet-browser-7291e3f1b32f933ef1c8cc9c2f96f48bb6f33652.zip
Merge branch 'AddPersistentTransactionLog'
Diffstat (limited to 'app/scripts/lib/config-manager.js')
-rw-r--r--app/scripts/lib/config-manager.js50
1 files changed, 50 insertions, 0 deletions
diff --git a/app/scripts/lib/config-manager.js b/app/scripts/lib/config-manager.js
index f024729cc..356d53c22 100644
--- a/app/scripts/lib/config-manager.js
+++ b/app/scripts/lib/config-manager.js
@@ -134,6 +134,56 @@ ConfigManager.prototype.setData = function(data) {
this.migrator.saveData(data)
}
+ConfigManager.prototype.getTxList = function() {
+ var data = this.migrator.getData()
+ if ('transactions' in data) {
+ return data.transactions
+ } else {
+ return []
+ }
+}
+
+ConfigManager.prototype._saveTxList = function(txList) {
+ var data = this.migrator.getData()
+ data.transactions = txList
+ this.setData(data)
+}
+
+ConfigManager.prototype.addTx = function(tx) {
+ var transactions = this.getTxList()
+ transactions.push(tx)
+ this._saveTxList(transactions)
+}
+
+ConfigManager.prototype.getTx = function(txId) {
+ var transactions = this.getTxList()
+ var matching = transactions.filter(tx => tx.id === txId)
+ return matching.length > 0 ? matching[0] : null
+}
+
+ConfigManager.prototype.confirmTx = function(txId) {
+ this._setTxStatus(txId, 'confirmed')
+}
+
+ConfigManager.prototype.rejectTx = function(txId) {
+ this._setTxStatus(txId, 'rejected')
+}
+
+ConfigManager.prototype._setTxStatus = function(txId, status) {
+ var transactions = this.getTxList()
+ transactions.forEach((tx) => {
+ if (tx.id === txId) {
+ tx.status = status
+ }
+ })
+ this._saveTxList(transactions)
+}
+ConfigManager.prototype.unconfirmedTxs = function() {
+ var transactions = this.getTxList()
+ return transactions.filter(tx => tx.status === 'unconfirmed')
+ .reduce((result, tx) => { result[tx.id] = tx; return result }, {})
+}
+
// observable
ConfigManager.prototype.subscribe = function(fn){