Browse Source
This wraps the raw UnknownRequiredFeatures method and returns a proper error type to enable more exact testing.master
Conner Fromknecht
4 years ago
1 changed files with 37 additions and 0 deletions
@ -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