code: func httpParamsToArgs(rpcFunc *RPCFunc, r *http.Request) ([]reflect.Value, error) {
  	values := make([]reflect.Value, len(rpcFunc.args))
  
  	for i, name := range rpcFunc.argNames {
  		argType := rpcFunc.args[i]
  
  		values[i] = reflect.Zero(argType) // set default for that type
  
  		arg := GetParam(r, name)
  		// log.Notice("param to arg", "argType", argType, "name", name, "arg", arg)
  
  		if "" == arg {
  			continue
  		}
  
  		v, err, ok := nonJSONToArg(argType, arg)
  		if err != nil {
  			return nil, err
  		}
  		if ok {
  			values[i] = v
  			continue
  		}
  
  		values[i], err = jsonStringToArg(argType, arg)
  		if err != nil {
  			return nil, err
  		}
  	}
  
  	return values, nil
  }
docs: // Covert an http query to a list of properly typed values.
  // To be properly decoded the arg must be a concrete type from tendermint (if its an interface).