bcex

package module
v0.3.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 11, 2022 License: Apache-2.0 Imports: 3 Imported by: 0

README

bcex

GoDoc Go CodeQL

NOTICE:

WORK IN PROGRESS USE AT YOUR OWN RISK

Blockchain.com Exchange Golang API

A complete golang wrapper for the Blockchain.com Exchange Websockets V1 and Rest V3 API.

For more info about Blockchain.com API read here.

Installation

go get github.com/hmedkouri/go-bcex

Usage

package main

import (
	"log"

	"github.com/hmedkouri/go-bcex"
)

func main() {
    apiKey := "YOUR-API-KEY"
	secretKey := "YOUR-SECRET-KEY"
    client := bcex.New(apiKey, secretKey)

	symbol, err := client.Rest.GetSymbol("BTC-USD")
	if err != nil {
		log.Fatalln(err)
	}
	log.Printf("GetSymbol : %#v\n", symbol)

	ticker, err := client.Rest.GetTicker("BTC-USD")
	if err != nil {
		log.Fatalln(err)
	}
	log.Printf("GetTicker : %#v\n", ticker)

	tickers, err := client.Rest.GetAllTicker()
	if err != nil {
		log.Fatalln(err)
	}
	log.Printf("GetAllTicker : %v\n", tickers)

	err = client.Ws.Start(true)
	if err != nil {
		log.Fatalln(err)
	}
	defer client.Ws.Stop()

	// subscribe to heartbeats
	err = client.Ws.SubscribeHeartbeat()
	if err != nil {
		log.Fatalln(err)
	}

	// subscribe to symbols
	err = client.Ws.SubscribeToSymbols()
	if err != nil {
		log.Fatalln(err)
	}

	for {
		select {
		case balancesMsg := <-client.Ws.Balances():
			log.Printf("received balances %+v", balancesMsg)
		case l3Msg := <-client.Ws.L3Quotes():
			log.Printf("received l3 quote %+v", l3Msg)
		case l2Msg := <-client.Ws.L2Quotes():
			log.Printf("received l2 quote %+v", l2Msg)
		case heartbeatMsg := <-client.Ws.Heartbeats():
			log.Printf("received heartbeat %+v", heartbeatMsg)
		case pricesMsg := <-client.Ws.Prices():
			log.Printf("received price %+v", pricesMsg)
		case tradesMsg := <-client.Ws.Trades():
			log.Printf("received trades %+v", tradesMsg)
		case tickerMsg := <-client.Ws.Ticker():
			log.Printf("received ticker %+v", tickerMsg)
		case tradingMsg := <-client.Ws.Trading():
			if tradingMsg.IsSnapshot() {
				log.Printf("received trading snapshot %+v", tradingMsg)
			} else if tradingMsg.IsUpdate() {
				log.Printf("received trading update %+v", tradingMsg)
			} else if tradingMsg.IsReject() {
				log.Printf("received trading reject %+v", tradingMsg)
			} else {
				log.Printf("received unknown trading msg %+v", tradingMsg)
			}
		case symbolsMsg := <-client.Ws.Symbols():
			log.Printf("received symbols %+v", symbolsMsg)
		}
	}
}

Supporting APIs

Documentation

Overview

Package bcex is a golang Api Blockchain.com V4 Rest API and V1 Websockets API

https://blockchain.info/api

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	Rest *rest.Client
	Ws   *ws.WebSocketClient
	// contains filtered or unexported fields
}

Client is the main go-bcex handle to the rest and ws clients

func New

func New(apiKey, apiSecret string) *Client

New returns an instantiated go-bcex Client struct

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL