You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
855 B
37 lines
855 B
package netann |
|
|
|
import ( |
|
"fmt" |
|
|
|
"github.com/btcsuite/btcd/btcec" |
|
"github.com/lightningnetwork/lnd/input" |
|
"github.com/lightningnetwork/lnd/lnwallet" |
|
"github.com/lightningnetwork/lnd/lnwire" |
|
) |
|
|
|
// SignAnnouncement signs any type of gossip message that is announced on the |
|
// network. |
|
func SignAnnouncement(signer lnwallet.MessageSigner, pubKey *btcec.PublicKey, |
|
msg lnwire.Message) (input.Signature, error) { |
|
|
|
var ( |
|
data []byte |
|
err error |
|
) |
|
|
|
switch m := msg.(type) { |
|
case *lnwire.ChannelAnnouncement: |
|
data, err = m.DataToSign() |
|
case *lnwire.ChannelUpdate: |
|
data, err = m.DataToSign() |
|
case *lnwire.NodeAnnouncement: |
|
data, err = m.DataToSign() |
|
default: |
|
return nil, fmt.Errorf("can't sign %T message", m) |
|
} |
|
if err != nil { |
|
return nil, fmt.Errorf("unable to get data to sign: %v", err) |
|
} |
|
|
|
return signer.SignMessage(pubKey, data) |
|
}
|
|
|