From 61eca576f297a0d7a90c4749cff5f796a086d7ba Mon Sep 17 00:00:00 2001 From: librelois Date: Sun, 10 Jan 2021 10:27:31 +0100 Subject: [PATCH] ref(dubp): make gen_mnemonic really async --- native/dubp_rs/src/lib.rs | 3 ++- native/dubp_rs/src/mnemonic.rs | 12 ++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/native/dubp_rs/src/lib.rs b/native/dubp_rs/src/lib.rs index e0280e0..a778aba 100644 --- a/native/dubp_rs/src/lib.rs +++ b/native/dubp_rs/src/lib.rs @@ -105,7 +105,7 @@ pub extern "C" fn gen_dewif( #[no_mangle] pub extern "C" fn gen_mnemonic(port: i64, language: u32) { - Isolate::new(port).post(DartRes::from(mnemonic::gen_mnemonic(language))); + exec_async(port, || u32_to_language(language), mnemonic::gen_mnemonic) } #[no_mangle] @@ -136,6 +136,7 @@ pub extern "C" fn mnemonic_to_pubkey( exec_async( port, || { + let language = u32_to_language(language)?; let mnemonic_phrase = char_ptr_to_str(mnemonic_phrase)?; Ok((language, mnemonic_phrase)) }, diff --git a/native/dubp_rs/src/mnemonic.rs b/native/dubp_rs/src/mnemonic.rs index 765427d..b9148e0 100644 --- a/native/dubp_rs/src/mnemonic.rs +++ b/native/dubp_rs/src/mnemonic.rs @@ -15,15 +15,15 @@ use crate::*; -pub(super) fn gen_mnemonic(language: u32) -> Result { - let mnemonic = Mnemonic::new(MnemonicType::Words12, u32_to_language(language)?) - .map_err(|_| DubpError::RandErr)?; +pub(super) fn gen_mnemonic(language: Language) -> Result { + let mnemonic = + Mnemonic::new(MnemonicType::Words12, language).map_err(|_| DubpError::RandErr)?; Ok(mnemonic.phrase().to_owned()) } -pub(super) fn mnemonic_to_pubkey(language: u32, mnemonic: &str) -> Result { - let mnemonic = Mnemonic::from_phrase(mnemonic, u32_to_language(language)?) - .map_err(|_| DubpError::WrongLanguage)?; +pub(super) fn mnemonic_to_pubkey(language: Language, mnemonic: &str) -> Result { + let mnemonic = + Mnemonic::from_phrase(mnemonic, language).map_err(|_| DubpError::WrongLanguage)?; let seed = dup_crypto::mnemonic::mnemonic_to_seed(&mnemonic); let keypair = KeyPairFromSeed32Generator::generate(seed); Ok(keypair.public_key().to_base58())