tfix offline signing with key>5 - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 1004fbd8f89523facae934f9ee5885a66663fac2 DIR parent 8858ac249e99810b5fefd31549235e3004cdd279 HTML Author: thomasv <thomasv@gitorious> Date: Wed, 11 Dec 2013 11:45:32 +0100 fix offline signing with key>5 Diffstat: M lib/wallet.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) --- DIR diff --git a/lib/wallet.py b/lib/wallet.py t@@ -742,24 +742,26 @@ class Wallet: def add_keypairs_from_KeyID(self, tx, keypairs, password): + # first check the provided password + seed = self.get_seed(password) + for txin in tx.inputs: keyid = txin.get('KeyID') if keyid: - if self.seed_version==4: + if self.seed_version == 4: m = re.match("old\(([0-9a-f]+),(\d+),(\d+)", keyid) if not m: continue mpk = m.group(1) if mpk != self.storage.get('master_public_key'): continue - index = int(m.group(2)) + for_change = int(m.group(2)) num = int(m.group(3)) account = self.accounts[0] - addr = account.get_address(index, num) + addr = account.get_address(for_change, num) txin['address'] = addr # fixme: side effect - pk = self.get_private_key(addr, password) - for sec in pk: - pubkey = public_key_from_private_key(sec) - keypairs[pubkey] = sec + pk = account.get_private_key(seed, (for_change, num)) + pubkey = public_key_from_private_key(pk) + keypairs[pubkey] = pk continue