diff options
author | Dan Finlay <dan@danfinlay.com> | 2018-06-05 05:05:56 +0800 |
---|---|---|
committer | Dan Finlay <dan@danfinlay.com> | 2018-06-05 05:05:56 +0800 |
commit | 8fcaa2cf56936388ef8dfc528ecbd2354adb201e (patch) | |
tree | 3b3de0b1fdbd0b66f46483bdc1be0040f89c7ea1 /app | |
parent | f5d4acf53b2d518df1b2c0b9b983bbc5224fb670 (diff) | |
download | tangerine-wallet-browser-8fcaa2cf56936388ef8dfc528ecbd2354adb201e.tar tangerine-wallet-browser-8fcaa2cf56936388ef8dfc528ecbd2354adb201e.tar.gz tangerine-wallet-browser-8fcaa2cf56936388ef8dfc528ecbd2354adb201e.tar.bz2 tangerine-wallet-browser-8fcaa2cf56936388ef8dfc528ecbd2354adb201e.tar.lz tangerine-wallet-browser-8fcaa2cf56936388ef8dfc528ecbd2354adb201e.tar.xz tangerine-wallet-browser-8fcaa2cf56936388ef8dfc528ecbd2354adb201e.tar.zst tangerine-wallet-browser-8fcaa2cf56936388ef8dfc528ecbd2354adb201e.zip |
Persist lost identities to storage for later analysis
Diffstat (limited to 'app')
-rw-r--r-- | app/scripts/controllers/preferences.js | 6 | ||||
-rw-r--r-- | app/scripts/lib/4486-notifier.js | 29 |
2 files changed, 33 insertions, 2 deletions
diff --git a/app/scripts/controllers/preferences.js b/app/scripts/controllers/preferences.js index 8cb846476..38e93dea8 100644 --- a/app/scripts/controllers/preferences.js +++ b/app/scripts/controllers/preferences.js @@ -28,6 +28,7 @@ class PreferencesController { featureFlags: {}, currentLocale: opts.initLangCode, identities: {}, + lostIdentities: {}, }, opts.initState) this.store = new ObservableStore(initState) } @@ -106,18 +107,19 @@ class PreferencesController { * @returns {Promise<string>} selectedAddress the selected address. */ syncAddresses (addresses) { - const identities = this.store.getState().identities + 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.') } }) - this.store.updateState({ identities }) + this.store.updateState({ identities, lostIdentities }) this.addAddresses(addresses) let selected = this.getSelectedAddress() diff --git a/app/scripts/lib/4486-notifier.js b/app/scripts/lib/4486-notifier.js new file mode 100644 index 000000000..b1b153419 --- /dev/null +++ b/app/scripts/lib/4486-notifier.js @@ -0,0 +1,29 @@ +class BugNotifier { + notify (message) { + + postData('http://example.com/answer', {answer: 42}) + .then(data => console.log(data)) // JSON from `response.json()` call + .catch(error => console.error(error)) + } +} + +function postData(url, data) { + // Default options are marked with * + 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 +} + +module.exports = BugNotifier + |