binance

package
v0.0.0-...-f37401a Latest Latest
Warning

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

Go to latest
Published: Jun 25, 2018 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	Minute         = Interval("1m")
	ThreeMinutes   = Interval("3m")
	FiveMinutes    = Interval("5m")
	FifteenMinutes = Interval("15m")
	ThirtyMinutes  = Interval("30m")
	Hour           = Interval("1h")
	TwoHours       = Interval("2h")
	FourHours      = Interval("4h")
	SixHours       = Interval("6h")
	EightHours     = Interval("8h")
	TwelveHours    = Interval("12h")
	Day            = Interval("1d")
	ThreeDays      = Interval("3d")
	Week           = Interval("1w")
	Month          = Interval("1M")
)
View Source
var (
	GTC = TimeInForce("GTC")
	IOC = TimeInForce("IOC")
)
View Source
var (
	StatusNew             = OrderStatus("NEW")
	StatusPartiallyFilled = OrderStatus("PARTIALLY_FILLED")
	StatusFilled          = OrderStatus("FILLED")
	StatusCancelled       = OrderStatus("CANCELED")
	StatusPendingCancel   = OrderStatus("PENDING_CANCEL")
	StatusRejected        = OrderStatus("REJECTED")
	StatusExpired         = OrderStatus("EXPIRED")

	TypeLimit  = OrderType("LIMIT")
	TypeMarket = OrderType("MARKET")

	SideBuy  = OrderSide("BUY")
	SideSell = OrderSide("SELL")
)

Functions

This section is empty.

Types

type Account

type Account struct {
	MakerCommision  int64
	TakerCommision  int64
	BuyerCommision  int64
	SellerCommision int64
	CanTrade        bool
	CanWithdraw     bool
	CanDeposit      bool
	Balances        []*Balance
}

Account represents user's account information.

type AccountEvent

type AccountEvent struct {
	WSEvent
	Account
}

AccountEvent ...

type AggTrade

type AggTrade struct {
	ID             int
	Price          float64
	Quantity       float64
	FirstTradeID   int
	LastTradeID    int
	Timestamp      time.Time
	BuyerMaker     bool
	BestPriceMatch bool
}

AggTrade represents aggregated trade.

type AggTradeEvent

type AggTradeEvent struct {
	WSEvent
	AggTrade
}

AggTradeEvent ...

type AggTradesRequest

type AggTradesRequest struct {
	Symbol    string
	FromID    int64
	StartTime int64
	EndTime   int64
	Limit     int
}

AggTradesRequest represents AggTrades request data.

type AllOrdersRequest

type AllOrdersRequest struct {
	Symbol     string
	OrderID    int64
	Limit      int
	RecvWindow time.Duration
	Timestamp  time.Time
}

AllOrdersRequest represents AllOrders request data.

type Balance

type Balance struct {
	Asset  string
	Free   float64
	Locked float64
}

Balance groups balance-related information.

type BookTicker

type BookTicker struct {
	Symbol   string
	BidPrice float64
	BidQty   float64
	AskPrice float64
	AskQty   float64
}

BookTicker represents book ticker data.

type CancelOrderRequest

type CancelOrderRequest struct {
	Symbol            string
	OrderID           int64
	OrigClientOrderID string
	NewClientOrderID  string
	RecvWindow        time.Duration
	Timestamp         time.Time
}

CancelOrderRequest represents CancelOrder request data.

type CanceledOrder

type CanceledOrder struct {
	Symbol            string
	OrigClientOrderID string
	OrderID           int64
	ClientOrderID     string
}

CanceledOrder represents data about canceled order.

type Deposit

type Deposit struct {
	InsertTime time.Time
	Amount     float64
	Asset      string
	Status     int
}

Deposit represents Deposit data.

type DepthEvent

type DepthEvent struct {
	WSEvent
	UpdateID int
	OrderBook
}

DepthEvent ...

type Error

type Error struct {
	Code    int    `json:"code"`
	Message string `json:"msg"`
}

Error represents Binance error structure with error code and message.

func (Error) Error

func (e Error) Error() string

Error returns formatted error message.

type ExecutedOrder

type ExecutedOrder struct {
	Symbol        string
	OrderID       int
	ClientOrderID string
	Price         float64
	OrigQty       float64
	ExecutePrice  float64
	ExecutedQty   float64
	Status        OrderStatus
	TimeInForce   TimeInForce
	Type          OrderType
	Side          OrderSide
	StopPrice     float64
	IcebergQty    float64
	Time          time.Time
}

