Generates a deterministic keypair from `seed` based on `index`

    :param seed: bytes value of seed
    :type seed: bytes

    :param index: offset from seed
    :type index: int

    :return: dict of the form: {
        'private': private_key
        'public': public_key
    }

def keypair_from_seed(seed, index=0):
    """
    Generates a deterministic keypair from `seed` based on `index`

    :param seed: bytes value of seed
    :type seed: bytes

    :param index: offset from seed
    :type index: int

    :return: dict of the form: {
        'private': private_key
        'public': public_key
    }
    """

    h = blake2b(digest_size=32)
    h.update(seed + struct.pack(">L", index))
    priv_key = h.digest()
    pub_key = private_to_public_key(priv_key)
    return {'private': priv_key, 'public': pub_key}