electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

commit ee287740a7eeed9b40cfdd85d967009bbbb882ee
parent 1253e3db1d9cb5ca9f3eff325f28ffb7035fb497
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:
Melectrum/plugins/coldcard/coldcard.py | 11++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/electrum/plugins/coldcard/coldcard.py b/electrum/plugins/coldcard/coldcard.py @@ -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) @@ -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)