Set the block number on which the DAO fork will happen.  Requires that a
    version of the :class:`~eth.vm.forks.homestead.HomesteadVM` is present in
    the chain's ``vm_configuration``

def dao_fork_at(dao_fork_block_number: BlockNumber,
                chain_class: Type[BaseChain]) -> Type[BaseChain]:
    """
    Set the block number on which the DAO fork will happen.  Requires that a
    version of the :class:`~eth.vm.forks.homestead.HomesteadVM` is present in
    the chain's ``vm_configuration``

    """
    homstead_vms_found = any(
        _is_homestead(vm_class) for _, vm_class in chain_class.vm_configuration
    )
    if not homstead_vms_found:
        raise ValidationError("No HomesteadVM found in vm_configuration.")

    vm_configuration = _set_vm_dao_fork_block_number(
        dao_fork_block_number,
        chain_class.vm_configuration,
    )
    return chain_class.configure(vm_configuration=vm_configuration)