better error messages
authorthomasv <thomasv@gitorious>
Wed, 30 May 2012 12:42:30 +0000 (14:42 +0200)
committerthomasv <thomasv@gitorious>
Wed, 30 May 2012 12:42:30 +0000 (14:42 +0200)
app.fil [deleted file]
electrum
lib/wallet.py

diff --git a/app.fil b/app.fil
deleted file mode 100644 (file)
index 5266edb..0000000
--- a/app.fil
+++ /dev/null
@@ -1,2 +0,0 @@
-lib/gui_qt.py
-lib/gui.py
index f82dd37..6108b6f 100755 (executable)
--- a/electrum
+++ b/electrum
@@ -215,11 +215,12 @@ if __name__ == '__main__':
 
     if cmd == 'import':
         keypair = args[1]
-        if wallet.import_key(keypair,password):
+        try:
+            wallet.import_key(keypair,password)
+            wallet.save()
             print "keypair imported"
-        else:
-            print "error"
-        wallet.save()
+        except BaseException, e:
+            print( 'Error:' + str(e) )
 
     if cmd=='help':
         cmd2 = firstarg
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) )