Documentation ¶
Overview ¶
account.go
Account (Signed) Endpoints for Binance Exchange API
binance.go
Wrapper for the Binance Exchange API
Authors:
Pat DePippo <patrick.depippo@dcrypt.io> Matthew Woop <matthew.woop@dcrypt.io>
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"` }