This commit is contained in:
thesimplekid
2023-06-22 11:05:26 -04:00
parent f18c370d30
commit 892e1500b5
2 changed files with 29 additions and 6 deletions

View File

@@ -5,8 +5,7 @@ use crate::nuts::nut00::{mint, BlindedMessages, Proofs, Token};
use crate::nuts::nut01::Keys;
use crate::nuts::nut03::RequestMintResponse;
use crate::nuts::nut06::{SplitPayload, SplitRequest};
use crate::nuts::nut08::MeltResponse;
use crate::types::{ProofsStatus, SendProofs};
use crate::types::{Melted, ProofsStatus, SendProofs};
pub use crate::Invoice;
use crate::{client::Client, dhke::construct_proofs, error::Error};
@@ -222,14 +221,30 @@ impl CashuWallet {
invoice: Invoice,
proofs: Proofs,
fee_reserve: Amount,
) -> Result<MeltResponse, Error> {
let change = BlindedMessages::blank(fee_reserve)?;
) -> Result<Melted, Error> {
let blinded = BlindedMessages::blank(fee_reserve)?;
let melt_response = self
.client
.melt(proofs, invoice, Some(change.blinded_messages))
.melt(proofs, invoice, Some(blinded.blinded_messages))
.await?;
Ok(melt_response)
let change_proofs = match melt_response.change {
Some(change) => Some(construct_proofs(
change,
blinded.rs,
blinded.secrets,
&self.mint_keys,
)?),
None => None,
};
let melted = Melted {
paid: true,
preimage: melt_response.preimage,
change: change_proofs,
};
Ok(melted)
}
pub fn proofs_to_token(&self, proofs: Proofs, memo: Option<String>) -> Result<String, Error> {

View File

@@ -15,3 +15,11 @@ pub struct SendProofs {
pub change_proofs: Proofs,
pub send_proofs: Proofs,
}
/// Melt response with proofs
#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
pub struct Melted {
pub paid: bool,
pub preimage: Option<String>,
pub change: Option<Proofs>,
}