docs: @Override
  	public Object invoke(MethodInvocation invocation)
  			throws Throwable {
  		Method method = invocation.getMethod();
  		if (method.getDeclaringClass() == Object.class && method.getName().equals("toString")) {
  			return proxyObject.getClass().getName() + "@" + System.identityHashCode(proxyObject);
  		}
  
  		Type retType = (invocation.getMethod().getGenericReturnType() != null) ? invocation.getMethod().getGenericReturnType() : invocation.getMethod().getReturnType();
  		Object arguments = ReflectionUtil.parseArguments(invocation.getMethod(), invocation.getArguments());
  
  		return jsonRpcHttpClient.invoke(invocation.getMethod().getName(), arguments, retType, extraHttpHeaders);
  	}