URI: 
       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)