From 3a76209af753cf677f943b0871f9156eda47d54e Mon Sep 17 00:00:00 2001 From: rodribp Date: Fri, 13 Feb 2026 18:26:33 -0600 Subject: [PATCH 1/5] add: contributor.txt rodribp --- contributors/rodribp.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 contributors/rodribp.txt diff --git a/contributors/rodribp.txt b/contributors/rodribp.txt new file mode 100644 index 000000000..2c466e444 --- /dev/null +++ b/contributors/rodribp.txt @@ -0,0 +1,3 @@ +I hereby accept the terms of the Contributor License Agreement in the CONTRIBUTING.md file of the mempool/mempool git repository as of February 13, 2026. + +Signed: rodribp From 87e766f6a24e92dcc9bb283302b6493500274bc2 Mon Sep 17 00:00:00 2001 From: rodribp Date: Fri, 13 Feb 2026 22:48:56 -0600 Subject: [PATCH 2/5] fix: [transaction] ETA change behaviour --- .../app/components/transaction/transaction.component.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/components/transaction/transaction.component.ts b/frontend/src/app/components/transaction/transaction.component.ts index 908583932..12ef5bf4b 100644 --- a/frontend/src/app/components/transaction/transaction.component.ts +++ b/frontend/src/app/components/transaction/transaction.component.ts @@ -13,7 +13,9 @@ import { retry, startWith, repeat, - take + take, + debounceTime, + distinctUntilChanged } from 'rxjs/operators'; import { Transaction } from '@interfaces/electrs.interface'; import { of, merge, Subscription, Observable, Subject, from, throwError, combineLatest, BehaviorSubject, timer } from 'rxjs'; @@ -833,7 +835,9 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy { this.isAccelerated$, this.txChanged$, ]).pipe( + debounceTime(50), map(([position, mempoolBlocks, da, isAccelerated]) => { + if (position && position.txid !== this.tx.txid) return null; return this.etaService.calculateETA( this.network, this.tx, @@ -844,7 +848,8 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy { isAccelerated, this.accelerationPositions, ); - }) + }), + distinctUntilChanged() ); } From 6a9fc5c00432e8924ec4af77800a3ae7486f682a Mon Sep 17 00:00:00 2001 From: rodribp <134734899+rodribp@users.noreply.github.com> Date: Sat, 14 Feb 2026 11:50:48 -0600 Subject: [PATCH 3/5] Update frontend/src/app/components/transaction/transaction.component.ts remove space Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../src/app/components/transaction/transaction.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/components/transaction/transaction.component.ts b/frontend/src/app/components/transaction/transaction.component.ts index 12ef5bf4b..efc9c2926 100644 --- a/frontend/src/app/components/transaction/transaction.component.ts +++ b/frontend/src/app/components/transaction/transaction.component.ts @@ -837,7 +837,7 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy { ]).pipe( debounceTime(50), map(([position, mempoolBlocks, da, isAccelerated]) => { - if (position && position.txid !== this.tx.txid) return null; + if (position && position.txid !== this.tx.txid) return null; return this.etaService.calculateETA( this.network, this.tx, From 44becb388ed59e6a5f87aa04fa0fcee8e1a0c30f Mon Sep 17 00:00:00 2001 From: rodribp Date: Sat, 14 Feb 2026 12:19:13 -0600 Subject: [PATCH 4/5] Added copilot's suggestions --- .../app/components/transaction/transaction.component.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/components/transaction/transaction.component.ts b/frontend/src/app/components/transaction/transaction.component.ts index efc9c2926..53a3b71f3 100644 --- a/frontend/src/app/components/transaction/transaction.component.ts +++ b/frontend/src/app/components/transaction/transaction.component.ts @@ -837,6 +837,7 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy { ]).pipe( debounceTime(50), map(([position, mempoolBlocks, da, isAccelerated]) => { + if (!this.tx) return null; if (position && position.txid !== this.tx.txid) return null; return this.etaService.calculateETA( this.network, @@ -849,7 +850,11 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy { this.accelerationPositions, ); }), - distinctUntilChanged() + distinctUntilChanged((prev: ETA | null, curr: ETA | null) => { + if (prev === curr) return true; + if (!prev || !curr) return false; + return prev.time === curr.time && prev.blocks === curr.blocks; + }) ); } From 0fd2d42df4978fdd5f02de241045ca5ae9ca6952 Mon Sep 17 00:00:00 2001 From: rodribp Date: Mon, 16 Feb 2026 15:15:28 -0600 Subject: [PATCH 5/5] Fixes in ETA's pipe --- .../components/transaction/transaction.component.ts | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/frontend/src/app/components/transaction/transaction.component.ts b/frontend/src/app/components/transaction/transaction.component.ts index 53a3b71f3..77cc373c4 100644 --- a/frontend/src/app/components/transaction/transaction.component.ts +++ b/frontend/src/app/components/transaction/transaction.component.ts @@ -835,10 +835,10 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy { this.isAccelerated$, this.txChanged$, ]).pipe( - debounceTime(50), map(([position, mempoolBlocks, da, isAccelerated]) => { - if (!this.tx) return null; - if (position && position.txid !== this.tx.txid) return null; + if (!this.tx || !position || position.txid !== this.tx.txid) { + return null; + } return this.etaService.calculateETA( this.network, this.tx, @@ -851,9 +851,7 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy { ); }), distinctUntilChanged((prev: ETA | null, curr: ETA | null) => { - if (prev === curr) return true; - if (!prev || !curr) return false; - return prev.time === curr.time && prev.blocks === curr.blocks; + return prev === curr || (prev && curr && prev.time === curr.time && prev.blocks === curr.blocks); }) ); }