Skip to content

Commit bb4fcc5

Browse files
committed
account reconstruct test added
1 parent d558207 commit bb4fcc5

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

src/sss.rs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -479,11 +479,25 @@ impl Share {
479479

480480
#[cfg(test)]
481481
mod test {
482+
use bitcoin::network::constants::Network;
482483
use super::{ShamirSecretSharing, Share, WORDS};
483484
use std::collections::HashSet;
484485
use serde_json::Value;
485486
use rand::{thread_rng, Rng};
486-
use account::Seed;
487+
use account::{Seed, MasterKeyEntropy, MasterAccount};
488+
489+
const PASSPHRASE: &str = "correct horse battery staple";
490+
491+
#[test]
492+
pub fn reconstruct() {
493+
let master = MasterAccount::new(MasterKeyEntropy::Low, Network::Bitcoin, PASSPHRASE).unwrap();
494+
let seed = master.seed(Network::Bitcoin, PASSPHRASE).unwrap();
495+
let shares = ShamirSecretSharing::generate(1, &[(3,5)], &seed, None, 1).unwrap();
496+
let reconstructed_seed = ShamirSecretSharing::combine(&shares[..3], None).unwrap();
497+
let reconstructed_master = MasterAccount::from_seed(&reconstructed_seed, 0, Network::Bitcoin, PASSPHRASE).unwrap();
498+
assert_eq!(master.master_public(), reconstructed_master.master_public());
499+
assert_eq!(master.encrypted(), reconstructed_master.encrypted());
500+
}
487501

488502
#[test]
489503
pub fn test_encoding() {

0 commit comments

Comments
 (0)