+ @if (tx && !tx.status?.confirmed && mempoolPosition?.block != null) {
+
Block height
@@ -77,25 +80,45 @@
@if (showAccelerationSummary) {
= 7 ? null : da.adjustedTimeAvg * (mempoolPosition.block + 1) + now + da.timeOffset" (close)="showAccelerationSummary = false">
} @else {
-
+ @if (tx?.acceleration && !tx.status?.confirmed) {
+
+
+
+
Your transaction has been accelerated
+ } @else {
@switch (trackerStage) {
@case ('waiting') {
-
+
+
Waiting for your transaction to appear in the mempool
}
@case ('pending') {
-
+
+
+
+
Your transaction is in the mempool, but it will not be confirmed for some time.
}
@case ('soon') {
-
+
+
+
+
Your transaction is near the top of the mempool, and is expected to confirm soon.
}
@case ('next') {
-
+
+
+
+
Your transaction is expected to confirm in the next block
}
@case ('confirmed') {
-
+
+
+
+
Your transaction is confirmed!
}
}
-
+ }
}
diff --git a/frontend/src/app/components/tracker/tracker.component.scss b/frontend/src/app/components/tracker/tracker.component.scss
index 025479cde..2abda231f 100644
--- a/frontend/src/app/components/tracker/tracker.component.scss
+++ b/frontend/src/app/components/tracker/tracker.component.scss
@@ -8,6 +8,7 @@
.mobile-container {
width: 100vw;
height: 100vh;
+ height: 100svh;
max-width: 600px;
max-height: 1000px;
box-sizing: border-box;
@@ -21,6 +22,29 @@
}
}
+.heading {
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+ align-items: flex-start;
+
+ & > * {
+ flex-basis: 0;
+ flex-grow: 1;
+ }
+
+ .heading-label {
+ text-align: center;
+ margin: 0 1em;
+ }
+}
+
+.nav-header {
+ position: relative;
+ box-shadow: 0 -5px 15px #000;
+ z-index: 100;
+}
+
.blockchain-wrapper {
position: relative;
display: flex;
@@ -55,6 +79,7 @@
flex-grow: 1;
width: 0;
white-space: nowrap;
+ text-align: end;
}
}
@@ -82,14 +107,19 @@
.bottom-panel {
flex-grow: 1;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+
+ .explainer {
+ margin: 0 1em;
+ text-align: center;
+ }
}
.progress-icon {
- font-size: clamp(50px, 30vw, 200px);
- height: 100%;
- display: flex;
- align-items: center;
- justify-content: center;
+ font-size: clamp(30px, 20vw, 150px);
}
.footer-link {
diff --git a/frontend/src/app/components/tracker/tracker.component.ts b/frontend/src/app/components/tracker/tracker.component.ts
index edcf742af..52ebb154c 100644
--- a/frontend/src/app/components/tracker/tracker.component.ts
+++ b/frontend/src/app/components/tracker/tracker.component.ts
@@ -338,6 +338,10 @@ export class TrackerComponent implements OnInit, OnDestroy {
this.setCpfpInfo(txPosition.cpfp);
}
+ if (txPosition.position?.accelerated) {
+ this.tx.acceleration = true;
+ }
+
if (txPosition.position?.block === 0) {
this.trackerStage = 'next';
} else if (txPosition.position?.block < 3){
diff --git a/frontend/src/app/shared/shared.module.ts b/frontend/src/app/shared/shared.module.ts
index 97fa8aede..50268029b 100644
--- a/frontend/src/app/shared/shared.module.ts
+++ b/frontend/src/app/shared/shared.module.ts
@@ -4,7 +4,7 @@ import { NgbCollapseModule, NgbTypeaheadModule } from '@ng-bootstrap/ng-bootstra
import { FontAwesomeModule, FaIconLibrary } from '@fortawesome/angular-fontawesome';
import { faFilter, faAngleDown, faAngleUp, faAngleRight, faAngleLeft, faBolt, faChartArea, faCogs, faCubes, faHammer, faDatabase, faExchangeAlt, faInfoCircle,
faLink, faList, faSearch, faCaretUp, faCaretDown, faTachometerAlt, faThList, faTint, faTv, faClock, faAngleDoubleDown, faSortUp, faAngleDoubleUp, faChevronDown,
- faFileAlt, faRedoAlt, faArrowAltCircleRight, faExternalLinkAlt, faBook, faListUl, faDownload, faQrcode, faArrowRightArrowLeft, faArrowsRotate, faCircleLeft, faFastForward, faWallet, faUserClock, faWrench, faUserFriends, faQuestionCircle, faHistory, faSignOutAlt, faKey, faSuitcase, faIdCardAlt, faNetworkWired, faUserCheck, faCircleCheck, faUserCircle, faCheck, faRocket, faScaleBalanced, faHourglassStart, faHourglassHalf, faHourglassEnd } from '@fortawesome/free-solid-svg-icons';
+ faFileAlt, faRedoAlt, faArrowAltCircleRight, faExternalLinkAlt, faBook, faListUl, faDownload, faQrcode, faArrowRightArrowLeft, faArrowsRotate, faCircleLeft, faFastForward, faWallet, faUserClock, faWrench, faUserFriends, faQuestionCircle, faHistory, faSignOutAlt, faKey, faSuitcase, faIdCardAlt, faNetworkWired, faUserCheck, faCircleCheck, faUserCircle, faCheck, faRocket, faScaleBalanced, faHourglassStart, faHourglassHalf, faHourglassEnd, faWandMagicSparkles } from '@fortawesome/free-solid-svg-icons';
import { InfiniteScrollModule } from 'ngx-infinite-scroll';
import { MenuComponent } from '../components/menu/menu.component';
import { PreviewTitleComponent } from '../components/master-page-preview/preview-title.component';
@@ -419,5 +419,6 @@ export class SharedModule {
library.addIcons(faHourglassStart);
library.addIcons(faHourglassHalf);
library.addIcons(faHourglassEnd);
+ library.addIcons(faWandMagicSparkles);
}
}