UNPKG

minterjs-util

Version:
37 lines (33 loc) 1.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.VISIBLE_PRECISION = exports.COMPUTATION_PRECISION = exports.BIG_ROUND_UP = exports.BIG_ROUND_HALF_EVEN = exports.BIG_ROUND_DOWN = void 0; var _big = _interopRequireDefault(require("big.js")); var _stripZeros = _interopRequireDefault(require("pretty-num/src/strip-zeros.js")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var BIG_ROUND_DOWN = 0; exports.BIG_ROUND_DOWN = BIG_ROUND_DOWN; var BIG_ROUND_HALF_EVEN = 2; exports.BIG_ROUND_HALF_EVEN = BIG_ROUND_HALF_EVEN; var BIG_ROUND_UP = 3; // support division of 15 whole digits and 18 decimal exports.BIG_ROUND_UP = BIG_ROUND_UP; var COMPUTATION_PRECISION = 15 + 18 + 1; // minter node precision is 34 exports.COMPUTATION_PRECISION = COMPUTATION_PRECISION; var VISIBLE_PRECISION = 18; // set defaults // precision exports.VISIBLE_PRECISION = VISIBLE_PRECISION; _big["default"].DP = COMPUTATION_PRECISION; // ROUND_HALF_EVEN (same as in minter-node) _big["default"].RM = BIG_ROUND_HALF_EVEN; // fix toString method, by default toFixed doesn't consider global Big.DP value _big["default"].prototype.toString = function toString() { var dp = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : VISIBLE_PRECISION; var rm = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _big["default"].RM; return (0, _stripZeros["default"])(this.toFixed(dp, rm)); }; // eslint-disable-next-line unicorn/prefer-export-from var _default = _big["default"]; exports["default"] = _default;