mainnet-js 0.4.30 → 0.4.31

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.
Files changed (62) hide show
  1. package/dist/index.html +1 -1
  2. package/dist/main/constant.d.ts +1 -0
  3. package/dist/main/constant.js +17 -1
  4. package/dist/main/constant.js.map +1 -1
  5. package/dist/main/util/getAddrsByXpubKey.d.ts +22 -0
  6. package/dist/main/util/getAddrsByXpubKey.js +79 -0
  7. package/dist/main/util/getAddrsByXpubKey.js.map +1 -0
  8. package/dist/main/util/getXPubKey.d.ts +1 -0
  9. package/dist/main/util/getXPubKey.js +26 -0
  10. package/dist/main/util/getXPubKey.js.map +1 -0
  11. package/dist/main/util/index.d.ts +5 -3
  12. package/dist/main/util/index.js +13 -6
  13. package/dist/main/util/index.js.map +1 -1
  14. package/dist/main/wallet/Base.d.ts +3 -1
  15. package/dist/main/wallet/Base.js +3 -1
  16. package/dist/main/wallet/Base.js.map +1 -1
  17. package/dist/main/wallet/Wif.d.ts +4 -0
  18. package/dist/main/wallet/Wif.js +72 -3
  19. package/dist/main/wallet/Wif.js.map +1 -1
  20. package/dist/main/wallet/interface.d.ts +4 -0
  21. package/dist/main/wallet/model.d.ts +16 -0
  22. package/dist/main/wallet/model.js +18 -1
  23. package/dist/main/wallet/model.js.map +1 -1
  24. package/dist/mainnet-0.4.31.js +2 -0
  25. package/dist/{mainnet-0.4.30.js.LICENSE.txt → mainnet-0.4.31.js.LICENSE.txt} +0 -0
  26. package/dist/module/constant.d.ts +1 -0
  27. package/dist/module/constant.js +16 -0
  28. package/dist/module/constant.js.map +1 -1
  29. package/dist/module/util/getAddrsByXpubKey.d.ts +22 -0
  30. package/dist/module/util/getAddrsByXpubKey.js +71 -0
  31. package/dist/module/util/getAddrsByXpubKey.js.map +1 -0
  32. package/dist/module/util/getXPubKey.d.ts +1 -0
  33. package/dist/module/util/getXPubKey.js +22 -0
  34. package/dist/module/util/getXPubKey.js.map +1 -0
  35. package/dist/module/util/index.d.ts +5 -3
  36. package/dist/module/util/index.js +5 -3
  37. package/dist/module/util/index.js.map +1 -1
  38. package/dist/module/wallet/Base.d.ts +3 -1
  39. package/dist/module/wallet/Base.js +3 -1
  40. package/dist/module/wallet/Base.js.map +1 -1
  41. package/dist/module/wallet/Wif.d.ts +4 -0
  42. package/dist/module/wallet/Wif.js +76 -7
  43. package/dist/module/wallet/Wif.js.map +1 -1
  44. package/dist/module/wallet/interface.d.ts +4 -0
  45. package/dist/module/wallet/model.d.ts +16 -0
  46. package/dist/module/wallet/model.js +16 -0
  47. package/dist/module/wallet/model.js.map +1 -1
  48. package/dist/tsconfig.browser.tsbuildinfo +1 -1
  49. package/dist/tsconfig.tsbuildinfo +1 -1
  50. package/package.json +1 -1
  51. package/src/constant.ts +17 -0
  52. package/src/util/getAddrsByXpubKey.test.ts +115 -0
  53. package/src/util/getAddrsByXpubKey.ts +98 -0
  54. package/src/util/getXPubKey.ts +36 -0
  55. package/src/util/index.ts +10 -3
  56. package/src/wallet/Base.ts +4 -1
  57. package/src/wallet/Wif.test.ts +173 -1
  58. package/src/wallet/Wif.ts +100 -15
  59. package/src/wallet/createWallet.test.ts +2 -0
  60. package/src/wallet/interface.ts +4 -0
  61. package/src/wallet/model.ts +22 -0
  62. package/dist/mainnet-0.4.30.js +0 -2
