mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
transactions - _normalizeTxParams will now return a new object for txParams
This commit is contained in:
parent
343f0e9e80
commit
c02da0f27c
@ -185,10 +185,10 @@ module.exports = class TransactionController extends EventEmitter {
|
|||||||
|
|
||||||
async addUnapprovedTransaction (txParams) {
|
async addUnapprovedTransaction (txParams) {
|
||||||
// validate
|
// validate
|
||||||
this._validateTxParams(txParams)
|
const normalizedTxParams = this._normalizeTxParams(txParams)
|
||||||
this._normalizeTxParams(txParams)
|
this._validateTxParams(normalizedTxParams)
|
||||||
// construct txMeta
|
// construct txMeta
|
||||||
let txMeta = this.txStateManager.generateTxMeta({txParams})
|
let txMeta = this.txStateManager.generateTxMeta({ txParams: normalizedTxParams })
|
||||||
this.addTx(txMeta)
|
this.addTx(txMeta)
|
||||||
this.emit('newUnapprovedTx', txMeta)
|
this.emit('newUnapprovedTx', txMeta)
|
||||||
// add default tx params
|
// add default tx params
|
||||||
@ -315,37 +315,24 @@ module.exports = class TransactionController extends EventEmitter {
|
|||||||
//
|
//
|
||||||
|
|
||||||
_normalizeTxParams (txParams) {
|
_normalizeTxParams (txParams) {
|
||||||
const acceptableKeys = [
|
// functions that handle normalizing of that key in txParams
|
||||||
'from',
|
const whiteList = {
|
||||||
'to',
|
from: from => ethUtil.addHexPrefix(from).toLowerCase(),
|
||||||
'nonce',
|
to: to => ethUtil.addHexPrefix(txParams.to).toLowerCase(),
|
||||||
'value',
|
nonce: nonce => ethUtil.addHexPrefix(nonce),
|
||||||
'data',
|
value: value => ethUtil.addHexPrefix(value),
|
||||||
'gas',
|
data: data => ethUtil.addHexPrefix(data),
|
||||||
'gasPrice',
|
gas: gas => ethUtil.addHexPrefix(gas),
|
||||||
]
|
gasPrice: gasPrice => ethUtil.addHexPrefix(gasPrice),
|
||||||
Object.keys(txParams).forEach((key) => {
|
}
|
||||||
if (!acceptableKeys.includes(key)) delete txParams[key]
|
|
||||||
|
// apply only keys in the whiteList
|
||||||
|
const normalizedTxParams = {}
|
||||||
|
Object.keys(whiteList).forEach((key) => {
|
||||||
|
if (txParams[key]) normalizedTxParams[key] = whiteList[key](txParams[key])
|
||||||
})
|
})
|
||||||
delete txParams.chainId
|
|
||||||
|
|
||||||
if ( !txParams.to ) {
|
return normalizedTxParams
|
||||||
delete txParams.to
|
|
||||||
} else {
|
|
||||||
txParams.to = ethUtil.addHexPrefix(txParams.to)
|
|
||||||
}
|
|
||||||
txParams.from = ethUtil.addHexPrefix(txParams.from).toLowerCase()
|
|
||||||
|
|
||||||
if (!txParams.data) {
|
|
||||||
delete txParams.data
|
|
||||||
} else {
|
|
||||||
txParams.data = ethUtil.addHexPrefix(txParams.data)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (txParams.value) txParams.value = ethUtil.addHexPrefix(txParams.value)
|
|
||||||
|
|
||||||
if (txParams.gas) txParams.gas = ethUtil.addHexPrefix(txParams.gas)
|
|
||||||
if (txParams.gasPrice) txParams.gas = ethUtil.addHexPrefix(txParams.gas)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_validateTxParams (txParams) {
|
_validateTxParams (txParams) {
|
||||||
|
@ -242,17 +242,17 @@ describe('Transaction Controller', function () {
|
|||||||
random: 'hello world',
|
random: 'hello world',
|
||||||
}
|
}
|
||||||
|
|
||||||
txController._normalizeTxParams(txParams)
|
let normalizedTxParams = txController._normalizeTxParams(txParams)
|
||||||
|
|
||||||
|
assert(!normalizedTxParams.chainId, 'their should be no chainId')
|
||||||
|
assert(!normalizedTxParams.to, 'their should be no to address if null')
|
||||||
|
assert.equal(normalizedTxParams.from.slice(0, 2), '0x', 'from should be hexPrefixd')
|
||||||
|
assert.equal(normalizedTxParams.data.slice(0, 2), '0x', 'data should be hexPrefixd')
|
||||||
|
assert(!('random' in normalizedTxParams), 'their should be no random key in normalizedTxParams')
|
||||||
|
|
||||||
assert(!txParams.chainId, 'their should be no chainId')
|
|
||||||
assert(!txParams.to, 'their should be no to address if null')
|
|
||||||
assert.equal(txParams.from.slice(0, 2), '0x', 'from should be hexPrefixd')
|
|
||||||
assert.equal(txParams.data.slice(0, 2), '0x', 'data should be hexPrefixd')
|
|
||||||
assert(!('random' in txParams), 'their should be no random key in txParams')
|
|
||||||
txParams.to = 'a7df1beDBF813f57096dF77FCd515f0B3900e402'
|
txParams.to = 'a7df1beDBF813f57096dF77FCd515f0B3900e402'
|
||||||
|
normalizedTxParams = txController._normalizeTxParams(txParams)
|
||||||
txController._normalizeTxParams(txParams)
|
assert.equal(normalizedTxParams.to.slice(0, 2), '0x', 'to should be hexPrefixd')
|
||||||
assert.equal(txParams.to.slice(0, 2), '0x', 'to should be hexPrefixd')
|
|
||||||
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user