From 7f3fdd50700683058a458672745726e91904070a Mon Sep 17 00:00:00 2001 From: Santiago Martin Date: Mon, 14 Apr 2025 13:56:47 -0700 Subject: [PATCH] Add create hold invoice method santi/hold-invoice-b --- lightspark/lightspark_client.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/lightspark/lightspark_client.py b/lightspark/lightspark_client.py index 7ac35c5..485ef07 100644 --- a/lightspark/lightspark_client.py +++ b/lightspark/lightspark_client.py @@ -15,6 +15,7 @@ PrivateFormat, PublicFormat, ) + from lightspark.exceptions import LightsparkException from lightspark.objects.Account import Account from lightspark.objects.Account import from_json as Account_from_json @@ -187,6 +188,27 @@ def create_invoice( return Invoice_from_json(self._requester, json["create_invoice"]["invoice"]) + def create_hold_invoice( + self, + node_id: str, + amount_msats: int, + memo: Optional[str] = None, + payment_hash: Optional[str] = None, + expiry_secs: Optional[int] = None, + ) -> Invoice: + logger.info("Creating an invoice for node %s.", node_id) + variables = { + "amount_msats": amount_msats, + "node_id": node_id, + "payment_hash": payment_hash, + "memo": memo, + } + if expiry_secs is not None: + variables["expiry_secs"] = expiry_secs + json = self._requester.execute_graphql(CREATE_INVOICE_MUTATION, variables) + + return Invoice_from_json(self._requester, json["create_invoice"]["invoice"]) + def create_lnurl_invoice( self, node_id: str,