mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-05-24 15:10:19 +00:00
gctrpc/ordermanager/binance: Add new getManagedOrders command and various improvements (#712)
* first draft of getmanaged orders RPC call * - ClientIDs for binance, especially spot asset - applied old ClientOrderId for cancelled orders - added clientOrderId to GCTRPC * added tests for Matchfilter and GetManagedOrders * smaller fixes * comment fix added getFilteredOrders to store changed store mutex to RWMutex smaller fixes * fixed bug in Detail Copy and added test * fixes for Scotts review * processSubmittedOrder was missing clientOrderId * changed: TestGetOrdersFiltered expanded fixed: warning, where variable name collided with package name fixed: used req.AssetType in binance_wrapper.go Co-authored-by: Mark Dzulko <81071907+Mark-numus@users.noreply.github.com>
This commit is contained in:
@@ -1356,6 +1356,97 @@ func getOrders(c *cli.Context) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
var getManagedOrdersCommand = &cli.Command{
|
||||
Name: "getmanagedorders",
|
||||
Usage: "gets the current orders from the order manager",
|
||||
ArgsUsage: "<exchange> <asset> <pair>",
|
||||
Action: getManagedOrders,
|
||||
Flags: []cli.Flag{
|
||||
&cli.StringFlag{
|
||||
Name: "exchange",
|
||||
Usage: "the exchange to get orders for",
|
||||
},
|
||||
&cli.StringFlag{
|
||||
Name: "asset",
|
||||
Usage: "the asset type to get orders for",
|
||||
},
|
||||
&cli.StringFlag{
|
||||
Name: "pair",
|
||||
Usage: "the currency pair to get orders for",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
func getManagedOrders(c *cli.Context) error {
|
||||
if c.NArg() == 0 && c.NumFlags() == 0 {
|
||||
return cli.ShowCommandHelp(c, "getmanagedorders")
|
||||
}
|
||||
|
||||
var exchangeName string
|
||||
var assetType string
|
||||
var currencyPair string
|
||||
|
||||
if c.IsSet("exchange") {
|
||||
exchangeName = c.String("exchange")
|
||||
} else {
|
||||
exchangeName = c.Args().First()
|
||||
}
|
||||
|
||||
if !validExchange(exchangeName) {
|
||||
return errInvalidExchange
|
||||
}
|
||||
|
||||
if c.IsSet("asset") {
|
||||
assetType = c.String("asset")
|
||||
} else {
|
||||
assetType = c.Args().Get(1)
|
||||
}
|
||||
|
||||
assetType = strings.ToLower(assetType)
|
||||
if !validAsset(assetType) {
|
||||
return errInvalidAsset
|
||||
}
|
||||
|
||||
if c.IsSet("pair") {
|
||||
currencyPair = c.String("pair")
|
||||
} else {
|
||||
currencyPair = c.Args().Get(2)
|
||||
}
|
||||
|
||||
if !validPair(currencyPair) {
|
||||
return errInvalidPair
|
||||
}
|
||||
|
||||
p, err := currency.NewPairDelimiter(currencyPair, pairDelimiter)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
var conn *grpc.ClientConn
|
||||
conn, err = setupClient()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer conn.Close()
|
||||
|
||||
client := gctrpc.NewGoCryptoTraderClient(conn)
|
||||
result, err := client.GetManagedOrders(context.Background(), &gctrpc.GetOrdersRequest{
|
||||
Exchange: exchangeName,
|
||||
AssetType: assetType,
|
||||
Pair: &gctrpc.CurrencyPair{
|
||||
Delimiter: p.Delimiter,
|
||||
Base: p.Base.String(),
|
||||
Quote: p.Quote.String(),
|
||||
},
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
jsonOutput(result)
|
||||
return nil
|
||||
}
|
||||
|
||||
var getOrderCommand = &cli.Command{
|
||||
Name: "getorder",
|
||||
Usage: "gets the specified order info",
|
||||
|
||||
@@ -118,6 +118,7 @@ func main() {
|
||||
getForexProvidersCommand,
|
||||
getForexRatesCommand,
|
||||
getOrdersCommand,
|
||||
getManagedOrdersCommand,
|
||||
getOrderCommand,
|
||||
submitOrderCommand,
|
||||
simulateOrderCommand,
|
||||
|
||||
Reference in New Issue
Block a user