satoshi-bitcoin-ts
Version:
A tiny typescript library to convert between Bitcoin & Satoshis with precision.
42 lines (41 loc) • 1.58 kB
JavaScript
;
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;