@xyo-network/bip39 2.109.0 → 2.110.0

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.
@@ -5,6 +5,7 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
9
  var __export = (target, all) => {
9
10
  for (var name in all)
10
11
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -66,49 +67,73 @@ var wordlists = {
66
67
  };
67
68
 
68
69
  // src/index.ts
69
- var isJapanese = (wordlist) => wordlist[0] === "\u3042\u3044\u3053\u304F\u3057\u3093";
70
+ var isJapanese = /* @__PURE__ */ __name((wordlist) => wordlist[0] === "\u3042\u3044\u3053\u304F\u3057\u3093", "isJapanese");
70
71
  function nfkd(str) {
71
72
  if (typeof str !== "string") throw new TypeError(`Invalid mnemonic type: ${typeof str}`);
72
73
  return str.normalize("NFKD");
73
74
  }
75
+ __name(nfkd, "nfkd");
74
76
  function normalize(str) {
75
77
  const norm = nfkd(str);
76
78
  const words = norm.split(" ");
77
- if (![12, 15, 18, 21, 24].includes(words.length)) throw new Error("Invalid mnemonic");
78
- return { nfkd: norm, words };
79
+ if (![
80
+ 12,
81
+ 15,
82
+ 18,
83
+ 21,
84
+ 24
85
+ ].includes(words.length)) throw new Error("Invalid mnemonic");
86
+ return {
87
+ nfkd: norm,
88
+ words
89
+ };
79
90
  }
91
+ __name(normalize, "normalize");
80
92
  function assertEntropy(entropy) {
81
93
  import_assert.default.bytes(entropy, 16, 20, 24, 28, 32);
82
94
  }
83
- var calcChecksum = (entropy) => {
95
+ __name(assertEntropy, "assertEntropy");
96
+ var calcChecksum = /* @__PURE__ */ __name((entropy) => {
84
97
  const bitsLeft = 8 - entropy.length / 4;
85
- return new Uint8Array([(0, import_sha256.sha256)(entropy)[0] >> bitsLeft << bitsLeft]);
86
- };
98
+ return new Uint8Array([
99
+ (0, import_sha256.sha256)(entropy)[0] >> bitsLeft << bitsLeft
100
+ ]);
101
+ }, "calcChecksum");
87
102
  function getCoder(wordlist) {
88
- if (!Array.isArray(wordlist) || wordlist.length !== 2048 || typeof wordlist[0] !== "string")
89
- throw new Error("Worlist: expected array of 2048 strings");
103
+ if (!Array.isArray(wordlist) || wordlist.length !== 2048 || typeof wordlist[0] !== "string") throw new Error("Worlist: expected array of 2048 strings");
90
104
  for (const i of wordlist) {
91
105
  if (typeof i !== "string") throw new Error(`Wordlist: non-string element: ${i}`);
92
106
  }
93
107
  return import_base.utils.chain(import_base.utils.checksum(1, calcChecksum), import_base.utils.radix2(11, true), import_base.utils.alphabet(wordlist));
94
108
  }
109
+ __name(getCoder, "getCoder");
95
110
  function mnemonicToEntropy(mnemonic, wordlist) {
96
111
  const { words } = normalize(mnemonic);
97
112
  const entropy = getCoder(wordlist).decode(words);
98
113
  assertEntropy(entropy);
99
114
  return entropy;
100
115
  }
116
+ __name(mnemonicToEntropy, "mnemonicToEntropy");
101
117
  function entropyToMnemonic(entropy, wordlist) {
102
118
  assertEntropy(entropy);
103
119
  const words = getCoder(wordlist).encode(entropy);
104
120
  return words.join(isJapanese(wordlist) ? "\u3000" : " ");
105
121
  }
106
- var salt = (passphrase) => nfkd(`mnemonic${passphrase}`);
122
+ __name(entropyToMnemonic, "entropyToMnemonic");
123
+ var salt = /* @__PURE__ */ __name((passphrase) => nfkd(`mnemonic${passphrase}`), "salt");
107
124
  function mnemonicToSeed(mnemonic, passphrase = "") {
108
- return (0, import_pbkdf2.pbkdf2Async)(import_sha512.sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 });
125
+ return (0, import_pbkdf2.pbkdf2Async)(import_sha512.sha512, normalize(mnemonic).nfkd, salt(passphrase), {
126
+ c: 2048,
127
+ dkLen: 64
128
+ });
109
129
  }
130
+ __name(mnemonicToSeed, "mnemonicToSeed");
110
131
  function mnemonicToSeedSync(mnemonic, passphrase = "") {
111
- return (0, import_pbkdf2.pbkdf2)(import_sha512.sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 });
132
+ return (0, import_pbkdf2.pbkdf2)(import_sha512.sha512, normalize(mnemonic).nfkd, salt(passphrase), {
133
+ c: 2048,
134
+ dkLen: 64
135
+ });
112
136
  }
137
+ __name(mnemonicToSeedSync, "mnemonicToSeedSync");
113
138
  /*! scure-bip39 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */
114
139
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/wordlists/index.ts"],"sourcesContent":["/* eslint-disable import/no-internal-modules */\n/*! scure-bip39 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */\nimport assert from '@noble/hashes/_assert'\nimport { pbkdf2, pbkdf2Async } from '@noble/hashes/pbkdf2'\nimport { sha256 } from '@noble/hashes/sha256'\nimport { sha512 } from '@noble/hashes/sha512'\nimport { utils as baseUtils } from '@scure/base'\n\nexport * from './wordlists'\n\n// Japanese wordlist\nconst isJapanese = (wordlist: string[]) => wordlist[0] === '\\u3042\\u3044\\u3053\\u304F\\u3057\\u3093'\n\n// Normalization replaces equivalent sequences of characters\n// so that any two texts that are equivalent will be reduced\n// to the same sequence of code points, called the normal form of the original text.\nfunction nfkd(str: string) {\n if (typeof str !== 'string') throw new TypeError(`Invalid mnemonic type: ${typeof str}`)\n return str.normalize('NFKD')\n}\n\nfunction normalize(str: string) {\n const norm = nfkd(str)\n const words = norm.split(' ')\n if (![12, 15, 18, 21, 24].includes(words.length)) throw new Error('Invalid mnemonic')\n return { nfkd: norm, words }\n}\n\nfunction assertEntropy(entropy: Uint8Array) {\n assert.bytes(entropy, 16, 20, 24, 28, 32)\n}\n\nconst calcChecksum = (entropy: Uint8Array) => {\n // Checksum is ent.length/4 bits long\n const bitsLeft = 8 - entropy.length / 4\n // Zero rightmost \"bitsLeft\" bits in byte\n // For example: bitsLeft=4 val=10111101 -> 10110000\n return new Uint8Array([(sha256(entropy)[0] >> bitsLeft) << bitsLeft])\n}\n\nfunction getCoder(wordlist: string[]) {\n if (!Array.isArray(wordlist) || wordlist.length !== 2048 || typeof wordlist[0] !== 'string')\n throw new Error('Worlist: expected array of 2048 strings')\n for (const i of wordlist) {\n if (typeof i !== 'string') throw new Error(`Wordlist: non-string element: ${i}`)\n }\n return baseUtils.chain(baseUtils.checksum(1, calcChecksum), baseUtils.radix2(11, true), baseUtils.alphabet(wordlist))\n}\n\n/**\n * Reversible: Converts mnemonic string to raw entropy in form of byte array.\n * @param mnemonic 12-24 words\n * @param wordlist imported wordlist for specific language\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToEntropy(mnem, wordlist)\n * // Produces\n * new Uint8Array([\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToEntropy(mnemonic: string, wordlist: string[]): Uint8Array {\n const { words } = normalize(mnemonic)\n const entropy = getCoder(wordlist).decode(words)\n assertEntropy(entropy)\n return entropy\n}\n\n/**\n * Reversible: Converts raw entropy in form of byte array to mnemonic string.\n * @param entropy byte array\n * @param wordlist imported wordlist for specific language\n * @returns 12-24 words\n * @example\n * const ent = new Uint8Array([\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ]);\n * entropyToMnemonic(ent, wordlist);\n * // 'legal winner thank year wave sausage worth useful legal winner thank yellow'\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function entropyToMnemonic(entropy: Uint8Array, wordlist: string[]): string {\n assertEntropy(entropy)\n const words = getCoder(wordlist).encode(entropy)\n return words.join(isJapanese(wordlist) ? '\\u3000' : ' ')\n}\n\nconst salt = (passphrase: string) => nfkd(`mnemonic${passphrase}`)\n\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * await mnemonicToSeed(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToSeed(mnemonic: string, passphrase = '') {\n return pbkdf2Async(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 })\n}\n\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToSeedSync(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToSeedSync(mnemonic: string, passphrase = '') {\n return pbkdf2(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 })\n}\n","/* eslint-disable import/no-internal-modules */\nimport czech from '@scure/bip39/wordlists/czech'\nimport english from '@scure/bip39/wordlists/english'\nimport french from '@scure/bip39/wordlists/french'\nimport italian from '@scure/bip39/wordlists/italian'\nimport japanese from '@scure/bip39/wordlists/japanese'\nimport korean from '@scure/bip39/wordlists/korean'\nimport simplifiedChinese from '@scure/bip39/wordlists/simplified-chinese'\nimport spanish from '@scure/bip39/wordlists/spanish'\nimport traditionalChinese from '@scure/bip39/wordlists/traditional-chinese'\n\n/** @deprecated use @scure/bip39 instead */\nexport const wordlists = {\n czech,\n english,\n french,\n italian,\n japanese,\n korean,\n simplifiedChinese,\n spanish,\n traditionalChinese,\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAAmB;AACnB,oBAAoC;AACpC,oBAAuB;AACvB,oBAAuB;AACvB,kBAAmC;;;ACLnC,mBAAkB;AAClB,qBAAoB;AACpB,oBAAmB;AACnB,qBAAoB;AACpB,sBAAqB;AACrB,oBAAmB;AACnB,gCAA8B;AAC9B,qBAAoB;AACpB,iCAA+B;AAGxB,IAAM,YAAY;AAAA,EACvB,oBAAAA;AAAA,EACA,wBAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,wBAAAC;AAAA,EACA,0BAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,6CAAAC;AAAA,EACA,wBAAAC;AAAA,EACA,+CAAAC;AACF;;;ADXA,IAAM,aAAa,CAAC,aAAuB,SAAS,CAAC,MAAM;AAK3D,SAAS,KAAK,KAAa;AACzB,MAAI,OAAO,QAAQ,SAAU,OAAM,IAAI,UAAU,0BAA0B,OAAO,GAAG,EAAE;AACvF,SAAO,IAAI,UAAU,MAAM;AAC7B;AAEA,SAAS,UAAU,KAAa;AAC9B,QAAM,OAAO,KAAK,GAAG;AACrB,QAAM,QAAQ,KAAK,MAAM,GAAG;AAC5B,MAAI,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,SAAS,MAAM,MAAM,EAAG,OAAM,IAAI,MAAM,kBAAkB;AACpF,SAAO,EAAE,MAAM,MAAM,MAAM;AAC7B;AAEA,SAAS,cAAc,SAAqB;AAC1C,gBAAAC,QAAO,MAAM,SAAS,IAAI,IAAI,IAAI,IAAI,EAAE;AAC1C;AAEA,IAAM,eAAe,CAAC,YAAwB;AAE5C,QAAM,WAAW,IAAI,QAAQ,SAAS;AAGtC,SAAO,IAAI,WAAW,KAAE,sBAAO,OAAO,EAAE,CAAC,KAAK,YAAa,QAAQ,CAAC;AACtE;AAEA,SAAS,SAAS,UAAoB;AACpC,MAAI,CAAC,MAAM,QAAQ,QAAQ,KAAK,SAAS,WAAW,QAAQ,OAAO,SAAS,CAAC,MAAM;AACjF,UAAM,IAAI,MAAM,yCAAyC;AAC3D,aAAW,KAAK,UAAU;AACxB,QAAI,OAAO,MAAM,SAAU,OAAM,IAAI,MAAM,iCAAiC,CAAC,EAAE;AAAA,EACjF;AACA,SAAO,YAAAC,MAAU,MAAM,YAAAA,MAAU,SAAS,GAAG,YAAY,GAAG,YAAAA,MAAU,OAAO,IAAI,IAAI,GAAG,YAAAA,MAAU,SAAS,QAAQ,CAAC;AACtH;AAiBO,SAAS,kBAAkB,UAAkB,UAAgC;AAClF,QAAM,EAAE,MAAM,IAAI,UAAU,QAAQ;AACpC,QAAM,UAAU,SAAS,QAAQ,EAAE,OAAO,KAAK;AAC/C,gBAAc,OAAO;AACrB,SAAO;AACT;AAiBO,SAAS,kBAAkB,SAAqB,UAA4B;AACjF,gBAAc,OAAO;AACrB,QAAM,QAAQ,SAAS,QAAQ,EAAE,OAAO,OAAO;AAC/C,SAAO,MAAM,KAAK,WAAW,QAAQ,IAAI,WAAW,GAAG;AACzD;AAEA,IAAM,OAAO,CAAC,eAAuB,KAAK,WAAW,UAAU,EAAE;AAc1D,SAAS,eAAe,UAAkB,aAAa,IAAI;AAChE,aAAO,2BAAY,sBAAQ,UAAU,QAAQ,EAAE,MAAM,KAAK,UAAU,GAAG,EAAE,GAAG,MAAM,OAAO,GAAG,CAAC;AAC/F;AAcO,SAAS,mBAAmB,UAAkB,aAAa,IAAI;AACpE,aAAO,sBAAO,sBAAQ,UAAU,QAAQ,EAAE,MAAM,KAAK,UAAU,GAAG,EAAE,GAAG,MAAM,OAAO,GAAG,CAAC;AAC1F;","names":["czech","english","french","italian","japanese","korean","simplifiedChinese","spanish","traditionalChinese","assert","baseUtils"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/wordlists/index.ts"],"sourcesContent":["/* eslint-disable import/no-internal-modules */\n/*! scure-bip39 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */\nimport assert from '@noble/hashes/_assert'\nimport { pbkdf2, pbkdf2Async } from '@noble/hashes/pbkdf2'\nimport { sha256 } from '@noble/hashes/sha256'\nimport { sha512 } from '@noble/hashes/sha512'\nimport { utils as baseUtils } from '@scure/base'\n\nexport * from './wordlists/index.js'\n\n// Japanese wordlist\nconst isJapanese = (wordlist: string[]) => wordlist[0] === '\\u3042\\u3044\\u3053\\u304F\\u3057\\u3093'\n\n// Normalization replaces equivalent sequences of characters\n// so that any two texts that are equivalent will be reduced\n// to the same sequence of code points, called the normal form of the original text.\nfunction nfkd(str: string) {\n if (typeof str !== 'string') throw new TypeError(`Invalid mnemonic type: ${typeof str}`)\n return str.normalize('NFKD')\n}\n\nfunction normalize(str: string) {\n const norm = nfkd(str)\n const words = norm.split(' ')\n if (![12, 15, 18, 21, 24].includes(words.length)) throw new Error('Invalid mnemonic')\n return { nfkd: norm, words }\n}\n\nfunction assertEntropy(entropy: Uint8Array) {\n assert.bytes(entropy, 16, 20, 24, 28, 32)\n}\n\nconst calcChecksum = (entropy: Uint8Array) => {\n // Checksum is ent.length/4 bits long\n const bitsLeft = 8 - entropy.length / 4\n // Zero rightmost \"bitsLeft\" bits in byte\n // For example: bitsLeft=4 val=10111101 -> 10110000\n return new Uint8Array([(sha256(entropy)[0] >> bitsLeft) << bitsLeft])\n}\n\nfunction getCoder(wordlist: string[]) {\n if (!Array.isArray(wordlist) || wordlist.length !== 2048 || typeof wordlist[0] !== 'string')\n throw new Error('Worlist: expected array of 2048 strings')\n for (const i of wordlist) {\n if (typeof i !== 'string') throw new Error(`Wordlist: non-string element: ${i}`)\n }\n return baseUtils.chain(baseUtils.checksum(1, calcChecksum), baseUtils.radix2(11, true), baseUtils.alphabet(wordlist))\n}\n\n/**\n * Reversible: Converts mnemonic string to raw entropy in form of byte array.\n * @param mnemonic 12-24 words\n * @param wordlist imported wordlist for specific language\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToEntropy(mnem, wordlist)\n * // Produces\n * new Uint8Array([\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToEntropy(mnemonic: string, wordlist: string[]): Uint8Array {\n const { words } = normalize(mnemonic)\n const entropy = getCoder(wordlist).decode(words)\n assertEntropy(entropy)\n return entropy\n}\n\n/**\n * Reversible: Converts raw entropy in form of byte array to mnemonic string.\n * @param entropy byte array\n * @param wordlist imported wordlist for specific language\n * @returns 12-24 words\n * @example\n * const ent = new Uint8Array([\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ]);\n * entropyToMnemonic(ent, wordlist);\n * // 'legal winner thank year wave sausage worth useful legal winner thank yellow'\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function entropyToMnemonic(entropy: Uint8Array, wordlist: string[]): string {\n assertEntropy(entropy)\n const words = getCoder(wordlist).encode(entropy)\n return words.join(isJapanese(wordlist) ? '\\u3000' : ' ')\n}\n\nconst salt = (passphrase: string) => nfkd(`mnemonic${passphrase}`)\n\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * await mnemonicToSeed(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToSeed(mnemonic: string, passphrase = '') {\n return pbkdf2Async(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 })\n}\n\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToSeedSync(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToSeedSync(mnemonic: string, passphrase = '') {\n return pbkdf2(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 })\n}\n","/* eslint-disable import/no-internal-modules */\nimport czech from '@scure/bip39/wordlists/czech'\nimport english from '@scure/bip39/wordlists/english'\nimport french from '@scure/bip39/wordlists/french'\nimport italian from '@scure/bip39/wordlists/italian'\nimport japanese from '@scure/bip39/wordlists/japanese'\nimport korean from '@scure/bip39/wordlists/korean'\nimport simplifiedChinese from '@scure/bip39/wordlists/simplified-chinese'\nimport spanish from '@scure/bip39/wordlists/spanish'\nimport traditionalChinese from '@scure/bip39/wordlists/traditional-chinese'\n\n/** @deprecated use @scure/bip39 instead */\nexport const wordlists = {\n czech,\n english,\n french,\n italian,\n japanese,\n korean,\n simplifiedChinese,\n spanish,\n traditionalChinese,\n}\n"],"mappings":"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","names":["wordlists","czech","english","french","italian","japanese","korean","simplifiedChinese","spanish","traditionalChinese","isJapanese","wordlist","nfkd","str","TypeError","normalize","norm","words","split","includes","length","Error","assertEntropy","entropy","assert","bytes","calcChecksum","bitsLeft","Uint8Array","sha256","getCoder","Array","isArray","i","baseUtils","chain","checksum","radix2","alphabet","mnemonicToEntropy","mnemonic","decode","entropyToMnemonic","encode","join","salt","passphrase","mnemonicToSeed","pbkdf2Async","sha512","c","dkLen","mnemonicToSeedSync","pbkdf2"]}
@@ -1,4 +1,4 @@
1
- export * from './wordlists';
1
+ export * from './wordlists/index.js';
2
2
  export declare function mnemonicToEntropy(mnemonic: string, wordlist: string[]): Uint8Array;