ExecutedOrder represents data about executed order.

type HistoryRequest

type HistoryRequest struct {
	Asset      string
	Status     *int
	StartTime  time.Time
	EndTime    time.Time
	RecvWindow time.Duration
	Timestamp  time.Time
}

HistoryRequest represents history-related calls request data.

type HmacSigner

type HmacSigner struct {
	Key []byte
}

HmacSigner uses HMAC SHA256 for signing payloads.

func (*HmacSigner) Sign

func (hs *HmacSigner) Sign(payload []byte) string

Sign signs provided payload and returns encoded string sum.

type Interval

type Interval string

Interval represents interval enum.

type Kline

type Kline struct {
	OpenTime                 time.Time
	Open                     float64
	High                     float64
	Low                      float64
	Close                    float64
	Volume                   float64
	CloseTime                time.Time
	QuoteAssetVolume         float64
	NumberOfTrades           int
	TakerBuyBaseAssetVolume  float64
	TakerBuyQuoteAssetVolume float64
}

Kline represents single Kline information.

type KlineEvent

type KlineEvent struct {
	WSEvent
	Interval     Interval
	FirstTradeID int64
	LastTradeID  int64
	Final        bool
	Kline
}

KlineEvent ...

type KlinesRequest

type KlinesRequest struct {
	Symbol    string
	Interval  Interval
	Limit     int
	StartTime int64
	EndTime   int64
}

KlinesRequest represents Klines request data.

type MyTradesRequest

type MyTradesRequest struct {
	Symbol     string
	Limit      int
	FromID     int64
	RecvWindow time.Duration
	Timestamp  time.Time
}

MyTradesRequest represents MyTrades request data.

type NewOrderRequest

type NewOrderRequest struct {
	Symbol           string
	Side             OrderSide
	Type             OrderType
	TimeInForce      TimeInForce
	Quantity         float64
	Price            float64
	NewClientOrderID string
	StopPrice        float64
	IcebergQty       float64
	Timestamp        time.Time
}

NewOrderRequest represents NewOrder request data.

type OpenOrdersRequest

type OpenOrdersRequest struct {
	Symbol     string
	RecvWindow time.Duration
	Timestamp  time.Time
}

OpenOrdersRequest represents OpenOrders request data.

type Order

type Order struct {
	Price    float64
	Quantity float64
}

Order represents single order information.

type OrderBook

type OrderBook struct {
	LastUpdateID int `json:"lastUpdateId"`
	Bids         []*Order
	Asks         []*Order
}

OrderBook represents Bids and Asks.

type OrderBookRequest

type OrderBookRequest struct {
	Symbol string
	Limit  int
}

OrderBookRequest represents OrderBook request data.

type OrderSide

type OrderSide string

OrderSide represents order side enum.

type OrderStatus

type OrderStatus string

OrderStatus represents order status enum.

type OrderType

type OrderType string

OrderType represents order type enum.

type PriceTicker

type PriceTicker struct {
	Symbol string
	Price  float64
}

PriceTicker represents ticker data for price.

type ProcessedOrder

type ProcessedOrder struct {
	Symbol        string
	OrderID       int64
	ClientOrderID string
	TransactTime  time.Time
}

ProcessedOrder represents data from processed order.

type QueryOrderRequest

type QueryOrderRequest struct {
	Symbol            string
	OrderID           int64
	OrigClientOrderID string
	RecvWindow        time.Duration
	Timestamp         time.Time
}

QueryOrderRequest represents QueryOrder request data.

type Service

