Engine QA - Order update (#372)

Engine QA - Order update
This commit is contained in:
Ryan O'Hara-Reid
2019-10-30 14:06:48 +11:00
committed by Adrian Gallagher
parent 242b02c382
commit 63a9e9fcb1
89 changed files with 3077 additions and 2876 deletions

View File

@@ -9,6 +9,7 @@ import (
"github.com/thrasher-corp/gocryptotrader/config"
"github.com/thrasher-corp/gocryptotrader/currency"
exchange "github.com/thrasher-corp/gocryptotrader/exchanges"
"github.com/thrasher-corp/gocryptotrader/exchanges/order"
)
// Please supply your own keys here for due diligence testing
@@ -312,14 +313,14 @@ func TestSubmitOrder(t *testing.T) {
t.Skip("API keys set, canManipulateRealOrders false, skipping test")
}
var orderSubmission = &exchange.OrderSubmission{
var orderSubmission = &order.Submit{
Pair: currency.Pair{
Base: currency.BTC,
Quote: currency.USDT,
Delimiter: "_",
},
OrderSide: exchange.BuyOrderSide,
OrderType: exchange.LimitOrderType,
OrderSide: order.Buy,
OrderType: order.Limit,
Price: 1,
Amount: 1,
ClientID: "meowOrder",
@@ -338,7 +339,7 @@ func TestCancelOrder(t *testing.T) {
t.Skip("skipping test, either api keys or manipulaterealorders isnt set correctly")
}
cp := currency.NewPairWithDelimiter(currency.ETH.String(), currency.BTC.String(), "_")
var a exchange.OrderCancellation
var a order.Cancel
a.CurrencyPair = cp
a.OrderID = "24f7ce27-af1d-4dca-a8c1-ef1cbeec1b23"
err := l.CancelOrder(&a)
@@ -401,8 +402,8 @@ func TestGetOrderHistory(t *testing.T) {
if !areTestAPIKeysSet() {
t.Skip("API keys required but not set, skipping test")
}
var input exchange.GetOrdersRequest
input.OrderSide = exchange.BuyOrderSide
var input order.GetOrdersRequest
input.OrderSide = order.Buy
_, err := l.GetOrderHistory(&input)
if err != nil {
t.Error(err)

View File

@@ -12,6 +12,7 @@ import (
"github.com/thrasher-corp/gocryptotrader/currency"
exchange "github.com/thrasher-corp/gocryptotrader/exchanges"
"github.com/thrasher-corp/gocryptotrader/exchanges/asset"
"github.com/thrasher-corp/gocryptotrader/exchanges/order"
"github.com/thrasher-corp/gocryptotrader/exchanges/orderbook"
"github.com/thrasher-corp/gocryptotrader/exchanges/protocol"
"github.com/thrasher-corp/gocryptotrader/exchanges/request"
@@ -293,27 +294,22 @@ func (l *Lbank) GetExchangeHistory(p currency.Pair, assetType asset.Item) ([]exc
}
// SubmitOrder submits a new order
func (l *Lbank) SubmitOrder(order *exchange.OrderSubmission) (exchange.SubmitOrderResponse, error) {
var resp exchange.SubmitOrderResponse
if order == nil {
return resp, exchange.ErrOrderSubmissionIsNil
}
if err := order.Validate(); err != nil {
func (l *Lbank) SubmitOrder(s *order.Submit) (order.SubmitResponse, error) {
var resp order.SubmitResponse
if err := s.Validate(); err != nil {
return resp, err
}
if order.OrderSide != exchange.BuyOrderSide &&
order.OrderSide != exchange.SellOrderSide {
if s.OrderSide != order.Buy && s.OrderSide != order.Sell {
return resp,
fmt.Errorf("%s order side is not supported by the exchange",
order.OrderSide)
s.OrderSide)
}
tempResp, err := l.CreateOrder(
l.FormatExchangeCurrency(order.Pair, asset.Spot).String(),
order.OrderSide.ToString(),
order.Amount,
order.Price)
l.FormatExchangeCurrency(s.Pair, asset.Spot).String(),
s.OrderSide.String(),
s.Amount,
s.Price)
if err != nil {
return resp, err
}
@@ -324,20 +320,20 @@ func (l *Lbank) SubmitOrder(order *exchange.OrderSubmission) (exchange.SubmitOrd
// ModifyOrder will allow of changing orderbook placement and limit to
// market conversion
func (l *Lbank) ModifyOrder(action *exchange.ModifyOrder) (string, error) {
func (l *Lbank) ModifyOrder(action *order.Modify) (string, error) {
return "", common.ErrFunctionNotSupported
}
// CancelOrder cancels an order by its corresponding ID number
func (l *Lbank) CancelOrder(order *exchange.OrderCancellation) error {
func (l *Lbank) CancelOrder(order *order.Cancel) error {
_, err := l.RemoveOrder(l.FormatExchangeCurrency(order.CurrencyPair,
order.AssetType).String(), order.OrderID)
return err
}
// CancelAllOrders cancels all orders associated with a currency pair
func (l *Lbank) CancelAllOrders(orders *exchange.OrderCancellation) (exchange.CancelAllOrdersResponse, error) {
var resp exchange.CancelAllOrdersResponse
func (l *Lbank) CancelAllOrders(orders *order.Cancel) (order.CancelAllResponse, error) {
var resp order.CancelAllResponse
orderIDs, err := l.getAllOpenOrderID()
if err != nil {
return resp, nil
@@ -362,11 +358,11 @@ func (l *Lbank) CancelAllOrders(orders *exchange.OrderCancellation) (exchange.Ca
}
tempStringSuccess := strings.Split(CancelResponse.Success, ",")
for k := range tempStringSuccess {
resp.OrderStatus[tempStringSuccess[k]] = "Cancelled"
resp.Status[tempStringSuccess[k]] = "Cancelled"
}
tempStringError := strings.Split(CancelResponse.Err, ",")
for l := range tempStringError {
resp.OrderStatus[tempStringError[l]] = "Failed"
resp.Status[tempStringError[l]] = "Failed"
}
tempSlice = tempSlice[:0]
y++
@@ -380,11 +376,11 @@ func (l *Lbank) CancelAllOrders(orders *exchange.OrderCancellation) (exchange.Ca
}
tempStringSuccess := strings.Split(CancelResponse.Success, ",")
for k := range tempStringSuccess {
resp.OrderStatus[tempStringSuccess[k]] = "Cancelled"
resp.Status[tempStringSuccess[k]] = "Cancelled"
}
tempStringError := strings.Split(CancelResponse.Err, ",")
for l := range tempStringError {
resp.OrderStatus[tempStringError[l]] = "Failed"
resp.Status[tempStringError[l]] = "Failed"
}
tempSlice = tempSlice[:0]
}
@@ -393,8 +389,8 @@ func (l *Lbank) CancelAllOrders(orders *exchange.OrderCancellation) (exchange.Ca
}
// GetOrderInfo returns information on a current open order
func (l *Lbank) GetOrderInfo(orderID string) (exchange.OrderDetail, error) {
var resp exchange.OrderDetail
func (l *Lbank) GetOrderInfo(orderID string) (order.Detail, error) {
var resp order.Detail
orderIDs, err := l.getAllOpenOrderID()
if err != nil {
return resp, err
@@ -412,9 +408,9 @@ func (l *Lbank) GetOrderInfo(orderID string) (exchange.OrderDetail, error) {
resp.Exchange = l.GetName()
resp.CurrencyPair = currency.NewPairFromString(key)
if strings.EqualFold(tempResp.Orders[0].Type, "buy") {
resp.OrderSide = exchange.BuyOrderSide
resp.OrderSide = order.Buy
} else {
resp.OrderSide = exchange.SellOrderSide
resp.OrderSide = order.Sell
}
z := tempResp.Orders[0].Status
switch {
@@ -477,9 +473,9 @@ func (l *Lbank) GetWebsocket() (*wshandler.Websocket, error) {
}
// GetActiveOrders retrieves any orders that are active/open
func (l *Lbank) GetActiveOrders(getOrdersRequest *exchange.GetOrdersRequest) ([]exchange.OrderDetail, error) {
var finalResp []exchange.OrderDetail
var resp exchange.OrderDetail
func (l *Lbank) GetActiveOrders(getOrdersRequest *order.GetOrdersRequest) ([]order.Detail, error) {
var finalResp []order.Detail
var resp order.Detail
tempData, err := l.getAllOpenOrderID()
if err != nil {
return finalResp, err
@@ -494,9 +490,9 @@ func (l *Lbank) GetActiveOrders(getOrdersRequest *exchange.GetOrdersRequest) ([]
resp.Exchange = l.GetName()
resp.CurrencyPair = currency.NewPairFromString(key)
if strings.EqualFold(tempResp.Orders[0].Type, "buy") {
resp.OrderSide = exchange.BuyOrderSide
resp.OrderSide = order.Buy
} else {
resp.OrderSide = exchange.SellOrderSide
resp.OrderSide = order.Sell
}
z := tempResp.Orders[0].Status
switch {
@@ -533,7 +529,8 @@ func (l *Lbank) GetActiveOrders(getOrdersRequest *exchange.GetOrdersRequest) ([]
finalResp = append(finalResp, resp)
continue
}
if strings.EqualFold(getOrdersRequest.OrderSide.ToString(), tempResp.Orders[0].Type) {
if strings.EqualFold(getOrdersRequest.OrderSide.String(),
tempResp.Orders[0].Type) {
finalResp = append(finalResp, resp)
}
}
@@ -544,9 +541,9 @@ func (l *Lbank) GetActiveOrders(getOrdersRequest *exchange.GetOrdersRequest) ([]
// GetOrderHistory retrieves account order information *
// Can Limit response to specific order status
func (l *Lbank) GetOrderHistory(getOrdersRequest *exchange.GetOrdersRequest) ([]exchange.OrderDetail, error) {
var finalResp []exchange.OrderDetail
var resp exchange.OrderDetail
func (l *Lbank) GetOrderHistory(getOrdersRequest *order.GetOrdersRequest) ([]order.Detail, error) {
var finalResp []order.Detail
var resp order.Detail
var tempCurr currency.Pairs
if len(getOrdersRequest.Currencies) == 0 {
tempCurr = l.GetEnabledPairs(asset.Spot)
@@ -569,9 +566,9 @@ func (l *Lbank) GetOrderHistory(getOrdersRequest *exchange.GetOrdersRequest) ([]
resp.Exchange = l.GetName()
resp.CurrencyPair = currency.NewPairFromString(tempResp.Orders[x].Symbol)
if strings.EqualFold(tempResp.Orders[x].Type, "buy") {
resp.OrderSide = exchange.BuyOrderSide
resp.OrderSide = order.Buy
} else {
resp.OrderSide = exchange.SellOrderSide
resp.OrderSide = order.Sell
}
z := tempResp.Orders[x].Status
switch {