@@ -18,6 +18,7 @@ import (
1818	litstatus "github.com/lightninglabs/lightning-terminal/status" 
1919	"github.com/lightninglabs/lightning-terminal/subservers" 
2020	"github.com/lightningnetwork/lnd/lncfg" 
21+ 	"github.com/lightningnetwork/lnd/lnrpc" 
2122	"github.com/lightningnetwork/lnd/macaroons" 
2223	grpcProxy "github.com/mwitkow/grpc-proxy/proxy" 
2324	"google.golang.org/grpc" 
@@ -69,7 +70,7 @@ func (e *proxyErr) Unwrap() error {
6970func  newRpcProxy (cfg  * Config , validator  macaroons.MacaroonValidator ,
7071	superMacValidator  session.SuperMacaroonValidator ,
7172	permsMgr  * perms.Manager , subServerMgr  * subservers.Manager ,
72- 	statusMgr  * litstatus.Manager ) * rpcProxy  {
73+ 	statusMgr  * litstatus.Manager ,  getLNDClient   lndBasicClient ) * rpcProxy  {
7374
7475	// The gRPC web calls are protected by HTTP basic auth which is defined 
7576	// by base64(username:password). Because we only have a password, we 
@@ -91,6 +92,7 @@ func newRpcProxy(cfg *Config, validator macaroons.MacaroonValidator,
9192		superMacValidator : superMacValidator ,
9293		subServerMgr :      subServerMgr ,
9394		statusMgr :         statusMgr ,
95+ 		getBasicLNDClient : getLNDClient ,
9496	}
9597	p .grpcServer  =  grpc .NewServer (
9698		// From the grpxProxy doc: This codec is *crucial* to the 
@@ -161,11 +163,12 @@ type rpcProxy struct {
161163	// must only ever be used atomically. 
162164	started  int32 
163165
164- 	cfg           * Config 
165- 	basicAuth     string 
166- 	permsMgr      * perms.Manager 
167- 	subServerMgr  * subservers.Manager 
168- 	statusMgr     * litstatus.Manager 
166+ 	cfg                * Config 
167+ 	basicAuth          string 
168+ 	permsMgr           * perms.Manager 
169+ 	subServerMgr       * subservers.Manager 
170+ 	statusMgr          * litstatus.Manager 
171+ 	getBasicLNDClient  lndBasicClient 
169172
170173	bakeSuperMac  bakeSuperMac 
171174
@@ -183,6 +186,10 @@ type rpcProxy struct {
183186// bakeSuperMac can be used to bake a new super macaroon. 
184187type  bakeSuperMac  func (ctx  context.Context , rootKeyID  uint32 ) (string , error )
185188
189+ // lndBasicClient can be used to obtain access to an lnrpc.LightningClient if 
190+ // it is available. 
191+ type  lndBasicClient  func () (lnrpc.LightningClient , error )
192+ 
186193// Start creates initial connection to lnd. 
187194func  (p  * rpcProxy ) Start (lndConn  * grpc.ClientConn ,
188195	bakeSuperMac  bakeSuperMac ) error  {
0 commit comments