From 2242a506a9a9dd71f719e81b57f15b82ff424369 Mon Sep 17 00:00:00 2001 From: SomberNight Date: Wed, 22 Feb 2023 14:02:24 +0000 Subject: [PATCH] ledger: fix sign_transaction for Ypub / sh(wsh(multi())) wallets regression from https://github.com/spesmilo/electrum/pull/8041 --- electrum/plugins/ledger/ledger.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/electrum/plugins/ledger/ledger.py b/electrum/plugins/ledger/ledger.py index 2e42de81c..be1ca437f 100644 --- a/electrum/plugins/ledger/ledger.py +++ b/electrum/plugins/ledger/ledger.py @@ -1095,15 +1095,20 @@ class Ledger_Client_New(Ledger_Client): if utxo is None: continue scriptcode = utxo.scriptPubKey - - p2sh = False if electrum_txin.script_type in ['p2sh', 'p2wpkh-p2sh']: if len(psbt_in.redeem_script) == 0: continue scriptcode = psbt_in.redeem_script + elif electrum_txin.script_type in ['p2wsh', 'p2wsh-p2sh']: + if len(psbt_in.witness_script) == 0: + continue + scriptcode = psbt_in.witness_script + + p2sh = False + if electrum_txin.script_type in ['p2sh', 'p2wpkh-p2sh', 'p2wsh-p2sh']: p2sh = True - is_wit, wit_ver, __ = is_witness(scriptcode) + is_wit, wit_ver, __ = is_witness(psbt_in.redeem_script or utxo.scriptPubKey) script_addrtype = AddressType.LEGACY if is_wit: @@ -1123,12 +1128,6 @@ class Ledger_Client_New(Ledger_Client): else: continue - # Check if P2WSH - if electrum_txin.script_type in ['p2wsh']: - if len(psbt_in.witness_script) == 0: - continue - scriptcode = psbt_in.witness_script - multisig = parse_multisig(scriptcode) if multisig is not None: k, ms_pubkeys = multisig