add class Simple_Wallet

This commit is contained in:
ThomasV 2017-10-15 10:14:55 +02:00
parent dc553ff108
commit ccf1f0f5d1
1 changed files with 32 additions and 27 deletions

View File

@ -1335,7 +1335,37 @@ class Abstract_Wallet(PrintError):
return self.keystore.decrypt_message(index, message, password)
class Imported_Wallet(Abstract_Wallet):
class Simple_Wallet(Abstract_Wallet):
# wallet with a single keystore
def get_keystore(self):
return self.keystore
def get_keystores(self):
return [self.keystore]
def is_watching_only(self):
return self.keystore.is_watching_only()
def can_change_password(self):
return self.keystore.can_change_password()
def check_password(self, password):
self.keystore.check_password(password)
def update_password(self, old_pw, new_pw, encrypt=False):
if old_pw is None and self.has_password():
raise InvalidPassword()
self.keystore.update_password(old_pw, new_pw)
self.save_keystore()
self.storage.set_password(new_pw, encrypt)
self.storage.write()
def save_keystore(self):
self.storage.put('keystore', self.keystore.dump())
class Imported_Wallet(Simple_Wallet):
# wallet made of imported addresses
wallet_type = 'imported'
@ -1614,7 +1644,7 @@ class Deterministic_Wallet(Abstract_Wallet):
return self.txin_type
class Simple_Deterministic_Wallet(Deterministic_Wallet):
class Simple_Deterministic_Wallet(Simple_Wallet, Deterministic_Wallet):
""" Deterministic Wallet with a single pubkey per address """
@ -1660,31 +1690,6 @@ class Simple_Deterministic_Wallet(Deterministic_Wallet):
def derive_pubkeys(self, c, i):
return self.keystore.derive_pubkey(c, i)
def get_keystore(self):
return self.keystore
def get_keystores(self):
return [self.keystore]
def is_watching_only(self):
return self.keystore.is_watching_only()
def can_change_password(self):
return self.keystore.can_change_password()
def check_password(self, password):
self.keystore.check_password(password)
def update_password(self, old_pw, new_pw, encrypt=False):
if old_pw is None and self.has_password():
raise InvalidPassword()
self.keystore.update_password(old_pw, new_pw)
self.save_keystore()
self.storage.set_password(new_pw, encrypt)
self.storage.write()
def save_keystore(self):
self.storage.put('keystore', self.keystore.dump())