better error messages
This commit is contained in:
parent
6143625f41
commit
dceb4b04ea
9
electrum
9
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
|
||||
|
|
|
@ -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) )
|
||||
|
|
Loading…
Reference in New Issue