2024-01-28 19:43:50 +01:00
|
|
|
|
<div [ngClass]="{'widget': widget}">
|
2024-01-28 21:46:31 +01:00
|
|
|
|
|
2024-01-21 13:33:20 +01:00
|
|
|
|
<div class="clearfix"></div>
|
2024-01-28 21:46:31 +01:00
|
|
|
|
|
2024-01-21 13:33:20 +01:00
|
|
|
|
<div style="min-height: 295px">
|
|
|
|
|
<table class="table table-borderless">
|
|
|
|
|
<thead style="vertical-align: middle;">
|
2024-01-30 15:11:51 +01:00
|
|
|
|
<th class="txid text-left" [ngClass]="{'widget': widget}" i18n="transaction.output">Output</th>
|
|
|
|
|
<th class="address text-left" *ngIf="!widget" i18n="shared.address">Address</th>
|
|
|
|
|
<th class="amount text-right" [ngClass]="{'widget': widget}" i18n="shared.amount">Amount</th>
|
2024-01-29 11:06:51 +01:00
|
|
|
|
<th class="pegin text-left" *ngIf="!widget" i18n="liquid.related-peg-in">Related Peg-In</th>
|
2024-02-04 14:57:04 +01:00
|
|
|
|
<th class="timestamp text-left" i18n="shared.date" [ngClass]="{'widget': widget}">Date</th>
|
2024-02-27 16:39:28 +01:00
|
|
|
|
<th class="expires-in text-left" *ngIf="!widget && showExpiredUtxos === false" i18n="liquid.expires-in">Expires in</th>
|
|
|
|
|
<th class="expires-in text-left" *ngIf="!widget && showExpiredUtxos === true" i18n="liquid.expired-since">Expired since</th>
|
2024-04-03 18:13:42 +09:00
|
|
|
|
<th class="is-dust text-right" *ngIf="!widget && showExpiredUtxos === true" i18n="liquid.dust">Dust</th>
|
2024-01-21 13:33:20 +01:00
|
|
|
|
</thead>
|
2024-01-29 17:06:25 +01:00
|
|
|
|
<tbody *ngIf="federationUtxos$ | async as utxos; else skeleton" [style]="isLoading ? 'opacity: 0.75' : ''">
|
2024-01-21 13:33:20 +01:00
|
|
|
|
<ng-container *ngIf="widget; else regularRows">
|
2024-01-29 12:22:47 +01:00
|
|
|
|
<tr *ngFor="let utxo of utxos | slice:0:6">
|
2024-01-21 13:33:20 +01:00
|
|
|
|
<td class="txid text-left widget">
|
2024-04-10 14:39:29 +09:00
|
|
|
|
<a href="{{ env.MEMPOOL_WEBSITE_URL + '/tx/' + utxo.txid + ':' + utxo.txindex }}" target="_blank" style="color:var(--orange)">
|
2024-01-21 13:33:20 +01:00
|
|
|
|
<app-truncate [text]="utxo.txid + ':' + utxo.txindex" [lastChars]="6"></app-truncate>
|
|
|
|
|
</a>
|
|
|
|
|
</td>
|
|
|
|
|
<td class="amount text-right widget">
|
|
|
|
|
<app-amount [satoshis]="utxo.amount" [noFiat]="true" [forceBtc]="true"></app-amount>
|
|
|
|
|
</td>
|
2024-02-04 14:57:04 +01:00
|
|
|
|
<td class="timestamp text-left widget">
|
2024-06-08 23:28:44 +00:00
|
|
|
|
<app-time kind="since" [time]="utxo.blocktime" [showTooltip]="true"></app-time>
|
2024-01-21 13:33:20 +01:00
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</ng-container>
|
|
|
|
|
<ng-template #regularRows>
|
|
|
|
|
<tr *ngFor="let utxo of utxos | slice:(page - 1) * pageSize:page * pageSize">
|
|
|
|
|
<td class="txid text-left">
|
2024-04-10 14:39:29 +09:00
|
|
|
|
<a href="{{ env.MEMPOOL_WEBSITE_URL + '/tx/' + utxo.txid + ':' + utxo.txindex }}" target="_blank" style="color:var(--orange)">
|
2024-01-21 13:33:20 +01:00
|
|
|
|
<app-truncate [text]="utxo.txid + ':' + utxo.txindex" [lastChars]="6"></app-truncate>
|
|
|
|
|
</a>
|
|
|
|
|
</td>
|
|
|
|
|
<td class="address text-left">
|
2024-04-10 14:39:29 +09:00
|
|
|
|
<a href="{{ env.MEMPOOL_WEBSITE_URL + '/address/' + utxo.bitcoinaddress }}" target="_blank" style="color:var(--orange)">
|
2024-01-21 13:33:20 +01:00
|
|
|
|
<app-truncate [text]="utxo.bitcoinaddress" [lastChars]="6"></app-truncate>
|
|
|
|
|
</a>
|
|
|
|
|
</td>
|
|
|
|
|
<td class="amount text-right">
|
|
|
|
|
<app-amount [satoshis]="utxo.amount" [noFiat]="true" [forceBtc]="true"></app-amount>
|
|
|
|
|
</td>
|
2024-01-21 13:40:31 +01:00
|
|
|
|
<td class="pegin text-left">
|
2024-01-23 09:57:26 +01:00
|
|
|
|
<ng-container *ngIf="utxo.pegtxid; else noPeginMessage">
|
2024-01-29 17:06:25 +01:00
|
|
|
|
<a [routerLink]="['/tx' | relativeUrl, utxo.pegtxid]" [fragment]="'vin=' + utxo.pegindex">
|
2024-01-23 09:57:26 +01:00
|
|
|
|
<app-truncate [text]="utxo.pegtxid + ':' + utxo.pegindex" [lastChars]="6"></app-truncate>
|
|
|
|
|
</a>
|
|
|
|
|
</ng-container>
|
|
|
|
|
<ng-template #noPeginMessage>
|
2024-02-04 13:01:07 +01:00
|
|
|
|
<i><span class="text-muted" i18n="liquid.change-output">Change output</span></i>
|
2024-01-23 09:57:26 +01:00
|
|
|
|
</ng-template>
|
|
|
|
|
</td>
|
2024-02-04 14:57:04 +01:00
|
|
|
|
<td class="timestamp text-left">
|
2024-01-21 13:33:20 +01:00
|
|
|
|
‎{{ utxo.blocktime * 1000 | date:'yyyy-MM-dd HH:mm' }}
|
|
|
|
|
<div class="symbol lg-inline relative-time"><i>(<app-time kind="since" [time]="utxo.blocktime"></app-time>)</i></div>
|
|
|
|
|
</td>
|
2024-02-27 16:39:28 +01:00
|
|
|
|
<td class="expires-in text-left" [ngStyle]="{ 'color': getGradientColor(utxo.blocknumber + utxo.timelock - lastReservesBlockUpdate) }">
|
|
|
|
|
{{ utxo.blocknumber + utxo.timelock - lastReservesBlockUpdate < 0 ? -(utxo.blocknumber + utxo.timelock - lastReservesBlockUpdate) : utxo.blocknumber + utxo.timelock - lastReservesBlockUpdate }} <span i18n="shared.blocks" class="symbol">blocks</span>
|
|
|
|
|
</td>
|
2024-04-10 14:39:29 +09:00
|
|
|
|
<td *ngIf="!widget && showExpiredUtxos === true" class="is-dust text-right" [ngStyle]="{ 'color': !utxo.isDust ? 'var(--red)' : '' }">
|
2024-04-03 18:13:42 +09:00
|
|
|
|
@if (utxo.isDust) {
|
|
|
|
|
✔
|
|
|
|
|
} @else {
|
|
|
|
|
➖
|
|
|
|
|
}
|
2024-02-27 16:39:28 +01:00
|
|
|
|
</td>
|
2024-01-21 13:33:20 +01:00
|
|
|
|
</tr>
|
|
|
|
|
</ng-template>
|
|
|
|
|
</tbody>
|
|
|
|
|
<ng-template #skeleton>
|
2024-01-22 16:03:55 +01:00
|
|
|
|
<tbody *ngIf="widget; else regularRowsSkeleton">
|
2024-01-21 13:33:20 +01:00
|
|
|
|
<tr *ngFor="let item of skeletonLines">
|
2024-01-22 16:03:55 +01:00
|
|
|
|
<td class="txid text-left widget">
|
2024-01-23 09:57:26 +01:00
|
|
|
|
<span class="skeleton-loader" style="max-width: 400px"></span>
|
2024-01-21 13:33:20 +01:00
|
|
|
|
</td>
|
2024-01-22 16:03:55 +01:00
|
|
|
|
<td class="amount text-right widget">
|
2024-01-23 09:57:26 +01:00
|
|
|
|
<span class="skeleton-loader" style="max-width: 300px"></span>
|
2024-01-21 13:33:20 +01:00
|
|
|
|
</td>
|
2024-02-04 14:57:04 +01:00
|
|
|
|
<td class="timestamp text-left widget">
|
2024-01-23 09:57:26 +01:00
|
|
|
|
<span class="skeleton-loader" style="max-width: 300px"></span>
|
2024-01-21 13:33:20 +01:00
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</tbody>
|
2024-01-22 16:03:55 +01:00
|
|
|
|
<ng-template #regularRowsSkeleton>
|
|
|
|
|
<tr *ngFor="let item of skeletonLines">
|
|
|
|
|
<td class="txid text-left">
|
|
|
|
|
<span class="skeleton-loader" style="max-width: 300px"></span>
|
|
|
|
|
</td>
|
|
|
|
|
<td class="address text-left">
|
|
|
|
|
<span class="skeleton-loader" style="max-width: 300px"></span>
|
|
|
|
|
</td>
|
|
|
|
|
<td class="amount text-right">
|
|
|
|
|
<span class="skeleton-loader" style="max-width: 140px"></span>
|
|
|
|
|
</td>
|
|
|
|
|
<td class="pegin text-left">
|
|
|
|
|
<span class="skeleton-loader" style="max-width: 300px"></span>
|
|
|
|
|
</td>
|
2024-02-04 14:57:04 +01:00
|
|
|
|
<td class="timestamp text-left">
|
2024-01-22 16:03:55 +01:00
|
|
|
|
<span class="skeleton-loader" style="max-width: 140px"></span>
|
|
|
|
|
</td>
|
2024-02-27 16:39:28 +01:00
|
|
|
|
<td class="expires-in text-left">
|
|
|
|
|
<span class="skeleton-loader" style="max-width: 140px"></span>
|
|
|
|
|
</td>
|
2024-01-22 16:03:55 +01:00
|
|
|
|
</tr>
|
|
|
|
|
</ng-template>
|
2024-01-21 13:33:20 +01:00
|
|
|
|
</ng-template>
|
|
|
|
|
</table>
|
|
|
|
|
|
2024-01-29 17:06:25 +01:00
|
|
|
|
<ngb-pagination *ngIf="!widget && federationUtxos$ | async as utxos" class="pagination-container float-right mt-2" [class]="isLoading ? 'disabled' : ''"
|
2024-01-21 13:33:20 +01:00
|
|
|
|
[collectionSize]="utxos.length" [rotate]="true" [maxSize]="maxSize" [pageSize]="15" [(page)]="page"
|
|
|
|
|
(pageChange)="pageChange(page)" [boundaryLinks]="true" [ellipses]="false">
|
|
|
|
|
</ngb-pagination>
|
|
|
|
|
|
|
|
|
|
<ng-template [ngIf]="!widget">
|
|
|
|
|
<div class="clearfix"></div>
|
|
|
|
|
<br>
|
|
|
|
|
</ng-template>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|