Browse Source

fix cold storage signing for imported wallets

283
ThomasV 9 years ago
parent
commit
08543584c5
  1. 9
      lib/keystore.py
  2. 11
      lib/wallet.py

9
lib/keystore.py

@ -173,10 +173,13 @@ class Imported_KeyStore(Software_KeyStore):
raise InvalidPassword() raise InvalidPassword()
return pk return pk
def get_pubkey_derivation(self, pubkey): def get_pubkey_derivation(self, x_pubkey):
if pubkey not in self.receiving_keys: if x_pubkey[0:2] != 'fd':
return return
i = self.receiving_keys.index(pubkey) # fixme: this assumes p2pkh
_, addr = xpubkey_to_address(x_pubkey)
for i, pubkey in enumerate(self.receiving_pubkeys):
if public_key_to_bc_address(pubkey.decode('hex')) == addr:
return (False, i) return (False, i)
def update_password(self, old_password, new_password): def update_password(self, old_password, new_password):

11
lib/wallet.py

@ -1175,6 +1175,11 @@ class Imported_Wallet(Abstract_Wallet):
def load_addresses(self): def load_addresses(self):
self.addresses = self.storage.get('addresses', []) self.addresses = self.storage.get('addresses', [])
self.receiving_addresses = self.addresses
self.change_addresses = []
def get_keystores(self):
return []
def has_password(self): def has_password(self):
return False return False
@ -1231,6 +1236,12 @@ class Imported_Wallet(Abstract_Wallet):
def get_change_addresses(self): def get_change_addresses(self):
return [] return []
def add_input_sig_info(self, txin, address):
addrtype, hash160 = bc_address_to_hash_160(address)
xpubkey = 'fd' + (chr(addrtype) + hash160).encode('hex')
txin['x_pubkeys'] = [ xpubkey ]
txin['pubkeys'] = [ xpubkey ]
txin['signatures'] = [None]
class P2PK_Wallet(Abstract_Wallet): class P2PK_Wallet(Abstract_Wallet):

Loading…
Cancel
Save