UNPKG

satoshi-bitcoin-ts

Version:

A tiny typescript library to convert between Bitcoin & Satoshis with precision.

42 lines (41 loc) 1.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var big_js_1 = require("big.js"); var utils_1 = require("./utils"); // Increase exponential notation threshold big_js_1.default.PE = 21; big_js_1.default.NE = -21; var conversion = '100000000'; /** * Convert Satoshi to Bitcoin * @param satoshi Amount of Satoshi to convert. Must be a whole number * @param returnBN Optionally return the value as a Big number instance */ function toBitcoin(satoshi, returnBig) { if (!utils_1.isString(satoshi) && !utils_1.isNumber(satoshi)) { throw new TypeError("toBitcoin must be called on a number or string, got " + typeof satoshi); } if (!Number.isInteger(Number(satoshi))) { throw new TypeError('toBitcoin must be called on a whole number or string format whole number'); } if (returnBig) { return new big_js_1.default(satoshi).div(conversion); } return Number(new big_js_1.default(satoshi).div(conversion)); } exports.toBitcoin = toBitcoin; /** * Convert Bitcoin to Satoshi * @param bitcoin Amount of Bitcoin to convert * @param returnBN Optionally return the value as a Big number instance */ function toSatoshi(bitcoin, returnBig) { if (!utils_1.isString(bitcoin) && !utils_1.isNumber(bitcoin)) { throw new TypeError("toSatoshi must be called on a number or string, got " + typeof bitcoin); } if (returnBig) { return new big_js_1.default(bitcoin).times(conversion); } return Number(new big_js_1.default(bitcoin).times(conversion)); } exports.toSatoshi = toSatoshi;