diff --git a/crates/cashu-sdk/src/client/gloo_client.rs b/crates/cashu-sdk/src/client/gloo_client.rs index eebb4ca7..4b7f4dc6 100644 --- a/crates/cashu-sdk/src/client/gloo_client.rs +++ b/crates/cashu-sdk/src/client/gloo_client.rs @@ -62,7 +62,7 @@ impl Client for HttpClient { amount: Amount, unit: CurrencyUnit, ) -> Result { - let url = join_url(mint_url, &["v1", "quote", "bolt11"])?; + let url = join_url(mint_url, &["v1", "mint", "quote", "bolt11"])?; let request = MintQuoteBolt11Request { amount, unit }; let res = Request::post(url.as_str()) @@ -91,7 +91,7 @@ impl Client for HttpClient { quote: &str, premint_secrets: PreMintSecrets, ) -> Result { - let url = join_url(mint_url, &["v1", "mint"])?; + let url = join_url(mint_url, &["v1", "mint", "bolt11"])?; let request = MintBolt11Request { quote: quote.to_string(), @@ -126,7 +126,7 @@ impl Client for HttpClient { inputs: Vec, outputs: Option>, ) -> Result { - let url = join_url(mint_url, &["melt"])?; + let url = join_url(mint_url, &["v1", "melt", "bolt11"])?; let request = MeltBolt11Request { quote, diff --git a/crates/cashu-sdk/src/client/minreq_client.rs b/crates/cashu-sdk/src/client/minreq_client.rs index e361b6d1..c93432d3 100644 --- a/crates/cashu-sdk/src/client/minreq_client.rs +++ b/crates/cashu-sdk/src/client/minreq_client.rs @@ -4,8 +4,9 @@ use std::println; use async_trait::async_trait; use cashu::nuts::{ - BlindedMessage, Keys, MeltBolt11Request, MeltBolt11Response, MintBolt11Request, - MintBolt11Response, MintInfo, PreMintSecrets, Proof, SwapRequest, SwapResponse, *, + nut00, BlindedMessage, CurrencyUnit, Keys, KeysResponse, KeysetResponse, MeltBolt11Request, + MeltBolt11Response, MintBolt11Request, MintBolt11Response, MintInfo, MintQuoteBolt11Request, + MintQuoteBolt11Response, PreMintSecrets, Proof, SwapRequest, SwapResponse, }; #[cfg(feature = "nut07")] use cashu::nuts::{CheckSpendableRequest, CheckSpendableResponse}; @@ -27,8 +28,10 @@ impl Client for HttpClient { let url = join_url(mint_url, &["v1", "keys"])?; let keys = minreq::get(url).send()?.json::()?; - let keys: Keys = serde_json::from_str(&keys.to_string())?; - Ok(keys) + println!("{}", keys); + + let keys: KeysResponse = serde_json::from_str(&keys.to_string())?; + Ok(keys.keysets[0].keys.clone()) } /// Get Keysets [NUT-02] @@ -52,23 +55,22 @@ impl Client for HttpClient { amount: Amount, unit: CurrencyUnit, ) -> Result { - let url = join_url(mint_url, &["v1", "quote", "bolt11"])?; + let url = join_url(mint_url, &["v1", "mint", "quote", "bolt11"])?; let request = MintQuoteBolt11Request { amount, unit }; - let res = minreq::post(url) - .with_json(&request)? - .send()? - .json::()?; + let res = minreq::post(url).with_json(&request)?.send()?; + + print!("r: {:?}", res); let response: Result = - serde_json::from_value(res.clone()); + serde_json::from_value(res.json()?); match response { Ok(res) => Ok(res), Err(_) => { - warn!("Bolt11 Mint Quote Unexpected response: {}", res); - Err(Error::from_json(&res.to_string())?) + warn!("Bolt11 Mint Quote Unexpected response: {:?}", res); + Err(Error::from_json(&res.status_code.to_string())?) } } } @@ -80,7 +82,7 @@ impl Client for HttpClient { quote: &str, premint_secrets: PreMintSecrets, ) -> Result { - let url = join_url(mint_url, &["v1", "mint"])?; + let url = join_url(mint_url, &["v1", "mint", "bolt11"])?; let request = MintBolt11Request { quote: quote.to_string(), @@ -110,7 +112,7 @@ impl Client for HttpClient { inputs: Vec, outputs: Option>, ) -> Result { - let url = join_url(mint_url, &["v1", "melt"])?; + let url = join_url(mint_url, &["v1", "melt", "bolt11"])?; let request = MeltBolt11Request { quote, diff --git a/crates/cashu/Cargo.toml b/crates/cashu/Cargo.toml index 2f1ee96d..92dd31ae 100644 --- a/crates/cashu/Cargo.toml +++ b/crates/cashu/Cargo.toml @@ -26,6 +26,7 @@ bitcoin = { version = "0.30.0", features=["serde", "rand"] } hex = "0.4.3" k256 = { version = "0.13.1", features=["arithmetic", "serde", "schnorr"] } lightning-invoice = { version = "0.25.0", features=["serde"] } +log = "0.4.2" rand = "0.8.5" getrandom = { version = "0.2", features = ["js"] } serde = { workspace = true }