@akashicpay/sdk
Version:
SDK to interact with the Akashic ecosystem
32 lines • 1.44 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.convertToSmallestUnit = convertToSmallestUnit;
exports.isNetworkSymbol = isNetworkSymbol;
const big_js_1 = __importDefault(require("big.js"));
const constants_1 = require("../constants");
const l1Network_1 = require("../l1Network");
function convertToSmallestUnit(amount, coinSymbol, tokenSymbol) {
const conversionFactor = getConversionFactor(coinSymbol, tokenSymbol);
const convertedAmount = (0, big_js_1.default)(10).pow(conversionFactor).times(amount);
throwIfNotInteger(convertedAmount);
return convertedAmount.toFixed();
}
function getConversionFactor(coinSymbol, tokenSymbol) {
if (!tokenSymbol)
return l1Network_1.NetworkDictionary[coinSymbol].nativeCoin.decimal;
const token = l1Network_1.NetworkDictionary[coinSymbol].tokens.find((t) => t.symbol === tokenSymbol);
if (!token)
throw new Error(constants_1.otherError.unsupportedCoinError);
return token.decimal;
}
function throwIfNotInteger(amount) {
if (amount.mod(1).toString() !== '0')
throw new Error(constants_1.otherError.transactionTooSmallError);
}
function isNetworkSymbol(value, symbolGroup) {
return Object.values(symbolGroup).includes(value);
}
//# sourceMappingURL=currency.js.map