init_seed method. save seed and master public key separately
This commit is contained in:
parent
50305e1f57
commit
043d6addff
11
electrum
11
electrum
|
@ -220,8 +220,7 @@ if __name__ == '__main__':
|
||||||
s = gui.network_dialog()
|
s = gui.network_dialog()
|
||||||
|
|
||||||
if a =='create':
|
if a =='create':
|
||||||
wallet.new_seed(None)
|
wallet.init_seed(None)
|
||||||
wallet.init_mpk( wallet.seed )
|
|
||||||
else:
|
else:
|
||||||
# ask for seed and gap.
|
# ask for seed and gap.
|
||||||
sg = gui.seed_dialog()
|
sg = gui.seed_dialog()
|
||||||
|
@ -230,11 +229,10 @@ if __name__ == '__main__':
|
||||||
if not seed: exit()
|
if not seed: exit()
|
||||||
wallet.gap_limit = gap
|
wallet.gap_limit = gap
|
||||||
if len(seed) == 128:
|
if len(seed) == 128:
|
||||||
wallet.seed = None
|
wallet.seed = ''
|
||||||
wallet.master_public_key = seed
|
wallet.master_public_key = seed
|
||||||
else:
|
else:
|
||||||
wallet.seed = str(seed)
|
wallet.init_seed(str(seed))
|
||||||
wallet.init_mpk( wallet.seed )
|
|
||||||
|
|
||||||
|
|
||||||
# generate the first addresses, in case we are offline
|
# generate the first addresses, in case we are offline
|
||||||
|
@ -343,8 +341,7 @@ if __name__ == '__main__':
|
||||||
wallet.save()
|
wallet.save()
|
||||||
print_msg("Wallet saved in '%s'"%wallet.config.path)
|
print_msg("Wallet saved in '%s'"%wallet.config.path)
|
||||||
else:
|
else:
|
||||||
wallet.new_seed(None)
|
wallet.init_seed(None)
|
||||||
wallet.init_mpk( wallet.seed )
|
|
||||||
wallet.synchronize() # there is no wallet thread
|
wallet.synchronize() # there is no wallet thread
|
||||||
wallet.save()
|
wallet.save()
|
||||||
print_msg("Your wallet generation seed is: " + wallet.seed)
|
print_msg("Your wallet generation seed is: " + wallet.seed)
|
||||||
|
|
|
@ -141,11 +141,13 @@ class Wallet:
|
||||||
return address
|
return address
|
||||||
|
|
||||||
|
|
||||||
def new_seed(self, password):
|
def init_seed(self, seed):
|
||||||
|
if not seed:
|
||||||
seed = "%032x"%ecdsa.util.randrange( pow(2,128) )
|
seed = "%032x"%ecdsa.util.randrange( pow(2,128) )
|
||||||
#self.init_mpk(seed)
|
self.seed = seed
|
||||||
# encrypt
|
self.config.set_key('seed', self.seed, True)
|
||||||
self.seed = self.pw_encode( seed, password )
|
self.config.set_key('seed_version', self.seed_version, True)
|
||||||
|
self.init_mpk(self.seed)
|
||||||
|
|
||||||
def init_mpk(self,seed):
|
def init_mpk(self,seed):
|
||||||
# public key
|
# public key
|
||||||
|
@ -153,6 +155,7 @@ class Wallet:
|
||||||
secexp = self.stretch_key(seed)
|
secexp = self.stretch_key(seed)
|
||||||
master_private_key = ecdsa.SigningKey.from_secret_exponent( secexp, curve = SECP256k1 )
|
master_private_key = ecdsa.SigningKey.from_secret_exponent( secexp, curve = SECP256k1 )
|
||||||
self.master_public_key = master_private_key.get_verifying_key().to_string().encode('hex')
|
self.master_public_key = master_private_key.get_verifying_key().to_string().encode('hex')
|
||||||
|
self.config.set_key('master_public_key', self.master_public_key, True)
|
||||||
|
|
||||||
def all_addresses(self):
|
def all_addresses(self):
|
||||||
return self.addresses + self.change_addresses + self.imported_keys.keys()
|
return self.addresses + self.change_addresses + self.imported_keys.keys()
|
||||||
|
@ -913,6 +916,7 @@ class Wallet:
|
||||||
if new_password == '': new_password = None
|
if new_password == '': new_password = None
|
||||||
self.use_encryption = (new_password != None)
|
self.use_encryption = (new_password != None)
|
||||||
self.seed = self.pw_encode( seed, new_password)
|
self.seed = self.pw_encode( seed, new_password)
|
||||||
|
self.config.set_key('seed', self.seed, True)
|
||||||
for k in self.imported_keys.keys():
|
for k in self.imported_keys.keys():
|
||||||
a = self.imported_keys[k]
|
a = self.imported_keys[k]
|
||||||
b = self.pw_decode(a, old_password)
|
b = self.pw_decode(a, old_password)
|
||||||
|
@ -1048,12 +1052,9 @@ class Wallet:
|
||||||
|
|
||||||
def save(self):
|
def save(self):
|
||||||
s = {
|
s = {
|
||||||
'seed_version': self.seed_version,
|
|
||||||
'use_encryption': self.use_encryption,
|
'use_encryption': self.use_encryption,
|
||||||
'use_change': self.use_change,
|
'use_change': self.use_change,
|
||||||
'master_public_key': self.master_public_key,
|
|
||||||
'fee': self.fee,
|
'fee': self.fee,
|
||||||
'seed': self.seed,
|
|
||||||
'addresses': self.addresses,
|
'addresses': self.addresses,
|
||||||
'change_addresses': self.change_addresses,
|
'change_addresses': self.change_addresses,
|
||||||
'addr_history': self.history,
|
'addr_history': self.history,
|
||||||
|
|
Loading…
Reference in New Issue