Skip to content

Commit ea7725a

Browse files
committed
add account reconstruction test
1 parent 68daa61 commit ea7725a

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

src/sss.rs

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -484,7 +484,9 @@ mod test {
484484
use std::collections::HashSet;
485485
use serde_json::Value;
486486
use rand::{thread_rng, Rng};
487-
use account::{Seed, MasterKeyEntropy, MasterAccount};
487+
use account::{Seed, MasterKeyEntropy, MasterAccount, Account, AccountAddressType, Unlocker};
488+
use bitcoin::Address;
489+
use std::str::FromStr;
488490

489491
const PASSPHRASE: &str = "correct horse battery staple";
490492

@@ -500,13 +502,16 @@ mod test {
500502
}
501503

502504
#[test]
503-
pub fn test_encoding() {
504-
let m = "duckling enlarge academic academic agency result length solution fridge kidney coal piece deal husband erode duke ajar critical decision keyboard";
505-
let sss = Share::from_mnemonic(m).unwrap();
506-
assert_eq!(sss.to_mnemonic().as_str(), m);
507-
assert_eq!(ShamirSecretSharing::combine(&[sss], Some("TREZOR")).unwrap().0, hex::decode("bb54aac4b89dc868ba37d9cc21b2cece").unwrap());
508-
let m = "duckling enlarge academic academic agency result length solution fridge kidney coal piece deal husband erode duke ajar critical decision kidney";
509-
assert!(Share::from_mnemonic(m).is_err());
505+
pub fn reconstruct_account() {
506+
let shares = [
507+
"column upstairs academic acid blue task loyalty dwarf trash election squeeze pipeline pharmacy fiber soldier already gross length acne guest",
508+
"column upstairs academic always away perfect dynamic wrote bumpy olympic privacy satisfy fraction educate task twin animal physics bolt cage"
509+
].iter().map(|s| Share::from_mnemonic(s).unwrap()).collect::<Vec<_>>();
510+
let seed = ShamirSecretSharing::combine(&shares[..], None).unwrap();
511+
let mut master = MasterAccount::from_seed(&seed, 0, Network::Bitcoin, PASSPHRASE).unwrap();
512+
let mut unlocker = Unlocker::new_for_master(&master, PASSPHRASE).unwrap();
513+
master.add_account(Account::new(&mut unlocker, AccountAddressType::P2SHWPKH, 0, 0, 10).unwrap());
514+
assert_eq!(master.get_mut((0,0)).unwrap().next_key().unwrap().address, Address::from_str("3JKyFZdkKYYgxFT37cPgJDxqNzQQKbbbtj").unwrap());
510515
}
511516

512517
#[test]

0 commit comments

Comments
 (0)