diff --git a/app/scripts/lib/config-manager.js b/app/scripts/lib/config-manager.js index b0dcd4d3f..c79dc7a8f 100644 --- a/app/scripts/lib/config-manager.js +++ b/app/scripts/lib/config-manager.js @@ -161,16 +161,6 @@ ConfigManager.prototype.getTx = function(txId) { 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 ('params' in tx) ? tx.params[key] === params[key] && result : result - }, true) - }) - return matching.length > 0 ? matching[0] : null -} - ConfigManager.prototype.confirmTx = function(txId) { this._setTxStatus(txId, 'confirmed') } diff --git a/app/scripts/lib/idStore.js b/app/scripts/lib/idStore.js index 66194fd41..7763d33d8 100644 --- a/app/scripts/lib/idStore.js +++ b/app/scripts/lib/idStore.js @@ -135,6 +135,7 @@ IdentityStore.prototype.addUnconfirmedTransaction = function(txParams, cb){ // create txData obj with parameters and meta data var time = (new Date()).getTime() var txId = createId() + txParams.metamaskId = txId var txData = { id: txId, txParams: txParams, @@ -337,10 +338,13 @@ function IdManagement(opts) { txParams.gasLimit = ethUtil.addHexPrefix(txParams.gasLimit || txParams.gas) txParams.nonce = ethUtil.addHexPrefix(txParams.nonce) var tx = new Transaction(txParams) + + // Add the tx hash to the persisted meta-tx object var hash = '0x' + tx.hash().toString('hex') - var txLog = configManager.getTxWithParams(txParams) - txLog.hash = hash - configManager.updateTx(txLog) + var metaTx = configManager.getTx(txParams.metamaskId) + metaTx.hash = hash + configManager.updateTx(metaTx) + var rawTx = '0x'+tx.serialize().toString('hex') return '0x'+LightwalletSigner.signTx(this.keyStore, this.derivedKey, rawTx, txParams.from, this.hdPathString) } diff --git a/test/unit/config-manager-test.js b/test/unit/config-manager-test.js index a5ddf78a4..e414ecb9e 100644 --- a/test/unit/config-manager-test.js +++ b/test/unit/config-manager-test.js @@ -156,31 +156,5 @@ describe('config-manager', function() { 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') - }) - }) }) })