diff --git a/crates/cdk-axum/src/router_handlers.rs b/crates/cdk-axum/src/router_handlers.rs index aff3b764..86ecbd62 100644 --- a/crates/cdk-axum/src/router_handlers.rs +++ b/crates/cdk-axum/src/router_handlers.rs @@ -84,7 +84,7 @@ pub async fn get_mint_bolt11_quote( create_invoice_response.request.to_string(), payload.unit, payload.amount, - quote_expiry, + create_invoice_response.expiry.unwrap_or(0), create_invoice_response.request_lookup_id, ) .await diff --git a/crates/cdk-cln/src/lib.rs b/crates/cdk-cln/src/lib.rs index 2ec98cba..3a89dccd 100644 --- a/crates/cdk-cln/src/lib.rs +++ b/crates/cdk-cln/src/lib.rs @@ -240,10 +240,16 @@ impl MintLightning for Cln { .map_err(Error::from)?; match cln_response { - cln_rpc::Response::Invoice(invoice_res) => Ok(CreateInvoiceResponse { - request_lookup_id: label, - request: Bolt11Invoice::from_str(&invoice_res.bolt11)?, - }), + cln_rpc::Response::Invoice(invoice_res) => { + let request = Bolt11Invoice::from_str(&invoice_res.bolt11)?; + let expiry = request.expires_at().map(|t| t.as_secs()); + + Ok(CreateInvoiceResponse { + request_lookup_id: label, + request, + expiry, + }) + } _ => { tracing::warn!("CLN returned wrong response kind"); Err(Error::WrongClnResponse.into()) diff --git a/crates/cdk-fake-wallet/src/lib.rs b/crates/cdk-fake-wallet/src/lib.rs index 0ec3a097..0e616797 100644 --- a/crates/cdk-fake-wallet/src/lib.rs +++ b/crates/cdk-fake-wallet/src/lib.rs @@ -176,9 +176,12 @@ impl MintLightning for FakeWallet { } }); + let expiry = invoice.expires_at().map(|t| t.as_secs()); + Ok(CreateInvoiceResponse { request_lookup_id: label, request: invoice, + expiry, }) } diff --git a/crates/cdk-strike/src/lib.rs b/crates/cdk-strike/src/lib.rs index bf2d7a7c..1db80c4e 100644 --- a/crates/cdk-strike/src/lib.rs +++ b/crates/cdk-strike/src/lib.rs @@ -199,9 +199,13 @@ impl MintLightning for Strike { .invoice_quote(&create_invoice_response.invoice_id) .await?; + let request: Bolt11Invoice = quote.ln_invoice.parse()?; + let expiry = request.expires_at().map(|t| t.as_secs()); + Ok(CreateInvoiceResponse { request_lookup_id: create_invoice_response.invoice_id, request: quote.ln_invoice.parse()?, + expiry, }) } diff --git a/crates/cdk/src/cdk_lightning/mod.rs b/crates/cdk/src/cdk_lightning/mod.rs index c299c77f..8cf7e480 100644 --- a/crates/cdk/src/cdk_lightning/mod.rs +++ b/crates/cdk/src/cdk_lightning/mod.rs @@ -89,6 +89,8 @@ pub struct CreateInvoiceResponse { pub request_lookup_id: String, /// Bolt11 payment request pub request: Bolt11Invoice, + /// Unix Expiry of Invoice + pub expiry: Option, } /// Pay invoice response