2018-06-08 06:05:32 +03:00
|
|
|
package lnpeer
|
|
|
|
|
|
|
|
import (
|
2018-07-05 23:26:55 +03:00
|
|
|
"net"
|
|
|
|
|
2018-06-05 04:41:41 +03:00
|
|
|
"github.com/btcsuite/btcd/btcec"
|
|
|
|
"github.com/btcsuite/btcd/wire"
|
2018-07-05 23:26:55 +03:00
|
|
|
"github.com/lightningnetwork/lnd/lnwallet"
|
2018-06-08 06:05:32 +03:00
|
|
|
"github.com/lightningnetwork/lnd/lnwire"
|
|
|
|
)
|
|
|
|
|
|
|
|
// 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
|
|
|
|
|
2018-07-05 23:26:55 +03:00
|
|
|
// AddNewChannel adds a new channel to the peer. The channel should fail
|
|
|
|
// to be added if the cancel channel is closed.
|
|
|
|
AddNewChannel(channel *lnwallet.LightningChannel, cancel <-chan struct{}) error
|
|
|
|
|
2018-06-08 06:05:32 +03:00
|
|
|
// 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
|
2018-07-05 23:26:55 +03:00
|
|
|
|
|
|
|
// Address returns the network address of the remote peer.
|
|
|
|
Address() net.Addr
|
2018-08-26 03:10:25 +03:00
|
|
|
|
|
|
|
// QuitSignal is a method that should return a channel which will be
|
|
|
|
// sent upon or closed once the backing peer exits. This allows callers
|
|
|
|
// using the interface to cancel any processing in the event the backing
|
|
|
|
// implementation exits.
|
|
|
|
QuitSignal() <-chan struct{}
|
2018-06-08 06:05:32 +03:00
|
|
|
}
|