NIP-06: Support multiple account private keys derived from seed words (#219)

Co-authored-by: fiatjaf_ <fiatjaf@gmail.com>
This commit is contained in:
futpib
2023-12-16 17:15:37 +04:00
committed by GitHub
parent 36e0de2a68
commit 3d767beeb9
2 changed files with 23 additions and 2 deletions

View File

@@ -3,9 +3,13 @@ import { wordlist } from '@scure/bip39/wordlists/english'
import { generateMnemonic, mnemonicToSeedSync, validateMnemonic } from '@scure/bip39'
import { HDKey } from '@scure/bip32'
export function privateKeyFromSeedWords(mnemonic: string, passphrase?: string): string {
export function privateKeyFromSeedWords(
mnemonic: string,
passphrase?: string,
accountIndex = 0
): string {
let root = HDKey.fromMasterSeed(mnemonicToSeedSync(mnemonic, passphrase))
let privateKey = root.derive(`m/44'/1237'/0'/0/0`).privateKey
let privateKey = root.derive(`m/44'/1237'/${accountIndex}'/0/0`).privateKey
if (!privateKey) throw new Error('could not derive private key')
return bytesToHex(privateKey)
}