diff --git a/src/libs/fetch.js b/src/libs/fetch.js index 1a455426..5a51a28b 100644 --- a/src/libs/fetch.js +++ b/src/libs/fetch.js @@ -185,8 +185,19 @@ export default class ChainFetch { async getValidatorList(config = null) { return this.get('/cosmos/staking/v1beta1/validators?pagination.limit=200&status=BOND_STATUS_BONDED', config).then(data => { const vals = commonProcess(data.validators).map(i => new Validator().init(i)) - // disable cache - // localStorage.setItem(`validators-${this.config.chain_name}`, JSON.stringify(vals)) + try { + localStorage.setItem(`validators-${this.config.chain_name}`, JSON.stringify(vals)) + } catch (err) { + // clear cache + for (let i = 0; i < localStorage.length; i += 1) { + const key = localStorage.key(i) + if (key.startsWith('validators')) { + localStorage.removeItem(key) + } + } + // set again + localStorage.setItem(`validators-${this.config.chain_name}`, JSON.stringify(vals)) + } return vals }) } diff --git a/src/views/Uptime.vue b/src/views/Uptime.vue index 1d754f96..19e81374 100644 --- a/src/views/Uptime.vue +++ b/src/views/Uptime.vue @@ -279,10 +279,10 @@ export default { }, }, created() { - // const cached = JSON.parse(getCachedValidators(this.$route.params.chain)) - // if (cached) { - // this.validators = cached - // } + const cached = JSON.parse(getCachedValidators(this.$route.params.chain)) + if (cached) { + this.validators = cached + } this.$http.getValidatorList().then(res => { this.validators = res })