2022-05-10 14:57:43 +02:00
< app-indexing-progress * ngIf = "!widget" > < / app-indexing-progress >
2022-05-02 17:28:58 +09:00
2022-03-14 18:06:54 +01:00
< div [ class ] = " widget = == false ? ' full-container ' : ' ' " >
2022-01-17 15:34:34 +09:00
2022-03-07 19:54:17 +01:00
< div * ngIf = "widget" >
< div class = "pool-distribution" * ngIf = "(miningStatsObservable$ | async) as miningStats; else loadingReward" >
< div class = "item" >
2022-06-11 00:04:19 +02:00
< h5 class = "card-title d-inline-block" i18n = "mining.miners-luck" i18n-ngbTooltip = "mining.miners-luck-1w"
ngbTooltip="Pools luck (1 week)" placement="bottom" #minersluck [disableTooltip]="!isEllipsisActive(minersluck)">Pools luck< / h5 >
< p class = "card-text" i18n-ngbTooltip = "mining.pools-luck-desc"
ngbTooltip="The overall luck of all mining pools over the past week. A luck bigger than 100% means the average block time for the current epoch is less than 10 minutes." placement="bottom">
2022-03-07 19:54:17 +01:00
{{ miningStats['minersLuck'] }}%
< / p >
< / div >
< div class = "item" >
2022-06-11 00:04:19 +02:00
< h5 class = "card-title d-inline-block" i18n = "mining.miners-count" i18n-ngbTooltip = "mining.miners-count-1w"
ngbTooltip="Pools count (1w)" placement="bottom" #poolscount [disableTooltip]="!isEllipsisActive(poolscount)">Pools count< / h5 >
< p class = "card-text" i18n-ngbTooltip = "mining.pools-count-desc"
ngbTooltip="How many unique pools found at least one block over the past week." placement="bottom">
{{ miningStats.pools.length }}
2022-03-07 19:54:17 +01:00
< / p >
< / div >
< div class = "item" >
2022-06-11 00:04:19 +02:00
< h5 class = "card-title d-inline-block" i18n = "master-page.blocks" i18n-ngbTooltip = "master-page.blocks"
ngbTooltip="Blocks (1w)" placement="bottom" #blockscount [disableTooltip]="!isEllipsisActive(blockscount)">Blocks (1w)< / h5 >
< p class = "card-text" i18n-ngbTooltip = "mining.blocks-count-desc"
ngbTooltip="The number of blocks found over the past week." placement="bottom">
{{ miningStats.blockCount }}
2022-03-07 19:54:17 +01:00
< / p >
< / div >
2022-03-05 18:47:21 +01:00
< / div >
< / div >
2022-03-14 18:06:54 +01:00
< div class = "card-header" * ngIf = "!widget" >
2022-05-10 17:05:07 +04:00
< span i18n = "mining.pools" > Pools Ranking< / span >
2022-05-05 17:48:57 +09:00
< button class = "btn" style = "margin: 0 0 4px 0px" ( click ) = " onSaveChart ( ) " >
2022-05-05 16:18:28 +09:00
< fa-icon [ icon ] = " [ ' fas ' , ' download ' ] " [ fixedWidth ] = " true " > < / fa-icon >
< / button >
2022-03-14 18:06:54 +01:00
< form [ formGroup ] = " radioGroupForm " class = "formRadioGroup"
2022-04-15 20:43:10 +09:00
*ngIf="!widget & & (miningStatsObservable$ | async) as stats">
2022-01-21 11:17:36 +09:00
< div class = "btn-group btn-group-toggle" ngbRadioGroup name = "radioBasic" formControlName = "dateSpan" >
2022-04-15 20:43:10 +09:00
< label ngbButtonLabel class = "btn-primary btn-sm" * ngIf = "stats.totalBlockCount >= 144" >
2022-06-15 11:26:58 +02:00
< input ngbButton type = "radio" [ value ] = " ' 24h ' " fragment = "24h" [ routerLink ] = " [ ' / graphs / mining / pools ' | relativeUrl ] " > 24h
2022-01-06 19:59:33 +09:00
< / label >
2022-04-15 20:43:10 +09:00
< label ngbButtonLabel class = "btn-primary btn-sm" * ngIf = "stats.totalBlockCount >= 432" >
2022-06-15 11:26:58 +02:00
< input ngbButton type = "radio" [ value ] = " ' 3d ' " fragment = "3d" [ routerLink ] = " [ ' / graphs / mining / pools ' | relativeUrl ] " > 3D
2022-01-06 19:59:33 +09:00
< / label >
2022-04-15 20:43:10 +09:00
< label ngbButtonLabel class = "btn-primary btn-sm" * ngIf = "stats.totalBlockCount >= 1008" >
2022-06-15 11:26:58 +02:00
< input ngbButton type = "radio" [ value ] = " ' 1w ' " fragment = "1w" [ routerLink ] = " [ ' / graphs / mining / pools ' | relativeUrl ] " > 1W
2022-01-06 19:59:33 +09:00
< / label >
2022-04-15 20:43:10 +09:00
< label ngbButtonLabel class = "btn-primary btn-sm" * ngIf = "stats.totalBlockCount >= 4320" >
2022-06-15 11:26:58 +02:00
< input ngbButton type = "radio" [ value ] = " ' 1m ' " fragment = "1m" [ routerLink ] = " [ ' / graphs / mining / pools ' | relativeUrl ] " > 1M
2022-01-06 19:59:33 +09:00
< / label >
2022-04-15 20:43:10 +09:00
< label ngbButtonLabel class = "btn-primary btn-sm" * ngIf = "stats.totalBlockCount >= 12960" >
2022-06-15 11:26:58 +02:00
< input ngbButton type = "radio" [ value ] = " ' 3m ' " fragment = "3m" [ routerLink ] = " [ ' / graphs / mining / pools ' | relativeUrl ] " > 3M
2022-01-06 19:59:33 +09:00
< / label >
2022-04-15 20:43:10 +09:00
< label ngbButtonLabel class = "btn-primary btn-sm" * ngIf = "stats.totalBlockCount >= 25920" >
2022-06-15 11:26:58 +02:00
< input ngbButton type = "radio" [ value ] = " ' 6m ' " fragment = "6m" [ routerLink ] = " [ ' / graphs / mining / pools ' | relativeUrl ] " > 6M
2022-01-06 19:59:33 +09:00
< / label >
2022-04-15 20:43:10 +09:00
< label ngbButtonLabel class = "btn-primary btn-sm" * ngIf = "stats.totalBlockCount >= 52560" >
2022-06-15 11:26:58 +02:00
< input ngbButton type = "radio" [ value ] = " ' 1y ' " fragment = "1y" [ routerLink ] = " [ ' / graphs / mining / pools ' | relativeUrl ] " > 1Y
2022-01-06 19:59:33 +09:00
< / label >
2022-04-15 20:43:10 +09:00
< label ngbButtonLabel class = "btn-primary btn-sm" * ngIf = "stats.totalBlockCount >= 105120" >
2022-06-15 11:26:58 +02:00
< input ngbButton type = "radio" [ value ] = " ' 2y ' " fragment = "2y" [ routerLink ] = " [ ' / graphs / mining / pools ' | relativeUrl ] " > 2Y
2022-01-06 19:59:33 +09:00
< / label >
2022-04-15 20:43:10 +09:00
< label ngbButtonLabel class = "btn-primary btn-sm" * ngIf = "stats.totalBlockCount >= 157680" >
2022-06-15 11:26:58 +02:00
< input ngbButton type = "radio" [ value ] = " ' 3y ' " fragment = "3y" [ routerLink ] = " [ ' / graphs / mining / pools ' | relativeUrl ] " > 3Y
2022-01-06 19:59:33 +09:00
< / label >
2022-06-26 10:27:07 +02:00
< label ngbButtonLabel class = "btn-primary btn-sm" >
2022-06-15 11:26:58 +02:00
< input ngbButton type = "radio" [ value ] = " ' all ' " fragment = "all" [ routerLink ] = " [ ' / graphs / mining / pools ' | relativeUrl ] " > < span i18n > All< / span >
2022-01-06 19:59:33 +09:00
< / label >
< / div >
< / form >
< / div >
2022-03-14 18:06:54 +01:00
< div [ class ] = " ! widget ? ' bottom-padding ' : ' pb-0 ' " class = "container pb-lg-0" >
2022-03-31 18:14:07 +09:00
< div >
< div [ class ] = " widget ? ' chart-widget ' : ' chart ' " echarts [ initOpts ] = " chartInitOptions " [ options ] = " chartOptions "
(chartInit)="onChartInit($event)">
< / div >
< / div >
2022-03-14 18:06:54 +01:00
< div class = "text-center loadingGraphs" * ngIf = "isLoading" >
< div class = "spinner-border text-light" > < / div >
< / div >
< table * ngIf = "widget === false" class = "table table-borderless text-center pools-table" >
< thead >
< tr >
< th class = "d-none d-md-block" i18n = "mining.rank" > Rank< / th >
< th class = "" > < / th >
< th class = "" i18n = "mining.pool-name" > Pool< / th >
2022-04-11 18:17:36 +09:00
< th class = "" * ngIf = "this.miningWindowPreference === '24h'" i18n = "mining.hashrate" > Hashrate< / th >
2022-03-14 18:06:54 +01:00
< th class = "" i18n = "master-page.blocks" > Blocks< / th >
2022-05-10 17:05:07 +04:00
< th class = "d-none d-md-block" i18n = "mining.empty-blocks" > Empty blocks< / th >
2022-03-14 18:06:54 +01:00
< / tr >
< / thead >
< tbody * ngIf = "(miningStatsObservable$ | async) as miningStats" >
< tr * ngFor = "let pool of miningStats.pools" >
< td class = "d-none d-md-block" > {{ pool.rank }}< / td >
2022-05-13 15:34:26 +02:00
< td class = "text-right" >
< img width = "25" height = "25" src = "{{ pool.logo }}" [ alt ] = " pool . name + ' mining pool logo ' " onError = "this.src = './resources/mining-pools/default.svg'" >
< / td >
2022-03-25 14:22:22 +09:00
< td class = "" > < a [ routerLink ] = " [ ( ' / mining / pool / ' + pool . slug ) | relativeUrl ] " > {{ pool.name }}< / a > < / td >
2022-04-11 18:17:36 +09:00
< td class = "" * ngIf = "this.miningWindowPreference === '24h' && !isLoading" > {{ pool.lastEstimatedHashrate }} {{
2022-03-14 18:06:54 +01:00
miningStats.miningUnits.hashrateUnit }}< / td >
< td class = "" > {{ pool['blockText'] }}< / td >
< td class = "d-none d-md-block" > {{ pool.emptyBlocks }} ({{ pool.emptyBlockRatio }}%)< / td >
< / tr >
< tr style = "border-top: 1px solid #555" >
< td class = "d-none d-md-block" > < / td >
< td class = "text-right" > < / td >
2022-05-17 19:27:41 +04:00
< td class = "" > < b i18n = "mining.all-miners" > All miners< / b > < / td >
2022-04-11 18:17:36 +09:00
< td class = "" * ngIf = "this.miningWindowPreference === '24h'" > < b > {{ miningStats.lastEstimatedHashrate}} {{
2022-03-14 18:06:54 +01:00
miningStats.miningUnits.hashrateUnit }}< / b > < / td >
< td class = "" > < b > {{ miningStats.blockCount }}< / b > < / td >
< td class = "d-none d-md-block" > < b > {{ miningStats.totalEmptyBlock }} ({{ miningStats.totalEmptyBlockRatio
}}%)< / b > < / td >
< / tr >
< / tbody >
< / table >
< / div >
2022-01-06 19:59:33 +09:00
< / div >
2022-03-07 19:54:17 +01:00
< ng-template # loadingReward >
< div class = "pool-distribution" >
< div class = "item" >
2022-05-10 17:05:07 +04:00
< h5 class = "card-title" i18n = "mining.miners-luck" > Pools Luck (1w)< / h5 >
2022-03-07 19:54:17 +01:00
< p class = "card-text" >
< span class = "skeleton-loader skeleton-loader-big" > < / span >
< / p >
< / div >
< div class = "item" >
< h5 class = "card-title" i18n = "master-page.blocks" > Blocks (1w)< / h5 >
< p class = "card-text" >
< span class = "skeleton-loader skeleton-loader-big" > < / span >
< / p >
< / div >
< div class = "item" >
2022-05-10 17:05:07 +04:00
< h5 class = "card-title" i18n = "mining.miners-count" > Pools Count (1w)< / h5 >
2022-03-07 19:54:17 +01:00
< p class = "card-text" >
< span class = "skeleton-loader skeleton-loader-big" > < / span >
< / p >
< / div >
< / div >
2022-06-11 00:04:19 +02:00
< / ng-template >