docs: @SuppressWarnings("unchecked")
      public static <T extends Type> Type decodeIndexedValue(
              String rawInput, TypeReference<T> typeReference) {
          String input = Numeric.cleanHexPrefix(rawInput);
  
          try {
              Class<T> type = typeReference.getClassType();
  
              if (Bytes.class.isAssignableFrom(type)) {
                  return TypeDecoder.decodeBytes(input, (Class<Bytes>) Class.forName(type.getName()));
              } else if (Array.class.isAssignableFrom(type)
                      || BytesType.class.isAssignableFrom(type)
                      || Utf8String.class.isAssignableFrom(type)) {
                  return TypeDecoder.decodeBytes(input, Bytes32.class);
              } else {
                  return TypeDecoder.decode(input, type);
              }
          } catch (ClassNotFoundException e) {
              throw new UnsupportedOperationException("Invalid class reference provided", e);
          }
      }