@@ -22,6 +22,7 @@ import (
22
22
"github.com/lightninglabs/faraday/frdrpc"
23
23
"github.com/lightninglabs/faraday/frdrpcserver"
24
24
"github.com/lightninglabs/lightning-terminal/accounts"
25
+ "github.com/lightninglabs/lightning-terminal/autopilotserver"
25
26
"github.com/lightninglabs/lightning-terminal/firewall"
26
27
"github.com/lightninglabs/lightning-terminal/firewalldb"
27
28
"github.com/lightninglabs/lightning-terminal/litrpc"
@@ -64,6 +65,9 @@ import (
64
65
)
65
66
66
67
const (
68
+ MainnetServer = "autopilot.lightning.finance:12010"
69
+ TestnetServer = "test.autopilot.lightning.finance:12010"
70
+
67
71
defaultServerTimeout = 10 * time .Second
68
72
defaultConnectTimeout = 15 * time .Second
69
73
defaultStartupTimeout = 5 * time .Second
@@ -156,6 +160,8 @@ type LightningTerminal struct {
156
160
faradayServer * frdrpcserver.RPCServer
157
161
faradayStarted bool
158
162
163
+ autopilotClient autopilotserver.Autopilot
164
+
159
165
ruleMgrs rules.ManagerSet
160
166
161
167
loopServer * loopd.Daemon
@@ -261,6 +267,35 @@ func (g *LightningTerminal) Run() error {
261
267
return fmt .Errorf ("error creating session DB: %v" , err )
262
268
}
263
269
270
+ if ! g .cfg .Autopilot .Disable {
271
+ if g .cfg .Autopilot .Address == "" &&
272
+ len (g .cfg .Autopilot .DialOpts ) == 0 {
273
+
274
+ switch g .cfg .Network {
275
+ case "mainnet" :
276
+ g .cfg .Autopilot .Address = MainnetServer
277
+ case "testnet" :
278
+ g .cfg .Autopilot .Address = TestnetServer
279
+ default :
280
+ return errors .New ("no autopilot server " +
281
+ "address specified" )
282
+ }
283
+ }
284
+
285
+ g .cfg .Autopilot .LitVersion = autopilotserver.Version {
286
+ Major : uint32 (appMajor ),
287
+ Minor : uint32 (appMinor ),
288
+ Patch : uint32 (appPatch ),
289
+ }
290
+
291
+ g .autopilotClient , err = autopilotserver .NewClient (
292
+ g .cfg .Autopilot ,
293
+ )
294
+ if err != nil {
295
+ return err
296
+ }
297
+ }
298
+
264
299
g .sessionRpcServer , err = newSessionRPCServer (& sessionRpcServerConfig {
265
300
basicAuth : g .rpcProxy .basicAuth ,
266
301
dbDir : filepath .Join (g .cfg .LitDir , g .cfg .Network ),
@@ -649,6 +684,21 @@ func (g *LightningTerminal) startSubservers() error {
649
684
}
650
685
g .macaroonServiceStarted = true
651
686
687
+ if ! g .cfg .Autopilot .Disable {
688
+ withLndVersion := func (cfg * autopilotserver.Config ) {
689
+ cfg .LndVersion = autopilotserver.Version {
690
+ Major : g .lndClient .Version .AppMajor ,
691
+ Minor : g .lndClient .Version .AppMinor ,
692
+ Patch : g .lndClient .Version .AppPatch ,
693
+ }
694
+ }
695
+
696
+ if err = g .autopilotClient .Start (withLndVersion ); err != nil {
697
+ return fmt .Errorf ("could not start the autopilot " +
698
+ "client: %v" , err )
699
+ }
700
+ }
701
+
652
702
log .Infof ("Starting LiT session server" )
653
703
if err = g .sessionRpcServer .start (); err != nil {
654
704
return err
@@ -970,6 +1020,10 @@ func (g *LightningTerminal) shutdown() error {
970
1020
}
971
1021
}
972
1022
1023
+ if g .autopilotClient != nil {
1024
+ g .autopilotClient .Stop ()
1025
+ }
1026
+
973
1027
if g .sessionRpcServerStarted {
974
1028
if err := g .sessionRpcServer .stop (); err != nil {
975
1029
log .Errorf ("Error closing session DB: %v" , err )
0 commit comments