84 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <ng-container *ngIf="(loadingBlocks$ | async) === false; else loadingBlocks" [class.minimal]="minimal">
 | |
|   <div class="mempool-blocks-container" [class.time-ltr]="timeLtr" [style.--block-size]="blockWidth+'px'" *ngIf="(difficultyAdjustments$ | async) as da;">
 | |
|     <div class="flashing">
 | |
|       <ng-template ngFor let-projectedBlock [ngForOf]="mempoolBlocks$ | async" let-i="index" [ngForTrackBy]="trackByFn">
 | |
|         <div @blockEntryTrigger [@.disabled]="i > 0 || !animateEntry" [attr.data-cy]="'mempool-block-' + i" class="bitcoin-block text-center mempool-block" [class.hide-block]="count && i >= count" id="mempool-block-{{ i }}" [ngStyle]="mempoolBlockStyles[i]" [class.blink-bg]="projectedBlock.blink">
 | |
|           <a draggable="false" [routerLink]="['/mempool-block/' | relativeUrl, i]"
 | |
|             class="blockLink" [ngClass]="{'disabled': (this.stateService.blockScrolling$ | async)}"> </a>
 | |
|           <div class="block-body">
 | |
|             <ng-container *ngIf="!minimal">
 | |
|               <div [attr.data-cy]="'mempool-block-' + i + '-fees'" class="fees">
 | |
|                 ~{{ projectedBlock.medianFee | number:feeRounding }} <span i18n="shared.sat-vbyte|sat/vB">sat/vB</span>
 | |
|               </div>
 | |
|               <div [attr.data-cy]="'mempool-block-' + i + '-fee-span'" class="fee-span">
 | |
|                 {{ projectedBlock.feeRange[0] | number:feeRounding }} - {{ projectedBlock.feeRange[projectedBlock.feeRange.length - 1] | number:feeRounding }} <span i18n="shared.sat-vbyte|sat/vB">sat/vB</span>
 | |
|               </div>
 | |
|               <div *ngIf="showMiningInfo" class="block-size">
 | |
|                 <app-amount [attr.data-cy]="'mempool-block-' + i + '-total-fees'" [satoshis]="projectedBlock.totalFees" digitsInfo="1.2-3" [noFiat]="true"></app-amount>
 | |
|               </div>
 | |
|               <div *ngIf="!showMiningInfo" class="block-size" [innerHTML]="'‎' + (projectedBlock.blockSize | bytes: 2)"></div>
 | |
|               <div [attr.data-cy]="'mempool-block-' + i + '-transaction-count'" class="transaction-count">
 | |
|                 <ng-container *ngTemplateOutlet="projectedBlock.nTx === 1 ? transactionsSingular : transactionsPlural; context: {$implicit: projectedBlock.nTx | number}"></ng-container>
 | |
|                 <ng-template #transactionsSingular let-i i18n="shared.transaction-count.singular">{{ i }} transaction</ng-template>
 | |
|                 <ng-template #transactionsPlural let-i i18n="shared.transaction-count.plural">{{ i }} transactions</ng-template>
 | |
|               </div>
 | |
|               <div [attr.data-cy]="'mempool-block-' + i + '-time'" class="time-difference" *ngIf="projectedBlock.blockVSize <= stateService.blockVSize; else mergedBlock">
 | |
|                 <ng-template [ngIf]="network === 'liquid' || network === 'liquidtestnet'" [ngIfElse]="timeDiffMainnet">
 | |
|                   <app-time kind="until" [time]="(1 * i) + now + 61000" [fastRender]="false" [fixedRender]="true"></app-time>
 | |
|                 </ng-template>
 | |
|                 <ng-template #timeDiffMainnet>
 | |
|                   <app-time kind="until" [time]="da.timeAvg * (i + 1) + now + da.timeOffset" [fastRender]="false" [fixedRender]="true"></app-time>
 | |
|                 </ng-template>
 | |
|               </div>
 | |
|               <ng-template #mergedBlock>
 | |
|                 <div [attr.data-cy]="'mempool-block-' + i + '-blocks'" class="time-difference">
 | |
|                   <b>(<ng-container *ngTemplateOutlet="blocksPlural; context: {$implicit: projectedBlock.blockVSize / stateService.blockVSize | ceil }"></ng-container>)</b>
 | |
