From 587baa1532334e6d5a9d85d9368c4d48aa594e06 Mon Sep 17 00:00:00 2001 From: "alexey.stratulat" <alexey.stratulat@demlabs.net> Date: Mon, 4 Jul 2022 17:45:05 +0600 Subject: [PATCH] [*] Fixed sorting of elements from old to new, it was done using the new API python-cellframe. --- workBlock.py | 43 ++++++--------------------------------- workDag.py | 43 ++++++--------------------------------- workTx.py | 57 +++++----------------------------------------------- 3 files changed, 17 insertions(+), 126 deletions(-) diff --git a/workBlock.py b/workBlock.py index e5d169e..0488c71 100644 --- a/workBlock.py +++ b/workBlock.py @@ -78,45 +78,14 @@ def list_block(net, chain_name): def list_block_offset_reverse(net, chain_name, count, page): - max_element = common.count_atom(net, chain_name) - if max_element <= count: - res = list_block_offset(net, chain_name, count, page) - if res.get('blocks', None) is None: - return res - res['blocks'] = list(reversed(res['blocks'])) - return res - page_end = math.ceil(max_element / count) - if page == 1 or page == 0: - res = list_block_offset(net, chain_name, count, page_end) - if res.get('blocks', None) is None: - return res - res['blocks'] = list(reversed(res['blocks'])) - if len(res['blocks']) == count or page_end - 1 < 1: - return res - else: - delta = count - len(res['blocks']) - priv_page = list_block_offset(net, chain_name, count, page_end - 1) - for i in range(len(priv_page['blocks']) - 1, len(priv_page['blocks']) - delta - 1, -1): - res['blocks'].append(priv_page['blocks'][i]) - return res - else: - tpage = page_end - page - res = list_block_offset(net, chain_name, count, tpage) - if res.get('blocks', None) is None: - return res - delta = (page_end * count) - max_element - del res['blocks'][0: delta] - res['blocks'] = list(reversed(res['blocks'])) - if tpage - 1 <= 1: - return res - tpage2 = list_block_offset(net, chain_name, count, tpage - 1) - del tpage2['blocks'][0:len(tpage2['blocks']) - delta] - for el in tpage2['blocks']: - res['blocks'].insert(0, el) + res = list_block_offset(net, chain_name, count, page, False) + if res.get('blocks', None) is None: return res + res['blocks'].reverse() + return res -def list_block_offset(net, chain_name, count, page): +def list_block_offset(net, chain_name, count, page, reverse = True): chain_net = Net.byName(net) chain = chain_net.getChainByName(chain_name) if chain is None: @@ -126,7 +95,7 @@ def list_block_offset(net, chain_name, count, page): "msg": "Failed to get chain named " + chain_name + "." } } - atoms = chain.getAtoms(count, page) + atoms = chain.getAtoms(count, page, reverse) if atoms is None: return { "error": diff --git a/workDag.py b/workDag.py index 8c3e8dd..39562fd 100644 --- a/workDag.py +++ b/workDag.py @@ -80,45 +80,14 @@ def list_dag(net, chain): def list_dag_offset_reverse(net, chain_name, count, page): - max_element = common.count_atom(net, chain_name) - if max_element <= count: - res = list_dag_offset(net, chain_name, count, page) - if res.get('events', None) is None: - return res - res['events'] = list(reversed(res['events'])) - return res - page_end = math.ceil(max_element / count) - if page == 1 or page == 0: - res = list_dag_offset(net, chain_name, count, page_end) - if res.get('events', None) is None: - return res - res['events'] = list(reversed(res['events'])) - if len(res['events']) == count or page_end - 1 < 1: - return res - else: - delta = count - len(res['events']) - priv_page = list_dag_offset(net, chain_name, count, page_end - 1) - for i in range(len(priv_page['events']) - 1, len(priv_page['events']) - delta - 1, -1): - res['events'].append(priv_page['events'][i]) - return res - else: - tpage = page_end - page - res = list_dag_offset(net, chain_name, count, tpage) - if res.get('events', None) is None: - return res - delta = (page_end * count) - max_element - del res['events'][0:delta] - res['events'] = list(reversed(res['events'])) - if tpage - 1 <= 1: - return res - tpage2 = list_dag_offset(net, chain_name, count, tpage - 1) - del tpage2['events'][0:len(tpage2['events']) - delta] - for el in tpage2['events']: - res['events'].insert(0, el) + res = list_dag_offset(net, chain_name, count, page, False) + if res.get('events', None) is None: return res + res['events'].reverse() + return res -def list_dag_offset(net, chain_name, count, page): +def list_dag_offset(net, chain_name, count, page, reverse = True): chain_net = Net.byName(net) chain = chain_net.getChainByName(chain_name) if chain is None: @@ -128,7 +97,7 @@ def list_dag_offset(net, chain_name, count, page): "msg": "Failed to get chain named " + chain_name + "." } } - atoms = chain.getAtoms(count, page) + atoms = chain.getAtoms(count, page, reverse) if atoms is None: return { "error": diff --git a/workTx.py b/workTx.py index bdd03e5..1d5a674 100644 --- a/workTx.py +++ b/workTx.py @@ -20,7 +20,7 @@ def http_handler_list(args): if reverse is None: tx_list = list_tx(net, int(count), None, int(page)) else: - tx_list = list_tx_reverse(net, int(count), int(page)) + tx_list = list_tx(net, int(count), True, int(page)) ret_str = json.dumps({'transactions': tx_list}) return ret_str @@ -77,64 +77,17 @@ def http_handler_tx_list_mempool(args): return json.dumps({'transactions': transactions}) -def list_tx_reverse(net, count, page=1): - chain_net = Net.byName(net) - ledger = chain_net.getLedger() - max_element = ledger.countFromTo() - if max_element <= count: - res = list_tx(net, count, None, page) - if res.get('transactions', None) is None: - return res - res['transactions'] = list(reversed(res['transactions'])) - return res - page_end = math.ceil(max_element / count) - if page == 1 or page == 0: - res = list_tx(net, count, None, page_end) - if res.get('transactions', None) is None: - return res - res['transactions'] = list(reversed(res['transactions'])) - if len(res['transactions']) == count or page_end - 1 < 1: - return res - else: - delta = count - len(res['transactions']) - priv_page = list_tx(net, count, None, page_end - 1) - for i in range(len(priv_page['transactions']) - 1, len(priv_page['transactions']) - delta - 1, -1): - res['transactions'].append(priv_page['transactions'][i]) - return res - else: - tpage = page_end - page - res = list_tx(net, count, None, tpage) - if res.get('transactions', None) is None: - return res - delta = (page_end * count) - max_element - del res['transactions'][0:delta] - if tpage - 1 <= 1: - return res - tpage2 = list_tx(net, count, None, tpage - 1) - del tpage2['transactions'][0:len(tpage2['transactions']) - delta] - for el in tpage2['transactions']: - res['transactions'].insert(0, el) - return res - - def list_tx(net, count, reverse, page=1, ): chain_net = Net.byName(net) ledger = chain_net.getLedger() transactions = [] if reverse == None: - datums_tx = ledger.getTransactions(count, page) + datums_tx = ledger.getTransactions(count, page, True) else: - count_tx = ledger.countFromTo() - page = count_tx // 100 + 2 - page - datums_tx = ledger.getTransactions(count, page) - page = page - 1 - count = count - len(datums_tx) - if count != 0: - datums_tx2 = ledger.getTransactions(count, page) - datums_tx.extend(datums_tx2) - else: - datums_tx = datums_tx + datums_tx = ledger.getTransactions(count, page, False) + if datums_tx is None: + return {"error":{"code":22, "msg":"Failed to get transactions from the specified page."}} for datum_tx in datums_tx: obj_tx = info(datum_tx, chain_net, isToken=True) transactions.append(obj_tx) -- GitLab