Categorygithub.com/degatedev/degate-sdk-golang

# README

DeGate Public SDK Connector Go

This is a lightweight library that works as a connector to DeGate public SDK

Quick Start

The SDK is compiled by Go 1.18, you can import this SDK in your Golang project:

import (
    "encoding/json"
	"github.com/degatedev/degate-sdk-golang/conf"
	"github.com/degatedev/degate-sdk-golang/degate/spot"
	"github.com/degatedev/degate-sdk-golang/log"
)
client := &spot.Client{}
var appConfig = &conf.AppConfig{}
client.SetAppConfig(appConfig)
response,err := client.Time()
if err != nil {
    log.Error("error: %v",err)
} else if !response.Success() {
    log.Error("fail: %v",response.Code)
} else {
    log.Info("success: %v",response.Data.ServerTime)
}


client = &spot.Client{}
var appConfig = &conf.AppConfig{
    AccountId: '<accountId>',
    AccountAddress: '<accountAddress>',
	AssetPrivateKey:'<DeGate AssetPrivateKey>',
}
client.SetAppConfig(appConfig)
response,err := client.Account()
if err != nil {
    log.Error("error: %v",err)
} else if !response.Success() {
    log.Error("fail: %v",response.Code)
} else {
    account,_ := json.Marshal(response.Data)
    log.Info("success: %v",string(account))
}

Please find examples folder for more endpoints

Testnet

The spot testnet is available. In order to test on testnet:

var appConfig = &conf.AppConfig{
    BaseUrl:"https://testnet.degate.com/",
}

Display meta info

DeGate API server returns weight usage in the header of each response. This is very useful to indentify the current usage. To reveal this value, simpily intial the client with ShowHeader=True as:

import (
    "encoding/json"
    "github.com/degatedev/degate-sdk-golang/conf"
    "github.com/degatedev/degate-sdk-golang/degate/spot"
    "github.com/degatedev/degate-sdk-golang/log"
)
client := &spot.Client{}
var appConfig = &conf.AppConfig{
    ShowHeader:true,
}
client.SetAppConfig(appConfig)
response,err := client.Time()
data,_ := json.Marshal(response)
log.Info("%v",string(data))

the returns will be like:

{"data":{"serverTime":1590579942001},"header":{"Content-Type":["application/json;charset=utf-8"],"Transfer-Encoding":["chunked"],...}}

Websocket

import (
	"github.com/degatedev/degate-sdk-golang/conf"
	"time"
	"github.com/degatedev/degate-sdk-golang/degate/model"
	"github.com/degatedev/degate-sdk-golang/degate/spot"
	"github.com/degatedev/degate-sdk-golang/degate/websocket"
	"github.com/degatedev/degate-sdk-golang/log"
)

conf.Conf.AddToken(&model.TokenInfo{
    Id:       0,
    Symbol:   "ETH",
})
conf.Conf.AddToken(&model.TokenInfo{
    Id:       8,
    Symbol:   "USDC",
})
client := &websocket.WebSocketClient{}
client.Init(&conf.AppConfig{})
err := client.SubscribeKline(&model.SubscribeKlineParam{
    Symbol:   "ETHUSDC",
    Interval: "1m",
}, func(message string) {
    log.Print(message)
})
if err != nil {
	log.Error("error: %v",err)
    return
}
time.Sleep(time.Minute * 30)
client.Stop()

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
Package lfshook is hook for sirupsen/logrus that used for writing the logs to local files.
No description provided by the author
No description provided by the author
No description provided by the author