@@ -21,6 +21,8 @@ import (
21
21
"github.com/lightninglabs/loop"
22
22
"github.com/lightninglabs/loop/loopd"
23
23
"github.com/lightninglabs/loop/looprpc"
24
+ "github.com/lightninglabs/pool"
25
+ "github.com/lightninglabs/pool/poolrpc"
24
26
"github.com/lightningnetwork/lnd"
25
27
"github.com/lightningnetwork/lnd/build"
26
28
"github.com/lightningnetwork/lnd/lnrpc"
@@ -66,6 +68,9 @@ type LightningTerminal struct {
66
68
loopServer * loopd.Daemon
67
69
loopStarted bool
68
70
71
+ poolServer * pool.Server
72
+ poolStarted bool
73
+
69
74
rpcProxy * rpcProxy
70
75
httpServer * http.Server
71
76
}
@@ -90,6 +95,7 @@ func (g *LightningTerminal) Run() error {
90
95
// lnd once it's fully started.
91
96
g .faradayServer = frdrpc .NewRPCServer (g .cfg .faradayRpcConfig )
92
97
g .loopServer = loopd .New (g .cfg .Loop , nil )
98
+ g .poolServer = pool .NewServer (g .cfg .Pool )
93
99
g .rpcProxy = newRpcProxy (g .cfg , g , getAllPermissions ())
94
100
95
101
// Overwrite the loop daemon's user agent name so it sends "litd"
@@ -318,6 +324,12 @@ func (g *LightningTerminal) startSubservers() error {
318
324
}
319
325
g .loopStarted = true
320
326
327
+ err = g .poolServer .StartAsSubserver (basicClient , g .lndClient )
328
+ if err != nil {
329
+ return err
330
+ }
331
+ g .poolStarted = true
332
+
321
333
return nil
322
334
}
323
335
@@ -329,6 +341,7 @@ func (g *LightningTerminal) RegisterGrpcSubserver(grpcServer *grpc.Server) error
329
341
g .lndGrpcServer = grpcServer
330
342
frdrpc .RegisterFaradayServerServer (grpcServer , g .faradayServer )
331
343
looprpc .RegisterSwapClientServer (grpcServer , g .loopServer )
344
+ poolrpc .RegisterTraderServer (grpcServer , g .poolServer )
332
345
return nil
333
346
}
334
347
@@ -347,7 +360,14 @@ func (g *LightningTerminal) RegisterRestSubserver(ctx context.Context,
347
360
return err
348
361
}
349
362
350
- return looprpc .RegisterSwapClientHandlerFromEndpoint (
363
+ err = looprpc .RegisterSwapClientHandlerFromEndpoint (
364
+ ctx , mux , endpoint , dialOpts ,
365
+ )
366
+ if err != nil {
367
+ return err
368
+ }
369
+
370
+ return poolrpc .RegisterTraderHandlerFromEndpoint (
351
371
ctx , mux , endpoint , dialOpts ,
352
372
)
353
373
}
@@ -384,6 +404,11 @@ func (g *LightningTerminal) ValidateMacaroon(ctx context.Context,
384
404
return g .faradayServer .ValidateMacaroon (
385
405
ctx , requiredPermissions , fullMethod ,
386
406
)
407
+
408
+ case isPoolURI (fullMethod ):
409
+ return g .poolServer .ValidateMacaroon (
410
+ ctx , requiredPermissions , fullMethod ,
411
+ )
387
412
}
388
413
389
414
// Because lnd will spin up its own gRPC server with macaroon
@@ -482,7 +507,7 @@ func (g *LightningTerminal) shutdown() error {
482
507
// | director | | local subserver |
483
508
// +---+----------------------+ | - loop |
484
509
// | | - faraday |
485
- // v authenticated call | |
510
+ // v authenticated call | - pool |
486
511
// +---+----------------------+ +--------------------+
487
512
// | lnd (remote or local) |
488
513
// +--------------------------+
0 commit comments