multi: add custom feature bits to config options
This commit is contained in:
4 files changed
+66
No files matched your search
@@ -3,6 +3,11 @@
|
||||
|
||||
package lncfg
|
||||
|
||||
import (
|
||||
"github.com/lightningnetwork/lnd/feature"
|
||||
"github.com/lightningnetwork/lnd/lnwire"
|
||||
)
|
||||
|
||||
// ExperimentalProtocol is a sub-config that houses any experimental protocol
|
||||
// features that also require a build-tag to activate.
|
||||
type ExperimentalProtocol struct {
|
||||
@@ -13,3 +18,8 @@ type ExperimentalProtocol struct {
|
||||
func (p ExperimentalProtocol) CustomMessageOverrides() []uint16 {
|
||||
return nil
|
||||
}
|
||||
|
||||
// CustomFeatures returns a custom set of feature bits to advertise.
|
||||
func (p ExperimentalProtocol) CustomFeatures() map[feature.Set][]lnwire.FeatureBit {
|
||||
return map[feature.Set][]lnwire.FeatureBit{}
|
||||
}
|
||||
@@ -3,12 +3,23 @@
|
||||
|
||||
package lncfg
|
||||
|
||||
import (
|
||||
"github.com/lightningnetwork/lnd/feature"
|
||||
"github.com/lightningnetwork/lnd/lnwire"
|
||||
)
|
||||
|
||||
// ExperimentalProtocol is a sub-config that houses any experimental protocol
|
||||
// features that also require a build-tag to activate.
|
||||
//
|
||||
//nolint:lll
|
||||
type ExperimentalProtocol struct {
|
||||
CustomMessage []uint16 `long:"custom-message" description:"allows the custom message apis to send and report messages with the protocol number provided that fall outside of the custom message number range."`
|
||||
|
||||
CustomInit []uint16 `long:"custom-init" description:"custom feature bits to advertise in the node's init message"`
|
||||
|
||||
CustomNodeAnn []uint16 `long:"custom-nodeann" description:"custom feature bits to advertise in the node's announcement message"`
|
||||
|
||||
CustomInvoice []uint16 `long:"custom-invoice" description:"custom feature bits to advertise in the node's invoices"`
|
||||
}
|
||||
|
||||
// CustomMessageOverrides returns the set of protocol messages that we override
|
||||
@@ -16,3 +27,25 @@ type ExperimentalProtocol struct {
|
||||
func (p ExperimentalProtocol) CustomMessageOverrides() []uint16 {
|
||||
return p.CustomMessage
|
||||
}
|
||||
|
||||
// CustomFeatures returns a custom set of feature bits to advertise.
|
||||
//
|
||||
//nolint:lll
|
||||
func (p ExperimentalProtocol) CustomFeatures() map[feature.Set][]lnwire.FeatureBit {
|
||||
customFeatures := make(map[feature.Set][]lnwire.FeatureBit)
|
||||
|
||||
setFeatures := func(set feature.Set, bits []uint16) {
|
||||
for _, customFeature := range bits {
|
||||
customFeatures[set] = append(
|
||||
customFeatures[set],
|
||||
lnwire.FeatureBit(customFeature),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
setFeatures(feature.SetInit, p.CustomInit)
|
||||
setFeatures(feature.SetNodeAnn, p.CustomNodeAnn)
|
||||
setFeatures(feature.SetInvoice, p.CustomInvoice)
|
||||
|
||||
return customFeatures
|
||||
}
|
||||
Reference in new issue
Block a user