aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkumavis <aaron@kumavis.me>2018-10-20 15:14:59 +0800
committerkumavis <aaron@kumavis.me>2018-10-20 15:14:59 +0800
commit73ec4e66cb7a476d01371a61692b0d8d9224da04 (patch)
tree96c2b2b20030e63eebbf0f08e669091968f1a223
parente3fda83ab209af7836ba93bfaba215c271d73e8a (diff)
downloadtangerine-wallet-browser-73ec4e66cb7a476d01371a61692b0d8d9224da04.tar
tangerine-wallet-browser-73ec4e66cb7a476d01371a61692b0d8d9224da04.tar.gz
tangerine-wallet-browser-73ec4e66cb7a476d01371a61692b0d8d9224da04.tar.bz2
tangerine-wallet-browser-73ec4e66cb7a476d01371a61692b0d8d9224da04.tar.lz
tangerine-wallet-browser-73ec4e66cb7a476d01371a61692b0d8d9224da04.tar.xz
tangerine-wallet-browser-73ec4e66cb7a476d01371a61692b0d8d9224da04.tar.zst
tangerine-wallet-browser-73ec4e66cb7a476d01371a61692b0d8d9224da04.zip
sentry - include app state in ui errors
-rw-r--r--app/scripts/lib/setupSentry.js8
-rw-r--r--app/scripts/ui.js12
-rw-r--r--package-lock.json6
-rw-r--r--package.json2
-rw-r--r--ui/app/reducers.js26
5 files changed, 38 insertions, 16 deletions
diff --git a/app/scripts/lib/setupSentry.js b/app/scripts/lib/setupSentry.js
index aa8d72194..69042bc19 100644
--- a/app/scripts/lib/setupSentry.js
+++ b/app/scripts/lib/setupSentry.js
@@ -8,7 +8,7 @@ module.exports = setupSentry
// Setup sentry remote error reporting
function setupSentry (opts) {
- const { release } = opts
+ const { release, getState } = opts
let sentryTarget
// detect brave
const isBrave = Boolean(window.chrome.ipcRenderer)
@@ -38,9 +38,15 @@ function setupSentry (opts) {
simplifyErrorMessages(report)
// modify report urls
rewriteReportUrls(report)
+ // append app state
+ if (getState) {
+ const appState = getState()
+ report.extra.appState = appState
+ }
} catch (err) {
console.warn(err)
}
+ return report
}
return Sentry
diff --git a/app/scripts/ui.js b/app/scripts/ui.js
index 8893ceaad..c4f6615db 100644
--- a/app/scripts/ui.js
+++ b/app/scripts/ui.js
@@ -21,7 +21,17 @@ async function start () {
// setup sentry error reporting
const release = global.platform.getVersion()
- setupSentry({ release })
+ setupSentry({ release, getState })
+ // provide app state to append to error logs
+ function getState() {
+ // get app state
+ const state = window.getCleanAppState()
+ // remove unnecessary data
+ delete state.localeMessages
+ delete state.metamask.recentBlocks
+ // return state to be added to request
+ return state
+ }
// inject css
// const css = MetaMaskUiCss()
diff --git a/package-lock.json b/package-lock.json
index dc63d8b91..04c2b7014 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -6183,9 +6183,9 @@
}
},
"clone": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz",
- "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs="
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+ "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18="
},
"clone-buffer": {
"version": "1.0.0",
diff --git a/package.json b/package.json
index ebac62d7f..9f56e726a 100644
--- a/package.json
+++ b/package.json
@@ -98,7 +98,7 @@
"browserify-derequire": "^0.9.4",
"browserify-unibabel": "^3.0.0",
"classnames": "^2.2.5",
- "clone": "^2.1.1",
+ "clone": "^2.1.2",
"copy-to-clipboard": "^3.0.8",
"css-loader": "^0.28.11",
"currency-formatter": "^1.4.2",
diff --git a/ui/app/reducers.js b/ui/app/reducers.js
index 80e76d570..e1a982f93 100644
--- a/ui/app/reducers.js
+++ b/ui/app/reducers.js
@@ -1,3 +1,4 @@
+const clone = require('clone')
const extend = require('xtend')
const copyToClipboard = require('copy-to-clipboard')
@@ -52,19 +53,24 @@ function rootReducer (state, action) {
return state
}
+window.getCleanAppState = function () {
+ const state = clone(window.METAMASK_CACHED_LOG_STATE)
+ // append additional information
+ state.version = global.platform.getVersion()
+ state.browser = window.navigator.userAgent
+ // ensure seedWords are not included
+ if (state.metamask) delete state.metamask.seedWords
+ if (state.appState.currentView) delete state.appState.currentView.seedWords
+ return state
+}
+
window.logStateString = function (cb) {
- const state = window.METAMASK_CACHED_LOG_STATE
- const version = global.platform.getVersion()
- const browser = window.navigator.userAgent
- return global.platform.getPlatformInfo((err, platform) => {
- if (err) {
- return cb(err)
- }
- state.version = version
+ const state = window.getCleanAppState()
+ global.platform.getPlatformInfo((err, platform) => {
+ if (err) return cb(err)
state.platform = platform
- state.browser = browser
const stateString = JSON.stringify(state, removeSeedWords, 2)
- return cb(null, stateString)
+ cb(null, stateString)
})
}