tcoldcard: fix p2pkh signing for new fw (1.1.0) - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit ee287740a7eeed9b40cfdd85d967009bbbb882ee DIR parent 1253e3db1d9cb5ca9f3eff325f28ffb7035fb497 HTML Author: SomberNight <somber.night@protonmail.com> Date: Thu, 29 Nov 2018 20:28:27 +0100 coldcard: fix p2pkh signing for new fw (1.1.0) PSBT was serialised incorrectly but old fw did not complain Diffstat: M electrum/plugins/coldcard/coldcard… | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) --- DIR diff --git a/electrum/plugins/coldcard/coldcard.py b/electrum/plugins/coldcard/coldcard.py t@@ -118,6 +118,8 @@ class CKCCClient: or (self.dev.master_fingerprint != expected_xfp) or (self.dev.master_xpub != expected_xpub)): # probably indicating programing error, not hacking + print_error("[coldcard]", f"xpubs. reported by device: {self.dev.master_xpub}. " + f"stored in file: {expected_xpub}") raise RuntimeError("Expecting 0x%08x but that's not whats connected?!" % expected_xfp) t@@ -454,9 +456,12 @@ class Coldcard_KeyStore(Hardware_KeyStore): # inputs section for txin in inputs: - utxo = txin['prev_tx'].outputs()[txin['prevout_n']] - spendable = txin['prev_tx'].serialize_output(utxo) - write_kv(PSBT_IN_WITNESS_UTXO, spendable) + if Transaction.is_segwit_input(txin): + utxo = txin['prev_tx'].outputs()[txin['prevout_n']] + spendable = txin['prev_tx'].serialize_output(utxo) + write_kv(PSBT_IN_WITNESS_UTXO, spendable) + else: + write_kv(PSBT_IN_NON_WITNESS_UTXO, str(txin['prev_tx'])) pubkeys, x_pubkeys = tx.get_sorted_pubkeys(txin)