rename sequence, fix bip32

This commit is contained in:
ecdsa 2013-03-04 07:43:01 +01:00
parent c71648bfec
commit 4019102264
2 changed files with 12 additions and 8 deletions

View File

@ -412,7 +412,7 @@ def CKD_prime(K, c, n):
class DeterministicSequence:
class ElectrumSequence:
""" Privatekey(type,n) = Master_private_key + H(n|S|type) """
def __init__(self, master_public_key, mpk2 = None):
@ -517,11 +517,15 @@ class BIP32Sequence:
@classmethod
def mpk_from_seed(klass, seed):
master_secret, master_chain, master_public_key, master_public_key_compressed = bip32_init(seed)
return master_public_key, master_chain
return master_public_key.encode('hex'), master_chain.encode('hex')
def get_pubkey(self, sequence):
K = self.master_public_key
chain = self.mchain
def get_pubkey(self, sequence, use_mpk2=False):
if not use_mpl2:
K = self.master_public_key.decode('hex')
chain = self.master_chain.decode('hex')
else:
K = self.master_public_key_2.decode('hex')
chain = self.master_chain_2.decode('hex')
for i in sequence:
K, K_compressed, chain = CKD_prime(K, chain, i)
return K_compressed

View File

@ -94,7 +94,7 @@ class Wallet:
self.accounts = config.get('accounts', {}) # this should not include public keys
self.sequences = {}
self.sequences[0] = DeterministicSequence(self.config.get('master_public_key'))
self.sequences[0] = ElectrumSequence(self.config.get('master_public_key'))
if self.accounts.get(0) is None:
self.accounts[0] = { 0:[], 1:[], 'name':'Main account' }
@ -162,9 +162,9 @@ class Wallet:
self.config.set_key('seed', self.seed, True)
self.config.set_key('seed_version', self.seed_version, True)
mpk = DeterministicSequence.mpk_from_seed(self.seed)
mpk = ElectrumSequence.mpk_from_seed(self.seed)
self.config.set_key('master_public_key', mpk, True)
self.sequences[0] = DeterministicSequence(mpk)
self.sequences[0] = ElectrumSequence(mpk)
self.accounts[0] = { 0:[], 1:[], 'name':'Main account' }
self.config.set_key('accounts', self.accounts, True)