diff --git a/backend/src/api/websocket-handler.ts b/backend/src/api/websocket-handler.ts
index 33649b5c2..3f5eb1e02 100644
--- a/backend/src/api/websocket-handler.ts
+++ b/backend/src/api/websocket-handler.ts
@@ -438,7 +438,6 @@ class WebsocketHandler {
}
}
- console.log(client['track-rbf']);
if (client['track-rbf'] === 'all' && rbfReplacements) {
response['rbfLatest'] = rbfReplacements;
} else if (client['track-rbf'] === 'fullRbf' && fullRbfReplacements) {
diff --git a/frontend/src/app/components/rbf-timeline/rbf-timeline-tooltip.component.html b/frontend/src/app/components/rbf-timeline/rbf-timeline-tooltip.component.html
index d69a4f885..515a199ff 100644
--- a/frontend/src/app/components/rbf-timeline/rbf-timeline-tooltip.component.html
+++ b/frontend/src/app/components/rbf-timeline/rbf-timeline-tooltip.component.html
@@ -1,6 +1,6 @@
;
diff --git a/frontend/src/app/components/rbf-timeline/rbf-timeline.component.ts b/frontend/src/app/components/rbf-timeline/rbf-timeline.component.ts
index cc138d25f..a0add7499 100644
--- a/frontend/src/app/components/rbf-timeline/rbf-timeline.component.ts
+++ b/frontend/src/app/components/rbf-timeline/rbf-timeline.component.ts
@@ -23,7 +23,7 @@ export class RbfTimelineComponent implements OnInit, OnChanges {
rows: TimelineCell[][] = [];
hoverInfo: RbfInfo | void = null;
- tooltipPosition = { x: 0, y: 0 };
+ tooltipPosition = null;
dir: 'rtl' | 'ltr' = 'ltr';
diff --git a/frontend/src/app/components/transaction/transaction.component.html b/frontend/src/app/components/transaction/transaction.component.html
index 8814b3b86..9ca3da2e3 100644
--- a/frontend/src/app/components/transaction/transaction.component.html
+++ b/frontend/src/app/components/transaction/transaction.component.html
@@ -97,7 +97,7 @@
-
+
ETA |
diff --git a/frontend/src/app/components/transaction/transaction.component.ts b/frontend/src/app/components/transaction/transaction.component.ts
index 4dfbea8ff..f06ca1ac9 100644
--- a/frontend/src/app/components/transaction/transaction.component.ts
+++ b/frontend/src/app/components/transaction/transaction.component.ts
@@ -170,7 +170,7 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy {
this.tx.effectiveFeePerVsize = totalFees / (totalWeight / 4);
- if (!this.tx.status.confirmed) {
+ if (!this.tx?.status?.confirmed) {
this.stateService.markBlock$.next({
txFeePerVSize: this.tx.effectiveFeePerVsize,
});
@@ -218,16 +218,15 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy {
this.error = undefined;
this.waitingForTransaction = false;
this.graphExpanded = false;
+ this.transactionTime = 0;
this.setupGraph();
- if (!this.tx?.status?.confirmed) {
- this.fetchRbfHistory$.next(this.tx.txid);
- this.txRbfInfoSubscription = this.stateService.txRbfInfo$.subscribe((rbfInfo) => {
- if (this.tx) {
- this.rbfInfo = rbfInfo;
- }
- });
- }
+ this.fetchRbfHistory$.next(this.tx.txid);
+ this.txRbfInfoSubscription = this.stateService.txRbfInfo$.subscribe((rbfInfo) => {
+ if (this.tx) {
+ this.rbfInfo = rbfInfo;
+ }
+ });
}
});
@@ -268,7 +267,7 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy {
of(true),
this.stateService.connectionState$.pipe(
filter(
- (state) => state === 2 && this.tx && !this.tx.status.confirmed
+ (state) => state === 2 && this.tx && !this.tx.status?.confirmed
)
)
);
@@ -305,6 +304,7 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy {
)
.subscribe((tx: Transaction) => {
if (!tx) {
+ this.fetchCachedTx$.next(this.txId);
return;
}
@@ -323,13 +323,17 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy {
this.graphExpanded = false;
this.setupGraph();
- if (!tx.status.confirmed && tx.firstSeen) {
- this.transactionTime = tx.firstSeen;
+ if (!tx.status?.confirmed) {
+ if (tx.firstSeen) {
+ this.transactionTime = tx.firstSeen;
+ } else {
+ this.transactionTime = 0;
+ }
} else {
this.getTransactionTime();
}
- if (this.tx.status.confirmed) {
+ if (this.tx?.status?.confirmed) {
this.stateService.markBlock$.next({
blockHeight: tx.status.block_height,
});
@@ -346,10 +350,10 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy {
} else {
this.fetchCpfp$.next(this.tx.txid);
}
- this.fetchRbfHistory$.next(this.tx.txid);
}
+ this.fetchRbfHistory$.next(this.tx.txid);
- this.priceService.getBlockPrice$(tx.status.block_time, true).pipe(
+ this.priceService.getBlockPrice$(tx.status?.block_time, true).pipe(
tap((price) => {
this.blockConversion = price;
})
@@ -383,10 +387,12 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy {
this.error = new Error();
this.waitingForTransaction = false;
}
- this.rbfTransaction = rbfTransaction;
- this.replaced = true;
- if (rbfTransaction && !this.tx) {
- this.fetchCachedTx$.next(this.txId);
+ if (!this.tx?.status?.confirmed) {
+ this.rbfTransaction = rbfTransaction;
+ this.replaced = true;
+ if (rbfTransaction && !this.tx) {
+ this.fetchCachedTx$.next(this.txId);
+ }
}
});
diff --git a/frontend/src/app/services/state.service.ts b/frontend/src/app/services/state.service.ts
index f7e404baf..814f8e9db 100644
--- a/frontend/src/app/services/state.service.ts
+++ b/frontend/src/app/services/state.service.ts
@@ -43,6 +43,7 @@ export interface Env {
MAINNET_BLOCK_AUDIT_START_HEIGHT: number;
TESTNET_BLOCK_AUDIT_START_HEIGHT: number;
SIGNET_BLOCK_AUDIT_START_HEIGHT: number;
+ FULL_RBF_ENABLED: boolean;
HISTORICAL_PRICE: boolean;
}
@@ -73,6 +74,7 @@ const defaultEnv: Env = {
'MAINNET_BLOCK_AUDIT_START_HEIGHT': 0,
'TESTNET_BLOCK_AUDIT_START_HEIGHT': 0,
'SIGNET_BLOCK_AUDIT_START_HEIGHT': 0,
+ 'FULL_RBF_ENABLED': false,
'HISTORICAL_PRICE': true,
};
|