mainnet-js 2.7.25 → 2.7.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/wallet/Wif.ts CHANGED
@@ -1,10 +1,5 @@
1
1
  //#region Imports
2
- import {
3
- encodeHdPublicKey,
4
- HdKeyNetwork,
5
- hexToBin,
6
- secp256k1,
7
- } from "@bitauth/libauth";
2
+ import { deriveSeedFromBip39Mnemonic, encodeHdPublicKey, generateBip39Mnemonic, HdKeyNetwork, hexToBin, secp256k1 } from "@bitauth/libauth";
8
3
 
9
4
  import {
10
5
  binToHex,
@@ -17,7 +12,6 @@ import {
17
12
  generatePrivateKey,
18
13
  } from "@bitauth/libauth";
19
14
 
20
- import { generateMnemonic, mnemonicToSeedSync } from "@scure/bip39";
21
15
  import { NetworkType } from "../enum.js";
22
16
 
23
17
  import { PrivateKeyI } from "../interface.js";
@@ -259,10 +253,10 @@ export class Wallet extends BaseWallet {
259
253
 
260
254
  private async _generateMnemonic() {
261
255
  // @ts-ignore
262
- this.mnemonic = generateMnemonic(Config.getWordlist());
256
+ this.mnemonic = generateBip39Mnemonic();
263
257
  if (this.mnemonic.length == 0)
264
258
  throw Error("refusing to create wallet from empty mnemonic");
265
- const seed = mnemonicToSeedSync(this.mnemonic);
259
+ const seed = deriveSeedFromBip39Mnemonic(this.mnemonic);
266
260
  checkForEmptySeed(seed);
267
261
  const network = this.isTestnet ? "testnet" : "mainnet";
268
262
  // @ts-ignore
@@ -353,7 +347,7 @@ export class Wallet extends BaseWallet {
353
347
 
354
348
  if (this.mnemonic.length == 0)
355
349
  throw Error("refusing to create wallet from empty mnemonic");
356
- const seed = mnemonicToSeedSync(this.mnemonic);
350
+ const seed = deriveSeedFromBip39Mnemonic(this.mnemonic);
357
351
  checkForEmptySeed(seed);
358
352
  const hdNode = deriveHdPrivateNodeFromSeed(seed, {
359
353
  assumeValidity: true, // TODO: we should switch to libauth's BIP39 implementation and set this to false
@@ -396,7 +390,7 @@ export class Wallet extends BaseWallet {
396
390
  public async deriveHdPaths(hdPaths: string[]): Promise<any[]> {
397
391
  if (!this.mnemonic)
398
392
  throw Error("refusing to create wallet from empty mnemonic");
399
- const seed = mnemonicToSeedSync(this.mnemonic);
393
+ const seed = deriveSeedFromBip39Mnemonic(this.mnemonic);
400
394
  checkForEmptySeed(seed);
401
395
  const hdNode = deriveHdPrivateNodeFromSeed(seed, {
402
396
  assumeValidity: true, // TODO: we should switch to libauth's BIP39 implementation and set this to false
@@ -1,81 +0,0 @@
1
- import { Config } from "./config.js";
2
- import { WORDLIST_CHECKSUMS } from "./constant.js";
3
- import { sha256, binToHex, utf8ToBin } from "@bitauth/libauth";
4
- import { wordlist as czech } from "@scure/bip39/wordlists/czech";
5
- import { wordlist as english } from "@scure/bip39/wordlists/english";
6
- import { wordlist as french } from "@scure/bip39/wordlists/french";
7
- import { wordlist as italian } from "@scure/bip39/wordlists/italian";
8
- import { wordlist as japanese } from "@scure/bip39/wordlists/japanese";
9
- import { wordlist as korean } from "@scure/bip39/wordlists/korean";
10
- import { wordlist as portuguese } from "@scure/bip39/wordlists/portuguese";
11
- import { wordlist as simplifiedChinese } from "@scure/bip39/wordlists/simplified-chinese";
12
- import { wordlist as spanish } from "@scure/bip39/wordlists/spanish";
13
- import { wordlist as traditionalChinese } from "@scure/bip39/wordlists/traditional-chinese";
14
-
15
- test("Should check wordlist checksums", () => {
16
- let wordlists = {
17
- czech: czech,
18
- english: english,
19
- french: french,
20
- italian: italian,
21
- japanese: japanese,
22
- korean: korean,
23
- portuguese: portuguese,
24
- simplifiedChinese: simplifiedChinese,
25
- spanish: spanish,
26
- traditionalChinese: traditionalChinese,
27
- };
28
- for (let l in wordlists) {
29
- let checksum = binToHex(sha256.hash(utf8ToBin(wordlists[l].join(" "))));
30
- expect(WORDLIST_CHECKSUMS[l]).toBe(checksum);
31
- }
32
- });
33
-
34
- test("Should get the default wordlist", () => {
35
- expect(Config.getWordlist().shift()).toBe("abandon");
36
- expect(Config.getWordlist().shift()).toBe("abandon");
37
- expect(Config.getWordlist().pop()).toBe("zoo");
38
- expect(Config.getWordlist().pop()).toBe("zoo");
39
- });
40
-
41
- test("Should get the default wordlist", () => {
42
- Config.setWordlist(czech);
43
- expect(Config.getWordlist().shift()).toBe("abdikace");
44
- expect(Config.getWordlist().pop()).toBe("zvyk");
45
- });
46
-
47
- test("Expect Error setting a bad wordlist to the config", async () => {
48
- expect.assertions(1);
49
- try {
50
- let badList = [...english];
51
- badList.pop();
52
- expect(Config.setWordlist(badList));
53
- } catch (e: any) {
54
- expect(e.message).toBe(
55
- "Error matching provided wordlist to a known list, see @scure/bip39/wordlists"
56
- );
57
- }
58
- });
59
-
60
- test("Should get the default wordlist", () => {
61
- Config.setWordlist(czech);
62
- expect(Config.getWordlist().shift()).toBe("abdikace");
63
- Config.setWordlist(english);
64
- expect(Config.getWordlist().shift()).toBe("abandon");
65
- Config.setWordlist(french);
66
- expect(Config.getWordlist().shift()).toBe("abaisser");
67
- Config.setWordlist(italian);
68
- expect(Config.getWordlist().shift()).toBe("abaco");
69
- Config.setWordlist(japanese);
70
- expect(Config.getWordlist().shift()).toBe("あいこくしん");
71
- Config.setWordlist(korean);
72
- expect(Config.getWordlist().shift()).toBe("가격");
73
- Config.setWordlist(portuguese);
74
- expect(Config.getWordlist().shift()).toBe("abacate");
75
- Config.setWordlist(simplifiedChinese);
76
- expect(Config.getWordlist().shift()).toBe("的");
77
- Config.setWordlist(spanish);
78
- expect(Config.getWordlist().shift()).toBe("ábaco");
79
- Config.setWordlist(traditionalChinese);
80
- expect(Config.getWordlist().shift()).toBe("的");
81
- });