finaly add random sietch addr generation

This commit is contained in:
DenioD
2020-02-08 09:58:28 +01:00
parent 36faf57835
commit 2542028453
4 changed files with 89 additions and 1 deletions

View File

@@ -460,6 +460,39 @@ impl LightWallet {
zaddr
}
// Add a new Sietch Addr. This will derive a new zdust address from the seed
pub fn add_zaddrdust(&self) -> String {
if !self.unlocked {
return "".to_string();
}
let pos = self.extsks.read().unwrap().len() as u32;
// Use random generator to create a new Sietch seed every time when call.
let mut rng = rand::thread_rng();
let letter: String = rng.gen_range(b'A', b'Z').to_string();
let number: String = rng.gen_range(0, 999999).to_string();
// let combi: String = letter.to_string() + number.to_string();
let s = format!("{}{:06}", letter, number);
//println!("{}", s);
let my_string = String::from(s);
// let my_immutable_string = &my_string; //This is a &String type
let dust: &str = &my_string; //This is an &str type
let bip39_seed = bip39::Seed::new(&Mnemonic::from_entropy(&self.seed, Language::English).unwrap(), dust);
let (_extsk, _extfvk, address) =
LightWallet::get_zaddr_from_bip39seed(&self.config, &bip39_seed.as_bytes(), pos);
let zaddr = encode_payment_address(self.config.hrp_sapling_address(), &address);
zaddr
}
/// Add a new t address to the wallet. This will derive a new address from the seed
/// at the next position.