twetch_sdk/wallet/
mod.rs

1use bsv_wasm::ExtendedPrivateKey;
2
3pub struct Wallet {
4    seed: String,
5}
6
7impl Wallet {
8    pub fn new(seed: String) -> Wallet {
9        Wallet { seed }
10    }
11
12    pub fn xpriv(&self) -> Option<ExtendedPrivateKey> {
13        let xpriv = match ExtendedPrivateKey::from_mnemonic(self.seed.as_bytes(), None) {
14            Ok(v) => v,
15            Err(_) => return None,
16        };
17        Some(xpriv)
18    }
19
20    pub fn xpriv_account(&self) -> Option<ExtendedPrivateKey> {
21        let xpriv = match self.xpriv() {
22            Some(v) => v.derive_from_path("m/0/0").unwrap(),
23            None => return None,
24        };
25
26        Some(xpriv)
27    }
28
29    pub fn xpriv_wallet(&self) -> Option<ExtendedPrivateKey> {
30        let xpriv = match self.xpriv() {
31            Some(v) => v.derive_from_path("m/44'/0'/0'/0").unwrap(),
32            None => return None,
33        };
34
35        Some(xpriv)
36    }
37}