binance

package module
v0.0.13 Latest Latest
Warning

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

Go to latest
Published: Aug 8, 2023 License: MIT Imports: 3 Imported by: 0

README

go-binance

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
}

type AccountRequest

type AccountRequest struct {
	RecvWindow time.Duration
	Timestamp  time.Time
}

AccountRequest represents Account request data.

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
}

type AggTradesRequest

type AggTradesRequest struct {
	Symbol    string
	FromID    int64
	StartTime time.Time
	EndTime   time.Time
	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 Client

type Client interface {
	// Ping tests connectivity.
	Ping(ctx context.Context) error
	// Time returns server time.
	Time(ctx context.Context) (time.Time, error)
	// OrderBook returns list of orders.
	OrderBook(ctx context.Context, obr OrderBookRequest) (*OrderBook, error)
	// AggTrades returns compressed/aggregate list of trades.
	AggTrades(ctx context.Context, atr AggTradesRequest) ([]*AggTrade, error)
	// Klines returns klines/candlestick data.
	Klines(ctx context.Context, kr KlinesRequest) ([]*Kline, error)
	// Ticker24 returns 24hr price change statistics.
	Ticker24(ctx context.Context, tr TickerRequest) (*Ticker24, error)
	// TickerAllPrices returns ticker data for symbols.
	TickerAllPrices(ctx context.Context) ([]*PriceTicker, error)
	// TickerAllBooks returns tickers for all books.
	TickerAllBooks(ctx context.Context) ([]*BookTicker, error)

	// NewOrder places new order and returns ProcessedOrder.
	NewOrder(ctx context.Context, nor NewOrderRequest) (*ProcessedOrder, error)
	// NewOrderTest places testing order.
	NewOrderTest(ctx context.Context, nor NewOrderRequest) error
	// QueryOrder returns data about existing order.
	QueryOrder(ctx context.Context, qor QueryOrderRequest) (*ExecutedOrder, error)
	// CancelOrder cancels order.
	CancelOrder(ctx context.Context, cor CancelOrderRequest) (*CanceledOrder, error)
	// OpenOrders returns list of open orders.
	OpenOrders(ctx context.Context, oor OpenOrdersRequest) ([]*ExecutedOrder, error)
	// AllOrders returns list of all previous orders.
	AllOrders(ctx context.Context, aor AllOrdersRequest) ([]*ExecutedOrder, error)

	// Account returns account data.
	Account(ctx context.Context, ar AccountRequest) (*Account, error)
	// MyTrades list user's trades.
	MyTrades(ctx context.Context, mtr MyTradesRequest) ([]*Trade, error)
	// Withdraw executes withdrawal.
	Withdraw(ctx context.Context, wr WithdrawRequest) (*WithdrawResult, error)
	// DepositHistory lists deposit data.
	DepositHistory(ctx context.Context, hr HistoryRequest) ([]*Deposit, error)
	// WithdrawHistory lists withdraw data.
	WithdrawHistory(ctx context.Context, hr HistoryRequest) ([]*Withdrawal, error)

	// StartUserDataStream starts stream and returns Stream with ListenKey.
	StartUserDataStream(ctx context.Context) (*Stream, error)
	// KeepAliveUserDataStream prolongs stream livespan.
	KeepAliveUserDataStream(ctx context.Context, s *Stream) error
	// CloseUserDataStream closes opened stream.
	CloseUserDataStream(ctx context.Context, s *Stream) error

	DepthWebsocket(ctx context.Context, dwr DepthWebsocketRequest) (chan *DepthEvent, chan struct{}, error)
	KlineWebsocket(ctx context.Context, kwr KlineWebsocketRequest) (chan *KlineEvent, chan struct{}, error)
	TradeWebsocket(ctx context.Context, twr TradeWebsocketRequest) (chan *AggTradeEvent, chan struct{}, error)
	UserDataWebsocket(ctx context.Context, udwr UserDataWebsocketRequest) (chan *AccountEvent, chan struct{}, error)
}

Client is wrapper for Client API.

Read web documentation for more endpoints descriptions and list of mandatory and optional params. Wrapper is not responsible for client-side validation and only sends requests further.

For each API-defined enum there's a special type and list of defined enum values to be used.

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
}

type DepthWebsocketRequest

type DepthWebsocketRequest struct {
	Symbol string
}

type Error

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

Error represents Client 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
	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 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
}

type KlineWebsocketRequest

type KlineWebsocketRequest struct {
	Symbol   string
	Interval Interval
}

type KlinesRequest

type KlinesRequest struct {
	Symbol    string
	Interval  Interval
	Limit     int
	StartTime time.Time
	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 int64 `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 Stream

type Stream struct {
	ListenKey string
}

Stream represents stream information.

Read web docs to get more information about using streams.

type Ticker24

type Ticker24 struct {
	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 TickerRequest

type TickerRequest struct {
	Symbol string
}

TickerRequest represents Ticker request data.

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 TradeWebsocketRequest

type TradeWebsocketRequest struct {
	Symbol string
}

type UserDataWebsocketRequest

type UserDataWebsocketRequest struct {
	ListenKey string
}

type WSEvent

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

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.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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