From e01f867e0d385337f04021661e99d03b287cd555 Mon Sep 17 00:00:00 2001 From: thesimplekid Date: Tue, 16 Jan 2024 22:54:22 +0000 Subject: [PATCH] feat: mint and melt quote into response --- crates/cashu-sdk/src/mint/mod.rs | 1 - crates/cashu/src/nuts/nut03.rs | 2 +- crates/cashu/src/nuts/nut04.rs | 14 +++++++++++++- crates/cashu/src/nuts/nut05.rs | 13 +++++++++++++ 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/crates/cashu-sdk/src/mint/mod.rs b/crates/cashu-sdk/src/mint/mod.rs index 678c5f55..a0b64398 100644 --- a/crates/cashu-sdk/src/mint/mod.rs +++ b/crates/cashu-sdk/src/mint/mod.rs @@ -443,7 +443,6 @@ impl Mint { witness: None, }) } - Ok(CheckStateResponse { states }) } diff --git a/crates/cashu/src/nuts/nut03.rs b/crates/cashu/src/nuts/nut03.rs index f739bd56..1bf5af8e 100644 --- a/crates/cashu/src/nuts/nut03.rs +++ b/crates/cashu/src/nuts/nut03.rs @@ -1,4 +1,4 @@ -//! Request mint +//! Swap // https://github.com/cashubtc/nuts/blob/main/03.md use serde::{Deserialize, Serialize}; diff --git a/crates/cashu/src/nuts/nut04.rs b/crates/cashu/src/nuts/nut04.rs index f7e9994c..b8ead542 100644 --- a/crates/cashu/src/nuts/nut04.rs +++ b/crates/cashu/src/nuts/nut04.rs @@ -1,8 +1,9 @@ -//! Mint Tokens +//! Mint Tokens via Bolt11 // https://github.com/cashubtc/nuts/blob/main/04.md use serde::{Deserialize, Serialize}; use super::{BlindedMessage, BlindedSignature, CurrencyUnit, PaymentMethod}; +use crate::types::MintQuote; use crate::Amount; /// Mint quote request [NUT-04] @@ -27,6 +28,17 @@ pub struct MintQuoteBolt11Response { pub expiry: u64, } +impl From for MintQuoteBolt11Response { + fn from(mint_quote: MintQuote) -> MintQuoteBolt11Response { + MintQuoteBolt11Response { + quote: mint_quote.id, + request: mint_quote.request, + paid: mint_quote.paid, + expiry: mint_quote.expiry, + } + } +} + /// Mint request [NUT-04] #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct MintBolt11Request { diff --git a/crates/cashu/src/nuts/nut05.rs b/crates/cashu/src/nuts/nut05.rs index 4fccd2b3..1f06a4df 100644 --- a/crates/cashu/src/nuts/nut05.rs +++ b/crates/cashu/src/nuts/nut05.rs @@ -5,6 +5,7 @@ use serde::{Deserialize, Serialize}; use super::CurrencyUnit; use crate::nuts::Proofs; +use crate::types::MeltQuote; use crate::{Amount, Bolt11Invoice}; /// Melt quote request [NUT-05] @@ -31,6 +32,18 @@ pub struct MeltQuoteBolt11Response { pub expiry: u64, } +impl From for MeltQuoteBolt11Response { + fn from(melt_quote: MeltQuote) -> MeltQuoteBolt11Response { + MeltQuoteBolt11Response { + quote: melt_quote.id, + amount: u64::from(melt_quote.amount), + fee_reserve: u64::from(melt_quote.fee_reserve), + paid: melt_quote.paid, + expiry: melt_quote.expiry, + } + } +} + /// Melt Bolt11 Request [NUT-05] #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct MeltBolt11Request {