Skip to content

Commit 562ad20

Browse files
committed
loopd: add notification manager
This commit adds the notification manager to the loopd daemon.
1 parent 126da44 commit 562ad20

File tree

2 files changed

+41
-5
lines changed

2 files changed

+41
-5
lines changed

loopd/daemon.go

Lines changed: 37 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"github.com/lightninglabs/loop/loopd/perms"
2222
"github.com/lightninglabs/loop/loopdb"
2323
loop_looprpc "github.com/lightninglabs/loop/looprpc"
24+
"github.com/lightninglabs/loop/notifications"
2425
loop_swaprpc "github.com/lightninglabs/loop/swapserverrpc"
2526
"github.com/lightninglabs/loop/sweepbatcher"
2627
"github.com/lightningnetwork/lnd/clock"
@@ -498,21 +499,29 @@ func (d *Daemon) initialize(withMacaroonService bool) error {
498499
}
499500
}
500501

502+
// Start the notification manager.
503+
notificationCfg := &notifications.Config{
504+
Client: loop_swaprpc.NewSwapServerClient(swapClient.Conn),
505+
FetchL402: swapClient.Server.FetchL402,
506+
}
507+
notificationManager := notifications.NewManager(notificationCfg)
508+
501509
var (
502510
reservationManager *reservation.Manager
503511
instantOutManager *instantout.Manager
504512
)
513+
505514
// Create the reservation and instantout managers.
506515
if d.cfg.EnableExperimental {
507516
reservationStore := reservation.NewSQLStore(
508517
loopdb.NewTypedStore[reservation.Querier](baseDb),
509518
)
510519
reservationConfig := &reservation.Config{
511-
Store: reservationStore,
512-
Wallet: d.lnd.WalletKit,
513-
ChainNotifier: d.lnd.ChainNotifier,
514-
ReservationClient: reservationClient,
515-
FetchL402: swapClient.Server.FetchL402,
520+
Store: reservationStore,
521+
Wallet: d.lnd.WalletKit,
522+
ChainNotifier: d.lnd.ChainNotifier,
523+
ReservationClient: reservationClient,
524+
NotificationManager: notificationManager,
516525
}
517526

518527
reservationManager = reservation.NewManager(
@@ -621,6 +630,29 @@ func (d *Daemon) initialize(withMacaroonService bool) error {
621630
log.Info("Liquidity manager stopped")
622631
}()
623632

633+
d.wg.Add(1)
634+
initChan := make(chan struct{})
635+
go func() {
636+
defer d.wg.Done()
637+
638+
log.Info("Starting notification manager")
639+
err := notificationManager.Run(d.mainCtx, initChan)
640+
if err != nil {
641+
d.internalErrChan <- err
642+
log.Errorf("Notification manager stopped: %v", err)
643+
}
644+
}()
645+
646+
select {
647+
case <-time.After(2 * time.Minute):
648+
return fmt.Errorf("notification manager not ready")
649+
650+
case <-d.mainCtx.Done():
651+
return nil
652+
653+
case <-initChan:
654+
}
655+
624656
// Start the reservation manager.
625657
if d.reservationManager != nil {
626658
d.wg.Add(1)

loopd/log.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"github.com/lightninglabs/loop/instantout/reservation"
1111
"github.com/lightninglabs/loop/liquidity"
1212
"github.com/lightninglabs/loop/loopdb"
13+
"github.com/lightninglabs/loop/notifications"
1314
"github.com/lightninglabs/loop/sweepbatcher"
1415
"github.com/lightningnetwork/lnd"
1516
"github.com/lightningnetwork/lnd/build"
@@ -48,6 +49,9 @@ func SetupLoggers(root *build.RotatingLogWriter, intercept signal.Interceptor) {
4849
lnd.AddSubLogger(
4950
root, instantout.Subsystem, intercept, instantout.UseLogger,
5051
)
52+
lnd.AddSubLogger(
53+
root, notifications.Subsystem, intercept, notifications.UseLogger,
54+
)
5155
}
5256

5357
// genSubLogger creates a logger for a subsystem. We provide an instance of

0 commit comments

Comments
 (0)