Files
common/packages/util-crypto/src/random/asNumber.ts
T
2022-01-01 09:26:11 +02:00

29 lines
700 B
TypeScript

// Copyright 2017-2022 @polkadot/util-crypto authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { BN, hexToBn } from '@polkadot/util';
import { randomAsHex } from './asU8a';
const BN_53 = new BN(0b11111111111111111111111111111111111111111111111111111);
/**
* @name randomAsNumber
* @summary Creates a random number from random bytes.
* @description
* Returns a random number generated from the secure bytes.
* @example
* <BR>
*
* ```javascript
* import { randomAsNumber } from '@polkadot/util-crypto';
*
* randomAsNumber(); // => <random number>
* ```
*/
export function randomAsNumber (): number {
return hexToBn(
randomAsHex(8)
).and(BN_53).toNumber();
}