From 2e992561865751e5a2aa5f70a05e3155ab256bd5 Mon Sep 17 00:00:00 2001 From: Lagrang3 Date: Mon, 18 Mar 2024 08:31:42 +0100 Subject: [PATCH 1/3] add more fields to gossmods_listpeerchannels Add spendable/receivable and is_local fields to the callback function used in gossmods_from_listpeerchannels. This allows to do more fine grained use of the listpeerchannels call. The first use case is renepay, for which we need to ignore the htlc_max of the local channels only. --- common/gossmods_listpeerchannels.c | 33 +++++++++++++++--------------- common/gossmods_listpeerchannels.h | 14 +++++++++---- plugins/renepay/pay.c | 30 ++++++++++++++++++++++----- plugins/test/run-route-calc.c | 12 +++++++---- plugins/test/run-route-overlong.c | 12 +++++++---- plugins/topology.c | 6 ++++-- tests/test_renepay.py | 11 ++++++++++ 7 files changed, 83 insertions(+), 35 deletions(-) diff --git a/common/gossmods_listpeerchannels.c b/common/gossmods_listpeerchannels.c index 731c63ae7da1..36a24bd6b209 100644 --- a/common/gossmods_listpeerchannels.c +++ b/common/gossmods_listpeerchannels.c @@ -9,16 +9,23 @@ void gossmod_add_localchan(struct gossmap_localmods *mods, const struct node_id *self, const struct node_id *peer, const struct short_channel_id_dir *scidd, - struct amount_msat min, - struct amount_msat max, + struct amount_msat htlcmin, + struct amount_msat htlcmax, + struct amount_msat spendable, struct amount_msat fee_base, u32 fee_proportional, u32 cltv_delta, bool enabled, + bool is_local UNUSED, const char *buf UNUSED, const jsmntok_t *chantok UNUSED, void *cbarg UNUSED) { + struct amount_msat min = htlcmin, max = htlcmax; + + if (amount_msat_less(spendable, max)) + max = spendable; + /* FIXME: features? */ gossmap_local_addchan(mods, self, peer, scidd->scid, NULL); @@ -40,12 +47,14 @@ gossmods_from_listpeerchannels_(const tal_t *ctx, const struct node_id *self, const struct node_id *peer, const struct short_channel_id_dir *scidd, - struct amount_msat min, - struct amount_msat max, + struct amount_msat htlcmin, + struct amount_msat htlcmax, + struct amount_msat sr_able, struct amount_msat fee_base, u32 fee_proportional, u32 cltv_delta, bool enabled, + bool is_local, const char *buf, const jsmntok_t *chantok, void *cbarg), @@ -130,10 +139,6 @@ gossmods_from_listpeerchannels_(const tal_t *ctx, && !streq(state, "CHANNELD_AWAITING_SPLICE")) enabled = false; - /* Cut htlc max to spendable. */ - if (amount_msat_less(spendable, htlc_max[LOCAL])) - htlc_max[LOCAL] = spendable; - /* We route better if we know we won't charge * ourselves fees (though if fees are a signal on what * channel we prefer to use, this ignores that @@ -146,8 +151,8 @@ gossmods_from_listpeerchannels_(const tal_t *ctx, /* We add both directions */ cb(mods, self, &dst, &scidd, htlc_min[LOCAL], htlc_max[LOCAL], - fee_base[LOCAL], fee_proportional[LOCAL], cltv_delta[LOCAL], - enabled, buf, channel, cbarg); + spendable, fee_base[LOCAL], fee_proportional[LOCAL], + cltv_delta[LOCAL], enabled, true, buf, channel, cbarg); /* If we didn't have a remote update, it's not usable yet */ if (fee_proportional[REMOTE] == -1U) @@ -155,13 +160,9 @@ gossmods_from_listpeerchannels_(const tal_t *ctx, scidd.dir = !scidd.dir; - /* Cut htlc max to receivable. */ - if (amount_msat_less(receivable, htlc_max[REMOTE])) - htlc_max[REMOTE] = receivable; - cb(mods, self, &dst, &scidd, htlc_min[REMOTE], htlc_max[REMOTE], - fee_base[REMOTE], fee_proportional[REMOTE], cltv_delta[REMOTE], - enabled, buf, channel, cbarg); + receivable, fee_base[REMOTE], fee_proportional[REMOTE], + cltv_delta[REMOTE], enabled, false, buf, channel, cbarg); } return mods; diff --git a/common/gossmods_listpeerchannels.h b/common/gossmods_listpeerchannels.h index edabacc10d9f..5b2a68b08c46 100644 --- a/common/gossmods_listpeerchannels.h +++ b/common/gossmods_listpeerchannels.h @@ -30,12 +30,14 @@ struct gossmap_localmods *gossmods_from_listpeerchannels_(const tal_t *ctx, const struct node_id *self_, const struct node_id *peer, const struct short_channel_id_dir *scidd, - struct amount_msat min, - struct amount_msat max, + struct amount_msat htlcmin, + struct amount_msat htlcmax, + struct amount_msat spendable, struct amount_msat fee_base, u32 fee_proportional, u32 cltv_delta, bool enabled, + bool is_local, const char *buf_, const jsmntok_t *chantok, void *cbarg_), @@ -51,9 +53,11 @@ struct gossmap_localmods *gossmods_from_listpeerchannels_(const tal_t *ctx, struct amount_msat, \ struct amount_msat, \ struct amount_msat, \ + struct amount_msat, \ u32, \ u32, \ bool, \ + bool, \ const char *, \ const jsmntok_t *), \ (cbarg)) @@ -63,12 +67,14 @@ void gossmod_add_localchan(struct gossmap_localmods *mods, const struct node_id *self, const struct node_id *peer, const struct short_channel_id_dir *scidd, - struct amount_msat min, - struct amount_msat max, + struct amount_msat htlcmin, + struct amount_msat htlcmax, + struct amount_msat spendable, struct amount_msat fee_base, u32 fee_proportional, u32 cltv_delta, bool enabled, + bool is_local, const char *buf UNUSED, const jsmntok_t *chantok UNUSED, void *cbarg UNUSED); diff --git a/plugins/renepay/pay.c b/plugins/renepay/pay.c index e20b3b0a8c75..3eb0ea4a17ce 100644 --- a/plugins/renepay/pay.c +++ b/plugins/renepay/pay.c @@ -458,19 +458,39 @@ static void gossmod_cb(struct gossmap_localmods *mods, const struct node_id *self, const struct node_id *peer, const struct short_channel_id_dir *scidd, - struct amount_msat min, - struct amount_msat max, + struct amount_msat htlcmin, + struct amount_msat htlcmax, + struct amount_msat spendable, struct amount_msat fee_base, u32 fee_proportional, u32 cltv_delta, bool enabled, + bool is_local, const char *buf, const jsmntok_t *chantok, struct payment *payment) { - /* Add to gossmap like normal */ - gossmod_add_localchan(mods, self, peer, scidd, min, max, - fee_base, fee_proportional, cltv_delta, enabled, buf, chantok, NULL); + struct amount_msat min, max; + + if (is_local) { + /* local channels can send up to what's spendable */ + min = AMOUNT_MSAT(0); + max = spendable; + } else { + /* remote channels can send up no more than spendable */ + min = htlcmin; + max = amount_msat_min(spendable, htlcmax); + } + + /* FIXME: features? */ + gossmap_local_addchan(mods, self, peer, &scidd->scid, NULL); + + gossmap_local_updatechan(mods, &scidd->scid, min, max, + fee_base.millisatoshis, /* Raw: gossmap */ + fee_proportional, + cltv_delta, + enabled, + scidd->dir); /* Also update uncertainty map */ uncertainty_network_update_from_listpeerchannels(payment, scidd, max, enabled, diff --git a/plugins/test/run-route-calc.c b/plugins/test/run-route-calc.c index a9d97c245156..e4f8f710a864 100644 --- a/plugins/test/run-route-calc.c +++ b/plugins/test/run-route-calc.c @@ -42,12 +42,14 @@ void gossmod_add_localchan(struct gossmap_localmods *mods UNNEEDED, const struct node_id *self UNNEEDED, const struct node_id *peer UNNEEDED, const struct short_channel_id_dir *scidd UNNEEDED, - struct amount_msat min UNNEEDED, - struct amount_msat max UNNEEDED, + struct amount_msat htlcmin UNNEEDED, + struct amount_msat htlcmax UNNEEDED, + struct amount_msat spendable UNNEEDED, struct amount_msat fee_base UNNEEDED, u32 fee_proportional UNNEEDED, u32 cltv_delta UNNEEDED, bool enabled UNNEEDED, + bool is_local UNNEEDED, const char *buf UNUSED UNNEEDED, const jsmntok_t *chantok UNUSED UNNEEDED, void *cbarg UNUSED UNNEEDED) @@ -62,12 +64,14 @@ struct gossmap_localmods *gossmods_from_listpeerchannels_(const tal_t *ctx UNNEE const struct node_id *self_ UNNEEDED, const struct node_id *peer UNNEEDED, const struct short_channel_id_dir *scidd UNNEEDED, - struct amount_msat min UNNEEDED, - struct amount_msat max UNNEEDED, + struct amount_msat htlcmin UNNEEDED, + struct amount_msat htlcmax UNNEEDED, + struct amount_msat spendable UNNEEDED, struct amount_msat fee_base UNNEEDED, u32 fee_proportional UNNEEDED, u32 cltv_delta UNNEEDED, bool enabled UNNEEDED, + bool is_local UNNEEDED, const char *buf_ UNNEEDED, const jsmntok_t *chantok UNNEEDED, void *cbarg_) UNNEEDED, diff --git a/plugins/test/run-route-overlong.c b/plugins/test/run-route-overlong.c index 39b74377715c..96d74ff43ce5 100644 --- a/plugins/test/run-route-overlong.c +++ b/plugins/test/run-route-overlong.c @@ -39,12 +39,14 @@ void gossmod_add_localchan(struct gossmap_localmods *mods UNNEEDED, const struct node_id *self UNNEEDED, const struct node_id *peer UNNEEDED, const struct short_channel_id_dir *scidd UNNEEDED, - struct amount_msat min UNNEEDED, - struct amount_msat max UNNEEDED, + struct amount_msat htlcmin UNNEEDED, + struct amount_msat htlcmax UNNEEDED, + struct amount_msat spendable UNNEEDED, struct amount_msat fee_base UNNEEDED, u32 fee_proportional UNNEEDED, u32 cltv_delta UNNEEDED, bool enabled UNNEEDED, + bool is_local UNNEEDED, const char *buf UNUSED UNNEEDED, const jsmntok_t *chantok UNUSED UNNEEDED, void *cbarg UNUSED UNNEEDED) @@ -59,12 +61,14 @@ struct gossmap_localmods *gossmods_from_listpeerchannels_(const tal_t *ctx UNNEE const struct node_id *self_ UNNEEDED, const struct node_id *peer UNNEEDED, const struct short_channel_id_dir *scidd UNNEEDED, - struct amount_msat min UNNEEDED, - struct amount_msat max UNNEEDED, + struct amount_msat htlcmin UNNEEDED, + struct amount_msat htlcmax UNNEEDED, + struct amount_msat spendable UNNEEDED, struct amount_msat fee_base UNNEEDED, u32 fee_proportional UNNEEDED, u32 cltv_delta UNNEEDED, bool enabled UNNEEDED, + bool is_local UNNEEDED, const char *buf_ UNNEEDED, const jsmntok_t *chantok UNNEEDED, void *cbarg_) UNNEEDED, diff --git a/plugins/topology.c b/plugins/topology.c index f8593043e31c..14054324ecdd 100644 --- a/plugins/topology.c +++ b/plugins/topology.c @@ -364,10 +364,12 @@ static void gossmod_add_unknown_localchan(struct gossmap_localmods *mods, const struct short_channel_id_dir *scidd, struct amount_msat min, struct amount_msat max, + struct amount_msat spendable, struct amount_msat fee_base, u32 fee_proportional, u32 cltv_delta, bool enabled, + bool is_local, const char *buf UNUSED, const jsmntok_t *chantok UNUSED, struct gossmap *gossmap) @@ -375,9 +377,9 @@ static void gossmod_add_unknown_localchan(struct gossmap_localmods *mods, if (gossmap_find_chan(gossmap, &scidd->scid)) return; - gossmod_add_localchan(mods, self, peer, scidd, min, max, + gossmod_add_localchan(mods, self, peer, scidd, min, max, spendable, fee_base, fee_proportional, cltv_delta, enabled, - buf, chantok, gossmap); + is_local, buf, chantok, gossmap); } /* FIXME: We don't need this listpeerchannels at all if not deprecated! */ diff --git a/tests/test_renepay.py b/tests/test_renepay.py index c5831885eab2..d223a039ebbd 100644 --- a/tests/test_renepay.py +++ b/tests/test_renepay.py @@ -624,3 +624,14 @@ def test_fees(node_factory): source.rpc.call("renepay", {"invstring": invstr}) invoice = only_one(dest.rpc.listinvoices("inv2")["invoices"]) assert invoice["amount_received_msat"] == Millisatoshi("150000sat") + + +def test_local_htlcmax0(node_factory): + """Testing a simple pay route when local channels have htlcmax=0.""" + l1, l2, l3 = node_factory.line_graph(3, wait_for_announce=True) + l1.rpc.setchannel(l2.info["id"], htlcmax=0) + inv = l3.rpc.invoice(123000, "test_renepay", "description")["bolt11"] + details = l1.rpc.call("renepay", {"invstring": inv}) + assert details["status"] == "complete" + assert details["amount_msat"] == Millisatoshi(123000) + assert details["destination"] == l3.info["id"] From d94d15d71d1f3271c4409e9c5fea1f77fc2f0d1f Mon Sep 17 00:00:00 2001 From: Lagrang3 Date: Wed, 27 Mar 2024 13:02:16 +0100 Subject: [PATCH 2/3] renepay: limit arc capacities by htlc_max In the Min. Cost Flow solver we put a constraint on arcs capacities, such that the total flow that can be allocated through a channel does not exceed htlc_max. This solves two previous problem of the htlc_max constraint at the MCF level. --- plugins/renepay/mcf.c | 9 +++++++- plugins/renepay/pay.c | 4 ++-- tests/test_renepay.py | 50 +++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 58 insertions(+), 5 deletions(-) diff --git a/plugins/renepay/mcf.c b/plugins/renepay/mcf.c index 8537b2cae8e7..deea4d66c5d0 100644 --- a/plugins/renepay/mcf.c +++ b/plugins/renepay/mcf.c @@ -483,11 +483,18 @@ static bool linearize_channel(const struct pay_parameters *params, a = MAX(a,0); b = MAX(a+1,b); + /* An extra bound on capacity, here we use it to reduce the flow such + * that it does not exceed htlcmax. */ + s64 cap_on_capacity = + channel_htlc_max(c, dir).millisatoshis/1000; /* Raw: linearize_channel */ + capacity[0]=a; cost[0]=0; for(size_t i=1;icap_fraction[i]*(b-a); + capacity[i] = MIN(params->cap_fraction[i]*(b-a), cap_on_capacity); + cap_on_capacity -= capacity[i]; + assert(cap_on_capacity>=0); cost[i] = params->cost_fraction[i] *params->amount.millisatoshis /* Raw: linearize_channel */ diff --git a/plugins/renepay/pay.c b/plugins/renepay/pay.c index 3eb0ea4a17ce..c0b62398b667 100644 --- a/plugins/renepay/pay.c +++ b/plugins/renepay/pay.c @@ -483,9 +483,9 @@ static void gossmod_cb(struct gossmap_localmods *mods, } /* FIXME: features? */ - gossmap_local_addchan(mods, self, peer, &scidd->scid, NULL); + gossmap_local_addchan(mods, self, peer, scidd->scid, NULL); - gossmap_local_updatechan(mods, &scidd->scid, min, max, + gossmap_local_updatechan(mods, scidd->scid, min, max, fee_base.millisatoshis, /* Raw: gossmap */ fee_proportional, cltv_delta, diff --git a/tests/test_renepay.py b/tests/test_renepay.py index d223a039ebbd..99f654a9a859 100644 --- a/tests/test_renepay.py +++ b/tests/test_renepay.py @@ -489,12 +489,12 @@ def test_htlc_max(node_factory): ] ) - inv = l6.rpc.invoice("1800000sat", "inv", "description") + inv = l6.rpc.invoice("800000sat", "inv", "description") l1.rpc.call("renepay", {"invstring": inv["bolt11"]}) l1.wait_for_htlcs() invoice = only_one(l6.rpc.listinvoices("inv")["invoices"]) - assert invoice["amount_received_msat"] >= Millisatoshi("1800000sat") + assert invoice["amount_received_msat"] >= Millisatoshi("800000sat") def test_previous_sendpays(node_factory, bitcoind): @@ -635,3 +635,49 @@ def test_local_htlcmax0(node_factory): assert details["status"] == "complete" assert details["amount_msat"] == Millisatoshi(123000) assert details["destination"] == l3.info["id"] + + +def test_htlcmax0(node_factory): + """ + Topology: + 1----2----4 + | | + 3----5----6 + Tests the plugin when some routes have htlc_max=0. + """ + opts = [ + {"disable-mpp": None, "fee-base": 0, "fee-per-satoshi": 0}, + {"disable-mpp": None, "fee-base": 0, "fee-per-satoshi": 0}, + {"disable-mpp": None, "fee-base": 0, "fee-per-satoshi": 0}, + { + "disable-mpp": None, + "fee-base": 0, + "fee-per-satoshi": 0, + "htlc-maximum-msat": 0, + }, + { + "disable-mpp": None, + "fee-base": 0, + "fee-per-satoshi": 0, + "htlc-maximum-msat": 800000000, + }, + {"disable-mpp": None, "fee-base": 0, "fee-per-satoshi": 0}, + ] + l1, l2, l3, l4, l5, l6 = node_factory.get_nodes(6, opts=opts) + start_channels( + [ + (l1, l2, 10000000), + (l2, l4, 1000000), + (l4, l6, 1000000), + (l1, l3, 10000000), + (l3, l5, 1000000), + (l5, l6, 1000000), + ] + ) + + inv = l6.rpc.invoice("600000sat", "inv", "description") + + l1.rpc.call("renepay", {"invstring": inv["bolt11"]}) + l1.wait_for_htlcs() + invoice = only_one(l6.rpc.listinvoices("inv")["invoices"]) + assert invoice["amount_received_msat"] >= Millisatoshi("600000sat") From e5c705f82616ff4a9c899adf2f293ccd414ba8da Mon Sep 17 00:00:00 2001 From: Lagrang3 Date: Tue, 2 Apr 2024 07:51:05 +0100 Subject: [PATCH 3/3] remove is_local variable from listpeerchannels cb is_local, ie. "is this side of the channel ours?" is not needed since we can determine that predicate by evaluating `scidd->dir == node_id_idx(self, peer)` --- common/gossmods_listpeerchannels.c | 6 ++---- common/gossmods_listpeerchannels.h | 3 --- plugins/renepay/pay.c | 7 +++---- plugins/test/run-route-calc.c | 2 -- plugins/test/run-route-overlong.c | 2 -- plugins/topology.c | 3 +-- 6 files changed, 6 insertions(+), 17 deletions(-) diff --git a/common/gossmods_listpeerchannels.c b/common/gossmods_listpeerchannels.c index 36a24bd6b209..73864241302e 100644 --- a/common/gossmods_listpeerchannels.c +++ b/common/gossmods_listpeerchannels.c @@ -16,7 +16,6 @@ void gossmod_add_localchan(struct gossmap_localmods *mods, u32 fee_proportional, u32 cltv_delta, bool enabled, - bool is_local UNUSED, const char *buf UNUSED, const jsmntok_t *chantok UNUSED, void *cbarg UNUSED) @@ -54,7 +53,6 @@ gossmods_from_listpeerchannels_(const tal_t *ctx, u32 fee_proportional, u32 cltv_delta, bool enabled, - bool is_local, const char *buf, const jsmntok_t *chantok, void *cbarg), @@ -152,7 +150,7 @@ gossmods_from_listpeerchannels_(const tal_t *ctx, /* We add both directions */ cb(mods, self, &dst, &scidd, htlc_min[LOCAL], htlc_max[LOCAL], spendable, fee_base[LOCAL], fee_proportional[LOCAL], - cltv_delta[LOCAL], enabled, true, buf, channel, cbarg); + cltv_delta[LOCAL], enabled, buf, channel, cbarg); /* If we didn't have a remote update, it's not usable yet */ if (fee_proportional[REMOTE] == -1U) @@ -162,7 +160,7 @@ gossmods_from_listpeerchannels_(const tal_t *ctx, cb(mods, self, &dst, &scidd, htlc_min[REMOTE], htlc_max[REMOTE], receivable, fee_base[REMOTE], fee_proportional[REMOTE], - cltv_delta[REMOTE], enabled, false, buf, channel, cbarg); + cltv_delta[REMOTE], enabled, buf, channel, cbarg); } return mods; diff --git a/common/gossmods_listpeerchannels.h b/common/gossmods_listpeerchannels.h index 5b2a68b08c46..a9847c882645 100644 --- a/common/gossmods_listpeerchannels.h +++ b/common/gossmods_listpeerchannels.h @@ -37,7 +37,6 @@ struct gossmap_localmods *gossmods_from_listpeerchannels_(const tal_t *ctx, u32 fee_proportional, u32 cltv_delta, bool enabled, - bool is_local, const char *buf_, const jsmntok_t *chantok, void *cbarg_), @@ -57,7 +56,6 @@ struct gossmap_localmods *gossmods_from_listpeerchannels_(const tal_t *ctx, u32, \ u32, \ bool, \ - bool, \ const char *, \ const jsmntok_t *), \ (cbarg)) @@ -74,7 +72,6 @@ void gossmod_add_localchan(struct gossmap_localmods *mods, u32 fee_proportional, u32 cltv_delta, bool enabled, - bool is_local, const char *buf UNUSED, const jsmntok_t *chantok UNUSED, void *cbarg UNUSED); diff --git a/plugins/renepay/pay.c b/plugins/renepay/pay.c index c0b62398b667..30ff14758f7d 100644 --- a/plugins/renepay/pay.c +++ b/plugins/renepay/pay.c @@ -465,19 +465,18 @@ static void gossmod_cb(struct gossmap_localmods *mods, u32 fee_proportional, u32 cltv_delta, bool enabled, - bool is_local, const char *buf, const jsmntok_t *chantok, struct payment *payment) { struct amount_msat min, max; - if (is_local) { - /* local channels can send up to what's spendable */ + if (scidd->dir == node_id_idx(self, peer)) { + /* our side of the channel can send up to what's spendable */ min = AMOUNT_MSAT(0); max = spendable; } else { - /* remote channels can send up no more than spendable */ + /* the remote side can send up to no more than spendable */ min = htlcmin; max = amount_msat_min(spendable, htlcmax); } diff --git a/plugins/test/run-route-calc.c b/plugins/test/run-route-calc.c index e4f8f710a864..5a8f74a0a9de 100644 --- a/plugins/test/run-route-calc.c +++ b/plugins/test/run-route-calc.c @@ -49,7 +49,6 @@ void gossmod_add_localchan(struct gossmap_localmods *mods UNNEEDED, u32 fee_proportional UNNEEDED, u32 cltv_delta UNNEEDED, bool enabled UNNEEDED, - bool is_local UNNEEDED, const char *buf UNUSED UNNEEDED, const jsmntok_t *chantok UNUSED UNNEEDED, void *cbarg UNUSED UNNEEDED) @@ -71,7 +70,6 @@ struct gossmap_localmods *gossmods_from_listpeerchannels_(const tal_t *ctx UNNEE u32 fee_proportional UNNEEDED, u32 cltv_delta UNNEEDED, bool enabled UNNEEDED, - bool is_local UNNEEDED, const char *buf_ UNNEEDED, const jsmntok_t *chantok UNNEEDED, void *cbarg_) UNNEEDED, diff --git a/plugins/test/run-route-overlong.c b/plugins/test/run-route-overlong.c index 96d74ff43ce5..a6e0a5a00e22 100644 --- a/plugins/test/run-route-overlong.c +++ b/plugins/test/run-route-overlong.c @@ -46,7 +46,6 @@ void gossmod_add_localchan(struct gossmap_localmods *mods UNNEEDED, u32 fee_proportional UNNEEDED, u32 cltv_delta UNNEEDED, bool enabled UNNEEDED, - bool is_local UNNEEDED, const char *buf UNUSED UNNEEDED, const jsmntok_t *chantok UNUSED UNNEEDED, void *cbarg UNUSED UNNEEDED) @@ -68,7 +67,6 @@ struct gossmap_localmods *gossmods_from_listpeerchannels_(const tal_t *ctx UNNEE u32 fee_proportional UNNEEDED, u32 cltv_delta UNNEEDED, bool enabled UNNEEDED, - bool is_local UNNEEDED, const char *buf_ UNNEEDED, const jsmntok_t *chantok UNNEEDED, void *cbarg_) UNNEEDED, diff --git a/plugins/topology.c b/plugins/topology.c index 14054324ecdd..ecd97443e9ea 100644 --- a/plugins/topology.c +++ b/plugins/topology.c @@ -369,7 +369,6 @@ static void gossmod_add_unknown_localchan(struct gossmap_localmods *mods, u32 fee_proportional, u32 cltv_delta, bool enabled, - bool is_local, const char *buf UNUSED, const jsmntok_t *chantok UNUSED, struct gossmap *gossmap) @@ -379,7 +378,7 @@ static void gossmod_add_unknown_localchan(struct gossmap_localmods *mods, gossmod_add_localchan(mods, self, peer, scidd, min, max, spendable, fee_base, fee_proportional, cltv_delta, enabled, - is_local, buf, chantok, gossmap); + buf, chantok, gossmap); } /* FIXME: We don't need this listpeerchannels at all if not deprecated! */