From 95b69c2cf82339845cde09655c75b16513853c08 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 21 Jul 2023 16:45:22 +0930 Subject: [PATCH] lightningd: put ignore_fee_limits bool into channel struct. For now, it's set from the global config. Signed-off-by: Rusty Russell --- lightningd/channel.c | 5 ++++- lightningd/channel.h | 6 +++++- lightningd/opening_control.c | 6 ++++-- wallet/test/run-wallet.c | 3 ++- wallet/wallet.c | 4 +++- 5 files changed, 18 insertions(+), 6 deletions(-) diff --git a/lightningd/channel.c b/lightningd/channel.c index f7c4b6d4a..73a9430f2 100644 --- a/lightningd/channel.c +++ b/lightningd/channel.c @@ -262,6 +262,7 @@ struct channel *new_unsaved_channel(struct peer *peer, channel->future_per_commitment_point = NULL; channel->lease_commit_sig = NULL; + channel->ignore_fee_limits = ld->config.ignore_fee_limits; /* No shachain yet */ channel->their_shachain.id = 0; @@ -393,7 +394,8 @@ struct channel *new_channel(struct peer *peer, u64 dbid, u32 lease_chan_max_msat, u16 lease_chan_max_ppt, struct amount_msat htlc_minimum_msat, - struct amount_msat htlc_maximum_msat) + struct amount_msat htlc_maximum_msat, + bool ignore_fee_limits) { struct channel *channel = tal(peer->ld, struct channel); struct amount_msat htlc_min, htlc_max; @@ -541,6 +543,7 @@ struct channel *new_channel(struct peer *peer, u64 dbid, channel->closer = closer; channel->close_blockheight = NULL; channel->state_change_cause = reason; + channel->ignore_fee_limits = ignore_fee_limits; /* Make sure we see any spends using this key */ if (!local_shutdown_scriptpubkey) { diff --git a/lightningd/channel.h b/lightningd/channel.h index acadb95df..4f2ada33d 100644 --- a/lightningd/channel.h +++ b/lightningd/channel.h @@ -269,6 +269,9 @@ struct channel { /* `Channel-shell` of this channel * (Minimum information required to backup this channel). */ struct scb_chan *scb; + + /* Do we allow the peer to set any fee it wants? */ + bool ignore_fee_limits; }; bool channel_is_connected(const struct channel *channel); @@ -345,7 +348,8 @@ struct channel *new_channel(struct peer *peer, u64 dbid, u32 lease_chan_max_msat, u16 lease_chan_max_ppt, struct amount_msat htlc_minimum_msat, - struct amount_msat htlc_maximum_msat); + struct amount_msat htlc_maximum_msat, + bool ignore_fee_limits); /* new_inflight - Create a new channel_inflight for a channel */ struct channel_inflight * diff --git a/lightningd/opening_control.c b/lightningd/opening_control.c index b4fb28cb3..56d5166b1 100644 --- a/lightningd/opening_control.c +++ b/lightningd/opening_control.c @@ -231,7 +231,8 @@ wallet_commit_channel(struct lightningd *ld, &lease_start_blockheight)), 0, NULL, 0, 0, /* No leases on v1s */ ld->config.htlc_minimum_msat, - ld->config.htlc_maximum_msat); + ld->config.htlc_maximum_msat, + ld->config.ignore_fee_limits); /* Now we finally put it in the database. */ wallet_channel_insert(ld->wallet, channel); @@ -1464,7 +1465,8 @@ static struct channel *stub_chan(struct command *cmd, &blockht)), 0, NULL, 0, 0, /* No leases on v1s */ ld->config.htlc_minimum_msat, - ld->config.htlc_maximum_msat); + ld->config.htlc_maximum_msat, + false); return channel; } diff --git a/wallet/test/run-wallet.c b/wallet/test/run-wallet.c index 5b079142f..595932920 100644 --- a/wallet/test/run-wallet.c +++ b/wallet/test/run-wallet.c @@ -1672,7 +1672,8 @@ static bool test_channel_inflight_crud(struct lightningd *ld, const tal_t *ctx) lease_commit_sig, 7777, 22, AMOUNT_MSAT(0), - AMOUNT_MSAT(-1ULL)); + AMOUNT_MSAT(-1ULL), + false); db_begin_transaction(w->db); CHECK(!wallet_err); wallet_channel_insert(w, chan); diff --git a/wallet/wallet.c b/wallet/wallet.c index 1446bcc4c..d497a2557 100644 --- a/wallet/wallet.c +++ b/wallet/wallet.c @@ -1619,7 +1619,9 @@ static struct channel *wallet_stmt2channel(struct wallet *w, struct db_stmt *stm lease_chan_max_msat, lease_chan_max_ppt, htlc_minimum_msat, - htlc_maximum_msat); + htlc_maximum_msat, + /* FIXME: load from db! */ + false); if (!wallet_channel_load_inflights(w, chan)) { tal_free(chan);