diff --git a/README.md b/README.md index 5d6eb371..900521e7 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,6 @@ A cryptocurrency trading bot supporting multiple exchanges written in Golang. | BTCMarkets | Yes | NA | NA | | Coinbase | Yes | Yes | No| | Cryptsy | Yes | Yes | NA| -| DWVX | Yes | Yes | NA | | Gemini | Yes | NA | NA | | Huobi | Yes | Yes |No | ItBit | Yes | NA | NA | diff --git a/config_example.json b/config_example.json index c893b8a3..49755576 100644 --- a/config_example.json +++ b/config_example.json @@ -127,20 +127,6 @@ "EnabledPairs": "BTCUSD,LTCUSD,DASHBTC,DOGEBTC", "BaseCurrencies": "USD" }, - { - "Name": "DWVX", - "Enabled": false, - "Verbose": false, - "Websocket": false, - "RESTPollingDelay": 10, - "AuthenticatedAPISupport": false, - "APIKey": "Key", - "APISecret": "Secret", - "ClientID": "ClientID", - "AvailablePairs": "BTCAUD", - "EnabledPairs": "BTCAUD", - "BaseCurrencies": "AUD" - }, { "Name": "Gemini", "Enabled": true, diff --git a/dwvxhttp.go b/dwvxhttp.go deleted file mode 100644 index fb327e6a..00000000 --- a/dwvxhttp.go +++ /dev/null @@ -1,183 +0,0 @@ -package main - -import ( - "github.com/gorilla/websocket" - "log" - "time" -) - -const ( - DWVX_API_URL = "https://api.dwvx.com.au:8400" -) - -type DWVX struct { - Name string - Enabled bool - Verbose bool - Websocket bool - RESTPollingDelay time.Duration - AuthenticatedAPISupport bool - ClientID, APIKey, APISecret string - Ticker AlphapointTicker - TakerFee, MakerFee float64 - BaseCurrencies []string - AvailablePairs []string - EnabledPairs []string - API Alphapoint - DepositAddresses map[string]string - WebsocketConn *websocket.Conn -} - -func (d *DWVX) SetDefaults() { - d.Name = "DWVX" - d.API.APIUrl = DWVX_API_URL - d.Enabled = true - d.Verbose = false - d.Websocket = false - d.RESTPollingDelay = 10 - d.DepositAddresses = make(map[string]string) -} - -func (d *DWVX) GetName() string { - return d.Name -} - -func (d *DWVX) SetEnabled(enabled bool) { - d.Enabled = enabled -} - -func (d *DWVX) IsEnabled() bool { - return d.Enabled -} - -func (d *DWVX) SetAPIKeys(userID, apiKey, apiSecret string) { - d.API.APIKey = apiKey - d.API.APISecret = apiSecret - d.API.UserID = userID -} - -func (d *DWVX) Run() { - if d.Verbose { - log.Printf("%s Websocket: %s. (url: %s).\n", d.GetName(), IsEnabled(d.Websocket), DWVX_WEBSOCKET_URL) - log.Printf("%s polling delay: %ds.\n", d.GetName(), d.RESTPollingDelay) - log.Printf("%s %d currencies enabled: %s.\n", d.GetName(), len(d.EnabledPairs), d.EnabledPairs) - } - - if d.Websocket { - go d.WebsocketClient() - } - - products, err := d.GetProductPairs() - if err != nil { - log.Printf("%s Failed to get available symbols.\n", d.GetName()) - } else { - availProducts := []string{} - for _, x := range products.ProductPairs { - availProducts = append(availProducts, x.Name) - } - - diff := StringSliceDifference(d.AvailablePairs, availProducts) - if len(diff) > 0 { - exch, err := GetExchangeConfig(d.Name) - if err != nil { - log.Println(err) - } else { - log.Printf("%s Updating available pairs. Difference: %s.\n", d.Name, diff) - exch.AvailablePairs = JoinStrings(availProducts, ",") - UpdateExchangeConfig(exch) - } - } - } - - for d.Enabled { - for _, x := range d.EnabledPairs { - currency := x - go func() { - ticker, err := d.GetTicker(currency) - if err != nil { - log.Println(err) - return - } - log.Printf("DWVX %s: Last %f High %f Low %f Volume %f\n", currency, ticker.Last, ticker.High, ticker.Low, ticker.Total24HrQtyTraded) - AddExchangeInfo(d.GetName(), currency[0:3], currency[3:], ticker.Last, ticker.Volume) - }() - } - time.Sleep(time.Second * d.RESTPollingDelay) - } -} - -func (d *DWVX) GetTicker(symbol string) (AlphapointTicker, error) { - return d.API.GetTicker(symbol) -} - -func (d *DWVX) GetTrades(symbol string, startIndex, count int) (AlphapointTrades, error) { - return d.API.GetTrades(symbol, startIndex, count) -} - -func (d *DWVX) GetTradesByDate(symbol string, startDate, endDate int64) (AlphapointTradesByDate, error) { - return d.API.GetTradesByDate(symbol, startDate, endDate) -} - -func (d *DWVX) GetOrderbook(symbol string) (AlphapointOrderbook, error) { - return d.API.GetOrderbook(symbol) -} - -func (d *DWVX) GetProductPairs() (AlphapointProductPairs, error) { - return d.API.GetProductPairs() -} - -func (d *DWVX) GetProducts() (AlphapointProducts, error) { - return d.API.GetProducts() -} - -func (d *DWVX) GetUserInfo() (AlphapointUserInfo, error) { - return d.API.GetUserInfo() -} - -func (d *DWVX) GetAccountTrades(symbol string, startIndex, count int) (AlphapointTrades, error) { - return d.API.GetAccountTrades(symbol, startIndex, count) -} -func (d *DWVX) GetAccountInfo() (AlphapointAccountInfo, error) { - return d.API.GetAccountInfo() -} - -func (d *DWVX) GetDepositAddresses() error { - result, err := d.API.GetDepositAddresses() - if err != nil { - return err - } - for _, x := range result { - if x.DepositAddress != "" { - d.DepositAddresses[x.Name] = x.DepositAddress - } - } - return nil -} - -func (d *DWVX) WithdrawCoins(symbol, product string, amount float64, address string) error { - return d.API.WithdrawCoins(symbol, product, amount, address) -} - -func (d *DWVX) CreateOrder(symbol, side string, orderType int, quantity, price float64) (int64, error) { - return d.API.CreateOrder(symbol, side, orderType, quantity, price) -} - -func (d *DWVX) ModifyOrder(symbol string, OrderID, action int64) (int64, error) { - return d.API.ModifyOrder(symbol, OrderID, action) -} - -func (d *DWVX) CancelOrder(symbol string, orderID int64) (int64, error) { - return d.API.CancelOrder(symbol, orderID) -} - -func (d *DWVX) CancelAllOrders(symbol string) error { - return d.API.CancelAllOrders(symbol) -} - -func (d *DWVX) GetOrders() ([]AlphapointOpenOrders, error) { - return d.API.GetOrders() -} - -func (d *DWVX) GetOrderFee(symbol, side string, amount, price float64) (float64, error) { - return d.API.GetOrderFee(symbol, side, amount, price) -} diff --git a/dwvxwebsocket.go b/dwvxwebsocket.go deleted file mode 100644 index a0d304b9..00000000 --- a/dwvxwebsocket.go +++ /dev/null @@ -1,69 +0,0 @@ -package main - -import ( - "github.com/gorilla/websocket" - "log" - "net/http" -) - -const ( - DWVX_WEBSOCKET_URL = "wss://api.dwvx.com.au:8401/v1/GetTicker/" -) - -func (d *DWVX) WebsocketClient() { - for d.Enabled && d.Websocket { - var Dialer websocket.Dialer - var err error - d.WebsocketConn, _, err = Dialer.Dial(DWVX_WEBSOCKET_URL, http.Header{}) - - if err != nil { - log.Printf("%s Unable to connect to Websocket. Error: %s\n", d.Name, err) - continue - } - - if d.Verbose { - log.Printf("%s Connected to Websocket.\n", d.Name) - } - - err = d.WebsocketConn.WriteMessage(websocket.TextMessage, []byte(`{"messageType": "logon"}`)) - - if err != nil { - log.Println(err) - return - } - - for d.Enabled && d.Websocket { - msgType, resp, err := d.WebsocketConn.ReadMessage() - if err != nil { - log.Println(err) - break - } - - switch msgType { - case websocket.TextMessage: - type MsgType struct { - MessageType string `json:"messageType"` - } - - msgType := MsgType{} - err := JSONDecode(resp, &msgType) - if err != nil { - log.Println(err) - continue - } - - switch msgType.MessageType { - case "Ticker": - ticker := AlphapointWebsocketTicker{} - err = JSONDecode(resp, &ticker) - if err != nil { - log.Println(err) - continue - } - } - } - } - d.WebsocketConn.Close() - log.Printf("%s Websocket client disconnected.", d.Name) - } -} diff --git a/events.go b/events.go index 56c1aee9..8128df94 100644 --- a/events.go +++ b/events.go @@ -138,13 +138,6 @@ func (e *Event) CheckCondition() bool { } } else if bot.exchange.cryptsy.GetName() == e.Exchange { lastPrice = bot.exchange.cryptsy.Market["BTCUSD"].LastTrade.Price - } else if bot.exchange.dwvx.GetName() == e.Exchange { - result, err := bot.exchange.dwvx.GetTicker("BTCAUD") - if err != nil { - lastPrice = 0 - } else { - lastPrice = result.Last - } } else if bot.exchange.lakebtc.GetName() == e.Exchange { lastPrice = bot.exchange.lakebtc.GetTicker().CNY.Last } else if bot.exchange.localbitcoins.GetName() == e.Exchange { @@ -279,7 +272,6 @@ func IsValidExchange(Exchange string) bool { 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() || - bot.exchange.dwvx.GetName() == Exchange && bot.exchange.dwvx.IsEnabled() || bot.exchange.huobi.GetName() == Exchange && bot.exchange.huobi.IsEnabled() || bot.exchange.itbit.GetName() == Exchange && bot.exchange.itbit.IsEnabled() || bot.exchange.kraken.GetName() == Exchange && bot.exchange.kraken.IsEnabled() || diff --git a/main.go b/main.go index 8d926355..215df03c 100644 --- a/main.go +++ b/main.go @@ -19,7 +19,6 @@ type Exchange struct { btcmarkets BTCMarkets coinbase Coinbase cryptsy Cryptsy - dwvx DWVX gemini Gemini okcoinChina OKCoin okcoinIntl OKCoin @@ -103,7 +102,6 @@ func main() { bot.exchange.btcmarkets.SetDefaults() bot.exchange.coinbase.SetDefaults() bot.exchange.cryptsy.SetDefaults() - bot.exchange.dwvx.SetDefaults() bot.exchange.gemini.SetDefaults() bot.exchange.okcoinChina.SetURL(OKCOIN_API_URL_CHINA) bot.exchange.okcoinChina.SetDefaults() @@ -239,20 +237,6 @@ func main() { bot.exchange.cryptsy.EnabledPairs = SplitStrings(exch.EnabledPairs, ",") go bot.exchange.cryptsy.Run() } - } else if bot.exchange.dwvx.GetName() == exch.Name { - if !exch.Enabled { - bot.exchange.dwvx.SetEnabled(false) - } else { - bot.exchange.dwvx.AuthenticatedAPISupport = exch.AuthenticatedAPISupport - bot.exchange.dwvx.SetAPIKeys(exch.ClientID, exch.APIKey, exch.APISecret) - bot.exchange.dwvx.RESTPollingDelay = exch.RESTPollingDelay - bot.exchange.dwvx.Verbose = exch.Verbose - bot.exchange.dwvx.Websocket = exch.Websocket - bot.exchange.dwvx.BaseCurrencies = SplitStrings(exch.BaseCurrencies, ",") - bot.exchange.dwvx.AvailablePairs = SplitStrings(exch.AvailablePairs, ",") - bot.exchange.dwvx.EnabledPairs = SplitStrings(exch.EnabledPairs, ",") - go bot.exchange.dwvx.Run() - } } else if bot.exchange.gemini.GetName() == exch.Name { if !exch.Enabled { bot.exchange.gemini.SetEnabled(false)