channeldb: validate feature dependencies when adding invoice

This commit is contained in:
Conner Fromknecht
2021-03-24 19:48:51 -07:00
parent 7bed359296
commit 7e2f5a184b
3 changed files with 42 additions and 2 deletions

View File

@@ -10,6 +10,7 @@ import (
"time"
"github.com/lightningnetwork/lnd/channeldb/kvdb"
"github.com/lightningnetwork/lnd/feature"
"github.com/lightningnetwork/lnd/htlcswitch/hop"
"github.com/lightningnetwork/lnd/lntypes"
"github.com/lightningnetwork/lnd/lnwire"
@@ -674,6 +675,11 @@ func validateInvoice(i *Invoice, paymentHash lntypes.Hash) error {
return errors.New("invoice must have a feature vector")
}
err := feature.ValidateDeps(i.Terms.Features)
if err != nil {
return err
}
if i.Terms.PaymentPreimage == nil && !i.HodlInvoice {
return errors.New("non-hodl invoices must have a preimage")
}