private boolean mustIgnore(final TraceFrame frame) {
    if ("STOP".equals(frame.getOpcode()) && transactionTrace.getTraceFrames().size() == 1) {
      return true;
    } else if (frame.getExceptionalHaltReason().isPresent()) {
      final Optional<ExceptionalHaltReason> haltReason = frame.getExceptionalHaltReason();
      return haltReason.get() != ExceptionalHaltReason.INVALID_JUMP_DESTINATION
          && haltReason.get() != ExceptionalHaltReason.INSUFFICIENT_GAS
          && haltReason.get() != ExceptionalHaltReason.ILLEGAL_STATE_CHANGE;
    } else {
      return frame.isVirtualOperation();
    }
  }
Add a trace frame to the VmTrace result object.

@param frame the current trace frame
ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/results/tracing/vm/VmTraceGenerator.java