3
3
  export declare function entropyToMnemonic(entropy: Uint8Array, wordlist: string[]): string;
4
4
  export declare function mnemonicToSeed(mnemonic: string, passphrase?: string): Promise<Uint8Array>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,aAAa,CAAA;AAwD3B,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,CAKlF;AAiBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAIjF;AAgBD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,uBAE/D;AAcD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,cAEnE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,sBAAsB,CAAA;AAwDpC,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,CAKlF;AAiBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAIjF;AAgBD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,uBAE/D;AAcD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,cAEnE"}
@@ -1,4 +1,4 @@
1
- export * from './wordlists';
1
+ export * from './wordlists/index.js';
2
2
  export declare function mnemonicToEntropy(mnemonic: string, wordlist: string[]): Uint8Array;
3
3
  export declare function entropyToMnemonic(entropy: Uint8Array, wordlist: string[]): string;
4
4
  export declare function mnemonicToSeed(mnemonic: string, passphrase?: string): Promise<Uint8Array>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,aAAa,CAAA;AAwD3B,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,CAKlF;AAiBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAIjF;AAgBD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,uBAE/D;AAcD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,cAEnE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,sBAAsB,CAAA;AAwDpC,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,CAKlF;AAiBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAIjF;AAgBD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,uBAE/D;AAcD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,cAEnE"}
@@ -1,4 +1,4 @@
1
- export * from './wordlists';
1
+ export * from './wordlists/index.js';
2
2
  export declare function mnemonicToEntropy(mnemonic: string, wordlist: string[]): Uint8Array;
3
3
  export declare function entropyToMnemonic(entropy: Uint8Array, wordlist: string[]): string;
4
4
  export declare function mnemonicToSeed(mnemonic: string, passphrase?: string): Promise<Uint8Array>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,aAAa,CAAA;AAwD3B,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,CAKlF;AAiBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAIjF;AAgBD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,uBAE/D;AAcD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,cAEnE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,sBAAsB,CAAA;AAwDpC,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,CAKlF;AAiBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAIjF;AAgBD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,uBAE/D;AAcD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,cAEnE"}
@@ -1,3 +1,6 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+
1
4
  // src/index.ts
2
5
  import assert from "@noble/hashes/_assert";
3
6
  import { pbkdf2, pbkdf2Async } from "@noble/hashes/pbkdf2";
@@ -28,50 +31,74 @@ var wordlists = {
28
31
  };
29
32
 
30
33
  // src/index.ts
31
- var isJapanese = (wordlist) => wordlist[0] === "\u3042\u3044\u3053\u304F\u3057\u3093";
34
+ var isJapanese = /* @__PURE__ */ __name((wordlist) => wordlist[0] === "\u3042\u3044\u3053\u304F\u3057\u3093", "isJapanese");
32
35
  function nfkd(str) {
33
36
  if (typeof str !== "string") throw new TypeError(`Invalid mnemonic type: ${typeof str}`);
34
37
  return str.normalize("NFKD");
35
38
  }
39
+ __name(nfkd, "nfkd");
36
40
  function normalize(str) {
37
41
  const norm = nfkd(str);
38
42
  const words = norm.split(" ");
39
- if (![12, 15, 18, 21, 24].includes(words.length)) throw new Error("Invalid mnemonic");
40
- return { nfkd: norm, words };
43
+ if (![
44
+ 12,
45
+ 15,
46
+ 18,
47
+ 21,
48
+ 24
49
+ ].includes(words.length)) throw new Error("Invalid mnemonic");
50
+ return {
51
+ nfkd: norm,
52
+ words
53
+ };
41
54
  }
55
+ __name(normalize, "normalize");
42
56
  function assertEntropy(entropy) {
43
57
  assert.bytes(entropy, 16, 20, 24, 28, 32);
44
58
  }
45
- var calcChecksum = (entropy) => {
59
+ __name(assertEntropy, "assertEntropy");
60
+ var calcChecksum = /* @__PURE__ */ __name((entropy) => {
46
61
  const bitsLeft = 8 - entropy.length / 4;
47
- return new Uint8Array([sha256(entropy)[0] >> bitsLeft << bitsLeft]);
48
- };
62
+ return new Uint8Array([
63
+ sha256(entropy)[0] >> bitsLeft << bitsLeft
64
+ ]);
65
+ }, "calcChecksum");
49
66
  function getCoder(wordlist) {
50
- if (!Array.isArray(wordlist) || wordlist.length !== 2048 || typeof wordlist[0] !== "string")
51
- throw new Error("Worlist: expected array of 2048 strings");
67
+ if (!Array.isArray(wordlist) || wordlist.length !== 2048 || typeof wordlist[0] !== "string") throw new Error("Worlist: expected array of 2048 strings");
52
68
  for (const i of wordlist) {
53
69
  if (typeof i !== "string") throw new Error(`Wordlist: non-string element: ${i}`);
54
70
  }
55
71
  return baseUtils.chain(baseUtils.checksum(1, calcChecksum), baseUtils.radix2(11, true), baseUtils.alphabet(wordlist));
56
72
  }
73
+ __name(getCoder, "getCoder");
57
74
  function mnemonicToEntropy(mnemonic, wordlist) {
58
75
  const { words } = normalize(mnemonic);
59
76
  const entropy = getCoder(wordlist).decode(words);
60
77
  assertEntropy(entropy);
61
78
  return entropy;
62
79
  }
80
+ __name(mnemonicToEntropy, "mnemonicToEntropy");
63
81
  function entropyToMnemonic(entropy, wordlist) {
64
82
  assertEntropy(entropy);
65
83
  const words = getCoder(wordlist).encode(entropy);
66
84
  return words.join(isJapanese(wordlist) ? "\u3000" : " ");
67
85
  }
68
- var salt = (passphrase) => nfkd(`mnemonic${passphrase}`);
86
+ __name(entropyToMnemonic, "entropyToMnemonic");
87
+ var salt = /* @__PURE__ */ __name((passphrase) => nfkd(`mnemonic${passphrase}`), "salt");
69
88
  function mnemonicToSeed(mnemonic, passphrase = "") {
70
- return pbkdf2Async(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 });
89
+ return pbkdf2Async(sha512, normalize(mnemonic).nfkd, salt(passphrase), {
90
+ c: 2048,
91
+ dkLen: 64
92
+ });
71
93
  }
94
+ __name(mnemonicToSeed, "mnemonicToSeed");
72
95
  function mnemonicToSeedSync(mnemonic, passphrase = "") {
73
- return pbkdf2(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 });
96
+ return pbkdf2(sha512, normalize(mnemonic).nfkd, salt(passphrase), {
97
+ c: 2048,
98
+ dkLen: 64
99
+ });
74
100
  }
