aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorDan Finlay <dan@danfinlay.com>2018-06-05 05:05:56 +0800
committerDan Finlay <dan@danfinlay.com>2018-06-05 05:05:56 +0800
commit8fcaa2cf56936388ef8dfc528ecbd2354adb201e (patch)
tree3b3de0b1fdbd0b66f46483bdc1be0040f89c7ea1 /app
parentf5d4acf53b2d518df1b2c0b9b983bbc5224fb670 (diff)
downloadtangerine-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.js6
-rw-r--r--app/scripts/lib/4486-notifier.js29
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
+