@okxweb3/coin-stellar
Version:
@ok/coin-stellar is a Stellar SDK for building Web3 wallets and applications. It supports Stellar and PI blockchains, enabling private key management, address generation, transaction signing, trustline creation, and asset transfers
33 lines • 1.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Soroban = void 0;
class Soroban {
static formatTokenAmount(amount, decimals) {
if (amount.includes('.')) {
throw new TypeError('No decimals are allowed');
}
let formatted = amount;
if (decimals > 0) {
if (decimals > formatted.length) {
formatted = ['0', formatted.toString().padStart(decimals, '0')].join('.');
}
else {
formatted = [
formatted.slice(0, -decimals),
formatted.slice(-decimals)
].join('.');
}
}
return formatted.replace(/(\.\d*?)0+$/, '$1');
}
static parseTokenAmount(value, decimals) {
const [whole, fraction, ...rest] = value.split('.').slice();
if (rest.length) {
throw new Error(`Invalid decimal value: ${value}`);
}
const shifted = BigInt(whole + (fraction?.padEnd(decimals, '0') ?? '0'.repeat(decimals)));
return shifted.toString();
}
}
exports.Soroban = Soroban;
//# sourceMappingURL=soroban.js.map