@@ -2,3 +2,4 @@ export declare const DELIMITER = ":";
2
2
  export declare const DUST_UTXO_THRESHOLD = 546;
3
3
  export declare const MEMPOOL_CHAIN_LIMIT = 50;
4
4
  export declare const EXCHANGE_RATE_TTL = 250000;
5
+ export declare const DERIVATION_PATHS: string[];
@@ -5,4 +5,20 @@ export const DUST_UTXO_THRESHOLD = 546;
5
5
  export const MEMPOOL_CHAIN_LIMIT = 50;
6
6
  // time in milliseconds to cache the usd exchange rate
7
7
  export const EXCHANGE_RATE_TTL = 250000;
8
+ // list of common derivation paths
9
+ // a la: https://github.com/Electron-Cash/Electron-Cash/blob/1de24c509992cfebc22217a2a77c862c2b02bc54/electroncash_gui/qt/installwizard.py#L624
10
+ export const DERIVATION_PATHS = [
11
+ "m/0",
12
+ "m/0'",
13
+ "m/0'/0",
14
+ "m/0'/0'",
15
+ "m/0'/0'/0'",
16
+ "m/44'/0'/0'",
17
+ "m/44'/0'/0'/0",
18
+ "m/44'/145'/0'",
19
+ "m/44'/145'/0'/0",
20
+ "m/44'/245'/0",
21
+ "m/44'/245'/0'",
22
+ "m/44'/245'/0'/0",
23
+ ];
8
24
  //# sourceMappingURL=constant.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constant.js","sourceRoot":"","sources":["../../src/constant.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAC;AAE7B,uDAAuD;AACvD,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEvC,2BAA2B;AAC3B,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAEtC,sDAAsD;AACtD,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"constant.js","sourceRoot":"","sources":["../../src/constant.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAC;AAE7B,uDAAuD;AACvD,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEvC,2BAA2B;AAC3B,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAEtC,sDAAsD;AACtD,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAExC,kCAAkC;AAClC,+IAA+I;AAC/I,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,KAAK;IACL,MAAM;IACN,QAAQ;IACR,SAAS;IACT,YAAY;IACZ,aAAa;IACb,eAAe;IACf,eAAe;IACf,iBAAiB;IACjB,cAAc;IACd,eAAe;IACf,iBAAiB;CAClB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { HdKeyNetwork } from "@bitauth/libauth";
