149bec6
use wasm_bindgen::prelude::*;
use crate::challenge::{check as check_native, solve as solve_native};
#[wasm_bindgen(js_name = solve, catch)]
pub fn solve(nonce: &str, difficulty: u32, max_attempts: u32) -> Result<String, JsError> {
solve_native(nonce, difficulty, max_attempts as u64)
.map(|n| n.to_string())
.ok_or_else(|| JsError::new("no solution within max_attempts"))
}
#[wasm_bindgen(js_name = check, catch)]
pub fn check(nonce: &str, difficulty: u32, answer: &str) -> Result<bool, JsError> {
let parsed: u64 = answer
.trim()
.parse()
.map_err(|e| JsError::new(&format!("invalid answer: {e}")))?;
Ok(check_native(nonce, difficulty, parsed))
}