ghost-dao-interface/src/helpers/index.js
Uncle Fatso 98a6a5b5d2
use original coeff for tokenValue correction
Signed-off-by: Uncle Fatso <uncle.fatso@ghostchain.io>
2026-03-01 19:58:36 +03:00

68 lines
1.9 KiB
JavaScript

export function shorten(str) {
if (str.length < 10) return str;
return `${str.slice(0, 6)}...${str.slice(str.length - 4)}`;
}
export function capitalize(str) {
if (str.length === 0) return str;
if (str.length === 1) return str.toUpperCase();
return String(str[0]).toUpperCase() + String(str).slice(1);
}
export function shouldTriggerSafetyCheck() {
const _storage = window.sessionStorage;
const _safetyCheckKey = "-ghst-safety";
// check if sessionStorage item exists for SafetyCheck
if (!_storage.getItem(_safetyCheckKey)) {
_storage.setItem(_safetyCheckKey, "true");
return true;
}
return false;
}
export function formatCurrency(c, precision = 0, currency = "USD") {
const formatted = new Intl.NumberFormat("en-US", {
style: currency === "USD" || currency === "" ? "currency" : undefined,
currency: "USD",
maximumFractionDigits: precision,
minimumFractionDigits: precision,
}).format(c);
if (currency) return `${formatted} ${currency}`;
return formatted;
}
export const formatNumber = (number, precision = 0) => {
return new Intl.NumberFormat("en-US", {
minimumFractionDigits: precision,
maximumFractionDigits: precision,
}).format(number);
};
export const sortBondsByDiscount = (bonds) => {
return Array.from(bonds).filter((bond) => !bond.isSoldOut).sort((a, b) => (a.discount.gt(b.discount) ? -1 : 1));
};
export const timeConverter = (time, max = 7200, maxText = "long ago") => {
const seconds = Number(time);
const mins = Math.floor(seconds / 60);
const secs = seconds % 60;
if (mins > max) {
return maxText;
} else {
return `${mins}m ${secs < 10 ? '0' : ''}${secs}s`;
}
}
export const bigIntSqrt = (n) => {
if (n < 0n) return 0n;
if (n < 2n) return n;
let x = n / 2n + 1n;
let y = (x + n / x) / 2n;
while (y < x) {
x = y;
y = (x + n / x) / 2n;
}
return x;
}