trename sequence, fix bip32 - electrum - Electrum Bitcoin wallet (HTM) git clone https://git.parazyd.org/electrum (DIR) Log (DIR) Files (DIR) Refs (DIR) Submodules --- (DIR) commit 4019102264e932b2aa762014544d7e34afe0f42e (DIR) parent c71648bfec107e50ed3e9827e6322f2281f34a4b (HTM) Author: ecdsa <ecdsa@github> Date: Mon, 4 Mar 2013 07:43:01 +0100 rename sequence, fix bip32 Diffstat: M lib/bitcoin.py | 14 +++++++++----- M lib/wallet.py | 6 +++--- 2 files changed, 12 insertions(+), 8 deletions(-) --- (DIR) diff --git a/lib/bitcoin.py b/lib/bitcoin.py t@@ -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): t@@ -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 (DIR) diff --git a/lib/wallet.py b/lib/wallet.py t@@ -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' } t@@ -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)