From 59e2be5306a77fff24bf2e8be1ba335247ef5beb Mon Sep 17 00:00:00 2001 From: Wilmer Paulino Date: Mon, 10 Dec 2018 18:34:36 -0800 Subject: [PATCH] config: add ChainRPC config --- log.go | 5 ++++- subrpcserver_config.go | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/log.go b/log.go index f604accef4..ed06ad69d0 100644 --- a/log.go +++ b/log.go @@ -10,7 +10,6 @@ import ( "github.com/btcsuite/btclog" "github.com/jrick/logrotate/rotator" "github.com/lightninglabs/neutrino" - "github.com/lightningnetwork/lightning-onion" "github.com/lightningnetwork/lnd/autopilot" "github.com/lightningnetwork/lnd/build" @@ -21,6 +20,7 @@ import ( "github.com/lightningnetwork/lnd/htlcswitch" "github.com/lightningnetwork/lnd/invoices" "github.com/lightningnetwork/lnd/lnrpc/autopilotrpc" + "github.com/lightningnetwork/lnd/lnrpc/chainrpc" "github.com/lightningnetwork/lnd/lnrpc/signrpc" "github.com/lightningnetwork/lnd/lnrpc/walletrpc" "github.com/lightningnetwork/lnd/lnwallet" @@ -77,6 +77,7 @@ var ( invcLog = build.NewSubLogger("INVC", backendLog.Logger) nannLog = build.NewSubLogger("NANN", backendLog.Logger) wtwrLog = build.NewSubLogger("WTWR", backendLog.Logger) + ntfrLog = build.NewSubLogger("NTFR", backendLog.Logger) ) // Initialize package-global logger variables. @@ -100,6 +101,7 @@ func init() { invoices.UseLogger(invcLog) netann.UseLogger(nannLog) watchtower.UseLogger(wtwrLog) + chainrpc.UseLogger(ntfrLog) } // subsystemLoggers maps each subsystem identifier to its associated logger. @@ -129,6 +131,7 @@ var subsystemLoggers = map[string]btclog.Logger{ "INVC": invcLog, "NANN": nannLog, "WTWR": wtwrLog, + "NTFR": ntfnLog, } // initLogRotator initializes the logging rotator to write logs to logFile and diff --git a/subrpcserver_config.go b/subrpcserver_config.go index a60790ad5c..9d39732c08 100644 --- a/subrpcserver_config.go +++ b/subrpcserver_config.go @@ -6,6 +6,7 @@ import ( "github.com/lightningnetwork/lnd/autopilot" "github.com/lightningnetwork/lnd/lnrpc/autopilotrpc" + "github.com/lightningnetwork/lnd/lnrpc/chainrpc" "github.com/lightningnetwork/lnd/lnrpc/signrpc" "github.com/lightningnetwork/lnd/lnrpc/walletrpc" "github.com/lightningnetwork/lnd/macaroons" @@ -31,6 +32,11 @@ type subRPCServerConfigs struct { // AutopilotRPC is a sub-RPC server that exposes methods on the running // autopilot as a gRPC service. AutopilotRPC *autopilotrpc.Config `group:"autopilotrpc" namespace:"autopilotrpc"` + + // ChainRPC is a sub-RPC server that exposes functionality allowing a + // client to be notified of certain on-chain events (new blocks, + // confirmations, spends). + ChainRPC *chainrpc.Config `group:"chainrpc" namespace:"chainrpc"` } // PopulateDependencies attempts to iterate through all the sub-server configs @@ -106,6 +112,19 @@ func (s *subRPCServerConfigs) PopulateDependencies(cc *chainControl, reflect.ValueOf(atpl), ) + case *chainrpc.Config: + subCfgValue := extractReflectValue(cfg) + + subCfgValue.FieldByName("NetworkDir").Set( + reflect.ValueOf(networkDir), + ) + subCfgValue.FieldByName("MacService").Set( + reflect.ValueOf(macService), + ) + subCfgValue.FieldByName("ChainNotifier").Set( + reflect.ValueOf(cc.chainNotifier), + ) + default: return fmt.Errorf("unknown field: %v, %T", fieldName, cfg)