mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 01:39:44 +01:00
Begin adding unconfigured notifier
This commit is contained in:
parent
8fcaa2cf56
commit
fd1ce4d741
@ -1,6 +1,8 @@
|
||||
const ObservableStore = require('obs-store')
|
||||
const normalizeAddress = require('eth-sig-util').normalize
|
||||
const extend = require('xtend')
|
||||
const BugNotifier = require('../lib/bug-notifier')
|
||||
const notifier = new BugNotifier()
|
||||
|
||||
class PreferencesController {
|
||||
|
||||
@ -30,6 +32,7 @@ class PreferencesController {
|
||||
identities: {},
|
||||
lostIdentities: {},
|
||||
}, opts.initState)
|
||||
|
||||
this.store = new ObservableStore(initState)
|
||||
}
|
||||
// PUBLIC METHODS
|
||||
@ -108,17 +111,27 @@ class PreferencesController {
|
||||
*/
|
||||
syncAddresses (addresses) {
|
||||
let { identities, lostIdentities } = this.store.getState()
|
||||
|
||||
Object.keys(identities).forEach((identity) => {
|
||||
if (!addresses.includes(identity)) {
|
||||
delete identities[identity]
|
||||
lostIdentities[identity] = identities[identity]
|
||||
|
||||
// TODO: Report the bug to Sentry including the now-lost identity.
|
||||
alert('Error 4486: MetaMask has encountered a very strange error. Please open a support issue immediately at support@metamask.io.')
|
||||
}
|
||||
})
|
||||
|
||||
// Identities are no longer present.
|
||||
if (Object.keys(lostIdentities).length > 0) {
|
||||
|
||||
// timeout to prevent blocking the thread:
|
||||
setTimeout(() => {
|
||||
alert('Error 4486: MetaMask has encountered a very strange error. Please open a support issue immediately at support@metamask.io.')
|
||||
}, 10)
|
||||
|
||||
// Notify our servers:
|
||||
const uri =
|
||||
notifier.notify(uri, { accounts: Object.keys(lostIdentities) })
|
||||
.catch(log.error)
|
||||
}
|
||||
|
||||
this.store.updateState({ identities, lostIdentities })
|
||||
this.addAddresses(addresses)
|
||||
|
||||
|
@ -1,26 +1,21 @@
|
||||
class BugNotifier {
|
||||
notify (message) {
|
||||
|
||||
postData('http://example.com/answer', {answer: 42})
|
||||
notify (uri, message) {
|
||||
return postData(uri, message)
|
||||
.then(data => console.log(data)) // JSON from `response.json()` call
|
||||
.catch(error => console.error(error))
|
||||
}
|
||||
}
|
||||
|
||||
function postData(url, data) {
|
||||
// Default options are marked with *
|
||||
function postData(uri, data) {
|
||||
|
||||
return fetch(url, {
|
||||
body: JSON.stringify(data), // must match 'Content-Type' header
|
||||
cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached
|
||||
credentials: 'same-origin', // include, same-origin, *omit
|
||||
headers: {
|
||||
'user-agent': 'Mozilla/4.0 MDN Example',
|
||||
'content-type': 'application/json'
|
||||
},
|
||||
method: 'POST', // *GET, POST, PUT, DELETE, etc.
|
||||
mode: 'cors', // no-cors, cors, *same-origin
|
||||
redirect: 'follow', // manual, *follow, error
|
||||
referrer: 'no-referrer', // *client, no-referrer
|
||||
})
|
||||
.then(response => response.json()) // parses response to JSON
|
||||
}
|
Loading…
Reference in New Issue
Block a user