From aed2b04dbdb6d52e3db42b15e7dffc7c220e7b76 Mon Sep 17 00:00:00 2001 From: ThomasV Date: Tue, 31 Jan 2017 16:32:11 +0100 Subject: [PATCH] return txid for unsigned segwit transactions --- lib/transaction.py | 3 +++ lib/wallet.py | 3 +-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/transaction.py b/lib/transaction.py index 1e159ba9..5d6cce49 100644 --- a/lib/transaction.py +++ b/lib/transaction.py @@ -722,6 +722,9 @@ class Transaction: return self.txid() def txid(self): + all_segwit = all(self.is_segwit_input(x) for x in self.inputs()) + if not all_segwit and not self.is_complete(): + return None ser = self.serialize(witness=False) return Hash(ser.decode('hex'))[::-1].encode('hex') diff --git a/lib/wallet.py b/lib/wallet.py index dbb533ef..a5b77056 100644 --- a/lib/wallet.py +++ b/lib/wallet.py @@ -436,8 +436,8 @@ class Abstract_Wallet(PrintError): can_bump = False label = '' height = conf = timestamp = None + tx_hash = tx.txid() if tx.is_complete(): - tx_hash = tx.txid() if tx_hash in self.transactions.keys(): label = self.get_label(tx_hash) height, conf, timestamp = self.get_tx_height(tx_hash) @@ -461,7 +461,6 @@ class Abstract_Wallet(PrintError): else: s, r = tx.signature_count() status = _("Unsigned") if s == 0 else _('Partially signed') + ' (%d/%d)'%(s,r) - tx_hash = None if is_relevant: if is_mine: