diff --git a/lib/ucoinpy/documents/block.py b/lib/ucoinpy/documents/block.py index 6a023cd6f383908cb087ea57a2abf593e97ea10a..64c3a7c7f87904cba0e4eb4cc593e01cd607adba 100644 --- a/lib/ucoinpy/documents/block.py +++ b/lib/ucoinpy/documents/block.py @@ -224,7 +224,7 @@ BOTTOM_SIGNATURE for i in range(n, tx_max): tx_lines += lines[n] n = n + 1 - transaction = Transaction.from_compact(version, tx_lines) + transaction = Transaction.from_compact(currency, tx_lines) transactions.append(transaction) signature = Block.re_signature.match(lines[n]).group(1) diff --git a/src/cutecoin/core/transfer.py b/src/cutecoin/core/transfer.py index 7718396c8d06d864c50c5256102f6b8dae9a446a..313247e4d15f029e269cec84cfc805eee78ca8d1 100644 --- a/src/cutecoin/core/transfer.py +++ b/src/cutecoin/core/transfer.py @@ -28,10 +28,14 @@ class Transfer(object): self.metadata = metadata @classmethod - def initiate(cls, txdoc, block, amount): + def initiate(cls, txdoc, block, time, amount): + receivers = [o.pubkey for o in txdoc.outputs + if o.pubkey != txdoc.issuers[0]] return cls(txdoc, Transfer.TO_SEND, {'block': block, + 'time': time, 'amount': amount, - 'issuer': txdoc.issuers[0]}) + 'issuer': txdoc.issuers[0], + 'receiver': receivers[0]}) @classmethod def create_validated(cls, txdoc, metadata): @@ -57,7 +61,7 @@ class Transfer(object): self.state = Transfer.REFUSED raise finally: - self.metadata['block'] = community.current_blockid['number'] + self.metadata['block'] = community.current_blockid()['number'] self.metadata['time'] = community.get_block().time def check_registered(self, tx, metadata): diff --git a/src/cutecoin/core/wallet.py b/src/cutecoin/core/wallet.py index d30607c182b2a5d134efdb74722ce0e8731542d3..692582519e9437a46266356c59429c6fcab7b651 100644 --- a/src/cutecoin/core/wallet.py +++ b/src/cutecoin/core/wallet.py @@ -103,8 +103,10 @@ class Cache(): awaiting = [t for t in self._transfers if t.state == Transfer.AWAITING] - awaiting_docs = [t.txdoc for t in awaiting] - if tx not in awaiting_docs: + awaiting_docs = [t.txdoc.signed_raw() for t in awaiting] + logging.debug(tx.signed_raw()) + logging.debug(awaiting_docs) + if tx.signed_raw() not in awaiting_docs: transfer = Transfer.create_validated(tx, metadata) self._transfers.append(transfer) for transfer in awaiting: @@ -259,8 +261,9 @@ class Wallet(object): block_number = community.current_blockid()['number'] - transfer = Transfer.initiate(tx, block_number, amount) - transfer.send() + time = community.get_block().time + transfer = Transfer.initiate(tx, block_number, time, amount) + transfer.send(community) self.caches[community.currency]._transfers.append(transfer) def sources(self, community): diff --git a/src/cutecoin/gui/mainwindow.py b/src/cutecoin/gui/mainwindow.py index 7258f4839920b22ff3959aeb9273e9f3d5a4802c..bf8028331990f3657ce45869d949713b4e266e63 100644 --- a/src/cutecoin/gui/mainwindow.py +++ b/src/cutecoin/gui/mainwindow.py @@ -140,9 +140,11 @@ class MainWindow(QMainWindow, Ui_MainWindow): dialog.accepted.connect(self.refresh_wallets) dialog.exec_() currency_tab = self.currencies_tabwidget.currentWidget() - currency_tab.table_history.model().dataChanged.emit( + '''currency_tab.table_history.model().sourceModel().dataChanged.emit( QModelIndex(), QModelIndex(), ()) + ''' + currency_tab.table_history.model().invalidate() def open_certification_dialog(self): dialog = CertificationDialog(self.app.current_account, diff --git a/src/cutecoin/gui/transfer.py b/src/cutecoin/gui/transfer.py index 344a7d13de1a4005da7a52e856a1c91be7b7b4a9..c0e2333e102e69db75b544149ed8a5e5ea60eaaf 100644 --- a/src/cutecoin/gui/transfer.py +++ b/src/cutecoin/gui/transfer.py @@ -105,7 +105,10 @@ class TransferMoneyDialog(QDialog, Ui_TransferMoneyDialog): def change_current_community(self, index): self.community = self.sender.communities[index] self.dividend = self.community.dividend() - self.label_total.setText(self.wallet.get_text(self.community)) + amount = self.wallet.value(self.community) + ref_amount = self.sender.units_to_ref(amount, self.community) + ref_name = self.sender.ref_name(self.community.currency) + self.label_total.setText("{0} {1}".format(ref_amount, ref_name)) self.spinbox_amount.setSuffix(" " + self.community.currency) self.spinbox_amount.setValue(0) amount = self.wallet.value(self.community) @@ -115,7 +118,10 @@ class TransferMoneyDialog(QDialog, Ui_TransferMoneyDialog): def change_displayed_wallet(self, index): self.wallet = self.sender.wallets[index] - self.label_total.setText(self.wallet.get_text(self.community)) + amount = self.wallet.value(self.community) + ref_amount = self.sender.units_to_ref(amount, self.community) + ref_name = self.sender.ref_name(self.community.currency) + self.label_total.setText("{0} {1}".format(ref_amount, ref_name)) self.spinbox_amount.setValue(0) amount = self.wallet.value(self.community) relative = amount / self.dividend diff --git a/src/cutecoin/models/txhistory.py b/src/cutecoin/models/txhistory.py index 6e01cd053f3e88dabb03cca1aeefe5ecf25fa8ff..2b48c869fb7365a50e5a67dc16cf880074754432 100644 --- a/src/cutecoin/models/txhistory.py +++ b/src/cutecoin/models/txhistory.py @@ -73,7 +73,10 @@ class HistoryTableModel(QAbstractTableModel): self.account = account self.community = community self.columns = ('Date', 'UID/Public key', 'Payment', 'Deposit', 'Comment') - self.transfers = self.account.transfers(community) + + @property + def transfers(self): + return self.account.transfers(self.community) def rowCount(self, parent): return len(self.transfers)