From c758672ac06b93ece8e8ab8248f44b2d7ab50332 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 21 Oct 2025 16:25:28 +1030 Subject: [PATCH] bookkeeper: honor start and ent times when consolidating onchain fees. Fixes: https://github.com/ElementsProject/lightning/issues/8318 Reported-by: Shahaha Changelog-Fixed: Plugins: `bkpr_listincome` now honors `start_time` and `end_time` parameters for onchain fees. --- plugins/bkpr/incomestmt.c | 2 +- plugins/bkpr/onchain_fee.c | 6 ++++-- plugins/bkpr/onchain_fee.h | 4 +++- tests/test_bookkeeper.py | 2 +- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/plugins/bkpr/incomestmt.c b/plugins/bkpr/incomestmt.c index faf135529..d9041f56b 100644 --- a/plugins/bkpr/incomestmt.c +++ b/plugins/bkpr/incomestmt.c @@ -276,7 +276,7 @@ static struct onchain_fee **find_consolidated_fees(const tal_t *ctx, struct onchain_fee **fee_sums = tal_arr(ctx, struct onchain_fee *, 0); - sums = calculate_onchain_fee_sums(ctx, bkpr); + sums = calculate_onchain_fee_sums(ctx, bkpr, start_time, end_time); for (size_t i = 0; i < tal_count(sums); i++) { /* Find the last matching feerate's data */ diff --git a/plugins/bkpr/onchain_fee.c b/plugins/bkpr/onchain_fee.c index 0bec506b1..6cdce78ab 100644 --- a/plugins/bkpr/onchain_fee.c +++ b/plugins/bkpr/onchain_fee.c @@ -383,11 +383,13 @@ static struct fee_sum **fee_sums_by_txid_and_account(const tal_t *ctx, } struct fee_sum **calculate_onchain_fee_sums(const tal_t *ctx, - const struct bkpr *bkpr) + const struct bkpr *bkpr, + u64 start_time, + u64 end_time) { struct onchain_fee **ofs; - ofs = list_chain_fees(tmpctx, bkpr); + ofs = list_chain_fees_timebox(tmpctx, bkpr, start_time, end_time); return fee_sums_by_txid_and_account(ctx, ofs); } diff --git a/plugins/bkpr/onchain_fee.h b/plugins/bkpr/onchain_fee.h index 5e3be5e5d..3dbbbd2df 100644 --- a/plugins/bkpr/onchain_fee.h +++ b/plugins/bkpr/onchain_fee.h @@ -65,7 +65,9 @@ struct fee_sum **find_account_onchain_fees(const tal_t *ctx, /* Final all the onchain fees */ struct fee_sum **calculate_onchain_fee_sums(const tal_t *ctx, - const struct bkpr *bkpr); + const struct bkpr *bkpr, + u64 start_time, + u64 end_time); /* Update our onchain fees now? */ char *maybe_update_onchain_fees(const tal_t *ctx, diff --git a/tests/test_bookkeeper.py b/tests/test_bookkeeper.py index c9ddf9e6a..2beceb846 100644 --- a/tests/test_bookkeeper.py +++ b/tests/test_bookkeeper.py @@ -1164,7 +1164,7 @@ def test_migration_no_bkpr(node_factory, bitcoind): 'type': 'channel'}] -@pytest.mark.xfail(strict=True) +@unittest.skipIf(TEST_NETWORK != 'regtest', "External wallet support doesn't work with elements yet.") def test_listincome_timebox(node_factory, bitcoind): l1 = node_factory.get_node() addr = l1.rpc.newaddr()['bech32']