2022-06-15 21:50:04 +08:00

46 lines
1.1 KiB
TypeScript

/**
* change price with customer decimals to bigNum with 18 decimals
* @param {number} price
* @param {number} decimals
* @return {string}
*/
export function parsePrice(price: number, decimals: number) {
const n = 19 - decimals
return price + new Array(n).join('0')
}
/**
* format price with customer decimals to string for display
* @param {number | string} price
* @param {number} decimals
* @param {number} fixed
* @return {number | string}
*/
export function formatPrice(price: number|string, decimals?: number, fixed = 2) {
if (!decimals) {
return price
}
let str = price + ''
const length = str.length
str = str.padStart(decimals, '0')
if (decimals >= length) {
str = '0.' + str
} else {
const pos = length - decimals
str = str.slice(0, pos) + '.' + str.slice(pos)
}
str = str.slice(0, str.lastIndexOf('.') + fixed + 1)
return str
// return str.replace(/0+$/, '').replace(/\.+$/, '')
}
/**
* number to hex string
* @param {number} chainId
* @return {string}
*/
export function toHexChainId(chainId: number) {
return '0x' + chainId.toString(16)
}