2
+ export declare function getAddrsByXpubKey(xpub: string, path: string, count: number): Promise<[unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown]>;
3
+ export declare function getAddrsByXpubKeyObject(obj: any): Promise<[unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown]>;
4
+ export declare function derivePublicNodeCashaddr(xpub: any, index: number, path?: string): Promise<any>;
5
+ export declare function getXpubKeyInfo(hdPublicKey: any): Promise<{
6
+ version: HdKeyNetwork;
7
+ depth: number;
8
+ parentFingerprint: string;
9
+ childNumber: number;
10
+ chain: string;
11
+ data: string;
12
+ fingerprint: string;
13
+ }>;
14
+ export declare function getXpubKeyInfoObject(obj: any): Promise<{
15
+ version: HdKeyNetwork;
16
+ depth: number;
17
+ parentFingerprint: string;
18
+ childNumber: number;
19
+ chain: string;
20
+ data: string;
21
+ fingerprint: string;
22
+ }>;
@@ -0,0 +1,71 @@
1
+ import { deriveHdPublicNodeChild, decodeHdPublicKey, encodeCashAddress, instantiateBIP32Crypto, deriveHdPath, binToHex, } from "@bitauth/libauth";
2
+ import { hash160 } from "./hash160";
3
+ export async function getAddrsByXpubKey(xpub, path, count) {
4
+ let pathComponents = path.split("/");
5
+ let rootStr = pathComponents.shift();
6
+ let root;
7
+ if (rootStr === "M" || rootStr === "m") {
8
+ rootStr = pathComponents.shift();
9
+ }
10
+ root = parseInt(rootStr);
11
+ let result = [];
12
+ const start = parseInt(pathComponents.pop());
13
+ const end = start + count;
14
+ for (let curr = start; curr < end; curr++) {
15
+ let childPath = ["M", root, ...pathComponents, curr].join("/");
16
+ result.push(derivePublicNodeCashaddr(xpub, root, childPath));
17
+ }
18
+ return await Promise.all(result).then((result) => {
19
+ return result;
20
+ });
21
+ }
22
+ export async function getAddrsByXpubKeyObject(obj) {
23
+ return await getAddrsByXpubKey(obj.xpubkey, obj.path, obj.count);
24
+ }
25
+ export async function derivePublicNodeCashaddr(xpub, index, path) {
26
+ const crypto = await instantiateBIP32Crypto();
27
+ const publicParent = await decodeHdPublicKey(crypto, xpub);
28
+ if (typeof publicParent === "string") {
29
+ throw new Error(publicParent);
30
+ }
31
+ let prefix = publicParent.network === "mainnet" ? "bitcoincash" : "bchtest";
32
+ let node = await deriveHdPublicNodeChild(crypto, publicParent.node, index);
33
+ if (typeof node === "string") {
34
+ throw new Error(node);
35
+ }
36
+ let cashaddr;
37
+ if (typeof path === "string") {
38
+ if (path[0] !== "M") {
39
+ throw Error("use M for public path derivation");
40
+ }
41
+ let childNode = deriveHdPath(crypto, publicParent.node, path);
42
+ if (typeof childNode === "string") {
43
+ throw new Error(childNode);
44
+ }
45
+ else {
46
+ let childPkh = await hash160(childNode.publicKey);
47
+ cashaddr = encodeCashAddress(prefix, 0, childPkh);
48
+ }
49
+ }
50
+ return cashaddr;
51
+ }
52
+ export async function getXpubKeyInfo(hdPublicKey) {
53
+ const crypto = await instantiateBIP32Crypto();
54
+ let node = decodeHdPublicKey(crypto, hdPublicKey);
55
+ if (typeof node === "string") {
56
+ throw new Error(node);
57
+ }
58
+ return {
59
+ version: node.network,
60
+ depth: node.node.depth,
61
+ parentFingerprint: binToHex(node.node.parentFingerprint),
62
+ childNumber: node.node.childIndex,
63
+ chain: binToHex(node.node.chainCode),
64
+ data: binToHex(node.node.publicKey),
65
+ fingerprint: binToHex((await hash160(node.node.publicKey)).slice(0, 4)),
66
+ };
67
+ }
68
+ export async function getXpubKeyInfoObject(obj) {
69
+ return await getXpubKeyInfo(obj.xpubkey);
70
+ }
71
+ //# sourceMappingURL=getAddrsByXpubKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAddrsByXpubKey.js","sourceRoot":"","sources":["../../../src/util/getAddrsByXpubKey.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function getXPubKey(seed: Uint8Array | string, derivationPath: string, network: string): Promise<string>;
@@ -0,0 +1,22 @@
1
+ import { deriveHdPrivateNodeFromSeed, deriveHdPath, deriveHdPublicNode, encodeHdPublicKey, instantiateBIP32Crypto, hexToBin, } from "@bitauth/libauth";
2
+ export async function getXPubKey(seed, derivationPath, network) {
3
+ if (typeof seed === "string") {
4
+ seed = hexToBin(seed);
5
+ }
6
+ const crypto = await instantiateBIP32Crypto();
7
+ let hdNode = deriveHdPrivateNodeFromSeed(crypto, seed);
8
+ if (!hdNode.valid) {
9
+ throw Error("Invalid private key derived from mnemonic seed");
10
+ }
11
+ let node = deriveHdPath(crypto, hdNode, derivationPath);
12
+ if (typeof node === "string") {
13
+ throw node;
14
+ }
15
+ let parentPublicNode = deriveHdPublicNode(crypto, node);
16
+ let xPubKey = encodeHdPublicKey(crypto, {
17
+ network: network,
18
+ node: parentPublicNode,
19
+ });
20
+ return xPubKey;
21
+ }
22
+ //# sourceMappingURL=getXPubKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getXPubKey.js","sourceRoot":"","sources":["../../../src/util/getXPubKey.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EAEjB,sBAAsB,EACtB,QAAQ,GACT,MAAM,kBAAkB,CAAC;AAE1B,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAyB,EACzB,cAAsB,EACtB,OAAe;IAEf,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;KACvB;IACD,MAAM,MAAM,GAAG,MAAM,sBAAsB,EAAE,CAAC;IAC9C,IAAI,MAAM,GAAG,2BAA2B,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;QACjB,MAAM,KAAK,CAAC,gDAAgD,CAAC,CAAC;KAC/D;IAED,IAAI,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;IACxD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,MAAM,IAAI,CAAC;KACZ;IACD,IAAI,gBAAgB,GAAG,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAExD,IAAI,OAAO,GAAG,iBAAiB,CAAC,MAAM,EAAE;QACtC,OAAO,EAAE,OAAuB;QAChC,IAAI,EAAE,gBAAgB;KACvB,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,16 +1,18 @@
1
1
  export { amountInSatoshi } from "./amountInSatoshi";
