1 | import { hexToBn } from '../hex/toBn.js';
|
2 | import { isBigInt } from '../is/bigInt.js';
|
3 | import { isHex } from '../is/hex.js';
|
4 | import { isToBigInt } from '../is/toBigInt.js';
|
5 | import { isToBn } from '../is/toBn.js';
|
6 | import { BN } from './bn.js';
|
7 | /**
|
8 | * @name bnToBn
|
9 | * @summary Creates a BN value from a BN, bigint, string (base 10 or hex) or number input.
|
10 | * @description
|
11 | * `null` inputs returns a `0x0` result, BN values returns the value, numbers returns a BN representation.
|
12 | * @example
|
13 | * <BR>
|
14 | *
|
15 | * ```javascript
|
16 | * import BN from 'bn.js';
|
17 | * import { bnToBn } from '@polkadot/util';
|
18 | *
|
19 | * bnToBn(0x1234); // => BN(0x1234)
|
20 | * bnToBn(new BN(0x1234)); // => BN(0x1234)
|
21 | * ```
|
22 | */
|
23 | export function bnToBn(value) {
|
24 | return value
|
25 | ? BN.isBN(value)
|
26 | ? value
|
27 | : isHex(value)
|
28 | ? hexToBn(value.toString())
|
29 | : isBigInt(value)
|
30 | ? new BN(value.toString())
|
31 | : isToBn(value)
|
32 | ? value.toBn()
|
33 | : isToBigInt(value)
|
34 | ? new BN(value.toBigInt().toString())
|
35 | : new BN(value)
|
36 | : new BN(0);
|
37 | }
|