diff options
author | nyatla <nyatla39@gmail.com> | 2018-04-10 16:14:28 +0800 |
---|---|---|
committer | nyatla <nyatla39@gmail.com> | 2018-04-10 16:14:28 +0800 |
commit | cc246528b509b80e560715f3b315acf0764e99e7 (patch) | |
tree | a04cc12e6c11345bf751726f15fa9d3dd6be4733 /app/scripts/lib/tx-state-manager.js | |
parent | bc0487006c623f1c81c186ba5b2a7137efb940ec (diff) | |
parent | b91bd818c7c2aec2952036a2f69ab05e0690a06e (diff) | |
download | tangerine-wallet-browser-cc246528b509b80e560715f3b315acf0764e99e7.tar.gz tangerine-wallet-browser-cc246528b509b80e560715f3b315acf0764e99e7.tar.zst tangerine-wallet-browser-cc246528b509b80e560715f3b315acf0764e99e7.zip |
Merge tag 'v4.5.5'
# Conflicts:
# app/_locales/ja/messages.json
# package-lock.json
messages.jsonのローカライズ
Diffstat (limited to 'app/scripts/lib/tx-state-manager.js')
-rw-r--r-- | app/scripts/lib/tx-state-manager.js | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/app/scripts/lib/tx-state-manager.js b/app/scripts/lib/tx-state-manager.js index ad07c813f..d8ea17400 100644 --- a/app/scripts/lib/tx-state-manager.js +++ b/app/scripts/lib/tx-state-manager.js @@ -38,11 +38,6 @@ module.exports = class TransactionStateManager extends EventEmitter { }, opts) } - // Returns the number of txs for the current network. - getTxCount () { - return this.getTxList().length - } - getTxList () { const network = this.getNetwork() const fullTxList = this.getFullTxList() @@ -88,7 +83,7 @@ module.exports = class TransactionStateManager extends EventEmitter { txMeta.history.push(snapshot) const transactions = this.getFullTxList() - const txCount = this.getTxCount() + const txCount = transactions.length const txHistoryLimit = this.txHistoryLimit // checks if the length of the tx history is @@ -111,12 +106,13 @@ module.exports = class TransactionStateManager extends EventEmitter { } updateTx (txMeta, note) { + // validate txParams if (txMeta.txParams) { - Object.keys(txMeta.txParams).forEach((key) => { - const 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') - }) + if (typeof txMeta.txParams.data === 'undefined') { + delete txMeta.txParams.data + } + + this.validateTxParams(txMeta.txParams) } // create txMeta snapshot for history @@ -144,6 +140,23 @@ module.exports = class TransactionStateManager extends EventEmitter { this.updateTx(txMeta, `txStateManager#updateTxParams`) } + // validates txParams members by type + validateTxParams(txParams) { + Object.keys(txParams).forEach((key) => { + const value = txParams[key] + // validate types + switch (key) { + case 'chainId': + if (typeof value !== 'number' && typeof value !== 'string') throw new Error(`${key} in txParams is not a Number or hex string. got: (${value})`) + break + default: + if (typeof value !== 'string') throw new Error(`${key} in txParams is not a string. got: (${value})`) + if (!ethUtil.isHexPrefixed(value)) throw new Error(`${key} in txParams is not hex prefixed. got: (${value})`) + break + } + }) + } + /* Takes an object of fields to search for eg: let thingsToLookFor = { |