From 325441bf47c12104b0416dd1c9149fe14eab7fd9 Mon Sep 17 00:00:00 2001 From: Boris Nagaev Date: Fri, 31 Oct 2025 01:34:23 -0300 Subject: [PATCH] loopd: fix crash in instant if no --experimental Previously the daemon crashed with a panic. Now the CLI returns the following message: [loop] rpc error: code = Unimplemented desc = Restart loop with --experimental --- loopd/swapclient_server.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/loopd/swapclient_server.go b/loopd/swapclient_server.go index c29bb22dc..dbb972929 100644 --- a/loopd/swapclient_server.go +++ b/loopd/swapclient_server.go @@ -1490,6 +1490,11 @@ func (s *swapClientServer) InstantOut(ctx context.Context, req *looprpc.InstantOutRequest) (*looprpc.InstantOutResponse, error) { + if s.instantOutManager == nil { + return nil, status.Error(codes.Unimplemented, + "Restart loop with --experimental") + } + reservationIds := make([]reservation.ID, len(req.ReservationIds)) for i, id := range req.ReservationIds { if len(id) != reservation.IdLength { @@ -1529,6 +1534,11 @@ func (s *swapClientServer) InstantOutQuote(ctx context.Context, req *looprpc.InstantOutQuoteRequest) ( *looprpc.InstantOutQuoteResponse, error) { + if s.instantOutManager == nil { + return nil, status.Error(codes.Unimplemented, + "Restart loop with --experimental") + } + quote, err := s.instantOutManager.GetInstantOutQuote( ctx, btcutil.Amount(req.Amt), req.ReservationIds, ) @@ -1548,6 +1558,11 @@ func (s *swapClientServer) ListInstantOuts(ctx context.Context, _ *looprpc.ListInstantOutsRequest) ( *looprpc.ListInstantOutsResponse, error) { + if s.instantOutManager == nil { + return nil, status.Error(codes.Unimplemented, + "Restart loop with --experimental") + } + instantOuts, err := s.instantOutManager.ListInstantOuts(ctx) if err != nil { return nil, err