2024-02-26 16:47:19 +01:00
|
|
|
<div class="container-lg widget-container" [class.widget]="widget" [class.full-height]="!widget">
|
2024-04-05 16:30:26 +09:00
|
|
|
<h1 *ngIf="!widget" class="float-left" i18n="accelerator.accelerations">Accelerations</h1>
|
2023-07-20 16:26:42 +09:00
|
|
|
<div *ngIf="!widget && isLoading" class="spinner-border ml-3" role="status"></div>
|
|
|
|
|
|
|
|
<div class="clearfix"></div>
|
|
|
|
|
2023-12-20 18:30:19 +00:00
|
|
|
<div class="acceleration-list" *ngIf="accelerationList$ | async as accelerations">
|
2023-12-07 11:12:20 +00:00
|
|
|
<table *ngIf="!accelerations || accelerations.length; else noData" class="table table-borderless table-fixed">
|
2023-07-20 16:26:42 +09:00
|
|
|
<thead>
|
|
|
|
<th class="txid text-left" i18n="dashboard.latest-transactions.txid">TXID</th>
|
2023-12-08 13:03:08 +00:00
|
|
|
<ng-container *ngIf="pending">
|
2024-04-09 16:15:26 +09:00
|
|
|
<th class="fee-rate text-right" i18n="transaction.fee-rate|Transaction fee rate">Fee rate</th>
|
|
|
|
<th class="bid text-right" i18n="accelerator.bid">Bid</th>
|
|
|
|
<th class="time text-right" i18n="accelerator.requested">Requested</th>
|
2023-12-08 13:03:08 +00:00
|
|
|
</ng-container>
|
|
|
|
<ng-container *ngIf="!pending">
|
2024-01-15 22:52:42 +00:00
|
|
|
<th class="fee text-right" i18n="transaction.bid-boost|Bid Boost">Bid Boost</th>
|
2024-04-09 16:15:26 +09:00
|
|
|
<th class="block text-right" i18n="shared.block-title">Block</th>
|
2024-07-23 18:51:30 +02:00
|
|
|
<th class="pool text-right" i18n="mining.pool-name" *ngIf="!this.widget">Pool</th>
|
2023-12-08 13:03:08 +00:00
|
|
|
<th class="status text-right" i18n="transaction.status|Transaction Status">Status</th>
|
2024-04-09 16:15:26 +09:00
|
|
|
<th class="date text-right" i18n="accelerator.requested" *ngIf="!this.widget">Requested</th>
|
2023-12-08 13:03:08 +00:00
|
|
|
</ng-container>
|
2023-07-20 16:26:42 +09:00
|
|
|
</thead>
|
2023-12-07 11:12:20 +00:00
|
|
|
<tbody *ngIf="accelerations; else skeleton" [style]="isLoading ? 'opacity: 0.75' : ''">
|
2023-07-20 16:26:42 +09:00
|
|
|
<tr *ngFor="let acceleration of accelerations; let i= index;">
|
|
|
|
<td class="txid text-left">
|
|
|
|
<a [routerLink]="['/tx' | relativeUrl, acceleration.txid]">
|
|
|
|
<app-truncate [text]="acceleration.txid" [lastChars]="5"></app-truncate>
|
|
|
|
</a>
|
|
|
|
</td>
|
2023-12-08 13:03:08 +00:00
|
|
|
<ng-container *ngIf="pending">
|
|
|
|
<td class="fee-rate text-right">
|
|
|
|
<app-fee-rate [fee]="acceleration.effectiveFee" [weight]="acceleration.effectiveVsize * 4"></app-fee-rate>
|
|
|
|
</td>
|
|
|
|
<td class="bid text-right">
|
|
|
|
{{ (acceleration.feeDelta) | number }} <span class="symbol" i18n="shared.sat|sat">sat</span>
|
|
|
|
</td>
|
|
|
|
<td class="time text-right">
|
2024-06-08 23:28:44 +00:00
|
|
|
<app-time kind="since" [time]="acceleration.added" [fastRender]="true" [showTooltip]="true"></app-time>
|
2023-12-08 13:03:08 +00:00
|
|
|
</td>
|
|
|
|
</ng-container>
|
|
|
|
<ng-container *ngIf="!pending">
|
2024-04-04 09:42:49 +00:00
|
|
|
<td *ngIf="acceleration.boost != null" class="fee text-right">
|
2024-04-08 11:21:45 +00:00
|
|
|
{{ acceleration.boost | number }} <span class="symbol" i18n="shared.sat|sat">sat</span>
|
2023-12-08 13:03:08 +00:00
|
|
|
</td>
|
2024-04-04 09:42:49 +00:00
|
|
|
<td *ngIf="acceleration.boost == null" class="fee text-right">
|
2023-12-08 13:03:08 +00:00
|
|
|
~
|
|
|
|
</td>
|
|
|
|
<td class="block text-right">
|
2024-03-17 10:12:17 +09:00
|
|
|
<a *ngIf="acceleration.blockHeight" [routerLink]="['/block' | relativeUrl, acceleration.blockHeight]">{{ acceleration.blockHeight }}</a>
|
|
|
|
<span *ngIf="!acceleration.blockHeight">~</span>
|
2023-12-08 13:03:08 +00:00
|
|
|
</td>
|
2024-07-23 18:51:30 +02:00
|
|
|
<td class="pool text-right" *ngIf="!this.widget">
|
|
|
|
@if (acceleration.minedByPoolUniqueId && pools[acceleration.minedByPoolUniqueId]) {
|
|
|
|
<a placement="bottom" [routerLink]="['/mining/pool' | relativeUrl, pools[acceleration.minedByPoolUniqueId].slug]" class="badge" style="color: #FFF;padding:0;">
|
|
|
|
<img class="pool-logo" [src]="'/resources/mining-pools/' + pools[acceleration.minedByPoolUniqueId].slug + '.svg'" onError="this.src = '/resources/mining-pools/default.svg'" [alt]="'Logo of ' + pools[acceleration.minedByPoolUniqueId].name + ' mining pool'">
|
|
|
|
{{ pools[acceleration.minedByPoolUniqueId].name }}
|
|
|
|
</a>
|
|
|
|
} @else {
|
|
|
|
~
|
|
|
|
}
|
|
|
|
</td>
|
2023-12-08 13:03:08 +00:00
|
|
|
<td class="status text-right">
|
2024-01-15 22:34:12 +00:00
|
|
|
<span *ngIf="acceleration.status === 'accelerating'" class="badge badge-warning" i18n="accelerator.pending">Pending</span>
|
2024-07-29 11:11:29 +02:00
|
|
|
<span *ngIf="acceleration.status.includes('completed') && acceleration.minedByPoolUniqueId && pools[acceleration.minedByPoolUniqueId]" class="badge badge-success" i18n="accelerator.completed">Completed <span *ngIf="acceleration.status === 'completed_provisional'">🔄</span></span>
|
|
|
|
<span *ngIf="acceleration.status.includes('completed') && (!acceleration.minedByPoolUniqueId || !pools[acceleration.minedByPoolUniqueId])" class="badge badge-success" i18n="accelerator.mined">Mined <span *ngIf="acceleration.status === 'completed_provisional'">🔄</span></span>
|
2024-03-12 17:04:37 +09:00
|
|
|
<span *ngIf="acceleration.status.includes('failed')" class="badge badge-danger" i18n="accelerator.canceled">Failed <span *ngIf="acceleration.status === 'failed_provisional'">🔄</span></span>
|
2023-12-08 13:03:08 +00:00
|
|
|
</td>
|
2024-02-26 16:23:00 +01:00
|
|
|
<td class="date text-right" *ngIf="!this.widget">
|
2024-06-08 23:28:44 +00:00
|
|
|
<app-time kind="since" [time]="acceleration.added" [fastRender]="true" [showTooltip]="true"></app-time>
|
2024-02-26 15:54:10 +01:00
|
|
|
</td>
|
2023-12-08 13:03:08 +00:00
|
|
|
</ng-container>
|
2023-07-20 16:26:42 +09:00
|
|
|
</tr>
|
|
|
|
</tbody>
|
|
|
|
<ng-template #skeleton>
|
|
|
|
<tbody>
|
|
|
|
<tr *ngFor="let item of skeletonLines">
|
|
|
|
<td class="txid text-left">
|
|
|
|
<span class="skeleton-loader" style="max-width: 75px"></span>
|
|
|
|
</td>
|
|
|
|
<td class="fee text-right">
|
|
|
|
<span class="skeleton-loader" style="max-width: 75px"></span>
|
|
|
|
</td>
|
|
|
|
<td class="fee-delta text-right">
|
|
|
|
<span class="skeleton-loader" style="max-width: 75px"></span>
|
|
|
|
</td>
|
|
|
|
<td class="status text-right">
|
|
|
|
<span class="skeleton-loader" style="max-width: 75px"></span>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</tbody>
|
|
|
|
</ng-template>
|
|
|
|
</table>
|
|
|
|
|
2024-02-26 15:54:10 +01:00
|
|
|
<ngb-pagination *ngIf="!widget" class="pagination-container float-right mt-2" [class]="isLoading ? 'disabled' : ''"
|
|
|
|
[collectionSize]="this.accelerationCount" [rotate]="true" [maxSize]="maxSize" [pageSize]="15" [(page)]="page"
|
|
|
|
(pageChange)="pageChange(page)" [boundaryLinks]="true" [ellipses]="false">
|
|
|
|
</ngb-pagination>
|
|
|
|
|
2023-07-20 16:26:42 +09:00
|
|
|
<ng-template [ngIf]="!widget">
|
|
|
|
<div class="clearfix"></div>
|
|
|
|
<br>
|
|
|
|
</ng-template>
|
|
|
|
</div>
|
2023-12-07 11:12:20 +00:00
|
|
|
|
|
|
|
<ng-template #noData>
|
|
|
|
<div class="no-data">
|
2023-12-08 13:23:51 +00:00
|
|
|
<span *ngIf="pending" i18n="accelerations.no-accelerations">There are no active accelerations</span>
|
|
|
|
<span *ngIf="!pending" i18n="accelerations.no-accelerations">There are no recent accelerations</span>
|
2023-12-07 11:12:20 +00:00
|
|
|
</div>
|
|
|
|
</ng-template>
|
2023-07-20 16:26:42 +09:00
|
|
|
|
|
|
|
</div>
|