diff --git a/workBlock.py b/workBlock.py index e5d169e5b89d80ab068c5d94e565a066bc58c625..0488c71b5addae1f8e7f159f1d9a30b9b5d34cc2 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 8c3e8dd35b2cb9b83692d87e56fa15bd4e512541..39562fdf02da46b6e558adc0ea97331327ac80d7 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 bdd03e55967cab50820728f7a40fb11784e77302..1d5a674f3fa3e19378e10f08261f25cbb8c5fbea 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)