diff --git a/lnrpc/chainrpc/config_active.go b/lnrpc/chainrpc/config_active.go new file mode 100644 index 00000000..0cc3a53d --- /dev/null +++ b/lnrpc/chainrpc/config_active.go @@ -0,0 +1,34 @@ +// +build chainrpc + +package chainrpc + +import ( + "github.com/lightningnetwork/lnd/chainntnfs" + "github.com/lightningnetwork/lnd/macaroons" +) + +// Config is the primary configuration struct for the chain notifier RPC server. +// It contains all the items required for the server to carry out its duties. +// The fields with struct tags are meant to be parsed as normal configuration +// options, while if able to be populated, the latter fields MUST also be +// specified. +type Config struct { + // ChainNotifierMacPath is the path for the chain notifier macaroon. If + // unspecified then we assume that the macaroon will be found under the + // network directory, named DefaultChainNotifierMacFilename. + ChainNotifierMacPath string `long:"notifiermacaroonpath" description:"Path to the chain notifier macaroon"` + + // NetworkDir is the main network directory wherein the chain notifier + // RPC server will find the macaroon named + // DefaultChainNotifierMacFilename. + NetworkDir string + + // MacService is the main macaroon service that we'll use to handle + // authentication for the chain notifier RPC server. + MacService *macaroons.Service + + // ChainNotifier is the chain notifier instance that backs the chain + // notifier RPC server. The job of the chain notifier RPC server is + // simply to proxy valid requests to the active chain notifier instance. + ChainNotifier chainntnfs.ChainNotifier +} diff --git a/lnrpc/chainrpc/config_default.go b/lnrpc/chainrpc/config_default.go new file mode 100644 index 00000000..53bb97a1 --- /dev/null +++ b/lnrpc/chainrpc/config_default.go @@ -0,0 +1,6 @@ +// +build !chainrpc + +package chainrpc + +// Config is empty for non-chainrpc builds. +type Config struct{}