lnd: initialize invoice settlement interceptor at server startup

This commit initiates the invoice settlement interceptor during the
main server startup, assigning it a handle within the server.
This commit is contained in:
ffranr
2024-04-23 14:38:47 +01:00
committed by Oliver Gugger
parent c58b6a25a2
commit 481dfe21bc

View File

@ -263,6 +263,8 @@ type server struct {
invoices *invoices.InvoiceRegistry invoices *invoices.InvoiceRegistry
invoiceHtlcModifier *invoices.HtlcModificationInterceptor
channelNotifier *channelnotifier.ChannelNotifier channelNotifier *channelnotifier.ChannelNotifier
peerNotifier *peernotifier.PeerNotifier peerNotifier *peernotifier.PeerNotifier
@ -561,6 +563,7 @@ func newServer(cfg *Config, listenAddrs []net.Addr,
return nil, err return nil, err
} }
invoiceHtlcModifier := invoices.NewHtlcModificationInterceptor()
registryConfig := invoices.RegistryConfig{ registryConfig := invoices.RegistryConfig{
FinalCltvRejectDelta: lncfg.DefaultFinalCltvRejectDelta, FinalCltvRejectDelta: lncfg.DefaultFinalCltvRejectDelta,
HtlcHoldDuration: invoices.DefaultHtlcHoldDuration, HtlcHoldDuration: invoices.DefaultHtlcHoldDuration,
@ -570,6 +573,7 @@ func newServer(cfg *Config, listenAddrs []net.Addr,
GcCanceledInvoicesOnStartup: cfg.GcCanceledInvoicesOnStartup, GcCanceledInvoicesOnStartup: cfg.GcCanceledInvoicesOnStartup,
GcCanceledInvoicesOnTheFly: cfg.GcCanceledInvoicesOnTheFly, GcCanceledInvoicesOnTheFly: cfg.GcCanceledInvoicesOnTheFly,
KeysendHoldTime: cfg.KeysendHoldTime, KeysendHoldTime: cfg.KeysendHoldTime,
HtlcInterceptor: invoiceHtlcModifier,
} }
s := &server{ s := &server{
@ -618,6 +622,8 @@ func newServer(cfg *Config, listenAddrs []net.Addr,
peerConnectedListeners: make(map[string][]chan<- lnpeer.Peer), peerConnectedListeners: make(map[string][]chan<- lnpeer.Peer),
peerDisconnectedListeners: make(map[string][]chan<- struct{}), peerDisconnectedListeners: make(map[string][]chan<- struct{}),
invoiceHtlcModifier: invoiceHtlcModifier,
customMessageServer: subscribe.NewServer(), customMessageServer: subscribe.NewServer(),
tlsManager: tlsManager, tlsManager: tlsManager,
@ -2120,6 +2126,12 @@ func (s *server) Start() error {
return return
} }
cleanup = cleanup.add(s.invoiceHtlcModifier.Stop)
if err := s.invoiceHtlcModifier.Start(); err != nil {
startErr = err
return
}
cleanup = cleanup.add(s.chainArb.Stop) cleanup = cleanup.add(s.chainArb.Stop)
if err := s.chainArb.Start(); err != nil { if err := s.chainArb.Start(); err != nil {
startErr = err startErr = err