Add more precision to hashrate graphs
This commit is contained in:
parent
0a70273456
commit
c216e849e6
@ -225,7 +225,7 @@ const witnessSize = (vin: Vin) => vin.witness ? vin.witness.reduce((S, w) => S +
|
|||||||
const scriptSigSize = (vin: Vin) => vin.scriptsig ? vin.scriptsig.length / 2 : 0;
|
const scriptSigSize = (vin: Vin) => vin.scriptsig ? vin.scriptsig.length / 2 : 0;
|
||||||
|
|
||||||
// Power of ten wrapper
|
// Power of ten wrapper
|
||||||
export function selectPowerOfTen(val: number): { divider: number, unit: string } {
|
export function selectPowerOfTen(val: number, multiplier = 1): { divider: number, unit: string } {
|
||||||
const powerOfTen = {
|
const powerOfTen = {
|
||||||
exa: Math.pow(10, 18),
|
exa: Math.pow(10, 18),
|
||||||
peta: Math.pow(10, 15),
|
peta: Math.pow(10, 15),
|
||||||
@ -236,17 +236,17 @@ export function selectPowerOfTen(val: number): { divider: number, unit: string }
|
|||||||
};
|
};
|
||||||
|
|
||||||
let selectedPowerOfTen: { divider: number, unit: string };
|
let selectedPowerOfTen: { divider: number, unit: string };
|
||||||
if (val < powerOfTen.kilo) {
|
if (val < powerOfTen.kilo * multiplier) {
|
||||||
selectedPowerOfTen = { divider: 1, unit: '' }; // no scaling
|
selectedPowerOfTen = { divider: 1, unit: '' }; // no scaling
|
||||||
} else if (val < powerOfTen.mega) {
|
} else if (val < powerOfTen.mega * multiplier) {
|
||||||
selectedPowerOfTen = { divider: powerOfTen.kilo, unit: 'k' };
|
selectedPowerOfTen = { divider: powerOfTen.kilo, unit: 'k' };
|
||||||
} else if (val < powerOfTen.giga) {
|
} else if (val < powerOfTen.giga * multiplier) {
|
||||||
selectedPowerOfTen = { divider: powerOfTen.mega, unit: 'M' };
|
selectedPowerOfTen = { divider: powerOfTen.mega, unit: 'M' };
|
||||||
} else if (val < powerOfTen.tera) {
|
} else if (val < powerOfTen.tera * multiplier) {
|
||||||
selectedPowerOfTen = { divider: powerOfTen.giga, unit: 'G' };
|
selectedPowerOfTen = { divider: powerOfTen.giga, unit: 'G' };
|
||||||
} else if (val < powerOfTen.peta) {
|
} else if (val < powerOfTen.peta * multiplier) {
|
||||||
selectedPowerOfTen = { divider: powerOfTen.tera, unit: 'T' };
|
selectedPowerOfTen = { divider: powerOfTen.tera, unit: 'T' };
|
||||||
} else if (val < powerOfTen.exa) {
|
} else if (val < powerOfTen.exa * multiplier) {
|
||||||
selectedPowerOfTen = { divider: powerOfTen.peta, unit: 'P' };
|
selectedPowerOfTen = { divider: powerOfTen.peta, unit: 'P' };
|
||||||
} else {
|
} else {
|
||||||
selectedPowerOfTen = { divider: powerOfTen.exa, unit: 'E' };
|
selectedPowerOfTen = { divider: powerOfTen.exa, unit: 'E' };
|
||||||
|
@ -249,8 +249,8 @@ export class HashrateChartComponent implements OnInit {
|
|||||||
for (const tick of ticks) {
|
for (const tick of ticks) {
|
||||||
if (tick.seriesIndex === 0) { // Hashrate
|
if (tick.seriesIndex === 0) { // Hashrate
|
||||||
let hashrate = tick.data[1];
|
let hashrate = tick.data[1];
|
||||||
hashratePowerOfTen = selectPowerOfTen(tick.data[1]);
|
hashratePowerOfTen = selectPowerOfTen(tick.data[1], 10);
|
||||||
hashrate = Math.round(tick.data[1] / hashratePowerOfTen.divider);
|
hashrate = tick.data[1] / hashratePowerOfTen.divider;
|
||||||
hashrateString = `${tick.marker} ${tick.seriesName}: ${formatNumber(hashrate, this.locale, '1.0-0')} ${hashratePowerOfTen.unit}H/s<br>`;
|
hashrateString = `${tick.marker} ${tick.seriesName}: ${formatNumber(hashrate, this.locale, '1.0-0')} ${hashratePowerOfTen.unit}H/s<br>`;
|
||||||
} else if (tick.seriesIndex === 1) { // Difficulty
|
} else if (tick.seriesIndex === 1) { // Difficulty
|
||||||
let difficultyPowerOfTen = hashratePowerOfTen;
|
let difficultyPowerOfTen = hashratePowerOfTen;
|
||||||
@ -264,8 +264,8 @@ export class HashrateChartComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
} else if (tick.seriesIndex === 2) { // Hashrate MA
|
} else if (tick.seriesIndex === 2) { // Hashrate MA
|
||||||
let hashrate = tick.data[1];
|
let hashrate = tick.data[1];
|
||||||
hashratePowerOfTen = selectPowerOfTen(tick.data[1]);
|
hashratePowerOfTen = selectPowerOfTen(tick.data[1], 10);
|
||||||
hashrate = Math.round(tick.data[1] / hashratePowerOfTen.divider);
|
hashrate = tick.data[1] / hashratePowerOfTen.divider;
|
||||||
hashrateStringMA = `${tick.marker} ${tick.seriesName}: ${formatNumber(hashrate, this.locale, '1.0-0')} ${hashratePowerOfTen.unit}H/s`;
|
hashrateStringMA = `${tick.marker} ${tick.seriesName}: ${formatNumber(hashrate, this.locale, '1.0-0')} ${hashratePowerOfTen.unit}H/s`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -163,8 +163,8 @@ export class PoolComponent implements OnInit {
|
|||||||
let hashratePowerOfTen: any = selectPowerOfTen(1);
|
let hashratePowerOfTen: any = selectPowerOfTen(1);
|
||||||
let hashrate = ticks[0].data[1];
|
let hashrate = ticks[0].data[1];
|
||||||
|
|
||||||
hashratePowerOfTen = selectPowerOfTen(ticks[0].data[1]);
|
hashratePowerOfTen = selectPowerOfTen(ticks[0].data[1], 10);
|
||||||
hashrate = Math.round(ticks[0].data[1] / hashratePowerOfTen.divider);
|
hashrate = ticks[0].data[1] / hashratePowerOfTen.divider;
|
||||||
|
|
||||||
return `
|
return `
|
||||||
<b style="color: white; margin-left: 18px">${ticks[0].axisValueLabel}</b><br>
|
<b style="color: white; margin-left: 18px">${ticks[0].axisValueLabel}</b><br>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user