poloniex

package module
v0.0.0-...-6524c7f Latest Latest
Warning

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

Go to latest
Published: Oct 9, 2017 License: MIT Imports: 12 Imported by: 0

README

go-poloniex

go-poloniex is an implementation of the Poloniex API (public and private) in Golang.

Based off of https://github.com/toorop/go-bittrex/

This library is more of a framework for some bots I use so it is expected that a lot of things don't work but pull requests are excepted.

Import

import "github.com/jyap808/go-poloniex"

Usage

package main

import (
	"fmt"
	"github.com/jyap808/go-poloniex"
)

const (
	API_KEY    = "YOUR_API_KEY"
	API_SECRET = "YOUR_API_SECRET"
)

func main() {
	// Poloniex client
	poloniex := poloniex.New(API_KEY, API_SECRET)

	// Get tickers
    tickers, err := poloniex.GetTickers()
	fmt.Println(err, tickers)
}

See "Examples" folder for more... examples

Stay tuned

Follow me on Twitter

Documentation

Overview

Package Poloniex is an implementation of the Poloniex API in Golang.

Index

Constants

View Source
const (
	TradeTypeBuy  = "buy"
	TradeTypeSell = "sell"
)
View Source
const (
	API_BASE = "https://poloniex.com/" // Poloniex API endpoint
)

Variables

This section is empty.

Functions

func NewClient

func NewClient(apiKey, apiSecret string) (c *client)

NewClient return a new Poloniex HTTP client

func NewClientWithCustomTimeout

func NewClientWithCustomTimeout(apiKey, apiSecret string, timeout time.Duration) (c *client)

NewClientWithCustomTimeout returns a new Poloniex HTTP client with custom timeout

Types

type Balance

type Balance struct {
	Available string `json:"available"`
	BtcValue  string `json:"btcValue"`
	OnOrders  string `json:"onOrders"`
}

type CandleStick

type CandleStick struct {
	Date            PoloniexTimestamp `json:"date"`
	High            float64           `json:"high"`
	Low             float64           `json:"low"`
	Open            float64           `json:"open"`
	Close           float64           `json:"close"`
	Volume          float64           `json:"volume"`
	QuoteVolume     float64           `json:"quoteVolume"`
	WeightedAverage float64           `json:"weightedAverage"`
}

type Currencies

type Currencies struct {
	Pair map[string]Currency
}

type Currency

type Currency struct {
	Name               string  `json:"name"`
	MaxDailyWithdrawal string  `json:"maxDailyWithdrawal"`
	TxFee              float64 `json:"txFee,string"`
	MinConf            int     `json:"minConf"`
	Disabled           int     `json:"disabled"`
	Frozen             int     `json:"frozen"`
	Delisted           int     `json:"delisted"`
}

type OrderBook

type OrderBook struct {
	Asks     [][]interface{} `json:"asks"`
	Bids     [][]interface{} `json:"bids"`
	IsFrozen int             `json:"isFrozen,string"`
	Error    string          `json:"error"`
}

type Poloniex

type Poloniex struct {
	// contains filtered or unexported fields
}

poloniex represent a poloniex client

func New

func New(apiKey, apiSecret string) *Poloniex

New returns an instantiated poloniex struct

func NewWithCustomTimeout

func NewWithCustomTimeout(apiKey, apiSecret string, timeout time.Duration) *Poloniex

New returns an instantiated poloniex struct with custom timeout

func (*Poloniex) ChartData

func (b *Poloniex) ChartData(currencyPair string, period int, start, end time.Time) (candles []*CandleStick, err error)

Returns candlestick chart data. Required GET parameters are "currencyPair", "period" (candlestick period in seconds; valid values are 300, 900, 1800, 7200, 14400, and 86400), "start", and "end". "Start" and "end" are given in UNIX timestamp format and used to specify the date range for the data returned.

func (*Poloniex) GetAllTradeHistory

func (b *Poloniex) GetAllTradeHistory(since time.Time) (trades map[string][]Trade, err error)

func (*Poloniex) GetBalances

func (b *Poloniex) GetBalances() (balances map[string]Balance, err error)

func (*Poloniex) GetCurrencies

func (b *Poloniex) GetCurrencies() (currencies Currencies, err error)

func (*Poloniex) GetOrderBook

func (b *Poloniex) GetOrderBook(market, cat string, depth int) (orderBook OrderBook, err error)

GetOrderBook is used to get retrieve the orderbook for a given market market: a string literal for the market (ex: BTC_NXT). 'all' not implemented. cat: bid, ask or both to identify the type of orderbook to return. depth: how deep of an order book to retrieve

func (*Poloniex) GetTickers

func (b *Poloniex) GetTickers() (tickers map[string]Ticker, err error)

GetTickers is used to get the ticker for all markets

func (*Poloniex) GetVolumes

func (b *Poloniex) GetVolumes() (vc VolumeCollection, err error)

GetVolumes is used to get the volume for all markets

type PoloniexDate

type PoloniexDate time.Time

func (*PoloniexDate) UnmarshalJSON

func (pd *PoloniexDate) UnmarshalJSON(data []byte) error

type PoloniexTimestamp

type PoloniexTimestamp struct {
	time.Time
}

func (*PoloniexTimestamp) UnmarshalJSON

func (pd *PoloniexTimestamp) UnmarshalJSON(data []byte) error

type Ticker

type Ticker struct {
	Last          float64 `json:"last,string"`
	LowestAsk     float64 `json:"lowestAsk,string"`
	HighestBid    float64 `json:"highestBid,string"`
	PercentChange float64 `json:"percentChange,string"`
	BaseVolume    float64 `json:"baseVolume,string"`
	QuoteVolume   float64 `json:"quoteVolume,string"`
	IsFrozen      int     `json:"isFrozen,string"`
	High24Hr      float64 `json:"high24hr,string"`
	Low24Hr       float64 `json:"low24hr,string"`
}

type Tickers

type Tickers struct {
	Pair map[string]Ticker
}

type Trade

type Trade struct {
	GlobalTradeId int64        `json:"globalTradeId"`
	TradeId       int64        `json:"tradeId,string"`
	Date          PoloniexDate `json:"date"`
	Rate          string       `json:"rate"`
	Amount        string       `json:"amount"`
	Total         string       `json:"total"`
	Fee           string       `json:"fee"`
	OrderNumber   string       `json:"orderNumber"`
	Type          TradeType    `json:"type"`
	Category      string       `json:"category"`
}

type TradeType

type TradeType string

func (*TradeType) UnmarshalJSON

func (t *TradeType) UnmarshalJSON(b []byte) error

type Volume

type Volume map[string]float64

func (*Volume) UnmarshalJSON

func (t *Volume) UnmarshalJSON(b []byte) error

type VolumeCollection

type VolumeCollection struct {
	TotalBTC  float64 `json:"totalBTC,string"`
	TotalETH  float64 `json:"totalETH,string"`
	TotalUSDT float64 `json:"totalUSDT,string"`
	TotalXMR  float64 `json:"totalXMR,string"`
	TotalXUSD float64 `json:"totalXUSD,string"`
	Volumes   map[string]Volume
}

func (*VolumeCollection) UnmarshalJSON

func (tc *VolumeCollection) UnmarshalJSON(b []byte) error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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