From f77582250f5e0bcd2f4e7a51f8208406b70dc587 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Tue, 4 Jun 2024 22:58:39 +0000 Subject: [PATCH] Pizza tracker rbf tree traversal to find mined tx --- .../app/components/tracker/tracker.component.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/frontend/src/app/components/tracker/tracker.component.ts b/frontend/src/app/components/tracker/tracker.component.ts index 4c91db5cc..1685ee530 100644 --- a/frontend/src/app/components/tracker/tracker.component.ts +++ b/frontend/src/app/components/tracker/tracker.component.ts @@ -220,7 +220,23 @@ export class TrackerComponent implements OnInit, OnDestroy { this.rbfInfo = rbfResponse?.replacements; this.rbfReplaces = rbfResponse?.replaces || null; if (this.rbfInfo) { + // link to the latest pending version this.latestReplacement = this.rbfInfo.tx.txid; + // or traverse the rbf tree to find a confirmed version + if (this.rbfInfo.mined) { + const stack = [this.rbfInfo]; + let found = false; + while (stack.length && !found) { + const top = stack.pop(); + if (top?.tx.mined) { + found = true; + this.latestReplacement = top.tx.txid; + break; + } else { + stack.push(...top.replaces); + } + } + } } });