a432f9a4c8
In this commit, we introduce a new sub-package within the greater RPC package. This new sub-package will house a new set of sub-RPC servers to expose experimental features behind build flags for upstream consumers. In this commit, we add the first config for the service, which will simply expose the lnwallet.Signer interface over RPC. In the default file, we have what the config will be if the build tag (signerrpc) is off. In this case, the config parser won't detect any times, and if specified will error out. In the active file, we have the true config that the server will use. With this new set up, we'll exploit these build flags heavily in order to create a generalized framework for adding additional sub RPC servers.
34 lines
1.2 KiB
Go
34 lines
1.2 KiB
Go
// +build signerrpc
|
|
|
|
package signrpc
|
|
|
|
import (
|
|
"github.com/lightningnetwork/lnd/lnwallet"
|
|
"github.com/lightningnetwork/lnd/macaroons"
|
|
)
|
|
|
|
// Config is the primary configuration struct for the signer RPC server. It
|
|
// contains all the items required for the signer rpc 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 {
|
|
// SignerMacPath is the path for the signer macaroon. If unspecified
|
|
// then we assume that the macaroon will be found under the network
|
|
// directory, named DefaultSignerMacFilename.
|
|
SignerMacPath string `long:"signermacaroonpath" description:"Path to the signer macaroon"`
|
|
|
|
// NetworkDir is the main network directory wherein the signer rpc
|
|
// server will find the macaroon named DefaultSignerMacFilename.
|
|
NetworkDir string
|
|
|
|
// MacService is the main macaroon service that we'll use to handle
|
|
// authentication for the signer rpc server.
|
|
MacService *macaroons.Service
|
|
|
|
// Signer is the signer instance that backs the signer RPC server. The
|
|
// job of the signer RPC server is simply to proxy valid requests to
|
|
// the active signer instance.
|
|
Signer lnwallet.Signer
|
|
}
|