UNPKG

@molecularlabs/nucleus-frontend

Version:
41 lines 1.19 kB
import { formatUnits } from "viem"; const RAY = { bigint: BigInt(1e27), number: 1e27 }; const WAD = { bigint: BigInt(1e18), number: 1e18 }; function bigIntToNumberAsString(value, opts = {}) { const { decimals = 18, minimumFractionDigits = 0, maximumFractionDigits = 3 } = opts; const numberValue = Number.parseFloat(formatUnits(value, decimals)); return new Intl.NumberFormat("en-US", { minimumFractionDigits, maximumFractionDigits }).format(numberValue); } function calculateExpectedSharesMinted(depositAmount, rateInQuote, shareDecimals) { const ONE_SHARE = BigInt(10) ** BigInt(shareDecimals); const sharesMinted = depositAmount * ONE_SHARE / rateInQuote; return sharesMinted; } function calculateAtomicPrice(rateInQuote, slippage) { const basisPoints = 1e4; const slippageInBasisPoints = Math.floor(slippage * basisPoints); const percentageToKeep = basisPoints - slippageInBasisPoints; const atomicPrice = rateInQuote * BigInt(percentageToKeep) / BigInt(basisPoints); return atomicPrice; } export { RAY, WAD, bigIntToNumberAsString, calculateAtomicPrice, calculateExpectedSharesMinted }; //# sourceMappingURL=bigint.mjs.map