Disable the proof of work validation check for each of the chain's vms.
    This allows for block mining without generation of the proof of work seal.

    .. note::

        blocks mined this way will not be importable on any chain that does not
        have proof of work disabled.

def disable_pow_check(chain_class: Type[BaseChain]) -> Type[BaseChain]:
    """
    Disable the proof of work validation check for each of the chain's vms.
    This allows for block mining without generation of the proof of work seal.

    .. note::

        blocks mined this way will not be importable on any chain that does not
        have proof of work disabled.
    """
    if not chain_class.vm_configuration:
        raise ValidationError("Chain class has no vm_configuration")

    if issubclass(chain_class, NoChainSealValidationMixin):
        # Seal validation already disabled, hence nothing to change
        chain_class_without_seal_validation = chain_class
    else:
        chain_class_without_seal_validation = type(
            chain_class.__name__,
            (chain_class, NoChainSealValidationMixin),
            {},
        )
    return chain_class_without_seal_validation.configure(  # type: ignore
        vm_configuration=_mix_in_disable_seal_validation(
            chain_class_without_seal_validation.vm_configuration  # type: ignore
        ),
    )