mirror of
https://github.com/aljazceru/cdk.git
synced 2026-02-05 05:06:14 +01:00
Merge pull request #665 from thesimplekid/mint_mod_types
refactor: move Mint and Melt quote to cdk common
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
- Unifies and optimizes the proof selection algorithm to use Wallet::select_proofs ([davidcaseria]).
|
||||
- Wallet::send now requires a PreparedSend ([davidcaseria]).
|
||||
- WalletDatabase proof state update functions have been consolidated into update_proofs_state ([davidcaseria]).
|
||||
- Moved `MintQuote` and `MeltQuote` from `cashu` to `cdk-common` ([thesimplekid]).
|
||||
|
||||
### Added
|
||||
- Added redb feature to mintd in order to meet MSRV target ([thesimplekid]).
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
//! CDK common types and traits
|
||||
pub mod amount;
|
||||
pub mod dhke;
|
||||
#[cfg(feature = "mint")]
|
||||
pub mod mint;
|
||||
pub mod mint_url;
|
||||
pub mod nuts;
|
||||
pub mod secret;
|
||||
|
||||
@@ -139,21 +139,6 @@ impl From<MintQuoteBolt11Response<Uuid>> for MintQuoteBolt11Response<String> {
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "mint")]
|
||||
impl From<crate::mint::MintQuote> for MintQuoteBolt11Response<Uuid> {
|
||||
fn from(mint_quote: crate::mint::MintQuote) -> MintQuoteBolt11Response<Uuid> {
|
||||
MintQuoteBolt11Response {
|
||||
quote: mint_quote.id,
|
||||
request: mint_quote.request,
|
||||
state: mint_quote.state,
|
||||
expiry: Some(mint_quote.expiry),
|
||||
pubkey: mint_quote.pubkey,
|
||||
amount: Some(mint_quote.amount),
|
||||
unit: Some(mint_quote.unit.clone()),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Mint request [NUT-04]
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
||||
#[cfg_attr(feature = "swagger", derive(utoipa::ToSchema))]
|
||||
|
||||
@@ -14,8 +14,6 @@ use uuid::Uuid;
|
||||
|
||||
use super::nut00::{BlindSignature, BlindedMessage, CurrencyUnit, PaymentMethod, Proofs};
|
||||
use super::nut15::Mpp;
|
||||
#[cfg(feature = "mint")]
|
||||
use crate::mint::{self, MeltQuote};
|
||||
use crate::nuts::MeltQuoteState;
|
||||
use crate::{Amount, Bolt11Invoice};
|
||||
|
||||
@@ -222,24 +220,6 @@ impl From<MeltQuoteBolt11Response<Uuid>> for MeltQuoteBolt11Response<String> {
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "mint")]
|
||||
impl From<&MeltQuote> for MeltQuoteBolt11Response<Uuid> {
|
||||
fn from(melt_quote: &MeltQuote) -> MeltQuoteBolt11Response<Uuid> {
|
||||
MeltQuoteBolt11Response {
|
||||
quote: melt_quote.id,
|
||||
payment_preimage: None,
|
||||
change: None,
|
||||
state: melt_quote.state,
|
||||
paid: Some(melt_quote.state == MeltQuoteState::Paid),
|
||||
expiry: melt_quote.expiry,
|
||||
amount: melt_quote.amount,
|
||||
fee_reserve: melt_quote.fee_reserve,
|
||||
request: None,
|
||||
unit: Some(melt_quote.unit.clone()),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// A custom deserializer is needed until all mints
|
||||
// update some will return without the required state.
|
||||
impl<'de, Q: DeserializeOwned> Deserialize<'de> for MeltQuoteBolt11Response<Q> {
|
||||
@@ -334,25 +314,6 @@ impl<'de, Q: DeserializeOwned> Deserialize<'de> for MeltQuoteBolt11Response<Q> {
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "mint")]
|
||||
impl From<mint::MeltQuote> for MeltQuoteBolt11Response<Uuid> {
|
||||
fn from(melt_quote: mint::MeltQuote) -> MeltQuoteBolt11Response<Uuid> {
|
||||
let paid = melt_quote.state == QuoteState::Paid;
|
||||
MeltQuoteBolt11Response {
|
||||
quote: melt_quote.id,
|
||||
amount: melt_quote.amount,
|
||||
fee_reserve: melt_quote.fee_reserve,
|
||||
paid: Some(paid),
|
||||
state: melt_quote.state,
|
||||
expiry: melt_quote.expiry,
|
||||
payment_preimage: melt_quote.payment_preimage,
|
||||
change: None,
|
||||
request: Some(melt_quote.request.clone()),
|
||||
unit: Some(melt_quote.unit.clone()),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Melt Bolt11 Request [NUT-05]
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
||||
#[cfg_attr(feature = "swagger", derive(utoipa::ToSchema))]
|
||||
|
||||
@@ -10,6 +10,8 @@ pub mod common;
|
||||
pub mod database;
|
||||
pub mod error;
|
||||
#[cfg(feature = "mint")]
|
||||
pub mod mint;
|
||||
#[cfg(feature = "mint")]
|
||||
pub mod payment;
|
||||
pub mod pub_sub;
|
||||
pub mod subscription;
|
||||
@@ -19,8 +21,6 @@ pub mod ws;
|
||||
pub use bitcoin;
|
||||
pub use cashu::amount::{self, Amount};
|
||||
pub use cashu::lightning_invoice::{self, Bolt11Invoice};
|
||||
#[cfg(feature = "mint")]
|
||||
pub use cashu::mint;
|
||||
pub use cashu::nuts::{self, *};
|
||||
#[cfg(feature = "wallet")]
|
||||
pub use cashu::wallet;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
//! Mint types
|
||||
|
||||
use bitcoin::bip32::DerivationPath;
|
||||
use cashu::{MeltQuoteBolt11Response, MintQuoteBolt11Response};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use uuid::Uuid;
|
||||
|
||||
@@ -149,3 +150,52 @@ impl From<MintKeySetInfo> for KeySetInfo {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl From<MintQuote> for MintQuoteBolt11Response<Uuid> {
|
||||
fn from(mint_quote: crate::mint::MintQuote) -> MintQuoteBolt11Response<Uuid> {
|
||||
MintQuoteBolt11Response {
|
||||
quote: mint_quote.id,
|
||||
request: mint_quote.request,
|
||||
state: mint_quote.state,
|
||||
expiry: Some(mint_quote.expiry),
|
||||
pubkey: mint_quote.pubkey,
|
||||
amount: Some(mint_quote.amount),
|
||||
unit: Some(mint_quote.unit.clone()),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl From<&MeltQuote> for MeltQuoteBolt11Response<Uuid> {
|
||||
fn from(melt_quote: &MeltQuote) -> MeltQuoteBolt11Response<Uuid> {
|
||||
MeltQuoteBolt11Response {
|
||||
quote: melt_quote.id,
|
||||
payment_preimage: None,
|
||||
change: None,
|
||||
state: melt_quote.state,
|
||||
paid: Some(melt_quote.state == MeltQuoteState::Paid),
|
||||
expiry: melt_quote.expiry,
|
||||
amount: melt_quote.amount,
|
||||
fee_reserve: melt_quote.fee_reserve,
|
||||
request: None,
|
||||
unit: Some(melt_quote.unit.clone()),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl From<MeltQuote> for MeltQuoteBolt11Response<Uuid> {
|
||||
fn from(melt_quote: MeltQuote) -> MeltQuoteBolt11Response<Uuid> {
|
||||
let paid = melt_quote.state == MeltQuoteState::Paid;
|
||||
MeltQuoteBolt11Response {
|
||||
quote: melt_quote.id,
|
||||
amount: melt_quote.amount,
|
||||
fee_reserve: melt_quote.fee_reserve,
|
||||
paid: Some(paid),
|
||||
state: melt_quote.state,
|
||||
expiry: melt_quote.expiry,
|
||||
payment_preimage: melt_quote.payment_preimage,
|
||||
change: None,
|
||||
request: Some(melt_quote.request.clone()),
|
||||
unit: Some(melt_quote.unit.clone()),
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user