@@ -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,48 @@ 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+ }
506+ notificationManager := notifications .NewManager (notificationCfg )
507+
508+ d .wg .Add (1 )
509+ notificationInitChan := make (chan struct {})
510+ go func () {
511+ defer d .wg .Done ()
512+ err = notificationManager .Run (d .mainCtx , notificationInitChan )
513+ if err != nil {
514+ d .internalErrChan <- err
515+ }
516+ }()
517+
518+ select {
519+ case <- notificationInitChan :
520+ break
521+ case <- time .After (15 * time .Second ):
522+ return fmt .Errorf ("notification manager not ready" )
523+ case <- d .mainCtx .Done ():
524+ return fmt .Errorf ("notification manager not ready: %v" , d .mainCtx .Err ())
525+ }
526+
501527 var (
502528 reservationManager * reservation.Manager
503529 instantOutManager * instantout.Manager
504530 )
531+
505532 // Create the reservation and instantout managers.
506533 if d .cfg .EnableExperimental {
507534 reservationStore := reservation .NewSQLStore (
508535 loopdb.NewTypedStore [reservation.Querier ](baseDb ),
509536 )
510537 reservationConfig := & reservation.Config {
511- Store : reservationStore ,
512- Wallet : d .lnd .WalletKit ,
513- ChainNotifier : d .lnd .ChainNotifier ,
514- ReservationClient : reservationClient ,
515- FetchL402 : swapClient .Server .FetchL402 ,
538+ Store : reservationStore ,
539+ Wallet : d .lnd .WalletKit ,
540+ ChainNotifier : d .lnd .ChainNotifier ,
541+ ReservationClient : reservationClient ,
542+ FetchL402 : swapClient .Server .FetchL402 ,
543+ NotificationManager : notificationManager ,
516544 }
517545
518546 reservationManager = reservation .NewManager (
0 commit comments