Esempio n. 1
0
    async def paid_invoices_stream(self) -> AsyncGenerator[str, None]:
        async with purerpc.secure_channel(
            self.endpoint,
            self.port,
            get_ssl_context(self.cert_path),
        ) as channel:
            client = purerpc.Client("lnrpc.Lightning", channel)
            subscribe_invoices = client.get_method_stub(
                "SubscribeInvoices",
                purerpc.RPCSignature(
                    purerpc.Cardinality.UNARY_STREAM,
                    ln.InvoiceSubscription,
                    ln.Invoice,
                ),
            )
            macaroon = load_macaroon(self.macaroon_path)

            async for inv in subscribe_invoices(
                ln.InvoiceSubscription(),
                metadata=[("macaroon", macaroon)],
            ):
                if not inv.settled:
                    continue

                checking_id = stringify_checking_id(inv.r_hash)
                yield checking_id

        print("lost connection to lnd InvoiceSubscription, please restart lnbits.")
 async def subscribe_invoices(self):
     await self._ln_stub.SubscribeInvoices(ln.InvoiceSubscription())
Esempio n. 3
0
 async def subscribe_invoices(self):
     async for invoice in self._ln_stub.SubscribeInvoices(
             ln.InvoiceSubscription()):
         yield invoice