use accelerated rates for block templates & show in viz
This commit is contained in:
@@ -23,6 +23,8 @@ class Mempool {
|
||||
private $asyncMempoolChangedCallback: ((newMempool: {[txId: string]: MempoolTransactionExtended; }, mempoolSize: number, newTransactions: MempoolTransactionExtended[],
|
||||
deletedTransactions: MempoolTransactionExtended[]) => Promise<void>) | undefined;
|
||||
|
||||
private accelerations: { [txId: string]: number } = {};
|
||||
|
||||
private txPerSecondArray: number[] = [];
|
||||
private txPerSecond: number = 0;
|
||||
|
||||
@@ -301,6 +303,17 @@ class Mempool {
|
||||
const newTransactionsStripped = newTransactions.map((tx) => Common.stripTransaction(tx));
|
||||
this.latestTransactions = newTransactionsStripped.concat(this.latestTransactions).slice(0, 6);
|
||||
|
||||
const newAccelerations: { txid: string, delta: number }[] = [];
|
||||
newTransactions.forEach(tx => {
|
||||
if (tx.txid.startsWith('00')) {
|
||||
const delta = Math.floor(Math.random() * 100000) + 100000;
|
||||
newAccelerations.push({ txid: tx.txid, delta });
|
||||
tx.acceleration = delta;
|
||||
}
|
||||
});
|
||||
this.addAccelerations(newAccelerations);
|
||||
this.removeAccelerations(deletedTransactions.map(tx => tx.txid));
|
||||
|
||||
this.mempoolCacheDelta = Math.abs(transactions.length - newMempoolSize);
|
||||
|
||||
if (this.mempoolChangedCallback && (hasChange || deletedTransactions.length)) {
|
||||
@@ -325,6 +338,22 @@ class Mempool {
|
||||
this.clearTimer(timer);
|
||||
}
|
||||
|
||||
public getAccelerations(): { [txid: string]: number } {
|
||||
return this.accelerations;
|
||||
}
|
||||
|
||||
public addAccelerations(newAccelerations: { txid: string, delta: number }[]): void {
|
||||
for (const acceleration of newAccelerations) {
|
||||
this.accelerations[acceleration.txid] = acceleration.delta;
|
||||
}
|
||||
}
|
||||
|
||||
public removeAccelerations(txids: string[]): void {
|
||||
for (const txid of txids) {
|
||||
delete this.accelerations[txid];
|
||||
}
|
||||
}
|
||||
|
||||
private startTimer() {
|
||||
const state: any = {
|
||||
start: Date.now(),
|
||||
|
||||
Reference in New Issue
Block a user