From 4297f8e9bd4b30c347547d443ebcff604ff8fd29 Mon Sep 17 00:00:00 2001 From: Adrian Gallagher Date: Fri, 9 Oct 2015 23:07:59 +1100 Subject: [PATCH] Renamed BTCChina to BTCC after exchange rebrand. --- README.md | 2 +- btcchinahttp.go => btcchttp.go | 208 +++++++++++------------ btcchinawebsocket.go => btccwebsocket.go | 46 ++--- config_example.json | 2 +- events.go | 8 +- main.go | 26 +-- 6 files changed, 146 insertions(+), 146 deletions(-) rename btcchinahttp.go => btcchttp.go (66%) rename btcchinawebsocket.go => btccwebsocket.go (68%) diff --git a/README.md b/README.md index cdb4eca6..d360a635 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ A cryptocurrency trading bot supporting multiple exchanges written in Golang. | ANXPRO | Yes | No | NA | | Bitfinex | Yes | Yes | NA | | Bitstamp | Yes | Yes | NA | -| BTCChina | Yes | Yes | No | +| BTCC | Yes | Yes | No | | BTCE | Yes | NA | NA | | BTCMarkets | Yes | NA | NA | | Coinbase | Yes | Yes | No| diff --git a/btcchinahttp.go b/btcchttp.go similarity index 66% rename from btcchinahttp.go rename to btcchttp.go index 90bd8835..69bebe8d 100644 --- a/btcchinahttp.go +++ b/btcchttp.go @@ -11,34 +11,34 @@ import ( ) const ( - BTCCHINA_API_URL = "https://api.btcchina.com/" - BTCCHINA_API_AUTHENTICATED_METHOD = "api_trade_v1.php" - BTCCHINA_API_VER = "2.0.1.3" - BTCCHINA_ORDER_BUY = "buyOrder2" - BTCCHINA_ORDER_SELL = "sellOrder2" - BTCCHINA_ORDER_CANCEL = "cancelOrder" - BTCCHINA_ICEBERG_BUY = "buyIcebergOrder" - BTCCHINA_ICEBERG_SELL = "sellIcebergOrder" - BTCCHINA_ICEBERG_ORDER = "getIcebergOrder" - BTCCHINA_ICEBERG_ORDERS = "getIcebergOrders" - BTCCHINA_ICEBERG_CANCEL = "cancelIcebergOrder" - BTCCHINA_ACCOUNT_INFO = "getAccountInfo" - BTCCHINA_DEPOSITS = "getDeposits" - BTCCHINA_MARKETDEPTH = "getMarketDepth2" - BTCCHINA_ORDER = "getOrder" - BTCCHINA_ORDERS = "getOrders" - BTCCHINA_TRANSACTIONS = "getTransactions" - BTCCHINA_WITHDRAWAL = "getWithdrawal" - BTCCHINA_WITHDRAWALS = "getWithdrawals" - BTCCHINA_WITHDRAWAL_REQUEST = "requestWithdrawal" - BTCCHINA_STOPORDER_BUY = "buyStopOrder" - BTCCHINA_STOPORDER_SELL = "sellStopOrder" - BTCCHINA_STOPORDER_CANCEL = "cancelStopOrder" - BTCCHINA_STOPORDER = "getStopOrder" - BTCCHINA_STOPORDERS = "getStopOrders" + BTCC_API_URL = "https://api.btcc.com/" + BTCC_API_AUTHENTICATED_METHOD = "api_trade_v1.php" + BTCC_API_VER = "2.0.1.3" + BTCC_ORDER_BUY = "buyOrder2" + BTCC_ORDER_SELL = "sellOrder2" + BTCC_ORDER_CANCEL = "cancelOrder" + BTCC_ICEBERG_BUY = "buyIcebergOrder" + BTCC_ICEBERG_SELL = "sellIcebergOrder" + BTCC_ICEBERG_ORDER = "getIcebergOrder" + BTCC_ICEBERG_ORDERS = "getIcebergOrders" + BTCC_ICEBERG_CANCEL = "cancelIcebergOrder" + BTCC_ACCOUNT_INFO = "getAccountInfo" + BTCC_DEPOSITS = "getDeposits" + BTCC_MARKETDEPTH = "getMarketDepth2" + BTCC_ORDER = "getOrder" + BTCC_ORDERS = "getOrders" + BTCC_TRANSACTIONS = "getTransactions" + BTCC_WITHDRAWAL = "getWithdrawal" + BTCC_WITHDRAWALS = "getWithdrawals" + BTCC_WITHDRAWAL_REQUEST = "requestWithdrawal" + BTCC_STOPORDER_BUY = "buyStopOrder" + BTCC_STOPORDER_SELL = "sellStopOrder" + BTCC_STOPORDER_CANCEL = "cancelStopOrder" + BTCC_STOPORDER = "getStopOrder" + BTCC_STOPORDERS = "getStopOrders" ) -type BTCChina struct { +type BTCC struct { Name string Enabled bool Verbose bool @@ -52,7 +52,7 @@ type BTCChina struct { EnabledPairs []string } -type BTCChinaTicker struct { +type BTCCTicker struct { High float64 `json:",string"` Low float64 `json:",string"` Buy float64 `json:",string"` @@ -65,7 +65,7 @@ type BTCChinaTicker struct { Open float64 `json:",string"` } -type BTCChinaProfile struct { +type BTCCProfile struct { Username string TradePasswordEnabled bool `json:"trade_password_enabled,bool"` OTPEnabled bool `json:"otp_enabled,bool"` @@ -81,7 +81,7 @@ type BTCChinaProfile struct { APIKeyPermission int64 `json:"api_key_permission"` } -type BTCChinaCurrencyGeneric struct { +type BTCCCurrencyGeneric struct { Currency string Symbol string Amount string @@ -89,7 +89,7 @@ type BTCChinaCurrencyGeneric struct { AmountDecimal float64 `json:"amount_decimal"` } -type BTCChinaOrder struct { +type BTCCOrder struct { ID int64 Type string Price float64 @@ -98,16 +98,16 @@ type BTCChinaOrder struct { AmountOrig float64 `json:"amount_original"` Date int64 Status string - Detail BTCChinaOrderDetail + Detail BTCCOrderDetail } -type BTCChinaOrderDetail struct { +type BTCCOrderDetail struct { Dateline int64 Price float64 Amount float64 } -type BTCChinaWithdrawal struct { +type BTCCWithdrawal struct { ID int64 Address string Currency string @@ -117,7 +117,7 @@ type BTCChinaWithdrawal struct { Status string } -type BTCChinaDeposit struct { +type BTCCDeposit struct { ID int64 Address string Currency string @@ -126,17 +126,17 @@ type BTCChinaDeposit struct { Status string } -type BTCChinaBidAsk struct { +type BTCCBidAsk struct { Price float64 Amount float64 } -type BTCChinaDepth struct { - Bid []BTCChinaBidAsk - Ask []BTCChinaBidAsk +type BTCCDepth struct { + Bid []BTCCBidAsk + Ask []BTCCBidAsk } -type BTCChinaTransaction struct { +type BTCCTransaction struct { ID int64 Type string BTCAmount float64 `json:"btc_amount"` @@ -145,7 +145,7 @@ type BTCChinaTransaction struct { Date int64 } -type BTCChinaIcebergOrder struct { +type BTCCIcebergOrder struct { ID int64 Type string Price float64 @@ -158,7 +158,7 @@ type BTCChinaIcebergOrder struct { Status string } -type BTCChinaStopOrder struct { +type BTCCStopOrder struct { ID int64 Type string StopPrice float64 `json:"stop_price"` @@ -172,8 +172,8 @@ type BTCChinaStopOrder struct { OrderID int64 `json:"order_id"` } -func (b *BTCChina) SetDefaults() { - b.Name = "BTC China" +func (b *BTCC) SetDefaults() { + b.Name = "BTCC" b.Enabled = true b.Fee = 0 b.Verbose = false @@ -181,28 +181,28 @@ func (b *BTCChina) SetDefaults() { b.RESTPollingDelay = 10 } -func (b *BTCChina) GetName() string { +func (b *BTCC) GetName() string { return b.Name } -func (b *BTCChina) SetEnabled(enabled bool) { +func (b *BTCC) SetEnabled(enabled bool) { b.Enabled = enabled } -func (b *BTCChina) IsEnabled() bool { +func (b *BTCC) IsEnabled() bool { return b.Enabled } -func (b *BTCChina) SetAPIKeys(apiKey, apiSecret string) { +func (b *BTCC) SetAPIKeys(apiKey, apiSecret string) { b.APIKey = apiKey b.APISecret = apiSecret } -func (b *BTCChina) GetFee() float64 { +func (b *BTCC) GetFee() float64 { return b.Fee } -func (b *BTCChina) Run() { +func (b *BTCC) Run() { if b.Verbose { log.Printf("%s Websocket: %s.", b.GetName(), IsEnabled(b.Websocket)) log.Printf("%s polling delay: %ds.\n", b.GetName(), b.RESTPollingDelay) @@ -222,11 +222,11 @@ func (b *BTCChina) Run() { tickerLastUSD, _ := ConvertCurrency(ticker.Last, "CNY", "USD") tickerHighUSD, _ := ConvertCurrency(ticker.High, "CNY", "USD") tickerLowUSD, _ := ConvertCurrency(ticker.Low, "CNY", "USD") - log.Printf("BTCChina %s: Last %f (%f) High %f (%f) Low %f (%f) Volume %f\n", currency, tickerLastUSD, ticker.Last, tickerHighUSD, ticker.High, tickerLowUSD, ticker.Low, ticker.Vol) + log.Printf("BTCC %s: Last %f (%f) High %f (%f) Low %f (%f) Volume %f\n", currency, tickerLastUSD, ticker.Last, tickerHighUSD, ticker.High, tickerLowUSD, ticker.Low, ticker.Vol) AddExchangeInfo(b.GetName(), StringToUpper(currency[0:3]), StringToUpper(currency[3:]), ticker.Last, ticker.Vol) AddExchangeInfo(b.GetName(), StringToUpper(currency[0:3]), "USD", tickerLastUSD, ticker.Vol) } else { - log.Printf("BTCChina %s: Last %f High %f Low %f Volume %f\n", currency, ticker.Last, ticker.High, ticker.Low, ticker.Vol) + log.Printf("BTCC %s: Last %f High %f Low %f Volume %f\n", currency, ticker.Last, ticker.High, ticker.Low, ticker.Vol) AddExchangeInfo(b.GetName(), StringToUpper(currency[0:3]), StringToUpper(currency[3:]), ticker.Last, ticker.Vol) } }() @@ -235,23 +235,23 @@ func (b *BTCChina) Run() { } } -func (b *BTCChina) GetTicker(symbol string) BTCChinaTicker { +func (b *BTCC) GetTicker(symbol string) BTCCTicker { type Response struct { - Ticker BTCChinaTicker + Ticker BTCCTicker } resp := Response{} - req := fmt.Sprintf("%sdata/ticker?market=%s", BTCCHINA_API_URL, symbol) + req := fmt.Sprintf("%sdata/ticker?market=%s", BTCC_API_URL, symbol) err := SendHTTPGetRequest(req, true, &resp) if err != nil { log.Println(err) - return BTCChinaTicker{} + return BTCCTicker{} } return resp.Ticker } -func (b *BTCChina) GetTradesLast24h(symbol string) bool { - req := fmt.Sprintf("%sdata/trades?market=%s", BTCCHINA_API_URL, symbol) +func (b *BTCC) GetTradesLast24h(symbol string) bool { + req := fmt.Sprintf("%sdata/trades?market=%s", BTCC_API_URL, symbol) err := SendHTTPGetRequest(req, true, nil) if err != nil { log.Println(err) @@ -260,8 +260,8 @@ func (b *BTCChina) GetTradesLast24h(symbol string) bool { return true } -func (b *BTCChina) GetTradeHistory(symbol string, limit, sinceTid int64, time time.Time) bool { - req := fmt.Sprintf("%sdata/historydata?market=%s", BTCCHINA_API_URL, symbol) +func (b *BTCC) GetTradeHistory(symbol string, limit, sinceTid int64, time time.Time) bool { + req := fmt.Sprintf("%sdata/historydata?market=%s", BTCC_API_URL, symbol) v := url.Values{} if limit > 0 { @@ -287,8 +287,8 @@ func (b *BTCChina) GetTradeHistory(symbol string, limit, sinceTid int64, time ti return true } -func (b *BTCChina) GetOrderBook(symbol string, limit int) bool { - req := fmt.Sprintf("%sdata/orderbook?market=%s&limit=%d", BTCCHINA_API_URL, symbol, limit) +func (b *BTCC) GetOrderBook(symbol string, limit int) bool { + req := fmt.Sprintf("%sdata/orderbook?market=%s&limit=%d", BTCC_API_URL, symbol, limit) err := SendHTTPGetRequest(req, true, nil) if err != nil { log.Println(err) @@ -297,21 +297,21 @@ func (b *BTCChina) GetOrderBook(symbol string, limit int) bool { return true } -func (b *BTCChina) GetAccountInfo(infoType string) { +func (b *BTCC) GetAccountInfo(infoType string) { params := make([]interface{}, 0) if len(infoType) > 0 { params = append(params, infoType) } - err := b.SendAuthenticatedHTTPRequest(BTCCHINA_ACCOUNT_INFO, params) + err := b.SendAuthenticatedHTTPRequest(BTCC_ACCOUNT_INFO, params) if err != nil { log.Println(err) } } -func (b *BTCChina) PlaceOrder(buyOrder bool, price, amount float64, market string) { +func (b *BTCC) PlaceOrder(buyOrder bool, price, amount float64, market string) { params := make([]interface{}, 0) params = append(params, strconv.FormatFloat(price, 'f', -1, 64)) params = append(params, strconv.FormatFloat(amount, 'f', -1, 64)) @@ -320,9 +320,9 @@ func (b *BTCChina) PlaceOrder(buyOrder bool, price, amount float64, market strin params = append(params, market) } - req := BTCCHINA_ORDER_BUY + req := BTCC_ORDER_BUY if !buyOrder { - req = BTCCHINA_ORDER_SELL + req = BTCC_ORDER_SELL } err := b.SendAuthenticatedHTTPRequest(req, params) @@ -332,7 +332,7 @@ func (b *BTCChina) PlaceOrder(buyOrder bool, price, amount float64, market strin } } -func (b *BTCChina) CancelOrder(orderID int64, market string) { +func (b *BTCC) CancelOrder(orderID int64, market string) { params := make([]interface{}, 0) params = append(params, orderID) @@ -340,14 +340,14 @@ func (b *BTCChina) CancelOrder(orderID int64, market string) { params = append(params, market) } - err := b.SendAuthenticatedHTTPRequest(BTCCHINA_ORDER_CANCEL, params) + err := b.SendAuthenticatedHTTPRequest(BTCC_ORDER_CANCEL, params) if err != nil { log.Println(err) } } -func (b *BTCChina) GetDeposits(currency string, pending bool) { +func (b *BTCC) GetDeposits(currency string, pending bool) { params := make([]interface{}, 0) params = append(params, currency) @@ -355,14 +355,14 @@ func (b *BTCChina) GetDeposits(currency string, pending bool) { params = append(params, pending) } - err := b.SendAuthenticatedHTTPRequest(BTCCHINA_DEPOSITS, params) + err := b.SendAuthenticatedHTTPRequest(BTCC_DEPOSITS, params) if err != nil { log.Println(err) } } -func (b *BTCChina) GetMarketDepth(market string, limit int64) { +func (b *BTCC) GetMarketDepth(market string, limit int64) { params := make([]interface{}, 0) if limit > 0 { @@ -373,14 +373,14 @@ func (b *BTCChina) GetMarketDepth(market string, limit int64) { params = append(params, market) } - err := b.SendAuthenticatedHTTPRequest(BTCCHINA_MARKETDEPTH, params) + err := b.SendAuthenticatedHTTPRequest(BTCC_MARKETDEPTH, params) if err != nil { log.Println(err) } } -func (b *BTCChina) GetOrder(orderID int64, market string, detailed bool) { +func (b *BTCC) GetOrder(orderID int64, market string, detailed bool) { params := make([]interface{}, 0) params = append(params, orderID) @@ -392,14 +392,14 @@ func (b *BTCChina) GetOrder(orderID int64, market string, detailed bool) { params = append(params, detailed) } - err := b.SendAuthenticatedHTTPRequest(BTCCHINA_ORDER, params) + err := b.SendAuthenticatedHTTPRequest(BTCC_ORDER, params) if err != nil { log.Println(err) } } -func (b *BTCChina) GetOrders(openonly bool, market string, limit, offset, since int64, detailed bool) { +func (b *BTCC) GetOrders(openonly bool, market string, limit, offset, since int64, detailed bool) { params := make([]interface{}, 0) if openonly { @@ -426,14 +426,14 @@ func (b *BTCChina) GetOrders(openonly bool, market string, limit, offset, since params = append(params, detailed) } - err := b.SendAuthenticatedHTTPRequest(BTCCHINA_ORDERS, params) + err := b.SendAuthenticatedHTTPRequest(BTCC_ORDERS, params) if err != nil { log.Println(err) } } -func (b *BTCChina) GetTransactions(transType string, limit, offset, since int64, sinceType string) { +func (b *BTCC) GetTransactions(transType string, limit, offset, since int64, sinceType string) { params := make([]interface{}, 0) if len(transType) > 0 { @@ -456,14 +456,14 @@ func (b *BTCChina) GetTransactions(transType string, limit, offset, since int64, params = append(params, sinceType) } - err := b.SendAuthenticatedHTTPRequest(BTCCHINA_TRANSACTIONS, params) + err := b.SendAuthenticatedHTTPRequest(BTCC_TRANSACTIONS, params) if err != nil { log.Println(err) } } -func (b *BTCChina) GetWithdrawal(withdrawalID int64, currency string) { +func (b *BTCC) GetWithdrawal(withdrawalID int64, currency string) { params := make([]interface{}, 0) params = append(params, withdrawalID) @@ -471,14 +471,14 @@ func (b *BTCChina) GetWithdrawal(withdrawalID int64, currency string) { params = append(params, currency) } - err := b.SendAuthenticatedHTTPRequest(BTCCHINA_WITHDRAWAL, params) + err := b.SendAuthenticatedHTTPRequest(BTCC_WITHDRAWAL, params) if err != nil { log.Println(err) } } -func (b *BTCChina) GetWithdrawals(currency string, pending bool) { +func (b *BTCC) GetWithdrawals(currency string, pending bool) { params := make([]interface{}, 0) params = append(params, currency) @@ -486,26 +486,26 @@ func (b *BTCChina) GetWithdrawals(currency string, pending bool) { params = append(params, pending) } - err := b.SendAuthenticatedHTTPRequest(BTCCHINA_WITHDRAWALS, params) + err := b.SendAuthenticatedHTTPRequest(BTCC_WITHDRAWALS, params) if err != nil { log.Println(err) } } -func (b *BTCChina) RequestWithdrawal(currency string, amount float64) { +func (b *BTCC) RequestWithdrawal(currency string, amount float64) { params := make([]interface{}, 0) params = append(params, currency) params = append(params, amount) - err := b.SendAuthenticatedHTTPRequest(BTCCHINA_WITHDRAWAL_REQUEST, params) + err := b.SendAuthenticatedHTTPRequest(BTCC_WITHDRAWAL_REQUEST, params) if err != nil { log.Println(err) } } -func (b *BTCChina) IcebergOrder(buyOrder bool, price, amount, discAmount, variance float64, market string) { +func (b *BTCC) IcebergOrder(buyOrder bool, price, amount, discAmount, variance float64, market string) { params := make([]interface{}, 0) params = append(params, strconv.FormatFloat(price, 'f', -1, 64)) params = append(params, strconv.FormatFloat(amount, 'f', -1, 64)) @@ -516,9 +516,9 @@ func (b *BTCChina) IcebergOrder(buyOrder bool, price, amount, discAmount, varian params = append(params, market) } - req := BTCCHINA_ICEBERG_BUY + req := BTCC_ICEBERG_BUY if !buyOrder { - req = BTCCHINA_ICEBERG_SELL + req = BTCC_ICEBERG_SELL } err := b.SendAuthenticatedHTTPRequest(req, params) @@ -528,7 +528,7 @@ func (b *BTCChina) IcebergOrder(buyOrder bool, price, amount, discAmount, varian } } -func (b *BTCChina) GetIcebergOrder(orderID int64, market string) { +func (b *BTCC) GetIcebergOrder(orderID int64, market string) { params := make([]interface{}, 0) params = append(params, orderID) @@ -536,14 +536,14 @@ func (b *BTCChina) GetIcebergOrder(orderID int64, market string) { params = append(params, market) } - err := b.SendAuthenticatedHTTPRequest(BTCCHINA_ICEBERG_ORDER, params) + err := b.SendAuthenticatedHTTPRequest(BTCC_ICEBERG_ORDER, params) if err != nil { log.Println(err) } } -func (b *BTCChina) GetIcebergOrders(limit, offset int64, market string) { +func (b *BTCC) GetIcebergOrders(limit, offset int64, market string) { params := make([]interface{}, 0) if limit > 0 { @@ -558,14 +558,14 @@ func (b *BTCChina) GetIcebergOrders(limit, offset int64, market string) { params = append(params, market) } - err := b.SendAuthenticatedHTTPRequest(BTCCHINA_ICEBERG_ORDERS, params) + err := b.SendAuthenticatedHTTPRequest(BTCC_ICEBERG_ORDERS, params) if err != nil { log.Println(err) } } -func (b *BTCChina) CancelIcebergOrder(orderID int64, market string) { +func (b *BTCC) CancelIcebergOrder(orderID int64, market string) { params := make([]interface{}, 0) params = append(params, orderID) @@ -573,14 +573,14 @@ func (b *BTCChina) CancelIcebergOrder(orderID int64, market string) { params = append(params, market) } - err := b.SendAuthenticatedHTTPRequest(BTCCHINA_ICEBERG_CANCEL, params) + err := b.SendAuthenticatedHTTPRequest(BTCC_ICEBERG_CANCEL, params) if err != nil { log.Println(err) } } -func (b *BTCChina) PlaceStopOrder(buyOder bool, stopPrice, price, amount, trailingAmt, trailingPct float64, market string) { +func (b *BTCC) PlaceStopOrder(buyOder bool, stopPrice, price, amount, trailingAmt, trailingPct float64, market string) { params := make([]interface{}, 0) if stopPrice > 0 { @@ -602,9 +602,9 @@ func (b *BTCChina) PlaceStopOrder(buyOder bool, stopPrice, price, amount, traili params = append(params, market) } - req := BTCCHINA_STOPORDER_BUY + req := BTCC_STOPORDER_BUY if !buyOder { - req = BTCCHINA_STOPORDER_SELL + req = BTCC_STOPORDER_SELL } err := b.SendAuthenticatedHTTPRequest(req, params) @@ -614,7 +614,7 @@ func (b *BTCChina) PlaceStopOrder(buyOder bool, stopPrice, price, amount, traili } } -func (b *BTCChina) GetStopOrder(orderID int64, market string) { +func (b *BTCC) GetStopOrder(orderID int64, market string) { params := make([]interface{}, 0) params = append(params, orderID) @@ -622,14 +622,14 @@ func (b *BTCChina) GetStopOrder(orderID int64, market string) { params = append(params, market) } - err := b.SendAuthenticatedHTTPRequest(BTCCHINA_STOPORDER, params) + err := b.SendAuthenticatedHTTPRequest(BTCC_STOPORDER, params) if err != nil { log.Println(err) } } -func (b *BTCChina) GetStopOrders(status, orderType string, stopPrice float64, limit, offset int64, market string) { +func (b *BTCC) GetStopOrders(status, orderType string, stopPrice float64, limit, offset int64, market string) { params := make([]interface{}, 0) if len(status) > 0 { @@ -656,14 +656,14 @@ func (b *BTCChina) GetStopOrders(status, orderType string, stopPrice float64, li params = append(params, market) } - err := b.SendAuthenticatedHTTPRequest(BTCCHINA_STOPORDERS, params) + err := b.SendAuthenticatedHTTPRequest(BTCC_STOPORDERS, params) if err != nil { log.Println(err) } } -func (b *BTCChina) CancelStopOrder(orderID int64, market string) { +func (b *BTCC) CancelStopOrder(orderID int64, market string) { params := make([]interface{}, 0) params = append(params, orderID) @@ -671,14 +671,14 @@ func (b *BTCChina) CancelStopOrder(orderID int64, market string) { params = append(params, market) } - err := b.SendAuthenticatedHTTPRequest(BTCCHINA_STOPORDER_CANCEL, params) + err := b.SendAuthenticatedHTTPRequest(BTCC_STOPORDER_CANCEL, params) if err != nil { log.Println(err) } } -func (b *BTCChina) SendAuthenticatedHTTPRequest(method string, params []interface{}) (err error) { +func (b *BTCC) SendAuthenticatedHTTPRequest(method string, params []interface{}) (err error) { nonce := strconv.FormatInt(time.Now().UnixNano(), 10)[0:16] encoded := fmt.Sprintf("tonce=%s&accesskey=%s&requestmethod=post&id=%d&method=%s¶ms=", nonce, b.APIKey, 1, method) @@ -726,7 +726,7 @@ func (b *BTCChina) SendAuthenticatedHTTPRequest(method string, params []interfac postData["method"] = method postData["params"] = params postData["id"] = 1 - apiURL := BTCCHINA_API_URL + BTCCHINA_API_AUTHENTICATED_METHOD + apiURL := BTCC_API_URL + BTCC_API_AUTHENTICATED_METHOD data, err := JSONEncode(postData) if err != nil { diff --git a/btcchinawebsocket.go b/btccwebsocket.go similarity index 68% rename from btcchinawebsocket.go rename to btccwebsocket.go index d640521c..d4671dfd 100644 --- a/btcchinawebsocket.go +++ b/btccwebsocket.go @@ -7,22 +7,22 @@ import ( ) const ( - BTCCHINA_SOCKETIO_ADDRESS = "https://websocket.btcchina.com" + BTCC_SOCKETIO_ADDRESS = "https://websocket.btcc.com" ) -type BTCChinaWebsocketOrder struct { +type BTCCWebsocketOrder struct { Price float64 `json:"price"` TotalAmount float64 `json:"totalamount"` Type string `json:"type"` } -type BTCChinaWebsocketGroupOrder struct { - Asks []BTCChinaWebsocketOrder `json:"ask"` - Bids []BTCChinaWebsocketOrder `json:"bid"` - Market string `json:"market"` +type BTCCWebsocketGroupOrder struct { + Asks []BTCCWebsocketOrder `json:"ask"` + Bids []BTCCWebsocketOrder `json:"bid"` + Market string `json:"market"` } -type BTCChinaWebsocketTrade struct { +type BTCCWebsocketTrade struct { Amount float64 `json:"amount,string"` Date float64 `json:"date"` Market string `json:"market"` @@ -31,7 +31,7 @@ type BTCChinaWebsocketTrade struct { Type string `json:"type"` } -type BTCChinaWebsocketTicker struct { +type BTCCWebsocketTicker struct { Buy float64 `json:"buy"` Date float64 `json:"date"` High float64 `json:"high"` @@ -45,9 +45,9 @@ type BTCChinaWebsocketTicker struct { Vwap float64 `json:"vwap"` } -var BTCChinaSocket *socketio.SocketIO +var BTCCSocket *socketio.SocketIO -func (b *BTCChina) OnConnect(output chan socketio.Message) { +func (b *BTCC) OnConnect(output chan socketio.Message) { if b.Verbose { log.Printf("%s Connected to Websocket.", b.GetName()) } @@ -65,31 +65,31 @@ func (b *BTCChina) OnConnect(output chan socketio.Message) { if b.Verbose { log.Printf("%s Websocket subscribing to channel: %s.", b.GetName(), channel) } - output <- socketio.CreateMessageEvent("subscribe", channel, b.OnMessage, BTCChinaSocket.Version) + output <- socketio.CreateMessageEvent("subscribe", channel, b.OnMessage, BTCCSocket.Version) } } } -func (b *BTCChina) OnDisconnect(output chan socketio.Message) { +func (b *BTCC) OnDisconnect(output chan socketio.Message) { log.Printf("%s Disconnected from websocket server.. Reconnecting.\n", b.GetName()) b.WebsocketClient() } -func (b *BTCChina) OnError() { +func (b *BTCC) OnError() { log.Printf("%s Error with Websocket connection.. Reconnecting.\n", b.GetName()) b.WebsocketClient() } -func (b *BTCChina) OnMessage(message []byte, output chan socketio.Message) { +func (b *BTCC) OnMessage(message []byte, output chan socketio.Message) { if b.Verbose { log.Printf("%s Websocket message received which isn't handled by default.\n", b.GetName()) log.Println(string(message)) } } -func (b *BTCChina) OnTicker(message []byte, output chan socketio.Message) { +func (b *BTCC) OnTicker(message []byte, output chan socketio.Message) { type Response struct { - Ticker BTCChinaWebsocketTicker `json:"ticker"` + Ticker BTCCWebsocketTicker `json:"ticker"` } var resp Response err := JSONDecode(message, &resp) @@ -100,9 +100,9 @@ func (b *BTCChina) OnTicker(message []byte, output chan socketio.Message) { } } -func (b *BTCChina) OnGroupOrder(message []byte, output chan socketio.Message) { +func (b *BTCC) OnGroupOrder(message []byte, output chan socketio.Message) { type Response struct { - GroupOrder BTCChinaWebsocketGroupOrder `json:"grouporder"` + GroupOrder BTCCWebsocketGroupOrder `json:"grouporder"` } var resp Response err := JSONDecode(message, &resp) @@ -113,8 +113,8 @@ func (b *BTCChina) OnGroupOrder(message []byte, output chan socketio.Message) { } } -func (b *BTCChina) OnTrade(message []byte, output chan socketio.Message) { - trade := BTCChinaWebsocketTrade{} +func (b *BTCC) OnTrade(message []byte, output chan socketio.Message) { + trade := BTCCWebsocketTrade{} err := JSONDecode(message, &trade) if err != nil { @@ -123,13 +123,13 @@ func (b *BTCChina) OnTrade(message []byte, output chan socketio.Message) { } } -func (b *BTCChina) WebsocketClient() { +func (b *BTCC) WebsocketClient() { events := make(map[string]func(message []byte, output chan socketio.Message)) events["grouporder"] = b.OnGroupOrder events["ticker"] = b.OnTicker events["trade"] = b.OnTrade - BTCChinaSocket = &socketio.SocketIO{ + BTCCSocket = &socketio.SocketIO{ Version: 1, OnConnect: b.OnConnect, OnEvent: events, @@ -139,7 +139,7 @@ func (b *BTCChina) WebsocketClient() { } for b.Enabled && b.Websocket { - err := socketio.ConnectToSocket(BTCCHINA_SOCKETIO_ADDRESS, BTCChinaSocket) + err := socketio.ConnectToSocket(BTCC_SOCKETIO_ADDRESS, BTCCSocket) if err != nil { log.Printf("%s Unable to connect to Websocket. Err: %s\n", err) continue diff --git a/config_example.json b/config_example.json index be56b1aa..aa7587a9 100644 --- a/config_example.json +++ b/config_example.json @@ -55,7 +55,7 @@ "BaseCurrencies": "USD" }, { - "Name": "BTC China", + "Name": "BTCC", "Enabled": true, "Verbose": false, "Websocket": false, diff --git a/events.go b/events.go index 583b8ebd..2be7df65 100644 --- a/events.go +++ b/events.go @@ -132,8 +132,8 @@ func (e *Event) CheckCondition() bool { } } else if bot.exchange.lakebtc.GetName() == e.Exchange { lastPrice = bot.exchange.lakebtc.GetTicker().CNY.Last - } else if bot.exchange.btcchina.GetName() == e.Exchange { - lastPrice = bot.exchange.btcchina.GetTicker("btccny").Last + } else if bot.exchange.btcc.GetName() == e.Exchange { + lastPrice = bot.exchange.btcc.GetTicker("btccny").Last } else if bot.exchange.huobi.GetName() == e.Exchange { lastPrice = bot.exchange.huobi.GetTicker("btc").Last } else if bot.exchange.itbit.GetName() == e.Exchange { @@ -252,8 +252,8 @@ func CheckEvents() { func IsValidExchange(Exchange string) bool { if bot.exchange.bitfinex.GetName() == Exchange && bot.exchange.bitfinex.IsEnabled() || bot.exchange.bitstamp.GetName() == Exchange && bot.exchange.bitstamp.IsEnabled() || - bot.exchange.btcchina.GetName() == Exchange && bot.exchange.btcchina.IsEnabled() || - bot.exchange.btce.GetName() == Exchange && bot.exchange.btcchina.IsEnabled() || + bot.exchange.btcc.GetName() == Exchange && bot.exchange.btcc.IsEnabled() || + bot.exchange.btce.GetName() == Exchange && bot.exchange.btcc.IsEnabled() || bot.exchange.btcmarkets.GetName() == Exchange && bot.exchange.btcmarkets.IsEnabled() || bot.exchange.coinbase.GetName() == Exchange && bot.exchange.coinbase.IsEnabled() || bot.exchange.cryptsy.GetName() == Exchange && bot.exchange.cryptsy.IsEnabled() || diff --git a/main.go b/main.go index 7ece4ebf..bbfb4d52 100644 --- a/main.go +++ b/main.go @@ -12,7 +12,7 @@ import ( type Exchange struct { anx ANX - btcchina BTCChina + btcc BTCC bitstamp Bitstamp bitfinex Bitfinex btce BTCE @@ -74,7 +74,7 @@ func main() { bot.exchange.anx.SetDefaults() bot.exchange.kraken.SetDefaults() - bot.exchange.btcchina.SetDefaults() + bot.exchange.btcc.SetDefaults() bot.exchange.bitstamp.SetDefaults() bot.exchange.bitfinex.SetDefaults() bot.exchange.btce.SetDefaults() @@ -118,19 +118,19 @@ func main() { bot.exchange.anx.EnabledPairs = SplitStrings(exch.EnabledPairs, ",") go bot.exchange.anx.Run() } - } else if bot.exchange.btcchina.GetName() == exch.Name { + } else if bot.exchange.btcc.GetName() == exch.Name { if !exch.Enabled { - bot.exchange.btcchina.SetEnabled(false) + bot.exchange.btcc.SetEnabled(false) } else { - bot.exchange.btcchina.AuthenticatedAPISupport = exch.AuthenticatedAPISupport - bot.exchange.btcchina.SetAPIKeys(exch.APIKey, exch.APISecret) - bot.exchange.btcchina.RESTPollingDelay = exch.RESTPollingDelay - bot.exchange.btcchina.Verbose = exch.Verbose - bot.exchange.btcchina.Websocket = exch.Websocket - bot.exchange.btcchina.BaseCurrencies = SplitStrings(exch.BaseCurrencies, ",") - bot.exchange.btcchina.AvailablePairs = SplitStrings(exch.AvailablePairs, ",") - bot.exchange.btcchina.EnabledPairs = SplitStrings(exch.EnabledPairs, ",") - go bot.exchange.btcchina.Run() + bot.exchange.btcc.AuthenticatedAPISupport = exch.AuthenticatedAPISupport + bot.exchange.btcc.SetAPIKeys(exch.APIKey, exch.APISecret) + bot.exchange.btcc.RESTPollingDelay = exch.RESTPollingDelay + bot.exchange.btcc.Verbose = exch.Verbose + bot.exchange.btcc.Websocket = exch.Websocket + bot.exchange.btcc.BaseCurrencies = SplitStrings(exch.BaseCurrencies, ",") + bot.exchange.btcc.AvailablePairs = SplitStrings(exch.AvailablePairs, ",") + bot.exchange.btcc.EnabledPairs = SplitStrings(exch.EnabledPairs, ",") + go bot.exchange.btcc.Run() } } else if bot.exchange.bitstamp.GetName() == exch.Name { if !exch.Enabled {