UNPKG

@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
"use strict"; 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