mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
Merge pull request #3887 from MetaMask/i#3886
transactions - remove unnecessary keys on txParams
This commit is contained in:
commit
741c6097a2
@ -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,25 +315,24 @@ module.exports = class TransactionController extends EventEmitter {
|
|||||||
//
|
//
|
||||||
|
|
||||||
_normalizeTxParams (txParams) {
|
_normalizeTxParams (txParams) {
|
||||||
delete txParams.chainId
|
// functions that handle normalizing of that key in txParams
|
||||||
|
const whiteList = {
|
||||||
if ( !txParams.to ) {
|
from: from => ethUtil.addHexPrefix(from).toLowerCase(),
|
||||||
delete txParams.to
|
to: to => ethUtil.addHexPrefix(txParams.to).toLowerCase(),
|
||||||
} else {
|
nonce: nonce => ethUtil.addHexPrefix(nonce),
|
||||||
txParams.to = ethUtil.addHexPrefix(txParams.to)
|
value: value => ethUtil.addHexPrefix(value),
|
||||||
}
|
data: data => ethUtil.addHexPrefix(data),
|
||||||
txParams.from = ethUtil.addHexPrefix(txParams.from).toLowerCase()
|
gas: gas => ethUtil.addHexPrefix(gas),
|
||||||
|
gasPrice: gasPrice => ethUtil.addHexPrefix(gasPrice),
|
||||||
if (!txParams.data) {
|
|
||||||
delete txParams.data
|
|
||||||
} else {
|
|
||||||
txParams.data = ethUtil.addHexPrefix(txParams.data)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (txParams.value) txParams.value = ethUtil.addHexPrefix(txParams.value)
|
// apply only keys in the whiteList
|
||||||
|
const normalizedTxParams = {}
|
||||||
|
Object.keys(whiteList).forEach((key) => {
|
||||||
|
if (txParams[key]) normalizedTxParams[key] = whiteList[key](txParams[key])
|
||||||
|
})
|
||||||
|
|
||||||
if (txParams.gas) txParams.gas = ethUtil.addHexPrefix(txParams.gas)
|
return normalizedTxParams
|
||||||
if (txParams.gasPrice) txParams.gas = ethUtil.addHexPrefix(txParams.gas)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_validateTxParams (txParams) {
|
_validateTxParams (txParams) {
|
||||||
|
@ -239,19 +239,20 @@ describe('Transaction Controller', function () {
|
|||||||
from: 'a7df1beDBF813f57096dF77FCd515f0B3900e402',
|
from: 'a7df1beDBF813f57096dF77FCd515f0B3900e402',
|
||||||
to: null,
|
to: null,
|
||||||
data: '68656c6c6f20776f726c64',
|
data: '68656c6c6f20776f726c64',
|
||||||
|
random: 'hello world',
|
||||||
}
|
}
|
||||||
|
|
||||||
txController._normalizeTxParams(txParams)
|
let normalizedTxParams = txController._normalizeTxParams(txParams)
|
||||||
|
|
||||||
assert(!txParams.chainId, 'their should be no chainId')
|
assert(!normalizedTxParams.chainId, 'their should be no chainId')
|
||||||
assert(!txParams.to, 'their should be no to address if null')
|
assert(!normalizedTxParams.to, 'their should be no to address if null')
|
||||||
assert.equal(txParams.from.slice(0, 2), '0x', 'from should be hexPrefixd')
|
assert.equal(normalizedTxParams.from.slice(0, 2), '0x', 'from should be hexPrefixd')
|
||||||
assert.equal(txParams.data.slice(0, 2), '0x', 'data 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')
|
||||||
|
|
||||||
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…
x
Reference in New Issue
Block a user