101
+ __name(mnemonicToSeedSync, "mnemonicToSeedSync");
75
102
  export {
76
103
  entropyToMnemonic,
77
104
  mnemonicToEntropy,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/wordlists/index.ts"],"sourcesContent":["/* eslint-disable import/no-internal-modules */\n/*! scure-bip39 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */\nimport assert from '@noble/hashes/_assert'\nimport { pbkdf2, pbkdf2Async } from '@noble/hashes/pbkdf2'\nimport { sha256 } from '@noble/hashes/sha256'\nimport { sha512 } from '@noble/hashes/sha512'\nimport { utils as baseUtils } from '@scure/base'\n\nexport * from './wordlists'\n\n// Japanese wordlist\nconst isJapanese = (wordlist: string[]) => wordlist[0] === '\\u3042\\u3044\\u3053\\u304F\\u3057\\u3093'\n\n// Normalization replaces equivalent sequences of characters\n// so that any two texts that are equivalent will be reduced\n// to the same sequence of code points, called the normal form of the original text.\nfunction nfkd(str: string) {\n if (typeof str !== 'string') throw new TypeError(`Invalid mnemonic type: ${typeof str}`)\n return str.normalize('NFKD')\n}\n\nfunction normalize(str: string) {\n const norm = nfkd(str)\n const words = norm.split(' ')\n if (![12, 15, 18, 21, 24].includes(words.length)) throw new Error('Invalid mnemonic')\n return { nfkd: norm, words }\n}\n\nfunction assertEntropy(entropy: Uint8Array) {\n assert.bytes(entropy, 16, 20, 24, 28, 32)\n}\n\nconst calcChecksum = (entropy: Uint8Array) => {\n // Checksum is ent.length/4 bits long\n const bitsLeft = 8 - entropy.length / 4\n // Zero rightmost \"bitsLeft\" bits in byte\n // For example: bitsLeft=4 val=10111101 -> 10110000\n return new Uint8Array([(sha256(entropy)[0] >> bitsLeft) << bitsLeft])\n}\n\nfunction getCoder(wordlist: string[]) {\n if (!Array.isArray(wordlist) || wordlist.length !== 2048 || typeof wordlist[0] !== 'string')\n throw new Error('Worlist: expected array of 2048 strings')\n for (const i of wordlist) {\n if (typeof i !== 'string') throw new Error(`Wordlist: non-string element: ${i}`)\n }\n return baseUtils.chain(baseUtils.checksum(1, calcChecksum), baseUtils.radix2(11, true), baseUtils.alphabet(wordlist))\n}\n\n/**\n * Reversible: Converts mnemonic string to raw entropy in form of byte array.\n * @param mnemonic 12-24 words\n * @param wordlist imported wordlist for specific language\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToEntropy(mnem, wordlist)\n * // Produces\n * new Uint8Array([\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToEntropy(mnemonic: string, wordlist: string[]): Uint8Array {\n const { words } = normalize(mnemonic)\n const entropy = getCoder(wordlist).decode(words)\n assertEntropy(entropy)\n return entropy\n}\n\n/**\n * Reversible: Converts raw entropy in form of byte array to mnemonic string.\n * @param entropy byte array\n * @param wordlist imported wordlist for specific language\n * @returns 12-24 words\n * @example\n * const ent = new Uint8Array([\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ]);\n * entropyToMnemonic(ent, wordlist);\n * // 'legal winner thank year wave sausage worth useful legal winner thank yellow'\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function entropyToMnemonic(entropy: Uint8Array, wordlist: string[]): string {\n assertEntropy(entropy)\n const words = getCoder(wordlist).encode(entropy)\n return words.join(isJapanese(wordlist) ? '\\u3000' : ' ')\n}\n\nconst salt = (passphrase: string) => nfkd(`mnemonic${passphrase}`)\n\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * await mnemonicToSeed(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToSeed(mnemonic: string, passphrase = '') {\n return pbkdf2Async(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 })\n}\n\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToSeedSync(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToSeedSync(mnemonic: string, passphrase = '') {\n return pbkdf2(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 })\n}\n","/* eslint-disable import/no-internal-modules */\nimport czech from '@scure/bip39/wordlists/czech'\nimport english from '@scure/bip39/wordlists/english'\nimport french from '@scure/bip39/wordlists/french'\nimport italian from '@scure/bip39/wordlists/italian'\nimport japanese from '@scure/bip39/wordlists/japanese'\nimport korean from '@scure/bip39/wordlists/korean'\nimport simplifiedChinese from '@scure/bip39/wordlists/simplified-chinese'\nimport spanish from '@scure/bip39/wordlists/spanish'\nimport traditionalChinese from '@scure/bip39/wordlists/traditional-chinese'\n\n/** @deprecated use @scure/bip39 instead */\nexport const wordlists = {\n czech,\n english,\n french,\n italian,\n japanese,\n korean,\n simplifiedChinese,\n spanish,\n traditionalChinese,\n}\n"],"mappings":";AAEA,OAAO,YAAY;AACnB,SAAS,QAAQ,mBAAmB;AACpC,SAAS,cAAc;AACvB,SAAS,cAAc;AACvB,SAAS,SAAS,iBAAiB;;;ACLnC,OAAO,WAAW;AAClB,OAAO,aAAa;AACpB,OAAO,YAAY;AACnB,OAAO,aAAa;AACpB,OAAO,cAAc;AACrB,OAAO,YAAY;AACnB,OAAO,uBAAuB;AAC9B,OAAO,aAAa;AACpB,OAAO,wBAAwB;AAGxB,IAAM,YAAY;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ADXA,IAAM,aAAa,CAAC,aAAuB,SAAS,CAAC,MAAM;AAK3D,SAAS,KAAK,KAAa;AACzB,MAAI,OAAO,QAAQ,SAAU,OAAM,IAAI,UAAU,0BAA0B,OAAO,GAAG,EAAE;AACvF,SAAO,IAAI,UAAU,MAAM;AAC7B;AAEA,SAAS,UAAU,KAAa;AAC9B,QAAM,OAAO,KAAK,GAAG;AACrB,QAAM,QAAQ,KAAK,MAAM,GAAG;AAC5B,MAAI,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,SAAS,MAAM,MAAM,EAAG,OAAM,IAAI,MAAM,kBAAkB;AACpF,SAAO,EAAE,MAAM,MAAM,MAAM;AAC7B;AAEA,SAAS,cAAc,SAAqB;AAC1C,SAAO,MAAM,SAAS,IAAI,IAAI,IAAI,IAAI,EAAE;AAC1C;AAEA,IAAM,eAAe,CAAC,YAAwB;AAE5C,QAAM,WAAW,IAAI,QAAQ,SAAS;AAGtC,SAAO,IAAI,WAAW,CAAE,OAAO,OAAO,EAAE,CAAC,KAAK,YAAa,QAAQ,CAAC;AACtE;AAEA,SAAS,SAAS,UAAoB;AACpC,MAAI,CAAC,MAAM,QAAQ,QAAQ,KAAK,SAAS,WAAW,QAAQ,OAAO,SAAS,CAAC,MAAM;AACjF,UAAM,IAAI,MAAM,yCAAyC;AAC3D,aAAW,KAAK,UAAU;AACxB,QAAI,OAAO,MAAM,SAAU,OAAM,IAAI,MAAM,iCAAiC,CAAC,EAAE;AAAA,EACjF;AACA,SAAO,UAAU,MAAM,UAAU,SAAS,GAAG,YAAY,GAAG,UAAU,OAAO,IAAI,IAAI,GAAG,UAAU,SAAS,QAAQ,CAAC;AACtH;AAiBO,SAAS,kBAAkB,UAAkB,UAAgC;AAClF,QAAM,EAAE,MAAM,IAAI,UAAU,QAAQ;AACpC,QAAM,UAAU,SAAS,QAAQ,EAAE,OAAO,KAAK;AAC/C,gBAAc,OAAO;AACrB,SAAO;AACT;AAiBO,SAAS,kBAAkB,SAAqB,UAA4B;AACjF,gBAAc,OAAO;AACrB,QAAM,QAAQ,SAAS,QAAQ,EAAE,OAAO,OAAO;AAC/C,SAAO,MAAM,KAAK,WAAW,QAAQ,IAAI,WAAW,GAAG;AACzD;AAEA,IAAM,OAAO,CAAC,eAAuB,KAAK,WAAW,UAAU,EAAE;AAc1D,SAAS,eAAe,UAAkB,aAAa,IAAI;AAChE,SAAO,YAAY,QAAQ,UAAU,QAAQ,EAAE,MAAM,KAAK,UAAU,GAAG,EAAE,GAAG,MAAM,OAAO,GAAG,CAAC;AAC/F;AAcO,SAAS,mBAAmB,UAAkB,aAAa,IAAI;AACpE,SAAO,OAAO,QAAQ,UAAU,QAAQ,EAAE,MAAM,KAAK,UAAU,GAAG,EAAE,GAAG,MAAM,OAAO,GAAG,CAAC;AAC1F;","names":[]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/wordlists/index.ts"],"sourcesContent":["/* eslint-disable import/no-internal-modules */\n/*! scure-bip39 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */\nimport assert from '@noble/hashes/_assert'\nimport { pbkdf2, pbkdf2Async } from '@noble/hashes/pbkdf2'\nimport { sha256 } from '@noble/hashes/sha256'\nimport { sha512 } from '@noble/hashes/sha512'\nimport { utils as baseUtils } from '@scure/base'\n\nexport * from './wordlists/index.js'\n\n// Japanese wordlist\nconst isJapanese = (wordlist: string[]) => wordlist[0] === '\\u3042\\u3044\\u3053\\u304F\\u3057\\u3093'\n\n// Normalization replaces equivalent sequences of characters\n// so that any two texts that are equivalent will be reduced\n// to the same sequence of code points, called the normal form of the original text.\nfunction nfkd(str: string) {\n if (typeof str !== 'string') throw new TypeError(`Invalid mnemonic type: ${typeof str}`)\n return str.normalize('NFKD')\n}\n\nfunction normalize(str: string) {\n const norm = nfkd(str)\n const words = norm.split(' ')\n if (![12, 15, 18, 21, 24].includes(words.length)) throw new Error('Invalid mnemonic')\n return { nfkd: norm, words }\n}\n\nfunction assertEntropy(entropy: Uint8Array) {\n assert.bytes(entropy, 16, 20, 24, 28, 32)\n}\n\nconst calcChecksum = (entropy: Uint8Array) => {\n // Checksum is ent.length/4 bits long\n const bitsLeft = 8 - entropy.length / 4\n // Zero rightmost \"bitsLeft\" bits in byte\n // For example: bitsLeft=4 val=10111101 -> 10110000\n return new Uint8Array([(sha256(entropy)[0] >> bitsLeft) << bitsLeft])\n}\n\nfunction getCoder(wordlist: string[]) {\n if (!Array.isArray(wordlist) || wordlist.length !== 2048 || typeof wordlist[0] !== 'string')\n throw new Error('Worlist: expected array of 2048 strings')\n for (const i of wordlist) {\n if (typeof i !== 'string') throw new Error(`Wordlist: non-string element: ${i}`)\n }\n return baseUtils.chain(baseUtils.checksum(1, calcChecksum), baseUtils.radix2(11, true), baseUtils.alphabet(wordlist))\n}\n\n/**\n * Reversible: Converts mnemonic string to raw entropy in form of byte array.\n * @param mnemonic 12-24 words\n * @param wordlist imported wordlist for specific language\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToEntropy(mnem, wordlist)\n * // Produces\n * new Uint8Array([\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToEntropy(mnemonic: string, wordlist: string[]): Uint8Array {\n const { words } = normalize(mnemonic)\n const entropy = getCoder(wordlist).decode(words)\n assertEntropy(entropy)\n return entropy\n}\n\n/**\n * Reversible: Converts raw entropy in form of byte array to mnemonic string.\n * @param entropy byte array\n * @param wordlist imported wordlist for specific language\n * @returns 12-24 words\n * @example\n * const ent = new Uint8Array([\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ]);\n * entropyToMnemonic(ent, wordlist);\n * // 'legal winner thank year wave sausage worth useful legal winner thank yellow'\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function entropyToMnemonic(entropy: Uint8Array, wordlist: string[]): string {\n assertEntropy(entropy)\n const words = getCoder(wordlist).encode(entropy)\n return words.join(isJapanese(wordlist) ? '\\u3000' : ' ')\n}\n\nconst salt = (passphrase: string) => nfkd(`mnemonic${passphrase}`)\n\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * await mnemonicToSeed(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToSeed(mnemonic: string, passphrase = '') {\n return pbkdf2Async(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 })\n}\n\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToSeedSync(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToSeedSync(mnemonic: string, passphrase = '') {\n return pbkdf2(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 })\n}\n","/* eslint-disable import/no-internal-modules */\nimport czech from '@scure/bip39/wordlists/czech'\nimport english from '@scure/bip39/wordlists/english'\nimport french from '@scure/bip39/wordlists/french'\nimport italian from '@scure/bip39/wordlists/italian'\nimport japanese from '@scure/bip39/wordlists/japanese'\nimport korean from '@scure/bip39/wordlists/korean'\nimport simplifiedChinese from '@scure/bip39/wordlists/simplified-chinese'\nimport spanish from '@scure/bip39/wordlists/spanish'\nimport traditionalChinese from '@scure/bip39/wordlists/traditional-chinese'\n\n/** @deprecated use @scure/bip39 instead */\nexport const wordlists = {\n czech,\n english,\n french,\n italian,\n japanese,\n korean,\n simplifiedChinese,\n spanish,\n traditionalChinese,\n}\n"],"mappings":"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","names":["assert","pbkdf2","pbkdf2Async","sha256","sha512","utils","baseUtils","czech","english","french","italian","japanese","korean","simplifiedChinese","spanish","traditionalChinese","wordlists","isJapanese","wordlist","nfkd","str","TypeError","normalize","norm","words","split","includes","length","Error","assertEntropy","entropy","assert","bytes","calcChecksum","bitsLeft","Uint8Array","sha256","getCoder","Array","isArray","i","baseUtils","chain","checksum","radix2","alphabet","mnemonicToEntropy","mnemonic","decode","entropyToMnemonic","encode","join","salt","passphrase","mnemonicToSeed","pbkdf2Async","sha512","c","dkLen","mnemonicToSeedSync","pbkdf2"]}
@@ -5,6 +5,7 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
9
  var __export = (target, all) => {
9
10
  for (var name in all)
10
11
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -66,49 +67,73 @@ var wordlists = {
66
67
  };
67
68
 
68
69
  // src/index.ts
69
- var isJapanese = (wordlist) => wordlist[0] === "\u3042\u3044\u3053\u304F\u3057\u3093";
70
+ var isJapanese = /* @__PURE__ */ __name((wordlist) => wordlist[0] === "\u3042\u3044\u3053\u304F\u3057\u3093", "isJapanese");
70
71
  function nfkd(str) {
71
72
  if (typeof str !== "string") throw new TypeError(`Invalid mnemonic type: ${typeof str}`);
72
73
  return str.normalize("NFKD");
73
74
  }
75
+ __name(nfkd, "nfkd");
74
76
  function normalize(str) {
75
77
  const norm = nfkd(str);
76
78
  const words = norm.split(" ");
77
- if (![12, 15, 18, 21, 24].includes(words.length)) throw new Error("Invalid mnemonic");
78
- return { nfkd: norm, words };
79
+ if (![
80
+ 12,
81
+ 15,
82
+ 18,
83
+ 21,
84
+ 24
85
+ ].includes(words.length)) throw new Error("Invalid mnemonic");
86
+ return {
87
+ nfkd: norm,
88
+ words
89
+ };
79
90
  }
91
+ __name(normalize, "normalize");
80
92
  function assertEntropy(entropy) {
81
93
  import_assert.default.bytes(entropy, 16, 20, 24, 28, 32);
82
94
  }
83
- var calcChecksum = (entropy) => {
95
+ __name(assertEntropy, "assertEntropy");
96
+ var calcChecksum = /* @__PURE__ */ __name((entropy) => {
84
97
  const bitsLeft = 8 - entropy.length / 4;
85
- return new Uint8Array([(0, import_sha256.sha256)(entropy)[0] >> bitsLeft << bitsLeft]);
86
- };
98
+ return new Uint8Array([
99
+ (0, import_sha256.sha256)(entropy)[0] >> bitsLeft << bitsLeft
100
+ ]);
101
+ }, "calcChecksum");
87
102
  function getCoder(wordlist) {
88
- if (!Array.isArray(wordlist) || wordlist.length !== 2048 || typeof wordlist[0] !== "string")
89
- throw new Error("Worlist: expected array of 2048 strings");
103
+ if (!Array.isArray(wordlist) || wordlist.length !== 2048 || typeof wordlist[0] !== "string") throw new Error("Worlist: expected array of 2048 strings");
90
104
  for (const i of wordlist) {
91
105
  if (typeof i !== "string") throw new Error(`Wordlist: non-string element: ${i}`);
92
106
  }
93
107
  return import_base.utils.chain(import_base.utils.checksum(1, calcChecksum), import_base.utils.radix2(11, true), import_base.utils.alphabet(wordlist));
94
108
  }
109
+ __name(getCoder, "getCoder");
95
110
  function mnemonicToEntropy(mnemonic, wordlist) {
96
111
  const { words } = normalize(mnemonic);
97
112
  const entropy = getCoder(wordlist).decode(words);
98
113
  assertEntropy(entropy);
99
114
  return entropy;
100
115
  }
116
+ __name(mnemonicToEntropy, "mnemonicToEntropy");
101
117
  function entropyToMnemonic(entropy, wordlist) {
102
118
  assertEntropy(entropy);
103
119
  const words = getCoder(wordlist).encode(entropy);
104
120
  return words.join(isJapanese(wordlist) ? "\u3000" : " ");
105
121
  }
106
- var salt = (passphrase) => nfkd(`mnemonic${passphrase}`);
122
+ __name(entropyToMnemonic, "entropyToMnemonic");
123
+ var salt = /* @__PURE__ */ __name((passphrase) => nfkd(`mnemonic${passphrase}`), "salt");
107
124
  function mnemonicToSeed(mnemonic, passphrase = "") {
108
- return (0, import_pbkdf2.pbkdf2Async)(import_sha512.sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 });
125
+ return (0, import_pbkdf2.pbkdf2Async)(import_sha512.sha512, normalize(mnemonic).nfkd, salt(passphrase), {
126
+ c: 2048,
127
+ dkLen: 64
128
+ });
109
129
  }
130
+ __name(mnemonicToSeed, "mnemonicToSeed");
110
131
  function mnemonicToSeedSync(mnemonic, passphrase = "") {
111
- return (0, import_pbkdf2.pbkdf2)(import_sha512.sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 });
132
+ return (0, import_pbkdf2.pbkdf2)(import_sha512.sha512, normalize(mnemonic).nfkd, salt(passphrase), {
133
+ c: 2048,
134
+ dkLen: 64
135
+ });
112
136
  }
137
+ __name(mnemonicToSeedSync, "mnemonicToSeedSync");
113
138
  /*! scure-bip39 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */
