Skip to content

Commit 1918509

Browse files
committed
multi: add SubscribeHtlcEvents call
1 parent 3d3b254 commit 1918509

File tree

4 files changed

+27
-0
lines changed

4 files changed

+27
-0
lines changed

chain_bridge.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import (
1818
"github.com/lightninglabs/taproot-assets/tapgarden"
1919
"github.com/lightningnetwork/lnd/chainntnfs"
2020
"github.com/lightningnetwork/lnd/funding"
21+
"github.com/lightningnetwork/lnd/lnrpc/routerrpc"
2122
"github.com/lightningnetwork/lnd/lnwallet/chainfee"
2223
"github.com/lightningnetwork/lnd/lnwire"
2324
"github.com/lightningnetwork/lnd/routing/route"
@@ -376,9 +377,19 @@ func (l *LndRouterClient) DeleteLocalAlias(ctx context.Context, alias,
376377
return l.lnd.Router.XDeleteLocalChanAlias(ctx, alias, baseScid)
377378
}
378379

380+
// SubscribeHtlcEvents subscribes to a stream of events related to
381+
// HTLC updates.
382+
func (l *LndRouterClient) SubscribeHtlcEvents(
383+
ctx context.Context) (<-chan *routerrpc.HtlcEvent,
384+
<-chan error, error) {
385+
386+
return l.lnd.Router.SubscribeHtlcEvents(ctx)
387+
}
388+
379389
// Ensure LndRouterClient implements the rfq.HtlcInterceptor interface.
380390
var _ rfq.HtlcInterceptor = (*LndRouterClient)(nil)
381391
var _ rfq.ScidAliasManager = (*LndRouterClient)(nil)
392+
var _ rfq.HtlcSubscriber = (*LndRouterClient)(nil)
382393

383394
// LndInvoicesClient is an LND invoices RPC client.
384395
type LndInvoicesClient struct {

rfq/manager.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,10 @@ type ManagerCfg struct {
7272
// intercept and accept/reject HTLCs.
7373
HtlcInterceptor HtlcInterceptor
7474

75+
// HtlcSubscriber is a subscriber that is used to retrieve live HTLC
76+
// event updates.
77+
HtlcSubscriber HtlcSubscriber
78+
7579
// PriceOracle is the price oracle that the RFQ manager will use to
7680
// determine whether a quote is accepted or rejected.
7781
PriceOracle PriceOracle
@@ -207,6 +211,7 @@ func (m *Manager) startSubsystems(ctx context.Context) error {
207211
m.orderHandler, err = NewOrderHandler(OrderHandlerCfg{
208212
CleanupInterval: CacheCleanupInterval,
209213
HtlcInterceptor: m.cfg.HtlcInterceptor,
214+
HtlcSubscriber: m.cfg.HtlcSubscriber,
210215
AcceptHtlcEvents: m.acceptHtlcEvents,
211216
})
212217
if err != nil {

rfq/order.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"github.com/lightninglabs/taproot-assets/rfqmath"
1515
"github.com/lightninglabs/taproot-assets/rfqmsg"
1616
"github.com/lightningnetwork/lnd/input"
17+
"github.com/lightningnetwork/lnd/lnrpc/routerrpc"
1718
"github.com/lightningnetwork/lnd/lnutils"
1819
"github.com/lightningnetwork/lnd/lnwallet"
1920
"github.com/lightningnetwork/lnd/lnwire"
@@ -843,3 +844,12 @@ type HtlcInterceptor interface {
843844
// to respond to HTLCs.
844845
InterceptHtlcs(context.Context, lndclient.HtlcInterceptHandler) error
845846
}
847+
848+
// HtlcSubscriber is an interface that contains the function necessary for
849+
// retrieving live HTLC event updates.
850+
type HtlcSubscriber interface {
851+
// SubscribeHtlcEvents subscribes to a stream of events related to
852+
// HTLC updates.
853+
SubscribeHtlcEvents(ctx context.Context) (<-chan *routerrpc.HtlcEvent,
854+
<-chan error, error)
855+
}

tapcfg/server.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -395,6 +395,7 @@ func genServerConfig(cfg *Config, cfgLogger btclog.Logger,
395395
rfq.ManagerCfg{
396396
PeerMessenger: msgTransportClient,
397397
HtlcInterceptor: lndRouterClient,
398+
HtlcSubscriber: lndRouterClient,
398399
PriceOracle: priceOracle,
399400
ChannelLister: walletAnchor,
400401
AliasManager: lndRouterClient,

0 commit comments

Comments
 (0)