Skip to content

Commit 428f1ef

Browse files
szmcdulljjxtra
authored andcommitted
Make Digifinex symbols uppercase (#438)
* bitfinex trade websocket snapshot * BitFinex trade websocket add support for snapshot flags * New exchange Digifinex * change all DateTime to UTC * XXXInvariant * make symbols uppercase update supported exchange list * ExchangeName clean up usings
1 parent 09ccbc9 commit 428f1ef

File tree

2 files changed

+45
-43
lines changed

2 files changed

+45
-43
lines changed

ExchangeSharp/API/Exchanges/Digifnex/ExchangeDigifinexAPI.cs

Lines changed: 44 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
using Newtonsoft.Json.Linq;
22
using System;
33
using System.Collections.Generic;
4-
using System.Collections.Specialized;
54
using System.Linq;
65
using System.Text;
76
using System.Threading;
@@ -21,7 +20,7 @@ public ExchangeDigifinexAPI()
2120
{
2221
MarketSymbolSeparator = "_";
2322
MarketSymbolIsReversed = false;
24-
MarketSymbolIsUppercase = false;
23+
MarketSymbolIsUppercase = true;
2524
WebSocketOrderBookType = WebSocketOrderBookType.FullBookFirstThenDeltas;
2625
NonceStyle = NonceStyle.UnixSeconds;
2726
}
@@ -104,7 +103,7 @@ protected override JToken CheckJsonResponse(JToken result)
104103

105104
ExchangeMarket ParseSymbol(JToken x)
106105
{
107-
var symbol = x["market"].ToStringInvariant();
106+
var symbol = x["market"].ToStringUpperInvariant();
108107
var (baseCurrency, quoteCurrency) = ExchangeMarketSymbolToCurrencies(symbol);
109108
return new ExchangeMarket
110109
{
@@ -134,15 +133,15 @@ protected override async Task<IEnumerable<string>> OnGetMarketSymbolsAsync()
134133
ExchangeTicker ParseTicker(JToken x)
135134
{
136135
var t = x["ticker"][0];
137-
var symbol = t["symbol"].ToStringInvariant();
136+
var symbol = t["symbol"].ToStringUpperInvariant();
138137
var (baseCurrency, quoteCurrency) = ExchangeMarketSymbolToCurrencies(symbol);
139138

140139
return new ExchangeTicker
141140
{
142141
Ask = (decimal)t["sell"],
143142
Bid = (decimal)t["buy"],
144143
Last = (decimal)t["last"],
145-
MarketSymbol = t["symbol"].ToStringInvariant(),
144+
MarketSymbol = symbol,
146145
Volume = new ExchangeVolume
147146
{
148147
BaseCurrency = baseCurrency,
@@ -254,7 +253,7 @@ protected override async Task<IEnumerable<ExchangeOrderResult>> OnGetOpenOrderDe
254253
var list = token["data"];
255254
return list.Select(x => new ExchangeOrderResult
256255
{
257-
MarketSymbol = x["symbol"].ToStringLowerInvariant(),
256+
MarketSymbol = x["symbol"].ToStringInvariant(),
258257
OrderId = x["order_id"].ToStringInvariant(),
259258
OrderDate = CryptoUtility.UnixTimeStampToDateTimeSeconds(x["created_date"].ConvertInvariant<long>()),
260259
FillDate = CryptoUtility.UnixTimeStampToDateTimeSeconds(x["finished_date"].ConvertInvariant<long>()),
@@ -286,7 +285,7 @@ protected override async Task<IEnumerable<ExchangeOrderResult>> OnGetCompletedOr
286285
var list = token["list"];
287286
return list.Select(x => new ExchangeOrderResult
288287
{
289-
MarketSymbol = x["symbol"].ToStringLowerInvariant(),
288+
MarketSymbol = x["symbol"].ToStringInvariant(),
290289
OrderId = x["order_id"].ToStringInvariant(),
291290
TradeId = x["id"].ToStringInvariant(),
292291
Price = (decimal)x["price"],
@@ -324,15 +323,15 @@ protected override async Task<Dictionary<string, decimal>> OnGetAmountsAsync()
324323
Dictionary<string, object> payload = await GetNoncePayloadAsync();
325324
JToken token = await MakeJsonRequestAsync<JToken>("/spot/assets", payload: payload);
326325
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"]);
328327
}
329328

330329
protected override async Task<Dictionary<string, decimal>> OnGetAmountsAvailableToTradeAsync()
331330
{
332331
Dictionary<string, object> payload = await GetNoncePayloadAsync();
333332
JToken token = await MakeJsonRequestAsync<JToken>("/spot/assets", payload: payload);
334333
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"]);
336335
}
337336

338337
string GetOrderType(ExchangeOrderRequest order)
@@ -414,7 +413,7 @@ protected override IWebSocket OnGetTradesWebSocket(Func<KeyValuePair<string, Exc
414413
var args = token["params"];
415414
var clean = (bool)args[0];
416415
var trades = args[1];
417-
var symbol = args[2].ToStringLowerInvariant();
416+
var symbol = args[2].ToStringInvariant();
418417

419418
var x = trades as JArray;
420419
for (int i=0; i<x.Count; i++)
@@ -455,45 +454,44 @@ protected override IWebSocket OnGetDeltaOrderBookWebSocket(Action<ExchangeOrderB
455454
return null;
456455
}
457456

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-
489457
return ConnectWebSocket(string.Empty, (_socket, msg) =>
490458
{
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());
492490
if (token["method"].ToStringInvariant() == "depth.update")
493491
{
494492
var args = token["params"];
495493
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() };
497495
foreach (var x in data["asks"])
498496
{
499497
var price = (decimal)x[0];
@@ -516,4 +514,7 @@ protected override IWebSocket OnGetDeltaOrderBookWebSocket(Action<ExchangeOrderB
516514

517515
#endregion
518516
}
517+
518+
public partial class ExchangeName { public const string Digifinex = "Digifinex"; }
519+
519520
}

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ The following cryptocurrency exchanges are supported:
2828
| Bleutrade | x | x | |
2929
| Coinbase | x | x | T R |
3030
| Cryptopia | x | x | |
31+
| Digifinex | x | x | R B |
3132
| Gemini | x | x | R |
3233
| HitBTC | x | x | R |
3334
| Huobi | x | x | R B |

0 commit comments

Comments
 (0)