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

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));
}