114
139
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/wordlists/index.ts"],"sourcesContent":["/* eslint-disable import/no-internal-modules */\n/*! scure-bip39 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */\nimport assert from '@noble/hashes/_assert'\nimport { pbkdf2, pbkdf2Async } from '@noble/hashes/pbkdf2'\nimport { sha256 } from '@noble/hashes/sha256'\nimport { sha512 } from '@noble/hashes/sha512'\nimport { utils as baseUtils } from '@scure/base'\n\nexport * from './wordlists'\n\n// Japanese wordlist\nconst isJapanese = (wordlist: string[]) => wordlist[0] === '\\u3042\\u3044\\u3053\\u304F\\u3057\\u3093'\n\n// Normalization replaces equivalent sequences of characters\n// so that any two texts that are equivalent will be reduced\n// to the same sequence of code points, called the normal form of the original text.\nfunction nfkd(str: string) {\n if (typeof str !== 'string') throw new TypeError(`Invalid mnemonic type: ${typeof str}`)\n return str.normalize('NFKD')\n}\n\nfunction normalize(str: string) {\n const norm = nfkd(str)\n const words = norm.split(' ')\n if (![12, 15, 18, 21, 24].includes(words.length)) throw new Error('Invalid mnemonic')\n return { nfkd: norm, words }\n}\n\nfunction assertEntropy(entropy: Uint8Array) {\n assert.bytes(entropy, 16, 20, 24, 28, 32)\n}\n\nconst calcChecksum = (entropy: Uint8Array) => {\n // Checksum is ent.length/4 bits long\n const bitsLeft = 8 - entropy.length / 4\n // Zero rightmost \"bitsLeft\" bits in byte\n // For example: bitsLeft=4 val=10111101 -> 10110000\n return new Uint8Array([(sha256(entropy)[0] >> bitsLeft) << bitsLeft])\n}\n\nfunction getCoder(wordlist: string[]) {\n if (!Array.isArray(wordlist) || wordlist.length !== 2048 || typeof wordlist[0] !== 'string')\n throw new Error('Worlist: expected array of 2048 strings')\n for (const i of wordlist) {\n if (typeof i !== 'string') throw new Error(`Wordlist: non-string element: ${i}`)\n }\n return baseUtils.chain(baseUtils.checksum(1, calcChecksum), baseUtils.radix2(11, true), baseUtils.alphabet(wordlist))\n}\n\n/**\n * Reversible: Converts mnemonic string to raw entropy in form of byte array.\n * @param mnemonic 12-24 words\n * @param wordlist imported wordlist for specific language\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToEntropy(mnem, wordlist)\n * // Produces\n * new Uint8Array([\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToEntropy(mnemonic: string, wordlist: string[]): Uint8Array {\n const { words } = normalize(mnemonic)\n const entropy = getCoder(wordlist).decode(words)\n assertEntropy(entropy)\n return entropy\n}\n\n/**\n * Reversible: Converts raw entropy in form of byte array to mnemonic string.\n * @param entropy byte array\n * @param wordlist imported wordlist for specific language\n * @returns 12-24 words\n * @example\n * const ent = new Uint8Array([\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ]);\n * entropyToMnemonic(ent, wordlist);\n * // 'legal winner thank year wave sausage worth useful legal winner thank yellow'\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function entropyToMnemonic(entropy: Uint8Array, wordlist: string[]): string {\n assertEntropy(entropy)\n const words = getCoder(wordlist).encode(entropy)\n return words.join(isJapanese(wordlist) ? '\\u3000' : ' ')\n}\n\nconst salt = (passphrase: string) => nfkd(`mnemonic${passphrase}`)\n\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * await mnemonicToSeed(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToSeed(mnemonic: string, passphrase = '') {\n return pbkdf2Async(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 })\n}\n\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToSeedSync(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToSeedSync(mnemonic: string, passphrase = '') {\n return pbkdf2(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 })\n}\n","/* eslint-disable import/no-internal-modules */\nimport czech from '@scure/bip39/wordlists/czech'\nimport english from '@scure/bip39/wordlists/english'\nimport french from '@scure/bip39/wordlists/french'\nimport italian from '@scure/bip39/wordlists/italian'\nimport japanese from '@scure/bip39/wordlists/japanese'\nimport korean from '@scure/bip39/wordlists/korean'\nimport simplifiedChinese from '@scure/bip39/wordlists/simplified-chinese'\nimport spanish from '@scure/bip39/wordlists/spanish'\nimport traditionalChinese from '@scure/bip39/wordlists/traditional-chinese'\n\n/** @deprecated use @scure/bip39 instead */\nexport const wordlists = {\n czech,\n english,\n french,\n italian,\n japanese,\n korean,\n simplifiedChinese,\n spanish,\n traditionalChinese,\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAAmB;AACnB,oBAAoC;AACpC,oBAAuB;AACvB,oBAAuB;AACvB,kBAAmC;;;ACLnC,mBAAkB;AAClB,qBAAoB;AACpB,oBAAmB;AACnB,qBAAoB;AACpB,sBAAqB;AACrB,oBAAmB;AACnB,gCAA8B;AAC9B,qBAAoB;AACpB,iCAA+B;AAGxB,IAAM,YAAY;AAAA,EACvB,oBAAAA;AAAA,EACA,wBAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,wBAAAC;AAAA,EACA,0BAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,6CAAAC;AAAA,EACA,wBAAAC;AAAA,EACA,+CAAAC;AACF;;;ADXA,IAAM,aAAa,CAAC,aAAuB,SAAS,CAAC,MAAM;AAK3D,SAAS,KAAK,KAAa;AACzB,MAAI,OAAO,QAAQ,SAAU,OAAM,IAAI,UAAU,0BAA0B,OAAO,GAAG,EAAE;AACvF,SAAO,IAAI,UAAU,MAAM;AAC7B;AAEA,SAAS,UAAU,KAAa;AAC9B,QAAM,OAAO,KAAK,GAAG;AACrB,QAAM,QAAQ,KAAK,MAAM,GAAG;AAC5B,MAAI,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,SAAS,MAAM,MAAM,EAAG,OAAM,IAAI,MAAM,kBAAkB;AACpF,SAAO,EAAE,MAAM,MAAM,MAAM;AAC7B;AAEA,SAAS,cAAc,SAAqB;AAC1C,gBAAAC,QAAO,MAAM,SAAS,IAAI,IAAI,IAAI,IAAI,EAAE;AAC1C;AAEA,IAAM,eAAe,CAAC,YAAwB;AAE5C,QAAM,WAAW,IAAI,QAAQ,SAAS;AAGtC,SAAO,IAAI,WAAW,KAAE,sBAAO,OAAO,EAAE,CAAC,KAAK,YAAa,QAAQ,CAAC;AACtE;AAEA,SAAS,SAAS,UAAoB;AACpC,MAAI,CAAC,MAAM,QAAQ,QAAQ,KAAK,SAAS,WAAW,QAAQ,OAAO,SAAS,CAAC,MAAM;AACjF,UAAM,IAAI,MAAM,yCAAyC;AAC3D,aAAW,KAAK,UAAU;AACxB,QAAI,OAAO,MAAM,SAAU,OAAM,IAAI,MAAM,iCAAiC,CAAC,EAAE;AAAA,EACjF;AACA,SAAO,YAAAC,MAAU,MAAM,YAAAA,MAAU,SAAS,GAAG,YAAY,GAAG,YAAAA,MAAU,OAAO,IAAI,IAAI,GAAG,YAAAA,MAAU,SAAS,QAAQ,CAAC;AACtH;AAiBO,SAAS,kBAAkB,UAAkB,UAAgC;AAClF,QAAM,EAAE,MAAM,IAAI,UAAU,QAAQ;AACpC,QAAM,UAAU,SAAS,QAAQ,EAAE,OAAO,KAAK;AAC/C,gBAAc,OAAO;AACrB,SAAO;AACT;AAiBO,SAAS,kBAAkB,SAAqB,UAA4B;AACjF,gBAAc,OAAO;AACrB,QAAM,QAAQ,SAAS,QAAQ,EAAE,OAAO,OAAO;AAC/C,SAAO,MAAM,KAAK,WAAW,QAAQ,IAAI,WAAW,GAAG;AACzD;AAEA,IAAM,OAAO,CAAC,eAAuB,KAAK,WAAW,UAAU,EAAE;AAc1D,SAAS,eAAe,UAAkB,aAAa,IAAI;AAChE,aAAO,2BAAY,sBAAQ,UAAU,QAAQ,EAAE,MAAM,KAAK,UAAU,GAAG,EAAE,GAAG,MAAM,OAAO,GAAG,CAAC;AAC/F;AAcO,SAAS,mBAAmB,UAAkB,aAAa,IAAI;AACpE,aAAO,sBAAO,sBAAQ,UAAU,QAAQ,EAAE,MAAM,KAAK,UAAU,GAAG,EAAE,GAAG,MAAM,OAAO,GAAG,CAAC;AAC1F;","names":["czech","english","french","italian","japanese","korean","simplifiedChinese","spanish","traditionalChinese","assert","baseUtils"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/wordlists/index.ts"],"sourcesContent":["/* eslint-disable import/no-internal-modules */\n/*! scure-bip39 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */\nimport assert from '@noble/hashes/_assert'\nimport { pbkdf2, pbkdf2Async } from '@noble/hashes/pbkdf2'\nimport { sha256 } from '@noble/hashes/sha256'\nimport { sha512 } from '@noble/hashes/sha512'\nimport { utils as baseUtils } from '@scure/base'\n\nexport * from './wordlists/index.js'\n\n// Japanese wordlist\nconst isJapanese = (wordlist: string[]) => wordlist[0] === '\\u3042\\u3044\\u3053\\u304F\\u3057\\u3093'\n\n// Normalization replaces equivalent sequences of characters\n// so that any two texts that are equivalent will be reduced\n// to the same sequence of code points, called the normal form of the original text.\nfunction nfkd(str: string) {\n if (typeof str !== 'string') throw new TypeError(`Invalid mnemonic type: ${typeof str}`)\n return str.normalize('NFKD')\n}\n\nfunction normalize(str: string) {\n const norm = nfkd(str)\n const words = norm.split(' ')\n if (![12, 15, 18, 21, 24].includes(words.length)) throw new Error('Invalid mnemonic')\n return { nfkd: norm, words }\n}\n\nfunction assertEntropy(entropy: Uint8Array) {\n assert.bytes(entropy, 16, 20, 24, 28, 32)\n}\n\nconst calcChecksum = (entropy: Uint8Array) => {\n // Checksum is ent.length/4 bits long\n const bitsLeft = 8 - entropy.length / 4\n // Zero rightmost \"bitsLeft\" bits in byte\n // For example: bitsLeft=4 val=10111101 -> 10110000\n return new Uint8Array([(sha256(entropy)[0] >> bitsLeft) << bitsLeft])\n}\n\nfunction getCoder(wordlist: string[]) {\n if (!Array.isArray(wordlist) || wordlist.length !== 2048 || typeof wordlist[0] !== 'string')\n throw new Error('Worlist: expected array of 2048 strings')\n for (const i of wordlist) {\n if (typeof i !== 'string') throw new Error(`Wordlist: non-string element: ${i}`)\n }\n return baseUtils.chain(baseUtils.checksum(1, calcChecksum), baseUtils.radix2(11, true), baseUtils.alphabet(wordlist))\n}\n\n/**\n * Reversible: Converts mnemonic string to raw entropy in form of byte array.\n * @param mnemonic 12-24 words\n * @param wordlist imported wordlist for specific language\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToEntropy(mnem, wordlist)\n * // Produces\n * new Uint8Array([\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToEntropy(mnemonic: string, wordlist: string[]): Uint8Array {\n const { words } = normalize(mnemonic)\n const entropy = getCoder(wordlist).decode(words)\n assertEntropy(entropy)\n return entropy\n}\n\n/**\n * Reversible: Converts raw entropy in form of byte array to mnemonic string.\n * @param entropy byte array\n * @param wordlist imported wordlist for specific language\n * @returns 12-24 words\n * @example\n * const ent = new Uint8Array([\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ]);\n * entropyToMnemonic(ent, wordlist);\n * // 'legal winner thank year wave sausage worth useful legal winner thank yellow'\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function entropyToMnemonic(entropy: Uint8Array, wordlist: string[]): string {\n assertEntropy(entropy)\n const words = getCoder(wordlist).encode(entropy)\n return words.join(isJapanese(wordlist) ? '\\u3000' : ' ')\n}\n\nconst salt = (passphrase: string) => nfkd(`mnemonic${passphrase}`)\n\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * await mnemonicToSeed(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToSeed(mnemonic: string, passphrase = '') {\n return pbkdf2Async(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 })\n}\n\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToSeedSync(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToSeedSync(mnemonic: string, passphrase = '') {\n return pbkdf2(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 })\n}\n","/* eslint-disable import/no-internal-modules */\nimport czech from '@scure/bip39/wordlists/czech'\nimport english from '@scure/bip39/wordlists/english'\nimport french from '@scure/bip39/wordlists/french'\nimport italian from '@scure/bip39/wordlists/italian'\nimport japanese from '@scure/bip39/wordlists/japanese'\nimport korean from '@scure/bip39/wordlists/korean'\nimport simplifiedChinese from '@scure/bip39/wordlists/simplified-chinese'\nimport spanish from '@scure/bip39/wordlists/spanish'\nimport traditionalChinese from '@scure/bip39/wordlists/traditional-chinese'\n\n/** @deprecated use @scure/bip39 instead */\nexport const wordlists = {\n czech,\n english,\n french,\n italian,\n japanese,\n korean,\n simplifiedChinese,\n spanish,\n traditionalChinese,\n}\n"],"mappings":"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","names":["wordlists","czech","english","french","italian","japanese","korean","simplifiedChinese","spanish","traditionalChinese","isJapanese","wordlist","nfkd","str","TypeError","normalize","norm","words","split","includes","length","Error","assertEntropy","entropy","assert","bytes","calcChecksum","bitsLeft","Uint8Array","sha256","getCoder","Array","isArray","i","baseUtils","chain","checksum","radix2","alphabet","mnemonicToEntropy","mnemonic","decode","entropyToMnemonic","encode","join","salt","passphrase","mnemonicToSeed","pbkdf2Async","sha512","c","dkLen","mnemonicToSeedSync","pbkdf2"]}
@@ -1,4 +1,4 @@
1
- export * from './wordlists';
1
+ export * from './wordlists/index.js';
2
2
  export declare function mnemonicToEntropy(mnemonic: string, wordlist: string[]): Uint8Array;
3
3
  export declare function entropyToMnemonic(entropy: Uint8Array, wordlist: string[]): string;
4
4
  export declare function mnemonicToSeed(mnemonic: string, passphrase?: string): Promise<Uint8Array>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,aAAa,CAAA;AAwD3B,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,CAKlF;AAiBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAIjF;AAgBD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,uBAE/D;AAcD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,cAEnE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,sBAAsB,CAAA;AAwDpC,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,CAKlF;AAiBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAIjF;AAgBD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,uBAE/D;AAcD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,cAEnE"}
@@ -1,4 +1,4 @@
1
- export * from './wordlists';
1
+ export * from './wordlists/index.js';
2
2
  export declare function mnemonicToEntropy(mnemonic: string, wordlist: string[]): Uint8Array;
3
3
  export declare function entropyToMnemonic(entropy: Uint8Array, wordlist: string[]): string;
4
4
  export declare function mnemonicToSeed(mnemonic: string, passphrase?: string): Promise<Uint8Array>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,aAAa,CAAA;AAwD3B,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,CAKlF;AAiBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAIjF;AAgBD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,uBAE/D;AAcD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,cAEnE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,sBAAsB,CAAA;AAwDpC,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,CAKlF;AAiBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAIjF;AAgBD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,uBAE/D;AAcD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,cAEnE"}
