aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorkumavis <aaron@kumavis.me>2018-03-29 05:12:20 +0800
committerkumavis <aaron@kumavis.me>2018-03-29 05:12:20 +0800
commitbedc1d1a477c94fe38c52d9d2b0b02405a399629 (patch)
treef80211eb2c307d9b52f40f3ff6923716473b0350 /app
parent4f915cf2d817cf4dadea581c90a98841b81c156d (diff)
parent8766420f19251b95211dd99ff9a45e60cf0177ad (diff)
downloadtangerine-wallet-browser-bedc1d1a477c94fe38c52d9d2b0b02405a399629.tar
tangerine-wallet-browser-bedc1d1a477c94fe38c52d9d2b0b02405a399629.tar.gz
tangerine-wallet-browser-bedc1d1a477c94fe38c52d9d2b0b02405a399629.tar.bz2
tangerine-wallet-browser-bedc1d1a477c94fe38c52d9d2b0b02405a399629.tar.lz
tangerine-wallet-browser-bedc1d1a477c94fe38c52d9d2b0b02405a399629.tar.xz
tangerine-wallet-browser-bedc1d1a477c94fe38c52d9d2b0b02405a399629.tar.zst
tangerine-wallet-browser-bedc1d1a477c94fe38c52d9d2b0b02405a399629.zip
Merge branch 'master' of github.com:MetaMask/metamask-extension into ci-artifacts
Diffstat (limited to 'app')
-rw-r--r--app/scripts/controllers/currency.js2
-rw-r--r--app/scripts/controllers/transactions.js10
-rw-r--r--app/scripts/lib/setupRaven.js14
-rw-r--r--app/scripts/lib/tx-state-manager.js16
4 files changed, 30 insertions, 12 deletions
diff --git a/app/scripts/controllers/currency.js b/app/scripts/controllers/currency.js
index 25a7a942e..930fc52e8 100644
--- a/app/scripts/controllers/currency.js
+++ b/app/scripts/controllers/currency.js
@@ -52,7 +52,7 @@ class CurrencyController {
this.setConversionDate(Number(parsedResponse.timestamp))
}).catch((err) => {
if (err) {
- console.warn('MetaMask - Failed to query currency conversion.')
+ console.warn(`MetaMask - Failed to query currency conversion:`, currentCurrency, err)
this.setConversionRate(0)
this.setConversionDate('N/A')
}
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
diff --git a/app/scripts/lib/setupRaven.js b/app/scripts/lib/setupRaven.js
index a869588d0..b93591e65 100644
--- a/app/scripts/lib/setupRaven.js
+++ b/app/scripts/lib/setupRaven.js
@@ -23,10 +23,20 @@ function setupRaven(opts) {
release,
transport: function(opts) {
const report = opts.data
- // simplify ethjs error messages
+ // simplify certain complex error messages
report.exception.values.forEach(item => {
- item.value = extractEthjsErrorMessage(item.value)
+ let errorMessage = item.value
+ // simplify ethjs error messages
+ errorMessage = extractEthjsErrorMessage(errorMessage)
+ // simplify 'Transaction Failed: known transaction'
+ if (errorMessage.indexOf('Transaction Failed: known transaction') === 0) {
+ // cut the hash from the error message
+ errorMessage = 'Transaction Failed: known transaction'
+ }
+ // finalize
+ item.value = errorMessage
})
+
// modify report urls
rewriteReportUrls(report)
// make request normally
diff --git a/app/scripts/lib/tx-state-manager.js b/app/scripts/lib/tx-state-manager.js
index ab344ae9b..23c915a61 100644
--- a/app/scripts/lib/tx-state-manager.js
+++ b/app/scripts/lib/tx-state-manager.js
@@ -106,12 +106,9 @@ 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')
- })
+ this.validateTxParams(txMeta.txParams)
}
// create txMeta snapshot for history
@@ -139,6 +136,15 @@ 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]
+ if (typeof value !== 'string') throw new Error(`${key}: ${value} in txParams is not a string`)
+ if (!ethUtil.isHexPrefixed(value)) throw new Error('is not hex prefixed, everything on txParams must be hex prefixed')
+ })
+ }
+
/*
Takes an object of fields to search for eg:
let thingsToLookFor = {