def METHOD_NAME(evm: Evm) -> None:
    """
    Push the hash of one of the 256 most recent complete blocks onto the
    stack. The block number to hash is present at the top of the stack.
    Parameters
    ----------
    evm :
        The current EVM frame.
    Raises
    ------
    :py:class:`~ethereum.paris.vm.exceptions.StackUnderflowError`
        If `len(stack)` is less than `1`.
    :py:class:`~ethereum.paris.vm.exceptions.OutOfGasError`
        If `evm.gas_left` is less than `20`.
    """
    # STACK
    block_number = pop(evm.stack)
    # GAS
    charge_gas(evm, GAS_BLOCK_HASH)
    # OPERATION
    if evm.env.number <= block_number or evm.env.number > block_number + 256:
        # Default hash to 0, if the block of interest is not yet on the chain
        # (including the block which has the current executing transaction),
        # or if the block's age is more than 256.
        hash = b"\x00"
    else:
        hash = evm.env.block_hashes[-(evm.env.number - block_number)]
    push(evm.stack, U256.from_be_bytes(hash))
    # PROGRAM COUNTER
    evm.pc += 1