public static PrecompileContractResult halt(
        final Bytes output, final Optional<ExceptionalHaltReason> haltReason) {
      if (haltReason.isEmpty()) {
        throw new IllegalArgumentException("Halt reason cannot be empty");
      }
      return new PrecompileContractResult(
          output, false, MessageFrame.State.EXCEPTIONAL_HALT, haltReason);
    }
precompile contract result with Halt state.

@param output the output
@param haltReason the halt reason
@return the precompile contract result
evm/src/main/java/org/hyperledger/besu/evm/precompile/PrecompiledContract.java