rename sequence, fix bip32
This commit is contained in:
parent
c71648bfec
commit
4019102264
|
@ -412,7 +412,7 @@ def CKD_prime(K, c, n):
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class DeterministicSequence:
|
class ElectrumSequence:
|
||||||
""" Privatekey(type,n) = Master_private_key + H(n|S|type) """
|
""" Privatekey(type,n) = Master_private_key + H(n|S|type) """
|
||||||
|
|
||||||
def __init__(self, master_public_key, mpk2 = None):
|
def __init__(self, master_public_key, mpk2 = None):
|
||||||
|
@ -517,11 +517,15 @@ class BIP32Sequence:
|
||||||
@classmethod
|
@classmethod
|
||||||
def mpk_from_seed(klass, seed):
|
def mpk_from_seed(klass, seed):
|
||||||
master_secret, master_chain, master_public_key, master_public_key_compressed = bip32_init(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):
|
def get_pubkey(self, sequence, use_mpk2=False):
|
||||||
K = self.master_public_key
|
if not use_mpl2:
|
||||||
chain = self.mchain
|
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:
|
for i in sequence:
|
||||||
K, K_compressed, chain = CKD_prime(K, chain, i)
|
K, K_compressed, chain = CKD_prime(K, chain, i)
|
||||||
return K_compressed
|
return K_compressed
|
||||||
|
|
|
@ -94,7 +94,7 @@ class Wallet:
|
||||||
self.accounts = config.get('accounts', {}) # this should not include public keys
|
self.accounts = config.get('accounts', {}) # this should not include public keys
|
||||||
|
|
||||||
self.sequences = {}
|
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:
|
if self.accounts.get(0) is None:
|
||||||
self.accounts[0] = { 0:[], 1:[], 'name':'Main account' }
|
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', self.seed, True)
|
||||||
self.config.set_key('seed_version', self.seed_version, 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.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.accounts[0] = { 0:[], 1:[], 'name':'Main account' }
|
||||||
self.config.set_key('accounts', self.accounts, True)
|
self.config.set_key('accounts', self.accounts, True)
|
||||||
|
|
Loading…
Reference in New Issue