Skip to content

Commit 8113fa8

Browse files
authored
Merge pull request #1186 from GeorgeTsagk/rfq-track-accepted-amount
Track HTLCs in rfq policies
2 parents 3d3b254 + 8d9bb75 commit 8113fa8

File tree

4 files changed

+248
-10
lines changed

4 files changed

+248
-10
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 {

0 commit comments

Comments
 (0)