diff --git a/bindings/cashu-sdk-js/src/mint.rs b/bindings/cashu-sdk-js/src/mint.rs index 00fd6112..a20bd654 100644 --- a/bindings/cashu-sdk-js/src/mint.rs +++ b/bindings/cashu-sdk-js/src/mint.rs @@ -4,6 +4,9 @@ use cashu_js::{ nuts::{ nut02::{JsId, JsKeySet, JsKeySetsResponse, JsKeysResponse, JsMintKeySet}, nut04::{JsMintRequest, JsPostMintResponse}, + nut06::{JsSplitRequest, JsSplitResponse}, + nut07::{JsCheckSpendableRequest, JsCheckSpendableResponse}, + nut08::{JsMeltRequest, JsMeltResponse}, }, types::JsAmount, }; @@ -83,6 +86,12 @@ impl JsMint { self.inner.keyset(id.deref()).map(|ks| ks.into()) } + /// Rotate Keyset + #[wasm_bindgen(js_name = RotateKeyset)] + pub fn rotate_keyset(&mut self, secret: String, derivation_path: String, max_order: u8) { + self.inner.rotate_keyset(secret, derivation_path, max_order); + } + /// Process Mint Request #[wasm_bindgen(js_name = ProcessMintRequest)] pub fn process_mint_request( @@ -95,4 +104,54 @@ impl JsMint { .map_err(into_err)? .into()) } + + /// Process Split Request + #[wasm_bindgen(js_name = ProcessSplitRequest)] + pub fn process_split_request( + &mut self, + split_request: JsSplitRequest, + ) -> Result { + Ok(self + .inner + .process_split_request(split_request.deref().clone()) + .map_err(into_err)? + .into()) + } + + /// Check Spendable + #[wasm_bindgen(js_name = CheckSpendable)] + pub fn check_spendable( + &mut self, + check_request: JsCheckSpendableRequest, + ) -> Result { + Ok(self + .inner + .check_spendable(&check_request.deref().clone()) + .map_err(into_err)? + .into()) + } + + /// Check Verify Melt + #[wasm_bindgen(js_name = VerifyMelt)] + pub fn verify_melt( + &mut self, + _melt_request: JsMeltRequest, + ) -> Result { + todo!() + } + + /// Process Melt Request + #[wasm_bindgen(js_name = ProcessMeltRequest)] + pub fn process_melt_request( + &mut self, + melt_request: JsMeltRequest, + preimage: String, + total_spent: JsAmount, + ) -> Result { + Ok(self + .inner + .process_melt_request(melt_request.deref(), &preimage, *total_spent.deref()) + .map_err(into_err)? + .into()) + } } diff --git a/crates/cashu-sdk/src/mint.rs b/crates/cashu-sdk/src/mint.rs index 989a3eac..f1f0380a 100644 --- a/crates/cashu-sdk/src/mint.rs +++ b/crates/cashu-sdk/src/mint.rs @@ -1,8 +1,9 @@ use std::collections::{HashMap, HashSet}; +pub use cashu::error::mint::Error; + use cashu::dhke::sign_message; use cashu::dhke::verify_message; -pub use cashu::error::mint::Error; use cashu::nuts::nut00::BlindedMessage; use cashu::nuts::nut00::BlindedSignature; use cashu::nuts::nut00::Proof;