UNPKG

@mozaic-fi/intent-swapper-sdk-common

Version:
32 lines 1.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.toSmallUnit = toSmallUnit; exports.toBigUnit = toBigUnit; exports.formatBigUnit = formatBigUnit; exports.calcSlippage = calcSlippage; const tslib_1 = require("tslib"); const ethers_1 = require("ethers"); const bignumber_js_1 = tslib_1.__importDefault(require("bignumber.js")); function toSmallUnit(amount, decimals) { amount = (0, bignumber_js_1.default)(amount); return amount.isZero() ? ethers_1.BigNumber.from(0) : ethers_1.utils.parseUnits(amount.decimalPlaces(decimals, bignumber_js_1.default.ROUND_DOWN).toFixed(), decimals); } function toBigUnit(amountWei, decimals, options = {}) { const { displayDecimals, mode } = options; return (0, bignumber_js_1.default)(amountWei.toString()) .shiftedBy(-decimals) .decimalPlaces(displayDecimals ? displayDecimals : decimals, mode === 'round' ? bignumber_js_1.default.ROUND_HALF_UP : mode === 'ceil' ? bignumber_js_1.default.ROUND_UP : bignumber_js_1.default.ROUND_DOWN) .toFixed(); } function formatBigUnit(amount, displayDecimals, mode) { return (0, bignumber_js_1.default)(amount) .decimalPlaces(displayDecimals, mode === 'floor' ? bignumber_js_1.default.ROUND_DOWN : mode === 'ceil' ? bignumber_js_1.default.ROUND_UP : bignumber_js_1.default.ROUND_HALF_UP) .toFixed(); } function calcSlippage(amountWei, slippage, base = 10000) { amountWei = ethers_1.BigNumber.from(amountWei); return amountWei.isZero() ? amountWei : amountWei.mul(base - slippage).div(base); } //# sourceMappingURL=bignumber.js.map