aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/background.js
diff options
context:
space:
mode:
authorFrankie <frankie.diamond@gmail.com>2018-04-06 06:03:53 +0800
committerGitHub <noreply@github.com>2018-04-06 06:03:53 +0800
commit2dfa8a2e5049c21b30f6b70d06d0cfd56097904a (patch)
treeff7f5b0b7e3615193765929527875f1324371baa /app/scripts/background.js
parent17931698a8bb2be77ea9671708135bba79ad2296 (diff)
parentffc71ff7d2c27d419bff4ca127ed5219bf9261c3 (diff)
downloadtangerine-wallet-browser-2dfa8a2e5049c21b30f6b70d06d0cfd56097904a.tar
tangerine-wallet-browser-2dfa8a2e5049c21b30f6b70d06d0cfd56097904a.tar.gz
tangerine-wallet-browser-2dfa8a2e5049c21b30f6b70d06d0cfd56097904a.tar.bz2
tangerine-wallet-browser-2dfa8a2e5049c21b30f6b70d06d0cfd56097904a.tar.lz
tangerine-wallet-browser-2dfa8a2e5049c21b30f6b70d06d0cfd56097904a.tar.xz
tangerine-wallet-browser-2dfa8a2e5049c21b30f6b70d06d0cfd56097904a.tar.zst
tangerine-wallet-browser-2dfa8a2e5049c21b30f6b70d06d0cfd56097904a.zip
Merge pull request #3900 from MetaMask/migration-error-report
migrations - report migrations errors to sentry with vault structure
Diffstat (limited to 'app/scripts/background.js')
-rw-r--r--app/scripts/background.js20
1 files changed, 19 insertions, 1 deletions
diff --git a/app/scripts/background.js b/app/scripts/background.js
index 3ad0a7863..ec586f642 100644
--- a/app/scripts/background.js
+++ b/app/scripts/background.js
@@ -20,6 +20,7 @@ const reportFailedTxToSentry = require('./lib/reportFailedTxToSentry')
const setupMetamaskMeshMetrics = require('./lib/setupMetamaskMeshMetrics')
const EdgeEncryptor = require('./edge-encryptor')
const getFirstPreferredLangCode = require('./lib/get-first-preferred-lang-code')
+const getObjStructure = require('./lib/getObjStructure')
const STORAGE_KEY = 'metamask-config'
const METAMASK_DEBUG = process.env.METAMASK_DEBUG
@@ -77,6 +78,16 @@ async function loadStateFromPersistence () {
diskStore.getState() ||
migrator.generateInitialState(firstTimeState)
+ // report migration errors to sentry
+ migrator.on('error', (err) => {
+ // get vault structure without secrets
+ const vaultStructure = getObjStructure(versionedData)
+ raven.captureException(err, {
+ // "extra" key is required by Sentry
+ extra: { vaultStructure },
+ })
+ })
+
// migrate data
versionedData = await migrator.migrateData(versionedData)
if (!versionedData) {
@@ -84,7 +95,14 @@ async function loadStateFromPersistence () {
}
// write to disk
- if (localStore.isSupported) localStore.set(versionedData)
+ if (localStore.isSupported) {
+ localStore.set(versionedData)
+ } else {
+ // throw in setTimeout so as to not block boot
+ setTimeout(() => {
+ throw new Error('MetaMask - Localstore not supported')
+ })
+ }
// return just the data
return versionedData.data