better error messages
[electrum-nvc.git] / lib / wallet.py
index cd5e9e8..540110c 100644 (file)
@@ -326,17 +326,19 @@ class Wallet:
 
     def import_key(self, keypair, password):
         address, key = keypair.split(':')
-        if not self.is_valid(address): return False
-        if address in self.all_addresses(): return False
+        if not self.is_valid(address):
+            raise BaseException('Invalid Bitcoin address')
+        if address in self.all_addresses():
+            raise BaseException('Address already in wallet')
         b = ASecretToSecret( key )
         if not b: return False
         secexp = int( b.encode('hex'), 16)
         private_key = ecdsa.SigningKey.from_secret_exponent( secexp, curve=SECP256k1 )
         # sanity check
         public_key = private_key.get_verifying_key()
-        if not address == public_key_to_bc_address( '04'.decode('hex') + public_key.to_string() ): return False
+        if not address == public_key_to_bc_address( '04'.decode('hex') + public_key.to_string() ):
+            raise BaseException('Address does not match private key')
         self.imported_keys[address] = self.pw_encode( key, password )
-        return True
 
     def new_seed(self, password):
         seed = "%032x"%ecdsa.util.randrange( pow(2,128) )