Skip to content

Commit 73f52c8

Browse files
ffranrguggero
authored andcommitted
invoicesrpc: add HTLC modifier to invoices RPC server
This commit integrates the HTLC modifier service into the invoices RPC server.
1 parent 7e8a3b0 commit 73f52c8

File tree

4 files changed

+14
-4
lines changed

4 files changed

+14
-4
lines changed

lnd.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -618,6 +618,7 @@ func Main(cfg *Config, lisCfg ListenerCfg, implCfg *ImplementationCfg,
618618
err = rpcServer.addDeps(
619619
server, interceptorChain.MacaroonService(), cfg.SubRPCServers,
620620
atplManager, server.invoices, tower, multiAcceptor,
621+
server.invoiceHtlcModifier,
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+
// HtlcModifier is a service which intercepts invoice HTLCs during the
34+
// settlement phase, enabling a subscribed client to modify certain
35+
// aspects of those HTLCs.
36+
HtlcModifier invoices.HtlcModifier
37+
3338
// IsChannelActive is used to generate valid hop hints.
3439
IsChannelActive func(chanID lnwire.ChannelID) bool
3540

rpcserver.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -673,7 +673,8 @@ func newRPCServer(cfg *Config, interceptorChain *rpcperms.InterceptorChain,
673673
func (r *rpcServer) addDeps(s *server, macService *macaroons.Service,
674674
subServerCgs *subRPCServerConfigs, atpl *autopilot.Manager,
675675
invoiceRegistry *invoices.InvoiceRegistry, tower *watchtower.Standalone,
676-
chanPredicate chanacceptor.MultiplexAcceptor) error {
676+
chanPredicate chanacceptor.MultiplexAcceptor,
677+
invoiceHtlcModifier *invoices.HtlcModificationInterceptor) error {
677678

678679
// Set up router rpc backend.
679680
selfNode, err := s.graphDB.SourceNode()
@@ -776,7 +777,7 @@ func (r *rpcServer) addDeps(s *server, macService *macaroons.Service,
776777
s.sweeper, tower, s.towerClientMgr, r.cfg.net.ResolveTCPAddr,
777778
genInvoiceFeatures, genAmpInvoiceFeatures,
778779
s.getNodeAnnouncement, s.updateAndBrodcastSelfNode, parseAddr,
779-
rpcsLog, s.aliasMgr,
780+
rpcsLog, s.aliasMgr, invoiceHtlcModifier,
780781
)
781782
if err != nil {
782783
return err

subrpcserver_config.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,8 @@ func (s *subRPCServerConfigs) PopulateDependencies(cfg *Config,
122122
updateNodeAnnouncement func(features *lnwire.RawFeatureVector,
123123
modifiers ...netann.NodeAnnModifier) error,
124124
parseAddr func(addr string) (net.Addr, error),
125-
rpcLogger btclog.Logger,
126-
aliasMgr *aliasmgr.Manager) error {
125+
rpcLogger btclog.Logger, aliasMgr *aliasmgr.Manager,
126+
invoiceHtlcModifier *invoices.HtlcModificationInterceptor) error {
127127

128128
// First, we'll use reflect to obtain a version of the config struct
129129
// that allows us to programmatically inspect its fields.
@@ -239,6 +239,9 @@ func (s *subRPCServerConfigs) PopulateDependencies(cfg *Config,
239239
subCfgValue.FieldByName("InvoiceRegistry").Set(
240240
reflect.ValueOf(invoiceRegistry),
241241
)
242+
subCfgValue.FieldByName("HtlcModifier").Set(
243+
reflect.ValueOf(invoiceHtlcModifier),
244+
)
242245
subCfgValue.FieldByName("IsChannelActive").Set(
243246
reflect.ValueOf(htlcSwitch.HasActiveLink),
244247
)

0 commit comments

Comments
 (0)