@@ -1,4 +1,4 @@
1
- export * from './wordlists';
1
+ export * from './wordlists/index.js';
2
2
  export declare function mnemonicToEntropy(mnemonic: string, wordlist: string[]): Uint8Array;
3
3
  export declare function entropyToMnemonic(entropy: Uint8Array, wordlist: string[]): string;
4
4
  export declare function mnemonicToSeed(mnemonic: string, passphrase?: string): Promise<Uint8Array>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,aAAa,CAAA;AAwD3B,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,CAKlF;AAiBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAIjF;AAgBD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,uBAE/D;AAcD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,cAEnE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,sBAAsB,CAAA;AAwDpC,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,CAKlF;AAiBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAIjF;AAgBD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,uBAE/D;AAcD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,cAEnE"}
@@ -1,3 +1,6 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+
1
4
  // src/index.ts
2
5
  import assert from "@noble/hashes/_assert";
3
6
  import { pbkdf2, pbkdf2Async } from "@noble/hashes/pbkdf2";
@@ -28,50 +31,74 @@ var wordlists = {
28
31
  };
29
32
 
30
33
  // src/index.ts
31
- var isJapanese = (wordlist) => wordlist[0] === "\u3042\u3044\u3053\u304F\u3057\u3093";
34
+ var isJapanese = /* @__PURE__ */ __name((wordlist) => wordlist[0] === "\u3042\u3044\u3053\u304F\u3057\u3093", "isJapanese");
32
35
  function nfkd(str) {
33
36
  if (typeof str !== "string") throw new TypeError(`Invalid mnemonic type: ${typeof str}`);
34
37
  return str.normalize("NFKD");
35
38
  }
39
+ __name(nfkd, "nfkd");
36
40
  function normalize(str) {
37
41
  const norm = nfkd(str);
38
42
  const words = norm.split(" ");
39
- if (![12, 15, 18, 21, 24].includes(words.length)) throw new Error("Invalid mnemonic");
40
- return { nfkd: norm, words };
43
+ if (![
44
+ 12,
45
+ 15,
46
+ 18,
47
+ 21,
48
+ 24
49
+ ].includes(words.length)) throw new Error("Invalid mnemonic");
50
+ return {
51
+ nfkd: norm,
52
+ words
53
+ };
41
54
  }
55
+ __name(normalize, "normalize");
42
56
  function assertEntropy(entropy) {
43
57
  assert.bytes(entropy, 16, 20, 24, 28, 32);
44
58
  }
45
- var calcChecksum = (entropy) => {
59
+ __name(assertEntropy, "assertEntropy");
60
+ var calcChecksum = /* @__PURE__ */ __name((entropy) => {
46
61
  const bitsLeft = 8 - entropy.length / 4;
47
- return new Uint8Array([sha256(entropy)[0] >> bitsLeft << bitsLeft]);
48
- };
62
+ return new Uint8Array([
63
+ sha256(entropy)[0] >> bitsLeft << bitsLeft
64
+ ]);
65
+ }, "calcChecksum");
49
66
  function getCoder(wordlist) {
50
- if (!Array.isArray(wordlist) || wordlist.length !== 2048 || typeof wordlist[0] !== "string")
51
- throw new Error("Worlist: expected array of 2048 strings");
67
+ if (!Array.isArray(wordlist) || wordlist.length !== 2048 || typeof wordlist[0] !== "string") throw new Error("Worlist: expected array of 2048 strings");
52
68
  for (const i of wordlist) {
53
69
  if (typeof i !== "string") throw new Error(`Wordlist: non-string element: ${i}`);
54
70
  }
55
71
  return baseUtils.chain(baseUtils.checksum(1, calcChecksum), baseUtils.radix2(11, true), baseUtils.alphabet(wordlist));
56
72
  }
73
+ __name(getCoder, "getCoder");
57
74
  function mnemonicToEntropy(mnemonic, wordlist) {
58
75
  const { words } = normalize(mnemonic);
59
76
  const entropy = getCoder(wordlist).decode(words);
60
77
  assertEntropy(entropy);
61
78
  return entropy;
62
79
  }
80
+ __name(mnemonicToEntropy, "mnemonicToEntropy");
63
81
  function entropyToMnemonic(entropy, wordlist) {
64
82
  assertEntropy(entropy);
65
83
  const words = getCoder(wordlist).encode(entropy);
66
84
  return words.join(isJapanese(wordlist) ? "\u3000" : " ");
67
85
  }
68
- var salt = (passphrase) => nfkd(`mnemonic${passphrase}`);
86
+ __name(entropyToMnemonic, "entropyToMnemonic");
87
+ var salt = /* @__PURE__ */ __name((passphrase) => nfkd(`mnemonic${passphrase}`), "salt");
69
88
  function mnemonicToSeed(mnemonic, passphrase = "") {
70
- return pbkdf2Async(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 });
89
+ return pbkdf2Async(sha512, normalize(mnemonic).nfkd, salt(passphrase), {
90
+ c: 2048,
91
+ dkLen: 64
92
+ });
71
93
  }
94
+ __name(mnemonicToSeed, "mnemonicToSeed");
72
95
  function mnemonicToSeedSync(mnemonic, passphrase = "") {
73
- return pbkdf2(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 });
96
+ return pbkdf2(sha512, normalize(mnemonic).nfkd, salt(passphrase), {
97
+ c: 2048,
98
+ dkLen: 64
99
+ });
74
100
  }
101
+ __name(mnemonicToSeedSync, "mnemonicToSeedSync");
75
102
  export {
76
103
  entropyToMnemonic,
77
104
  mnemonicToEntropy,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/wordlists/index.ts"],"sourcesContent":["/* eslint-disable import/no-internal-modules */\n/*! scure-bip39 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */\nimport assert from '@noble/hashes/_assert'\nimport { pbkdf2, pbkdf2Async } from '@noble/hashes/pbkdf2'\nimport { sha256 } from '@noble/hashes/sha256'\nimport { sha512 } from '@noble/hashes/sha512'\nimport { utils as baseUtils } from '@scure/base'\n\nexport * from './wordlists'\n\n// Japanese wordlist\nconst isJapanese = (wordlist: string[]) => wordlist[0] === '\\u3042\\u3044\\u3053\\u304F\\u3057\\u3093'\n\n// Normalization replaces equivalent sequences of characters\n// so that any two texts that are equivalent will be reduced\n// to the same sequence of code points, called the normal form of the original text.\nfunction nfkd(str: string) {\n if (typeof str !== 'string') throw new TypeError(`Invalid mnemonic type: ${typeof str}`)\n return str.normalize('NFKD')\n}\n\nfunction normalize(str: string) {\n const norm = nfkd(str)\n const words = norm.split(' ')\n if (![12, 15, 18, 21, 24].includes(words.length)) throw new Error('Invalid mnemonic')\n return { nfkd: norm, words }\n}\n\nfunction assertEntropy(entropy: Uint8Array) {\n assert.bytes(entropy, 16, 20, 24, 28, 32)\n}\n\nconst calcChecksum = (entropy: Uint8Array) => {\n // Checksum is ent.length/4 bits long\n const bitsLeft = 8 - entropy.length / 4\n // Zero rightmost \"bitsLeft\" bits in byte\n // For example: bitsLeft=4 val=10111101 -> 10110000\n return new Uint8Array([(sha256(entropy)[0] >> bitsLeft) << bitsLeft])\n}\n\nfunction getCoder(wordlist: string[]) {\n if (!Array.isArray(wordlist) || wordlist.length !== 2048 || typeof wordlist[0] !== 'string')\n throw new Error('Worlist: expected array of 2048 strings')\n for (const i of wordlist) {\n if (typeof i !== 'string') throw new Error(`Wordlist: non-string element: ${i}`)\n }\n return baseUtils.chain(baseUtils.checksum(1, calcChecksum), baseUtils.radix2(11, true), baseUtils.alphabet(wordlist))\n}\n\n/**\n * Reversible: Converts mnemonic string to raw entropy in form of byte array.\n * @param mnemonic 12-24 words\n * @param wordlist imported wordlist for specific language\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToEntropy(mnem, wordlist)\n * // Produces\n * new Uint8Array([\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToEntropy(mnemonic: string, wordlist: string[]): Uint8Array {\n const { words } = normalize(mnemonic)\n const entropy = getCoder(wordlist).decode(words)\n assertEntropy(entropy)\n return entropy\n}\n\n/**\n * Reversible: Converts raw entropy in form of byte array to mnemonic string.\n * @param entropy byte array\n * @param wordlist imported wordlist for specific language\n * @returns 12-24 words\n * @example\n * const ent = new Uint8Array([\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ]);\n * entropyToMnemonic(ent, wordlist);\n * // 'legal winner thank year wave sausage worth useful legal winner thank yellow'\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function entropyToMnemonic(entropy: Uint8Array, wordlist: string[]): string {\n assertEntropy(entropy)\n const words = getCoder(wordlist).encode(entropy)\n return words.join(isJapanese(wordlist) ? '\\u3000' : ' ')\n}\n\nconst salt = (passphrase: string) => nfkd(`mnemonic${passphrase}`)\n\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * await mnemonicToSeed(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToSeed(mnemonic: string, passphrase = '') {\n return pbkdf2Async(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 })\n}\n\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToSeedSync(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToSeedSync(mnemonic: string, passphrase = '') {\n return pbkdf2(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 })\n}\n","/* eslint-disable import/no-internal-modules */\nimport czech from '@scure/bip39/wordlists/czech'\nimport english from '@scure/bip39/wordlists/english'\nimport french from '@scure/bip39/wordlists/french'\nimport italian from '@scure/bip39/wordlists/italian'\nimport japanese from '@scure/bip39/wordlists/japanese'\nimport korean from '@scure/bip39/wordlists/korean'\nimport simplifiedChinese from '@scure/bip39/wordlists/simplified-chinese'\nimport spanish from '@scure/bip39/wordlists/spanish'\nimport traditionalChinese from '@scure/bip39/wordlists/traditional-chinese'\n\n/** @deprecated use @scure/bip39 instead */\nexport const wordlists = {\n czech,\n english,\n french,\n italian,\n japanese,\n korean,\n simplifiedChinese,\n spanish,\n traditionalChinese,\n}\n"],"mappings":";AAEA,OAAO,YAAY;AACnB,SAAS,QAAQ,mBAAmB;AACpC,SAAS,cAAc;AACvB,SAAS,cAAc;AACvB,SAAS,SAAS,iBAAiB;;;ACLnC,OAAO,WAAW;AAClB,OAAO,aAAa;AACpB,OAAO,YAAY;AACnB,OAAO,aAAa;AACpB,OAAO,cAAc;AACrB,OAAO,YAAY;AACnB,OAAO,uBAAuB;AAC9B,OAAO,aAAa;AACpB,OAAO,wBAAwB;AAGxB,IAAM,YAAY;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ADXA,IAAM,aAAa,CAAC,aAAuB,SAAS,CAAC,MAAM;AAK3D,SAAS,KAAK,KAAa;AACzB,MAAI,OAAO,QAAQ,SAAU,OAAM,IAAI,UAAU,0BAA0B,OAAO,GAAG,EAAE;AACvF,SAAO,IAAI,UAAU,MAAM;AAC7B;AAEA,SAAS,UAAU,KAAa;AAC9B,QAAM,OAAO,KAAK,GAAG;AACrB,QAAM,QAAQ,KAAK,MAAM,GAAG;AAC5B,MAAI,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,SAAS,MAAM,MAAM,EAAG,OAAM,IAAI,MAAM,kBAAkB;AACpF,SAAO,EAAE,MAAM,MAAM,MAAM;AAC7B;AAEA,SAAS,cAAc,SAAqB;AAC1C,SAAO,MAAM,SAAS,IAAI,IAAI,IAAI,IAAI,EAAE;AAC1C;AAEA,IAAM,eAAe,CAAC,YAAwB;AAE5C,QAAM,WAAW,IAAI,QAAQ,SAAS;AAGtC,SAAO,IAAI,WAAW,CAAE,OAAO,OAAO,EAAE,CAAC,KAAK,YAAa,QAAQ,CAAC;AACtE;AAEA,SAAS,SAAS,UAAoB;AACpC,MAAI,CAAC,MAAM,QAAQ,QAAQ,KAAK,SAAS,WAAW,QAAQ,OAAO,SAAS,CAAC,MAAM;AACjF,UAAM,IAAI,MAAM,yCAAyC;AAC3D,aAAW,KAAK,UAAU;AACxB,QAAI,OAAO,MAAM,SAAU,OAAM,IAAI,MAAM,iCAAiC,CAAC,EAAE;AAAA,EACjF;AACA,SAAO,UAAU,MAAM,UAAU,SAAS,GAAG,YAAY,GAAG,UAAU,OAAO,IAAI,IAAI,GAAG,UAAU,SAAS,QAAQ,CAAC;AACtH;AAiBO,SAAS,kBAAkB,UAAkB,UAAgC;AAClF,QAAM,EAAE,MAAM,IAAI,UAAU,QAAQ;AACpC,QAAM,UAAU,SAAS,QAAQ,EAAE,OAAO,KAAK;AAC/C,gBAAc,OAAO;AACrB,SAAO;AACT;AAiBO,SAAS,kBAAkB,SAAqB,UAA4B;AACjF,gBAAc,OAAO;AACrB,QAAM,QAAQ,SAAS,QAAQ,EAAE,OAAO,OAAO;AAC/C,SAAO,MAAM,KAAK,WAAW,QAAQ,IAAI,WAAW,GAAG;AACzD;AAEA,IAAM,OAAO,CAAC,eAAuB,KAAK,WAAW,UAAU,EAAE;AAc1D,SAAS,eAAe,UAAkB,aAAa,IAAI;AAChE,SAAO,YAAY,QAAQ,UAAU,QAAQ,EAAE,MAAM,KAAK,UAAU,GAAG,EAAE,GAAG,MAAM,OAAO,GAAG,CAAC;AAC/F;AAcO,SAAS,mBAAmB,UAAkB,aAAa,IAAI;AACpE,SAAO,OAAO,QAAQ,UAAU,QAAQ,EAAE,MAAM,KAAK,UAAU,GAAG,EAAE,GAAG,MAAM,OAAO,GAAG,CAAC;AAC1F;","names":[]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/wordlists/index.ts"],"sourcesContent":["/* eslint-disable import/no-internal-modules */\n/*! scure-bip39 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */\nimport assert from '@noble/hashes/_assert'\nimport { pbkdf2, pbkdf2Async } from '@noble/hashes/pbkdf2'\nimport { sha256 } from '@noble/hashes/sha256'\nimport { sha512 } from '@noble/hashes/sha512'\nimport { utils as baseUtils } from '@scure/base'\n\nexport * from './wordlists/index.js'\n\n// Japanese wordlist\nconst isJapanese = (wordlist: string[]) => wordlist[0] === '\\u3042\\u3044\\u3053\\u304F\\u3057\\u3093'\n\n// Normalization replaces equivalent sequences of characters\n// so that any two texts that are equivalent will be reduced\n// to the same sequence of code points, called the normal form of the original text.\nfunction nfkd(str: string) {\n if (typeof str !== 'string') throw new TypeError(`Invalid mnemonic type: ${typeof str}`)\n return str.normalize('NFKD')\n}\n\nfunction normalize(str: string) {\n const norm = nfkd(str)\n const words = norm.split(' ')\n if (![12, 15, 18, 21, 24].includes(words.length)) throw new Error('Invalid mnemonic')\n return { nfkd: norm, words }\n}\n\nfunction assertEntropy(entropy: Uint8Array) {\n assert.bytes(entropy, 16, 20, 24, 28, 32)\n}\n\nconst calcChecksum = (entropy: Uint8Array) => {\n // Checksum is ent.length/4 bits long\n const bitsLeft = 8 - entropy.length / 4\n // Zero rightmost \"bitsLeft\" bits in byte\n // For example: bitsLeft=4 val=10111101 -> 10110000\n return new Uint8Array([(sha256(entropy)[0] >> bitsLeft) << bitsLeft])\n}\n\nfunction getCoder(wordlist: string[]) {\n if (!Array.isArray(wordlist) || wordlist.length !== 2048 || typeof wordlist[0] !== 'string')\n throw new Error('Worlist: expected array of 2048 strings')\n for (const i of wordlist) {\n if (typeof i !== 'string') throw new Error(`Wordlist: non-string element: ${i}`)\n }\n return baseUtils.chain(baseUtils.checksum(1, calcChecksum), baseUtils.radix2(11, true), baseUtils.alphabet(wordlist))\n}\n\n/**\n * Reversible: Converts mnemonic string to raw entropy in form of byte array.\n * @param mnemonic 12-24 words\n * @param wordlist imported wordlist for specific language\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToEntropy(mnem, wordlist)\n * // Produces\n * new Uint8Array([\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToEntropy(mnemonic: string, wordlist: string[]): Uint8Array {\n const { words } = normalize(mnemonic)\n const entropy = getCoder(wordlist).decode(words)\n assertEntropy(entropy)\n return entropy\n}\n\n/**\n * Reversible: Converts raw entropy in form of byte array to mnemonic string.\n * @param entropy byte array\n * @param wordlist imported wordlist for specific language\n * @returns 12-24 words\n * @example\n * const ent = new Uint8Array([\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ]);\n * entropyToMnemonic(ent, wordlist);\n * // 'legal winner thank year wave sausage worth useful legal winner thank yellow'\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function entropyToMnemonic(entropy: Uint8Array, wordlist: string[]): string {\n assertEntropy(entropy)\n const words = getCoder(wordlist).encode(entropy)\n return words.join(isJapanese(wordlist) ? '\\u3000' : ' ')\n}\n\nconst salt = (passphrase: string) => nfkd(`mnemonic${passphrase}`)\n\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * await mnemonicToSeed(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToSeed(mnemonic: string, passphrase = '') {\n return pbkdf2Async(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 })\n}\n\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToSeedSync(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToSeedSync(mnemonic: string, passphrase = '') {\n return pbkdf2(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 })\n}\n","/* eslint-disable import/no-internal-modules */\nimport czech from '@scure/bip39/wordlists/czech'\nimport english from '@scure/bip39/wordlists/english'\nimport french from '@scure/bip39/wordlists/french'\nimport italian from '@scure/bip39/wordlists/italian'\nimport japanese from '@scure/bip39/wordlists/japanese'\nimport korean from '@scure/bip39/wordlists/korean'\nimport simplifiedChinese from '@scure/bip39/wordlists/simplified-chinese'\nimport spanish from '@scure/bip39/wordlists/spanish'\nimport traditionalChinese from '@scure/bip39/wordlists/traditional-chinese'\n\n/** @deprecated use @scure/bip39 instead */\nexport const wordlists = {\n czech,\n english,\n french,\n italian,\n japanese,\n korean,\n simplifiedChinese,\n spanish,\n traditionalChinese,\n}\n"],"mappings":"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","names":["assert","pbkdf2","pbkdf2Async","sha256","sha512","utils","baseUtils","czech","english","french","italian","japanese","korean","simplifiedChinese","spanish","traditionalChinese","wordlists","isJapanese","wordlist","nfkd","str","TypeError","normalize","norm","words","split","includes","length","Error","assertEntropy","entropy","assert","bytes","calcChecksum","bitsLeft","Uint8Array","sha256","getCoder","Array","isArray","i","baseUtils","chain","checksum","radix2","alphabet","mnemonicToEntropy","mnemonic","decode","entropyToMnemonic","encode","join","salt","passphrase","mnemonicToSeed","pbkdf2Async","sha512","c","dkLen","mnemonicToSeedSync","pbkdf2"]}
@@ -5,6 +5,7 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
9
  var __export = (target, all) => {
9
10
  for (var name in all)
10
11
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -66,50 +67,74 @@ var wordlists = {
66
67
  };
67
68
 
68
69
  // src/index.ts
69
- var isJapanese = (wordlist) => wordlist[0] === "\u3042\u3044\u3053\u304F\u3057\u3093";
70
+ var isJapanese = /* @__PURE__ */ __name((wordlist) => wordlist[0] === "\u3042\u3044\u3053\u304F\u3057\u3093", "isJapanese");
70
71
  function nfkd(str) {
71
72
  if (typeof str !== "string") throw new TypeError(`Invalid mnemonic type: ${typeof str}`);
72
73
  return str.normalize("NFKD");
73
74
  }
75
+ __name(nfkd, "nfkd");
74
76
  function normalize(str) {
75
77
  const norm = nfkd(str);
76
78
  const words = norm.split(" ");
77
- if (![12, 15, 18, 21, 24].includes(words.length)) throw new Error("Invalid mnemonic");
78
- return { nfkd: norm, words };
79
+ if (![
80
+ 12,
81
+ 15,
82
+ 18,
83
+ 21,
84
+ 24
85
+ ].includes(words.length)) throw new Error("Invalid mnemonic");
86
+ return {
87
+ nfkd: norm,
88
+ words
89
+ };
79
90
  }
91
+ __name(normalize, "normalize");
80
92
  function assertEntropy(entropy) {
81
93
  import_assert.default.bytes(entropy, 16, 20, 24, 28, 32);
82
94
  }
83
- var calcChecksum = (entropy) => {
95
+ __name(assertEntropy, "assertEntropy");
96
+ var calcChecksum = /* @__PURE__ */ __name((entropy) => {
84
97
  const bitsLeft = 8 - entropy.length / 4;
85
- return new Uint8Array([(0, import_sha256.sha256)(entropy)[0] >> bitsLeft << bitsLeft]);
86
- };
98
+ return new Uint8Array([
99
+ (0, import_sha256.sha256)(entropy)[0] >> bitsLeft << bitsLeft
100
+ ]);
101
+ }, "calcChecksum");
87
102
  function getCoder(wordlist) {
88
- if (!Array.isArray(wordlist) || wordlist.length !== 2048 || typeof wordlist[0] !== "string")
89
- throw new Error("Worlist: expected array of 2048 strings");
103
+ if (!Array.isArray(wordlist) || wordlist.length !== 2048 || typeof wordlist[0] !== "string") throw new Error("Worlist: expected array of 2048 strings");
90
104
  for (const i of wordlist) {
91
105
  if (typeof i !== "string") throw new Error(`Wordlist: non-string element: ${i}`);
92
106
  }
93
107
  return import_base.utils.chain(import_base.utils.checksum(1, calcChecksum), import_base.utils.radix2(11, true), import_base.utils.alphabet(wordlist));
94
108
  }
109
+ __name(getCoder, "getCoder");
95
110
  function mnemonicToEntropy(mnemonic, wordlist) {
96
111
  const { words } = normalize(mnemonic);
97
112
  const entropy = getCoder(wordlist).decode(words);
98
113
  assertEntropy(entropy);
99
114
  return entropy;
100
115
  }
116
+ __name(mnemonicToEntropy, "mnemonicToEntropy");
101
117
  function entropyToMnemonic(entropy, wordlist) {
102
118
  assertEntropy(entropy);
103
119
  const words = getCoder(wordlist).encode(entropy);
104
120
  return words.join(isJapanese(wordlist) ? "\u3000" : " ");
105
121
  }
106
- var salt = (passphrase) => nfkd(`mnemonic${passphrase}`);
122
+ __name(entropyToMnemonic, "entropyToMnemonic");
123
+ var salt = /* @__PURE__ */ __name((passphrase) => nfkd(`mnemonic${passphrase}`), "salt");
107
124
  function mnemonicToSeed(mnemonic, passphrase = "") {
108
- return (0, import_pbkdf2.pbkdf2Async)(import_sha512.sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 });
125
+ return (0, import_pbkdf2.pbkdf2Async)(import_sha512.sha512, normalize(mnemonic).nfkd, salt(passphrase), {
126
+ c: 2048,
127
+ dkLen: 64
128
+ });
109
129
  }
130
+ __name(mnemonicToSeed, "mnemonicToSeed");
110
131
  function mnemonicToSeedSync(mnemonic, passphrase = "") {
111
- return (0, import_pbkdf2.pbkdf2)(import_sha512.sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 });
132
+ return (0, import_pbkdf2.pbkdf2)(import_sha512.sha512, normalize(mnemonic).nfkd, salt(passphrase), {
133
+ c: 2048,
134
+ dkLen: 64
135
+ });
112
136
  }
