@ -379,21 +379,23 @@ class Ledger_KeyStore(Hardware_KeyStore):
txOutput+=script
txOutput=bfh(txOutput)
# Recognize outputs
ifnotclient_electrum.supports_multi_output():
iflen(tx.outputs())>2:
self.give_error("Transaction with more than 2 outputs not supported")
fortxoutintx.outputs():
ifnottxout.address:
ifclient_electrum.is_hw1():
self.give_error(_("Only address outputs are supported by {}").format(self.device))
# note: max_size based on https://github.com/LedgerHQ/ledger-app-btc/commit/3a78dee9c0484821df58975803e40d58fbfc2c38#diff-c61ccd96a6d8b54d48f54a3bc4dfa7e2R26
validate_op_return_output(txout,max_size=190)
# Output "change" detection
# - only one output and one change is authorized (for hw.1 and nano)
# - at most one output can bypass confirmation (~change) (for all)
ifnotp2shTransaction:
ifnotclient_electrum.supports_multi_output():
iflen(tx.outputs())>2:
self.give_error("Transaction with more than 2 outputs not supported")
self.give_error(_("Only address outputs are supported by {}").format(self.device))
# note: max_size based on https://github.com/LedgerHQ/ledger-app-btc/commit/3a78dee9c0484821df58975803e40d58fbfc2c38#diff-c61ccd96a6d8b54d48f54a3bc4dfa7e2R26
validate_op_return_output(txout,max_size=190)
iftxout.is_mineandlen(tx.outputs())>1 \
andnothas_change:
# prioritise hiding outputs on the 'change' branch from user