Merge pull request #3 from blockworks-foundation/dev
making it compatible with dev branch
This commit is contained in:
commit
e064181ef3
|
@ -19,7 +19,8 @@ def find_block_by_slotnumber(slot_number: int):
|
|||
banking_stage_errors,
|
||||
total_cu_used,
|
||||
total_cu_requested,
|
||||
heavily_writelocked_accounts
|
||||
heavily_writelocked_accounts,
|
||||
heavily_readlocked_accounts
|
||||
FROM banking_stage_results.blocks
|
||||
-- this critera uses index idx_blocks_slot
|
||||
WHERE slot = %s
|
||||
|
@ -35,25 +36,22 @@ def find_block_by_slotnumber(slot_number: int):
|
|||
# format see BankingStageErrorsTrackingSidecar -> block_info.rs
|
||||
# parse (k:GubTBrbgk9JwkwX1FkXvsrF1UC2AP7iTgg8SGtgH14QE, cu_req:600000, cu_con:2243126)
|
||||
|
||||
parsed_accounts = []
|
||||
for acc in row["heavily_writelocked_accounts"]:
|
||||
(k, cu_req, cu_con) = parse_accounts(acc)
|
||||
parsed = {'k': k, 'cu_req': cu_req, 'cu_con': cu_con}
|
||||
parsed_accounts.append(parsed)
|
||||
|
||||
parsed_accounts.sort(key=lambda acc: int(acc['cu_con']), reverse=True)
|
||||
parsed_accounts = json.loads(row["heavily_writelocked_accounts"])
|
||||
parsed_accounts.sort(key=lambda acc: int(acc['cu_consumed']), reverse=True)
|
||||
row["heavily_writelocked_accounts_parsed"] = parsed_accounts
|
||||
|
||||
parsed_accounts = json.loads(row["heavily_readlocked_accounts"])
|
||||
parsed_accounts.sort(key=lambda acc: int(acc['cu_consumed']), reverse=True)
|
||||
row["heavily_readlocked_accounts_parsed"] = parsed_accounts
|
||||
|
||||
return maprows
|
||||
|
||||
|
||||
|
||||
# parse (k:GubTBrbgk9JwkwX1FkXvsrF1UC2AP7iTgg8SGtgH14QE, cu_req:600000, cu_con:2243126)
|
||||
def parse_accounts(acc):
|
||||
groups = re.match(r"\((k:)(?P<k>[a-zA-Z0-9]+)(, cu_req:)(?P<cu_req>[0-9]+)(, cu_con:)(?P<cu_con>[0-9]+)\)", acc)
|
||||
return (groups.group('k'), groups.group('cu_req'), groups.group('cu_con'))
|
||||
|
||||
|
||||
# def parse_accounts(acc):
|
||||
# groups = re.match(r"\((k:)(?P<k>[a-zA-Z0-9]+)(, cu_req:)(?P<cu_req>[0-9]+)(, cu_con:)(?P<cu_con>[0-9]+)\)", acc)
|
||||
# return (groups.group('k'), groups.group('cu_req'), groups.group('cu_con'))
|
||||
|
||||
def main():
|
||||
find_block_by_slotnumber(226352855)
|
||||
|
|
|
@ -12,14 +12,14 @@ def format_width_percentage(x):
|
|||
def calc_figures(row):
|
||||
successful_transactions = row['successful_transactions']
|
||||
processed_transactions = row['processed_transactions']
|
||||
banking_stage_errors = row['banking_stage_errors']
|
||||
banking_stage_errors = row['banking_stage_errors'] or 0
|
||||
txerrors = processed_transactions - successful_transactions
|
||||
row['txerrors'] = txerrors
|
||||
|
||||
def calc_bars(row):
|
||||
successful_transactions = row['successful_transactions']
|
||||
processed_transactions = row['processed_transactions']
|
||||
banking_stage_errors = row['banking_stage_errors']
|
||||
banking_stage_errors = row['banking_stage_errors'] or 0
|
||||
total = processed_transactions + banking_stage_errors
|
||||
if total > 0:
|
||||
row['hide_bar'] = False
|
||||
|
@ -81,6 +81,7 @@ def run_query():
|
|||
|
||||
for row in maprows:
|
||||
calc_bars(row)
|
||||
row['banking_stage_errors'] = row['banking_stage_errors'] or 0
|
||||
calc_figures(row)
|
||||
|
||||
return maprows
|
||||
|
|
|
@ -31,9 +31,9 @@
|
|||
<div class="align-items-center text-truncate" style="width:300px">
|
||||
<span class="font-monospace">
|
||||
{% if tx.is_executed %}
|
||||
<a href="https://explorer.solana.com/tx/{{ tx.signature }}?cluster={{config.cluster}}">{{ tx.signature }}</a>
|
||||
<a href="https://explorer.solana.com/tx/{{tx.signature}}?cluster={{config.cluster}}">{{tx.signature}}</a>
|
||||
{% else %}
|
||||
{{ tx.signature }}
|
||||
{{tx.signature}}
|
||||
{% endif %}
|
||||
</span>
|
||||
</div>
|
||||
|
@ -45,7 +45,22 @@
|
|||
<tr>
|
||||
<td>
|
||||
<span class="font-monospace text-danger">
|
||||
{{ error }}
|
||||
{{error}}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="d-flex align-items-left">
|
||||
<table>
|
||||
{% for account_used in tx.account_used_array %}
|
||||
<tr>
|
||||
<td>
|
||||
<span class="font-monospace text-danger">
|
||||
{{account_used}}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -57,7 +57,8 @@
|
|||
<div class="header">
|
||||
<div class="header-body pt-0">
|
||||
<ul class="nav nav-tabs nav-overflow header-tabs">
|
||||
<li class="nav-item"><a class="active nav-link">Accounts</a></li>
|
||||
<li class="nav-item"><a class="active nav-link">Write locked accounts</a></li>
|
||||
<li class="nav-item"><a class="nav-link">Read locked accounts</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -69,7 +70,7 @@
|
|||
<table class="table table-sm table-nowrap card-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="text-muted">Account</th>
|
||||
<th class="text-muted">s</th>
|
||||
<th class="text-muted">CU requested</th>
|
||||
<th class="text-muted">CU consumed</th>
|
||||
</tr>
|
||||
|
@ -78,17 +79,32 @@
|
|||
{% for write_account in block.heavily_writelocked_accounts_parsed %}
|
||||
<tr>
|
||||
<td>
|
||||
<a href="https://explorer.solana.com/account/{{ write_account.k }}?cluster={{config.cluster}}">
|
||||
<a href="https://explorer.solana.com/account/{{ write_account.key }}?cluster={{config.cluster}}">
|
||||
<div class="d-none d-lg-flex align-items-center "><span class="font-size-tiny me-2"><span
|
||||
class=""></span></span><span
|
||||
class="font-monospace"><span class="">{{write_account.k}}</span></span>
|
||||
class="font-monospace"><span class="">{{write_account.key}}</span></span>
|
||||
</div>
|
||||
</a></td>
|
||||
<td>{{write_account.cu_req}}</td>
|
||||
<td>{{write_account.cu_con}}</td>
|
||||
<td>{{write_account.cu_requested}}</td>
|
||||
<td>{{write_account.cu_consumed}}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
<!-- <tbody>
|
||||
{% for read_account in block.heavily_readlocked_accounts_parsed %}
|
||||
<tr>
|
||||
<td>
|
||||
<a href="https://explorer.solana.com/account/{{ read_account.k }}?cluster={{config.cluster}}">
|
||||
<div class="d-none d-lg-flex align-items-center "><span class="font-size-tiny me-2"><span
|
||||
class=""></span></span><span
|
||||
class="font-monospace"><span class="">{{read_account.key}}</span></span>
|
||||
</div>
|
||||
</a></td>
|
||||
<td>{{read_account.cu_requested}}</td>
|
||||
<td>{{read_account.cu_consumed}}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody> -->
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import postgres_connection
|
||||
|
||||
import json
|
||||
|
||||
def run_query():
|
||||
con = postgres_connection.create_connection()
|
||||
|
@ -9,7 +9,6 @@ def run_query():
|
|||
SELECT * FROM (
|
||||
SELECT
|
||||
signature,
|
||||
message,
|
||||
errors,
|
||||
is_executed,
|
||||
is_confirmed,
|
||||
|
@ -37,8 +36,8 @@ def run_query():
|
|||
|
||||
for index, row in enumerate(maprows):
|
||||
row['pos'] = index + 1
|
||||
# note: type changed from 'text' to 'text[]'
|
||||
row['errors_array'] = row['errors']
|
||||
row['errors_array'] = json.loads(row['errors'])
|
||||
row['accounts_used_array'] = json.loads(row['accounts_used'])
|
||||
|
||||
return maprows
|
||||
|
||||
|
@ -52,7 +51,6 @@ def find_transaction_by_sig(tx_sig: str):
|
|||
SELECT * FROM (
|
||||
SELECT
|
||||
signature,
|
||||
message,
|
||||
errors,
|
||||
is_executed,
|
||||
is_confirmed,
|
||||
|
@ -74,8 +72,8 @@ def find_transaction_by_sig(tx_sig: str):
|
|||
assert len(maprows) <= 1, "Tx Sig is primary key - find zero or one"
|
||||
|
||||
for row in maprows:
|
||||
# note: type changed from 'text' to 'text[]'
|
||||
row['errors_array'] = row['errors']
|
||||
row['errors_array'] = json.loads(row['errors'])
|
||||
row['accounts_used_array'] = json.loads(row['accounts_used'])
|
||||
|
||||
return maprows
|
||||
|
||||
|
|
Loading…
Reference in New Issue