Handle coinbase transactions no longer has undefined fee.

This commit is contained in:
softsimon 2020-07-24 00:20:59 +07:00
parent 9d8c1184ab
commit 9980414969
No known key found for this signature in database
GPG Key ID: 488D7DCFB5A430D7
4 changed files with 7 additions and 4 deletions

View File

@ -76,7 +76,7 @@ class Blocks {
block.coinbaseTx = this.stripCoinbaseTransaction(transactions[0]); block.coinbaseTx = this.stripCoinbaseTransaction(transactions[0]);
transactions.sort((a, b) => b.feePerVsize - a.feePerVsize); transactions.sort((a, b) => b.feePerVsize - a.feePerVsize);
block.medianFee = transactions.length > 1 ? Common.median(transactions.map((tx) => tx.feePerVsize)) : 0; block.medianFee = transactions.length > 1 ? Common.median(transactions.map((tx) => tx.feePerVsize)) : 0;
block.feeRange = transactions.length > 1 ? Common.getFeesInRange(transactions, 8, 1) : [0, 0]; block.feeRange = transactions.length > 1 ? Common.getFeesInRange(transactions.slice(0, transactions.length - 2), 8) : [0, 0];
this.blocks.push(block); this.blocks.push(block);
if (this.blocks.length > config.KEEP_BLOCK_AMOUNT) { if (this.blocks.length > config.KEEP_BLOCK_AMOUNT) {

View File

@ -12,7 +12,7 @@ export class Common {
return medianNr; return medianNr;
} }
static getFeesInRange(transactions: TransactionExtended[], rangeLength: number, lastindex = 0) { static getFeesInRange(transactions: TransactionExtended[], rangeLength: number) {
const arr = [transactions[transactions.length - 1].feePerVsize]; const arr = [transactions[transactions.length - 1].feePerVsize];
const chunk = 1 / (rangeLength - 1); const chunk = 1 / (rangeLength - 1);
let itemsToAdd = rangeLength - 2; let itemsToAdd = rangeLength - 2;
@ -22,7 +22,7 @@ export class Common {
itemsToAdd--; itemsToAdd--;
} }
arr.push(transactions[lastindex].feePerVsize); arr.push(transactions[0].feePerVsize);
return arr; return arr;
} }

View File

@ -77,7 +77,7 @@ class Mempool {
const transaction: Transaction = await bitcoinApi.getRawTransaction(txId); const transaction: Transaction = await bitcoinApi.getRawTransaction(txId);
return Object.assign({ return Object.assign({
vsize: transaction.weight / 4, vsize: transaction.weight / 4,
feePerVsize: transaction.fee / (transaction.weight / 4), feePerVsize: (transaction.fee || 0) / (transaction.weight / 4),
firstSeen: Math.round((new Date().getTime() / 1000)), firstSeen: Math.round((new Date().getTime() / 1000)),
}, transaction); }, transaction);
} catch (e) { } catch (e) {

View File

@ -74,6 +74,9 @@ export class TransactionComponent implements OnInit, OnDestroy {
return; return;
} }
this.tx = tx; this.tx = tx;
if (tx.fee === undefined) {
this.tx.fee = 0;
}
this.isLoadingTx = false; this.isLoadingTx = false;
this.error = undefined; this.error = undefined;
this.waitingForTransaction = false; this.waitingForTransaction = false;