diff options
-rw-r--r-- | app/scripts/controllers/transactions.js | 9 | ||||
-rw-r--r-- | app/scripts/lib/util.js | 7 |
2 files changed, 12 insertions, 4 deletions
diff --git a/app/scripts/controllers/transactions.js b/app/scripts/controllers/transactions.js index 28130c164..58c468e22 100644 --- a/app/scripts/controllers/transactions.js +++ b/app/scripts/controllers/transactions.js @@ -40,7 +40,7 @@ module.exports = class TransactionController extends EventEmitter { this.pendingTxTracker = new PendingTransactionTracker({ provider: this.provider, nonceTracker: this.nonceTracker, - getBalance: async (address) => { + getBalance: (address) => { const account = this.ethStore.getState().accounts[address] if (!account) return return account.balance @@ -382,9 +382,12 @@ module.exports = class TransactionController extends EventEmitter { this._setTxStatus(txId, 'confirmed') } - setTxStatusFailed (txId, reason) { + setTxStatusFailed (txId, err) { const txMeta = this.getTx(txId) - txMeta.err = reason + txMeta.err = { + message: err.toString(), + stack: err.stack, + } this.updateTx(txMeta) this._setTxStatus(txId, 'failed') } diff --git a/app/scripts/lib/util.js b/app/scripts/lib/util.js index 70390e95c..6dee9edf0 100644 --- a/app/scripts/lib/util.js +++ b/app/scripts/lib/util.js @@ -1,5 +1,6 @@ const ethUtil = require('ethereumjs-util') -const BN = ethUtil.BN +const assert = require('assert') +const BN = require('bn.js') module.exports = { getStack, @@ -15,6 +16,10 @@ function getStack () { } function sufficientBalance (txParams, hexBalance) { + // validate hexBalance is a hex string + assert.equal(typeof hexBalance, 'string', 'sufficientBalance - hexBalance is not a hex string') + assert.equal(hexBalance.slice(0, 2), '0x', 'sufficientBalance - hexBalance is not a hex string') + const balance = hexToBn(hexBalance) const value = hexToBn(txParams.value) const gasLimit = hexToBn(txParams.gas) |