Browse Source

hardware wallet support for locktime

2.9.x
ThomasV 8 years ago
parent
commit
853b6169ed
  1. 5
      lib/wallet.py
  2. 2
      plugins/ledger/ledger.py
  3. 2
      plugins/trezor/plugin.py

5
lib/wallet.py

@ -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)
@ -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

2
plugins/ledger/ledger.py

@ -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

2
plugins/trezor/plugin.py

@ -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)

Loading…
Cancel
Save