137
+ __name(mnemonicToSeedSync, "mnemonicToSeedSync");
113
138
  // Annotate the CommonJS export names for ESM import in node:
114
139
  0 && (module.exports = {
115
140
  entropyToMnemonic,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/wordlists/index.ts"],"sourcesContent":["/* eslint-disable import/no-internal-modules */\n/*! scure-bip39 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */\nimport assert from '@noble/hashes/_assert'\nimport { pbkdf2, pbkdf2Async } from '@noble/hashes/pbkdf2'\nimport { sha256 } from '@noble/hashes/sha256'\nimport { sha512 } from '@noble/hashes/sha512'\nimport { utils as baseUtils } from '@scure/base'\n\nexport * from './wordlists'\n\n// Japanese wordlist\nconst isJapanese = (wordlist: string[]) => wordlist[0] === '\\u3042\\u3044\\u3053\\u304F\\u3057\\u3093'\n\n// Normalization replaces equivalent sequences of characters\n// so that any two texts that are equivalent will be reduced\n// to the same sequence of code points, called the normal form of the original text.\nfunction nfkd(str: string) {\n if (typeof str !== 'string') throw new TypeError(`Invalid mnemonic type: ${typeof str}`)\n return str.normalize('NFKD')\n}\n\nfunction normalize(str: string) {\n const norm = nfkd(str)\n const words = norm.split(' ')\n if (![12, 15, 18, 21, 24].includes(words.length)) throw new Error('Invalid mnemonic')\n return { nfkd: norm, words }\n}\n\nfunction assertEntropy(entropy: Uint8Array) {\n assert.bytes(entropy, 16, 20, 24, 28, 32)\n}\n\nconst calcChecksum = (entropy: Uint8Array) => {\n // Checksum is ent.length/4 bits long\n const bitsLeft = 8 - entropy.length / 4\n // Zero rightmost \"bitsLeft\" bits in byte\n // For example: bitsLeft=4 val=10111101 -> 10110000\n return new Uint8Array([(sha256(entropy)[0] >> bitsLeft) << bitsLeft])\n}\n\nfunction getCoder(wordlist: string[]) {\n if (!Array.isArray(wordlist) || wordlist.length !== 2048 || typeof wordlist[0] !== 'string')\n throw new Error('Worlist: expected array of 2048 strings')\n for (const i of wordlist) {\n if (typeof i !== 'string') throw new Error(`Wordlist: non-string element: ${i}`)\n }\n return baseUtils.chain(baseUtils.checksum(1, calcChecksum), baseUtils.radix2(11, true), baseUtils.alphabet(wordlist))\n}\n\n/**\n * Reversible: Converts mnemonic string to raw entropy in form of byte array.\n * @param mnemonic 12-24 words\n * @param wordlist imported wordlist for specific language\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToEntropy(mnem, wordlist)\n * // Produces\n * new Uint8Array([\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToEntropy(mnemonic: string, wordlist: string[]): Uint8Array {\n const { words } = normalize(mnemonic)\n const entropy = getCoder(wordlist).decode(words)\n assertEntropy(entropy)\n return entropy\n}\n\n/**\n * Reversible: Converts raw entropy in form of byte array to mnemonic string.\n * @param entropy byte array\n * @param wordlist imported wordlist for specific language\n * @returns 12-24 words\n * @example\n * const ent = new Uint8Array([\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ]);\n * entropyToMnemonic(ent, wordlist);\n * // 'legal winner thank year wave sausage worth useful legal winner thank yellow'\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function entropyToMnemonic(entropy: Uint8Array, wordlist: string[]): string {\n assertEntropy(entropy)\n const words = getCoder(wordlist).encode(entropy)\n return words.join(isJapanese(wordlist) ? '\\u3000' : ' ')\n}\n\nconst salt = (passphrase: string) => nfkd(`mnemonic${passphrase}`)\n\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * await mnemonicToSeed(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToSeed(mnemonic: string, passphrase = '') {\n return pbkdf2Async(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 })\n}\n\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToSeedSync(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToSeedSync(mnemonic: string, passphrase = '') {\n return pbkdf2(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 })\n}\n","/* eslint-disable import/no-internal-modules */\nimport czech from '@scure/bip39/wordlists/czech'\nimport english from '@scure/bip39/wordlists/english'\nimport french from '@scure/bip39/wordlists/french'\nimport italian from '@scure/bip39/wordlists/italian'\nimport japanese from '@scure/bip39/wordlists/japanese'\nimport korean from '@scure/bip39/wordlists/korean'\nimport simplifiedChinese from '@scure/bip39/wordlists/simplified-chinese'\nimport spanish from '@scure/bip39/wordlists/spanish'\nimport traditionalChinese from '@scure/bip39/wordlists/traditional-chinese'\n\n/** @deprecated use @scure/bip39 instead */\nexport const wordlists = {\n czech,\n english,\n french,\n italian,\n japanese,\n korean,\n simplifiedChinese,\n spanish,\n traditionalChinese,\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAAmB;AACnB,oBAAoC;AACpC,oBAAuB;AACvB,oBAAuB;AACvB,kBAAmC;;;ACLnC,mBAAkB;AAClB,qBAAoB;AACpB,oBAAmB;AACnB,qBAAoB;AACpB,sBAAqB;AACrB,oBAAmB;AACnB,gCAA8B;AAC9B,qBAAoB;AACpB,iCAA+B;AAGxB,IAAM,YAAY;AAAA,EACvB,oBAAAA;AAAA,EACA,wBAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,wBAAAC;AAAA,EACA,0BAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,6CAAAC;AAAA,EACA,wBAAAC;AAAA,EACA,+CAAAC;AACF;;;ADXA,IAAM,aAAa,CAAC,aAAuB,SAAS,CAAC,MAAM;AAK3D,SAAS,KAAK,KAAa;AACzB,MAAI,OAAO,QAAQ,SAAU,OAAM,IAAI,UAAU,0BAA0B,OAAO,GAAG,EAAE;AACvF,SAAO,IAAI,UAAU,MAAM;AAC7B;AAEA,SAAS,UAAU,KAAa;AAC9B,QAAM,OAAO,KAAK,GAAG;AACrB,QAAM,QAAQ,KAAK,MAAM,GAAG;AAC5B,MAAI,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,SAAS,MAAM,MAAM,EAAG,OAAM,IAAI,MAAM,kBAAkB;AACpF,SAAO,EAAE,MAAM,MAAM,MAAM;AAC7B;AAEA,SAAS,cAAc,SAAqB;AAC1C,gBAAAC,QAAO,MAAM,SAAS,IAAI,IAAI,IAAI,IAAI,EAAE;AAC1C;AAEA,IAAM,eAAe,CAAC,YAAwB;AAE5C,QAAM,WAAW,IAAI,QAAQ,SAAS;AAGtC,SAAO,IAAI,WAAW,KAAE,sBAAO,OAAO,EAAE,CAAC,KAAK,YAAa,QAAQ,CAAC;AACtE;AAEA,SAAS,SAAS,UAAoB;AACpC,MAAI,CAAC,MAAM,QAAQ,QAAQ,KAAK,SAAS,WAAW,QAAQ,OAAO,SAAS,CAAC,MAAM;AACjF,UAAM,IAAI,MAAM,yCAAyC;AAC3D,aAAW,KAAK,UAAU;AACxB,QAAI,OAAO,MAAM,SAAU,OAAM,IAAI,MAAM,iCAAiC,CAAC,EAAE;AAAA,EACjF;AACA,SAAO,YAAAC,MAAU,MAAM,YAAAA,MAAU,SAAS,GAAG,YAAY,GAAG,YAAAA,MAAU,OAAO,IAAI,IAAI,GAAG,YAAAA,MAAU,SAAS,QAAQ,CAAC;AACtH;AAiBO,SAAS,kBAAkB,UAAkB,UAAgC;AAClF,QAAM,EAAE,MAAM,IAAI,UAAU,QAAQ;AACpC,QAAM,UAAU,SAAS,QAAQ,EAAE,OAAO,KAAK;AAC/C,gBAAc,OAAO;AACrB,SAAO;AACT;AAiBO,SAAS,kBAAkB,SAAqB,UAA4B;AACjF,gBAAc,OAAO;AACrB,QAAM,QAAQ,SAAS,QAAQ,EAAE,OAAO,OAAO;AAC/C,SAAO,MAAM,KAAK,WAAW,QAAQ,IAAI,WAAW,GAAG;AACzD;AAEA,IAAM,OAAO,CAAC,eAAuB,KAAK,WAAW,UAAU,EAAE;AAc1D,SAAS,eAAe,UAAkB,aAAa,IAAI;AAChE,aAAO,2BAAY,sBAAQ,UAAU,QAAQ,EAAE,MAAM,KAAK,UAAU,GAAG,EAAE,GAAG,MAAM,OAAO,GAAG,CAAC;AAC/F;AAcO,SAAS,mBAAmB,UAAkB,aAAa,IAAI;AACpE,aAAO,sBAAO,sBAAQ,UAAU,QAAQ,EAAE,MAAM,KAAK,UAAU,GAAG,EAAE,GAAG,MAAM,OAAO,GAAG,CAAC;AAC1F;","names":["czech","english","french","italian","japanese","korean","simplifiedChinese","spanish","traditionalChinese","assert","baseUtils"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/wordlists/index.ts"],"sourcesContent":["/* eslint-disable import/no-internal-modules */\n/*! scure-bip39 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */\nimport assert from '@noble/hashes/_assert'\nimport { pbkdf2, pbkdf2Async } from '@noble/hashes/pbkdf2'\nimport { sha256 } from '@noble/hashes/sha256'\nimport { sha512 } from '@noble/hashes/sha512'\nimport { utils as baseUtils } from '@scure/base'\n\nexport * from './wordlists/index.js'\n\n// Japanese wordlist\nconst isJapanese = (wordlist: string[]) => wordlist[0] === '\\u3042\\u3044\\u3053\\u304F\\u3057\\u3093'\n\n// Normalization replaces equivalent sequences of characters\n// so that any two texts that are equivalent will be reduced\n// to the same sequence of code points, called the normal form of the original text.\nfunction nfkd(str: string) {\n if (typeof str !== 'string') throw new TypeError(`Invalid mnemonic type: ${typeof str}`)\n return str.normalize('NFKD')\n}\n\nfunction normalize(str: string) {\n const norm = nfkd(str)\n const words = norm.split(' ')\n if (![12, 15, 18, 21, 24].includes(words.length)) throw new Error('Invalid mnemonic')\n return { nfkd: norm, words }\n}\n\nfunction assertEntropy(entropy: Uint8Array) {\n assert.bytes(entropy, 16, 20, 24, 28, 32)\n}\n\nconst calcChecksum = (entropy: Uint8Array) => {\n // Checksum is ent.length/4 bits long\n const bitsLeft = 8 - entropy.length / 4\n // Zero rightmost \"bitsLeft\" bits in byte\n // For example: bitsLeft=4 val=10111101 -> 10110000\n return new Uint8Array([(sha256(entropy)[0] >> bitsLeft) << bitsLeft])\n}\n\nfunction getCoder(wordlist: string[]) {\n if (!Array.isArray(wordlist) || wordlist.length !== 2048 || typeof wordlist[0] !== 'string')\n throw new Error('Worlist: expected array of 2048 strings')\n for (const i of wordlist) {\n if (typeof i !== 'string') throw new Error(`Wordlist: non-string element: ${i}`)\n }\n return baseUtils.chain(baseUtils.checksum(1, calcChecksum), baseUtils.radix2(11, true), baseUtils.alphabet(wordlist))\n}\n\n/**\n * Reversible: Converts mnemonic string to raw entropy in form of byte array.\n * @param mnemonic 12-24 words\n * @param wordlist imported wordlist for specific language\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToEntropy(mnem, wordlist)\n * // Produces\n * new Uint8Array([\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToEntropy(mnemonic: string, wordlist: string[]): Uint8Array {\n const { words } = normalize(mnemonic)\n const entropy = getCoder(wordlist).decode(words)\n assertEntropy(entropy)\n return entropy\n}\n\n/**\n * Reversible: Converts raw entropy in form of byte array to mnemonic string.\n * @param entropy byte array\n * @param wordlist imported wordlist for specific language\n * @returns 12-24 words\n * @example\n * const ent = new Uint8Array([\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ]);\n * entropyToMnemonic(ent, wordlist);\n * // 'legal winner thank year wave sausage worth useful legal winner thank yellow'\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function entropyToMnemonic(entropy: Uint8Array, wordlist: string[]): string {\n assertEntropy(entropy)\n const words = getCoder(wordlist).encode(entropy)\n return words.join(isJapanese(wordlist) ? '\\u3000' : ' ')\n}\n\nconst salt = (passphrase: string) => nfkd(`mnemonic${passphrase}`)\n\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * await mnemonicToSeed(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToSeed(mnemonic: string, passphrase = '') {\n return pbkdf2Async(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 })\n}\n\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToSeedSync(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToSeedSync(mnemonic: string, passphrase = '') {\n return pbkdf2(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 })\n}\n","/* eslint-disable import/no-internal-modules */\nimport czech from '@scure/bip39/wordlists/czech'\nimport english from '@scure/bip39/wordlists/english'\nimport french from '@scure/bip39/wordlists/french'\nimport italian from '@scure/bip39/wordlists/italian'\nimport japanese from '@scure/bip39/wordlists/japanese'\nimport korean from '@scure/bip39/wordlists/korean'\nimport simplifiedChinese from '@scure/bip39/wordlists/simplified-chinese'\nimport spanish from '@scure/bip39/wordlists/spanish'\nimport traditionalChinese from '@scure/bip39/wordlists/traditional-chinese'\n\n/** @deprecated use @scure/bip39 instead */\nexport const wordlists = {\n czech,\n english,\n french,\n italian,\n japanese,\n korean,\n simplifiedChinese,\n spanish,\n traditionalChinese,\n}\n"],"mappings":"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","names":["wordlists","czech","english","french","italian","japanese","korean","simplifiedChinese","spanish","traditionalChinese","isJapanese","wordlist","nfkd","str","TypeError","normalize","norm","words","split","includes","length","Error","assertEntropy","entropy","assert","bytes","calcChecksum","bitsLeft","Uint8Array","sha256","getCoder","Array","isArray","i","baseUtils","chain","checksum","radix2","alphabet","mnemonicToEntropy","mnemonic","decode","entropyToMnemonic","encode","join","salt","passphrase","mnemonicToSeed","pbkdf2Async","sha512","c","dkLen","mnemonicToSeedSync","pbkdf2"]}
@@ -1,4 +1,4 @@
1
- export * from './wordlists';
1
+ export * from './wordlists/index.js';
2
2
  export declare function mnemonicToEntropy(mnemonic: string, wordlist: string[]): Uint8Array;
3
3
  export declare function entropyToMnemonic(entropy: Uint8Array, wordlist: string[]): string;
4
4
  export declare function mnemonicToSeed(mnemonic: string, passphrase?: string): Promise<Uint8Array>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,aAAa,CAAA;AAwD3B,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,CAKlF;AAiBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAIjF;AAgBD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,uBAE/D;AAcD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,cAEnE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,sBAAsB,CAAA;AAwDpC,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,CAKlF;AAiBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAIjF;AAgBD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,uBAE/D;AAcD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,cAEnE"}
@@ -1,4 +1,4 @@
1
- export * from './wordlists';
1
+ export * from './wordlists/index.js';
2
2
  export declare function mnemonicToEntropy(mnemonic: string, wordlist: string[]): Uint8Array;
3
3
  export declare function entropyToMnemonic(entropy: Uint8Array, wordlist: string[]): string;
4
4
  export declare function mnemonicToSeed(mnemonic: string, passphrase?: string): Promise<Uint8Array>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,aAAa,CAAA;AAwD3B,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,CAKlF;AAiBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAIjF;AAgBD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,uBAE/D;AAcD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,cAEnE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,sBAAsB,CAAA;AAwDpC,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,CAKlF;AAiBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAIjF;AAgBD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,uBAE/D;AAcD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,cAEnE"}
@@ -1,4 +1,4 @@
1
- export * from './wordlists';
1
+ export * from './wordlists/index.js';
2
2
  export declare function mnemonicToEntropy(mnemonic: string, wordlist: string[]): Uint8Array;
3
3
  export declare function entropyToMnemonic(entropy: Uint8Array, wordlist: string[]): string;
4
4
  export declare function mnemonicToSeed(mnemonic: string, passphrase?: string): Promise<Uint8Array>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,aAAa,CAAA;AAwD3B,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,CAKlF;AAiBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAIjF;AAgBD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,uBAE/D;AAcD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,cAEnE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,sBAAsB,CAAA;AAwDpC,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,CAKlF;AAiBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAIjF;AAgBD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,uBAE/D;AAcD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAK,cAEnE"}
@@ -1,3 +1,6 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+
1
4
  // src/index.ts
2
5
  import assert from "@noble/hashes/_assert";
3
6
  import { pbkdf2, pbkdf2Async } from "@noble/hashes/pbkdf2";
@@ -28,50 +31,74 @@ var wordlists = {
28
31
  };
29
32
 
30
33
  // src/index.ts
31
- var isJapanese = (wordlist) => wordlist[0] === "\u3042\u3044\u3053\u304F\u3057\u3093";
34
+ var isJapanese = /* @__PURE__ */ __name((wordlist) => wordlist[0] === "\u3042\u3044\u3053\u304F\u3057\u3093", "isJapanese");
32
35
  function nfkd(str) {
33
36
  if (typeof str !== "string") throw new TypeError(`Invalid mnemonic type: ${typeof str}`);
34
37
  return str.normalize("NFKD");
35
38
  }
39
+ __name(nfkd, "nfkd");
36
40
  function normalize(str) {
37
41
  const norm = nfkd(str);
38
42
  const words = norm.split(" ");
39
- if (![12, 15, 18, 21, 24].includes(words.length)) throw new Error("Invalid mnemonic");
40
- return { nfkd: norm, words };
43
+ if (![
44
+ 12,
45
+ 15,
46
+ 18,
47
+ 21,
48
+ 24
49
+ ].includes(words.length)) throw new Error("Invalid mnemonic");
50
+ return {
51
+ nfkd: norm,
52
+ words
53
+ };
41
54
  }
55
+ __name(normalize, "normalize");
42
56
  function assertEntropy(entropy) {
43
57
  assert.bytes(entropy, 16, 20, 24, 28, 32);
44
58
  }
45
- var calcChecksum = (entropy) => {
59
+ __name(assertEntropy, "assertEntropy");
60
+ var calcChecksum = /* @__PURE__ */ __name((entropy) => {
46
61
  const bitsLeft = 8 - entropy.length / 4;
47
- return new Uint8Array([sha256(entropy)[0] >> bitsLeft << bitsLeft]);
48
- };
62
+ return new Uint8Array([
63
+ sha256(entropy)[0] >> bitsLeft << bitsLeft
64
+ ]);
65
+ }, "calcChecksum");
49
66
  function getCoder(wordlist) {
50
- if (!Array.isArray(wordlist) || wordlist.length !== 2048 || typeof wordlist[0] !== "string")
51
- throw new Error("Worlist: expected array of 2048 strings");
67
+ if (!Array.isArray(wordlist) || wordlist.length !== 2048 || typeof wordlist[0] !== "string") throw new Error("Worlist: expected array of 2048 strings");
52
68
  for (const i of wordlist) {
53
69
  if (typeof i !== "string") throw new Error(`Wordlist: non-string element: ${i}`);
54
70
  }
55
71
  return baseUtils.chain(baseUtils.checksum(1, calcChecksum), baseUtils.radix2(11, true), baseUtils.alphabet(wordlist));
56
72
  }
73
+ __name(getCoder, "getCoder");
57
74
  function mnemonicToEntropy(mnemonic, wordlist) {
58
75
  const { words } = normalize(mnemonic);
59
76
  const entropy = getCoder(wordlist).decode(words);
60
77
  assertEntropy(entropy);
61
78
  return entropy;
62
79
  }
80
+ __name(mnemonicToEntropy, "mnemonicToEntropy");
63
81
  function entropyToMnemonic(entropy, wordlist) {
64
82
  assertEntropy(entropy);
65
83
  const words = getCoder(wordlist).encode(entropy);
66
84
  return words.join(isJapanese(wordlist) ? "\u3000" : " ");
67
85
  }
68
- var salt = (passphrase) => nfkd(`mnemonic${passphrase}`);
86
+ __name(entropyToMnemonic, "entropyToMnemonic");
87
+ var salt = /* @__PURE__ */ __name((passphrase) => nfkd(`mnemonic${passphrase}`), "salt");
69
88
  function mnemonicToSeed(mnemonic, passphrase = "") {
70
- return pbkdf2Async(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 });
89
+ return pbkdf2Async(sha512, normalize(mnemonic).nfkd, salt(passphrase), {
90
+ c: 2048,
91
+ dkLen: 64
92
+ });
71
93
  }
94
+ __name(mnemonicToSeed, "mnemonicToSeed");
72
95
  function mnemonicToSeedSync(mnemonic, passphrase = "") {
73
- return pbkdf2(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 });
96
+ return pbkdf2(sha512, normalize(mnemonic).nfkd, salt(passphrase), {
97
+ c: 2048,
98
+ dkLen: 64
99
+ });
74
100
  }
