aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChi Kei Chan <chikeichan@gmail.com>2017-11-16 04:03:13 +0800
committerChi Kei Chan <chikeichan@gmail.com>2017-11-16 04:03:13 +0800
commite61ba93194fe1bfb5fd2644951eebb3f3369f4ad (patch)
treedf23cb13d13e345bbbc3a904fb9161570bdd2d6d
parentf8d38f44c2612f0f291063814ec0e98bb4aaf4bb (diff)
parent707a10548d4c6f1574395c7d72f432fa65d6fb9a (diff)
downloadtangerine-wallet-browser-e61ba93194fe1bfb5fd2644951eebb3f3369f4ad.tar
tangerine-wallet-browser-e61ba93194fe1bfb5fd2644951eebb3f3369f4ad.tar.gz
tangerine-wallet-browser-e61ba93194fe1bfb5fd2644951eebb3f3369f4ad.tar.bz2
tangerine-wallet-browser-e61ba93194fe1bfb5fd2644951eebb3f3369f4ad.tar.lz
tangerine-wallet-browser-e61ba93194fe1bfb5fd2644951eebb3f3369f4ad.tar.xz
tangerine-wallet-browser-e61ba93194fe1bfb5fd2644951eebb3f3369f4ad.tar.zst
tangerine-wallet-browser-e61ba93194fe1bfb5fd2644951eebb3f3369f4ad.zip
Merge branch 'master' into merge-master
-rw-r--r--CHANGELOG.md3
-rw-r--r--app/scripts/controllers/transactions.js3
-rw-r--r--app/scripts/metamask-controller.js2
-rw-r--r--app/scripts/platforms/extension.js9
-rw-r--r--test/unit/tx-controller-test.js8
-rw-r--r--ui/app/accounts/import/index.js1
-rw-r--r--ui/app/reducers.js37
-rw-r--r--ui/app/reducers/app.js1
8 files changed, 48 insertions, 16 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 671bb7a6f..ee9548606 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,9 +2,12 @@
## Current Master
+## 3.12.0 2017-10-25
+
- Add support for alternative ENS TLDs (Ethereum Name Service Top-Level Domains).
- Lower minimum gas price to 0.1 GWEI.
- Remove web3 injection message from production (thanks to @ChainsawBaby)
+- Add additional debugging info to our state logs, specifically OS version and browser version.
## 3.11.2 2017-10-21
diff --git a/app/scripts/controllers/transactions.js b/app/scripts/controllers/transactions.js
index ef659a300..a861c0342 100644
--- a/app/scripts/controllers/transactions.js
+++ b/app/scripts/controllers/transactions.js
@@ -133,7 +133,7 @@ module.exports = class TransactionController extends EventEmitter {
async newUnapprovedTransaction (txParams) {
log.debug(`MetaMaskController newUnapprovedTransaction ${JSON.stringify(txParams)}`)
const txMeta = await this.addUnapprovedTransaction(txParams)
- this.emit('newUnaprovedTx', txMeta)
+ this.emit('newUnapprovedTx', txMeta)
// listen for tx completion (success, fail)
return new Promise((resolve, reject) => {
this.txStateManager.once(`${txMeta.id}:finished`, (completedTx) => {
@@ -170,6 +170,7 @@ module.exports = class TransactionController extends EventEmitter {
async addTxDefaults (txMeta) {
const txParams = txMeta.txParams
// ensure value
+ txMeta.gasPriceSpecified = Boolean(txParams.gasPrice)
const gasPrice = txParams.gasPrice || await this.query.gasPrice()
txParams.gasPrice = ethUtil.addHexPrefix(gasPrice.toString(16))
txParams.value = txParams.value || '0x0'
diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js
index a8a10e106..bd71da8e0 100644
--- a/app/scripts/metamask-controller.js
+++ b/app/scripts/metamask-controller.js
@@ -128,7 +128,7 @@ module.exports = class MetamaskController extends EventEmitter {
blockTracker: this.blockTracker,
ethQuery: this.ethQuery,
})
- this.txController.on('newUnaprovedTx', opts.showUnapprovedTx.bind(opts))
+ this.txController.on('newUnapprovedTx', opts.showUnapprovedTx.bind(opts))
// computed balances (accounting for pending transactions)
this.balancesController = new BalancesController({
diff --git a/app/scripts/platforms/extension.js b/app/scripts/platforms/extension.js
index 0afe04b74..2f47512eb 100644
--- a/app/scripts/platforms/extension.js
+++ b/app/scripts/platforms/extension.js
@@ -17,6 +17,15 @@ class ExtensionPlatform {
return extension.runtime.getManifest().version
}
+ getPlatformInfo (cb) {
+ try {
+ extension.runtime.getPlatformInfo((platform) => {
+ cb(null, platform)
+ })
+ } catch (e) {
+ cb(e)
+ }
+ }
}
module.exports = ExtensionPlatform
diff --git a/test/unit/tx-controller-test.js b/test/unit/tx-controller-test.js
index bb51ab01f..aeefd5ec6 100644
--- a/test/unit/tx-controller-test.js
+++ b/test/unit/tx-controller-test.js
@@ -118,8 +118,8 @@ describe('Transaction Controller', function () {
stub.restore()
})
- it('should emit newUnaprovedTx event and pass txMeta as the first argument', function (done) {
- txController.once('newUnaprovedTx', (txMetaFromEmit) => {
+ it('should emit newUnapprovedTx event and pass txMeta as the first argument', function (done) {
+ txController.once('newUnapprovedTx', (txMetaFromEmit) => {
assert(txMetaFromEmit, 'txMeta is falsey')
assert.equal(txMetaFromEmit.id, 1, 'the right txMeta was passed')
done()
@@ -129,7 +129,7 @@ describe('Transaction Controller', function () {
})
it('should resolve when finished and status is submitted and resolve with the hash', function (done) {
- txController.once('newUnaprovedTx', (txMetaFromEmit) => {
+ txController.once('newUnapprovedTx', (txMetaFromEmit) => {
setTimeout(() => {
txController.setTxHash(txMetaFromEmit.id, '0x0')
txController.txStateManager.setTxStatusSubmitted(txMetaFromEmit.id)
@@ -145,7 +145,7 @@ describe('Transaction Controller', function () {
})
it('should reject when finished and status is rejected', function (done) {
- txController.once('newUnaprovedTx', (txMetaFromEmit) => {
+ txController.once('newUnapprovedTx', (txMetaFromEmit) => {
setTimeout(() => {
txController.txStateManager.setTxStatusRejected(txMetaFromEmit.id)
}, 10)
diff --git a/ui/app/accounts/import/index.js b/ui/app/accounts/import/index.js
index c66dcfc66..b7d9a9537 100644
--- a/ui/app/accounts/import/index.js
+++ b/ui/app/accounts/import/index.js
@@ -75,6 +75,7 @@ AccountImportSubview.prototype.render = function () {
}
}),
onChange: (opt) => {
+ props.dispatch(actions.showImportPage())
this.setState({ type: opt.value })
},
}),
diff --git a/ui/app/reducers.js b/ui/app/reducers.js
index e1a890535..70b7e71dc 100644
--- a/ui/app/reducers.js
+++ b/ui/app/reducers.js
@@ -1,4 +1,5 @@
const extend = require('xtend')
+const copyToClipboard = require('copy-to-clipboard')
//
// Sub-Reducers take in the complete state and return their sub-state
@@ -41,17 +42,33 @@ function rootReducer (state, action) {
return state
}
-window.logState = function () {
+window.logStateString = function (cb) {
const state = window.METAMASK_CACHED_LOG_STATE
- let version
- try {
- version = global.platform.getVersion()
- } catch (e) {
- version = 'unable to load version.'
- }
- state.version = version
- const stateString = JSON.stringify(state, removeSeedWords, 2)
- return stateString
+ const version = global.platform.getVersion()
+ const browser = window.navigator.userAgent
+ return global.platform.getPlatformInfo((err, platform) => {
+ if (err) {
+ return cb(err)
+ }
+ state.version = version
+ state.platform = platform
+ state.browser = browser
+ const stateString = JSON.stringify(state, removeSeedWords, 2)
+ return cb(null, stateString)
+ })
+}
+
+window.logState = function (toClipboard) {
+ return window.logStateString((err, result) => {
+ if (err) {
+ console.error(err.message)
+ } else if (toClipboard) {
+ copyToClipboard(result)
+ console.log('State log copied')
+ } else {
+ console.log(result)
+ }
+ })
}
function removeSeedWords (key, value) {
diff --git a/ui/app/reducers/app.js b/ui/app/reducers/app.js
index d84f264c9..3a4fb536d 100644
--- a/ui/app/reducers/app.js
+++ b/ui/app/reducers/app.js
@@ -175,6 +175,7 @@ function reduceApp (state, action) {
name: 'import-menu',
},
transForward: true,
+ warning: null,
})
case actions.SHOW_INFO_PAGE: