From e93fb506af8485f4f06261e513be7c91f7627f77 Mon Sep 17 00:00:00 2001 From: thesimplekid Date: Sun, 3 Dec 2023 18:29:15 +0000 Subject: [PATCH] improve: impl 'to_string()' on 'Token' --- bindings/cashu-ffi/src/nuts/nut00/token.rs | 2 +- bindings/cashu-js/src/nuts/nut00/token.rs | 4 ++-- crates/cashu-sdk/src/wallet.rs | 2 +- crates/cashu/src/nuts/nut00.rs | 16 ++++++++-------- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/bindings/cashu-ffi/src/nuts/nut00/token.rs b/bindings/cashu-ffi/src/nuts/nut00/token.rs index 1377a09d..83c2077e 100644 --- a/bindings/cashu-ffi/src/nuts/nut00/token.rs +++ b/bindings/cashu-ffi/src/nuts/nut00/token.rs @@ -45,7 +45,7 @@ impl Token { } pub fn as_string(&self) -> Result { - Ok(self.inner.convert_to_string()?) + Ok(self.inner.to_string()) } } diff --git a/bindings/cashu-js/src/nuts/nut00/token.rs b/bindings/cashu-js/src/nuts/nut00/token.rs index 1cfa1b70..141fa6fc 100644 --- a/bindings/cashu-js/src/nuts/nut00/token.rs +++ b/bindings/cashu-js/src/nuts/nut00/token.rs @@ -57,7 +57,7 @@ impl JsToken { /// As String #[wasm_bindgen(js_name = asString)] - pub fn as_string(&self) -> Result { - self.inner.convert_to_string().map_err(into_err) + pub fn as_string(&self) -> String { + self.inner.to_string() } } diff --git a/crates/cashu-sdk/src/wallet.rs b/crates/cashu-sdk/src/wallet.rs index cd6ddb1f..f0488b4f 100644 --- a/crates/cashu-sdk/src/wallet.rs +++ b/crates/cashu-sdk/src/wallet.rs @@ -340,7 +340,7 @@ impl Wallet { unit: Option, memo: Option, ) -> Result { - Ok(Token::new(self.mint_url.clone(), proofs, unit, memo)?.convert_to_string()?) + Ok(Token::new(self.mint_url.clone(), proofs, unit, memo)?.to_string()) } } diff --git a/crates/cashu/src/nuts/nut00.rs b/crates/cashu/src/nuts/nut00.rs index 4327758d..47f3a20c 100644 --- a/crates/cashu/src/nuts/nut00.rs +++ b/crates/cashu/src/nuts/nut00.rs @@ -23,6 +23,7 @@ pub struct BlindedMessage { #[cfg(feature = "wallet")] pub mod wallet { use std::cmp::Ordering; + use std::fmt; use std::str::FromStr; use base64::engine::{general_purpose, GeneralPurpose}; @@ -201,7 +202,6 @@ pub mod wallet { #[serde(skip_serializing_if = "Option::is_none")] pub memo: Option, #[serde(skip_serializing_if = "Option::is_none")] - /// Unit of the token eg: sats, usd pub unit: Option, } @@ -209,8 +209,8 @@ pub mod wallet { pub fn new( mint_url: UncheckedUrl, proofs: Proofs, - unit: Option, memo: Option, + unit: Option, ) -> Result { if proofs.is_empty() { return Err(wallet::Error::ProofsRequired); @@ -257,11 +257,11 @@ pub mod wallet { } } - impl Token { - pub fn convert_to_string(&self) -> Result { - let json_string = serde_json::to_string(self)?; + impl fmt::Display for Token { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let json_string = serde_json::to_string(self).map_err(|_| fmt::Error)?; let encoded = general_purpose::STANDARD.encode(json_string); - Ok(format!("cashuA{}", encoded)) + write!(f, "cashuA{}", encoded) } } } @@ -389,7 +389,7 @@ mod tests { Id::from_str("DSAl9nvvyfva").unwrap() ); - let encoded = &token.convert_to_string().unwrap(); + let encoded = &token.to_string(); let token_data = Token::from_str(encoded).unwrap(); @@ -408,7 +408,7 @@ mod tests { ) .unwrap(); - let _token = Token::from_str(&token.convert_to_string().unwrap()).unwrap(); + let _token = Token::from_str(&token.to_string()).unwrap(); let _token = Token::from_str("cashuAeyJ0b2tlbiI6W3sicHJvb2ZzIjpbeyJpZCI6IjBOSTNUVUFzMVNmeSIsImFtb3VudCI6MSwic2VjcmV0IjoiVE92cGVmZGxSZ0EzdlhMN05pM2MvRE1oY29URXNQdnV4eFc0Rys2dXVycz0iLCJDIjoiMDNiZThmMzQwOTMxYTI4ZTlkMGRmNGFmMWQwMWY1ZTcxNTFkMmQ1M2RiN2Y0ZDAyMWQzZGUwZmRiMDNjZGY4ZTlkIn1dLCJtaW50IjoiaHR0cHM6Ly9sZWdlbmQubG5iaXRzLmNvbS9jYXNodS9hcGkvdjEvNGdyOVhjbXozWEVrVU53aUJpUUdvQyJ9XX0").unwrap(); }