1
1
using Newtonsoft . Json . Linq ;
2
2
using System ;
3
3
using System . Collections . Generic ;
4
- using System . Collections . Specialized ;
5
4
using System . Linq ;
6
5
using System . Text ;
7
6
using System . Threading ;
@@ -21,7 +20,7 @@ public ExchangeDigifinexAPI()
21
20
{
22
21
MarketSymbolSeparator = "_" ;
23
22
MarketSymbolIsReversed = false ;
24
- MarketSymbolIsUppercase = false ;
23
+ MarketSymbolIsUppercase = true ;
25
24
WebSocketOrderBookType = WebSocketOrderBookType . FullBookFirstThenDeltas ;
26
25
NonceStyle = NonceStyle . UnixSeconds ;
27
26
}
@@ -104,7 +103,7 @@ protected override JToken CheckJsonResponse(JToken result)
104
103
105
104
ExchangeMarket ParseSymbol ( JToken x )
106
105
{
107
- var symbol = x [ "market" ] . ToStringInvariant ( ) ;
106
+ var symbol = x [ "market" ] . ToStringUpperInvariant ( ) ;
108
107
var ( baseCurrency , quoteCurrency ) = ExchangeMarketSymbolToCurrencies ( symbol ) ;
109
108
return new ExchangeMarket
110
109
{
@@ -134,15 +133,15 @@ protected override async Task<IEnumerable<string>> OnGetMarketSymbolsAsync()
134
133
ExchangeTicker ParseTicker ( JToken x )
135
134
{
136
135
var t = x [ "ticker" ] [ 0 ] ;
137
- var symbol = t [ "symbol" ] . ToStringInvariant ( ) ;
136
+ var symbol = t [ "symbol" ] . ToStringUpperInvariant ( ) ;
138
137
var ( baseCurrency , quoteCurrency ) = ExchangeMarketSymbolToCurrencies ( symbol ) ;
139
138
140
139
return new ExchangeTicker
141
140
{
142
141
Ask = ( decimal ) t [ "sell" ] ,
143
142
Bid = ( decimal ) t [ "buy" ] ,
144
143
Last = ( decimal ) t [ "last" ] ,
145
- MarketSymbol = t [ " symbol" ] . ToStringInvariant ( ) ,
144
+ MarketSymbol = symbol ,
146
145
Volume = new ExchangeVolume
147
146
{
148
147
BaseCurrency = baseCurrency ,
@@ -254,7 +253,7 @@ protected override async Task<IEnumerable<ExchangeOrderResult>> OnGetOpenOrderDe
254
253
var list = token [ "data" ] ;
255
254
return list . Select ( x => new ExchangeOrderResult
256
255
{
257
- MarketSymbol = x [ "symbol" ] . ToStringLowerInvariant ( ) ,
256
+ MarketSymbol = x [ "symbol" ] . ToStringInvariant ( ) ,
258
257
OrderId = x [ "order_id" ] . ToStringInvariant ( ) ,
259
258
OrderDate = CryptoUtility . UnixTimeStampToDateTimeSeconds ( x [ "created_date" ] . ConvertInvariant < long > ( ) ) ,
260
259
FillDate = CryptoUtility . UnixTimeStampToDateTimeSeconds ( x [ "finished_date" ] . ConvertInvariant < long > ( ) ) ,
@@ -286,7 +285,7 @@ protected override async Task<IEnumerable<ExchangeOrderResult>> OnGetCompletedOr
286
285
var list = token [ "list" ] ;
287
286
return list . Select ( x => new ExchangeOrderResult
288
287
{
289
- MarketSymbol = x [ "symbol" ] . ToStringLowerInvariant ( ) ,
288
+ MarketSymbol = x [ "symbol" ] . ToStringInvariant ( ) ,
290
289
OrderId = x [ "order_id" ] . ToStringInvariant ( ) ,
291
290
TradeId = x [ "id" ] . ToStringInvariant ( ) ,
292
291
Price = ( decimal ) x [ "price" ] ,
@@ -324,15 +323,15 @@ protected override async Task<Dictionary<string, decimal>> OnGetAmountsAsync()
324
323
Dictionary < string , object > payload = await GetNoncePayloadAsync ( ) ;
325
324
JToken token = await MakeJsonRequestAsync < JToken > ( "/spot/assets" , payload : payload ) ;
326
325
var list = token [ "list" ] ;
327
- return list . Where ( x => ( decimal ) x [ "total" ] != 0 ) . ToDictionary ( x => x [ "currency" ] . ToStringLowerInvariant ( ) , x => ( decimal ) x [ "total" ] ) ;
326
+ return list . Where ( x => ( decimal ) x [ "total" ] != 0 ) . ToDictionary ( x => x [ "currency" ] . ToStringInvariant ( ) , x => ( decimal ) x [ "total" ] ) ;
328
327
}
329
328
330
329
protected override async Task < Dictionary < string , decimal > > OnGetAmountsAvailableToTradeAsync ( )
331
330
{
332
331
Dictionary < string , object > payload = await GetNoncePayloadAsync ( ) ;
333
332
JToken token = await MakeJsonRequestAsync < JToken > ( "/spot/assets" , payload : payload ) ;
334
333
var list = token [ "list" ] ;
335
- return list . Where ( x => ( decimal ) x [ "free" ] != 0 ) . ToDictionary ( x => x [ "currency" ] . ToStringLowerInvariant ( ) , x => ( decimal ) x [ "free" ] ) ;
334
+ return list . Where ( x => ( decimal ) x [ "free" ] != 0 ) . ToDictionary ( x => x [ "currency" ] . ToStringInvariant ( ) , x => ( decimal ) x [ "free" ] ) ;
336
335
}
337
336
338
337
string GetOrderType ( ExchangeOrderRequest order )
@@ -414,7 +413,7 @@ protected override IWebSocket OnGetTradesWebSocket(Func<KeyValuePair<string, Exc
414
413
var args = token [ "params" ] ;
415
414
var clean = ( bool ) args [ 0 ] ;
416
415
var trades = args [ 1 ] ;
417
- var symbol = args [ 2 ] . ToStringLowerInvariant ( ) ;
416
+ var symbol = args [ 2 ] . ToStringInvariant ( ) ;
418
417
419
418
var x = trades as JArray ;
420
419
for ( int i = 0 ; i < x . Count ; i ++ )
@@ -455,45 +454,44 @@ protected override IWebSocket OnGetDeltaOrderBookWebSocket(Action<ExchangeOrderB
455
454
return null ;
456
455
}
457
456
458
- //{
459
- // "method": "depth.update",
460
- // "params": [
461
- // true,
462
- // {
463
- // "asks": [
464
- // [
465
- // "10249.68000000",
466
- // "0.00200000"
467
- // ],
468
- // [
469
- // "10249.67000000",
470
- // "0.00110000"
471
- // ]
472
- // ],
473
- // "bids": [
474
- // [
475
- // "10249.61000000",
476
- // "0.86570000"
477
- // ],
478
- // [
479
- // "10248.44000000",
480
- // "1.00190000"
481
- // ]
482
- // ]
483
- // },
484
- // "BTC_USDT"
485
- // ],
486
- // "id": null
487
- //}
488
-
489
457
return ConnectWebSocket ( string . Empty , ( _socket , msg ) =>
490
458
{
491
- JToken token = JToken . Parse ( CryptoUtility . DecompressDeflate ( ( new ArraySegment < byte > ( msg , 2 , msg . Length - 2 ) ) . ToArray ( ) ) . ToStringFromUTF8 ( ) ) ;
459
+ //{
460
+ // "method": "depth.update",
461
+ // "params": [
462
+ // true,
463
+ // {
464
+ // "asks": [
465
+ // [
466
+ // "10249.68000000",
467
+ // "0.00200000"
468
+ // ],
469
+ // [
470
+ // "10249.67000000",
471
+ // "0.00110000"
472
+ // ]
473
+ // ],
474
+ // "bids": [
475
+ // [
476
+ // "10249.61000000",
477
+ // "0.86570000"
478
+ // ],
479
+ // [
480
+ // "10248.44000000",
481
+ // "1.00190000"
482
+ // ]
483
+ // ]
484
+ // },
485
+ // "BTC_USDT"
486
+ // ],
487
+ // "id": null
488
+ //}
489
+ JToken token = JToken . Parse ( CryptoUtility . DecompressDeflate ( ( new ArraySegment < byte > ( msg , 2 , msg . Length - 2 ) ) . ToArray ( ) ) . ToStringFromUTF8 ( ) ) ;
492
490
if ( token [ "method" ] . ToStringInvariant ( ) == "depth.update" )
493
491
{
494
492
var args = token [ "params" ] ;
495
493
var data = args [ 1 ] ;
496
- var book = new ExchangeOrderBook { LastUpdatedUtc = CryptoUtility . UtcNow , MarketSymbol = args [ 2 ] . ToStringLowerInvariant ( ) } ;
494
+ var book = new ExchangeOrderBook { LastUpdatedUtc = CryptoUtility . UtcNow , MarketSymbol = args [ 2 ] . ToStringInvariant ( ) } ;
497
495
foreach ( var x in data [ "asks" ] )
498
496
{
499
497
var price = ( decimal ) x [ 0 ] ;
@@ -516,4 +514,7 @@ protected override IWebSocket OnGetDeltaOrderBookWebSocket(Action<ExchangeOrderB
516
514
517
515
#endregion
518
516
}
517
+
518
+ public partial class ExchangeName { public const string Digifinex = "Digifinex" ; }
519
+
519
520
}
0 commit comments