diff --git a/src/sakia/data/processors/dividends.py b/src/sakia/data/processors/dividends.py index da4fcf9a6da93b09edd003cb5e4c22a60a52ed07..578dc6d850ada2d3fd28fd59e39399af2cd33ad8 100644 --- a/src/sakia/data/processors/dividends.py +++ b/src/sakia/data/processors/dividends.py @@ -43,6 +43,7 @@ class DividendsProcessor: history_data = await self._bma_connector.get(identity.currency, bma.ud.history, req_args={'pubkey': identity.pubkey}) log_stream("Found {0} available dividends".format(len(history_data["history"]["history"]))) + block_numbers = [] for ud_data in history_data["history"]["history"]: dividend = Dividend(currency=identity.currency, pubkey=identity.pubkey, @@ -51,6 +52,7 @@ class DividendsProcessor: amount=ud_data["amount"], base=ud_data["base"]) log_stream("Dividend of block {0}".format(dividend.block_number)) + block_numbers.append(dividend.block_number) try: self._repo.insert(dividend) except sqlite3.IntegrityError: @@ -59,11 +61,10 @@ class DividendsProcessor: for tx in transactions: txdoc = Transaction.from_signed_raw(tx.raw) for input in txdoc.inputs: - if input.source == "D": + if input.source == "D" and input.index not in block_numbers: block = await self._bma_connector.get(identity.currency, bma.blockchain.block, req_args={'number': input.index}) - if input.amount == 0: - pass + dividend = Dividend(currency=identity.currency, pubkey=identity.pubkey, block_number=input.index, diff --git a/src/sakia/gui/navigation/txhistory/table_model.py b/src/sakia/gui/navigation/txhistory/table_model.py index 26b2b347a949f9055cfdef19f39f806a053b4f0f..5c75248a7925944cb8d56d83d9657ae2e09e6bea 100644 --- a/src/sakia/gui/navigation/txhistory/table_model.py +++ b/src/sakia/gui/navigation/txhistory/table_model.py @@ -141,6 +141,8 @@ class TxFilterProxyModel(QSortFilterProxyModel): if source_index.column() == model.columns_types.index('amount'): if source_data < 0: return QColor(Qt.darkRed) + elif state_data == HistoryTableModel.DIVIDEND: + return QColor(Qt.darkBlue) if role == Qt.TextAlignmentRole: if self.sourceModel().columns_types.index('amount'): @@ -171,6 +173,8 @@ class HistoryTableModel(QAbstractTableModel): A Qt abstract item model to display communities in a tree """ + DIVIDEND = 32 + def __init__(self, parent, app, connection, identities_service, transactions_service): """ History of all transactions @@ -299,7 +303,7 @@ class HistoryTableModel(QAbstractTableModel): receiver = dividend.pubkey date_ts = dividend.timestamp - return (date_ts, receiver, amount, "", Transaction.VALIDATED, 0, + return (date_ts, receiver, amount, "", HistoryTableModel.DIVIDEND, 0, receiver, block_number, "") def init_transfers(self):