|                   <ng-template #blocksPlural let-i i18n="shared.blocks">{{ i }} <span class="shared-block">blocks</span></ng-template>
 | |
|                 </div>
 | |
|                 <div [attr.data-cy]="'mempool-block-' + i + '-fee-span'" class="fee-span">
 | |
|                   {{ projectedBlock.feeRange[0] | number:feeRounding }} - {{ projectedBlock.feeRange[projectedBlock.feeRange.length - 1] | number:feeRounding }} <span i18n="shared.sat-vbyte|sat/vB">sat/vB</span>
 | |
|                 </div>
 | |
|                 <div *ngIf="showMiningInfo" class="block-size">
 | |
|                   <app-amount [attr.data-cy]="'mempool-block-' + i + '-total-fees'" [satoshis]="projectedBlock.totalFees" digitsInfo="1.2-3" [noFiat]="true"></app-amount>
 | |
|                 </div>
 | |
|                 <div *ngIf="!showMiningInfo" class="block-size" [innerHTML]="'‎' + (projectedBlock.blockSize | bytes: 2)"></div>
 | |
|                 <div [attr.data-cy]="'mempool-block-' + i + '-transaction-count'" class="transaction-count">
 | |
|                   <ng-container *ngTemplateOutlet="projectedBlock.nTx === 1 ? transactionsSingular : transactionsPlural; context: {$implicit: projectedBlock.nTx | number}"></ng-container>
 | |
|                   <ng-template #transactionsSingular let-i i18n="shared.transaction-count.singular">{{ i }} transaction</ng-template>
 | |
|                   <ng-template #transactionsPlural let-i i18n="shared.transaction-count.plural">{{ i }} transactions</ng-template>
 | |
|                 </div>
 | |
|                 <div [attr.data-cy]="'mempool-block-' + i + '-time'" class="time-difference" *ngIf="projectedBlock.blockVSize <= stateService.blockVSize; else mergedBlock">
 | |
|                   <ng-template [ngIf]="network === 'liquid' || network === 'liquidtestnet'" [ngIfElse]="timeDiffMainnet">
 | |
|                     <app-time kind="until" [time]="(1 * i) + now + 61000" [fastRender]="false" [fixedRender]="true"></app-time>
 | |
|                   </ng-template>
 | |
|                   <ng-template #timeDiffMainnet>
 | |
|                     <app-time kind="until" [time]="da.timeAvg * (i + 1) + now + da.timeOffset" [fastRender]="false" [fixedRender]="true" [forceFloorOnTimeIntervals]="['hour']"></app-time>
 | |
|                   </ng-template>
 | |
|                 </div>
 | |
|                 <ng-template #mergedBlock>
 | |
|                   <div [attr.data-cy]="'mempool-block-' + i + '-blocks'" class="time-difference">
 | |
|                     <b>(<ng-container *ngTemplateOutlet="blocksPlural; context: {$implicit: projectedBlock.blockVSize / stateService.blockVSize | ceil }"></ng-container>)</b>
 | |
|                     <ng-template #blocksPlural let-i i18n="shared.blocks">{{ i }} <span class="shared-block">blocks</span></ng-template>
 | |
|                   </div>
 | |
|                 </ng-template>
 | |
|               </ng-template>
 | |
|             </ng-container>
 | |
|           </div>
 | |
|           <span class="animated-border"></span>
 | |
|         </div>
 | |
|       </ng-template>
 | |
|     </div>
 | |
|     <div *ngIf="arrowVisible" id="arrow-up" [ngStyle]="{'right': rightPosition + 75 + 'px', transition: transition }"></div>
 | |
|   </div>
 | |
| </ng-container>
 | |
| 
 | |
| <ng-template #loadingBlocks>
 | |
|   <div class="mempool-blocks-container" [class.time-ltr]="timeLtr" [style.--block-size]="blockWidth+'px'">
 | |
|     <div class="flashing">
 | |
|       <ng-template ngFor let-projectedBlock [ngForOf]="mempoolEmptyBlocks" let-i="index" [ngForTrackBy]="trackByFn">
 | |
|         <div class="bitcoin-block text-center mempool-block" [class.hide-block]="count && i >= count" id="mempool-block-{{ i }}" [ngStyle]="mempoolEmptyBlockStyles[i]"></div>
 | |
|       </ng-template>
 | |
|     </div>
 | |
|   </div>
 | |
| </ng-template>
 |