-
Notifications
You must be signed in to change notification settings - Fork 0
/
slip14.rs
41 lines (33 loc) · 1.31 KB
/
slip14.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//! This module built on top of `api.rs` and contains helper functions
//! to generate keys according to SLIP-14
//! for mnemonics "all all all all all all all all all all all all".
//!
//! Used in tests.
use derivation_path::DerivationPath;
use crate::{
api,
bip::bip39::{self, Entropy},
types::{XPrvKey, XPubKey},
};
const SLIP14_MNEMONICS: &str = "all all all all all all all all all all all all";
pub fn make_entropy() -> Entropy {
let mnemonics =
bip39::Mnemonics::from_string(&bip39::dictionary::ENGLISH, SLIP14_MNEMONICS).unwrap();
bip39::Entropy::from_mnemonics(&mnemonics).unwrap()
}
pub fn make_root_key() -> XPrvKey {
let mnemonics =
bip39::Mnemonics::from_string(&bip39::dictionary::ENGLISH, SLIP14_MNEMONICS).unwrap();
let entropy = bip39::Entropy::from_mnemonics(&mnemonics).unwrap();
XPrvKey::from_entropy(&entropy, b"")
}
pub fn make_address_keys() -> (XPrvKey, XPubKey) {
let path: DerivationPath = "m/1852'/1815'/0'/0/0".parse().unwrap();
make_keys_for(&path)
}
pub fn make_keys_for(path: &DerivationPath) -> (XPrvKey, XPubKey) {
let mnemonics =
bip39::Mnemonics::from_string(&bip39::dictionary::ENGLISH, SLIP14_MNEMONICS).unwrap();
let entropy = bip39::Entropy::from_mnemonics(&mnemonics).unwrap();
api::derive_key_pair(&entropy, b"", path)
}