diff --git a/channeldb/channel.go b/channeldb/channel.go index 7569fc30e..4e3db2fc1 100644 --- a/channeldb/channel.go +++ b/channeldb/channel.go @@ -899,6 +899,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 7dac5921a..470961445 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()