code: func (r rpc) Request(method string, endpoint string, params interface{}, holder interface{}) error {
  
  	jsonParams, err := json.Marshal(params)
  	if err != nil {
  		return err
  	}
  
  	request, err := r.createRequest(method, endpoint, jsonParams)
  	if err != nil {
  		return err
  	}
  
  	var data []byte
  	if r.mock == true { // Mock mode: Replace actual request with expected JSON from file
  		data, err = r.simulateRequest(endpoint, method)
  	} else {
  		data, err = r.executeRequest(request)
  	}
  	if err != nil {
  		return err
  	}
  	if err := json.Unmarshal(data, &holder); err != nil {
  		return err
  	}
  
  	return nil
  }
docs: // Request sends a request with params marshaled into a JSON payload in the body
  // The response value is marshaled from JSON into the specified holder struct