imporove disploy of token amount
This commit is contained in:
parent
3f0dcdf276
commit
24f39e3bce
@ -4,7 +4,7 @@
|
|||||||
"api": "https://api.provenance.io",
|
"api": "https://api.provenance.io",
|
||||||
"sdk_version": "0.44.3",
|
"sdk_version": "0.44.3",
|
||||||
"coin_type": "505",
|
"coin_type": "505",
|
||||||
"min_tx_fee": "3000",
|
"min_tx_fee": "400000000",
|
||||||
"addr_prefix": "pb",
|
"addr_prefix": "pb",
|
||||||
"logo": "https://raw.githubusercontent.com/provenance-io/provenance/main/docs/pio.svg",
|
"logo": "https://raw.githubusercontent.com/provenance-io/provenance/main/docs/pio.svg",
|
||||||
"assets": [{
|
"assets": [{
|
||||||
|
@ -357,6 +357,12 @@ export function getUnitAmount(amount, tokenDenom) {
|
|||||||
return String(BigInt(Number(amount) * (10 ** exp)))
|
return String(BigInt(Number(amount) * (10 ** exp)))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function numberWithCommas(x) {
|
||||||
|
const parts = x.toString().split('.')
|
||||||
|
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',')
|
||||||
|
return parts.join('.')
|
||||||
|
}
|
||||||
|
|
||||||
export function formatTokenAmount(tokenAmount, fraction = 2, tokenDenom = 'uatom') {
|
export function formatTokenAmount(tokenAmount, fraction = 2, tokenDenom = 'uatom') {
|
||||||
const denom = tokenDenom.denom_trace ? tokenDenom.denom_trace.base_denom : tokenDenom
|
const denom = tokenDenom.denom_trace ? tokenDenom.denom_trace.base_denom : tokenDenom
|
||||||
let amount = 0
|
let amount = 0
|
||||||
@ -372,9 +378,9 @@ export function formatTokenAmount(tokenAmount, fraction = 2, tokenDenom = 'uatom
|
|||||||
})
|
})
|
||||||
amount = Number(Number(tokenAmount)) / (10 ** exp)
|
amount = Number(Number(tokenAmount)) / (10 ** exp)
|
||||||
if (amount > 10) {
|
if (amount > 10) {
|
||||||
return parseFloat(amount.toFixed(fraction))
|
return numberWithCommas(parseFloat(amount.toFixed(fraction)))
|
||||||
}
|
}
|
||||||
return parseFloat(amount)
|
return parseFloat(amount.toFixed(fraction))
|
||||||
}
|
}
|
||||||
|
|
||||||
export function isTestnet() {
|
export function isTestnet() {
|
||||||
@ -405,7 +411,7 @@ export function formatNumber(count, withAbbr = false, decimals = 2) {
|
|||||||
|
|
||||||
export function tokenFormatter(tokens, denoms = {}) {
|
export function tokenFormatter(tokens, denoms = {}) {
|
||||||
if (Array.isArray(tokens)) {
|
if (Array.isArray(tokens)) {
|
||||||
return tokens.map(t => formatToken(t, denoms, 2)).join()
|
return tokens.map(t => formatToken(t, denoms, 2)).join(', ')
|
||||||
}
|
}
|
||||||
return formatToken(tokens, denoms, 2)
|
return formatToken(tokens, denoms, 2)
|
||||||
}
|
}
|
||||||
|
@ -32,9 +32,9 @@
|
|||||||
</b-media-aside>
|
</b-media-aside>
|
||||||
<b-media-body>
|
<b-media-body>
|
||||||
<h6 class="transaction-title">
|
<h6 class="transaction-title">
|
||||||
{{ formatNumber(d.amount) }}
|
{{ formatDenom(d) }}
|
||||||
</h6>
|
</h6>
|
||||||
<small>{{ formatDenom(d.denom) }} </small>
|
<small>{{ formatNumber(d.amount) }}</small>
|
||||||
</b-media-body>
|
</b-media-body>
|
||||||
</b-media>
|
</b-media>
|
||||||
<small
|
<small
|
||||||
@ -63,9 +63,9 @@
|
|||||||
</b-media-aside>
|
</b-media-aside>
|
||||||
<b-media-body>
|
<b-media-body>
|
||||||
<h6 class="transaction-title">
|
<h6 class="transaction-title">
|
||||||
{{ formatNumber(d.amount) }}
|
{{ formatDenom(d) }}
|
||||||
</h6>
|
</h6>
|
||||||
<small>{{ formatDenom(d.denom) }}</small>
|
<small>{{ formatNumber(d.amount) }}</small>
|
||||||
</b-media-body>
|
</b-media-body>
|
||||||
</b-media>
|
</b-media>
|
||||||
<small
|
<small
|
||||||
@ -98,6 +98,7 @@ import {
|
|||||||
} from 'bootstrap-vue'
|
} from 'bootstrap-vue'
|
||||||
import { sha256 } from '@cosmjs/crypto'
|
import { sha256 } from '@cosmjs/crypto'
|
||||||
import { toHex } from '@cosmjs/encoding'
|
import { toHex } from '@cosmjs/encoding'
|
||||||
|
import { formatToken, numberWithCommas } from '@/libs/utils'
|
||||||
import OperationWithdrawCommissionComponent from './OperationWithdrawCommissionComponent.vue'
|
import OperationWithdrawCommissionComponent from './OperationWithdrawCommissionComponent.vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@ -142,10 +143,12 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
formatNumber(value) {
|
formatNumber(value) {
|
||||||
return Number(value).toFixed(2)
|
if (value < 1) return value
|
||||||
|
// eslint-disable-next-line no-undef
|
||||||
|
return numberWithCommas(BigInt(Number(value).toFixed(0)))
|
||||||
},
|
},
|
||||||
formatDenom(value) {
|
formatDenom(value) {
|
||||||
return value.startsWith('ibc') ? this.denoms[value] : value
|
return formatToken(value, this.denoms, 2)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
import { sha256 } from '@cosmjs/crypto'
|
import { sha256 } from '@cosmjs/crypto'
|
||||||
import { toHex } from '@cosmjs/encoding'
|
import { toHex } from '@cosmjs/encoding'
|
||||||
import { BTable, BCardTitle, BCard } from 'bootstrap-vue'
|
import { BTable, BCardTitle, BCard } from 'bootstrap-vue'
|
||||||
import { formatNumber, formatTokenAmount, formatTokenDenom } from '@/libs/utils'
|
import { formatTokenAmount, formatTokenDenom } from '@/libs/utils'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
@ -37,9 +37,9 @@ export default {
|
|||||||
formatter: this.formatDenom,
|
formatter: this.formatDenom,
|
||||||
tdClass: 'text-nowrap text-truncate overflow-hidden',
|
tdClass: 'text-nowrap text-truncate overflow-hidden',
|
||||||
},
|
},
|
||||||
'abbr',
|
|
||||||
{
|
{
|
||||||
key: 'amount',
|
key: 'abbr',
|
||||||
|
label: 'Amount',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
@ -48,14 +48,14 @@ export default {
|
|||||||
this.$http.getAllIBCDenoms().then(x => {
|
this.$http.getAllIBCDenoms().then(x => {
|
||||||
x.denom_traces.forEach(trace => {
|
x.denom_traces.forEach(trace => {
|
||||||
const hash = toHex(sha256(new TextEncoder().encode(`${trace.path}/${trace.base_denom}`)))
|
const hash = toHex(sha256(new TextEncoder().encode(`${trace.path}/${trace.base_denom}`)))
|
||||||
this.$set(this.denoms, `ibc/${hash.toUpperCase()}`, trace.base_denom)
|
this.$set(this.denoms, `ibc/${hash.toUpperCase()}`, trace)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
this.$http.getBankTotals().then(res => {
|
this.$http.getBankTotals().then(res => {
|
||||||
const toshow = res.sort()
|
const toshow = res.sort()
|
||||||
this.assets = toshow.reverse().map(x => {
|
this.assets = toshow.reverse().map(x => {
|
||||||
const xh = x
|
const xh = x
|
||||||
xh.abbr = x.amount > 1 ? formatNumber(formatTokenAmount(x.amount, 0, x.denom), true, 2) : x.amount
|
xh.abbr = formatTokenAmount(x.amount, 0, x.denom)
|
||||||
return xh
|
return xh
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@ -65,7 +65,11 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
formatDenom(v) {
|
formatDenom(v) {
|
||||||
return formatTokenDenom(this.denoms[v] ? this.denoms[v] : v)
|
if (this.denoms[v]) {
|
||||||
|
const trace = this.denoms[v]
|
||||||
|
return `* ${formatTokenDenom(trace.base_denom)} (${trace.path})`
|
||||||
|
}
|
||||||
|
return v
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user