Getting closed orders implementation, fixed Binance MARKET order creation, expanded SubmitOrder response (#572)

* GetClosedOrder implemented for Kraken and Binance, fixed Binance MARKET order creaton, added rate, fee and cost fileds on SubmitOrder responce

* return Trades on Binance SubmitOrder, new validation methods on Binance and kraken GetClosedOrderInfo

* removed the Binance extra method GetClosedOrder

* func description corrected

* removed price, fee and cost from SimulateOrder response, as we get all necessary info in response to calculate them on client side

* GetClosedOrder implementation moved to GetOrderInfo

* changed GetOrderInfo params

* removed Canceled order.Type used for Kraken

* update QueryOrder in gctscript

* add missed params to QueryOrder validator (gctscript)

* fixed testing issues

* GetClosedOrder implemented for Kraken and Binance, fixed Binance MARKET order creaton, added rate, fee and cost fileds on SubmitOrder responce

* return Trades on Binance SubmitOrder, new validation methods on Binance and kraken GetClosedOrderInfo

* removed the Binance extra method GetClosedOrder

* func description corrected

* removed price, fee and cost from SimulateOrder response, as we get all necessary info in response to calculate them on client side

* GetClosedOrder implementation moved to GetOrderInfo

* changed GetOrderInfo params

* removed Canceled order.Type used for Kraken

* update QueryOrder in gctscript

* add missed params to QueryOrder validator (gctscript)

* fixed testing issues

* pull previous changes

* linter issues fix

* updated query_order exmple in gctscript, fixed params check

* removed orderPair unnecessary conversion

Co-authored-by: Vazha Bezhanishvili <vazha.bezhanishvili@elegro.eu>
This commit is contained in:
Vazha
2020-10-22 03:54:24 +03:00
committed by GitHub
parent 4ccb495baf
commit fab9d934fe
54 changed files with 2365 additions and 2151 deletions

View File

@@ -248,7 +248,7 @@ func ExchangeAccountInfo(args ...objects.Object) (objects.Object, error) {
// ExchangeOrderQuery query order on exchange
func ExchangeOrderQuery(args ...objects.Object) (objects.Object, error) {
if len(args) != 2 {
if len(args) < 2 {
return nil, objects.ErrWrongNumArguments
}
@@ -260,7 +260,36 @@ func ExchangeOrderQuery(args ...objects.Object) (objects.Object, error) {
if !ok {
return nil, fmt.Errorf(ErrParameterConvertFailed, orderID)
}
orderDetails, err := wrappers.GetWrapper().QueryOrder(exchangeName, orderID)
var pair currency.Pair
assetTypeString := asset.Spot.String()
switch len(args) {
case 4:
assetTypeString, ok = objects.ToString(args[3])
if !ok {
return nil, fmt.Errorf(ErrParameterConvertFailed, assetTypeString)
}
fallthrough
case 3:
currencyPairString, isOk := objects.ToString(args[2])
if !isOk {
return nil, fmt.Errorf(ErrParameterConvertFailed, currencyPairString)
}
var err error
pair, err = currency.NewPairFromString(currencyPairString)
if err != nil {
return nil, fmt.Errorf(ErrParameterConvertFailed, currencyPairString)
}
}
assetType, err := asset.New(assetTypeString)
if err != nil {
return nil, err
}
orderDetails, err := wrappers.GetWrapper().QueryOrder(exchangeName, orderID, pair, assetType)
if err != nil {
return nil, err
}

View File

@@ -35,7 +35,7 @@ type Exchange interface {
Orderbook(exch string, pair currency.Pair, item asset.Item) (*orderbook.Base, error)
Ticker(exch string, pair currency.Pair, item asset.Item) (*ticker.Price, error)
Pairs(exch string, enabledOnly bool, item asset.Item) (*currency.Pairs, error)
QueryOrder(exch, orderid string) (*order.Detail, error)
QueryOrder(exch, orderid string, pair currency.Pair, assetType asset.Item) (*order.Detail, error)
SubmitOrder(submit *order.Submit) (*order.SubmitResponse, error)
CancelOrder(exch, orderid string) (bool, error)
AccountInformation(exch string) (account.Holdings, error)