ensure that values written to txParams are hex strings

feature/default_network_editable
frankiebee 7 years ago
parent 59909601b8
commit 77a48fb0b1
  1. 2
      app/scripts/controllers/transactions.js
  2. 9
      app/scripts/lib/tx-state-manager.js

@ -212,7 +212,7 @@ module.exports = class TransactionController extends EventEmitter {
const txParams = txMeta.txParams
const fromAddress = txParams.from
// add network/chain id
txParams.chainId = this.getChainId()
txParams.chainId = ethUtil.addHexPrefix(this.getChainId().toString(16))
const ethTx = new Transaction(txParams)
await this.signEthTx(ethTx, fromAddress)
this.txStateManager.setTxStatusSigned(txMeta.id)

@ -1,6 +1,7 @@
const extend = require('xtend')
const EventEmitter = require('events')
const ObservableStore = require('obs-store')
const ethUtil = require('ethereumjs-util')
const txStateHistoryHelper = require('./tx-state-history-helper')
module.exports = class TransactionStateManger extends EventEmitter {
@ -82,6 +83,14 @@ module.exports = class TransactionStateManger extends EventEmitter {
}
updateTx (txMeta) {
if (txMeta.txParams) {
Object.keys(txMeta.txParams).forEach((key) => {
let value = txMeta.txParams[key]
if (typeof value !== 'string') console.error(`${key}: ${value} in txParams is not a string`)
if (!ethUtil.isHexPrefixed(value)) console.error('is not hex prefixed, anything on txParams must be hex prefixed')
})
}
// create txMeta snapshot for history
const currentState = txStateHistoryHelper.snapshotFromTxMeta(txMeta)
// recover previous tx state obj

Loading…
Cancel
Save