diff --git a/electrum/gui/qml/qetxdetails.py b/electrum/gui/qml/qetxdetails.py index da39edff5..1cc469f04 100644 --- a/electrum/gui/qml/qetxdetails.py +++ b/electrum/gui/qml/qetxdetails.py @@ -509,5 +509,7 @@ class QETxDetails(QObject, QtEventListener): @pyqtSlot(result='QVariantList') def getSerializedTx(self): txqr = self._tx.to_qr_data() - label = self._wallet.wallet.get_label_for_txid(self._tx.txid()) + label = "" + if txid := self._tx.txid(): + label = self._wallet.wallet.get_label_for_txid(txid) return [str(self._tx), txqr[0], txqr[1], label] diff --git a/electrum/gui/qml/qetxfinalizer.py b/electrum/gui/qml/qetxfinalizer.py index 107ca52eb..bafe4a6c4 100644 --- a/electrum/gui/qml/qetxfinalizer.py +++ b/electrum/gui/qml/qetxfinalizer.py @@ -495,7 +495,9 @@ class QETxFinalizer(TxFeeSlider): @pyqtSlot(result='QVariantList') def getSerializedTx(self): txqr = self._tx.to_qr_data() - label = self._wallet.wallet.get_label_for_txid(self._tx.txid()) + label = "" + if txid := self._tx.txid(): + label = self._wallet.wallet.get_label_for_txid(txid) return [str(self._tx), txqr[0], txqr[1], label] diff --git a/electrum/gui/qt/history_list.py b/electrum/gui/qt/history_list.py index 487413393..390a78d1d 100644 --- a/electrum/gui/qt/history_list.py +++ b/electrum/gui/qt/history_list.py @@ -256,7 +256,8 @@ class HistoryModel(CustomModel, Logger): def update_label(self, index): tx_item = index.internalPointer().get_data() - tx_item['label'] = self.window.wallet.get_label_for_txid(get_item_key(tx_item)) + tx_item['label'] = self.window.wallet.get_label_for_txid( + get_item_key(tx_item)) # FIXME get_item_key might return an RHASH, but we call get_label_for_txid?! topLeft = bottomRight = self.createIndex(index.row(), HistoryColumns.DESCRIPTION) self.dataChanged.emit(topLeft, bottomRight, [Qt.ItemDataRole.DisplayRole]) self.window.utxo_list.update() diff --git a/electrum/wallet.py b/electrum/wallet.py index 9c8c46d05..178540f94 100644 --- a/electrum/wallet.py +++ b/electrum/wallet.py @@ -1683,7 +1683,8 @@ class Abstract_Wallet(ABC, Logger, EventListener): self._default_labels['group:' + group_id] = label def get_label_for_txid(self, tx_hash: str) -> str: - return self._labels.get(tx_hash) or self._get_default_label_for_txid(tx_hash) + assert tx_hash, f"expected a txid, got {tx_hash!r}" + return self._labels.get(tx_hash) or self._get_default_label_for_txid(tx_hash) or "" def _get_default_label_for_txid(self, tx_hash: str) -> str: if label := self._default_labels.get(tx_hash):