diff --git a/CHANGELOG.md b/CHANGELOG.md index c940ab73..8291bcb1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,7 @@ ### Summary ### Changed +- cdk(wallet): `fn send` returns `Token` so the user can use the struct of convert it to a v3 or v4 string. ### Added - cdk(NUT-11): Add `Copy` on `SigFlag` ([thesimplekid]). diff --git a/bindings/cdk-js/src/wallet.rs b/bindings/cdk-js/src/wallet.rs index e1378bfc..3999a277 100644 --- a/bindings/cdk-js/src/wallet.rs +++ b/bindings/cdk-js/src/wallet.rs @@ -219,7 +219,8 @@ impl JsWallet { let target = split_target_amount .map(|a| SplitTarget::Value(*a.deref())) .unwrap_or_default(); - self.inner + Ok(self + .inner .send( Amount::from(amount), memo, @@ -229,7 +230,8 @@ impl JsWallet { false, ) .await - .map_err(into_err) + .map_err(into_err)? + .to_string()) } #[allow(clippy::too_many_arguments)] diff --git a/crates/cdk-cli/src/sub_commands/send.rs b/crates/cdk-cli/src/sub_commands/send.rs index 5d78a497..5d006e56 100644 --- a/crates/cdk-cli/src/sub_commands/send.rs +++ b/crates/cdk-cli/src/sub_commands/send.rs @@ -5,7 +5,7 @@ use std::str::FromStr; use anyhow::{bail, Result}; use cdk::amount::SplitTarget; -use cdk::nuts::{Conditions, PublicKey, SpendingConditions, Token}; +use cdk::nuts::{Conditions, PublicKey, SpendingConditions}; use cdk::wallet::types::SendKind; use cdk::wallet::Wallet; use cdk::{Amount, UncheckedUrl}; @@ -176,7 +176,7 @@ pub async fn send( match sub_command_args.v3 { true => { - let token = Token::from_str(&token)?; + let token = token; println!("{}", token.to_v3_string()); } diff --git a/crates/cdk/examples/p2pk.rs b/crates/cdk/examples/p2pk.rs index e1d7b8b8..f07db43d 100644 --- a/crates/cdk/examples/p2pk.rs +++ b/crates/cdk/examples/p2pk.rs @@ -63,7 +63,7 @@ async fn main() -> Result<(), Error> { println!("{}", token); let amount = wallet - .receive(&token, SplitTarget::default(), &[secret], &[]) + .receive(&token.to_string(), SplitTarget::default(), &[secret], &[]) .await .unwrap(); diff --git a/crates/cdk/src/wallet/mod.rs b/crates/cdk/src/wallet/mod.rs index 29eb102c..0b0d8a33 100644 --- a/crates/cdk/src/wallet/mod.rs +++ b/crates/cdk/src/wallet/mod.rs @@ -965,14 +965,19 @@ impl Wallet { /// Send specific proofs #[instrument(skip(self))] - pub async fn send_proofs(&self, memo: Option, proofs: Proofs) -> Result { + pub async fn send_proofs(&self, memo: Option, proofs: Proofs) -> Result { for proof in proofs.iter() { self.localstore .set_proof_state(proof.y()?, State::Reserved) .await?; } - Ok(Token::new(self.mint_url.clone(), proofs, memo, Some(self.unit)).to_string()) + Ok(Token::new( + self.mint_url.clone(), + proofs, + memo, + Some(self.unit), + )) } /// Send @@ -985,7 +990,7 @@ impl Wallet { amount_split_target: &SplitTarget, send_kind: &SendKind, include_fees: bool, - ) -> Result { + ) -> Result { // If online send check mint for current keysets fees if matches!( send_kind, diff --git a/crates/cdk/src/wallet/multi_mint_wallet.rs b/crates/cdk/src/wallet/multi_mint_wallet.rs index ca5d0d66..75f43e85 100644 --- a/crates/cdk/src/wallet/multi_mint_wallet.rs +++ b/crates/cdk/src/wallet/multi_mint_wallet.rs @@ -125,7 +125,7 @@ impl MultiMintWallet { conditions: Option, send_kind: SendKind, include_fees: bool, - ) -> Result { + ) -> Result { let wallet = self .get_wallet(wallet_key) .await