UNPKG

915 BJavaScriptView Raw
1// Copyright 2017-2022 @polkadot/util-crypto authors & contributors
2// SPDX-License-Identifier: Apache-2.0
3import { hasBigInt } from '@polkadot/util';
4import { bip39Generate, isReady } from '@polkadot/wasm-crypto';
5import { generateMnemonic } from "./bip39.js";
6// mapping of words to the actual strength (as expected)
7const STRENGTH_MAP = {
8 12: 16 * 8,
9 15: 20 * 8,
10 18: 24 * 8,
11 21: 28 * 8,
12 24: 32 * 8
13};
14/**
15 * @name mnemonicGenerate
16 * @summary Creates a valid mnemonic string using using [BIP39](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki).
17 * @example
18 * <BR>
19 *
20 * ```javascript
21 * import { mnemonicGenerate } from '@polkadot/util-crypto';
22 *
23 * const mnemonic = mnemonicGenerate(); // => string
24 * ```
25 */
26
27export function mnemonicGenerate(numWords = 12, onlyJs) {
28 return !hasBigInt || !onlyJs && isReady() ? bip39Generate(numWords) : generateMnemonic(STRENGTH_MAP[numWords]);
29}
\No newline at end of file