示例#1
0
    def __init__(self, hex_privkey=None, enable_cache=False):
        """
            If @hex_privkey is given, use that to derive keychain
            otherwise, use a new random seed
        """

        if hex_privkey:
            self.priv_keychain = PrivateKeychain.from_private_key(hex_privkey)
        else:
            #log.debug("No privatekey given, starting new wallet")
            self.priv_keychain = PrivateKeychain()

        self.master_address = self.get_master_address()
        self.child_addresses = None

        if enable_cache:
            cache = self.get_cache()

            if cache is not None:

                if cache['master_address'] == self.master_address:
                    self.child_addresses = cache['child_addresses']
                else:
                    log.debug("Wallet already exists with master address: %s" %
                              cache['master_address'])
            else:
                #log.debug("Creating cache of HD wallet addresses ...")
                self.create_addresses_cache()
示例#2
0
    def __init__(self, hex_privkey=None, enable_cache=False):

        """
            If @hex_privkey is given, use that to derive keychain
            otherwise, use a new random seed
        """

        if hex_privkey:
            self.priv_keychain = PrivateKeychain.from_private_key(hex_privkey)
        else:
            #log.debug("No privatekey given, starting new wallet")
            self.priv_keychain = PrivateKeychain()

        self.master_address = self.get_master_address()
        self.child_addresses = None

        if enable_cache:
            cache = self.get_cache()

            if cache is not None:

                if cache['master_address'] == self.master_address:
                    self.child_addresses = cache['child_addresses']
                else:
                    log.debug("Wallet already exists with master address: %s" % cache['master_address'])
            else:
                #log.debug("Creating cache of HD wallet addresses ...")
                self.create_addresses_cache()
示例#3
0
    def get_priv_keychain(self, hex_privkey, chaincode):
        if hex_privkey:
            return PrivateKeychain.from_private_key(hex_privkey,
                                                    chain_path=chaincode)

        log.debug('No privatekey given, starting new wallet')
        return PrivateKeychain()
示例#4
0
 def test_derivation_from_raw_keys(self):
     public_keychain = PublicKeychain.from_public_key(self.public_key_hex)
     private_keychain = PrivateKeychain.from_private_key(
         self.private_key_hex)
     public_keychain_2 = private_keychain.public_keychain()
     self.assertEqual(str(public_keychain), str(public_keychain_2))
     self.assertEqual(str(public_keychain), self.reference_public_keychain)
示例#5
0
    def __init__(self, hex_privkey=None):

        """
            If @hex_privkey is given, use that to derive keychain
            otherwise, use a new random seed
        """

        if hex_privkey:
            self.priv_keychain = PrivateKeychain.from_private_key(hex_privkey)
        else:
            self.priv_keychain = PrivateKeychain()
示例#6
0
    def __init__(self, hex_privkey=None):
        """
            If @hex_privkey is given, use that to derive keychain
            otherwise, use a new random seed
        """

        if hex_privkey:
            self.priv_keychain = PrivateKeychain.from_private_key(hex_privkey)
        else:
            log.debug("No privatekey given, starting new wallet")
            self.priv_keychain = PrivateKeychain()

        self.master_address = self.get_master_address()
        self.child_addresses = None
示例#7
0
    def __init__(self, hex_privkey=None, config_path=CONFIG_PATH):

        """
            If @hex_privkey is given, use that to derive keychain
            otherwise, use a new random seed
        """

        if hex_privkey:
            self.priv_keychain = PrivateKeychain.from_private_key(hex_privkey)
        else:
            log.debug("No privatekey given, starting new wallet")
            self.priv_keychain = PrivateKeychain()

        self.master_address = self.get_master_address()
        self.child_addresses = None
        self.config_path = config_path
    def test_high_volume_derivation(self):
        number_of_keys = 10
        public_keychain = PublicKeychain.from_public_key(self.public_key_hex)
        private_keychain = PrivateKeychain.from_private_key(self.private_key_hex)
        keypairs = []
        print ""
        for i in range(number_of_keys):
            print "making key %i of %i" % (i+1, number_of_keys)
            public_key = public_keychain.child(i).public_key()
            private_key = private_keychain.child(i).private_key()
            keypairs.append({ 'public': public_key, 'private': private_key })

        for i in range(len(keypairs)):
            keypair = keypairs[i]
            print "checking key %i of %i" % (i+1, number_of_keys)
            self.assertEqual(privkey_to_pubkey(keypair['private']), keypair['public'])
    def test_high_volume_derivation(self):
        number_of_keys = 10
        public_keychain = PublicKeychain.from_public_key(self.public_key_hex)
        private_keychain = PrivateKeychain.from_private_key(self.private_key_hex)
        keypairs = []
        print ""
        for i in range(number_of_keys):
            print "making key %i of %i" % (i+1, number_of_keys)
            public_key = public_keychain.child(i).public_key()
            private_key = private_keychain.child(i).private_key()
            keypairs.append({ 'public': public_key, 'private': private_key })

        for i in range(len(keypairs)):
            keypair = keypairs[i]
            print "checking key %i of %i" % (i+1, number_of_keys)
            # self.assertEqual(privkey_to_pubkey(keypair['private']), keypair['public'])
            self.assertEqual(keylib.ECPrivateKey(keypair['private']).public_key().to_hex(), keylib.ECPublicKey(keypair['public']).to_hex())
    def get_priv_keychain(self, hex_privkey, chaincode):
        if hex_privkey:
            return PrivateKeychain.from_private_key(hex_privkey, chain_path=chaincode)

        log.debug('No privatekey given, starting new wallet')
        return PrivateKeychain()
 def test_derivation_from_raw_keys(self):
     public_keychain = PublicKeychain.from_public_key(self.public_key_hex)
     private_keychain = PrivateKeychain.from_private_key(self.private_key_hex)
     public_keychain_2 = private_keychain.public_keychain()
     self.assertEqual(str(public_keychain), str(public_keychain_2))
     self.assertEqual(str(public_keychain), self.reference_public_keychain)