2
2
  export { asSendRequestObject } from "./asSendRequestObject";
3
- export { btoa, atob } from "./base64";
3
+ export { atob, btoa } from "./base64";
4
4
  export { convert, convertObject } from "./convert";
5
5
  export { delay } from "./delay";
6
+ export { derivedNetwork } from "./deriveNetwork";
7
+ export { derivePublicKeyHash } from "./derivePublicKeyHash";
8
+ export { getAddrsByXpubKey, getAddrsByXpubKeyObject, getXpubKeyInfo, getXpubKeyInfoObject, } from "../util/getAddrsByXpubKey";
6
9
  export { getRuntimePlatform, RuntimePlatform } from "./getRuntimePlatform";
7
10
  export { getUsdRate } from "./getUsdRate";
8
11
  export { ExchangeRate } from "../rate/ExchangeRate";
9
- export { derivedNetwork } from "./deriveNetwork";
10
- export { derivePublicKeyHash } from "./derivePublicKeyHash";
11
12
  export { sanitizeAddress } from "./sanitizeAddress";
12
13
  export { sanitizeUnit } from "./sanitizeUnit";
13
14
  export { getRandomInt } from "./randomInt";
15
+ export { getXPubKey } from "../util/getXPubKey";
14
16
  import * as randomValues from "./randomValues";
15
17
  export { randomValues };
16
18
  export { sumUtxoValue } from "./sumUtxoValue";
@@ -1,16 +1,18 @@
1
1
  export { amountInSatoshi } from "./amountInSatoshi";
2
2
  export { asSendRequestObject } from "./asSendRequestObject";
3
- export { btoa, atob } from "./base64";
3
+ export { atob, btoa } from "./base64";
4
4
  export { convert, convertObject } from "./convert";
5
5
  export { delay } from "./delay";
6
+ export { derivedNetwork } from "./deriveNetwork";
7
+ export { derivePublicKeyHash } from "./derivePublicKeyHash";
8
+ export { getAddrsByXpubKey, getAddrsByXpubKeyObject, getXpubKeyInfo, getXpubKeyInfoObject, } from "../util/getAddrsByXpubKey";
6
9
  export { getRuntimePlatform, RuntimePlatform } from "./getRuntimePlatform";
7
10
  export { getUsdRate } from "./getUsdRate";
8
11
  export { ExchangeRate } from "../rate/ExchangeRate";
9
- export { derivedNetwork } from "./deriveNetwork";
10
- export { derivePublicKeyHash } from "./derivePublicKeyHash";
11
12
  export { sanitizeAddress } from "./sanitizeAddress";
12
13
  export { sanitizeUnit } from "./sanitizeUnit";
13
14
  export { getRandomInt } from "./randomInt";
15
+ export { getXPubKey } from "../util/getXPubKey";
14
16
  import * as randomValues from "./randomValues";
15
17
  export { randomValues };
16
18
  export { sumUtxoValue } from "./sumUtxoValue";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,cAAc,EACd,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC"}
