# __wasm_bindgen_generated_gen_pow in mcaptcha_browser - Rust
generate proof-of-work
Keywords: rust, rustlang, rust-lang, __wasm_bindgen_generated_gen_pow

# Function mcaptcha_browser::__wasm_bindgen_generated_gen_pow
[−] [src]

    pub extern "C" fn __wasm_bindgen_generated_gen_pow(
        arg0: <String as FromWasmAbi>::Abi,
        arg1: <String as FromWasmAbi>::Abi,
        arg2: <u32 as FromWasmAbi>::Abi
    ) -> <String as ReturnWasmAbi>::Abi

Expand description

generate proof-of-work

    fn main() {
       use mcaptcha_browser::*;
       use pow_sha256::*;

       // salt using which PoW should be computed
       const SALT: &str = "yrandomsaltisnotlongenoug";
       // one-time phrase over which PoW should be computed
       const PHRASE: &str = "ironmansucks";
       // and the difficulty factor
       const DIFFICULTY: u32 = 1000;

       // currently gen_pow() returns a JSON formated string to better communicate
       // with JavaScript. See [PoW<T>][pow_sha256::PoW] for schema
       let serialised_work = gen_pow(SALT.into(), PHRASE.into(), DIFFICULTY);

       let work: Work = serde_json::from_str(&serialised_work).unwrap();

       let work = PoWBuilder::default()
           .result(work.result)
           .nonce(work.nonce)
           .build()
           .unwrap();

       let config = ConfigBuilder::default().salt(SALT.into()).build().unwrap();
       assert!(config.is_valid_proof(&work, &PHRASE.to_string()));
       assert!(config.is_sufficient_difficulty(&work, DIFFICULTY));
    }