watchtower/wtwire/init: use feature.ValidateRequired
This allows us to remove the custom error type originally implemented for this purpose.
This commit is contained in:
parent
0f9023256e
commit
2510ec00f5
@ -5,6 +5,7 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
|
|
||||||
"github.com/btcsuite/btcd/chaincfg/chainhash"
|
"github.com/btcsuite/btcd/chaincfg/chainhash"
|
||||||
|
"github.com/lightningnetwork/lnd/feature"
|
||||||
"github.com/lightningnetwork/lnd/lnwire"
|
"github.com/lightningnetwork/lnd/lnwire"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -92,12 +93,7 @@ func (msg *Init) CheckRemoteInit(remoteInit *Init,
|
|||||||
|
|
||||||
// Check that the remote peer doesn't have any required connection
|
// Check that the remote peer doesn't have any required connection
|
||||||
// feature bits that we ourselves are unaware of.
|
// feature bits that we ourselves are unaware of.
|
||||||
unknownConnFeatures := remoteConnFeatures.UnknownRequiredFeatures()
|
return feature.ValidateRequired(remoteConnFeatures)
|
||||||
if len(unknownConnFeatures) > 0 {
|
|
||||||
return NewErrUnknownRequiredFeatures(unknownConnFeatures...)
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ErrUnknownChainHash signals that the remote Init has a different chain hash
|
// ErrUnknownChainHash signals that the remote Init has a different chain hash
|
||||||
@ -116,24 +112,3 @@ func NewErrUnknownChainHash(hash chainhash.Hash) *ErrUnknownChainHash {
|
|||||||
func (e *ErrUnknownChainHash) Error() string {
|
func (e *ErrUnknownChainHash) Error() string {
|
||||||
return fmt.Sprintf("remote init has unknown chain hash: %s", e.hash)
|
return fmt.Sprintf("remote init has unknown chain hash: %s", e.hash)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ErrUnknownRequiredFeatures signals that the remote Init has required feature
|
|
||||||
// bits that were unknown to us.
|
|
||||||
type ErrUnknownRequiredFeatures struct {
|
|
||||||
unknownFeatures []lnwire.FeatureBit
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewErrUnknownRequiredFeatures creates an ErrUnknownRequiredFeatures using the
|
|
||||||
// remote Init's required features that were unknown to us.
|
|
||||||
func NewErrUnknownRequiredFeatures(
|
|
||||||
unknownFeatures ...lnwire.FeatureBit) *ErrUnknownRequiredFeatures {
|
|
||||||
|
|
||||||
return &ErrUnknownRequiredFeatures{unknownFeatures}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Error returns a human-readable error displaying the unknown required feature
|
|
||||||
// bits.
|
|
||||||
func (e *ErrUnknownRequiredFeatures) Error() string {
|
|
||||||
return fmt.Sprintf("remote init has unknown required features: %v",
|
|
||||||
e.unknownFeatures)
|
|
||||||
}
|
|
||||||
|
@ -5,6 +5,7 @@ import (
|
|||||||
|
|
||||||
"github.com/btcsuite/btcd/chaincfg"
|
"github.com/btcsuite/btcd/chaincfg"
|
||||||
"github.com/btcsuite/btcd/chaincfg/chainhash"
|
"github.com/btcsuite/btcd/chaincfg/chainhash"
|
||||||
|
"github.com/lightningnetwork/lnd/feature"
|
||||||
"github.com/lightningnetwork/lnd/lnwire"
|
"github.com/lightningnetwork/lnd/lnwire"
|
||||||
"github.com/lightningnetwork/lnd/watchtower/wtwire"
|
"github.com/lightningnetwork/lnd/watchtower/wtwire"
|
||||||
)
|
)
|
||||||
@ -60,8 +61,8 @@ var checkRemoteInitTests = []checkRemoteInitTest{
|
|||||||
lHash: testnetChainHash,
|
lHash: testnetChainHash,
|
||||||
rFeatures: lnwire.NewRawFeatureVector(lnwire.GossipQueriesRequired),
|
rFeatures: lnwire.NewRawFeatureVector(lnwire.GossipQueriesRequired),
|
||||||
rHash: testnetChainHash,
|
rHash: testnetChainHash,
|
||||||
expErr: wtwire.NewErrUnknownRequiredFeatures(
|
expErr: feature.NewErrUnknownRequired(
|
||||||
lnwire.GossipQueriesRequired,
|
[]lnwire.FeatureBit{lnwire.GossipQueriesRequired},
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user