mirror of
https://github.com/mempool/mempool.git
synced 2025-02-23 06:35:15 +01:00
Merge pull request #4054 from mempool/mononaut/mined-address-txs
Show new mined transactions on the address page
This commit is contained in:
commit
d52e2cd585
1 changed files with 37 additions and 25 deletions
|
@ -166,31 +166,8 @@ export class AddressComponent implements OnInit, OnDestroy {
|
||||||
});
|
});
|
||||||
|
|
||||||
this.stateService.mempoolTransactions$
|
this.stateService.mempoolTransactions$
|
||||||
.subscribe((transaction) => {
|
.subscribe(tx => {
|
||||||
if (this.transactions.some((t) => t.txid === transaction.txid)) {
|
this.addTransaction(tx);
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.transactions.unshift(transaction);
|
|
||||||
this.transactions = this.transactions.slice();
|
|
||||||
this.txCount++;
|
|
||||||
|
|
||||||
if (transaction.vout.some((vout) => vout.scriptpubkey_address === this.address.address)) {
|
|
||||||
this.audioService.playSound('cha-ching');
|
|
||||||
} else {
|
|
||||||
this.audioService.playSound('chime');
|
|
||||||
}
|
|
||||||
|
|
||||||
transaction.vin.forEach((vin) => {
|
|
||||||
if (vin.prevout.scriptpubkey_address === this.address.address) {
|
|
||||||
this.sent += vin.prevout.value;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
transaction.vout.forEach((vout) => {
|
|
||||||
if (vout.scriptpubkey_address === this.address.address) {
|
|
||||||
this.received += vout.value;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
this.stateService.blockTransactions$
|
this.stateService.blockTransactions$
|
||||||
|
@ -200,12 +177,47 @@ export class AddressComponent implements OnInit, OnDestroy {
|
||||||
tx.status = transaction.status;
|
tx.status = transaction.status;
|
||||||
this.transactions = this.transactions.slice();
|
this.transactions = this.transactions.slice();
|
||||||
this.audioService.playSound('magic');
|
this.audioService.playSound('magic');
|
||||||
|
} else {
|
||||||
|
if (this.addTransaction(transaction, false)) {
|
||||||
|
this.audioService.playSound('magic');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
this.totalConfirmedTxCount++;
|
this.totalConfirmedTxCount++;
|
||||||
this.loadedConfirmedTxCount++;
|
this.loadedConfirmedTxCount++;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
addTransaction(transaction: Transaction, playSound: boolean = true): boolean {
|
||||||
|
if (this.transactions.some((t) => t.txid === transaction.txid)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.transactions.unshift(transaction);
|
||||||
|
this.transactions = this.transactions.slice();
|
||||||
|
this.txCount++;
|
||||||
|
|
||||||
|
if (playSound) {
|
||||||
|
if (transaction.vout.some((vout) => vout?.scriptpubkey_address === this.address.address)) {
|
||||||
|
this.audioService.playSound('cha-ching');
|
||||||
|
} else {
|
||||||
|
this.audioService.playSound('chime');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
transaction.vin.forEach((vin) => {
|
||||||
|
if (vin?.prevout?.scriptpubkey_address === this.address.address) {
|
||||||
|
this.sent += vin.prevout.value;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
transaction.vout.forEach((vout) => {
|
||||||
|
if (vout?.scriptpubkey_address === this.address.address) {
|
||||||
|
this.received += vout.value;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
loadMore() {
|
loadMore() {
|
||||||
if (this.isLoadingTransactions || !this.totalConfirmedTxCount || this.loadedConfirmedTxCount >= this.totalConfirmedTxCount) {
|
if (this.isLoadingTransactions || !this.totalConfirmedTxCount || this.loadedConfirmedTxCount >= this.totalConfirmedTxCount) {
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Add table
Reference in a new issue