diff options
author | kumavis <aaron@kumavis.me> | 2018-10-19 16:51:03 +0800 |
---|---|---|
committer | kumavis <aaron@kumavis.me> | 2018-10-19 16:51:03 +0800 |
commit | 65aa0a1d14b0b18d77b537b216d03ce5d9fca725 (patch) | |
tree | 0db6b5536f9d28abcc3bfb7bc8b447e1e88398cc | |
parent | fb1b8d42ac09982b0844ebfd5d4e0169383c983f (diff) | |
download | tangerine-wallet-browser-65aa0a1d14b0b18d77b537b216d03ce5d9fca725.tar.gz tangerine-wallet-browser-65aa0a1d14b0b18d77b537b216d03ce5d9fca725.tar.zst tangerine-wallet-browser-65aa0a1d14b0b18d77b537b216d03ce5d9fca725.zip |
blacklist - throw errors on request/parse failure
-rw-r--r-- | app/scripts/controllers/blacklist.js | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/app/scripts/controllers/blacklist.js b/app/scripts/controllers/blacklist.js index 89c7cc888..5a5ec1c31 100644 --- a/app/scripts/controllers/blacklist.js +++ b/app/scripts/controllers/blacklist.js @@ -83,8 +83,23 @@ class BlacklistController { * */ async updatePhishingList () { - const response = await fetch('https://api.infura.io/v2/blacklist') - const phishing = await response.json() + // make request + let response + try { + response = await fetch('https://api.infura.io/v2/blacklist') + } catch (err) { + throw new Error(`BlacklistController - failed to fetch blacklist:\n${err.stack}`) + } + // parse response + let rawResponse + let phishing + try { + const rawResponse = await response.text() + phishing = JSON.parse(rawResponse) + } catch (err) { + throw new Error(`BlacklistController - failed to parse blacklist:\n${rawResponse}`) + } + // update current blacklist this.store.updateState({ phishing }) this._setupPhishingDetector(phishing) return phishing @@ -97,9 +112,9 @@ class BlacklistController { */ scheduleUpdates () { if (this._phishingUpdateIntervalRef) return - this.updatePhishingList().catch(log.warn) + this.updatePhishingList() this._phishingUpdateIntervalRef = setInterval(() => { - this.updatePhishingList().catch(log.warn) + this.updatePhishingList() }, POLLING_INTERVAL) } |