UNPKG

@akashicpay/sdk

Version:

SDK to interact with the Akashic ecosystem

32 lines 1.44 kB
"use strict"; 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