1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00

app - warn on fetch errors instead of spamming sentry

This commit is contained in:
kumavis 2018-04-03 10:33:10 -07:00
parent 3e4b11e0d7
commit ecbab14cae
5 changed files with 37 additions and 44 deletions

View File

@ -41,9 +41,9 @@ class BlacklistController {
scheduleUpdates () { scheduleUpdates () {
if (this._phishingUpdateIntervalRef) return if (this._phishingUpdateIntervalRef) return
this.updatePhishingList() this.updatePhishingList().catch(log.warn)
this._phishingUpdateIntervalRef = setInterval(() => { this._phishingUpdateIntervalRef = setInterval(() => {
this.updatePhishingList() this.updatePhishingList().catch(log.warn)
}, POLLING_INTERVAL) }, POLLING_INTERVAL)
} }
@ -57,4 +57,3 @@ class BlacklistController {
} }
module.exports = BlacklistController module.exports = BlacklistController

View File

@ -43,20 +43,18 @@ class CurrencyController {
this.store.updateState({ conversionDate }) this.store.updateState({ conversionDate })
} }
updateConversionRate () { await updateConversionRate () {
const currentCurrency = this.getCurrentCurrency() try {
return fetch(`https://api.infura.io/v1/ticker/eth${currentCurrency.toLowerCase()}`) const currentCurrency = this.getCurrentCurrency()
.then(response => response.json()) const response = await fetch(`https://api.infura.io/v1/ticker/eth${currentCurrency.toLowerCase()}`)
.then((parsedResponse) => { const parsedResponse = await response.json()
this.setConversionRate(Number(parsedResponse.bid)) this.setConversionRate(Number(parsedResponse.bid))
this.setConversionDate(Number(parsedResponse.timestamp)) this.setConversionDate(Number(parsedResponse.timestamp))
}).catch((err) => { } catch (err) {
if (err) { console.warn(`MetaMask - Failed to query currency conversion:`, currentCurrency, err)
console.warn(`MetaMask - Failed to query currency conversion:`, currentCurrency, err) this.setConversionRate(0)
this.setConversionRate(0) this.setConversionDate('N/A')
this.setConversionDate('N/A') }
}
})
} }
scheduleConversionInterval () { scheduleConversionInterval () {

View File

@ -19,15 +19,13 @@ class InfuraController {
// Responsible for retrieving the status of Infura's nodes. Can return either // Responsible for retrieving the status of Infura's nodes. Can return either
// ok, degraded, or down. // ok, degraded, or down.
checkInfuraNetworkStatus () { async checkInfuraNetworkStatus () {
return fetch('https://api.infura.io/v1/status/metamask') const response = await fetch('https://api.infura.io/v1/status/metamask')
.then(response => response.json()) const parsedResponse = await response.json()
.then((parsedResponse) => { this.store.updateState({
this.store.updateState({ infuraNetworkStatus: parsedResponse,
infuraNetworkStatus: parsedResponse, })
}) return parsedResponse
return parsedResponse
})
} }
scheduleInfuraNetworkCheck () { scheduleInfuraNetworkCheck () {
@ -35,7 +33,7 @@ class InfuraController {
clearInterval(this.conversionInterval) clearInterval(this.conversionInterval)
} }
this.conversionInterval = setInterval(() => { this.conversionInterval = setInterval(() => {
this.checkInfuraNetworkStatus() this.checkInfuraNetworkStatus().catch(log.warn)
}, POLLING_INTERVAL) }, POLLING_INTERVAL)
} }
} }

View File

@ -45,18 +45,19 @@ class ShapeshiftController {
}) })
} }
updateTx (tx) { async updateTx (tx) {
const url = `https://shapeshift.io/txStat/${tx.depositAddress}` try {
return fetch(url) const url = `https://shapeshift.io/txStat/${tx.depositAddress}`
.then((response) => { const response = await fetch(url)
return response.json() const json = await response.json()
}).then((json) => {
tx.response = json tx.response = json
if (tx.response.status === 'complete') { if (tx.response.status === 'complete') {
tx.time = new Date().getTime() tx.time = new Date().getTime()
} }
return tx return tx
}) } catch (err) {
log.warn(err)
}
} }
saveTx (tx) { saveTx (tx) {

View File

@ -25,18 +25,15 @@ const getMessage = (locale, key, substitutions) => {
return phrase return phrase
} }
function fetchLocale (localeName) { async function fetchLocale (localeName) {
return new Promise((resolve, reject) => { try {
return fetch(`./_locales/${localeName}/messages.json`) const response = await fetch(`./_locales/${localeName}/messages.json`)
.then(response => response.json()) const locale = await response.json()
.then( return locale
locale => resolve(locale), } catch (error) {
error => { log.error(`failed to fetch ${localeName} locale because of ${error}`)
log.error(`failed to fetch ${localeName} locale because of ${error}`) return {}
resolve({}) }
}
)
})
} }
module.exports = { module.exports = {