class LightningDaemon(object): def __init__(self, daemon_rpc): self.rpc = LightningRpc(daemon_rpc) def invoice_c_lightning(self, msatoshi, label, description): result = self.rpc.invoice(msatoshi, label, description, expiry=INVOICE_EXPIRY) log(json.dumps(result, indent=1, sort_keys=True)) return result def get_c_lightning_invoices(self): result = self.rpc.listinvoices() #log(json.dumps(result, indent=1, sort_keys=True)) return result def delete(self, label, state="paid"): result = self.rpc.delinvoice(label, state) # log(json.dumps(result, indent=1, sort_keys=True)) return result def getinfo(self): return self.rpc.getinfo() def listfunds(self): return self.rpc.listfunds() def listnodes(self): return self.rpc.listnodes()
class RealDaemon(Daemon): """ calls c-lightning via the rpc """ def __init__(self, path): super().__init__() self.path = path print("rpc path: %s" % self.path) self.rpc = LightningRpc(self.path) def invoice_c_lightning(self, msatoshi, label, description, expiry, preimage): print("invoice real") try: result = self.rpc.invoice(msatoshi, label, description, expiry=expiry, preimage=preimage) except: return None, "c-lightning invoice exception" print(json.dumps(result, indent=1, sort_keys=True)) return result, None def get_c_lightning_invoices(self): try: result = self.rpc.listinvoices() except: return None, "c-lightning listinvoices exception" print(json.dumps(result, indent=1, sort_keys=True)) return result['invoices'], None def delete(self, label, state='paid'): try: result = self.rpc.delinvoice(label, state) except: return None, "c-lightning delinvoice exception" print(json.dumps(result, indent=1, sort_keys=True)) return result, None