Use actual block weight instead of assumed full block weight in median fee calculation

This commit is contained in:
natsoni 2025-06-22 18:15:19 +02:00
parent b6ac9ff974
commit 42bfa6f300
No known key found for this signature in database
GPG key ID: C65917583181743B

View file

@ -900,9 +900,11 @@ export class Common {
let medianWeight = 0;
// calculate the "medianFee" as the average fee rate of the middle 0.25% weight units of transactions
const halfWidth = config.MEMPOOL.BLOCK_WEIGHT_UNITS / 800;
const leftBound = Math.floor((config.MEMPOOL.BLOCK_WEIGHT_UNITS / 2) - halfWidth);
const rightBound = Math.ceil((config.MEMPOOL.BLOCK_WEIGHT_UNITS / 2) + halfWidth);
// Also ensure we use actual block weight rather than assuming full block
const effectiveBlockWeight = transactions.reduce((sum, tx) => sum + tx.weight, 0);
const halfWidth = effectiveBlockWeight / 800;
const leftBound = Math.floor((effectiveBlockWeight / 2) - halfWidth);
const rightBound = Math.ceil((effectiveBlockWeight / 2) + halfWidth);
for (let i = 0; i < sortedTxs.length && weightCount < rightBound; i++) {
const left = weightCount;
const right = weightCount + sortedTxs[i].weight;