bookkeeper: save last timestamp to avoid another query in find_consolidated_fees.

If the fees are not *all* of the fees (as we do in next patch), the
query would be wrong.  Plus, as the FIXME suggests, we should just save
it as we're getting the fee_sums, not do a whole new query!

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Rusty Russell
2025-10-21 14:58:57 +10:30
parent 2c02f6d140
commit 2539b4f199
4 changed files with 5 additions and 28 deletions

View File

@@ -290,11 +290,7 @@ static struct onchain_fee **find_consolidated_fees(const tal_t *ctx,
fee->debit = AMOUNT_MSAT(0);
fee->acct_name = tal_steal(fee, sums[i]->acct_name);
fee->txid = *sums[i]->txid;
fee->timestamp =
onchain_fee_last_timestamp(bkpr, sums[i]->acct_name,
sums[i]->txid);
fee->timestamp = sums[i]->last_timestamp;
tal_arr_expand(&fee_sums, fee);
}

View File

@@ -366,10 +366,13 @@ static struct fee_sum **fee_sums_by_txid_and_account(const tal_t *ctx,
sum->txid = tal_dup(sum, struct bitcoin_txid,
&ofs[i]->txid);
credit = debit = AMOUNT_MSAT(0);
sum->last_timestamp = 0;
}
ok = amount_msat_accumulate(&credit, ofs[i]->credit);
assert(ok);
ok = amount_msat_accumulate(&debit, ofs[i]->debit);
if (ofs[i]->timestamp > sum->last_timestamp)
sum->last_timestamp = ofs[i]->timestamp;
}
/* Final, if any */
@@ -679,24 +682,6 @@ struct fee_sum **find_account_onchain_fees(const tal_t *ctx,
return fee_sums_by_txid_and_account(ctx, ofs);
}
/* FIXME: Put this value into fee_sums! */
u64 onchain_fee_last_timestamp(const struct bkpr *bkpr,
const char *acct_name,
const struct bitcoin_txid *txid)
{
struct onchain_fee **ofs;
u64 timestamp = 0;
ofs = account_get_chain_fees(tmpctx, bkpr, acct_name);
for (size_t i = 0; i < tal_count(ofs); i++) {
if (!bitcoin_txid_eq(&ofs[i]->txid, txid))
continue;
if (ofs[i]->timestamp > timestamp)
timestamp = ofs[i]->timestamp;
}
return timestamp;
}
/* If we're freeing the entire hash table, remove destructors from
* individual entries! */
static void ofees_hash_destroy(struct ofees_hash *ofees_hash)

View File

@@ -67,11 +67,6 @@ struct fee_sum **find_account_onchain_fees(const tal_t *ctx,
struct fee_sum **calculate_onchain_fee_sums(const tal_t *ctx,
const struct bkpr *bkpr);
/* Find the last timestamp for the onchain fees for this txid + account */
u64 onchain_fee_last_timestamp(const struct bkpr *bkpr,
const char *acct_name,
const struct bitcoin_txid *txid);
/* Update our onchain fees now? */
char *maybe_update_onchain_fees(const tal_t *ctx,
struct command *cmd,

View File

@@ -18,6 +18,7 @@ struct fee_sum {
const char *acct_name;
struct bitcoin_txid *txid;
struct amount_msat fees_paid;
u64 last_timestamp;
};
struct txo_pair {