import { IS_BROWSER } from '../configs' export const delayTime = (ms: number, value?: T) => { return new Promise((resolve) => setTimeout(resolve, ms, value)) } export const getNextObject = (object: T): T => { if (IS_BROWSER) { return object } return Object.keys(object).reduce((accum, key) => { return { ...accum, [key]: typeof object[key] === 'function' ? () => {} : null } }, {} as T) } export const shortWalletAddress = (address = '', start = 5, end = 5) => { if (!address) return '' if (address.length <= start + end) return address return `${address.substring(0, start)}...${address.substring(address.length - end)}` } /** * e.g: 123,456001=> 123,456 * @param number * @param separator * @returns */ export const getFullDisplayBalance = (number, displayDecimals = 3, isSeparator = true) => { if (!number) { return 0 } const decimalNumber = parseFloat(number.toFixed(displayDecimals)) if (isSeparator) { return numberWithSeparator(decimalNumber) } return decimalNumber } /** * e.g: 1000 => 1,000 * @param number * @param separator * @returns */ export const numberWithSeparator = (number, separator = ',') => { if (number !== 0 && !number) { return '' } // format float const array = number.toString().split('.') if (array[1]) { return array[0].toString().replace(/\B(?=(\d{3})+(?!\d))/g, separator) + '.' + array[1] } return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, separator) }