@@ -856,6 +856,11 @@ func (svc *swapsService) subscribePendingSwaps() {
856856}
857857
858858func (svc * swapsService ) startSwapInListener (swap * db.Swap ) {
859+ updateCh := make (chan boltz.SwapUpdate , 1 )
860+ svc .swapListenersLock .Lock ()
861+ svc .swapListeners [swap .SwapId ] = updateCh
862+ svc .swapListenersLock .Unlock ()
863+
859864 for {
860865 err := svc .boltzWs .Subscribe ([]string {swap .SwapId })
861866 if err != nil {
@@ -868,11 +873,6 @@ func (svc *swapsService) startSwapInListener(swap *db.Swap) {
868873
869874 logger .Logger .WithField ("swapId" , swap .SwapId ).Info ("Subscribed to boltz websocket" )
870875
871- updateCh := make (chan boltz.SwapUpdate )
872- svc .swapListenersLock .Lock ()
873- svc .swapListeners [swap .SwapId ] = updateCh
874- svc .swapListenersLock .Unlock ()
875-
876876 var err error
877877 defer func () {
878878 svc .swapListenersLock .Lock ()
@@ -1024,6 +1024,11 @@ func (svc *swapsService) startSwapInListener(swap *db.Swap) {
10241024}
10251025
10261026func (svc * swapsService ) startSwapOutListener (swap * db.Swap ) {
1027+ updateCh := make (chan boltz.SwapUpdate , 1 )
1028+ svc .swapListenersLock .Lock ()
1029+ svc .swapListeners [swap .SwapId ] = updateCh
1030+ svc .swapListenersLock .Unlock ()
1031+
10271032 for {
10281033 err := svc .boltzWs .Subscribe ([]string {swap .SwapId })
10291034 if err != nil {
@@ -1036,11 +1041,6 @@ func (svc *swapsService) startSwapOutListener(swap *db.Swap) {
10361041
10371042 logger .Logger .WithField ("swapId" , swap .SwapId ).Info ("Subscribed to boltz websocket" )
10381043
1039- updateCh := make (chan boltz.SwapUpdate )
1040- svc .swapListenersLock .Lock ()
1041- svc .swapListeners [swap .SwapId ] = updateCh
1042- svc .swapListenersLock .Unlock ()
1043-
10441044 var err error
10451045 defer func () {
10461046 svc .swapListenersLock .Lock ()
@@ -1163,10 +1163,14 @@ func (svc *swapsService) startSwapOutListener(swap *db.Swap) {
11631163 logger .Logger .WithField ("swapId" , swap .SwapId ).Info ("Paying the swap invoice" )
11641164 go func () {
11651165 _ , err := svc .transactionsService .LookupTransaction (svc .ctx , swap .PaymentHash , nil , svc .lnClient , nil )
1166- if err == transactions . NewNotFoundError () {
1166+ if err == nil {
11671167 logger .Logger .WithField ("swapId" , swap .SwapId ).Info ("Already initiated swap invoice payment" )
11681168 return
11691169 }
1170+ if ! errors .Is (err , transactions .NewNotFoundError ()) {
1171+ logger .Logger .WithError (err ).WithField ("swapId" , swap .SwapId ).Warn ("Failed to lookup transaction" )
1172+ return
1173+ }
11701174 metadata := map [string ]interface {}{
11711175 "swap_id" : swap .SwapId ,
11721176 }
0 commit comments