Reviewed #544, made the logic in useFormatter instead

This commit is contained in:
ZENODE 2024-02-20 20:14:44 +01:00
parent dc1c4a5ca1
commit 4835781d29
2 changed files with 24 additions and 12 deletions

View File

@ -290,15 +290,15 @@ export const useDashboard = defineStore('dashboard', {
keys.forEach(k => {
if(this.chains[k]) this.chains[k].assets.forEach(a => {
if(a.coingecko_id !== undefined && a.coingecko_id.length > 0) {
coinIds.push(a.coingecko_id)
coinIds.push(a.coingecko_id)
a.denom_units.forEach(u => {
this.coingecko[u.denom] = {
coinId: a.coingecko_id || '',
exponent: u.exponent,
symbol: a.symbol
}
})
}
a.denom_units.forEach(u => {
this.coingecko[u.denom] = {
coinId: a.coingecko_id || '',
exponent: u.exponent,
symbol: a.symbol
}
})
})
})

View File

@ -121,16 +121,15 @@ export const useFormatter = defineStore('formatter', {
case denom.startsWith("a"): return 18
case denom==='inj': return 18
}
return 0
return this.exponentForDenom(denom)
},
tokenAmountNumber(token?: Coin) {
if(!token || !token.denom) return 0
// find the symbol
const symbol = this.dashboard.coingecko[token.denom]?.symbol || token.denom
// convert denomination to to symbol
const exponent =
this.dashboard.coingecko[symbol?.toLowerCase()]?.exponent || this.specialDenom(token.denom);
// convert denomination to symbol
const exponent = this.dashboard.coingecko[symbol?.toLowerCase()]?.exponent || this.specialDenom(token.denom);
// caculate amount of symbol
const amount = Number(token.amount) / (10 ** exponent)
return amount
@ -160,7 +159,20 @@ export const useFormatter = defineStore('formatter', {
}
return undefined
},
exponentForDenom(denom: string) {
const asset: Asset | undefined = this.findGlobalAssetConfig(denom)
let exponent = 0;
if (asset) {
// find the max exponent for display
asset.denom_units.forEach((x) => {
if (x.exponent >= exponent) {
exponent = x.exponent;
}
});
}
return exponent;
},
tokenDisplayDenom(denom?: string) {
if (denom) {
let asset: Asset | undefined;