@@ -10,6 +10,8 @@ import { WalletTypeEnum } from "./enum";
10
10
  export declare class BaseWallet implements WalletI {
11
11
  provider?: any;
12
12
  derivationPath: string;
13
+ parentDerivationPath: string;
14
+ parentXPubKey?: string;
13
15
  mnemonic?: string;
14
16
  address?: string;
15
17
  privateKey?: any;
@@ -104,7 +106,7 @@ export declare class BaseWallet implements WalletI {
104
106
  /**
105
107
  * replaceNamed - replace (recover) named wallet with a new walletId
106
108
  *
107
- * If wallet with a provided name does not exist yet, it will be creted with a `walletId` supplied
109
+ * If wallet with a provided name does not exist yet, it will be created with a `walletId` supplied
108
110
  * If wallet exists it will be overwritten without exception
109
111
  *
110
112
  * @param name user friendly wallet alias
@@ -19,6 +19,7 @@ export class BaseWallet {
19
19
  */
20
20
  constructor(name = "", network = NetworkType.Mainnet, walletType = WalletTypeEnum.Seed) {
21
21
  this.derivationPath = "m/44'/0'/0'/0/0";
22
+ this.parentDerivationPath = "m/44'/0'/0'";
22
23
  this.name = name;
23
24
  this.network = network;
24
25
  this.walletType = walletType;
@@ -66,6 +67,7 @@ export class BaseWallet {
66
67
  return {
67
68
  seed: this.mnemonic,
68
69
  derivationPath: this.derivationPath,
70
+ parentDerivationPath: this.parentDerivationPath,
69
71
  };
70
72
  }
71
73
  /**
@@ -133,7 +135,7 @@ export class BaseWallet {
133
135
  /**
134
136
  * replaceNamed - replace (recover) named wallet with a new walletId
135
137
  *
136
- * If wallet with a provided name does not exist yet, it will be creted with a `walletId` supplied
138
+ * If wallet with a provided name does not exist yet, it will be created with a `walletId` supplied
137
139
  * If wallet exists it will be overwritten without exception
138
140
  *
139
141
  * @param name user friendly wallet alias
@@ -1 +1 @@
1
- {"version":3,"file":"Base.js","sourceRoot":"","sources":["../../../src/wallet/Base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Base.js","sourceRoot":"","sources":["../../../src/wallet/Base.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,8 @@ import { SignedMessageI } from "../message";
18
18
  export declare class Wallet extends BaseWallet {
19
19
  cashaddr?: string;
20
20
  derivationPath: string;
21
+ parentDerivationPath: string;
22
+ parentXPubKey?: string;
21
23
  privateKey?: Uint8Array;
22
24
  publicKeyCompressed?: Uint8Array;
23
25
  privateKeyWif?: string;
@@ -82,7 +84,9 @@ export declare class Wallet extends BaseWallet {
82
84
  private _generateWif;
83
85
  private _generateMnemonic;
84
86
  protected fromId: (walletId: string) => Promise<this>;
87
+ getXPubKeys(paths?: any): Promise<any[]>;
85
88
  protected fromSeed(mnemonic: string, derivationPath?: string): Promise<this>;
89
+ deriveHdPaths(hdPaths: string[]): Promise<any[]>;
86
90
  protected watchOnly(address: string): Promise<this>;
87
91
  protected fromWIF(secret: string): Promise<this>;
88
92
  protected newRandom(name: string, dbName?: string): Promise<this>;
@@ -1,15 +1,15 @@
1
1
  //#region Imports
2
2
  // Stable
3
- import { instantiateSecp256k1, instantiateSha256 } from "@bitauth/libauth";
3
+ import { encodeHdPublicKey, instantiateSecp256k1, instantiateSha256, } from "@bitauth/libauth";
4
4
  // Unstable?
5
- import { binToHex, CashAddressNetworkPrefix, decodePrivateKeyWif, encodePrivateKeyWif, deriveHdPrivateNodeFromSeed, deriveHdPath, generatePrivateKey, instantiateBIP32Crypto, } from "@bitauth/libauth";
5
+ import { binToHex, CashAddressNetworkPrefix, deriveHdPublicNode, decodePrivateKeyWif, encodePrivateKeyWif, deriveHdPrivateNodeFromSeed, deriveHdPath, generatePrivateKey, instantiateBIP32Crypto, } from "@bitauth/libauth";
6
6
  import { mnemonicToSeedSync, generateMnemonic } from "bip39";
7
7
  import { NetworkType, prefixFromNetworkMap, UnitEnum } from "../enum";
8
8
  import { Network } from "../interface";
9
9
  import { networkPrefixMap } from "../enum";
10
10
  import { BaseWallet } from "./Base";
11
11
  import { WalletTypeEnum } from "./enum";
12
- import { SendRequest, SendResponse, UtxoItem, UtxoResponse, } from "./model";
12
+ import { SendRequest, SendResponse, UtxoItem, UtxoResponse, XPubKey, } from "./model";
13
13
  import { buildEncodedTransaction, getSuitableUtxos, getFeeAmount, } from "../transaction/Wif";
14
14
  import { asSendRequestObject } from "../util/asSendRequestObject";
15
15
  import { balanceFromSatoshi, balanceResponseFromSatoshi, } from "../util/balanceObjectFromSatoshi";
@@ -28,7 +28,8 @@ import { getNetworkProvider } from "../network/index";
28
28
  import { generateRandomBytes } from "../util/randomBytes";
29
29
  import { SignedMessage } from "../message";
30
30
  import { amountInSatoshi } from "../util/amountInSatoshi";
31
- import { DUST_UTXO_THRESHOLD } from "../constant";
31
+ import { getXPubKey } from "../util/getXPubKey";
32
+ import { DERIVATION_PATHS, DUST_UTXO_THRESHOLD } from "../constant";
32
33
  //#endregion Imports
33
34
  const secp256k1Promise = instantiateSecp256k1();
34
35
  const sha256Promise = instantiateSha256();
@@ -41,6 +42,7 @@ export class Wallet extends BaseWallet {
41
42
  constructor(name = "", network = NetworkType.Mainnet, walletType = WalletTypeEnum.Seed) {
42
43
  super(name, network, walletType);
43
44
  this.derivationPath = "m/44'/0'/0'/0/0";
45
+ this.parentDerivationPath = "m/44'/0'/0'";
44
46
  this._slpAware = false; // a flag which activates utxo checking against an external slp indexer
45
47
  this._slpSemiAware = false; // a flag which requires an utxo to have more than 546 sats to be spendable and counted in the balance
46
48
  this.fromId = async (walletId) => {
@@ -114,6 +116,10 @@ export class Wallet extends BaseWallet {
114
116
  network: this.network,
115
117
  seed: this.mnemonic ? this.getSeed().seed : undefined,
116
118
  derivationPath: this.mnemonic ? this.getSeed().derivationPath : undefined,
119
+ parentDerivationPath: this.mnemonic
120
+ ? this.getSeed().parentDerivationPath
121
+ : undefined,
122
+ parentXPubKey: this.parentXPubKey ? this.parentXPubKey : undefined,
117
123
  publicKey: this.publicKey ? binToHex(this.publicKey) : undefined,
118
124
  publicKeyHash: binToHex(this.publicKeyHash),
119
125
  privateKey: this.privateKey ? binToHex(this.privateKey) : undefined,
@@ -216,18 +222,37 @@ export class Wallet extends BaseWallet {
216
222
  return this.deriveInfo();
217
223
  }
218
224
  async _generateMnemonic() {
219
- const crypto = await instantiateBIP32Crypto();
220
225
  this.mnemonic = generateMnemonic();
221
226
  let seed = mnemonicToSeedSync(this.mnemonic);
227
+ let network = this.isTestnet ? "testnet" : "mainnet";
228
+ this.parentXPubKey = await getXPubKey(seed, this.parentDerivationPath, network);
229
+ const crypto = await instantiateBIP32Crypto();
222
230
  let hdNode = deriveHdPrivateNodeFromSeed(crypto, seed);
223
231
  if (!hdNode.valid) {
224
232
  throw Error("Invalid private key derived from mnemonic seed");
225
233
  }
226
234
  let zerothChild = deriveHdPath(crypto, hdNode, this.derivationPath);
235
+ if (typeof zerothChild === "string") {
236
+ throw Error(zerothChild);
237
+ }
227
238
  this.privateKey = zerothChild.privateKey;
228
239
  this.walletType = WalletTypeEnum.Seed;
229
240
  return await this.deriveInfo();
230
241
  }
242
+ async getXPubKeys(paths) {
243
+ if (this.mnemonic) {
244
+ if (paths) {
245
+ let xPubKeys = await this.deriveHdPaths(paths);
246
+ return [xPubKeys];
247
+ }
248
+ else {
249
+ return await this.deriveHdPaths(DERIVATION_PATHS);
250
+ }
251
+ }
252
+ else {
253
+ throw Error("xpubkeys can only be derived from seed type wallets.");
254
+ }
255
+ }
231
256
  // Initialize wallet from a mnemonic phrase
232
257
  async fromSeed(mnemonic, derivationPath) {
233
258
  this.mnemonic = mnemonic;
@@ -239,13 +264,58 @@ export class Wallet extends BaseWallet {
239
264
  }
240
265
  if (derivationPath) {
241
266
  this.derivationPath = derivationPath;
267
+ // If the derivation path is for the first account child, set the parent derivation path
268
+ let path = derivationPath.split("/");
269
+ if (path.slice(-2).join("/") == "0/0") {
270
+ this.parentDerivationPath = path.slice(0, -2).join("/");
271
+ }
242
272
  }
243
273
  let zerothChild = deriveHdPath(crypto, hdNode, this.derivationPath);
274
+ if (typeof zerothChild === "string") {
275
+ throw Error(zerothChild);
276
+ }
244
277
  this.privateKey = zerothChild.privateKey;
278
+ let network = this.isTestnet ? "testnet" : "mainnet";
279
+ this.parentXPubKey = await getXPubKey(seed, this.parentDerivationPath, network);
245
280
  this.walletType = WalletTypeEnum.Seed;
246
281
  await this.deriveInfo();
247
282
  return this;
248
283
  }
284
+ // Get common xpub paths from zerothChild privateKey
285
+ async deriveHdPaths(hdPaths) {
286
+ const crypto = await instantiateBIP32Crypto();
287
+ let seed = mnemonicToSeedSync(this.mnemonic);
288
+ let hdNode = deriveHdPrivateNodeFromSeed(crypto, seed);
289
+ if (!hdNode.valid) {
290
+ throw Error("Invalid private key derived from mnemonic seed");
291
+ }
292
+ let result = [];
293
+ for (const path of hdPaths) {
294
+ if (path === "m") {
295
+ throw Error("Storing or sharing of parent public key may lead to loss of funds. Storing or sharing *root* parent public keys is strongly discouraged, although all parent keys have risk. See: https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#implications");
296
+ }
297
+ let childNode = deriveHdPath(crypto, hdNode, path);
298
+ if (typeof childNode === "string") {
299
+ throw Error(childNode);
300
+ }
301
+ let node = deriveHdPublicNode(crypto, childNode);
302
+ if (typeof node === "string") {
303
+ throw Error(node);
304
+ }
305
+ let xPubKey = encodeHdPublicKey(crypto, {
306
+ network: this.network,
307
+ node: node,
308
+ });
309
+ let key = new XPubKey({
310
+ path: path,
311
+ xPubKey: xPubKey,
312
+ });
313
+ result.push(await key.ready());
314
+ }
315
+ return await Promise.all(result).then((result) => {
316
+ return result;
317
+ });
318
+ }
249
319
  // Initialize a watch only wallet from a cash addr
250
320
  async watchOnly(address) {
251
321
  this.walletType = WalletTypeEnum.Watch;
@@ -274,8 +344,7 @@ export class Wallet extends BaseWallet {
274
344
  checkWifNetwork(secret, this.network);
275
345
  const sha256 = await sha256Promise;
276
346
  let wifResult = decodePrivateKeyWif(sha256, secret);
277
- const hasError = typeof wifResult === "string";
278
- if (hasError) {
347
+ if (typeof wifResult === "string") {
279
348
  throw Error(wifResult);
280
349
  }
281
350
  let resultData = wifResult;
@@ -1 +1 @@
1
- {"version":3,"file":"Wif.js","sourceRoot":"","sources":["../../../src/wallet/Wif.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Wif.js","sourceRoot":"","sources":["../../../src/wallet/Wif.ts"],"names":[],"mappings":"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"}