solana-bankingstage-dashboard/templates/_blockslist.html

129 lines
5.6 KiB
HTML

<!-- note: this fragment gets used on recent-blocks and search page -->
<table id="blockslist" class="table table-sm table-nowrap card-table">
<thead>
<tr>
<th class="text-muted"></th>
<th class="text-muted"></th>
<th class="text-muted"></th>
<th colspan="3" class="text-center text-muted">Txs in block</th>
<th colspan="4" class="text-muted text-center">Block Prioritization Fees</th>
</tr>
<tr>
<th class="text-muted">Slot #</th>
<th class="text-muted">Block content (lin scale)</th>
<th class="text-muted">Block fill ratio</th>
<th class="text-muted text-end table-cell-width-number">processed</th>
<th class="text-muted text-end table-cell-width-number">error</th>
<th class="text-muted text-end table-cell-width-number">banking stage</th>
<th class="text-muted text-end table-cell-width-number">min</th>
<th class="text-muted text-end table-cell-width-number">median</th>
<th class="text-muted text-end table-cell-width-number">p90</th>
<th class="text-muted text-end table-cell-width-number">max</th>
</tr>
</thead>
<tbody class="list text-primary">
{% for block in blocks %}
<tr>
<td>
<span class="text-primary">
<a hx-boost="true" href="/block/{{ block.slot }}">{{ block.slot | slotnumber }}</a>
</span>
</td>
<td>
<div style="width:20em">
{% if not block.hide_bar %}
<div class="progress">
<div class="progress-bar bg-info" role="progressbar" style="width:{{ block.bar_success_scaled }}">
<span class="overflow-hidden">{{ block.bar_success }}</span>
</div>
<div class="progress-bar bg-warning" role="progressbar" style="width:{{ block.bar_txerror_scaled }}">
<span class="overflow-hidden">{{ block.bar_txerror }}</span>
</div>
<div class="progress-bar bg-danger" role="progressbar" style="width:{{ block.bar_bankingerror_scaled }}">
<span class="overflow-hidden">{{ block.bar_bankingerror }}</span>
</div>
</div>
<!-- {{ block.bar_success }} / {{ block.bar_txerror }} / {{ block.bar_bankingerror }} -->
{% else %}
<div class="progress">
<div class="progress-bar" role="progressbar" style="width: 0%"></div>
</div>
{% endif %}
</div>
</td>
<td>
<div style="width:20em">
<div class="progress">
<div class="progress-bar bg-info-soft" role="progressbar" style="width:{{ block.bar_cu_consumed }}">
<span class="overflow-hidden">{{ block.total_cu_used_mn }}</span>
</div>
<div class="progress-bar bg-secondary" role="progressbar" style="width:{{ block.bar_cu_unused }}">
<span class="overflow-hidden">{{ block.bar_cu_unused }}</span>
</div>
</div>
</div>
</td>
<td class="text-end">
<div class="font-monospace">
<span class="" style="display:inline-block; min-width:9em">
<span class="text-primary">proc:{{ block.processed_transactions }}</span>
</span>
</div>
</td>
<td class="text-end">
<div class="font-monospace">
<span class="" style="display:inline-block; min-width:6em">
{% if block.txerrors > 0 %}
<span class="text-warning">fail:{{ block.txerrors }}</span>
{% else %}
<span class="text-secondary">fail:0</span>
{% endif %}
</span>
</div>
</td>
<td class="text-end">
<div class="font-monospace">
<span class="" style="display:inline-block; min-width:6em">
{% if block.banking_stage_errors > 0 %}
<span class="text-danger">bank:{{ block.banking_stage_errors }}</span>
{% else %}
<span class="text-secondary">bank:0</span>
{% endif %}
</span>
</div>
</td>
<td class="text-end">
<div class="font-monospace text-primary">
{{ block.prioritization_fees.p_min | lamports }}
</div>
</td>
<td class="text-end">
<div class="font-monospace text-primary">
{{ block.prioritization_fees.med_cu }}
</div>
</td>
<td class="text-end">
<div class="font-monospace text-primary">
{{ block.prioritization_fees.p90_cu }}
</div>
</td>
<td class="text-end">
<div class="font-monospace text-primary">
{{ block.prioritization_fees.p_max | lamports }}
</div>
</td>
</tr>
{% endfor %}
</tbody>
</table>