channeldb+lnwallet: define Initiator for OpenChannel and LightningChannel

This commit introduces a new API to return information on which party opened
the channel using the new ChannelParty type. It does not change the underlying
structure of how we store this information.
This commit is contained in:
Keagan McClelland 2024-07-22 14:44:47 -07:00
parent e3dd886580
commit a2b19afe59
No known key found for this signature in database
GPG key ID: FA7E65C951F12439
2 changed files with 20 additions and 0 deletions

View file

@ -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()

View file

@ -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()