From 59a7a9d308dbcaa191c8befb1a9d63d99644e45c Mon Sep 17 00:00:00 2001 From: Joost Jager Date: Fri, 10 Jan 2020 21:35:10 +0100 Subject: [PATCH] invoices: pre-check key send expiry --- invoices/invoiceregistry.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/invoices/invoiceregistry.go b/invoices/invoiceregistry.go index c3354c97..238e3bb7 100644 --- a/invoices/invoiceregistry.go +++ b/invoices/invoiceregistry.go @@ -736,6 +736,12 @@ func (i *InvoiceRegistry) processKeySend(ctx invoiceUpdateCtx, // Use the minimum block delta that we require for settling htlcs. finalCltvDelta := i.cfg.FinalCltvRejectDelta + // Pre-check expiry here to prevent inserting an invoice that will not + // be settled. + if ctx.expiry < uint32(ctx.currentHeight+finalCltvDelta) { + return errors.New("final expiry too soon") + } + // Create placeholder invoice. invoice := &channeldb.Invoice{ CreationDate: i.cfg.Clock.Now(),