mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-22 09:57:02 +01:00
Add extra tx methods to configManager
This commit is contained in:
parent
0a0a631af2
commit
901d23a029
@ -161,6 +161,16 @@ ConfigManager.prototype.getTx = function(txId) {
|
|||||||
return matching.length > 0 ? matching[0] : null
|
return matching.length > 0 ? matching[0] : null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ConfigManager.prototype.getTxWithParams = function(params) {
|
||||||
|
var transactions = this.getTxList()
|
||||||
|
var matching = transactions.filter((tx) => {
|
||||||
|
return Object.keys(tx.txParams).reduce((result, key) => {
|
||||||
|
return tx.params[key] === params[key] && result
|
||||||
|
}, true)
|
||||||
|
})
|
||||||
|
return matching.length > 0 ? matching[0] : null
|
||||||
|
}
|
||||||
|
|
||||||
ConfigManager.prototype.confirmTx = function(txId) {
|
ConfigManager.prototype.confirmTx = function(txId) {
|
||||||
this._setTxStatus(txId, 'confirmed')
|
this._setTxStatus(txId, 'confirmed')
|
||||||
}
|
}
|
||||||
@ -170,14 +180,26 @@ ConfigManager.prototype.rejectTx = function(txId) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ConfigManager.prototype._setTxStatus = function(txId, status) {
|
ConfigManager.prototype._setTxStatus = function(txId, status) {
|
||||||
|
var tx = this.getTx(txId)
|
||||||
|
tx.status = status
|
||||||
|
this.updateTx(tx)
|
||||||
|
}
|
||||||
|
|
||||||
|
ConfigManager.prototype.updateTx = function(tx) {
|
||||||
var transactions = this.getTxList()
|
var transactions = this.getTxList()
|
||||||
transactions.forEach((tx) => {
|
var found, index
|
||||||
if (tx.id === txId) {
|
transactions.forEach((otherTx, i) => {
|
||||||
tx.status = status
|
if (otherTx.id === tx.id) {
|
||||||
|
found = true
|
||||||
|
index = i
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
if (found) {
|
||||||
|
transactions[index] = tx
|
||||||
|
}
|
||||||
this._saveTxList(transactions)
|
this._saveTxList(transactions)
|
||||||
}
|
}
|
||||||
|
|
||||||
ConfigManager.prototype.unconfirmedTxs = function() {
|
ConfigManager.prototype.unconfirmedTxs = function() {
|
||||||
var transactions = this.getTxList()
|
var transactions = this.getTxList()
|
||||||
return transactions.filter(tx => tx.status === 'unconfirmed')
|
return transactions.filter(tx => tx.status === 'unconfirmed')
|
||||||
|
@ -126,6 +126,16 @@ describe('config-manager', function() {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe('#updateTx', function() {
|
||||||
|
it('replaces the tx with the same id', function() {
|
||||||
|
configManager.addTx({ id: '1', status: 'unconfirmed' })
|
||||||
|
configManager.addTx({ id: '2', status: 'confirmed' })
|
||||||
|
configManager.updateTx({ id: '1', status: 'blah', hash: 'foo' })
|
||||||
|
var result = configManager.getTx('1')
|
||||||
|
assert.equal(result.hash, 'foo')
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
describe('#unconfirmedTxs', function() {
|
describe('#unconfirmedTxs', function() {
|
||||||
it('returns unconfirmed txs in a hash', function() {
|
it('returns unconfirmed txs in a hash', function() {
|
||||||
configManager.addTx({ id: '1', status: 'unconfirmed' })
|
configManager.addTx({ id: '1', status: 'unconfirmed' })
|
||||||
@ -146,5 +156,31 @@ describe('config-manager', function() {
|
|||||||
assert.equal(configManager.getTx('2').status, 'confirmed')
|
assert.equal(configManager.getTx('2').status, 'confirmed')
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe('#getTxWithParams', function() {
|
||||||
|
it('returns a tx with the matching params', function() {
|
||||||
|
configManager.addTx({ id: '1', status: 'unconfirmed', txParams: {
|
||||||
|
from: 'from',
|
||||||
|
to: 'to',
|
||||||
|
data: 'data',
|
||||||
|
value: 'value',
|
||||||
|
}
|
||||||
|
})
|
||||||
|
configManager.addTx({ id: '2', status: 'unconfirmed', txParams: {
|
||||||
|
from: 'from1',
|
||||||
|
to: 'to',
|
||||||
|
data: 'data',
|
||||||
|
value: 'value',
|
||||||
|
}
|
||||||
|
})
|
||||||
|
var result = configManager.getTxWithParams({
|
||||||
|
from: 'from',
|
||||||
|
to: 'to',
|
||||||
|
data: 'data',
|
||||||
|
value: 'value',
|
||||||
|
})
|
||||||
|
assert.equal(result.id, '1')
|
||||||
|
})
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user