thebotguys / golang-bittrex-api

This repository is a golang porting of v2.0 Bittrex API

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

THIS PROJECT IS NOW ARCHIVED

You can use toorop/go-bittrex library to connect to Bittrex API.

golang-bittrex-api

The Bot Guy <thebotguy@protonmail.com>

Build Status

This wrapper will allow to connect to Bittrex API (version 2.0)

Getting the package

$ go get github.com/thebotguys/golang-bittrex-api/bittrex

Calling the API functions

For Public API is simple:

result, err := bittrex.APIFuncDesired(parameters)
if err != nil {
    // Handle error
}
// For example
marketSummaries, err := bittrex.GetMarketSummary("BTC-ETH")
if err != nil {
    fmt.Println("ERROR OCCURRED: ", err)
}

For Private API is almost equally simple, you have to provide an auth struct with your keys:

auth := bittrex.Auth{
    PublicKey: "YOUR-PUBLIC-KEY",
    SecretKey: "YOUR-SECRET-KEY",
}
result, err := bittrex.PrivateAPIFuncDesired(auth, parameters)
if err != nil {
    // Handle error
}
// For example
balances, err := bittrex.GetBalance(auth, "BTC")
if err != nil {
    fmt.Println("ERROR OCCURRED: ", err)
}

You are strongly advised to check if the API is online at the start of your program, with the following code:

err := bittrex.IsAPIAlive()
if err != nil {
    fmt.Println("CANNOT REACH BITTREX API SERVERS: ", err)
}

If you are VERY HARDCORE you can use an Options struct to handle all connections parameters, like Connection Timeout:

// Currently this feature is not implemented
marketSummaries, err := bittrex.GetMarketSummariesWithOpts(&bittrex.Options{
    ConnTimeout: time.Second * 30,
})
if err != nil {
    fmt.Println("ERROR OCCURRED: ", err)
}

Check out the tests (like this one) for an example of usage, but most of the times it will be as simple as the code above.

API Limits

The API limits are unknown at the moment but there is an important note, came from resolving a test error:

Due to the Bittrex anti DDoS System (Cloudflare) it’s not possible to perform more than one request per second (otherwise it will be cached, resulting in error like the one described in Issue #18)

I publicly thank @mastrolinux, which helped me in the discovery process of this (let’s call it) bug.

Socket API

Work in progress

About

This repository is a golang porting of v2.0 Bittrex API

License:Apache License 2.0


Languages

Language:Go 100.0%