type Service interface {
	// GetAllSymbol 所有的可交易对
	GetAllSymbol() ([]global.TradeSymbol, error)
	// OrderBook returns list of orders.
	// OrderBook(obr OrderBookRequest) (*OrderBook, error)
	// AggTrades returns compressed/aggregate list of trades.
	AggTrades(atr AggTradesRequest) ([]*AggTrade, error)
	// GetKline returns klines/candlestick data.
	GetKline(global.KlineReq) ([]global.Kline, error)
	// Ticker24 returns 24hr price change statistics.
	Ticker24(symbol string) (*Ticker24, error)
	// TickerAllPrices returns ticker data for symbols.
	TickerAllPrices() ([]*PriceTicker, error)
	// TickerAllBooks returns tickers for all books.
	TickerAllBooks() ([]*BookTicker, error)

	// InsertOrder places new order and returns ProcessedOrder.
	InsertOrder(global.InsertReq) (global.InsertRsp, error)
	// OrderStatus returns data about existing order.
	OrderStatus(global.StatusReq) (global.StatusRsp, error)
	// CancelOrder cancels order.
	CancelOrder(global.CancelReq) error
	// OpenOrders returns list of open orders.
	OpenOrders(oor OpenOrdersRequest) ([]*ExecutedOrder, error)

	// GetFund returns account data.
	GetFund(global.FundReq) ([]global.Fund, error)
	// MyTrades list user's trades.
	MyTrades(mtr MyTradesRequest) ([]*Trade, error)
	// Withdraw executes withdrawal.
	Withdraw(wr WithdrawRequest) (*WithdrawResult, error)
	// DepositHistory lists deposit data.
	DepositHistory(hr HistoryRequest) ([]*Deposit, error)
	// WithdrawHistory lists withdraw data.
	WithdrawHistory(hr HistoryRequest) ([]*Withdrawal, error)

	// StartUserDataStream starts stream and returns Stream with ListenKey.
	StartUserDataStream() (string, error)
	// KeepAliveUserDataStream prolongs stream livespan.
	KeepAliveUserDataStream(listenKey string) error
	// CloseUserDataStream closes opened stream.
	CloseUserDataStream(listenKey string) error

	SubLateTrade(global.TradeSymbol) (chan global.LateTrade, error)
	SubTicker(global.TradeSymbol) (chan global.Ticker, error)
	SubDepth(global.TradeSymbol) (chan global.Depth, error)
	// 查询深度行情
	GetDepth(global.TradeSymbol) (global.Depth, error)
	KlineWebsocket(symbol string, intr Interval) (chan *KlineEvent, error)
	Ticker24Websocket() (chan *Ticker24, error)
	UserDataWebsocket(listenKey string) (chan *AccountEvent, error)
}

Service represents service layer for Binance API.

The main purpose for this layer is to be replaced with dummy implementation if necessary without need to replace Binance instance.

func NewAPIService

func NewAPIService(ctx context.Context, url, apiKey, apiSec string, pxy *url.URL) Service

NewAPIService creates instance of Service.

If logger or ctx are not provided, NopLogger and Background context are used as default. You can use context for one-time request cancel (e.g. when shutting down the app).

type Signer

type Signer interface {
	// Sign signs provided payload and returns encoded string sum.
	Sign(payload []byte) string
}

Signer signs provided payloads.

type Ticker24

type Ticker24 struct {
	Symbol             string
	PriceChange        float64
	PriceChangePercent float64
	WeightedAvgPrice   float64
	PrevClosePrice     float64
	LastPrice          float64
	BidPrice           float64
	AskPrice           float64
	OpenPrice          float64
	HighPrice          float64
	LowPrice           float64
	Volume             float64
	OpenTime           time.Time
	CloseTime          time.Time
	FirstID            int
	LastID             int
	Count              int
}

Ticker24 represents data for 24hr ticker.

type TimeInForce

type TimeInForce string

TimeInForce represents timeInForce enum.

type Trade

type Trade struct {
	ID              int64
	Price           float64
	Qty             float64
	Commission      float64
	CommissionAsset string
	Time            time.Time
	IsBuyer         bool
	IsMaker         bool
	IsBestMatch     bool
}

Trade represents data about trade.

type TradePair

type TradePair struct {
	Symbol string `json:"symbol"`
	Base   string `json:"baseAsset"`
	Quote  string `json:"quoteAsset"`
}

TradePair 所有的可交易对

type WSEvent

type WSEvent struct {
	Type   string
	Time   time.Time
	Symbol string
}

WSEvent ...

type WithdrawRequest

type WithdrawRequest struct {
	Asset      string
	Address    string
	Amount     float64
	Name       string
	RecvWindow time.Duration
	Timestamp  time.Time
}

WithdrawRequest represents Withdraw request data.

type WithdrawResult

type WithdrawResult struct {
	Success bool
	Msg     string
}

WithdrawResult represents Withdraw result.

type Withdrawal

type Withdrawal struct {
	Amount    float64
	Address   string
	TxID      string
	Asset     string
	ApplyTime time.Time
	Status    int
}

Withdrawal represents withdrawal data.

Jump to

Keyboard shortcuts

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