diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py index 047d12b1..9055cf96 100644 --- a/gui/qt/main_window.py +++ b/gui/qt/main_window.py @@ -2244,9 +2244,10 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): def tx_from_text(self, txt): - from electrum.transaction import tx_from_str + from electrum.transaction import tx_from_str, Transaction try: - return tx_from_str(txt) + tx = tx_from_str(txt) + return Transaction(tx) except: traceback.print_exc(file=sys.stdout) self.show_critical(_("Electrum was unable to parse your transaction")) diff --git a/lib/commands.py b/lib/commands.py index 776b1c79..13a11985 100644 --- a/lib/commands.py +++ b/lib/commands.py @@ -216,6 +216,7 @@ class Commands: @command('wp') def signtransaction(self, tx, privkey=None): """Sign a transaction. The wallet keys will be used unless a private key is provided.""" + tx = Transaction(tx) if privkey: pubkey = bitcoin.public_key_from_private_key(privkey) h160 = bitcoin.hash_160(pubkey.decode('hex')) @@ -228,11 +229,13 @@ class Commands: @command('') def deserialize(self, tx): """Deserialize a serialized transaction""" + tx = Transaction(tx) return tx.deserialize() @command('n') def broadcast(self, tx, timeout=30): """Broadcast a transaction to the network. """ + tx = Transaction(tx) return self.network.broadcast(tx, timeout) @command('') diff --git a/lib/transaction.py b/lib/transaction.py index a5235aaa..ed0e7dbb 100644 --- a/lib/transaction.py +++ b/lib/transaction.py @@ -872,8 +872,7 @@ def tx_from_str(txt): except: is_hex = False if is_hex: - return Transaction(txt) + return txt tx_dict = json.loads(str(txt)) assert "hex" in tx_dict.keys() - tx = Transaction(tx_dict["hex"]) - return tx + return tx_dict["hex"]