diff --git a/channeldb/channel.go b/channeldb/channel.go index ad0208467..ea48bcd5b 100644 --- a/channeldb/channel.go +++ b/channeldb/channel.go @@ -889,6 +889,18 @@ func (c *OpenChannel) String() string { ) } +// Initiator returns the ChannelParty that originally opened this channel. +func (c *OpenChannel) Initiator() lntypes.ChannelParty { + c.RLock() + defer c.RUnlock() + + if c.IsInitiator { + return lntypes.Local + } + + return lntypes.Remote +} + // ShortChanID returns the current ShortChannelID of this channel. func (c *OpenChannel) ShortChanID() lnwire.ShortChannelID { c.RLock() diff --git a/lnwallet/channel.go b/lnwallet/channel.go index afe10b950..21c5f897c 100644 --- a/lnwallet/channel.go +++ b/lnwallet/channel.go @@ -8709,6 +8709,14 @@ func (lc *LightningChannel) ChanType() channeldb.ChannelType { return lc.channelState.ChanType } +// Initiator returns the ChannelParty that originally opened this channel. +func (lc *LightningChannel) Initiator() lntypes.ChannelParty { + lc.RLock() + defer lc.RUnlock() + + return lc.channelState.Initiator() +} + // FundingTxOut returns the funding output of the channel. func (lc *LightningChannel) FundingTxOut() *wire.TxOut { lc.RLock()