aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/controllers/transactions.js
diff options
context:
space:
mode:
authorFrankie <frankie.diamond@gmail.com>2018-03-29 03:53:38 +0800
committerGitHub <noreply@github.com>2018-03-29 03:53:38 +0800
commit5a9aa153ecd0721be3a643afe1d23349f5b567eb (patch)
treebb863d2471840fa77adcac2443d3c61faa1fa5e1 /app/scripts/controllers/transactions.js
parent871edfe12ad37545c596e2e926afc458c0efa559 (diff)
parent21fbaed97c84e75968cff1810999d0ec1aa5ef26 (diff)
downloadtangerine-wallet-browser-5a9aa153ecd0721be3a643afe1d23349f5b567eb.tar.gz
tangerine-wallet-browser-5a9aa153ecd0721be3a643afe1d23349f5b567eb.tar.zst
tangerine-wallet-browser-5a9aa153ecd0721be3a643afe1d23349f5b567eb.zip
Merge pull request #3767 from MetaMask/tx-state-undefined-value
tx controller - stricter validation and other improvements
Diffstat (limited to 'app/scripts/controllers/transactions.js')
-rw-r--r--app/scripts/controllers/transactions.js10
1 files changed, 6 insertions, 4 deletions
diff --git a/app/scripts/controllers/transactions.js b/app/scripts/controllers/transactions.js
index 3e3909361..7e2cc15da 100644
--- a/app/scripts/controllers/transactions.js
+++ b/app/scripts/controllers/transactions.js
@@ -250,7 +250,7 @@ module.exports = class TransactionController extends EventEmitter {
// wait for a nonce
nonceLock = await this.nonceTracker.getNonceLock(fromAddress)
// add nonce to txParams
- // if txMeta has lastGasPrice then it is a retry at same nonce with higher
+ // if txMeta has lastGasPrice then it is a retry at same nonce with higher
// gas price transaction and their for the nonce should not be calculated
const nonce = txMeta.lastGasPrice ? txMeta.txParams.nonce : nonceLock.nextNonce
txMeta.txParams.nonce = ethUtil.addHexPrefix(nonce.toString(16))
@@ -273,12 +273,14 @@ module.exports = class TransactionController extends EventEmitter {
async signTransaction (txId) {
const txMeta = this.txStateManager.getTx(txId)
- const txParams = txMeta.txParams
- const fromAddress = txParams.from
// add network/chain id
- txParams.chainId = ethUtil.addHexPrefix(this.getChainId().toString(16))
+ const chainId = this.getChainId()
+ const txParams = Object.assign({}, txMeta.txParams, { chainId })
+ // sign tx
+ const fromAddress = txParams.from
const ethTx = new Transaction(txParams)
await this.signEthTx(ethTx, fromAddress)
+ // set state to signed
this.txStateManager.setTxStatusSigned(txMeta.id)
const rawTx = ethUtil.bufferToHex(ethTx.serialize())
return rawTx