diff --git a/bindings/cdk-js/src/lib.rs b/bindings/cdk-js/src/lib.rs index beb70f8c..60c66d60 100644 --- a/bindings/cdk-js/src/lib.rs +++ b/bindings/cdk-js/src/lib.rs @@ -3,7 +3,7 @@ use wasm_bindgen::prelude::*; pub mod error; pub mod nuts; pub mod types; -#[cfg(all(feature = "wallet", target_arch = "wasm32"))] +#[cfg(target_arch = "wasm32")] pub mod wallet; #[wasm_bindgen(start)] diff --git a/bindings/cdk-js/src/wallet.rs b/bindings/cdk-js/src/wallet.rs index 097e899b..72b6868b 100644 --- a/bindings/cdk-js/src/wallet.rs +++ b/bindings/cdk-js/src/wallet.rs @@ -2,10 +2,10 @@ use std::ops::Deref; use std::str::FromStr; use std::sync::Arc; -use cdk::nuts::{Proofs, SigningKey}; +use cdk::nuts::{Proofs, SecretKey}; use cdk::url::UncheckedUrl; use cdk::wallet::Wallet; -use cdk::{Amount, HttpClient}; +use cdk::Amount; use cdk_rexie::RexieWalletDatabase; use wasm_bindgen::prelude::*; @@ -40,10 +40,9 @@ impl From for JsWallet { impl JsWallet { #[wasm_bindgen(constructor)] pub async fn new(seed: Vec) -> Self { - let client = HttpClient::new(); let db = RexieWalletDatabase::new().await.unwrap(); - Wallet::new(client, Arc::new(db), &seed).await.into() + Wallet::new(Arc::new(db), &seed).into() } #[wasm_bindgen(js_name = totalBalance)] @@ -62,10 +61,15 @@ impl JsWallet { } #[wasm_bindgen(js_name = checkAllPendingProofs)] - pub async fn check_all_pending_proofs(&self) -> Result { + pub async fn check_all_pending_proofs(&self, mint_url: Option) -> Result { + let mint_url = match mint_url { + Some(url) => Some(UncheckedUrl::from_str(&url).map_err(into_err)?), + None => None, + }; + Ok(self .inner - .check_all_pending_proofs + .check_all_pending_proofs(mint_url) .await .map_err(into_err)? .into()) @@ -200,14 +204,15 @@ impl JsWallet { signing_keys: JsValue, preimages: JsValue, ) -> Result { - let signing_keys: Option> = serde_wasm_bindgen::from_value(signing_keys)?; + let signing_keys: Option> = serde_wasm_bindgen::from_value(signing_keys)?; let preimages: Option> = serde_wasm_bindgen::from_value(preimages)?; - self.inner + Ok(self + .inner .receive(&encoded_token, signing_keys, preimages) .await .map_err(into_err)? - .into() + .into()) } #[wasm_bindgen(js_name = send)] diff --git a/crates/cdk/src/wallet.rs b/crates/cdk/src/wallet.rs index dcc4ab13..6ea05ae0 100644 --- a/crates/cdk/src/wallet.rs +++ b/crates/cdk/src/wallet.rs @@ -311,8 +311,15 @@ impl Wallet { /// Checks pending proofs for spent status #[instrument(skip(self))] - pub async fn check_all_pending_proofs(&self) -> Result { - let mints = self.localstore.get_mints().await?; + pub async fn check_all_pending_proofs( + &self, + mint_url: Option, + ) -> Result { + let mints = match mint_url { + Some(mint_url) => HashMap::from_iter(vec![(mint_url, None)]), + None => self.localstore.get_mints().await?, + }; + let mut balance = Amount::ZERO; for (mint, _) in mints {