2022-05-10 14:52:37 +02:00
< app-indexing-progress ></ app-indexing-progress >
2022-05-02 17:28:58 +09:00
2024-07-04 19:38:27 +09:00
< div class = "container-xl" * ngIf = "!error; else errorTemplate" >
2022-02-08 18:56:51 +09:00
2022-04-05 00:36:00 +09:00
<!-- Pool overview -->
2022-03-08 18:58:19 +01:00
< div * ngIf = "poolStats$ | async as poolStats; else loadingMain" >
2022-03-22 17:19:34 +09:00
< div style = "display:flex" class = "mb-3" >
2022-05-13 15:34:26 +02:00
< img width = "50" height = "50" src = "{{ poolStats['logo'] }}" [ alt ]=" poolStats . pool . name + ' mining pool logo '"
2023-10-18 18:00:07 +00:00
onError = "this.onerror=null; this.src = '/resources/mining-pools/default.svg'" class = "mr-3" >
2022-03-16 19:17:33 +01:00
< h1 class = "m-0 pt-1 pt-md-0" > {{ poolStats.pool.name }}</ h1 >
2022-03-16 17:00:06 +01:00
</ div >
2022-02-11 17:55:38 +09:00
< div class = "box" >
2022-02-09 19:41:05 +09:00
< div class = "row" >
2022-03-25 17:48:24 +09:00
2022-04-05 00:36:00 +09:00
< div class = "col-lg-6" >
< table class = "table table-borderless table-striped taller" style = "table-layout: fixed;" >
2022-02-09 19:41:05 +09:00
< tbody >
2022-03-25 17:48:24 +09:00
<!-- Regexes desktop -->
2022-04-05 00:36:00 +09:00
< tr * ngIf = "!isMobile()" class = "taller-row" >
2022-03-25 17:48:24 +09:00
< td class = "label" i18n = "mining.tags" > Tags</ td >
2022-04-05 00:36:00 +09:00
< td * ngIf = "poolStats.pool.regexes.length else nodata" style = "vertical-align: middle" >
< div class = "scrollable" > {{ poolStats.pool.regexes }}</ div >
2022-03-25 17:48:24 +09:00
</ td >
</ tr >
<!-- Regexes mobile -->
< tr * ngIf = "isMobile()" >
< td colspan = 2 >
2022-04-05 00:36:00 +09:00
< span class = "label" i18n = "mining.tags" > Tags</ span >
2022-03-30 16:11:18 +09:00
< div * ngIf = "poolStats.pool.regexes.length else nodatamobile" class = "overflow-auto" >
2022-03-09 16:30:45 +01:00
{{ poolStats.pool.regexes }}
</ div >
</ td >
</ tr >
2022-03-25 17:48:24 +09:00
<!-- Addresses desktop -->
2022-04-05 00:36:00 +09:00
< tr * ngIf = "!isMobile()" class = "taller-row" >
< td class = "label addresses" i18n = "mining.addresses" > Addresses</ td >
2023-03-16 16:35:59 +09:00
< td * ngIf = "poolStats.pool.addresses.length else nodata" style = "padding-top: 25px" >
2023-03-16 16:13:11 +09:00
< a class = "addresses-data" [ routerLink ]="['/ address ' | relativeUrl , poolStats . pool . addresses [ 0 ]]" >
2022-04-05 00:36:00 +09:00
{{ poolStats.pool.addresses[0] }}
</ a >
2022-04-06 15:02:24 +09:00
< div >
< div # collapse = "ngbCollapse" [( ngbCollapse )]=" gfg " >
2023-03-16 16:13:11 +09:00
< a class = "addresses-data" * ngFor = "let address of poolStats.pool.addresses | slice: 1"
2022-04-06 15:02:24 +09:00
[ routerLink ]="['/ address ' | relativeUrl , address ]" > {{
address }}< br ></ a >
</ div >
< button * ngIf = "poolStats.pool.addresses.length >= 2" type = "button"
class = "btn btn-sm btn-primary small-button" ( click )=" collapse . toggle ()"
[ attr . aria-expanded ]="! gfg " aria-controls = "collapseExample" >
< div * ngIf = "gfg" >< span i18n = "show-all" > Show all</ span > ({{ poolStats.pool.addresses.length }})
</ div >
< span * ngIf = "!gfg" i18n = "hide" > Hide</ span >
</ button >
2022-02-11 19:10:29 +09:00
</ div >
</ td >
2022-03-25 17:48:24 +09:00
</ tr >
<!-- Addresses mobile -->
< tr * ngIf = "isMobile()" >
< td colspan = 2 >
< span class = "label" i18n = "mining.addresses" > Addresses</ span >
< div * ngIf = "poolStats.pool.addresses.length else nodatamobile" >
< button * ngIf = "poolStats.pool.addresses.length >= 2" type = "button"
2022-04-06 15:02:24 +09:00
class = "btn btn-sm btn-primary float-right small-button mobile" ( click )=" collapse . toggle ()"
2022-03-25 17:48:24 +09:00
[ attr . aria-expanded ]="! gfg " aria-controls = "collapseExample" >
2022-03-29 10:52:50 +09:00
< span i18n = "show-all" > Show all</ span > ({{ poolStats.pool.addresses.length }})
2022-03-25 17:48:24 +09:00
</ button >
2023-03-16 16:13:11 +09:00
< a class = "addresses-data" [ routerLink ]="['/ address ' | relativeUrl , poolStats . pool . addresses [ 0 ]]" >
{{ poolStats.pool.addresses[0] | shortenString: 30 }}
2022-03-25 17:48:24 +09:00
</ a >
< div # collapse = "ngbCollapse" [( ngbCollapse )]=" gfg " style = "width: 100%" >
2023-03-16 16:13:11 +09:00
< a class = "addresses-data" * ngFor = "let address of poolStats.pool.addresses | slice: 1"
2022-03-25 17:48:24 +09:00
[ routerLink ]="['/ address ' | relativeUrl , address ]" > {{
2023-03-16 16:13:11 +09:00
address | shortenString: 30 }}< br ></ a >
2022-03-25 17:48:24 +09:00
</ div >
</ div >
</ td >
2022-02-09 19:41:05 +09:00
</ tr >
</ tbody >
</ table >
</ div >
2022-03-25 17:48:24 +09:00
2022-04-05 00:36:00 +09:00
< div class = "col-lg-6" >
2022-02-09 19:41:05 +09:00
< table class = "table table-borderless table-striped" >
< tbody >
2024-03-15 07:40:44 +00:00
<!-- Hashrate -->
< tr [ class . taller-row ]="! isMobile ()" >
< td [ class . data ]="! isMobile ()" [ attr . colspan ]=" isMobile () ? 2 : 1 " >
2022-04-05 00:36:00 +09:00
< table class = "table table-xs table-data" >
< thead >
< tr >
2023-03-29 15:09:38 +09:00
< th scope = "col" class = "data-title clip text-center" style = "width: 33%" i18n = "mining.reward" > Reward</ th >
< th scope = "col" class = "data-title clip text-center" style = "width: 33%" i18n = "mining.hashrate" > Hashrate (24h)</ th >
< th scope = "col" class = "data-title clip text-center" style = "width: 33%" i18n = "latest-blocks.avg_health" * ngIf = "auditAvailable" > Avg Health</ th >
2022-04-05 00:36:00 +09:00
</ tr >
</ thead >
< tbody >
2024-06-26 10:48:17 +09:00
< td class = "text-center" >< app-amount [ satoshis ]=" poolStats . totalReward " digitsInfo = "1.0-0" [ noFiat ]=" true " [ ignoreViewMode ]=" true " ></ app-amount ></ td >
2023-03-16 16:13:11 +09:00
< td class = "text-center" > {{ poolStats.estimatedHashrate | amountShortener : 1 : 'H/s' }}</ td >
2023-03-21 16:02:46 +09:00
< td class = "text-center" * ngIf = "auditAvailable; else emptyTd" >< span class = "health-badge badge" [ class . badge-success ]=" poolStats . avgBlockHealth > = 99"
2023-03-16 16:13:11 +09:00
[class.badge-warning]="poolStats.avgBlockHealth >= 75 && poolStats.avgBlockHealth < 99 " [ class . badge-danger ]=" poolStats . avgBlockHealth < 75 "
* ngIf = "poolStats.avgBlockHealth != null; else nullHealth" > {{ poolStats.avgBlockHealth }}%</ span >
< ng-template # nullHealth >
< span class = "health-badge badge badge-secondary" i18n = "unknown" > Unknown</ span >
</ ng-template >
</ td >
2022-04-05 00:36:00 +09:00
</ tbody >
</ table >
</ td >
2022-02-09 19:41:05 +09:00
</ tr >
2022-03-25 17:48:24 +09:00
2024-03-15 07:40:44 +00:00
<!-- Mined blocks -->
< tr [ class . taller-row ]="! isMobile ()" >
< td [ class . data ]="! isMobile ()" [ attr . colspan ]=" isMobile () ? 2 : 1 " >
2022-04-05 00:36:00 +09:00
< table class = "table table-xs table-data" >
< thead >
< tr >
2023-11-25 20:31:29 +09:00
< th scope = "col" class = "data-title text-center" style = "width: 33%" i18n = "24h" > Blocks (24h)</ th >
2023-03-29 15:09:38 +09:00
< th scope = "col" class = "data-title text-center" style = "width: 33%" i18n = "1w" > 1w</ th >
< th scope = "col" class = "data-title text-center" style = "width: 33%" i18n = "all" > All</ th >
2022-04-05 00:36:00 +09:00
</ tr >
</ thead >
< tbody >
2023-03-16 16:13:11 +09:00
< td class = "text-center" > {{ formatNumber(poolStats.blockCount['24h'], this.locale, '1.0-0') }} ({{ formatNumber(100 *
2022-04-06 15:02:24 +09:00
poolStats.blockShare['24h'], this.locale, '1.0-0') }}%)</ td >
2023-03-16 16:13:11 +09:00
< td class = "text-center" > {{ formatNumber(poolStats.blockCount['1w'], this.locale, '1.0-0') }} ({{ formatNumber(100 *
2022-04-06 15:02:24 +09:00
poolStats.blockShare['1w'], this.locale, '1.0-0') }}%)</ td >
2023-03-16 16:13:11 +09:00
< td class = "text-center" > {{ formatNumber(poolStats.blockCount['all'], this.locale, '1.0-0') }} ({{ formatNumber(100 *
2022-04-06 15:02:24 +09:00
poolStats.blockShare['all'], this.locale, '1.0-0') }}%)</ td >
2022-04-05 00:36:00 +09:00
</ tbody >
</ table >
2022-03-25 17:48:24 +09:00
</ td >
</ tr >
2024-03-16 09:16:58 +00:00
<!-- Bid Boost -->
< tr [ class . taller-row ]="! isMobile ()" * ngIf = "(oobFees$ | async) as oob;" >
< td [ class . data ]="! isMobile ()" [ attr . colspan ]=" isMobile () ? 2 : 1 " >
< table class = "table table-xs table-data" >
< thead >
< tr >
2024-03-17 08:00:51 +00:00
< th scope = "col" class = "data-title clip text-center" style = "width: 33%" i18n = "1w" > Out-of-band Fees (1w)</ th >
< th scope = "col" class = "data-title clip text-center" style = "width: 33%" i18n = "1m" > 1m</ th >
< th scope = "col" class = "data-title clip text-center" style = "width: 33%" i18n = "all" > All</ th >
2024-03-16 09:16:58 +00:00
</ tr >
</ thead >
< tbody >
2024-06-26 10:48:17 +09:00
< td * ngFor = "let total of oob" class = "text-center clip" >< app-amount [ satoshis ]=" total . cost " [ digitsInfo ]=" isMobile () ? ' 1 . 2-4 ' : ' 1 . 8-8 '" [ ignoreViewMode ]=" true " ></ app-amount ></ td >
2024-03-16 09:16:58 +00:00
</ tbody >
</ table >
</ td >
</ tr >
2022-02-09 19:41:05 +09:00
</ tbody >
</ table >
</ div >
2022-04-05 00:36:00 +09:00
2022-02-09 19:41:05 +09:00
</ div >
</ div >
</ div >
2022-03-25 17:48:24 +09:00
< ng-template # nodata >
2022-04-05 00:36:00 +09:00
< td class = "taller-row" style = "vertical-align: middle" > ~</ td >
2022-03-25 17:48:24 +09:00
</ ng-template >
< ng-template # nodatamobile >
< div > ~</ div >
</ ng-template >
2022-04-05 00:36:00 +09:00
<!-- Hashrate chart -->
2023-10-18 21:12:51 +00:00
< div class = "chart" * browserOnly echarts [ initOpts ]=" chartInitOptions " [ options ]=" chartOptions " ></ div >
2023-11-02 01:29:55 +00:00
< div class = "text-center loadingGraphs" * ngIf = "!stateService.isBrowser || isLoading" >
2022-03-08 12:50:47 +01:00
< div class = "spinner-border text-light" ></ div >
</ div >
2022-04-05 00:36:00 +09:00
<!-- Blocks list -->
2022-03-25 17:48:24 +09:00
< table class = "table table-borderless" [ alwaysCallback ]=" true " infiniteScroll [ infiniteScrollDistance ]=" 1 . 5 "
[ infiniteScrollUpDistance ]=" 1 . 5 " [ infiniteScrollThrottle ]=" 50 " ( scrolled )=" loadMore ()" >
2022-04-05 00:36:00 +09:00
< ng-container * ngIf = "blocks$ | async as blocks; else skeleton" >
< thead * ngIf = "blocks.length > 0" >
< th class = "height" i18n = "latest-blocks.height" > Height</ th >
< th class = "timestamp" i18n = "latest-blocks.timestamp" > Timestamp</ th >
< th class = "mined" i18n = "latest-blocks.mined" > Mined</ th >
2022-05-10 17:05:07 +04:00
< th class = "coinbase text-left" i18n = "latest-blocks.coinbasetag" > Coinbase tag</ th >
2023-03-16 16:13:11 +09:00
< th * ngIf = "auditAvailable" class = "health text-right" i18n = "latest-blocks.health" > Health</ th >
2022-05-10 17:05:07 +04:00
< th class = "reward text-right" i18n = "latest-blocks.reward" > Reward</ th >
2023-03-16 16:13:11 +09:00
< th * ngIf = "!auditAvailable" class = "fees text-right" i18n = "latest-blocks.fees" > Fees</ th >
2022-05-10 17:05:07 +04:00
< th class = "txs text-right" i18n = "dashboard.txs" > TXs</ th >
2022-04-05 00:36:00 +09:00
< th class = "size" i18n = "latest-blocks.size" > Size</ th >
</ thead >
< tbody [ style ]=" isLoading ? ' opacity: 0 . 75 ' : ''" >
< tr * ngFor = "let block of blocks; let i= index; trackBy: trackByBlock" >
< td class = "height" >
2022-05-27 20:43:14 +02:00
< a [ routerLink ]="['/ block ' | relativeUrl , block . id ]" > {{ block.height }}</ a >
2022-04-05 00:36:00 +09:00
</ td >
< td class = "timestamp" >
2024-11-13 14:43:04 +01:00
< app-timestamp [ customFormat ]="' yyyy-MM-dd HH:mm:ss '" [ unixTime ]=" block . timestamp " [ hideTimeSince ]=" true " ></ app-timestamp >
2022-04-05 00:36:00 +09:00
</ td >
< td class = "mined" >
2024-06-08 23:28:44 +00:00
< app-time kind = "since" [ time ]=" block . timestamp " [ fastRender ]=" true " [ showTooltip ]=" true " ></ app-time >
2022-04-05 00:36:00 +09:00
</ td >
< td class = "coinbase" >
< span class = "badge badge-secondary scriptmessage longer" >
{{ block.extras.coinbaseRaw | hex2ascii }}
</ span >
</ td >
2023-03-16 16:13:11 +09:00
< td * ngIf = "auditAvailable" class = "health text-right" >
< a
class = "health-badge badge"
[ class . badge-success ]=" block . extras . matchRate > = 99"
[class.badge-warning]="block.extras.matchRate >= 75 && block.extras.matchRate < 99 "
[ class . badge-danger ]=" block . extras . matchRate < 75 "
[ routerLink ]=" block . extras . matchRate != null ? ['/ block /' | relativeUrl , block . id ] : null "
[ state ]="{ data: { block: block } }"
* ngIf = "block.extras.matchRate != null; else nullHealth"
> {{ block.extras.matchRate }}%</ a >
< ng-template # nullHealth >
< span class = "health-badge badge badge-secondary" i18n = "unknown" > Unknown</ span >
</ ng-template >
</ td >
2022-04-05 00:36:00 +09:00
< td class = "reward text-right" >
2024-06-26 10:48:17 +09:00
< app-amount [ satoshis ]=" block . extras . reward " digitsInfo = "1.2-2" [ noFiat ]=" true " [ ignoreViewMode ]=" true " ></ app-amount >
2022-04-05 00:36:00 +09:00
</ td >
2023-03-16 16:13:11 +09:00
< td * ngIf = "!auditAvailable" class = "fees text-right" >
2024-06-26 10:48:17 +09:00
< app-amount [ satoshis ]=" block . extras . totalFees " digitsInfo = "1.2-2" [ noFiat ]=" true " [ ignoreViewMode ]=" true " ></ app-amount >
2022-04-05 00:36:00 +09:00
</ td >
< td class = "txs text-right" >
{{ block.tx_count | number }}
</ td >
< td class = "size" >
< div class = "progress" >
< div class = "progress-bar progress-mempool" 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 >
</ ng-container >
2022-03-16 17:00:06 +01:00
< ng-template # skeleton >
2022-04-05 00:36:00 +09:00
< thead >
< th class = "height" i18n = "latest-blocks.height" > Height</ th >
< th class = "timestamp" i18n = "latest-blocks.timestamp" > Timestamp</ th >
< th class = "mined" i18n = "latest-blocks.mined" > Mined</ th >
2022-05-10 17:05:07 +04:00
< th class = "coinbase text-left" i18n = "latest-blocks.coinbasetag" > Coinbase tag</ th >
< th class = "reward text-right" i18n = "latest-blocks.reward" > Reward</ th >
2022-04-05 00:36:00 +09:00
< th class = "fees text-right" i18n = "latest-blocks.fees" > Fees</ th >
2022-05-10 17:05:07 +04:00
< th class = "txs text-right" i18n = "dashboard.txs" > TXs</ th >
2022-04-05 00:36:00 +09:00
< th class = "size" i18n = "latest-blocks.size" > Size</ th >
</ thead >
2022-03-16 17:00:06 +01:00
< tbody >
2022-03-22 17:19:34 +09:00
< tr * ngFor = "let item of [1,2,3,4,5]" >
2022-03-16 17:00:06 +01:00
< td class = "height" >
< span class = "skeleton-loader" ></ span >
</ td >
< td class = "timestamp" >
< span class = "skeleton-loader" ></ span >
</ td >
< td class = "mined" >
< span class = "skeleton-loader" ></ span >
</ td >
2022-03-16 20:10:01 +01:00
< td class = "coinbase" >
< span class = "skeleton-loader" ></ span >
</ td >
2022-03-16 17:00:06 +01:00
< td class = "reward text-right" >
< span class = "skeleton-loader" ></ span >
</ td >
< td class = "fees text-right" >
< span class = "skeleton-loader" ></ span >
</ td >
< td class = "txs text-right" >
< span class = "skeleton-loader" ></ span >
</ td >
2022-03-16 20:10:01 +01:00
< td class = "size text-right" >
2022-03-16 17:00:06 +01:00
< span class = "skeleton-loader" ></ span >
</ td >
</ tr >
</ tbody >
</ ng-template >
2022-02-09 19:41:05 +09:00
</ table >
2022-02-08 18:56:51 +09:00
2022-03-08 18:58:19 +01:00
</ div >
2022-04-05 00:36:00 +09:00
<!-- Main table skeleton -->
2022-03-08 18:58:19 +01:00
< ng-template # loadingMain >
< div >
2022-03-22 17:19:34 +09:00
< div class = "mb-3" style = "display:flex; position: relative" >
< div class = "skeleton-loader mr-3" style = "width: 50px; height: 50px" ></ div >
2022-03-25 17:48:24 +09:00
< h1 class = "m-0 pt-1 pt-md-0" >
< div class = "skeleton-loader" style = "position: absolute; top: 32%; width: 150px; height: 20px" ></ div >
</ h1 >
2022-03-16 20:10:01 +01:00
</ div >
2022-03-08 18:58:19 +01:00
< div class = "box" >
< div class = "row" >
2022-04-05 00:36:00 +09:00
< div class = "col-lg-6" >
< table class = "table table-borderless table-striped taller" style = "table-layout: fixed;" >
2022-03-08 18:58:19 +01:00
< tbody >
2022-03-29 10:52:50 +09:00
<!-- Regexes desktop -->
2022-04-05 00:36:00 +09:00
< tr * ngIf = "!isMobile()" class = "taller-row" >
2022-03-29 10:52:50 +09:00
< td class = "label" i18n = "mining.tags" > Tags</ td >
2022-04-05 00:36:00 +09:00
< td style = "vertical-align: middle" >
2022-03-16 20:10:01 +01:00
< div class = "skeleton-loader" ></ div >
</ td >
</ tr >
2022-03-29 10:52:50 +09:00
<!-- Regexes mobile -->
< tr * ngIf = "isMobile()" >
< td colspan = 2 >
< span class = "label" i18n = "mining.tags" > Tags</ span >
< div class = "overflow-auto" >
2022-03-08 18:58:19 +01:00
< div class = "skeleton-loader" ></ div >
</ div >
</ td >
2022-03-29 10:52:50 +09:00
</ tr >
<!-- Addresses desktop -->
2022-04-05 00:36:00 +09:00
< tr * ngIf = "!isMobile()" class = "taller-row" >
2022-03-29 10:52:50 +09:00
< td class = "label" i18n = "mining.addresses" > Addresses</ td >
2022-04-05 00:36:00 +09:00
< td style = "vertical-align: middle;" >
2022-03-29 10:52:50 +09:00
< div class = "skeleton-loader" ></ div >
2022-04-05 00:36:00 +09:00
< div # collapse = "ngbCollapse" [( ngbCollapse )]=" gfg " >
< div class = "skeleton-loader" ></ div >
</ div >
2022-03-29 10:52:50 +09:00
</ td >
2022-03-08 18:58:19 +01:00
</ tr >
2022-03-29 10:52:50 +09:00
<!-- Addresses mobile -->
< tr * ngIf = "isMobile()" >
< td colspan = 2 >
< span class = "label" i18n = "mining.addresses" > Addresses</ span >
< div >
< div class = "skeleton-loader" ></ div >
2022-04-05 00:36:00 +09:00
< div # collapse = "ngbCollapse" [( ngbCollapse )]=" gfg " style = "width: 100%" >
< div class = "skeleton-loader" ></ div >
</ div >
2022-03-29 10:52:50 +09:00
</ div >
</ td >
</ tr >
2022-03-08 18:58:19 +01:00
</ tbody >
</ table >
</ div >
2022-03-29 10:52:50 +09:00
2022-04-05 00:36:00 +09:00
< div class = "col-lg-6" >
2022-03-25 17:48:24 +09:00
< table class = "table table-borderless table-striped" >
2022-03-08 18:58:19 +01:00
< tbody >
2022-03-29 10:52:50 +09:00
2022-04-05 00:36:00 +09:00
<!-- Hashrate desktop -->
< tr * ngIf = "!isMobile()" class = "taller-row" >
2022-03-29 10:52:50 +09:00
< td class = "data" >
2022-04-05 00:36:00 +09:00
< table class = "table table-xs table-data text-center" >
< thead >
< tr >
2023-03-29 15:09:38 +09:00
< th scope = "col" class = "data-title clip text-center" style = "width: 33%" i18n = "mining.total-reward" > Reward</ th >
< th scope = "col" class = "data-title clip text-center" style = "width: 33%" i18n = "mining.estimated" > Hashrate (24h)</ th >
< th scope = "col" class = "data-title clip text-center" style = "width: 33%" i18n = "mining.luck" * ngIf = "auditAvailable" > Avg Health</ th >
2022-04-05 00:36:00 +09:00
</ tr >
</ thead >
< tbody >
2023-03-16 16:35:59 +09:00
< td class = "text-center" >
2022-04-05 00:36:00 +09:00
< div class = "skeleton-loader data" ></ div >
</ td >
2023-03-16 16:35:59 +09:00
< td class = "text-center" >
2022-04-05 00:36:00 +09:00
< div class = "skeleton-loader data" ></ div >
</ td >
2023-03-21 16:02:46 +09:00
< td class = "text-center" * ngIf = "auditAvailable" >
2022-04-05 00:36:00 +09:00
< div class = "skeleton-loader data" ></ div >
</ td >
</ tbody >
</ table >
2022-03-09 16:30:45 +01:00
</ td >
2022-03-08 18:58:19 +01:00
</ tr >
2022-04-05 00:36:00 +09:00
<!-- Hashrate mobile -->
2022-03-29 10:52:50 +09:00
< tr * ngIf = "isMobile()" >
2022-04-05 00:36:00 +09:00
< td colspan = "2" >
< table class = "table table-xs table-data text-center" >
< thead >
< tr >
2023-03-29 15:09:38 +09:00
< th scope = "col" class = "data-title clip text-center" style = "width: 33%" i18n = "mining.total-reward" > Reward</ th >
< th scope = "col" class = "data-title clip text-center" style = "width: 33%" i18n = "mining.estimated" > Hashrate (24h)</ th >
< th scope = "col" class = "data-title clip text-center" style = "width: 33%" i18n = "mining.luck" * ngIf = "auditAvailable" > Avg Health</ th >
2022-04-05 00:36:00 +09:00
</ tr >
</ thead >
< tbody >
2023-03-16 16:35:59 +09:00
< td class = "text-center" >
2022-04-05 00:36:00 +09:00
< div class = "skeleton-loader data" ></ div >
</ td >
2023-03-16 16:35:59 +09:00
< td class = "text-center" >
2022-04-05 00:36:00 +09:00
< div class = "skeleton-loader data" ></ div >
</ td >
2023-03-21 16:02:46 +09:00
< td class = "text-center" * ngIf = "auditAvailable" >
2022-04-05 00:36:00 +09:00
< div class = "skeleton-loader data" ></ div >
</ td >
</ tbody >
</ table >
2022-03-29 10:52:50 +09:00
</ td >
</ tr >
2022-04-05 00:36:00 +09:00
<!-- Mined blocks desktop -->
< tr * ngIf = "!isMobile()" class = "taller-row" >
2022-03-29 10:52:50 +09:00
< td class = "data" >
2022-04-05 00:36:00 +09:00
< table class = "table table-xs table-data text-center" >
< thead >
< tr >
2023-11-25 20:31:29 +09:00
< th scope = "col" class = "data-title text-center" style = "width: 33%" i18n = "24h" > Blocks (24h)</ th >
2023-03-29 15:09:38 +09:00
< th scope = "col" class = "data-title text-center" style = "width: 33%" i18n = "1w" > 1w</ th >
< th scope = "col" class = "data-title text-center" style = "width: 33%" i18n = "all" > All</ th >
2022-04-05 00:36:00 +09:00
</ tr >
</ thead >
< tbody >
2023-03-16 16:35:59 +09:00
< td class = "text-center" >
2022-04-05 00:36:00 +09:00
< div class = "skeleton-loader data" ></ div >
</ td >
2023-03-16 16:35:59 +09:00
< td class = "text-center" >
2022-04-05 00:36:00 +09:00
< div class = "skeleton-loader data" ></ div >
</ td >
2023-03-16 16:35:59 +09:00
< td class = "text-center" >
2022-04-05 00:36:00 +09:00
< div class = "skeleton-loader data" ></ div >
</ td >
</ tbody >
</ table >
2022-03-09 16:30:45 +01:00
</ td >
2022-03-08 18:58:19 +01:00
</ tr >
2022-04-05 00:36:00 +09:00
<!-- Mined blocks mobile -->
2022-03-29 10:52:50 +09:00
< tr * ngIf = "isMobile()" >
2022-04-05 00:36:00 +09:00
< td colspan = 2 >
< table class = "table table-xs table-data text-center" >
< thead >
< tr >
2023-11-25 20:31:29 +09:00
< th scope = "col" class = "data-title text-center" style = "width: 33%" i18n = "24h" > Blocks (24h)</ th >
2023-03-29 15:09:38 +09:00
< th scope = "col" class = "data-title text-center" style = "width: 33%" i18n = "1w" > 1w</ th >
< th scope = "col" class = "data-title text-center" style = "width: 33%" i18n = "all" > All</ th >
2022-04-05 00:36:00 +09:00
</ tr >
</ thead >
< tbody >
2023-03-16 16:35:59 +09:00
< td class = "text-center" >
2022-04-05 00:36:00 +09:00
< div class = "skeleton-loader data" ></ div >
</ td >
2023-03-16 16:35:59 +09:00
< td class = "text-center" >
2022-04-05 00:36:00 +09:00
< div class = "skeleton-loader data" ></ div >
</ td >
2023-03-16 16:35:59 +09:00
< td class = "text-center" >
2022-04-05 00:36:00 +09:00
< div class = "skeleton-loader data" ></ div >
</ td >
</ tbody >
</ table >
2022-03-29 10:52:50 +09:00
</ td >
</ tr >
2022-03-08 18:58:19 +01:00
</ tbody >
</ table >
</ div >
2022-04-05 00:36:00 +09:00
2022-03-08 18:58:19 +01:00
</ div >
</ div >
</ div >
2023-03-21 16:02:46 +09:00
</ ng-template >
< ng-template # emptyTd >
< td class = "text-center" ></ td >
2024-07-04 19:38:27 +09:00
</ ng-template >
< ng-template # errorTemplate >
< br >
< app-http-error [ error ]=" error " >
< span i18n = "pool.error.loading-pool-data" > Error loading pool data.</ span >
</ app-http-error >
2022-03-08 18:58:19 +01:00
</ ng-template >