I do not have the time to look after this project. It was good fun but all good things must end. If you wish to carry on then please fork this repo and go your own way.
This project is now using go1.13 with Go Modules, but should remain compatible with dep
. Also, as there are some breaking changes introduced by the latest schema changes from the remote API, I have decided to carry on development in the new v3
namespace with the project root containing the code tagged v2.x
.
import "github.com/adampointer/go-deribit/v3"
We now have the latest API methods which were recently released such as public/get_tradingview_chart_data
.
I recommend using the v3
project in your projects as all onward development will now be within this project.
Go library for using the Deribit's v2 Websocket API.
Deribit is a modern, fast BitCoin derivatives exchange.
This library is a port of the official wrapper libraries to Go.
If you wish to try it out, be kind and use my affiliate link https://www.deribit.com/reg-3027.8327
Or tip me!
btc: 3HmLfHJvrJuM48zHFY6HstUCxbuwV3dvxd
eth: 0x9Dc9129185E79211534D0039Af1C6f1ff585F5e3
ltc: MEpFjCdR3uXd6QjuJTSu3coLtcSWY3S2Hg
p.s. If you want a good BitMEX client library then try go-bitmex
Look at cmd/example/main.go
make build
example --access-key XXX --secret-key YYYYYY
There is a heartbeat which triggers every 10 seconds to keep the websocket connection alive. In the event of a connection error, the library will automatically attempt to reconnect, re-authenticate and reestablish subscriptions.
This behaviour is overrideable with the SetDisconnectHandler
method.
// Example reconnect code
exchange.SetDisconnectHandler(func (core *deribit.RPCCore) {
exg := &deribit.NewExchangeFromCore(true, core)
log.Warn("Disconnected from exchange. Attempting reconnection...")
if err := exg.Connect(); err != nil {
log.Fatalf("Error re-connecting to exchange: %s", err)
}
log.Info("Reconnected")
})
The standard logger has been used within the library. You can plug this into your own application's logger by overriding the output io.Writer.
logger := logrus.New()
exchange.SetLogOutput(logger.Writer())
The models
and client
directories are where all the requests and responses are stored. The contents is automatically generated from the schema
directory by go-swagger
.
If you need to rebuild these use make generate-models
.
The RPC subscriptions are also auto-generated. Use make generate-methods
to rebuild these. They are in rpc_subscriptions.go
.