htlcswitch: do not check final cltv for accepted invoices

This commit is contained in:
Joost Jager 2019-04-08 18:16:21 +02:00
parent 1fea5b09b2
commit 038ce342b3
No known key found for this signature in database
GPG Key ID: A61B9D4C393C59C7

@ -2775,10 +2775,15 @@ func (l *channelLink) processExitHop(pd *lnwallet.PaymentDescriptor,
}
// We'll also ensure that our time-lock value has been computed
// correctly.
// correctly. Only check the final cltv expiry for invoices when the
// invoice has not yet moved to the accepted state. Otherwise hodl htlcs
// would be canceled after a restart.
expectedHeight := heightNow + minCltvDelta
switch {
case !l.cfg.DebugHTLC && pd.Timeout < expectedHeight:
case !l.cfg.DebugHTLC &&
invoice.Terms.State != channeldb.ContractAccepted &&
pd.Timeout < expectedHeight:
log.Errorf("Incoming htlc(%x) has an expiration that is too "+
"soon: expected at least %v, got %v",
pd.RHash[:], expectedHeight, pd.Timeout)