From 10baa721238f50cf9ef947912da607efa41e5407 Mon Sep 17 00:00:00 2001 From: Inso <insomniak.fr@gmail.com> Date: Sat, 12 Sep 2015 23:14:46 +0200 Subject: [PATCH] Check if block doc is correct --- res/ui/transactions_tab.ui | 2 +- src/cutecoin/core/txhistory.py | 25 +++++++++++++++---------- src/cutecoin/gui/transactions_tab.py | 9 +++++++++ 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/res/ui/transactions_tab.ui b/res/ui/transactions_tab.ui index b459a695..5f7bf372 100644 --- a/res/ui/transactions_tab.ui +++ b/res/ui/transactions_tab.ui @@ -15,7 +15,7 @@ </property> <layout class="QVBoxLayout" name="verticalLayout"> <item> - <widget class="QGroupBox" name="groupBox_2"> + <widget class="QGroupBox" name="groupbox_balance"> <property name="title"> <string>Balance</string> </property> diff --git a/src/cutecoin/core/txhistory.py b/src/cutecoin/core/txhistory.py index e959a3ec..55e52e43 100644 --- a/src/cutecoin/core/txhistory.py +++ b/src/cutecoin/core/txhistory.py @@ -163,16 +163,21 @@ class TxHistory(): @asyncio.coroutine def _parse_block(self, community, block_number, received_list, current_block, txmax): - block = yield from community.bma_access.future_request(qtbma.blockchain.Block, - req_args={'number': block_number}) - signed_raw = "{0}{1}\n".format(block['raw'], - block['signature']) - transfers = [] - try: - block_doc = Block.from_signed_raw(signed_raw) - except: - logging.debug("Error in {0}".format(block_number)) - raise + block = None + tries = 0 + while block is None and tries < 3: + block = yield from community.bma_access.future_request(qtbma.blockchain.Block, + req_args={'number': block_number}) + signed_raw = "{0}{1}\n".format(block['raw'], + block['signature']) + transfers = [] + try: + block_doc = Block.from_signed_raw(signed_raw) + except: + logging.debug("Error in {0}".format(block_number)) + block = None + tries += 1 + for (txid, tx) in enumerate(block_doc.transactions): transfer = yield from self._parse_transaction(community, tx, block_number, block_doc.mediantime, received_list, diff --git a/src/cutecoin/gui/transactions_tab.py b/src/cutecoin/gui/transactions_tab.py index d2f2e715..64844bf9 100644 --- a/src/cutecoin/gui/transactions_tab.py +++ b/src/cutecoin/gui/transactions_tab.py @@ -14,6 +14,7 @@ from ..core.registry import Identity from ..tools.decorators import asyncify, once_at_a_time, cancel_once_task from .transfer import TransferMoneyDialog from . import toast +from .busy import Busy import logging import asyncio @@ -39,6 +40,8 @@ class TransactionsTabWidget(QWidget, Ui_transactionsTabWidget): self.account = None self.community = None self.password_asker = None + self.busy_balance = Busy(self.groupbox_balance) + self.busy_balance.hide() ts_from = self.date_from.dateTime().toTime_t() ts_to = self.date_to.dateTime().toTime_t() @@ -127,6 +130,7 @@ class TransactionsTabWidget(QWidget, Ui_transactionsTabWidget): @asyncify @asyncio.coroutine def refresh_balance(self): + self.busy_balance.show() amount = yield from self.app.current_account.amount(self.community) localized_amount = yield from self.app.current_account.current_ref(amount, self.community, self.app).localized(units=True, @@ -139,6 +143,7 @@ class TransactionsTabWidget(QWidget, Ui_transactionsTabWidget): localized_amount ) ) + self.busy_balance.hide() @once_at_a_time @asyncify @@ -294,6 +299,10 @@ QMessageBox.Ok | QMessageBox.Cancel) self.refresh_balance() + def resizeEvent(self, event): + self.busy_balance.resize(event.size()) + super().resizeEvent(event) + def changeEvent(self, event): """ Intercepte LanguageChange event to translate UI -- GitLab