Merge pull request #3 from blockworks-foundation/dev

making it compatible with dev branch
This commit is contained in:
Groovie | Mango 2023-11-24 16:33:24 +01:00 committed by GitHub
commit e064181ef3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 59 additions and 31 deletions

View File

@ -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)

View File

@ -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

View File

@ -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>

View File

@ -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>

View File

@ -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