From 0187199af00015232469c00e51406c51eb233bde Mon Sep 17 00:00:00 2001 From: Kiel Ed Date: Thu, 7 Mar 2024 18:07:28 +0300 Subject: [PATCH] add custom derivation path --- .gitignore | 3 +- bun.lockb | Bin 133742 -> 0 bytes package.json | 13 +----- ts_src/hd/private.ts | 93 +++++++++++++++---------------------------- ts_src/hd/types.ts | 17 ++++++++ 5 files changed, 51 insertions(+), 75 deletions(-) delete mode 100755 bun.lockb diff --git a/.gitignore b/.gitignore index d639844..682edaf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ node_modules src -package-lock.json \ No newline at end of file +package-lock.json +bun.lockb \ No newline at end of file diff --git a/bun.lockb b/bun.lockb deleted file mode 100755 index cd5c25e0c4a9b1ff713e7f2de2b4d45e74cafbb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133742 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 LNtOQ(|MPzUVEApj diff --git a/package.json b/package.json index 3eaa7c5..2c8f309 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "src" ], "dependencies": { - "@noble/hashes": "^1.3.2", + "@noble/hashes": "^1.3.3", "belcoinjs-lib": "^0.0.4", "bells-secp256k1": "^0.1.0", "belpair": "^0.0.8", @@ -45,25 +45,14 @@ "browser-hdkey": "^0.1.7" }, "devDependencies": { - "@types/hdkey": "^2.0.3", "@types/bn.js": "^5.1.1", "@types/bs58": "^4.0.0", - "@types/bs58check": "^2.1.0", - "@types/chai": "^4.3.6", - "@types/mocha": "^5.2.7", "@types/node": "^20.5.9", - "@types/proxyquire": "^1.3.28", - "@types/randombytes": "^2.0.0", "@typescript-eslint/eslint-plugin": "^5.45.0", "@typescript-eslint/parser": "^5.45.0", "better-npm-audit": "^3.7.3", - "chai": "^4.3.8", - "mocha": "^10.0.0", - "nyc": "^15.1.0", "prettier": "^2.8.0", - "randombytes": "^2.1.0", "rimraf": "^2.6.3", - "ts-node": "^8.3.0", "typescript": "^4.4.4" }, "license": "MIT" diff --git a/ts_src/hd/private.ts b/ts_src/hd/private.ts index 364747a..061a4a1 100644 --- a/ts_src/hd/private.ts +++ b/ts_src/hd/private.ts @@ -9,7 +9,8 @@ import type { SerializedHDKey, Hex, ToSignInput, - AddressType, + FromSeedOpts, + FromMnemonicOpts, } from "./types"; import { BaseWallet } from "./base"; import * as tinysecp from "bells-secp256k1"; @@ -21,7 +22,7 @@ import { sha256 } from "@noble/hashes/sha256"; const ECPair = ECPairFactory(tinysecp); -const hdPathString = "m/44'/0'/0'/0"; +const DEFAULT_HD_PATH = "m/44'/0'/0'/0"; class HDPrivateKey extends BaseWallet implements Keyring { hideRoot?: boolean; @@ -34,7 +35,7 @@ class HDPrivateKey extends BaseWallet implements Keyring { private seed?: Uint8Array; private hdWallet?: HDKey; private root?: HDKey; - private hdPath: string = hdPathString; + private hdPath: string = DEFAULT_HD_PATH; constructor(options?: PrivateKeyOptions) { super(); @@ -179,6 +180,7 @@ class HDPrivateKey extends BaseWallet implements Keyring { async fromOptions(options: PrivateKeyOptions) { this.fromSeed({ seed: Buffer.from(options.seed), + hdPath: options.hdPath, }); return this; } @@ -187,43 +189,28 @@ class HDPrivateKey extends BaseWallet implements Keyring { return new this().fromOptions(options); } - fromSeed({ - seed, - hideRoot, - addressType, - }: { - seed: Uint8Array; - hideRoot?: boolean; - addressType?: AddressType; - }) { + fromSeed(opts: FromSeedOpts) { this.childIndex = 0; - this.seed = seed; - this.hdWallet = HDKey.fromMasterSeed(Buffer.from(seed)); + this.seed = opts.seed; + this.hdWallet = HDKey.fromMasterSeed(Buffer.from(opts.seed)); + + if (opts.hdPath) { + this.hdPath = opts.hdPath; + } + this.root = this.hdWallet.derive(this.hdPath); - this.hideRoot = hideRoot; + this.hideRoot = opts.hideRoot; this.privateKey = this.root.privateKey!; this.publicKey = this.root.publicKey!; - this.addressType = addressType; + this.addressType = opts.addressType; return this; } - static fromSeed({ - seed, - hideRoot, - addressType, - }: { - seed: Uint8Array; - hideRoot?: boolean; - addressType?: AddressType; - }): HDPrivateKey { - return new this().fromSeed({ - seed, - hideRoot, - addressType, - }); + static fromSeed(opts: FromSeedOpts): HDPrivateKey { + return new this().fromSeed(opts); } toggleHideRoot(): void { @@ -233,44 +220,24 @@ class HDPrivateKey extends BaseWallet implements Keyring { } } - async fromMnemonic({ - mnemonic, - passphrase, - hideRoot, - addressType, - }: { - mnemonic: string; - passphrase?: string; - hideRoot?: boolean; - addressType?: AddressType; - }): Promise { - const seed = await mnemonicToSeed(mnemonic, passphrase ?? "bells"); + async fromMnemonic(opts: FromMnemonicOpts): Promise { + const seed = await mnemonicToSeed( + opts.mnemonic, + opts.passphrase ?? "bells" + ); + this.fromSeed({ seed, - hideRoot, - addressType, + hideRoot: opts.hideRoot, + addressType: opts.addressType, + hdPath: opts.hdPath, }); return this; } - static fromMnemonic({ - mnemonic, - passphrase, - hideRoot, - addressType, - }: { - mnemonic: string; - passphrase?: string; - hideRoot?: boolean; - addressType?: AddressType; - }): Promise { - return new this().fromMnemonic({ - mnemonic, - passphrase, - hideRoot, - addressType, - }); + static fromMnemonic(opts: FromMnemonicOpts): Promise { + return new this().fromMnemonic(opts); } fromPrivateKey(_key: Uint8Array) { @@ -285,13 +252,14 @@ class HDPrivateKey extends BaseWallet implements Keyring { return this.accounts.length; } - serialize() { + serialize(): SerializedHDKey { if (this.childIndex !== 0) throw new Error("You should use only root wallet to serializing"); return { numberOfAccounts: this.getChildCount(), seed: toHex(this.seed!), addressType: this.addressType!, + hdPath: this.hdPath !== DEFAULT_HD_PATH ? this.hdPath : undefined, }; } @@ -306,6 +274,7 @@ class HDPrivateKey extends BaseWallet implements Keyring { seed: fromHex(opts.seed), hideRoot: opts.hideRoot, addressType: opts.addressType, + hdPath: opts.hdPath, }); root.addAccounts(opts.numberOfAccounts); diff --git a/ts_src/hd/types.ts b/ts_src/hd/types.ts index a5ec4b3..2b5e66f 100644 --- a/ts_src/hd/types.ts +++ b/ts_src/hd/types.ts @@ -4,6 +4,22 @@ export type Base58String = string; export interface PrivateKeyOptions { seed: string; + hdPath?: string; +} + +export interface FromSeedOpts { + seed: Uint8Array; + hideRoot?: boolean; + addressType?: AddressType; + hdPath?: string; +} + +export interface FromMnemonicOpts { + mnemonic: string; + passphrase?: string; + hideRoot?: boolean; + addressType?: AddressType; + hdPath?: string; } export interface PublicKeyOptions @@ -20,6 +36,7 @@ export interface SerializedHDKey extends SerializedBase { seed: string; numberOfAccounts?: number; hideRoot?: boolean; + hdPath?: string; } export interface SerializedSimpleKey extends SerializedBase {