protected static JsonRpcResponse executeRequest(
      final JsonRpcExecutor jsonRpcExecutor,
      final Tracer tracer,
      final JsonObject jsonRequest,
      final RoutingContext ctx) {
    final Optional<User> user = ContextKey.AUTHENTICATED_USER.extractFrom(ctx, Optional::empty);
    final Context spanContext = ctx.get(SPAN_CONTEXT);
    return jsonRpcExecutor.execute(
        user,
        tracer,
        spanContext,
        () -> !ctx.response().closed(),
        jsonRequest,
        req -> req.mapTo(JsonRpcRequest.class));
  }
Creates a new AbstractJsonRpcExecutor.

@param jsonRpcExecutor The executor used to process the JSON RPC requests.
@param tracer The tracer used for monitoring and debugging purposes.
@param ctx The context of the routing, containing information about the HTTP request and
    response.
@param jsonRpcConfiguration The configuration for JSON RPC operations
ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/handlers/AbstractJsonRpcExecutor.java