Need to sort gas price list to find correct percentiles
This commit is contained in:
parent
f64fbfb71d
commit
8b2ae82cfd
@ -16,10 +16,10 @@ const blockGasPricesObservable = new Observable<GasPrices>((observer) => {
|
|||||||
|
|
||||||
if (!block) throw new Error(`Error fetching block! ${blockNumber}`);
|
if (!block) throw new Error(`Error fetching block! ${blockNumber}`);
|
||||||
|
|
||||||
const gasPrices = block.prefetchedTransactions.map((tx) => tx.gasPrice);
|
const gasPrices = block.prefetchedTransactions.map((tx) => tx.gasPrice).sort();
|
||||||
const fast = Number(formatUnits(gasPrices[Math.floor(gasPrices.length * 0.1)], "gwei"));
|
const fast = Number(formatUnits(gasPrices[Math.floor(gasPrices.length * 0.9)], "gwei"));
|
||||||
const average = Number(formatUnits(gasPrices[Math.floor(gasPrices.length / 2)], "gwei"));
|
const average = Number(formatUnits(gasPrices[Math.floor(gasPrices.length / 2)], "gwei"));
|
||||||
const slow = Number(formatUnits(gasPrices[Math.floor(gasPrices.length * 0.95)], "gwei"));
|
const slow = Number(formatUnits(gasPrices[Math.floor(gasPrices.length * 0.05)], "gwei"));
|
||||||
|
|
||||||
// Log averages every 10 blocks
|
// Log averages every 10 blocks
|
||||||
if (blockNumber % 10 == 0) console.log(`Found new block data for ${blockNumber}! Base average transaction cost: ${slow} Gwei`)
|
if (blockNumber % 10 == 0) console.log(`Found new block data for ${blockNumber}! Base average transaction cost: ${slow} Gwei`)
|
||||||
@ -36,12 +36,12 @@ const averageGasPricesObservable = blockGasPricesObservable.pipe(
|
|||||||
map((blocks) => {
|
map((blocks) => {
|
||||||
const { fast, average, slow } = blocks
|
const { fast, average, slow } = blocks
|
||||||
.reduce((sum, block) =>
|
.reduce((sum, block) =>
|
||||||
({
|
({ // Find sums
|
||||||
fast: sum.fast + block.fast,
|
fast: sum.fast + block.fast,
|
||||||
average: sum.average + block.average,
|
average: sum.average + block.average,
|
||||||
slow: sum.slow + block.slow
|
slow: sum.slow + block.slow
|
||||||
}), { fast: 0, average: 0, slow: 0 } as GasPrices);
|
}), { fast: 0, average: 0, slow: 0 } as GasPrices);
|
||||||
return {
|
return { // Then average them
|
||||||
fast: Math.round(fast / blocks.length),
|
fast: Math.round(fast / blocks.length),
|
||||||
average: Math.round(average / blocks.length),
|
average: Math.round(average / blocks.length),
|
||||||
slow: Math.round(slow / blocks.length),
|
slow: Math.round(slow / blocks.length),
|
||||||
|
Loading…
Reference in New Issue
Block a user