restore latest blocks on liquid
This commit is contained in:
		
							parent
							
								
									61e28a33e0
								
							
						
					
					
						commit
						943d05f680
					
				@ -73,7 +73,7 @@
 | 
				
			|||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div class="col" style="max-height: 410px">
 | 
					    <div class="col" style="max-height: 410px">
 | 
				
			||||||
      <div class="card">
 | 
					      <div class="card" *ngIf="(network$ | async) !== 'liquid' && (network$ | async) !== 'liquidtestnet'; else latestBlocks">
 | 
				
			||||||
        <div class="card-body">
 | 
					        <div class="card-body">
 | 
				
			||||||
          <a class="title-link" href="" [routerLink]="['/rbf' | relativeUrl]">
 | 
					          <a class="title-link" href="" [routerLink]="['/rbf' | relativeUrl]">
 | 
				
			||||||
            <h5 class="card-title d-inline" i18n="dashboard.latest-rbf-replacements">Latest replacements</h5>
 | 
					            <h5 class="card-title d-inline" i18n="dashboard.latest-rbf-replacements">Latest replacements</h5>
 | 
				
			||||||
@ -106,6 +106,46 @@
 | 
				
			|||||||
          </table>
 | 
					          </table>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
 | 
					      <ng-template #latestBlocks>
 | 
				
			||||||
 | 
					        <div class="card">
 | 
				
			||||||
 | 
					          <div class="card-body">
 | 
				
			||||||
 | 
					            <a class="title-link" href="" [routerLink]="['/blocks' | relativeUrl]">
 | 
				
			||||||
 | 
					              <h5 class="card-title d-inline" i18n="dashboard.latest-blocks">Latest blocks</h5>
 | 
				
			||||||
 | 
					              <span> </span>
 | 
				
			||||||
 | 
					              <fa-icon [icon]="['fas', 'external-link-alt']" [fixedWidth]="true" style="vertical-align: 'text-top'; font-size: 13px; color: '#4a68b9'"></fa-icon>
 | 
				
			||||||
 | 
					            </a>
 | 
				
			||||||
 | 
					            <table class="table lastest-blocks-table">
 | 
				
			||||||
 | 
					              <thead>
 | 
				
			||||||
 | 
					                <th class="table-cell-height" i18n="dashboard.latest-blocks.height">Height</th>
 | 
				
			||||||
 | 
					                <th *ngIf="!stateService.env.MINING_DASHBOARD" class="table-cell-mined" i18n="dashboard.latest-blocks.mined">Mined</th>
 | 
				
			||||||
 | 
					                <th *ngIf="stateService.env.MINING_DASHBOARD" class="table-cell-mined pl-lg-4" i18n="mining.pool-name">Pool</th>
 | 
				
			||||||
 | 
					                <th class="table-cell-transaction-count" i18n="dashboard.latest-blocks.transaction-count">TXs</th>
 | 
				
			||||||
 | 
					                <th class="table-cell-size" i18n="dashboard.latest-blocks.size">Size</th>
 | 
				
			||||||
 | 
					              </thead>
 | 
				
			||||||
 | 
					              <tbody>
 | 
				
			||||||
 | 
					                <tr *ngFor="let block of blocks$ | async; let i = index; trackBy: trackByBlock">
 | 
				
			||||||
 | 
					                  <td class="table-cell-height" ><a [routerLink]="['/block' | relativeUrl, block.id]" [state]="{ data: { block: block } }">{{ block.height }}</a></td>
 | 
				
			||||||
 | 
					                  <td *ngIf="!stateService.env.MINING_DASHBOARD" class="table-cell-mined" ><app-time kind="since" [time]="block.timestamp" [fastRender]="true"></app-time></td>
 | 
				
			||||||
 | 
					                  <td *ngIf="stateService.env.MINING_DASHBOARD" class="table-cell-mined pl-lg-4">
 | 
				
			||||||
 | 
					                    <a class="clear-link" [routerLink]="[('/mining/pool/' + block.extras.pool.slug) | relativeUrl]">
 | 
				
			||||||
 | 
					                      <img width="22" height="22" src="{{ block.extras.pool['logo'] }}"
 | 
				
			||||||
 | 
					                        onError="this.src = '/resources/mining-pools/default.svg'">
 | 
				
			||||||
 | 
					                      <span class="pool-name">{{ block.extras.pool.name }}</span>
 | 
				
			||||||
 | 
					                    </a>
 | 
				
			||||||
 | 
					                  </td>
 | 
				
			||||||
 | 
					                  <td class="table-cell-transaction-count">{{ block.tx_count | number }}</td>
 | 
				
			||||||
 | 
					                  <td class="table-cell-size">
 | 
				
			||||||
 | 
					                    <div class="progress">
 | 
				
			||||||
 | 
					                      <div class="progress-bar progress-mempool {{ network$ | async }}" role="progressbar" [ngStyle]="{'width': (block.weight / stateService.env.BLOCK_WEIGHT_UNITS)*100 + '%' }"> </div>
 | 
				
			||||||
 | 
					                      <div class="progress-text" [innerHTML]="block.size | bytes: 2"></div>
 | 
				
			||||||
 | 
					                    </div>
 | 
				
			||||||
 | 
					                  </td>
 | 
				
			||||||
 | 
					                </tr>
 | 
				
			||||||
 | 
					              </tbody>
 | 
				
			||||||
 | 
					            </table>
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					      </ng-template>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div class="col" style="max-height: 410px">
 | 
					    <div class="col" style="max-height: 410px">
 | 
				
			||||||
      <div class="card">
 | 
					      <div class="card">
 | 
				
			||||||
 | 
				
			|||||||
