From 20bdba3d1710a070d06c2a395f92d948b9396d47 Mon Sep 17 00:00:00 2001
From: kumavis <aaron@kumavis.me>
Date: Tue, 5 Jun 2018 11:51:27 -0700
Subject: diagnostics - rewrite bug-notifier as diagnostics-reporter

---
 app/scripts/metamask-controller.js | 38 +++++++++-----------------------------
 1 file changed, 9 insertions(+), 29 deletions(-)

(limited to 'app/scripts/metamask-controller.js')

diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js
index ad1d6d6a7..4b0b00306 100644
--- a/app/scripts/metamask-controller.js
+++ b/app/scripts/metamask-controller.js
@@ -46,7 +46,7 @@ const GWEI_BN = new BN('1000000000')
 const percentile = require('percentile')
 const seedPhraseVerifier = require('./lib/seed-phrase-verifier')
 const cleanErrorStack = require('./lib/cleanErrorStack')
-const notifier = require('./lib/bug-notifier')
+const DiagnosticsReporter = require('./lib/diagnostics-reporter')
 const log = require('loglevel')
 
 module.exports = class MetamaskController extends EventEmitter {
@@ -66,7 +66,10 @@ module.exports = class MetamaskController extends EventEmitter {
     this.recordFirstTimeInfo(initState)
 
     // metamask diagnostics reporter
-    this.notifier = opts.notifier || notifier
+    this.diagnostics = opts.diagnostics || new DiagnosticsReporter({
+      firstTimeInfo: initState.firstTimeInfo,
+      version,
+    })
 
     // platform-specific api
     this.platform = opts.platform
@@ -89,7 +92,7 @@ module.exports = class MetamaskController extends EventEmitter {
     this.preferencesController = new PreferencesController({
       initState: initState.PreferencesController,
       initLangCode: opts.initLangCode,
-      getFirstTimeInfo: () => initState.firstTimeInfo,
+      diagnostics: this.diagnostics,
     })
 
     // currency controller
@@ -492,32 +495,9 @@ module.exports = class MetamaskController extends EventEmitter {
     const accounts = await this.keyringController.getAccounts()
 
     // verify keyrings
-    try {
-      const nonSimpleKeyrings = this.keyringController.keyrings.filter(keyring => keyring.type !== 'Simple Key Pair')
-      if (nonSimpleKeyrings.length > 1) {
-        const keyrings = await Promise.all(nonSimpleKeyrings.map(async (keyring, index) => {
-          return {
-            index,
-            type: keyring.type,
-            accounts: await keyring.getAccounts()
-          }
-        }))
-        // unexpected number of keyrings, report to diagnostics
-        const uri = 'https://diagnostics.metamask.io/v1/orphanedAccounts'
-        const firstTimeInfo = this.getFirstTimeInfo ? this.getFirstTimeInfo() : {}
-        await this.notifier.notify(uri, {
-          accounts: [],
-          metadata: {
-            type: 'keyrings',
-            keyrings,
-            version,
-            firstTimeInfo,
-          },
-        })
-      }
-    } catch (err) {
-      console.error('Keyring validation error:')
-      console.error(err)
+    const nonSimpleKeyrings = this.keyringController.keyrings.filter(keyring => keyring.type !== 'Simple Key Pair')
+    if (nonSimpleKeyrings.length > 1) {
+      if (this.diagnostics) await this.reportMultipleKeyrings(nonSimpleKeyrings)
     }
 
     await this.preferencesController.syncAddresses(accounts)
-- 
cgit