1 | // Copyright 2017-2022 @polkadot/util-crypto authors & contributors
|
2 | // SPDX-License-Identifier: Apache-2.0
|
3 | import { hasBigInt } from '@polkadot/util';
|
4 | import { bip39Generate, isReady } from '@polkadot/wasm-crypto';
|
5 | import { generateMnemonic } from "./bip39.js";
|
6 | // mapping of words to the actual strength (as expected)
|
7 | const 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 |
|
27 | export function mnemonicGenerate(numWords = 12, onlyJs) {
|
28 | return !hasBigInt || !onlyJs && isReady() ? bip39Generate(numWords) : generateMnemonic(STRENGTH_MAP[numWords]);
|
29 | } |
\ | No newline at end of file |