@classmethod
def from_mnemonic(cls, mnemonic, password=b'', path='m', testnet=False):
    'Returns a HDPrivateKey object from the mnemonic.'
    words = mnemonic.split()
    if (len(words) not in (12, 15, 18, 21, 24)):
        raise ValueError('you need 12, 15, 18, 21, or 24 words')
    number = 0
    for word in words:
        index = WORD_LOOKUP[word]
        number = ((number << 11) | index)
    checksum_bits_length = (len(words) // 3)
    checksum = (number & ((1 << checksum_bits_length) - 1))
    data_num = (number >> checksum_bits_length)
    data = int_to_big_endian(data_num, (checksum_bits_length * 4))
    computed_checksum = (sha256(data)[0] >> (8 - checksum_bits_length))
    if (checksum != computed_checksum):
        raise ValueError('words fail checksum: {}'.format(words))
    normalized_words = []
    for word in words:
        normalized_words.append(WORD_LIST[WORD_LOOKUP[word]])
    normalized_mnemonic = ' '.join(normalized_words)
    salt = (b'mnemonic' + password)
    seed = hmac_sha512_kdf(normalized_mnemonic, salt)
    return cls.from_seed(seed, testnet=testnet).traverse(path)
Returns a HDPrivateKey object from the mnemonic.
@classmethod
def from_mnemonic(cls, mnemonic, password=b, path='m', testnet=False):
    
    words = mnemonic.split()
    if (len(words) not in (12, 15, 18, 21, 24)):
        raise ValueError('you need 12, 15, 18, 21, or 24 words')
    number = 0
    for word in words:
        index = WORD_LOOKUP[word]
        number = ((number << 11) | index)
    checksum_bits_length = (len(words) // 3)
    checksum = (number & ((1 << checksum_bits_length) - 1))
    data_num = (number >> checksum_bits_length)
    data = int_to_big_endian(data_num, (checksum_bits_length * 4))
    computed_checksum = (sha256(data)[0] >> (8 - checksum_bits_length))
    if (checksum != computed_checksum):
        raise ValueError('words fail checksum: {}'.format(words))
    normalized_words = []
    for word in words:
        normalized_words.append(WORD_LIST[WORD_LOOKUP[word]])
    normalized_mnemonic = ' '.join(normalized_words)
    salt = (b'mnemonic' + password)
    seed = hmac_sha512_kdf(normalized_mnemonic, salt)
    return cls.from_seed(seed, testnet=testnet).traverse(path)