Converts the arguments to a JSON-RPC request dict.  The 'id' field is populated
        using the id_gen function passed to the Client constructor.

        If validate_request==True on the Client constructor, the params are validated
        against the expected types for the function and a RpcException raised if they are
        invalid.

        :Parameters:
          iface_name
            Interface name to call
          func_name
            Function to call on the interface
          params
            List of parameters to pass to the function

def to_request(self, iface_name, func_name, params):
        """
        Converts the arguments to a JSON-RPC request dict.  The 'id' field is populated
        using the id_gen function passed to the Client constructor.

        If validate_request==True on the Client constructor, the params are validated
        against the expected types for the function and a RpcException raised if they are
        invalid.

        :Parameters:
          iface_name
            Interface name to call
          func_name
            Function to call on the interface
          params
            List of parameters to pass to the function
        """
        if self.validate_req:
            self.contract.validate_request(iface_name, func_name, params)
            
        method = "%s.%s" % (iface_name, func_name)
        reqid = self.id_gen()
        return { "jsonrpc": "2.0", "id": reqid, "method": method, "params": params }