minterjs-util
Version:
Utils for Minter
37 lines (33 loc) • 1.62 kB
JavaScript
;
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;