@@ -596,7 +596,7 @@ public async Task CancelAllOrdersAsync(string marketSymbol = null)
596
596
JToken token = await MakeJsonRequestAsync < JToken > ( query , BaseUrl , payload , "DELETE" ) ;
597
597
}
598
598
599
- public async Task Deadman ( int timeoutMS )
599
+ public async Task DeadmanAsync ( int timeoutMS )
600
600
{
601
601
Dictionary < string , object > payload = await GetNoncePayloadAsync ( ) ;
602
602
payload [ "timeout" ] = timeoutMS ;
@@ -611,7 +611,7 @@ protected override async Task<ExchangeOrderResult> OnPlaceOrderAsync(ExchangeOrd
611
611
return ParseOrder ( token ) ;
612
612
}
613
613
614
- protected override async Task < ExchangeOrderResult [ ] > OnPlaceOrdersAsync ( params ExchangeOrderRequest [ ] orders )
614
+ private async Task < ExchangeOrderResult [ ] > PlaceOrdersAsync ( string requestMethod , params ExchangeOrderRequest [ ] orders )
615
615
{
616
616
List < ExchangeOrderResult > results = new List < ExchangeOrderResult > ( ) ;
617
617
Dictionary < string , object > payload = await GetNoncePayloadAsync ( ) ;
@@ -623,23 +623,39 @@ protected override async Task<ExchangeOrderResult[]> OnPlaceOrdersAsync(params E
623
623
orderRequests . Add ( subPayload ) ;
624
624
}
625
625
payload [ "orders" ] = orderRequests ;
626
- JToken token = await MakeJsonRequestAsync < JToken > ( "/order/bulk" , BaseUrl , payload , "POST" ) ;
626
+ JToken token = await MakeJsonRequestAsync < JToken > ( "/order/bulk" , BaseUrl , payload , requestMethod ) ;
627
627
foreach ( JToken orderResultToken in token )
628
628
{
629
629
results . Add ( ParseOrder ( orderResultToken ) ) ;
630
630
}
631
631
return results . ToArray ( ) ;
632
632
}
633
633
634
+ protected override async Task < ExchangeOrderResult [ ] > OnPlaceOrdersAsync ( params ExchangeOrderRequest [ ] orders )
635
+ {
636
+ return await PlaceOrdersAsync ( "POST" , orders ) ;
637
+ }
638
+
639
+ public async Task < ExchangeOrderResult [ ] > AmendOrdersAsync ( params ExchangeOrderRequest [ ] orders )
640
+ {
641
+ return await PlaceOrdersAsync ( "PUT" , orders ) ;
642
+ }
643
+
634
644
private void AddOrderToPayload ( ExchangeOrderRequest order , Dictionary < string , object > payload )
635
645
{
636
646
payload [ "symbol" ] = order . MarketSymbol ;
637
647
payload [ "ordType" ] = order . OrderType . ToStringInvariant ( ) ;
638
648
payload [ "side" ] = order . IsBuy ? "Buy" : "Sell" ;
639
649
payload [ "orderQty" ] = order . Amount ;
640
650
651
+ if ( order . OrderId != null )
652
+ payload [ "orderID" ] = order . OrderId ;
653
+
654
+ if ( order . ClientOrderId != null )
655
+ payload [ "clOrdID" ] = order . ClientOrderId ;
656
+
641
657
if ( order . OrderType != OrderType . Market )
642
- payload [ "price" ] = order . Price ;
658
+ payload [ "price" ] = order . Price ;
643
659
644
660
if ( order . ExtraParameters . TryGetValue ( "execInst" , out var execInst ) )
645
661
{
@@ -696,6 +712,7 @@ private ExchangeOrderResult ParseOrder(JToken token)
696
712
IsBuy = token [ "side" ] . ToStringInvariant ( ) . EqualsWithOption ( "Buy" ) ,
697
713
OrderDate = token [ "transactTime" ] . ConvertInvariant < DateTime > ( ) ,
698
714
OrderId = token [ "orderID" ] . ToStringInvariant ( ) ,
715
+ ClientOrderId = token [ "clOrdID" ] . ToStringInvariant ( ) ,
699
716
MarketSymbol = token [ "symbol" ] . ToStringInvariant ( )
700
717
} ;
701
718
0 commit comments