From 34a7498dcb148c136c1574359aaac4adcb024ba5 Mon Sep 17 00:00:00 2001 From: Thunnini Date: Fri, 16 Oct 2020 01:07:41 +0900 Subject: [PATCH] Improve the way to cache the assets of account --- src/ui/popup/stores/account/index.tsx | 39 ++++++++++++++++----------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/src/ui/popup/stores/account/index.tsx b/src/ui/popup/stores/account/index.tsx index 58684a437d..2972e979f3 100644 --- a/src/ui/popup/stores/account/index.tsx +++ b/src/ui/popup/stores/account/index.tsx @@ -337,18 +337,22 @@ export class AccountStore { assets: Coin[], staked: boolean = false ): Promise { - const coinStrs: string[] = []; - for (const coin of assets) { - coinStrs.push(coin.toString()); + const json: { + denom: string; + amount: string; + }[] = []; + for (const asset of assets) { + json.push({ + denom: asset.denom, + amount: asset.amount.toString() + }); } - const store = (await browser.storage.local.get()).assets ?? {}; + const store = (await browser.storage.local.get()).assetsJson ?? {}; await browser.storage.local.set({ - assets: Object.assign({}, store, { - [`${chainId}-${bech32Address}${ - staked ? "-staked" : "" - }`]: coinStrs.join(",") + assetsJson: Object.assign({}, store, { + [`${chainId}-${bech32Address}${staked ? "-staked" : ""}`]: json }) }); } @@ -362,14 +366,17 @@ export class AccountStore { const items = await browser.storage.local.get(); const coins: Coin[] = []; - const assets = items?.assets; - if (assets) { - const coinsStr = - assets[`${chainId}-${bech32Address}${staked ? "-staked" : ""}`]; - if (coinsStr) { - const coinStrs = coinsStr.split(","); - for (const coinStr of coinStrs) { - coins.push(Coin.parse(coinStr)); + const assetsJson = items?.assetsJson; + if (assetsJson) { + const json: { + denom: string; + amount: string; + }[] = assetsJson[`${chainId}-${bech32Address}${staked ? "-staked" : ""}`]; + + if (json) { + for (const c of json) { + const coin = new Coin(c.denom, c.amount); + coins.push(coin); } } }