101
+ __name(mnemonicToSeedSync, "mnemonicToSeedSync");
75
102
  export {
76
103
  entropyToMnemonic,
77
104
  mnemonicToEntropy,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/wordlists/index.ts"],"sourcesContent":["/* eslint-disable import/no-internal-modules */\n/*! scure-bip39 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */\nimport assert from '@noble/hashes/_assert'\nimport { pbkdf2, pbkdf2Async } from '@noble/hashes/pbkdf2'\nimport { sha256 } from '@noble/hashes/sha256'\nimport { sha512 } from '@noble/hashes/sha512'\nimport { utils as baseUtils } from '@scure/base'\n\nexport * from './wordlists'\n\n// Japanese wordlist\nconst isJapanese = (wordlist: string[]) => wordlist[0] === '\\u3042\\u3044\\u3053\\u304F\\u3057\\u3093'\n\n// Normalization replaces equivalent sequences of characters\n// so that any two texts that are equivalent will be reduced\n// to the same sequence of code points, called the normal form of the original text.\nfunction nfkd(str: string) {\n if (typeof str !== 'string') throw new TypeError(`Invalid mnemonic type: ${typeof str}`)\n return str.normalize('NFKD')\n}\n\nfunction normalize(str: string) {\n const norm = nfkd(str)\n const words = norm.split(' ')\n if (![12, 15, 18, 21, 24].includes(words.length)) throw new Error('Invalid mnemonic')\n return { nfkd: norm, words }\n}\n\nfunction assertEntropy(entropy: Uint8Array) {\n assert.bytes(entropy, 16, 20, 24, 28, 32)\n}\n\nconst calcChecksum = (entropy: Uint8Array) => {\n // Checksum is ent.length/4 bits long\n const bitsLeft = 8 - entropy.length / 4\n // Zero rightmost \"bitsLeft\" bits in byte\n // For example: bitsLeft=4 val=10111101 -> 10110000\n return new Uint8Array([(sha256(entropy)[0] >> bitsLeft) << bitsLeft])\n}\n\nfunction getCoder(wordlist: string[]) {\n if (!Array.isArray(wordlist) || wordlist.length !== 2048 || typeof wordlist[0] !== 'string')\n throw new Error('Worlist: expected array of 2048 strings')\n for (const i of wordlist) {\n if (typeof i !== 'string') throw new Error(`Wordlist: non-string element: ${i}`)\n }\n return baseUtils.chain(baseUtils.checksum(1, calcChecksum), baseUtils.radix2(11, true), baseUtils.alphabet(wordlist))\n}\n\n/**\n * Reversible: Converts mnemonic string to raw entropy in form of byte array.\n * @param mnemonic 12-24 words\n * @param wordlist imported wordlist for specific language\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToEntropy(mnem, wordlist)\n * // Produces\n * new Uint8Array([\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToEntropy(mnemonic: string, wordlist: string[]): Uint8Array {\n const { words } = normalize(mnemonic)\n const entropy = getCoder(wordlist).decode(words)\n assertEntropy(entropy)\n return entropy\n}\n\n/**\n * Reversible: Converts raw entropy in form of byte array to mnemonic string.\n * @param entropy byte array\n * @param wordlist imported wordlist for specific language\n * @returns 12-24 words\n * @example\n * const ent = new Uint8Array([\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ]);\n * entropyToMnemonic(ent, wordlist);\n * // 'legal winner thank year wave sausage worth useful legal winner thank yellow'\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function entropyToMnemonic(entropy: Uint8Array, wordlist: string[]): string {\n assertEntropy(entropy)\n const words = getCoder(wordlist).encode(entropy)\n return words.join(isJapanese(wordlist) ? '\\u3000' : ' ')\n}\n\nconst salt = (passphrase: string) => nfkd(`mnemonic${passphrase}`)\n\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * await mnemonicToSeed(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToSeed(mnemonic: string, passphrase = '') {\n return pbkdf2Async(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 })\n}\n\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToSeedSync(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToSeedSync(mnemonic: string, passphrase = '') {\n return pbkdf2(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 })\n}\n","/* eslint-disable import/no-internal-modules */\nimport czech from '@scure/bip39/wordlists/czech'\nimport english from '@scure/bip39/wordlists/english'\nimport french from '@scure/bip39/wordlists/french'\nimport italian from '@scure/bip39/wordlists/italian'\nimport japanese from '@scure/bip39/wordlists/japanese'\nimport korean from '@scure/bip39/wordlists/korean'\nimport simplifiedChinese from '@scure/bip39/wordlists/simplified-chinese'\nimport spanish from '@scure/bip39/wordlists/spanish'\nimport traditionalChinese from '@scure/bip39/wordlists/traditional-chinese'\n\n/** @deprecated use @scure/bip39 instead */\nexport const wordlists = {\n czech,\n english,\n french,\n italian,\n japanese,\n korean,\n simplifiedChinese,\n spanish,\n traditionalChinese,\n}\n"],"mappings":";AAEA,OAAO,YAAY;AACnB,SAAS,QAAQ,mBAAmB;AACpC,SAAS,cAAc;AACvB,SAAS,cAAc;AACvB,SAAS,SAAS,iBAAiB;;;ACLnC,OAAO,WAAW;AAClB,OAAO,aAAa;AACpB,OAAO,YAAY;AACnB,OAAO,aAAa;AACpB,OAAO,cAAc;AACrB,OAAO,YAAY;AACnB,OAAO,uBAAuB;AAC9B,OAAO,aAAa;AACpB,OAAO,wBAAwB;AAGxB,IAAM,YAAY;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ADXA,IAAM,aAAa,CAAC,aAAuB,SAAS,CAAC,MAAM;AAK3D,SAAS,KAAK,KAAa;AACzB,MAAI,OAAO,QAAQ,SAAU,OAAM,IAAI,UAAU,0BAA0B,OAAO,GAAG,EAAE;AACvF,SAAO,IAAI,UAAU,MAAM;AAC7B;AAEA,SAAS,UAAU,KAAa;AAC9B,QAAM,OAAO,KAAK,GAAG;AACrB,QAAM,QAAQ,KAAK,MAAM,GAAG;AAC5B,MAAI,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,SAAS,MAAM,MAAM,EAAG,OAAM,IAAI,MAAM,kBAAkB;AACpF,SAAO,EAAE,MAAM,MAAM,MAAM;AAC7B;AAEA,SAAS,cAAc,SAAqB;AAC1C,SAAO,MAAM,SAAS,IAAI,IAAI,IAAI,IAAI,EAAE;AAC1C;AAEA,IAAM,eAAe,CAAC,YAAwB;AAE5C,QAAM,WAAW,IAAI,QAAQ,SAAS;AAGtC,SAAO,IAAI,WAAW,CAAE,OAAO,OAAO,EAAE,CAAC,KAAK,YAAa,QAAQ,CAAC;AACtE;AAEA,SAAS,SAAS,UAAoB;AACpC,MAAI,CAAC,MAAM,QAAQ,QAAQ,KAAK,SAAS,WAAW,QAAQ,OAAO,SAAS,CAAC,MAAM;AACjF,UAAM,IAAI,MAAM,yCAAyC;AAC3D,aAAW,KAAK,UAAU;AACxB,QAAI,OAAO,MAAM,SAAU,OAAM,IAAI,MAAM,iCAAiC,CAAC,EAAE;AAAA,EACjF;AACA,SAAO,UAAU,MAAM,UAAU,SAAS,GAAG,YAAY,GAAG,UAAU,OAAO,IAAI,IAAI,GAAG,UAAU,SAAS,QAAQ,CAAC;AACtH;AAiBO,SAAS,kBAAkB,UAAkB,UAAgC;AAClF,QAAM,EAAE,MAAM,IAAI,UAAU,QAAQ;AACpC,QAAM,UAAU,SAAS,QAAQ,EAAE,OAAO,KAAK;AAC/C,gBAAc,OAAO;AACrB,SAAO;AACT;AAiBO,SAAS,kBAAkB,SAAqB,UAA4B;AACjF,gBAAc,OAAO;AACrB,QAAM,QAAQ,SAAS,QAAQ,EAAE,OAAO,OAAO;AAC/C,SAAO,MAAM,KAAK,WAAW,QAAQ,IAAI,WAAW,GAAG;AACzD;AAEA,IAAM,OAAO,CAAC,eAAuB,KAAK,WAAW,UAAU,EAAE;AAc1D,SAAS,eAAe,UAAkB,aAAa,IAAI;AAChE,SAAO,YAAY,QAAQ,UAAU,QAAQ,EAAE,MAAM,KAAK,UAAU,GAAG,EAAE,GAAG,MAAM,OAAO,GAAG,CAAC;AAC/F;AAcO,SAAS,mBAAmB,UAAkB,aAAa,IAAI;AACpE,SAAO,OAAO,QAAQ,UAAU,QAAQ,EAAE,MAAM,KAAK,UAAU,GAAG,EAAE,GAAG,MAAM,OAAO,GAAG,CAAC;AAC1F;","names":[]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/wordlists/index.ts"],"sourcesContent":["/* eslint-disable import/no-internal-modules */\n/*! scure-bip39 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */\nimport assert from '@noble/hashes/_assert'\nimport { pbkdf2, pbkdf2Async } from '@noble/hashes/pbkdf2'\nimport { sha256 } from '@noble/hashes/sha256'\nimport { sha512 } from '@noble/hashes/sha512'\nimport { utils as baseUtils } from '@scure/base'\n\nexport * from './wordlists/index.js'\n\n// Japanese wordlist\nconst isJapanese = (wordlist: string[]) => wordlist[0] === '\\u3042\\u3044\\u3053\\u304F\\u3057\\u3093'\n\n// Normalization replaces equivalent sequences of characters\n// so that any two texts that are equivalent will be reduced\n// to the same sequence of code points, called the normal form of the original text.\nfunction nfkd(str: string) {\n if (typeof str !== 'string') throw new TypeError(`Invalid mnemonic type: ${typeof str}`)\n return str.normalize('NFKD')\n}\n\nfunction normalize(str: string) {\n const norm = nfkd(str)\n const words = norm.split(' ')\n if (![12, 15, 18, 21, 24].includes(words.length)) throw new Error('Invalid mnemonic')\n return { nfkd: norm, words }\n}\n\nfunction assertEntropy(entropy: Uint8Array) {\n assert.bytes(entropy, 16, 20, 24, 28, 32)\n}\n\nconst calcChecksum = (entropy: Uint8Array) => {\n // Checksum is ent.length/4 bits long\n const bitsLeft = 8 - entropy.length / 4\n // Zero rightmost \"bitsLeft\" bits in byte\n // For example: bitsLeft=4 val=10111101 -> 10110000\n return new Uint8Array([(sha256(entropy)[0] >> bitsLeft) << bitsLeft])\n}\n\nfunction getCoder(wordlist: string[]) {\n if (!Array.isArray(wordlist) || wordlist.length !== 2048 || typeof wordlist[0] !== 'string')\n throw new Error('Worlist: expected array of 2048 strings')\n for (const i of wordlist) {\n if (typeof i !== 'string') throw new Error(`Wordlist: non-string element: ${i}`)\n }\n return baseUtils.chain(baseUtils.checksum(1, calcChecksum), baseUtils.radix2(11, true), baseUtils.alphabet(wordlist))\n}\n\n/**\n * Reversible: Converts mnemonic string to raw entropy in form of byte array.\n * @param mnemonic 12-24 words\n * @param wordlist imported wordlist for specific language\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToEntropy(mnem, wordlist)\n * // Produces\n * new Uint8Array([\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToEntropy(mnemonic: string, wordlist: string[]): Uint8Array {\n const { words } = normalize(mnemonic)\n const entropy = getCoder(wordlist).decode(words)\n assertEntropy(entropy)\n return entropy\n}\n\n/**\n * Reversible: Converts raw entropy in form of byte array to mnemonic string.\n * @param entropy byte array\n * @param wordlist imported wordlist for specific language\n * @returns 12-24 words\n * @example\n * const ent = new Uint8Array([\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ]);\n * entropyToMnemonic(ent, wordlist);\n * // 'legal winner thank year wave sausage worth useful legal winner thank yellow'\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function entropyToMnemonic(entropy: Uint8Array, wordlist: string[]): string {\n assertEntropy(entropy)\n const words = getCoder(wordlist).encode(entropy)\n return words.join(isJapanese(wordlist) ? '\\u3000' : ' ')\n}\n\nconst salt = (passphrase: string) => nfkd(`mnemonic${passphrase}`)\n\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * await mnemonicToSeed(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToSeed(mnemonic: string, passphrase = '') {\n return pbkdf2Async(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 })\n}\n\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToSeedSync(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\n\n/** @deprecated use @scure/bip39 instead */\nexport function mnemonicToSeedSync(mnemonic: string, passphrase = '') {\n return pbkdf2(sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 })\n}\n","/* eslint-disable import/no-internal-modules */\nimport czech from '@scure/bip39/wordlists/czech'\nimport english from '@scure/bip39/wordlists/english'\nimport french from '@scure/bip39/wordlists/french'\nimport italian from '@scure/bip39/wordlists/italian'\nimport japanese from '@scure/bip39/wordlists/japanese'\nimport korean from '@scure/bip39/wordlists/korean'\nimport simplifiedChinese from '@scure/bip39/wordlists/simplified-chinese'\nimport spanish from '@scure/bip39/wordlists/spanish'\nimport traditionalChinese from '@scure/bip39/wordlists/traditional-chinese'\n\n/** @deprecated use @scure/bip39 instead */\nexport const wordlists = {\n czech,\n english,\n french,\n italian,\n japanese,\n korean,\n simplifiedChinese,\n spanish,\n traditionalChinese,\n}\n"],"mappings":"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","names":["assert","pbkdf2","pbkdf2Async","sha256","sha512","utils","baseUtils","czech","english","french","italian","japanese","korean","simplifiedChinese","spanish","traditionalChinese","wordlists","isJapanese","wordlist","nfkd","str","TypeError","normalize","norm","words","split","includes","length","Error","assertEntropy","entropy","assert","bytes","calcChecksum","bitsLeft","Uint8Array","sha256","getCoder","Array","isArray","i","baseUtils","chain","checksum","radix2","alphabet","mnemonicToEntropy","mnemonic","decode","entropyToMnemonic","encode","join","salt","passphrase","mnemonicToSeed","pbkdf2Async","sha512","c","dkLen","mnemonicToSeedSync","pbkdf2"]}
package/package.json CHANGED
@@ -58,6 +58,6 @@
58
58
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
59
59
  },
60
60
  "sideEffects": false,
61
- "version": "2.109.0",
61
+ "version": "2.110.0",
62
62
  "type": "module"
63
63
  }
package/src/index.ts CHANGED
@@ -6,7 +6,7 @@ import { sha256 } from '@noble/hashes/sha256'
6
6
  import { sha512 } from '@noble/hashes/sha512'
7
7
  import { utils as baseUtils } from '@scure/base'
8
8
 
9
- export * from './wordlists'
9
+ export * from './wordlists/index.js'
10
10
 
11
11
  // Japanese wordlist
12
12
  const isJapanese = (wordlist: string[]) => wordlist[0] === '\u3042\u3044\u3053\u304F\u3057\u3093'