Skip to content

Commit 4e7acd4

Browse files
committed
invoicesrpc: add settlement interceptor to invoices RPC server
This commit integrates the settlement interceptor service into the invoices RPC server.
1 parent aa44325 commit 4e7acd4

File tree

4 files changed

+22
-8
lines changed

4 files changed

+22
-8
lines changed

lnd.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -617,7 +617,8 @@ func Main(cfg *Config, lisCfg ListenerCfg, implCfg *ImplementationCfg,
617617
// start the RPC server.
618618
err = rpcServer.addDeps(
619619
server, interceptorChain.MacaroonService(), cfg.SubRPCServers,
620-
atplManager, server.invoices, tower, multiAcceptor,
620+
atplManager, server.invoices,
621+
server.invoiceSettlementInterceptor, tower, multiAcceptor,
621622
)
622623
if err != nil {
623624
return mkErr("unable to add deps to RPC server: %v", err)

lnrpc/invoicesrpc/config_active.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ type Config struct {
3030
// created by the daemon.
3131
InvoiceRegistry *invoices.InvoiceRegistry
3232

33+
// InvoiceSettlementInterceptor is a service which intercepts invoices
34+
// during the settlement phase, enabling a subscribed client to
35+
// determine the settlement outcome.
36+
InvoiceSettlementInterceptor invoices.SettlementInterceptorInterface
37+
3338
// IsChannelActive is used to generate valid hop hints.
3439
IsChannelActive func(chanID lnwire.ChannelID) bool
3540

rpcserver.go

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -659,7 +659,9 @@ func newRPCServer(cfg *Config, interceptorChain *rpcperms.InterceptorChain,
659659
// be started, and start accepting RPC calls.
660660
func (r *rpcServer) addDeps(s *server, macService *macaroons.Service,
661661
subServerCgs *subRPCServerConfigs, atpl *autopilot.Manager,
662-
invoiceRegistry *invoices.InvoiceRegistry, tower *watchtower.Standalone,
662+
invoiceRegistry *invoices.InvoiceRegistry,
663+
invoiceSettlementInterceptor *invoices.SettlementInterceptor,
664+
tower *watchtower.Standalone,
663665
chanPredicate chanacceptor.MultiplexAcceptor) error {
664666

665667
// Set up router rpc backend.
@@ -758,12 +760,13 @@ func (r *rpcServer) addDeps(s *server, macService *macaroons.Service,
758760
// TODO(roasbeef): extend sub-sever config to have both (local vs remote) DB
759761
err = subServerCgs.PopulateDependencies(
760762
r.cfg, s.cc, r.cfg.networkDir, macService, atpl, invoiceRegistry,
761-
s.htlcSwitch, r.cfg.ActiveNetParams.Params, s.chanRouter,
762-
routerBackend, s.nodeSigner, s.graphDB, s.chanStateDB,
763-
s.sweeper, tower, s.towerClientMgr, r.cfg.net.ResolveTCPAddr,
764-
genInvoiceFeatures, genAmpInvoiceFeatures,
765-
s.getNodeAnnouncement, s.updateAndBrodcastSelfNode, parseAddr,
766-
rpcsLog, s.aliasMgr.GetPeerAlias,
763+
invoiceSettlementInterceptor, s.htlcSwitch,
764+
r.cfg.ActiveNetParams.Params, s.chanRouter, routerBackend,
765+
s.nodeSigner, s.graphDB, s.chanStateDB, s.sweeper, tower,
766+
s.towerClientMgr, r.cfg.net.ResolveTCPAddr, genInvoiceFeatures,
767+
genAmpInvoiceFeatures, s.getNodeAnnouncement,
768+
s.updateAndBrodcastSelfNode, parseAddr, rpcsLog,
769+
s.aliasMgr.GetPeerAlias,
767770
)
768771
if err != nil {
769772
return err

subrpcserver_config.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ func (s *subRPCServerConfigs) PopulateDependencies(cfg *Config,
104104
networkDir string, macService *macaroons.Service,
105105
atpl *autopilot.Manager,
106106
invoiceRegistry *invoices.InvoiceRegistry,
107+
invoiceSettlementInterceptor *invoices.SettlementInterceptor,
107108
htlcSwitch *htlcswitch.Switch,
108109
activeNetParams *chaincfg.Params,
109110
chanRouter *routing.ChannelRouter,
@@ -238,6 +239,10 @@ func (s *subRPCServerConfigs) PopulateDependencies(cfg *Config,
238239
subCfgValue.FieldByName("InvoiceRegistry").Set(
239240
reflect.ValueOf(invoiceRegistry),
240241
)
242+
//nolint:lll
243+
subCfgValue.FieldByName("InvoiceSettlementInterceptor").Set(
244+
reflect.ValueOf(invoiceSettlementInterceptor),
245+
)
241246
subCfgValue.FieldByName("IsChannelActive").Set(
242247
reflect.ValueOf(htlcSwitch.HasActiveLink),
243248
)

0 commit comments

Comments
 (0)