@tribecahq/registry
Version:
Registry of Tribeca DAOs.
32 lines • 1.08 kB
JavaScript
import { isPublicKey } from "@saberhq/solana-contrib";
import { Fraction, Percent } from "@saberhq/token-utils";
import { isBN } from "bn.js";
import fastStableStringify from "fast-json-stable-stringify";
export const serialize = (_key, value) => {
if (!value) {
return value;
}
if (Percent.isPercent(value) || Fraction.isFraction(value)) {
return {
formatted: value.toFixed(10),
numerator: value.numerator.toString(),
denominator: value.denominator.toString(),
};
}
try {
if (value && isBN(value)) {
return value.toString();
}
}
catch (e) {
// nothing
}
if (isPublicKey(value)) {
return value.toString();
}
return value;
};
export const jsonStringify = (value) => JSON.stringify(value, serialize, 2);
export const makeSerializable = (value) => JSON.parse(jsonStringify(value));
export const stableStringify = (value) => jsonStringify(JSON.parse(fastStableStringify(makeSerializable(value))));
//# sourceMappingURL=serialize.js.map