Documentation
¶
Overview ¶
account.go
Account (Signed) Endpoints for Binance Exchange API
binance.go
Wrapper for the Binance Exchange API
Authors:
Pat DePippo <[email protected]> Matthew Woop <[email protected]>
To Do:
client.go
Wrapper for the Binance Exchange API
market.go
Market Data Endpoints for the Binance Exchange API
Util Functions for Binance Api Wrapper
Index ¶
- Constants
- Variables
- type Account
- type AggTrade
- type AllOrdersQuery
- type BadRequest
- type Balance
- type Binance
- func (b *Binance) CancelOrder(query OrderQuery) (order CanceledOrder, err error)
- func (b *Binance) CheckOrder(query OrderQuery) (status OrderStatus, err error)
- func (b *Binance) Get24Hr(q SymbolQuery) (changeStats ChangeStats, err error)
- func (b *Binance) GetAccountInfo() (account Account, err error)
- func (b *Binance) GetAggTrades(q SymbolQuery) (trades []AggTrade, err error)
- func (b *Binance) GetAllOpenOrders() (orders []OrderStatus, err error)
- func (b *Binance) GetAllOrders(query AllOrdersQuery) (orders []OrderStatus, err error)
- func (b *Binance) GetAllPrices() (prices []TickerPrice, err error)
- func (b *Binance) GetBookTicker(q SymbolQuery) (bookticker BookTicker, err error)
- func (b *Binance) GetBookTickers() (booktickers []BookTicker, err error)
- func (b *Binance) GetDepositHistory() (deposits DepositList, err error)
- func (b *Binance) GetExchangeInfo() (exchangeinfo ExchangeInfo, err error)
- func (b *Binance) GetKlines(q KlineQuery) (klines []Kline, err error)
- func (b *Binance) GetLastPrice(q SymbolQuery) (price TickerPrice, err error)
- func (b *Binance) GetOpenOrders(query OpenOrdersQuery) (orders []OrderStatus, err error)
- func (b *Binance) GetOrderBook(q OrderBookQuery) (book OrderBook, err error)
- func (b *Binance) GetPositions() (positions []Balance, err error)
- func (b *Binance) GetTrades(symbol string) (trades []Trade, err error)
- func (b *Binance) GetTradesFromOrder(symbol string, id int64) (matchingTrades []Trade, err error)
- func (b *Binance) GetWithdrawHistory() (withdraws WithdrawList, err error)
- func (b *Binance) GetWithdrawalSystemStatus() (withdrawalSystemStatus WithdrawalSystemStatus, err error)
- func (b *Binance) Ping() (pingResponse PingResponse, err error)
- func (b *Binance) PlaceLimitOrder(l LimitOrder) (res PlacedOrder, err error)
- func (b *Binance) PlaceMarketOrder(m MarketOrder) (res PlacedOrder, err error)
- type BookTicker
- type CanceledOrder
- type ChangeStats
- type Client
- type Deposit
- type DepositList
- type ExchangeInfo
- type Kline
- type KlineQuery
- type LimitOrder
- type MarketOrder
- type OpenOrdersQuery
- type Order
- type OrderBook
- type OrderBookQuery
- type OrderQuery
- type OrderStatus
- type PingResponse
- type PlacedOrder
- type RateLimit
- type SymbolFilter
- type SymbolInfo
- type SymbolQuery
- type SystemStatus
- type TickerPrice
- type Trade
- type Withdraw
- type WithdrawList
- type WithdrawalSystemStatus
Constants ¶
const (
BaseUrl = "https://api.binance.com"
)
Variables ¶
var IntervalEnum = map[string]bool{ "1m": true, "3m": true, "5m": true, "15m": true, "30m": true, "1h": true, "2h": true, "4h": true, "6h": true, "8h": true, "12h": true, "1d": true, "3d": true, "1w": true, "1M": true, }
var OrderSideEnum = map[string]bool{ "BUY": true, "SELL": true, }
var OrderTIFEnum = map[string]bool{ "GTC": true, "IOC": true, }
var OrderTypeEnum = map[string]bool{ "LIMIT": true, "MARKET": true, }
Functions ¶
This section is empty.
Types ¶
type Account ¶
type Account struct {
MakerCommission int64 `json:"makerCommission"`
TakerCommission int64 `json:"takerCommission"`
BuyerCommission int64 `json:"buyerCommission"`
SellerCommission int64 `json:"sellerCommission"`
CanTrade bool `json:"canTrade"`
CanWithdraw bool `json:"canWithdraw"`
CanDeposit bool `json:"canDeposit"`
Balances []Balance `json:"balances"`
}
Result from: GET /api/v3/account
type AggTrade ¶
type AggTrade struct {
TradeId int64 `json:"a"`
Price float64 `json:"p,string"`
Quantity float64 `json:"q,string"`
FirstTradeId int64 `json:"f"`
LastTradeId int64 `json:"l"`
Timestamp int64 `json:"T"`
Maker bool `json:"m"`
BestMatch bool `json:"M"`
}
Result from: GET /api/v1/aggTrade
type AllOrdersQuery ¶
Input for: GET /api/v3/allOrders
func (*AllOrdersQuery) ValidateAllOrdersQuery ¶
func (q *AllOrdersQuery) ValidateAllOrdersQuery() error
type BadRequest ¶
type BadRequest struct {
// contains filtered or unexported fields
}
type Binance ¶
type Binance struct {
// contains filtered or unexported fields
}
func New ¶
func handleErr(r jsonResponse) error {
if !r.Success {
return errors.New(r.Message)
}
return nil
}
func (*Binance) CancelOrder ¶
func (b *Binance) CancelOrder(query OrderQuery) (order CanceledOrder, err error)
Cancel an Order
func (*Binance) CheckOrder ¶
func (b *Binance) CheckOrder(query OrderQuery) (status OrderStatus, err error)
Check the Status of an Order
func (*Binance) Get24Hr ¶
func (b *Binance) Get24Hr(q SymbolQuery) (changeStats ChangeStats, err error)
24 hour price change statistics.
func (*Binance) GetAccountInfo ¶
Get Basic Account Information
func (*Binance) GetAggTrades ¶
func (b *Binance) GetAggTrades(q SymbolQuery) (trades []AggTrade, err error)
Get compressed, aggregate trades. Trades that fill at the time, from the same order, with the same price will have the quantity aggregated.
func (*Binance) GetAllOpenOrders ¶
func (b *Binance) GetAllOpenOrders() (orders []OrderStatus, err error)
Retrieve All Open Orders
func (*Binance) GetAllOrders ¶
func (b *Binance) GetAllOrders(query AllOrdersQuery) (orders []OrderStatus, err error)
Get all account orders; active, canceled, or filled.
func (*Binance) GetAllPrices ¶
func (b *Binance) GetAllPrices() (prices []TickerPrice, err error)
Latest price for all symbols.
func (*Binance) GetBookTicker ¶
func (b *Binance) GetBookTicker(q SymbolQuery) (bookticker BookTicker, err error)
Best price/qty on the order book for one symbol
func (*Binance) GetBookTickers ¶
func (b *Binance) GetBookTickers() (booktickers []BookTicker, err error)
Best price/qty on the order book for all symbols.
func (*Binance) GetDepositHistory ¶
func (b *Binance) GetDepositHistory() (deposits DepositList, err error)
Retrieves all deposits
func (*Binance) GetExchangeInfo ¶
func (b *Binance) GetExchangeInfo() (exchangeinfo ExchangeInfo, err error)
Exchange filters for all symbols
func (*Binance) GetKlines ¶
func (b *Binance) GetKlines(q KlineQuery) (klines []Kline, err error)
Kline/candlestick bars for a symbol. Klines are uniquely identified by their open time.
func (*Binance) GetLastPrice ¶
func (b *Binance) GetLastPrice(q SymbolQuery) (price TickerPrice, err error)
Latest price for an individual symbol
func (*Binance) GetOpenOrders ¶
func (b *Binance) GetOpenOrders(query OpenOrdersQuery) (orders []OrderStatus, err error)
Retrieve All Open Orders for a given symbol
func (*Binance) GetOrderBook ¶
func (b *Binance) GetOrderBook(q OrderBookQuery) (book OrderBook, err error)
Get order book
func (*Binance) GetPositions ¶
Filter Basic Account Information To Retrieve Current Holdings
func (*Binance) GetTradesFromOrder ¶
func (*Binance) GetWithdrawHistory ¶
func (b *Binance) GetWithdrawHistory() (withdraws WithdrawList, err error)
Retrieves all withdrawals
func (*Binance) GetWithdrawalSystemStatus ¶
func (b *Binance) GetWithdrawalSystemStatus() (withdrawalSystemStatus WithdrawalSystemStatus, err error)
Ping Withdrawal API. Status is returned in response.
func (*Binance) Ping ¶
func (b *Binance) Ping() (pingResponse PingResponse, err error)
Ping Rest API. If no error is returned, API is up and running.
func (*Binance) PlaceLimitOrder ¶
func (b *Binance) PlaceLimitOrder(l LimitOrder) (res PlacedOrder, err error)
Place a Limit Order
func (*Binance) PlaceMarketOrder ¶
func (b *Binance) PlaceMarketOrder(m MarketOrder) (res PlacedOrder, err error)
Place a Market Order
type BookTicker ¶
type BookTicker struct {
Symbol string `json:"symbol"`
BidPrice float64 `json:"bidPrice,string"`
BidQuantity float64 `json:"bidQty,string"`
AskPrice float64 `json:"askPrice,string"`
AskQuantity float64 `json:"askQty,string"`
}
Result from: GET /api/v1/allBookTickers
type CanceledOrder ¶
type CanceledOrder struct {
Symbol string `json:"symbol"`
OrigClientOrderId string `json:"origClientOrderId"`
OrderId int64 `json:"orderId"`
ClientOrderId string `json:"clientOrderId"`
}
Result from: DELETE /api/v3/order
type ChangeStats ¶
type ChangeStats struct {
PriceChange float64 `json:"priceChange,string"`
PriceChangePercent float64 `json:"priceChangePercent,string"`
WeightedAvgPrice float64 `json:"weightedAvgPrice,string"`
PrevClosePrice float64 `json:"prevClosePrice,string"`
LastPrice float64 `json:"lastPrice,string"`
BidPrice float64 `json:"bidPrice,string"`
AskPrice float64 `json:"askPrice,string"`
OpenPrice float64 `json:"openPrice,string"`
HighPrice float64 `json:"highPrice,string"`
LowPrice float64 `json:"lowPrice,string"`
Volume float64 `json:"volume,string"`
OpenTime int64 `json:"openTime"`
CloseTime int64 `json:"closeTime"`
FirstId int64 `json:"firstId"`
LastId int64 `json:"lastId"`
Count int64 `json:"count"`
}
Result from: GET /api/v1/ticker/24hr
type Deposit ¶
type Deposit struct {
InsertTime int64 `json:"insertTime"`
Amount float64 `json:"amount"`
Asset string `json:"asset"`
Address string `json:"address"`
TxId string `json:"txId"`
Status int64 `json:"status"`
}
Result from: GET /api/v3/depositHistory
type DepositList ¶
type DepositList struct {
Deposits []Deposit `json:"depositList"`
}
type ExchangeInfo ¶
type ExchangeInfo struct {
ExchangeFilters []string `json:"ExchangeFilters"`
RateLimits []RateLimit `json:"rateLimits"`
ServerTime int64 `json:"serverTime"`
Symbols []SymbolInfo `json:"symbols"`
TimeZone string `json:"timezone"`
}
type Kline ¶
type Kline struct {
OpenTime int64
Open float64
High float64
Low float64
Close float64
Volume float64
CloseTime int64
QuoteVolume float64
NumTrades int64
TakerBaseVolume float64
TakerQuoteVolume float64
}
func (*Kline) UnmarshalJSON ¶
Custom Unmarshal function to handle response data format
type KlineQuery ¶
Input for: Get /api/v1/klines
func (*KlineQuery) ValidateKlineQuery ¶
func (q *KlineQuery) ValidateKlineQuery() error
type LimitOrder ¶
type LimitOrder struct {
Symbol string
Side string
Type string
TimeInForce string
Quantity float64
Price float64
RecvWindow int64
}
Input for: POST /api/v3/order
func (*LimitOrder) ValidateLimitOrder ¶
func (l *LimitOrder) ValidateLimitOrder() error
Validating a Limit Order
type MarketOrder ¶
func (*MarketOrder) ValidateMarketOrder ¶
func (m *MarketOrder) ValidateMarketOrder() error
type OpenOrdersQuery ¶
Input for: GET /api/v3/openOrders
func (*OpenOrdersQuery) ValidateOpenOrdersQuery ¶
func (q *OpenOrdersQuery) ValidateOpenOrdersQuery() error
type Order ¶
func (*Order) UnmarshalJSON ¶
Custom Unmarshal function to handle response data format
type OrderBook ¶
type OrderBook struct {
LastUpdateId int64 `json:"lastUpdateId"`
Bids []Order `json:"bids"`
Asks []Order `json:"asks"`
}
Result from: GET /api/v1/depth
type OrderBookQuery ¶
Input for: GET /api/v1/depth
func (*OrderBookQuery) ValidateOrderBookQuery ¶
func (q *OrderBookQuery) ValidateOrderBookQuery() error
type OrderQuery ¶
Input for: GET & DELETE /api/v3/order
func (*OrderQuery) ValidateOrderQuery ¶
func (q *OrderQuery) ValidateOrderQuery() error
type OrderStatus ¶
type OrderStatus struct {
Symbol string `json:"symbol"`
OrderId int64 `json:"orderId"`
ClientOrderId string `json:"clientOrderId"`
Price float64 `json:"price,string"`
OrigQty float64 `json:"origQty,string"`
ExecutedQty float64 `json:"executedQty,string"`
Status string `json:"status"`
TimeInForce string `json:"timeInForce"`
Type string `json:"type"`
Side string `json:"side"`
StopPrice float64 `json:"stopPrice,string"`
IcebergQty float64 `json:"icebergQty,string"`
Time int64 `json:"time"`
}
Result from: GET /api/v3/order
type PingResponse ¶
type PingResponse struct{}
type PlacedOrder ¶
type PlacedOrder struct {
Symbol string `json:"symbol"`
OrderId int64 `json:"orderId"`
ClientOrderId string `json:"clientOrderId"`
TransactTime int64 `json:"transactTime"`
}
Result from: POST /api/v3/order
type SymbolFilter ¶
type SymbolFilter struct {
Type string `json:"filterType"`
MinPrice float64 `json:"minPrice,string"`
MaxPrice float64 `json:"maxPrice,string"`
TickSize float64 `json:"tickSize,string"`
StepSize float64 `json:"stepSize,string"`
MinQty float64 `json:"minQty,string"`
MaxQty float64 `json:"maxQty,string"`
MinNotional float64 `json:"minNotional,string"`
}
type SymbolInfo ¶
type SymbolInfo struct {
Symbol string `json:"symbol"`
BaseAsset string `json:"baseAsset"`
QuotePrecision int64 `json:"quotePrecision"`
BaseAssetPrecision int64 `json:"baseAssetPrecision"`
Status string `json:"status"`
OrderTypes []string `json:"orderTypes"`
Filters []SymbolFilter `json:"filters"`
QuoteAsset string `json:"quoteAsset"`
IceBergAllowed bool `json:"icebergAllowed"`
}
type SymbolQuery ¶
type SymbolQuery struct {
Symbol string
}
Input for: GET /api/v1/24hr & /api/v1/aggTrades
func (*SymbolQuery) ValidateSymbolQuery ¶
func (q *SymbolQuery) ValidateSymbolQuery() error
type SystemStatus ¶
type SystemStatus int64
const ( SystemStatusNormal SystemStatus = 0 SystemStatusMaintenance SystemStatus = 1 )
type TickerPrice ¶
Result from: GET /api/v1/allPrices
type Trade ¶
type Trade struct {
Id int64 `json:"id"`
OrderId int64 `json:"orderId"`
Price float64 `json:"price,string"`
Quantity float64 `json:"qty,string"`
Commission float64 `json:"commission,string"`
CommissionAsset string `json:"commissionAsset"`
Time int64 `json:"time"`
IsBuyer bool `json:"isBuyer"`
IsMaker bool `json:"isMaker"`
IsBestMatch bool `json:"isBestMatch"`
}
Result from: GET /api/v3/myTrades
type Withdraw ¶
type Withdraw struct {
Id string `json:"id"`
Amount float64 `json:"amount"`
Address string `json:"address"`
Asset string `json:"asset"`
TxId string `json:"txId"`
ApplyTime int64 `json:"applyTime"`
Status int64 `json:"status"`
}
Result from: GET /api/v3/withdrawHistory
type WithdrawList ¶
type WithdrawList struct {
Withdraws []Withdraw `json:"withdrawList"`
}
type WithdrawalSystemStatus ¶
type WithdrawalSystemStatus struct {
Status SystemStatus `json:"status"`
Msg string `json:"msg"`
}