Skip to content

Commit 5405908

Browse files
authored
GateIo - Add the missing volume data OnGetTickerAsync and OnGetTickersAsync (#862)
1 parent 9545f6c commit 5405908

File tree

1 file changed

+19
-43
lines changed

1 file changed

+19
-43
lines changed

src/ExchangeSharp/API/Exchanges/GateIo/ExchangeGateIoAPI.cs

+19-43
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,24 @@ protected override async Task<
4141
IEnumerable<KeyValuePair<string, ExchangeTicker>>
4242
> OnGetTickersAsync()
4343
{
44-
var json = await MakeJsonRequestAsync<JToken>("/spot/tickers");
44+
var response = await MakeJsonRequestAsync<JToken>("/spot/tickers");
45+
var tickers =
46+
new List<KeyValuePair<string, ExchangeTicker>>();
4547

46-
var tickers = json.Select(tickerToken => ParseTicker(tickerToken))
47-
.Select(
48-
ticker => new KeyValuePair<string, ExchangeTicker>(ticker.MarketSymbol, ticker)
49-
)
50-
.ToList();
48+
foreach (var t in response)
49+
{
50+
var marketSymbol = t["currency_pair"].ToStringInvariant();
51+
tickers.Add(new KeyValuePair<string, ExchangeTicker>(
52+
marketSymbol,
53+
await this.ParseTickerAsync(
54+
t,
55+
t["currency_pair"].ToStringInvariant(),
56+
"lowest_ask",
57+
"highest_bid",
58+
"last",
59+
"base_volume",
60+
"quote_volume")));
61+
}
5162

5263
return tickers;
5364
}
@@ -171,44 +182,9 @@ protected internal override async Task<
171182
protected override async Task<ExchangeTicker> OnGetTickerAsync(string symbol)
172183
{
173184
var json = await MakeJsonRequestAsync<JToken>($"/spot/tickers?currency_pair={symbol}");
174-
return ParseTicker(json.First());
175-
}
176-
177-
private ExchangeTicker ParseTicker(JToken tickerToken)
178-
{
179-
bool IsEmptyString(JToken token) =>
180-
token.Type == JTokenType.String && token.ToObject<string>() == string.Empty;
181185

182-
/*
183-
{
184-
"currency_pair": "BTC3L_USDT",
185-
"last": "2.46140352",
186-
"lowest_ask": "2.477",
187-
"highest_bid": "2.4606821",
188-
"change_percentage": "-8.91",
189-
"base_volume": "656614.0845820589",
190-
"quote_volume": "1602221.66468375534639404191",
191-
"high_24h": "2.7431",
192-
"low_24h": "1.9863",
193-
"etf_net_value": "2.46316141",
194-
"etf_pre_net_value": "2.43201848",
195-
"etf_pre_timestamp": 1611244800,
196-
"etf_leverage": "2.2803019447281203"
197-
}
198-
*/
199-
200-
return new ExchangeTicker
201-
{
202-
Exchange = Name,
203-
MarketSymbol = tickerToken["currency_pair"].ToStringInvariant(),
204-
Bid = IsEmptyString(tickerToken["lowest_ask"])
205-
? default
206-
: tickerToken["lowest_ask"].ConvertInvariant<decimal>(),
207-
Ask = IsEmptyString(tickerToken["highest_bid"])
208-
? default
209-
: tickerToken["highest_bid"].ConvertInvariant<decimal>(),
210-
Last = tickerToken["last"].ConvertInvariant<decimal>(),
211-
};
186+
return await this.ParseTickerAsync(json.First(), json.First()["currency_pair"].ToStringInvariant(), "lowest_ask",
187+
"highest_bid", "last", "base_volume", "quote_volume");
212188
}
213189

214190
protected override async Task<ExchangeOrderBook> OnGetOrderBookAsync(

0 commit comments

Comments
 (0)