func (a apiKeyAuthentication) authenticate(req *http.Request, endpoint string, params []byte) error {

	nonce := strconv.FormatInt(time.Now().UTC().UnixNano(), 10)
	message := nonce + endpoint + string(params) //As per Coinbase Documentation

	req.Header.Set("ACCESS_KEY", a.Key)

	h := hmac.New(sha256.New, []byte(a.Secret))
	h.Write([]byte(message))

	signature := hex.EncodeToString(h.Sum(nil))

	req.Header.Set("ACCESS_SIGNATURE", signature)
	req.Header.Set("ACCESS_NONCE", nonce)

	return nil
}
func (a apiKeyAuthentication) authenticate(req *http.Request, endpoint string, params []byte) error {

	nonce := strconv.FormatInt(time.Now().UTC().UnixNano(), 10)
	message := nonce + endpoint + string(params) 

	req.Header.Set("ACCESS_KEY", a.Key)

	h := hmac.New(sha256.New, []byte(a.Secret))
	h.Write([]byte(message))

	signature := hex.EncodeToString(h.Sum(nil))

	req.Header.Set("ACCESS_SIGNATURE", signature)
	req.Header.Set("ACCESS_NONCE", nonce)

	return nil
}
func ( a apiKeyAuthentication ) authenticate ( req * http . Request , endpoint string , params [ ] byte ) error { nonce := strconv . FormatInt ( time . Now ( ) . UTC ( ) . UnixNano ( ) , 10 ) message := nonce + endpoint + string ( params ) //As per Coinbase Documentation req . Header . Set ( " " , a . Key ) h := hmac . New ( sha256 . New , [ ] byte ( a . Secret ) ) h . Write ( [ ] byte ( message ) ) signature := hex . EncodeToString ( h . Sum ( nil ) ) req . Header . Set ( " " , signature ) req . Header . Set ( " " , nonce ) return nil }
// API Key + Secret authentication requires a request header of the HMAC SHA-256
// signature of the "message" as well as an incrementing nonce and the API key
API Key + Secret authentication requires a request header of the HMAC SHA - 256 signature of the message as well as an incrementing nonce and the API key