Derive bitcoin private key from seed

This commit is contained in:
rishflab 2021-02-09 17:23:13 +11:00
parent a51194b9fa
commit 4768c79070
5 changed files with 64 additions and 15 deletions

View file

@ -1,5 +1,7 @@
use crate::fs::ensure_directory_exists;
use ::bitcoin::secp256k1::{self, constants::SECRET_KEY_SIZE, SecretKey};
use anyhow::Result;
use bdk::bitcoin::util::bip32::ExtendedPrivKey;
use pem::{encode, Pem};
use rand::prelude::*;
use std::{
@ -26,6 +28,11 @@ impl Seed {
Ok(Seed(bytes))
}
pub fn extended_private_key(&self, network: bitcoin::Network) -> Result<ExtendedPrivKey> {
let private_key = ExtendedPrivKey::new_master(network, &self.bytes())?;
Ok(private_key)
}
pub fn bytes(&self) -> [u8; SEED_LENGTH] {
self.0
}