//go:build invoicesrpc // +build invoicesrpc package invoicesrpc import ( "github.com/btcsuite/btcd/chaincfg" "github.com/lightningnetwork/lnd/channeldb" "github.com/lightningnetwork/lnd/invoices" "github.com/lightningnetwork/lnd/lnwire" "github.com/lightningnetwork/lnd/macaroons" "github.com/lightningnetwork/lnd/netann" ) // Config is the primary configuration struct for the invoices RPC server. It // contains all the items required for the 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 { // NetworkDir is the main network directory wherein the invoices rpc // server will find the macaroon named DefaultInvoicesMacFilename. NetworkDir string // MacService is the main macaroon service that we'll use to handle // authentication for the invoices rpc server. MacService *macaroons.Service // InvoiceRegistry is a central registry of all the outstanding invoices // created by the daemon. InvoiceRegistry *invoices.InvoiceRegistry // IsChannelActive is used to generate valid hop hints. IsChannelActive func(chanID lnwire.ChannelID) bool // ChainParams are required to properly decode invoice payment requests // that are marshalled over rpc. ChainParams *chaincfg.Params // NodeSigner is an implementation of the MessageSigner implementation // that's backed by the identity private key of the running lnd node. NodeSigner *netann.NodeSigner // DefaultCLTVExpiry is the default invoice expiry if no values is // specified. DefaultCLTVExpiry uint32 // GraphDB is a global database instance which is needed to access the // channel graph. GraphDB *channeldb.ChannelGraph // ChanStateDB is a possibly replicated db instance which contains the // channel state ChanStateDB *channeldb.ChannelStateDB // GenInvoiceFeatures returns a feature containing feature bits that // should be advertised on freshly generated invoices. GenInvoiceFeatures func() *lnwire.FeatureVector // GenAmpInvoiceFeatures returns a feature containing feature bits that // should be advertised on freshly generated AMP invoices. GenAmpInvoiceFeatures func() *lnwire.FeatureVector // GetAlias returns the peer's alias SCID if it exists given the // 32-byte ChannelID. GetAlias func(lnwire.ChannelID) (lnwire.ShortChannelID, error) }