@@ -18,6 +18,7 @@ import (
18
18
litstatus "github.com/lightninglabs/lightning-terminal/status"
19
19
"github.com/lightninglabs/lightning-terminal/subservers"
20
20
"github.com/lightningnetwork/lnd/lncfg"
21
+ "github.com/lightningnetwork/lnd/lnrpc"
21
22
"github.com/lightningnetwork/lnd/macaroons"
22
23
grpcProxy "github.com/mwitkow/grpc-proxy/proxy"
23
24
"google.golang.org/grpc"
@@ -69,7 +70,7 @@ func (e *proxyErr) Unwrap() error {
69
70
func newRpcProxy (cfg * Config , validator macaroons.MacaroonValidator ,
70
71
superMacValidator session.SuperMacaroonValidator ,
71
72
permsMgr * perms.Manager , subServerMgr * subservers.Manager ,
72
- statusMgr * litstatus.Manager ) * rpcProxy {
73
+ statusMgr * litstatus.Manager , getLNDClient lndBasicClientFn ) * rpcProxy {
73
74
74
75
// The gRPC web calls are protected by HTTP basic auth which is defined
75
76
// by base64(username:password). Because we only have a password, we
@@ -91,6 +92,7 @@ func newRpcProxy(cfg *Config, validator macaroons.MacaroonValidator,
91
92
superMacValidator : superMacValidator ,
92
93
subServerMgr : subServerMgr ,
93
94
statusMgr : statusMgr ,
95
+ getBasicLNDClient : getLNDClient ,
94
96
}
95
97
p .grpcServer = grpc .NewServer (
96
98
// From the grpxProxy doc: This codec is *crucial* to the
@@ -161,11 +163,12 @@ type rpcProxy struct {
161
163
// must only ever be used atomically.
162
164
started int32
163
165
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 lndBasicClientFn
169
172
170
173
bakeSuperMac bakeSuperMac
171
174
@@ -183,6 +186,10 @@ type rpcProxy struct {
183
186
// bakeSuperMac can be used to bake a new super macaroon.
184
187
type bakeSuperMac func (ctx context.Context , rootKeyID uint32 ) (string , error )
185
188
189
+ // lndBasicClientFn can be used to obtain access to an lnrpc.LightningClient if
190
+ // it is available.
191
+ type lndBasicClientFn func () (lnrpc.LightningClient , error )
192
+
186
193
// Start creates initial connection to lnd.
187
194
func (p * rpcProxy ) Start (lndConn * grpc.ClientConn ,
188
195
bakeSuperMac bakeSuperMac ) error {
0 commit comments