(cherry picked from commit 4451042c76
)
Co-authored-by: guanqun <guanqun.lu@gmail.com>
This commit is contained in:
@ -298,7 +298,24 @@ pub fn keypair_from_seed_phrase(
|
|||||||
keypair_from_seed_phrase_and_passphrase(&seed_phrase, &passphrase)?
|
keypair_from_seed_phrase_and_passphrase(&seed_phrase, &passphrase)?
|
||||||
} else {
|
} else {
|
||||||
let sanitized = sanitize_seed_phrase(seed_phrase);
|
let sanitized = sanitize_seed_phrase(seed_phrase);
|
||||||
let mnemonic = Mnemonic::from_phrase(&sanitized, Language::English)?;
|
let parse_language_fn = || {
|
||||||
|
for language in &[
|
||||||
|
Language::English,
|
||||||
|
Language::ChineseSimplified,
|
||||||
|
Language::ChineseTraditional,
|
||||||
|
Language::Japanese,
|
||||||
|
Language::Spanish,
|
||||||
|
Language::Korean,
|
||||||
|
Language::French,
|
||||||
|
Language::Italian,
|
||||||
|
] {
|
||||||
|
if let Ok(mnemonic) = Mnemonic::from_phrase(&sanitized, *language) {
|
||||||
|
return Ok(mnemonic);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Err("Can't get mnemonic from seed phrases")
|
||||||
|
};
|
||||||
|
let mnemonic = parse_language_fn()?;
|
||||||
let passphrase = prompt_passphrase(&passphrase_prompt)?;
|
let passphrase = prompt_passphrase(&passphrase_prompt)?;
|
||||||
let seed = Seed::new(&mnemonic, &passphrase);
|
let seed = Seed::new(&mnemonic, &passphrase);
|
||||||
keypair_from_seed(seed.as_bytes())?
|
keypair_from_seed(seed.as_bytes())?
|
||||||
|
@ -270,6 +270,15 @@ fn main() -> Result<(), Box<dyn error::Error>> {
|
|||||||
.takes_value(true)
|
.takes_value(true)
|
||||||
.help("Specify the number of words that will be present in the generated seed phrase"),
|
.help("Specify the number of words that will be present in the generated seed phrase"),
|
||||||
)
|
)
|
||||||
|
.arg(
|
||||||
|
Arg::with_name("language")
|
||||||
|
.long("language")
|
||||||
|
.possible_values(&["english", "chinese-simplified", "chinese-traditional", "japanese", "spanish", "korean", "french", "italian"])
|
||||||
|
.default_value("english")
|
||||||
|
.value_name("LANGUAGE")
|
||||||
|
.takes_value(true)
|
||||||
|
.help("Specify the mnemonic lanaguage that will be present in the generated seed phrase"),
|
||||||
|
)
|
||||||
.arg(
|
.arg(
|
||||||
Arg::with_name("no_passphrase")
|
Arg::with_name("no_passphrase")
|
||||||
.long("no-passphrase")
|
.long("no-passphrase")
|
||||||
@ -430,7 +439,18 @@ fn do_main(matches: &ArgMatches<'_>) -> Result<(), Box<dyn error::Error>> {
|
|||||||
|
|
||||||
let word_count = value_t!(matches.value_of("word_count"), usize).unwrap();
|
let word_count = value_t!(matches.value_of("word_count"), usize).unwrap();
|
||||||
let mnemonic_type = MnemonicType::for_word_count(word_count)?;
|
let mnemonic_type = MnemonicType::for_word_count(word_count)?;
|
||||||
let mnemonic = Mnemonic::new(mnemonic_type, Language::English);
|
let language = match matches.value_of("language").unwrap() {
|
||||||
|
"english" => Language::English,
|
||||||
|
"chinese-simplified" => Language::ChineseSimplified,
|
||||||
|
"chinese-traditional" => Language::ChineseTraditional,
|
||||||
|
"japanese" => Language::Japanese,
|
||||||
|
"spanish" => Language::Spanish,
|
||||||
|
"korean" => Language::Korean,
|
||||||
|
"french" => Language::French,
|
||||||
|
"italian" => Language::Italian,
|
||||||
|
_ => unreachable!(),
|
||||||
|
};
|
||||||
|
let mnemonic = Mnemonic::new(mnemonic_type, language);
|
||||||
let passphrase = if matches.is_present("no_passphrase") {
|
let passphrase = if matches.is_present("no_passphrase") {
|
||||||
NO_PASSPHRASE.to_string()
|
NO_PASSPHRASE.to_string()
|
||||||
} else {
|
} else {
|
||||||
|
Reference in New Issue
Block a user