feature/required: add ValidateRequired method
This wraps the raw UnknownRequiredFeatures method and returns a proper error type to enable more exact testing.
This commit is contained in:
parent
10f561dbbd
commit
f9a1acfbe4
37
feature/required.go
Normal file
37
feature/required.go
Normal file
@ -0,0 +1,37 @@
|
||||
package feature
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/lightningnetwork/lnd/lnwire"
|
||||
)
|
||||
|
||||
// ErrUnknownRequired signals that a feature vector requires certain features
|
||||
// that our node is unaware of or does not implement.
|
||||
type ErrUnknownRequired struct {
|
||||
unknown []lnwire.FeatureBit
|
||||
}
|
||||
|
||||
// NewErrUnknownRequired initializes an ErrUnknownRequired with the unknown
|
||||
// feature bits.
|
||||
func NewErrUnknownRequired(unknown []lnwire.FeatureBit) ErrUnknownRequired {
|
||||
return ErrUnknownRequired{
|
||||
unknown: unknown,
|
||||
}
|
||||
}
|
||||
|
||||
// Error returns a human-readable description of the error.
|
||||
func (e ErrUnknownRequired) Error() string {
|
||||
return fmt.Sprintf("feature vector contains unknown required "+
|
||||
"features: %v", e.unknown)
|
||||
}
|
||||
|
||||
// ValidateRequired returns an error if the feature vector contains a non-zero
|
||||
// number of unknown, required feature bits.
|
||||
func ValidateRequired(fv *lnwire.FeatureVector) error {
|
||||
unknown := fv.UnknownRequiredFeatures()
|
||||
if len(unknown) > 0 {
|
||||
return NewErrUnknownRequired(unknown)
|
||||
}
|
||||
return nil
|
||||
}
|
Loading…
Reference in New Issue
Block a user