public async Task <ListInvoiceResultResponse> GetLatestInvoice(CancellationToken cts = default(CancellationToken)) { var listInvoiceResponseList = await SendCommandAsync <NoRequestModel, ListInvoiceResponse>("listinvoices", NoRequestModel.Instance, cts); string dateFormat = "yyyy-MM-ddTHH:mm:ssZ"; var lastCreationTime = DateTime.MinValue; ListInvoiceResultResponse result = null; foreach (ListInvoiceResultResponse listInvoiceResultResponse in listInvoiceResponseList.Result) { var creationTime = DateTime.ParseExact(listInvoiceResultResponse.CreationTime, dateFormat, null); if (lastCreationTime < creationTime) { lastCreationTime = creationTime; result = listInvoiceResultResponse; } } return(result); }
internal LightningInvoice GetLightningInvoiceObject(ListInvoiceResultResponse invoice, Network network) { var parsed = BOLT11PaymentRequest.Parse(invoice.Bolt11, network); var lightningInvoice = new LightningInvoice() { Id = invoice.Hash, Amount = invoice.AmountMsat, AmountReceived = invoice.AmountMsat, BOLT11 = invoice.Bolt11, Status = ToStatus(invoice.State), PaidAt = null, ExpiresAt = parsed.ExpiryDate }; if (invoice.State == "used") { lightningInvoice.PaidAt = parsed.ExpiryDate; } return(lightningInvoice); }