Detect RBF-transactions and offer to track them.

fixes #78
This commit is contained in:
softsimon
2020-06-08 18:55:53 +07:00
parent afe680b7cb
commit 87e9d631fc
11 changed files with 74 additions and 19 deletions

View File

@@ -1,6 +1,14 @@
<div class="container-xl">
<div class="title-block">
<div *ngIf="rbfTransaction" class="alert alert-mempool" role="alert">
This transaction has been replaced by:
<a class="alert-link" [routerLink]="['/tx/' | relativeUrl, rbfTransaction.txid]" [state]="{ data: rbfTransaction }">
<span class="d-inline d-lg-none">{{ rbfTransaction.txid | shortenString : 24 }}</span>
<span class="d-none d-lg-inline">{{ rbfTransaction.txid }}</span>
</a>
</div>
<h1 class="float-left mr-3 mb-md-3">Transaction</h1>
<ng-template [ngIf]="tx?.status?.confirmed">

View File

@@ -36,6 +36,7 @@ export class TransactionComponent implements OnInit, OnDestroy {
potentialP2shGains: 0,
};
isRbfTransaction: boolean;
rbfTransaction: undefined | Transaction;
constructor(
private route: ActivatedRoute,
@@ -126,6 +127,9 @@ export class TransactionComponent implements OnInit, OnDestroy {
this.audioService.playSound('magic');
this.findBlockAndSetFeeRating();
});
this.stateService.txReplaced$
.subscribe((rbfTransaction) => this.rbfTransaction = rbfTransaction);
}
handleLoadElectrsTransactionError(error: any): Observable<any> {
@@ -198,6 +202,7 @@ export class TransactionComponent implements OnInit, OnDestroy {
this.feeRating = undefined;
this.waitingForTransaction = false;
this.isLoadingTx = true;
this.rbfTransaction = undefined;
this.transactionTime = -1;
document.body.scrollTo(0, 0);
this.leaveTransaction();