Files
orionprotocol-sdk/src/utils/denormalizeNumber.ts
Aleksandr Kraiz 8588b55725 ESM
2023-03-31 17:47:56 +04:00

15 lines
648 B
TypeScript

import { BigNumber } from 'bignumber.js';
import type { ethers } from 'ethers';
/**
* Converts normalized blockchain ("machine-readable") number to denormalized ("human-readable") number.
* @param input Any blockchain-normalized numeric value
* @param decimals Blockchain asset precision
* @returns BigNumber
*/
export default function denormalizeNumber(input: ethers.BigNumber, decimals: BigNumber.Value) {
const decimalsBN = new BigNumber(decimals);
if (!decimalsBN.isInteger()) throw new Error(`Decimals '${decimalsBN.toString()}' is not an integer`);
return new BigNumber(input.toString()).div(new BigNumber(10).pow(decimalsBN));
}