thardware wallet support for locktime - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 853b6169ed20eea9a910c8d691903320f6bedfb2 DIR parent 183af4ae3a505160108c9504939b2ce4fa2ea2f9 HTML Author: ThomasV <thomasv@electrum.org> Date: Wed, 19 Apr 2017 15:01:31 +0200 hardware wallet support for locktime Diffstat: M lib/wallet.py | 5 ++--- M plugins/ledger/ledger.py | 2 +- M plugins/trezor/plugin.py | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) --- DIR diff --git a/lib/wallet.py b/lib/wallet.py t@@ -446,7 +446,7 @@ class Abstract_Wallet(PrintError): status = _('Unconfirmed') if fee is None: fee = self.tx_fees.get(tx_hash) - if fee: + if fee and self.network.config.has_fee_estimates(): size = tx.estimated_size() fee_per_kb = fee * 1000 / size exp_n = self.network.config.reverse_dynfee(fee_per_kb) t@@ -854,8 +854,7 @@ class Abstract_Wallet(PrintError): # Sort the inputs and outputs deterministically tx.BIP_LI01_sort() # Timelock tx to current height. - # Disabled until hardware wallets support it - # tx.locktime = self.get_local_height() + tx.locktime = self.get_local_height() run_hook('make_unsigned_transaction', self, tx) return tx DIR diff --git a/plugins/ledger/ledger.py b/plugins/ledger/ledger.py t@@ -408,7 +408,7 @@ class Ledger_KeyStore(Hardware_KeyStore): self.handler.show_message(_("Confirmed. Signing Transaction...")) else: # Sign input with the provided PIN - inputSignature = self.get_client().untrustedHashSign(inputsPaths[inputIndex], pin) + inputSignature = self.get_client().untrustedHashSign(inputsPaths[inputIndex], pin, lockTime=tx.locktime) inputSignature[0] = 0x30 # force for 1.4.9+ signatures.append(inputSignature) inputIndex = inputIndex + 1 DIR diff --git a/plugins/trezor/plugin.py b/plugins/trezor/plugin.py t@@ -240,7 +240,7 @@ class TrezorCompatiblePlugin(HW_PluginBase): client = self.get_client(keystore) inputs = self.tx_inputs(tx, True) outputs = self.tx_outputs(keystore.get_derivation(), tx) - signed_tx = client.sign_tx(self.get_coin_name(), inputs, outputs)[1] + signed_tx = client.sign_tx(self.get_coin_name(), inputs, outputs, lock_time=tx.locktime)[1] raw = signed_tx.encode('hex') tx.update_signatures(raw)