// Copyright Abridged, Inc. 2021,2024. All Rights Reserved. // Node module: @collabland/common // This file is licensed under the MIT License. // License text available at https://opensource.org/licenses/MIT import {BigNumber, BigNumberish, FixedNumber} from '@ethersproject/bignumber'; export * from '@ethersproject/bignumber'; export {BigNumber as BN} from '@ethersproject/bignumber'; export type BNLike = BigNumberish | object | null | undefined; export function toBigNumber(val: null | undefined): null | undefined; export function toBigNumber(val: BigNumberish | object): BigNumber; export function toBigNumber(val: BNLike) { if (val == null) return val; if (typeof val === 'object' && !(val instanceof BigNumber)) { val = val.toString(); } if (typeof val === 'string' && val.includes('.')) { const fixed = FixedNumber.from(val); val = fixed.round(0).toFormat('fixed128x0').toString(); } return BigNumber.from(val); }