diff --git a/htlcswitch/interfaces.go b/htlcswitch/interfaces.go index d246bc954..8f98709aa 100644 --- a/htlcswitch/interfaces.go +++ b/htlcswitch/interfaces.go @@ -12,6 +12,7 @@ import ( "github.com/lightningnetwork/lnd/lnwallet/chainfee" "github.com/lightningnetwork/lnd/lnwire" "github.com/lightningnetwork/lnd/record" + "github.com/lightningnetwork/lnd/tlv" ) // InvoiceDatabase is an interface which represents the persistent subsystem @@ -271,6 +272,10 @@ type ChannelLink interface { // have buffered messages. AttachMailBox(MailBox) + // ChannelCustomBlob returns the custom blob of the channel that this + // link is associated with. + ChannelCustomBlob() fn.Option[tlv.Blob] + // Start/Stop are used to initiate the start/stop of the channel link // functioning. Start() error diff --git a/htlcswitch/link.go b/htlcswitch/link.go index b21c33131..c3cb04936 100644 --- a/htlcswitch/link.go +++ b/htlcswitch/link.go @@ -30,6 +30,7 @@ import ( "github.com/lightningnetwork/lnd/lnwire" "github.com/lightningnetwork/lnd/queue" "github.com/lightningnetwork/lnd/ticker" + "github.com/lightningnetwork/lnd/tlv" ) func init() { @@ -3752,3 +3753,9 @@ func (l *channelLink) fail(linkErr LinkFailureError, l.failed = true l.cfg.OnChannelFailure(l.ChanID(), l.ShortChanID(), linkErr) } + +// ChannelCustomBlob returns the custom blob of the channel that this link is +// associated with. +func (l *channelLink) ChannelCustomBlob() fn.Option[tlv.Blob] { + return l.channel.State().CustomBlob +} diff --git a/htlcswitch/mock.go b/htlcswitch/mock.go index a0f38c74f..bbbb243d4 100644 --- a/htlcswitch/mock.go +++ b/htlcswitch/mock.go @@ -27,6 +27,7 @@ import ( "github.com/lightningnetwork/lnd/channeldb/models" "github.com/lightningnetwork/lnd/clock" "github.com/lightningnetwork/lnd/contractcourt" + "github.com/lightningnetwork/lnd/fn" "github.com/lightningnetwork/lnd/htlcswitch/hop" "github.com/lightningnetwork/lnd/invoices" "github.com/lightningnetwork/lnd/lnpeer" @@ -35,6 +36,7 @@ import ( "github.com/lightningnetwork/lnd/lnwallet/chainfee" "github.com/lightningnetwork/lnd/lnwire" "github.com/lightningnetwork/lnd/ticker" + "github.com/lightningnetwork/lnd/tlv" ) func isAlias(scid lnwire.ShortChannelID) bool { @@ -912,6 +914,10 @@ func (f *mockChannelLink) ChannelPoint() wire.OutPoint { return wire.OutPoint{} } +func (f *mockChannelLink) ChannelCustomBlob() fn.Option[tlv.Blob] { + return fn.Option[tlv.Blob]{} +} + func (f *mockChannelLink) Stop() {} func (f *mockChannelLink) EligibleToForward() bool { return f.eligible } func (f *mockChannelLink) MayAddOutgoingHtlc(lnwire.MilliSatoshi) error { return nil }