@robertprp/intents-sdk
Version:
Shogun Network Intent-based cross-chain swaps SDK
31 lines (23 loc) • 838 B
text/typescript
/* eslint-disable @typescript-eslint/no-namespace */
import { formatUnits, parseUnits } from 'viem';
export namespace Parsers {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export function bigIntReplacer(_key: string, value: any): any {
if (typeof value === 'bigint') {
return value.toString();
}
if (typeof value === 'string' && /^\d+n$/.test(value)) {
return value.slice(0, -1);
}
return value;
}
export function bigintToFloat(amount: bigint, decimals: number): number {
const formatted = formatUnits(amount, decimals);
const result = parseFloat(formatted);
return result;
}
export function floatToBigint(usdValue: number, decimals: number): bigint {
const valueString = usdValue.toFixed(decimals);
return parseUnits(valueString, decimals);
}
}