@@ -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,41 @@ 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+
509+ d .wg .Add (1 )
510+ go func () {
511+ defer d .wg .Done ()
512+
513+ log .Info ("Starting notification manager" )
514+ err := notificationManager .Run (d .mainCtx )
515+ if err != nil {
516+ d .internalErrChan <- err
517+ log .Errorf ("Notification manager stopped: %v" , err )
518+ }
519+ }()
520+
501521 var (
502522 reservationManager * reservation.Manager
503523 instantOutManager * instantout.Manager
504524 )
525+
505526 // Create the reservation and instantout managers.
506527 if d .cfg .EnableExperimental {
507528 reservationStore := reservation .NewSQLStore (
508529 loopdb.NewTypedStore [reservation.Querier ](baseDb ),
509530 )
510531 reservationConfig := & reservation.Config {
511- Store : reservationStore ,
512- Wallet : d .lnd .WalletKit ,
513- ChainNotifier : d .lnd .ChainNotifier ,
514- ReservationClient : reservationClient ,
515- FetchL402 : swapClient . Server . FetchL402 ,
532+ Store : reservationStore ,
533+ Wallet : d .lnd .WalletKit ,
534+ ChainNotifier : d .lnd .ChainNotifier ,
535+ ReservationClient : reservationClient ,
536+ NotificationManager : notificationManager ,
516537 }
517538
518539 reservationManager = reservation .NewManager (
0 commit comments