Browse Source

privacy analysis: add warning about tx downstream of address reuse

master
ThomasV 3 years ago
parent
commit
303ad02d17
  1. 9
      electrum/gui/qt/utxo_dialog.py
  2. 2
      electrum/gui/qt/utxo_list.py

9
electrum/gui/qt/utxo_dialog.py

@ -84,6 +84,7 @@ class UTXODialog(WindowModalDialog):
ASCII_PIPE = ''
ASCII_SPACE = ' '
self.num_reuse = 0
def print_ascii_tree(_txid, prefix, is_last, is_uncle):
if _txid not in parents:
return
@ -95,6 +96,7 @@ class UTXODialog(WindowModalDialog):
c = '' if _txid == txid else (ASCII_EDGE if is_last else ASCII_BRANCH)
cursor.insertText(prefix + c, ext)
if is_uncle:
self.num_reuse += 1
lnk = QTextCharFormat(self.txo_color_uncle.text_char_format)
else:
lnk = QTextCharFormat(self.txo_color_parent.text_char_format)
@ -119,7 +121,10 @@ class UTXODialog(WindowModalDialog):
vbox = QVBoxLayout()
vbox.addWidget(QLabel(_("Output point") + ": " + str(self.utxo.short_id)))
vbox.addWidget(QLabel(_("Amount") + ": " + self.main_window.format_amount_and_units(self.utxo.value_sats())))
vbox.addWidget(QLabel(_("This UTXO has {} parent transactions in your wallet").format(num_parents)))
msg = _("This UTXO has {} parent transactions in your wallet.").format(num_parents)
if self.num_reuse:
msg += '\n' + _('This does not include transactions that are downstream of address reuse.')
vbox.addWidget(WWLabel(msg))
vbox.addWidget(self.parents_list)
legend_hbox = QHBoxLayout()
legend_hbox.setContentsMargins(0, 0, 0, 0)
@ -128,7 +133,7 @@ class UTXODialog(WindowModalDialog):
legend_hbox.addWidget(self.txo_color_uncle.legend_label)
vbox.addLayout(legend_hbox)
self.txo_color_parent.legend_label.setVisible(True)
self.txo_color_uncle.legend_label.setVisible(True)
self.txo_color_uncle.legend_label.setVisible(bool(self.num_reuse))
vbox.addLayout(Buttons(CloseButton(self)))
self.setLayout(vbox)
# set cursor to top

2
electrum/gui/qt/utxo_list.py

@ -262,7 +262,7 @@ class UTXOList(MyTreeView):
tx = self.wallet.adb.get_transaction(txid)
if tx:
label = self.wallet.get_label_for_txid(txid)
menu.addAction(_("View parents"), lambda: self.parent.show_utxo(utxo))
menu.addAction(_("Privacy analysis"), lambda: self.parent.show_utxo(utxo))
# fully spend
menu_spend = menu.addMenu(_("Fully spend") + '')
m = menu_spend.addAction(_("send to address in clipboard"), lambda: self.pay_to_clipboard_address(coins))

Loading…
Cancel
Save