@ -175,6 +175,43 @@
 | 
				
			|||||||
  height: 18px;
 | 
					  height: 18px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.lastest-blocks-table {
 | 
				
			||||||
 | 
					  width: 100%;
 | 
				
			||||||
 | 
					  text-align: left;
 | 
				
			||||||
 | 
					  tr, td, th {
 | 
				
			||||||
 | 
					    border: 0px;
 | 
				
			||||||
 | 
					    padding-top: 0.65rem !important;
 | 
				
			||||||
 | 
					    padding-bottom: 0.7rem !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  .table-cell-height {
 | 
				
			||||||
 | 
					    width: 15%;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  .table-cell-mined {
 | 
				
			||||||
 | 
					    width: 35%;
 | 
				
			||||||
 | 
					    text-align: left;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  .table-cell-transaction-count {
 | 
				
			||||||
 | 
					    display: none;
 | 
				
			||||||
 | 
					    text-align: right;
 | 
				
			||||||
 | 
					    width: 20%;
 | 
				
			||||||
 | 
					    display: table-cell;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  .table-cell-size {
 | 
				
			||||||
 | 
					    display: none;
 | 
				
			||||||
 | 
					    text-align: center;
 | 
				
			||||||
 | 
					    width: 30%;
 | 
				
			||||||
 | 
					    @media (min-width: 485px) {
 | 
				
			||||||
 | 
					      display: table-cell;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    @media (min-width: 768px) {
 | 
				
			||||||
 | 
					      display: none;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    @media (min-width: 992px) {
 | 
				
			||||||
 | 
					      display: table-cell;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.lastest-replacements-table {
 | 
					.lastest-replacements-table {
 | 
				
			||||||
  width: 100%;
 | 
					  width: 100%;
 | 
				
			||||||
  text-align: left;
 | 
					  text-align: left;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,6 @@
 | 
				
			|||||||
import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';
 | 
					import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';
 | 
				
			||||||
import { combineLatest, merge, Observable, of, Subscription } from 'rxjs';
 | 
					import { combineLatest, merge, Observable, of, Subscription } from 'rxjs';
 | 
				
			||||||
import { filter, map, scan, share, switchMap } from 'rxjs/operators';
 | 
					import { filter, map, scan, share, switchMap, tap } from 'rxjs/operators';
 | 
				
			||||||
import { BlockExtended, OptimizedMempoolStats, RbfTree } from '../interfaces/node-api.interface';
 | 
					import { BlockExtended, OptimizedMempoolStats, RbfTree } from '../interfaces/node-api.interface';
 | 
				
			||||||
import { MempoolInfo, TransactionStripped, ReplacementInfo } from '../interfaces/websocket.interface';
 | 
					import { MempoolInfo, TransactionStripped, ReplacementInfo } from '../interfaces/websocket.interface';
 | 
				
			||||||
import { ApiService } from '../services/api.service';
 | 
					import { ApiService } from '../services/api.service';
 | 
				
			||||||
@ -39,6 +39,7 @@ export class DashboardComponent implements OnInit, OnDestroy {
 | 
				
			|||||||
  mempoolLoadingStatus$: Observable<number>;
 | 
					  mempoolLoadingStatus$: Observable<number>;
 | 
				
			||||||
  vBytesPerSecondLimit = 1667;
 | 
					  vBytesPerSecondLimit = 1667;
 | 
				
			||||||
  transactions$: Observable<TransactionStripped[]>;
 | 
					  transactions$: Observable<TransactionStripped[]>;
 | 
				
			||||||
 | 
					  blocks$: Observable<BlockExtended[]>;
 | 
				
			||||||
  replacements$: Observable<ReplacementInfo[]>;
 | 
					  replacements$: Observable<ReplacementInfo[]>;
 | 
				
			||||||
  latestBlockHeight: number;
 | 
					  latestBlockHeight: number;
 | 
				
			||||||
  mempoolTransactionsWeightPerSecondData: any;
 | 
					  mempoolTransactionsWeightPerSecondData: any;
 | 
				
			||||||
@ -144,6 +145,23 @@ export class DashboardComponent implements OnInit, OnDestroy {
 | 
				
			|||||||
        }, []),
 | 
					        }, []),
 | 
				
			||||||
      );
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    this.blocks$ = this.stateService.blocks$
 | 
				
			||||||
 | 
					      .pipe(
 | 
				
			||||||
 | 
					        tap((blocks) => {
 | 
				
			||||||
 | 
					          this.latestBlockHeight = blocks[0].height;
 | 
				
			||||||
 | 
					        }),
 | 
				
			||||||
 | 
					        switchMap((blocks) => {
 | 
				
			||||||
 | 
					          if (this.stateService.env.MINING_DASHBOARD === true) {
 | 
				
			||||||
 | 
					            for (const block of blocks) {
 | 
				
			||||||
 | 
					              // @ts-ignore: Need to add an extra field for the template
 | 
				
			||||||
 | 
					              block.extras.pool.logo = `/resources/mining-pools/` +
 | 
				
			||||||
 | 
					                block.extras.pool.name.toLowerCase().replace(' ', '').replace('.', '') + '.svg';
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					          return of(blocks.slice(0, 6));
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    this.replacements$ = this.stateService.rbfLatestSummary$;
 | 
					    this.replacements$ = this.stateService.rbfLatestSummary$;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    this.mempoolStats$ = this.stateService.connectionState$
 | 
					    this.mempoolStats$ = this.stateService.connectionState$
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user