diff options
author | kumavis <kumavis@users.noreply.github.com> | 2018-06-06 04:35:25 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-06 04:35:25 +0800 |
commit | 39a7702c8f0aa2c2e7fdf2bcf913e76bb8b827f4 (patch) | |
tree | 3debb11f863bd2d400bebeebc0ed8b0e862ba19a /app/scripts/lib/diagnostics-reporter.js | |
parent | e1cd3562cef92a78945056dc557d4228a72b119c (diff) | |
parent | f73feccf5af76312f9b0a65c42b2bd0877dfba7d (diff) | |
download | tangerine-wallet-browser-39a7702c8f0aa2c2e7fdf2bcf913e76bb8b827f4.tar tangerine-wallet-browser-39a7702c8f0aa2c2e7fdf2bcf913e76bb8b827f4.tar.gz tangerine-wallet-browser-39a7702c8f0aa2c2e7fdf2bcf913e76bb8b827f4.tar.bz2 tangerine-wallet-browser-39a7702c8f0aa2c2e7fdf2bcf913e76bb8b827f4.tar.lz tangerine-wallet-browser-39a7702c8f0aa2c2e7fdf2bcf913e76bb8b827f4.tar.xz tangerine-wallet-browser-39a7702c8f0aa2c2e7fdf2bcf913e76bb8b827f4.tar.zst tangerine-wallet-browser-39a7702c8f0aa2c2e7fdf2bcf913e76bb8b827f4.zip |
Merge pull request #4511 from MetaMask/v4.7.4
Version 4.7.4
Diffstat (limited to 'app/scripts/lib/diagnostics-reporter.js')
-rw-r--r-- | app/scripts/lib/diagnostics-reporter.js | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/app/scripts/lib/diagnostics-reporter.js b/app/scripts/lib/diagnostics-reporter.js new file mode 100644 index 000000000..aa4ca6e26 --- /dev/null +++ b/app/scripts/lib/diagnostics-reporter.js @@ -0,0 +1,71 @@ +class DiagnosticsReporter { + + constructor ({ firstTimeInfo, version }) { + this.firstTimeInfo = firstTimeInfo + this.version = version + } + + async reportOrphans(orphans) { + try { + return await this.submit({ + accounts: Object.keys(orphans), + metadata: { + type: 'orphans', + }, + }) + } catch (err) { + console.error('DiagnosticsReporter - "reportOrphans" encountered an error:') + console.error(err) + } + } + + async reportMultipleKeyrings(rawKeyrings) { + try { + const keyrings = await Promise.all(rawKeyrings.map(async (keyring, index) => { + return { + index, + type: keyring.type, + accounts: await keyring.getAccounts(), + } + })) + return await this.submit({ + accounts: [], + metadata: { + type: 'keyrings', + keyrings, + }, + }) + } catch (err) { + console.error('DiagnosticsReporter - "reportMultipleKeyrings" encountered an error:') + console.error(err) + } + } + + async submit (message) { + try { + // add metadata + message.metadata.version = this.version + message.metadata.firstTimeInfo = this.firstTimeInfo + return await postData(message) + } catch (err) { + console.error('DiagnosticsReporter - "submit" encountered an error:') + throw err + } + } + +} + +function postData(data) { + const uri = 'https://diagnostics.metamask.io/v1/orphanedAccounts' + return fetch(uri, { + body: JSON.stringify(data), // must match 'Content-Type' header + credentials: 'same-origin', // include, same-origin, *omit + headers: { + 'content-type': 'application/json', + }, + method: 'POST', // *GET, POST, PUT, DELETE, etc. + mode: 'cors', // no-cors, cors, *same-origin + }) +} + +module.exports = DiagnosticsReporter |