From dcf76a59b256ebbc13346b9922c2dce2a955a0ab Mon Sep 17 00:00:00 2001 From: Conner Fromknecht Date: Thu, 7 Jun 2018 20:05:32 -0700 Subject: [PATCH] lnpeer: birth of peer package! This commit moves the generic interface for Lightning Network peers so that it can be imported directly into the switch and gossiper. Eventually, the majority of the peer logic would be moved into this package for testing and modularization. --- lnpeer/peer.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 lnpeer/peer.go diff --git a/lnpeer/peer.go b/lnpeer/peer.go new file mode 100644 index 00000000..2a9dea0d --- /dev/null +++ b/lnpeer/peer.go @@ -0,0 +1,26 @@ +package lnpeer + +import ( + "github.com/lightningnetwork/lnd/lnwire" + "github.com/roasbeef/btcd/btcec" + "github.com/roasbeef/btcd/wire" +) + +// Peer is an interface which represents the remote lightning node inside our +// system. +type Peer interface { + // SendMessage sends a variadic number of message to remote peer. The + // first argument denotes if the method should block until the message + // has been sent to the remote peer. + SendMessage(sync bool, msg ...lnwire.Message) error + + // WipeChannel removes the channel uniquely identified by its channel + // point from all indexes associated with the peer. + WipeChannel(*wire.OutPoint) error + + // PubKey returns the serialized public key of the remote peer. + PubKey() [33]byte + + // IdentityKey returns the public key of the remote peer. + IdentityKey() *btcec.PublicKey +}