code: func (c *client) doTimeoutRequest(timer *time.Timer, req *http.Request) (*http.Response, error) {
  	// Do the request in the background so we can check the timeout
  	type result struct {
  		resp *http.Response
  		err  error
  	}
  	done := make(chan result, 1)
  	go func() {
  		if c.debug {
  			c.dumpRequest(req)
  		}
  		resp, err := c.httpClient.Do(req)
  		if c.debug {
  			c.dumpResponse(resp)
  		}
  		done <- result{resp, err}
  	}()
  	// Wait for the read or the timeout
  	select {
  	case r := <-done:
  		return r.resp, r.err
  	case <-timer.C:
  		return nil, errors.New("timeout on reading data from Bittrex API")
  	}
  }
docs: // doTimeoutRequest do a HTTP request with timeout