@xyo-network/bip39 2.107.3 → 2.107.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/index.cjs +155 -19
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +124 -19
- package/dist/browser/index.js.map +1 -1
- package/dist/neutral/index.cjs +155 -19
- package/dist/neutral/index.cjs.map +1 -1
- package/dist/neutral/index.js +124 -19
- package/dist/neutral/index.js.map +1 -1
- package/dist/node/index.cjs +165 -19
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +124 -19
- package/dist/node/index.js.map +1 -1
- package/package.json +3 -3
package/dist/browser/index.cjs
CHANGED
|
@@ -1,4 +1,53 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/index.ts
|
|
31
|
+
var src_exports = {};
|
|
32
|
+
__export(src_exports, {
|
|
33
|
+
entropyToMnemonic: () => entropyToMnemonic,
|
|
34
|
+
generateMnemonic: () => generateMnemonic,
|
|
35
|
+
mnemonicToEntropy: () => mnemonicToEntropy,
|
|
36
|
+
mnemonicToSeed: () => mnemonicToSeed,
|
|
37
|
+
mnemonicToSeedSync: () => mnemonicToSeedSync,
|
|
38
|
+
validateMnemonic: () => validateMnemonic,
|
|
39
|
+
wordlists: () => wordlists
|
|
40
|
+
});
|
|
41
|
+
module.exports = __toCommonJS(src_exports);
|
|
42
|
+
var import_assert = __toESM(require("@noble/hashes/_assert"), 1);
|
|
43
|
+
var import_pbkdf2 = require("@noble/hashes/pbkdf2");
|
|
44
|
+
var import_sha256 = require("@noble/hashes/sha256");
|
|
45
|
+
var import_sha512 = require("@noble/hashes/sha512");
|
|
46
|
+
var import_utils = require("@noble/hashes/utils");
|
|
47
|
+
var import_base = require("@scure/base");
|
|
48
|
+
|
|
49
|
+
// src/wordlists/czech.ts
|
|
50
|
+
var wordlist = `abdikace
|
|
2
51
|
abeceda
|
|
3
52
|
adresa
|
|
4
53
|
agrese
|
|
@@ -2045,8 +2094,10 @@ zvesela
|
|
|
2045
2094
|
zvon
|
|
2046
2095
|
zvrat
|
|
2047
2096
|
zvukovod
|
|
2048
|
-
zvyk`.split(
|
|
2049
|
-
|
|
2097
|
+
zvyk`.split("\n");
|
|
2098
|
+
|
|
2099
|
+
// src/wordlists/english.ts
|
|
2100
|
+
var wordlist2 = `abandon
|
|
2050
2101
|
ability
|
|
2051
2102
|
able
|
|
2052
2103
|
about
|
|
@@ -4093,8 +4144,10 @@ youth
|
|
|
4093
4144
|
zebra
|
|
4094
4145
|
zero
|
|
4095
4146
|
zone
|
|
4096
|
-
zoo`.split(
|
|
4097
|
-
|
|
4147
|
+
zoo`.split("\n");
|
|
4148
|
+
|
|
4149
|
+
// src/wordlists/french.ts
|
|
4150
|
+
var wordlist3 = `abaisser
|
|
4098
4151
|
abandon
|
|
4099
4152
|
abdiquer
|
|
4100
4153
|
abeille
|
|
@@ -6141,8 +6194,10 @@ yacht
|
|
|
6141
6194
|
ze\u0300bre
|
|
6142
6195
|
ze\u0301nith
|
|
6143
6196
|
zeste
|
|
6144
|
-
zoologie`.split(
|
|
6145
|
-
|
|
6197
|
+
zoologie`.split("\n");
|
|
6198
|
+
|
|
6199
|
+
// src/wordlists/italian.ts
|
|
6200
|
+
var wordlist4 = `abaco
|
|
6146
6201
|
abbaglio
|
|
6147
6202
|
abbinato
|
|
6148
6203
|
abete
|
|
@@ -8189,8 +8244,10 @@ zotico
|
|
|
8189
8244
|
zucchero
|
|
8190
8245
|
zufolo
|
|
8191
8246
|
zulu
|
|
8192
|
-
zuppa`.split(
|
|
8193
|
-
|
|
8247
|
+
zuppa`.split("\n");
|
|
8248
|
+
|
|
8249
|
+
// src/wordlists/japanese.ts
|
|
8250
|
+
var wordlist5 = `\u3042\u3044\u3053\u304F\u3057\u3093
|
|
8194
8251
|
\u3042\u3044\u3055\u3064
|
|
8195
8252
|
\u3042\u3044\u305F\u3099
|
|
8196
8253
|
\u3042\u304A\u305D\u3099\u3089
|
|
@@ -10237,8 +10294,10 @@ zuppa`.split(`
|
|
|
10237
10294
|
\u308F\u3057\u3099\u307E\u3057
|
|
10238
10295
|
\u308F\u3059\u308C\u3082\u306E
|
|
10239
10296
|
\u308F\u3089\u3046
|
|
10240
|
-
\u308F\u308C\u308B`.split(
|
|
10241
|
-
|
|
10297
|
+
\u308F\u308C\u308B`.split("\n");
|
|
10298
|
+
|
|
10299
|
+
// src/wordlists/korean.ts
|
|
10300
|
+
var wordlist6 = `\u1100\u1161\u1100\u1167\u11A8
|
|
10242
10301
|
\u1100\u1161\u1101\u1173\u11B7
|
|
10243
10302
|
\u1100\u1161\u1102\u1161\u11AB
|
|
10244
10303
|
\u1100\u1161\u1102\u1173\u11BC
|
|
@@ -12285,8 +12344,10 @@ zuppa`.split(`
|
|
|
12285
12344
|
\u1112\u1174\u1106\u1161\u11BC
|
|
12286
12345
|
\u1112\u1174\u1109\u1162\u11BC
|
|
12287
12346
|
\u1112\u1174\u11AB\u1109\u1162\u11A8
|
|
12288
|
-
\u1112\u1175\u11B7\u1101\u1165\u11BA`.split(
|
|
12289
|
-
|
|
12347
|
+
\u1112\u1175\u11B7\u1101\u1165\u11BA`.split("\n");
|
|
12348
|
+
|
|
12349
|
+
// src/wordlists/simplified-chinese.ts
|
|
12350
|
+
var wordlist7 = `\u7684
|
|
12290
12351
|
\u4E00
|
|
12291
12352
|
\u662F
|
|
12292
12353
|
\u5728
|
|
@@ -14333,8 +14394,10 @@ zuppa`.split(`
|
|
|
14333
14394
|
\u97E6
|
|
14334
14395
|
\u6028
|
|
14335
14396
|
\u77EE
|
|
14336
|
-
\u6B47`.split(
|
|
14337
|
-
|
|
14397
|
+
\u6B47`.split("\n");
|
|
14398
|
+
|
|
14399
|
+
// src/wordlists/spanish.ts
|
|
14400
|
+
var wordlist8 = `a\u0301baco
|
|
14338
14401
|
abdomen
|
|
14339
14402
|
abeja
|
|
14340
14403
|
abierto
|
|
@@ -16381,8 +16444,10 @@ zarza
|
|
|
16381
16444
|
zona
|
|
16382
16445
|
zorro
|
|
16383
16446
|
zumo
|
|
16384
|
-
zurdo`.split(
|
|
16385
|
-
|
|
16447
|
+
zurdo`.split("\n");
|
|
16448
|
+
|
|
16449
|
+
// src/wordlists/traditional-chinese.ts
|
|
16450
|
+
var wordlist9 = `\u7684
|
|
16386
16451
|
\u4E00
|
|
16387
16452
|
\u662F
|
|
16388
16453
|
\u5728
|
|
@@ -18429,7 +18494,78 @@ zurdo`.split(`
|
|
|
18429
18494
|
\u97CB
|
|
18430
18495
|
\u6028
|
|
18431
18496
|
\u77EE
|
|
18432
|
-
\u6B47`.split(
|
|
18433
|
-
|
|
18497
|
+
\u6B47`.split("\n");
|
|
18498
|
+
|
|
18499
|
+
// src/wordlists/index.ts
|
|
18500
|
+
var wordlists = {
|
|
18501
|
+
czech: wordlist,
|
|
18502
|
+
english: wordlist2,
|
|
18503
|
+
french: wordlist3,
|
|
18504
|
+
italian: wordlist4,
|
|
18505
|
+
japanese: wordlist5,
|
|
18506
|
+
korean: wordlist6,
|
|
18507
|
+
simplifiedChinese: wordlist7,
|
|
18508
|
+
spanish: wordlist8,
|
|
18509
|
+
traditionalChinese: wordlist9
|
|
18510
|
+
};
|
|
18511
|
+
|
|
18512
|
+
// src/index.ts
|
|
18513
|
+
var isJapanese = (wordlist10) => wordlist10[0] === "\u3042\u3044\u3053\u304F\u3057\u3093";
|
|
18514
|
+
function nfkd(str) {
|
|
18515
|
+
if (typeof str !== "string") throw new TypeError(`Invalid mnemonic type: ${typeof str}`);
|
|
18516
|
+
return str.normalize("NFKD");
|
|
18517
|
+
}
|
|
18518
|
+
function normalize(str) {
|
|
18519
|
+
const norm = nfkd(str);
|
|
18520
|
+
const words = norm.split(" ");
|
|
18521
|
+
if (![12, 15, 18, 21, 24].includes(words.length)) throw new Error("Invalid mnemonic");
|
|
18522
|
+
return { nfkd: norm, words };
|
|
18523
|
+
}
|
|
18524
|
+
function assertEntropy(entropy) {
|
|
18525
|
+
import_assert.default.bytes(entropy, 16, 20, 24, 28, 32);
|
|
18526
|
+
}
|
|
18527
|
+
function generateMnemonic(wordlist10, strength = 128) {
|
|
18528
|
+
import_assert.default.number(strength);
|
|
18529
|
+
if (strength % 32 !== 0 || strength > 256) throw new TypeError("Invalid entropy");
|
|
18530
|
+
return entropyToMnemonic((0, import_utils.randomBytes)(strength / 8), wordlist10);
|
|
18531
|
+
}
|
|
18532
|
+
var calcChecksum = (entropy) => {
|
|
18533
|
+
const bitsLeft = 8 - entropy.length / 4;
|
|
18534
|
+
return new Uint8Array([(0, import_sha256.sha256)(entropy)[0] >> bitsLeft << bitsLeft]);
|
|
18535
|
+
};
|
|
18536
|
+
function getCoder(wordlist10) {
|
|
18537
|
+
if (!Array.isArray(wordlist10) || wordlist10.length !== 2048 || typeof wordlist10[0] !== "string")
|
|
18538
|
+
throw new Error("Worlist: expected array of 2048 strings");
|
|
18539
|
+
for (const i of wordlist10) {
|
|
18540
|
+
if (typeof i !== "string") throw new Error(`Wordlist: non-string element: ${i}`);
|
|
18541
|
+
}
|
|
18542
|
+
return import_base.utils.chain(import_base.utils.checksum(1, calcChecksum), import_base.utils.radix2(11, true), import_base.utils.alphabet(wordlist10));
|
|
18543
|
+
}
|
|
18544
|
+
function mnemonicToEntropy(mnemonic, wordlist10) {
|
|
18545
|
+
const { words } = normalize(mnemonic);
|
|
18546
|
+
const entropy = getCoder(wordlist10).decode(words);
|
|
18547
|
+
assertEntropy(entropy);
|
|
18548
|
+
return entropy;
|
|
18549
|
+
}
|
|
18550
|
+
function entropyToMnemonic(entropy, wordlist10) {
|
|
18551
|
+
assertEntropy(entropy);
|
|
18552
|
+
const words = getCoder(wordlist10).encode(entropy);
|
|
18553
|
+
return words.join(isJapanese(wordlist10) ? "\u3000" : " ");
|
|
18554
|
+
}
|
|
18555
|
+
function validateMnemonic(mnemonic, wordlist10) {
|
|
18556
|
+
try {
|
|
18557
|
+
mnemonicToEntropy(mnemonic, wordlist10);
|
|
18558
|
+
} catch {
|
|
18559
|
+
return false;
|
|
18560
|
+
}
|
|
18561
|
+
return true;
|
|
18562
|
+
}
|
|
18563
|
+
var salt = (passphrase) => nfkd(`mnemonic${passphrase}`);
|
|
18564
|
+
function mnemonicToSeed(mnemonic, passphrase = "") {
|
|
18565
|
+
return (0, import_pbkdf2.pbkdf2Async)(import_sha512.sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 });
|
|
18566
|
+
}
|
|
18567
|
+
function mnemonicToSeedSync(mnemonic, passphrase = "") {
|
|
18568
|
+
return (0, import_pbkdf2.pbkdf2)(import_sha512.sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 });
|
|
18569
|
+
}
|
|
18434
18570
|
/*! scure-bip39 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */
|
|
18435
18571
|
//# sourceMappingURL=index.cjs.map
|