39 lines
1018 B
Rust
39 lines
1018 B
Rust
//!
|
|
|
|
use std::io::{stdin, stdout};
|
|
|
|
use keyfork_prompt::{
|
|
validators::{mnemonic, Validator},
|
|
Terminal, PromptHandler,
|
|
};
|
|
|
|
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|
let mut mgr = Terminal::new(stdin(), stdout())?;
|
|
let transport_validator = mnemonic::MnemonicSetValidator {
|
|
word_lengths: [9, 24],
|
|
};
|
|
let combine_validator = mnemonic::MnemonicSetValidator {
|
|
word_lengths: [24, 48],
|
|
};
|
|
|
|
let mnemonics = mgr.prompt_validated_wordlist(
|
|
"Enter a 9-word and 24-word mnemonic: ",
|
|
&Default::default(),
|
|
3,
|
|
transport_validator.to_fn(),
|
|
)?;
|
|
assert_eq!(mnemonics[0].entropy().len(), 12);
|
|
assert_eq!(mnemonics[1].entropy().len(), 32);
|
|
|
|
let mnemonics = mgr.prompt_validated_wordlist(
|
|
"Enter a 24 and 48-word mnemonic: ",
|
|
&Default::default(),
|
|
3,
|
|
combine_validator.to_fn(),
|
|
)?;
|
|
assert_eq!(mnemonics[0].entropy().len(), 32);
|
|
assert_eq!(mnemonics[1].entropy().len(), 64);
|
|
|
|
Ok(())
|
|
}
|