rename sequence, fix bip32
authorecdsa <ecdsa@github>
Mon, 4 Mar 2013 06:43:01 +0000 (07:43 +0100)
committerecdsa <ecdsa@github>
Mon, 4 Mar 2013 06:43:01 +0000 (07:43 +0100)
lib/bitcoin.py
lib/wallet.py

index df7caf5..1da39ae 100644 (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
index 7e4ab1f..8d654e3 100644 (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)