tledger: always use finalizeInput in sign_transaction - electrum - Electrum Bitcoin wallet
HTML git clone https://git.parazyd.org/electrum
DIR Log
DIR Files
DIR Refs
DIR Submodules
---
DIR commit 788b5b04febf45da891b1a85990385d06c6f14bc
DIR parent a61953673a3503d780ee8a1135f21b9edbab8d33
HTML Author: SomberNight <somber.night@protonmail.com>
Date: Tue, 2 Oct 2018 15:52:24 +0200
ledger: always use finalizeInput in sign_transaction
related #4749
Diffstat:
M electrum/plugins/ledger/ledger.py | 28 +++++++++-------------------
1 file changed, 9 insertions(+), 19 deletions(-)
---
DIR diff --git a/electrum/plugins/ledger/ledger.py b/electrum/plugins/ledger/ledger.py
t@@ -318,7 +318,6 @@ class Ledger_KeyStore(Hardware_KeyStore):
chipInputs = []
redeemScripts = []
signatures = []
- preparedTrustedInputs = []
changePath = ""
output = None
p2shTransaction = False
t@@ -377,8 +376,8 @@ class Ledger_KeyStore(Hardware_KeyStore):
self.give_error("P2SH / regular input mixed in same transaction not supported") # should never happen
txOutput = var_int(len(tx.outputs()))
- for txout in tx.outputs():
- output_type, addr, amount = txout
+ for o in tx.outputs():
+ output_type, addr, amount = o.type, o.address, o.value
txOutput += int_to_hex(amount, 8)
script = tx.pay_script(output_type, addr)
txOutput += var_int(len(script)//2)
t@@ -442,14 +441,10 @@ class Ledger_KeyStore(Hardware_KeyStore):
if segwitTransaction:
self.get_client().startUntrustedTransaction(True, inputIndex,
chipInputs, redeemScripts[inputIndex])
- if changePath:
- # we don't set meaningful outputAddress, amount and fees
- # as we only care about the alternateEncoding==True branch
- outputData = self.get_client().finalizeInput(b'', 0, 0, changePath, bfh(rawTx))
- else:
- outputData = self.get_client().finalizeInputFull(txOutput)
+ # we don't set meaningful outputAddress, amount and fees
+ # as we only care about the alternateEncoding==True branch
+ outputData = self.get_client().finalizeInput(b'', 0, 0, changePath, bfh(rawTx))
outputData['outputData'] = txOutput
- transactionOutput = outputData['outputData']
if outputData['confirmationNeeded']:
outputData['address'] = output
self.handler.finished()
t@@ -469,16 +464,11 @@ class Ledger_KeyStore(Hardware_KeyStore):
else:
while inputIndex < len(inputs):
self.get_client().startUntrustedTransaction(firstTransaction, inputIndex,
- chipInputs, redeemScripts[inputIndex])
- if changePath:
- # we don't set meaningful outputAddress, amount and fees
- # as we only care about the alternateEncoding==True branch
- outputData = self.get_client().finalizeInput(b'', 0, 0, changePath, bfh(rawTx))
- else:
- outputData = self.get_client().finalizeInputFull(txOutput)
+ chipInputs, redeemScripts[inputIndex])
+ # we don't set meaningful outputAddress, amount and fees
+ # as we only care about the alternateEncoding==True branch
+ outputData = self.get_client().finalizeInput(b'', 0, 0, changePath, bfh(rawTx))
outputData['outputData'] = txOutput
- if firstTransaction:
- transactionOutput = outputData['outputData']
if outputData['confirmationNeeded']:
outputData['address'] = output
self.handler.finished()