use bip32::{Mnemonic, Seed};
use rand_core::OsRng;
pub struct SeedKey {
pub seed: Seed,
pub key_path: String,
}
impl SeedKey {
pub fn new(password: Option<&str>) -> Seed {
let phrase = get_mnemonic();
let seed = phrase.to_seed(password.unwrap_or_default());
seed
}
}
pub fn get_mnemonic() -> Mnemonic {
let language = Default::default();
let mnemonic = Mnemonic::random(&mut OsRng, language);
let phrase = Mnemonic::new(mnemonic.phrase(), language);
phrase.unwrap()
}
pub fn get_phrase_seed() -> (Mnemonic, Seed) {
let phrase = get_mnemonic();
let seed = phrase.to_seed("");
(phrase.to_owned(), seed)
}
pub fn get_seed(password: Option<&str>) -> Seed {
let phrase = get_mnemonic();
let seed = phrase.to_seed(password.unwrap_or_default());
seed
}