diff --git a/CryptoExchange.Net/Converters/SystemTextJson/CommaSplitEnumConverter.cs b/CryptoExchange.Net/Converters/SystemTextJson/CommaSplitEnumConverter.cs
index 1954616..f99de56 100644
--- a/CryptoExchange.Net/Converters/SystemTextJson/CommaSplitEnumConverter.cs
+++ b/CryptoExchange.Net/Converters/SystemTextJson/CommaSplitEnumConverter.cs
@@ -10,16 +10,16 @@ namespace CryptoExchange.Net.Converters.SystemTextJson
///
/// Converter for comma separated enum values
///
- public class CommaSplitEnumConverter : JsonConverter> where T: struct, Enum
+ public class CommaSplitEnumConverter : JsonConverter where T: struct, Enum
{
///
- public override IEnumerable? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+ public override T[]? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
return (reader.GetString()?.Split(',').Select(x => (T)EnumConverter.ParseString(x)!).ToArray() ?? []);
}
///
- public override void Write(Utf8JsonWriter writer, IEnumerable value, JsonSerializerOptions options)
+ public override void Write(Utf8JsonWriter writer, T[] value, JsonSerializerOptions options)
{
writer.WriteStringValue(string.Join(",", value.Select(x => EnumConverter.GetString(x))));
}
diff --git a/CryptoExchange.Net/ExchangeHelpers.cs b/CryptoExchange.Net/ExchangeHelpers.cs
index 95411ff..97f2bac 100644
--- a/CryptoExchange.Net/ExchangeHelpers.cs
+++ b/CryptoExchange.Net/ExchangeHelpers.cs
@@ -225,10 +225,10 @@ namespace CryptoExchange.Net
/// The request parameters
/// Cancellation token
///
- public static async IAsyncEnumerable>> ExecutePages(Func>>> paginatedFunc, U request, [EnumeratorCancellation]CancellationToken ct = default)
+ public static async IAsyncEnumerable> ExecutePages(Func>> paginatedFunc, U request, [EnumeratorCancellation]CancellationToken ct = default)
{
var result = new List();
- ExchangeWebResult> batch;
+ ExchangeWebResult batch;
INextPageToken? nextPageToken = null;
while (true)
{
diff --git a/CryptoExchange.Net/Interfaces/IRequest.cs b/CryptoExchange.Net/Interfaces/IRequest.cs
index ad6c591..7f7414a 100644
--- a/CryptoExchange.Net/Interfaces/IRequest.cs
+++ b/CryptoExchange.Net/Interfaces/IRequest.cs
@@ -54,7 +54,7 @@ namespace CryptoExchange.Net.Interfaces
/// Get all headers
///
///
- Dictionary> GetHeaders();
+ Dictionary GetHeaders();
///
/// Get the response
diff --git a/CryptoExchange.Net/Interfaces/IResponse.cs b/CryptoExchange.Net/Interfaces/IResponse.cs
index 2d3c487..55f9921 100644
--- a/CryptoExchange.Net/Interfaces/IResponse.cs
+++ b/CryptoExchange.Net/Interfaces/IResponse.cs
@@ -28,7 +28,7 @@ namespace CryptoExchange.Net.Interfaces
///
/// The response headers
///
- IEnumerable>> ResponseHeaders { get; }
+ KeyValuePair[] ResponseHeaders { get; }
///
/// Get the response stream
diff --git a/CryptoExchange.Net/Interfaces/ISymbolOrderBook.cs b/CryptoExchange.Net/Interfaces/ISymbolOrderBook.cs
index baf9df3..21c2bb7 100644
--- a/CryptoExchange.Net/Interfaces/ISymbolOrderBook.cs
+++ b/CryptoExchange.Net/Interfaces/ISymbolOrderBook.cs
@@ -42,7 +42,7 @@ namespace CryptoExchange.Net.Interfaces
///
/// Event when order book was updated. Be careful! It can generate a lot of events at high-liquidity markets
///
- event Action<(IEnumerable Bids, IEnumerable Asks)> OnOrderBookUpdate;
+ event Action<(ISymbolOrderBookEntry[] Bids, ISymbolOrderBookEntry[] Asks)> OnOrderBookUpdate;
///
/// Event when the BestBid or BestAsk changes ie a Pricing Tick
///
@@ -64,17 +64,17 @@ namespace CryptoExchange.Net.Interfaces
///
/// Get a snapshot of the book at this moment
///
- (IEnumerable bids, IEnumerable asks) Book { get; }
+ (ISymbolOrderBookEntry[] bids, ISymbolOrderBookEntry[] asks) Book { get; }
///
/// The list of asks
///
- IEnumerable Asks { get; }
+ ISymbolOrderBookEntry[] Asks { get; }
///
/// The list of bids
///
- IEnumerable Bids { get; }
+ ISymbolOrderBookEntry[] Bids { get; }
///
/// The best bid currently in the order book
diff --git a/CryptoExchange.Net/Objects/CallResult.cs b/CryptoExchange.Net/Objects/CallResult.cs
index 6dbded1..30703b1 100644
--- a/CryptoExchange.Net/Objects/CallResult.cs
+++ b/CryptoExchange.Net/Objects/CallResult.cs
@@ -192,7 +192,7 @@ namespace CryptoExchange.Net.Objects
///
/// The headers sent with the request
///
- public IEnumerable>>? RequestHeaders { get; set; }
+ public KeyValuePair[]? RequestHeaders { get; set; }
///
/// The request id
@@ -217,7 +217,7 @@ namespace CryptoExchange.Net.Objects
///
/// The response headers
///
- public IEnumerable>>? ResponseHeaders { get; set; }
+ public KeyValuePair[]? ResponseHeaders { get; set; }
///
/// The time between sending the request and receiving the response
@@ -238,13 +238,13 @@ namespace CryptoExchange.Net.Objects
///
public WebCallResult(
HttpStatusCode? code,
- IEnumerable>>? responseHeaders,
+ KeyValuePair[]? responseHeaders,
TimeSpan? responseTime,
int? requestId,
string? requestUrl,
string? requestBody,
HttpMethod? requestMethod,
- IEnumerable>>? requestHeaders,
+ KeyValuePair[]? requestHeaders,
Error? error) : base(error)
{
ResponseStatusCode = code;
@@ -343,7 +343,7 @@ namespace CryptoExchange.Net.Objects
///
/// The headers sent with the request
///
- public IEnumerable>>? RequestHeaders { get; set; }
+ public KeyValuePair[]? RequestHeaders { get; set; }
///
/// The request id
@@ -373,7 +373,7 @@ namespace CryptoExchange.Net.Objects
///
/// The response headers
///
- public IEnumerable>>? ResponseHeaders { get; set; }
+ public KeyValuePair[]? ResponseHeaders { get; set; }
///
/// The time between sending the request and receiving the response
@@ -403,7 +403,7 @@ namespace CryptoExchange.Net.Objects
///
public WebCallResult(
HttpStatusCode? code,
- IEnumerable>>? responseHeaders,
+ KeyValuePair[]? responseHeaders,
TimeSpan? responseTime,
long? responseLength,
string? originalData,
@@ -411,7 +411,7 @@ namespace CryptoExchange.Net.Objects
string? requestUrl,
string? requestBody,
HttpMethod? requestMethod,
- IEnumerable>>? requestHeaders,
+ KeyValuePair[]? requestHeaders,
ResultDataSource dataSource,
[AllowNull] T data,
Error? error) : base(data, originalData, error)
diff --git a/CryptoExchange.Net/OrderBook/ProcessBufferEntry.cs b/CryptoExchange.Net/OrderBook/ProcessBufferEntry.cs
index e457994..5a71974 100644
--- a/CryptoExchange.Net/OrderBook/ProcessBufferEntry.cs
+++ b/CryptoExchange.Net/OrderBook/ProcessBufferEntry.cs
@@ -22,11 +22,11 @@ namespace CryptoExchange.Net.OrderBook
///
/// List of changed/new asks
///
- public IEnumerable Asks { get; set; } = Array.Empty();
+ public ISymbolOrderBookEntry[] Asks { get; set; } = Array.Empty();
///
/// List of changed/new bids
///
- public IEnumerable Bids { get; set; } = Array.Empty();
+ public ISymbolOrderBookEntry[] Bids { get; set; } = Array.Empty();
}
}
diff --git a/CryptoExchange.Net/OrderBook/ProcessQueueItem.cs b/CryptoExchange.Net/OrderBook/ProcessQueueItem.cs
index 2ddc46e..f23110c 100644
--- a/CryptoExchange.Net/OrderBook/ProcessQueueItem.cs
+++ b/CryptoExchange.Net/OrderBook/ProcessQueueItem.cs
@@ -8,16 +8,16 @@ namespace CryptoExchange.Net.OrderBook
{
public long StartUpdateId { get; set; }
public long EndUpdateId { get; set; }
- public IEnumerable Bids { get; set; } = Array.Empty();
- public IEnumerable Asks { get; set; } = Array.Empty();
+ public ISymbolOrderBookEntry[] Bids { get; set; } = Array.Empty();
+ public ISymbolOrderBookEntry[] Asks { get; set; } = Array.Empty();
}
internal class InitialOrderBookItem
{
public long StartUpdateId { get; set; }
public long EndUpdateId { get; set; }
- public IEnumerable Bids { get; set; } = Array.Empty();
- public IEnumerable Asks { get; set; } = Array.Empty();
+ public ISymbolOrderBookEntry[] Bids { get; set; } = Array.Empty();
+ public ISymbolOrderBookEntry[] Asks { get; set; } = Array.Empty();
}
internal class ChecksumItem
diff --git a/CryptoExchange.Net/OrderBook/SymbolOrderBook.cs b/CryptoExchange.Net/OrderBook/SymbolOrderBook.cs
index 124de93..d6ee7b4 100644
--- a/CryptoExchange.Net/OrderBook/SymbolOrderBook.cs
+++ b/CryptoExchange.Net/OrderBook/SymbolOrderBook.cs
@@ -123,7 +123,7 @@ namespace CryptoExchange.Net.OrderBook
public event Action<(ISymbolOrderBookEntry BestBid, ISymbolOrderBookEntry BestAsk)>? OnBestOffersChanged;
///
- public event Action<(IEnumerable Bids, IEnumerable Asks)>? OnOrderBookUpdate;
+ public event Action<(ISymbolOrderBookEntry[] Bids, ISymbolOrderBookEntry[] Asks)>? OnOrderBookUpdate;
///
public DateTime UpdateTime { get; private set; }
@@ -135,27 +135,27 @@ namespace CryptoExchange.Net.OrderBook
public int BidCount { get; private set; }
///
- public IEnumerable Asks
+ public ISymbolOrderBookEntry[] Asks
{
get
{
lock (_bookLock)
- return _asks.Select(a => a.Value).ToList();
+ return _asks.Select(a => a.Value).ToArray();
}
}
///
- public IEnumerable Bids
+ public ISymbolOrderBookEntry[] Bids
{
get
{
lock (_bookLock)
- return _bids.Select(a => a.Value).ToList();
+ return _bids.Select(a => a.Value).ToArray();
}
}
///
- public (IEnumerable bids, IEnumerable asks) Book
+ public (ISymbolOrderBookEntry[] bids, ISymbolOrderBookEntry[] asks) Book
{
get
{
@@ -412,7 +412,7 @@ namespace CryptoExchange.Net.OrderBook
/// The last update sequence number until which the snapshot is in sync
/// List of asks
/// List of bids
- protected void SetInitialOrderBook(long orderBookSequenceNumber, IEnumerable bidList, IEnumerable askList)
+ protected void SetInitialOrderBook(long orderBookSequenceNumber, ISymbolOrderBookEntry[] bidList, ISymbolOrderBookEntry[] askList)
{
_processQueue.Enqueue(new InitialOrderBookItem { StartUpdateId = orderBookSequenceNumber, EndUpdateId = orderBookSequenceNumber, Asks = askList, Bids = bidList });
_queueEvent.Set();
@@ -424,7 +424,7 @@ namespace CryptoExchange.Net.OrderBook
/// The sequence number
/// List of updated/new bids
/// List of updated/new asks
- protected void UpdateOrderBook(long updateId, IEnumerable bids, IEnumerable asks)
+ protected void UpdateOrderBook(long updateId, ISymbolOrderBookEntry[] bids, ISymbolOrderBookEntry[] asks)
{
_processQueue.Enqueue(new ProcessQueueItem { StartUpdateId = updateId, EndUpdateId = updateId, Asks = asks, Bids = bids });
_queueEvent.Set();
@@ -437,7 +437,7 @@ namespace CryptoExchange.Net.OrderBook
/// The sequence number of the last update
/// List of updated/new bids
/// List of updated/new asks
- protected void UpdateOrderBook(long firstUpdateId, long lastUpdateId, IEnumerable bids, IEnumerable asks)
+ protected void UpdateOrderBook(long firstUpdateId, long lastUpdateId, ISymbolOrderBookEntry[] bids, ISymbolOrderBookEntry[] asks)
{
_processQueue.Enqueue(new ProcessQueueItem { StartUpdateId = firstUpdateId, EndUpdateId = lastUpdateId, Asks = asks, Bids = bids });
_queueEvent.Set();
@@ -448,7 +448,7 @@ namespace CryptoExchange.Net.OrderBook
///
/// List of updated/new bids
/// List of updated/new asks
- protected void UpdateOrderBook(IEnumerable bids, IEnumerable asks)
+ protected void UpdateOrderBook(ISymbolOrderSequencedBookEntry[] bids, ISymbolOrderSequencedBookEntry[] asks)
{
var highest = Math.Max(bids.Any() ? bids.Max(b => b.Sequence) : 0, asks.Any() ? asks.Max(a => a.Sequence) : 0);
var lowest = Math.Min(bids.Any() ? bids.Min(b => b.Sequence) : long.MaxValue, asks.Any() ? asks.Min(a => a.Sequence) : long.MaxValue);
@@ -707,7 +707,7 @@ namespace CryptoExchange.Net.OrderBook
UpdateTime = DateTime.UtcNow;
_logger.OrderBookDataSet(Api, Symbol, BidCount, AskCount, item.EndUpdateId);
CheckProcessBuffer();
- OnOrderBookUpdate?.Invoke((item.Bids, item.Asks));
+ OnOrderBookUpdate?.Invoke((item.Bids.ToArray(), item.Asks.ToArray()));
OnBestOffersChanged?.Invoke((BestBid, BestAsk));
}
}
@@ -745,7 +745,7 @@ namespace CryptoExchange.Net.OrderBook
return;
}
- OnOrderBookUpdate?.Invoke((item.Bids, item.Asks));
+ OnOrderBookUpdate?.Invoke((item.Bids.ToArray(), item.Asks.ToArray()));
CheckBestOffersChanged(prevBestBid, prevBestAsk);
}
}
diff --git a/CryptoExchange.Net/Requests/Request.cs b/CryptoExchange.Net/Requests/Request.cs
index f73b0fc..47428e6 100644
--- a/CryptoExchange.Net/Requests/Request.cs
+++ b/CryptoExchange.Net/Requests/Request.cs
@@ -67,9 +67,9 @@ namespace CryptoExchange.Net.Requests
}
///
- public Dictionary> GetHeaders()
+ public Dictionary GetHeaders()
{
- return _request.Headers.ToDictionary(h => h.Key, h => h.Value);
+ return _request.Headers.ToDictionary(h => h.Key, h => h.Value.ToArray());
}
///
diff --git a/CryptoExchange.Net/Requests/Response.cs b/CryptoExchange.Net/Requests/Response.cs
index 55f74ad..78505b1 100644
--- a/CryptoExchange.Net/Requests/Response.cs
+++ b/CryptoExchange.Net/Requests/Response.cs
@@ -1,5 +1,6 @@
using System.Collections.Generic;
using System.IO;
+using System.Linq;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
@@ -24,7 +25,7 @@ namespace CryptoExchange.Net.Requests
public long? ContentLength => _response.Content.Headers.ContentLength;
///
- public IEnumerable>> ResponseHeaders => _response.Headers;
+ public KeyValuePair[] ResponseHeaders => _response.Headers.Select(x => new KeyValuePair(x.Key, x.Value.ToArray())).ToArray();
///
/// Create response for a http response message
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Rest/Futures/IFundingRateRestClient.cs b/CryptoExchange.Net/SharedApis/Interfaces/Rest/Futures/IFundingRateRestClient.cs
index e502164..0553db7 100644
--- a/CryptoExchange.Net/SharedApis/Interfaces/Rest/Futures/IFundingRateRestClient.cs
+++ b/CryptoExchange.Net/SharedApis/Interfaces/Rest/Futures/IFundingRateRestClient.cs
@@ -19,6 +19,6 @@ namespace CryptoExchange.Net.SharedApis
/// Request info
/// The pagination token from the previous request to continue pagination
/// Cancellation token
- Task>> GetFundingRateHistoryAsync(GetFundingRateHistoryRequest request, INextPageToken? nextPageToken = null, CancellationToken ct = default);
+ Task> GetFundingRateHistoryAsync(GetFundingRateHistoryRequest request, INextPageToken? nextPageToken = null, CancellationToken ct = default);
}
}
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Rest/Futures/IFuturesOrderRestClient.cs b/CryptoExchange.Net/SharedApis/Interfaces/Rest/Futures/IFuturesOrderRestClient.cs
index 7142432..cb84dde 100644
--- a/CryptoExchange.Net/SharedApis/Interfaces/Rest/Futures/IFuturesOrderRestClient.cs
+++ b/CryptoExchange.Net/SharedApis/Interfaces/Rest/Futures/IFuturesOrderRestClient.cs
@@ -62,7 +62,7 @@ namespace CryptoExchange.Net.SharedApis
///
/// Request info
/// Cancellation token
- Task>> GetOpenFuturesOrdersAsync(GetOpenOrdersRequest request, CancellationToken ct = default);
+ Task> GetOpenFuturesOrdersAsync(GetOpenOrdersRequest request, CancellationToken ct = default);
///
/// Spot get closed orders request options
@@ -74,7 +74,7 @@ namespace CryptoExchange.Net.SharedApis
/// Request info
/// The pagination token from the previous request to continue pagination
/// Cancellation token
- Task>> GetClosedFuturesOrdersAsync(GetClosedOrdersRequest request, INextPageToken? nextPageToken = null, CancellationToken ct = default);
+ Task> GetClosedFuturesOrdersAsync(GetClosedOrdersRequest request, INextPageToken? nextPageToken = null, CancellationToken ct = default);
///
/// Futures get order trades request options
@@ -85,7 +85,7 @@ namespace CryptoExchange.Net.SharedApis
///
/// Request info
/// Cancellation token
- Task>> GetFuturesOrderTradesAsync(GetOrderTradesRequest request, CancellationToken ct = default);
+ Task> GetFuturesOrderTradesAsync(GetOrderTradesRequest request, CancellationToken ct = default);
///
/// Futures user trades request options
@@ -97,7 +97,7 @@ namespace CryptoExchange.Net.SharedApis
/// Request info
/// The pagination token from the previous request to continue pagination
/// Cancellation token
- Task>> GetFuturesUserTradesAsync(GetUserTradesRequest request, INextPageToken? nextPageToken = null, CancellationToken ct = default);
+ Task> GetFuturesUserTradesAsync(GetUserTradesRequest request, INextPageToken? nextPageToken = null, CancellationToken ct = default);
///
/// Futures cancel order request options
@@ -119,7 +119,7 @@ namespace CryptoExchange.Net.SharedApis
///
/// Request info
/// Cancellation token
- Task>> GetPositionsAsync(GetPositionsRequest request, CancellationToken ct = default);
+ Task> GetPositionsAsync(GetPositionsRequest request, CancellationToken ct = default);
///
/// Close position order request options
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Rest/Futures/IFuturesSymbolRestClient.cs b/CryptoExchange.Net/SharedApis/Interfaces/Rest/Futures/IFuturesSymbolRestClient.cs
index 1a3bb17..672ef51 100644
--- a/CryptoExchange.Net/SharedApis/Interfaces/Rest/Futures/IFuturesSymbolRestClient.cs
+++ b/CryptoExchange.Net/SharedApis/Interfaces/Rest/Futures/IFuturesSymbolRestClient.cs
@@ -14,10 +14,10 @@ namespace CryptoExchange.Net.SharedApis
///
EndpointOptions GetFuturesSymbolsOptions { get; }
///
- /// Get info on all futures symbols supported on the exchagne
+ /// Get info on all futures symbols supported on the exchange
///
/// Request info
/// Cancellation token
- Task>> GetFuturesSymbolsAsync(GetSymbolsRequest request, CancellationToken ct = default);
+ Task> GetFuturesSymbolsAsync(GetSymbolsRequest request, CancellationToken ct = default);
}
}
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Rest/Futures/IFuturesTickerRestClient.cs b/CryptoExchange.Net/SharedApis/Interfaces/Rest/Futures/IFuturesTickerRestClient.cs
index c08ca0a..b11c01c 100644
--- a/CryptoExchange.Net/SharedApis/Interfaces/Rest/Futures/IFuturesTickerRestClient.cs
+++ b/CryptoExchange.Net/SharedApis/Interfaces/Rest/Futures/IFuturesTickerRestClient.cs
@@ -25,10 +25,10 @@ namespace CryptoExchange.Net.SharedApis
///
EndpointOptions GetFuturesTickersOptions { get; }
///
- /// Get ticker info for aall futures symbols
+ /// Get ticker info for all futures symbols
///
/// Request info
/// Cancellation token
- Task>> GetFuturesTickersAsync(GetTickersRequest request, CancellationToken ct = default);
+ Task> GetFuturesTickersAsync(GetTickersRequest request, CancellationToken ct = default);
}
}
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Rest/Futures/IIndexPriceKlineRestClient.cs b/CryptoExchange.Net/SharedApis/Interfaces/Rest/Futures/IIndexPriceKlineRestClient.cs
index b77c3b0..103055d 100644
--- a/CryptoExchange.Net/SharedApis/Interfaces/Rest/Futures/IIndexPriceKlineRestClient.cs
+++ b/CryptoExchange.Net/SharedApis/Interfaces/Rest/Futures/IIndexPriceKlineRestClient.cs
@@ -19,6 +19,6 @@ namespace CryptoExchange.Net.SharedApis
/// Request info
/// The pagination token from the previous request to continue pagination
/// Cancellation token
- Task>> GetIndexPriceKlinesAsync(GetKlinesRequest request, INextPageToken? nextPageToken = null, CancellationToken ct = default);
+ Task> GetIndexPriceKlinesAsync(GetKlinesRequest request, INextPageToken? nextPageToken = null, CancellationToken ct = default);
}
}
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Rest/Futures/IMarkPriceKlineRestClient.cs b/CryptoExchange.Net/SharedApis/Interfaces/Rest/Futures/IMarkPriceKlineRestClient.cs
index dca1414..69f2f5c 100644
--- a/CryptoExchange.Net/SharedApis/Interfaces/Rest/Futures/IMarkPriceKlineRestClient.cs
+++ b/CryptoExchange.Net/SharedApis/Interfaces/Rest/Futures/IMarkPriceKlineRestClient.cs
@@ -19,6 +19,6 @@ namespace CryptoExchange.Net.SharedApis
/// Request info
/// The pagination token from the previous request to continue pagination
/// Cancellation token
- Task>> GetMarkPriceKlinesAsync(GetKlinesRequest request, INextPageToken? nextPageToken = null, CancellationToken ct = default);
+ Task> GetMarkPriceKlinesAsync(GetKlinesRequest request, INextPageToken? nextPageToken = null, CancellationToken ct = default);
}
}
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Rest/Futures/IPositionHistoryRestClient.cs b/CryptoExchange.Net/SharedApis/Interfaces/Rest/Futures/IPositionHistoryRestClient.cs
index 31135c4..8097fff 100644
--- a/CryptoExchange.Net/SharedApis/Interfaces/Rest/Futures/IPositionHistoryRestClient.cs
+++ b/CryptoExchange.Net/SharedApis/Interfaces/Rest/Futures/IPositionHistoryRestClient.cs
@@ -19,6 +19,6 @@ namespace CryptoExchange.Net.SharedApis
/// Request info
/// The pagination token from the previous request to continue pagination
/// Cancellation token
- Task>> GetPositionHistoryAsync(GetPositionHistoryRequest request, INextPageToken? nextPageToken = null, CancellationToken ct = default);
+ Task> GetPositionHistoryAsync(GetPositionHistoryRequest request, INextPageToken? nextPageToken = null, CancellationToken ct = default);
}
}
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Rest/IAssetsRestClient.cs b/CryptoExchange.Net/SharedApis/Interfaces/Rest/IAssetsRestClient.cs
index ca0e1b4..a688386 100644
--- a/CryptoExchange.Net/SharedApis/Interfaces/Rest/IAssetsRestClient.cs
+++ b/CryptoExchange.Net/SharedApis/Interfaces/Rest/IAssetsRestClient.cs
@@ -31,6 +31,6 @@ namespace CryptoExchange.Net.SharedApis
///
/// Request info
/// Cancellation token
- Task>> GetAssetsAsync(GetAssetsRequest request, CancellationToken ct = default);
+ Task> GetAssetsAsync(GetAssetsRequest request, CancellationToken ct = default);
}
}
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Rest/IBalanceRestClient.cs b/CryptoExchange.Net/SharedApis/Interfaces/Rest/IBalanceRestClient.cs
index 1220053..8983c61 100644
--- a/CryptoExchange.Net/SharedApis/Interfaces/Rest/IBalanceRestClient.cs
+++ b/CryptoExchange.Net/SharedApis/Interfaces/Rest/IBalanceRestClient.cs
@@ -20,6 +20,6 @@ namespace CryptoExchange.Net.SharedApis
/// Request info
/// Cancellation token
///
- Task>> GetBalancesAsync(GetBalancesRequest request, CancellationToken ct = default);
+ Task> GetBalancesAsync(GetBalancesRequest request, CancellationToken ct = default);
}
}
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Rest/IDepositRestClient.cs b/CryptoExchange.Net/SharedApis/Interfaces/Rest/IDepositRestClient.cs
index 261c275..0229d4a 100644
--- a/CryptoExchange.Net/SharedApis/Interfaces/Rest/IDepositRestClient.cs
+++ b/CryptoExchange.Net/SharedApis/Interfaces/Rest/IDepositRestClient.cs
@@ -20,7 +20,7 @@ namespace CryptoExchange.Net.SharedApis
/// Request info
/// Cancellation token
///
- Task>> GetDepositAddressesAsync(GetDepositAddressesRequest request, CancellationToken ct = default);
+ Task> GetDepositAddressesAsync(GetDepositAddressesRequest request, CancellationToken ct = default);
///
/// Deposits request options
@@ -34,6 +34,6 @@ namespace CryptoExchange.Net.SharedApis
/// The pagination token from the previous request to continue pagination
/// Cancellation token
///
- Task>> GetDepositsAsync(GetDepositsRequest request, INextPageToken? nextPageToken = null, CancellationToken ct = default);
+ Task> GetDepositsAsync(GetDepositsRequest request, INextPageToken? nextPageToken = null, CancellationToken ct = default);
}
}
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Rest/IKlineRestClient.cs b/CryptoExchange.Net/SharedApis/Interfaces/Rest/IKlineRestClient.cs
index 39cfb30..06cee87 100644
--- a/CryptoExchange.Net/SharedApis/Interfaces/Rest/IKlineRestClient.cs
+++ b/CryptoExchange.Net/SharedApis/Interfaces/Rest/IKlineRestClient.cs
@@ -21,6 +21,6 @@ namespace CryptoExchange.Net.SharedApis
/// The pagination token from the previous request to continue pagination
/// Cancellation token
///
- Task>> GetKlinesAsync(GetKlinesRequest request, INextPageToken? nextPageToken = null, CancellationToken ct = default);
+ Task> GetKlinesAsync(GetKlinesRequest request, INextPageToken? nextPageToken = null, CancellationToken ct = default);
}
}
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Rest/IRecentTradeRestClient.cs b/CryptoExchange.Net/SharedApis/Interfaces/Rest/IRecentTradeRestClient.cs
index f89afdb..714b7d5 100644
--- a/CryptoExchange.Net/SharedApis/Interfaces/Rest/IRecentTradeRestClient.cs
+++ b/CryptoExchange.Net/SharedApis/Interfaces/Rest/IRecentTradeRestClient.cs
@@ -20,6 +20,6 @@ namespace CryptoExchange.Net.SharedApis
/// Request info
/// Cancellation token
///
- Task>> GetRecentTradesAsync(GetRecentTradesRequest request, CancellationToken ct = default);
+ Task> GetRecentTradesAsync(GetRecentTradesRequest request, CancellationToken ct = default);
}
}
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Rest/ITradeHistoryRestClient.cs b/CryptoExchange.Net/SharedApis/Interfaces/Rest/ITradeHistoryRestClient.cs
index a99e723..e14c64d 100644
--- a/CryptoExchange.Net/SharedApis/Interfaces/Rest/ITradeHistoryRestClient.cs
+++ b/CryptoExchange.Net/SharedApis/Interfaces/Rest/ITradeHistoryRestClient.cs
@@ -21,6 +21,6 @@ namespace CryptoExchange.Net.SharedApis
/// The pagination token from the previous request to continue pagination
/// Cancellation token
///
- Task>> GetTradeHistoryAsync(GetTradeHistoryRequest request, INextPageToken? nextPageToken = null, CancellationToken ct = default);
+ Task> GetTradeHistoryAsync(GetTradeHistoryRequest request, INextPageToken? nextPageToken = null, CancellationToken ct = default);
}
}
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Rest/IWithdrawalRestClient .cs b/CryptoExchange.Net/SharedApis/Interfaces/Rest/IWithdrawalRestClient .cs
index 9e24915..3316888 100644
--- a/CryptoExchange.Net/SharedApis/Interfaces/Rest/IWithdrawalRestClient .cs
+++ b/CryptoExchange.Net/SharedApis/Interfaces/Rest/IWithdrawalRestClient .cs
@@ -21,6 +21,6 @@ namespace CryptoExchange.Net.SharedApis
/// The pagination token from the previous request to continue pagination
/// Cancellation token
///
- Task>> GetWithdrawalsAsync(GetWithdrawalsRequest request, INextPageToken? nextPageToken = null, CancellationToken ct = default);
+ Task> GetWithdrawalsAsync(GetWithdrawalsRequest request, INextPageToken? nextPageToken = null, CancellationToken ct = default);
}
}
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Rest/Spot/ISpotOrderRestClient.cs b/CryptoExchange.Net/SharedApis/Interfaces/Rest/Spot/ISpotOrderRestClient.cs
index fa6dd66..6ca0b7d 100644
--- a/CryptoExchange.Net/SharedApis/Interfaces/Rest/Spot/ISpotOrderRestClient.cs
+++ b/CryptoExchange.Net/SharedApis/Interfaces/Rest/Spot/ISpotOrderRestClient.cs
@@ -21,11 +21,11 @@ namespace CryptoExchange.Net.SharedApis
///
/// Supported order types
///
- IEnumerable SpotSupportedOrderTypes { get; }
+ SharedOrderType[] SpotSupportedOrderTypes { get; }
///
/// Supported time in force
///
- IEnumerable SpotSupportedTimeInForce { get; }
+ SharedTimeInForce[] SpotSupportedTimeInForce { get; }
///
/// Quantity types support
///
@@ -62,7 +62,7 @@ namespace CryptoExchange.Net.SharedApis
///
/// Request info
/// Cancellation token
- Task>> GetOpenSpotOrdersAsync(GetOpenOrdersRequest request, CancellationToken ct = default);
+ Task> GetOpenSpotOrdersAsync(GetOpenOrdersRequest request, CancellationToken ct = default);
///
/// Spot get closed orders request options
@@ -74,7 +74,7 @@ namespace CryptoExchange.Net.SharedApis
/// Request info
/// The pagination token from the previous request to continue pagination
/// Cancellation token
- Task>> GetClosedSpotOrdersAsync(GetClosedOrdersRequest request, INextPageToken? nextPageToken = null, CancellationToken ct = default);
+ Task> GetClosedSpotOrdersAsync(GetClosedOrdersRequest request, INextPageToken? nextPageToken = null, CancellationToken ct = default);
///
/// Spot get order trades request options
@@ -85,7 +85,7 @@ namespace CryptoExchange.Net.SharedApis
///
/// Request info
/// Cancellation token
- Task>> GetSpotOrderTradesAsync(GetOrderTradesRequest request, CancellationToken ct = default);
+ Task> GetSpotOrderTradesAsync(GetOrderTradesRequest request, CancellationToken ct = default);
///
/// Spot user trades request options
@@ -97,7 +97,7 @@ namespace CryptoExchange.Net.SharedApis
/// Request info
/// The pagination token from the previous request to continue pagination
/// Cancellation token
- Task>> GetSpotUserTradesAsync(GetUserTradesRequest request, INextPageToken? nextPageToken = null, CancellationToken ct = default);
+ Task> GetSpotUserTradesAsync(GetUserTradesRequest request, INextPageToken? nextPageToken = null, CancellationToken ct = default);
///
/// Spot cancel order request options
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Rest/Spot/ISpotSymbolRestClient.cs b/CryptoExchange.Net/SharedApis/Interfaces/Rest/Spot/ISpotSymbolRestClient.cs
index b982bd0..520f07c 100644
--- a/CryptoExchange.Net/SharedApis/Interfaces/Rest/Spot/ISpotSymbolRestClient.cs
+++ b/CryptoExchange.Net/SharedApis/Interfaces/Rest/Spot/ISpotSymbolRestClient.cs
@@ -19,6 +19,6 @@ namespace CryptoExchange.Net.SharedApis
///
/// Request info
/// Cancellation token
- Task>> GetSpotSymbolsAsync(GetSymbolsRequest request, CancellationToken ct = default);
+ Task> GetSpotSymbolsAsync(GetSymbolsRequest request, CancellationToken ct = default);
}
}
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Rest/Spot/ISpotTickerRestClient.cs b/CryptoExchange.Net/SharedApis/Interfaces/Rest/Spot/ISpotTickerRestClient.cs
index dbb7abc..84a9108 100644
--- a/CryptoExchange.Net/SharedApis/Interfaces/Rest/Spot/ISpotTickerRestClient.cs
+++ b/CryptoExchange.Net/SharedApis/Interfaces/Rest/Spot/ISpotTickerRestClient.cs
@@ -28,6 +28,6 @@ namespace CryptoExchange.Net.SharedApis
///
/// Request info
/// Cancellation token
- Task>> GetSpotTickersAsync(GetTickersRequest request, CancellationToken ct = default);
+ Task> GetSpotTickersAsync(GetTickersRequest request, CancellationToken ct = default);
}
}
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Socket/Futures/IFuturesOrderSocketClient.cs b/CryptoExchange.Net/SharedApis/Interfaces/Socket/Futures/IFuturesOrderSocketClient.cs
index 8cfa4eb..db22ab6 100644
--- a/CryptoExchange.Net/SharedApis/Interfaces/Socket/Futures/IFuturesOrderSocketClient.cs
+++ b/CryptoExchange.Net/SharedApis/Interfaces/Socket/Futures/IFuturesOrderSocketClient.cs
@@ -23,6 +23,6 @@ namespace CryptoExchange.Net.SharedApis
/// Update handler
/// Cancellation token, can be used to stop the updates
///
- Task> SubscribeToFuturesOrderUpdatesAsync(SubscribeFuturesOrderRequest request, Action>> handler, CancellationToken ct = default);
+ Task> SubscribeToFuturesOrderUpdatesAsync(SubscribeFuturesOrderRequest request, Action> handler, CancellationToken ct = default);
}
}
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Socket/Futures/IPositionSocketClient.cs b/CryptoExchange.Net/SharedApis/Interfaces/Socket/Futures/IPositionSocketClient.cs
index d657748..03cba56 100644
--- a/CryptoExchange.Net/SharedApis/Interfaces/Socket/Futures/IPositionSocketClient.cs
+++ b/CryptoExchange.Net/SharedApis/Interfaces/Socket/Futures/IPositionSocketClient.cs
@@ -23,6 +23,6 @@ namespace CryptoExchange.Net.SharedApis
/// Update handler
/// Cancellation token, can be used to stop the updates
///
- Task> SubscribeToPositionUpdatesAsync(SubscribePositionRequest request, Action>> handler, CancellationToken ct = default);
+ Task> SubscribeToPositionUpdatesAsync(SubscribePositionRequest request, Action> handler, CancellationToken ct = default);
}
}
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Socket/IBalanceSocketClient.cs b/CryptoExchange.Net/SharedApis/Interfaces/Socket/IBalanceSocketClient.cs
index f9df2de..24c66a6 100644
--- a/CryptoExchange.Net/SharedApis/Interfaces/Socket/IBalanceSocketClient.cs
+++ b/CryptoExchange.Net/SharedApis/Interfaces/Socket/IBalanceSocketClient.cs
@@ -23,6 +23,6 @@ namespace CryptoExchange.Net.SharedApis
/// Update handler
/// Cancellation token, can be used to stop the updates
///
- Task> SubscribeToBalanceUpdatesAsync(SubscribeBalancesRequest request, Action>> handler, CancellationToken ct = default);
+ Task> SubscribeToBalanceUpdatesAsync(SubscribeBalancesRequest request, Action> handler, CancellationToken ct = default);
}
}
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Socket/ITickersSocketClient.cs b/CryptoExchange.Net/SharedApis/Interfaces/Socket/ITickersSocketClient.cs
index e187f1e..f3652c3 100644
--- a/CryptoExchange.Net/SharedApis/Interfaces/Socket/ITickersSocketClient.cs
+++ b/CryptoExchange.Net/SharedApis/Interfaces/Socket/ITickersSocketClient.cs
@@ -23,6 +23,6 @@ namespace CryptoExchange.Net.SharedApis
/// Update handler
/// Cancellation token, can be used to stop the updates
///
- Task> SubscribeToAllTickersUpdatesAsync(SubscribeAllTickersRequest request, Action>> handler, CancellationToken ct = default);
+ Task> SubscribeToAllTickersUpdatesAsync(SubscribeAllTickersRequest request, Action> handler, CancellationToken ct = default);
}
}
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Socket/ITradeSocketClient.cs b/CryptoExchange.Net/SharedApis/Interfaces/Socket/ITradeSocketClient.cs
index a46b072..e6a8f21 100644
--- a/CryptoExchange.Net/SharedApis/Interfaces/Socket/ITradeSocketClient.cs
+++ b/CryptoExchange.Net/SharedApis/Interfaces/Socket/ITradeSocketClient.cs
@@ -23,6 +23,6 @@ namespace CryptoExchange.Net.SharedApis
/// Update handler
/// Cancellation token, can be used to stop the updates
///
- Task> SubscribeToTradeUpdatesAsync(SubscribeTradeRequest request, Action>> handler, CancellationToken ct = default);
+ Task> SubscribeToTradeUpdatesAsync(SubscribeTradeRequest request, Action> handler, CancellationToken ct = default);
}
}
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Socket/IUserTradeSocketClient.cs b/CryptoExchange.Net/SharedApis/Interfaces/Socket/IUserTradeSocketClient.cs
index 941afed..031e9f8 100644
--- a/CryptoExchange.Net/SharedApis/Interfaces/Socket/IUserTradeSocketClient.cs
+++ b/CryptoExchange.Net/SharedApis/Interfaces/Socket/IUserTradeSocketClient.cs
@@ -23,6 +23,6 @@ namespace CryptoExchange.Net.SharedApis
/// Update handler
/// Cancellation token, can be used to stop the updates
///
- Task> SubscribeToUserTradeUpdatesAsync(SubscribeUserTradeRequest request, Action>> handler, CancellationToken ct = default);
+ Task> SubscribeToUserTradeUpdatesAsync(SubscribeUserTradeRequest request, Action> handler, CancellationToken ct = default);
}
}
diff --git a/CryptoExchange.Net/SharedApis/Interfaces/Socket/Spot/ISpotOrderSocketClient.cs b/CryptoExchange.Net/SharedApis/Interfaces/Socket/Spot/ISpotOrderSocketClient.cs
index 5852aff..12d24b2 100644
--- a/CryptoExchange.Net/SharedApis/Interfaces/Socket/Spot/ISpotOrderSocketClient.cs
+++ b/CryptoExchange.Net/SharedApis/Interfaces/Socket/Spot/ISpotOrderSocketClient.cs
@@ -23,6 +23,6 @@ namespace CryptoExchange.Net.SharedApis
/// Update handler
/// Cancellation token, can be used to stop the updates
///
- Task> SubscribeToSpotOrderUpdatesAsync(SubscribeSpotOrderRequest request, Action>> handler, CancellationToken ct = default);
+ Task> SubscribeToSpotOrderUpdatesAsync(SubscribeSpotOrderRequest request, Action> handler, CancellationToken ct = default);
}
}
diff --git a/CryptoExchange.Net/SharedApis/Models/ExchangeWebResult.cs b/CryptoExchange.Net/SharedApis/Models/ExchangeWebResult.cs
index 61908e4..b00ad20 100644
--- a/CryptoExchange.Net/SharedApis/Models/ExchangeWebResult.cs
+++ b/CryptoExchange.Net/SharedApis/Models/ExchangeWebResult.cs
@@ -100,7 +100,7 @@ namespace CryptoExchange.Net.SharedApis
string exchange,
TradingMode[]? dataTradeModes,
HttpStatusCode? code,
- IEnumerable>>? responseHeaders,
+ KeyValuePair[]? responseHeaders,
TimeSpan? responseTime,
long? responseLength,
string? originalData,
@@ -108,7 +108,7 @@ namespace CryptoExchange.Net.SharedApis
string? requestUrl,
string? requestBody,
HttpMethod? requestMethod,
- IEnumerable>>? requestHeaders,
+ KeyValuePair[]? requestHeaders,
ResultDataSource dataSource,
[AllowNull] T data,
Error? error,
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetKlinesOptions.cs b/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetKlinesOptions.cs
index d94e7af..1a1b97e 100644
--- a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetKlinesOptions.cs
+++ b/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetKlinesOptions.cs
@@ -14,7 +14,7 @@ namespace CryptoExchange.Net.SharedApis
///
/// The supported kline intervals
///
- public IEnumerable SupportIntervals { get; }
+ public SharedKlineInterval[] SupportIntervals { get; }
///
/// Max number of data points which can be requested
///
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetOrderBookOptions.cs b/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetOrderBookOptions.cs
index 12e2745..7c117ee 100644
--- a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetOrderBookOptions.cs
+++ b/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/GetOrderBookOptions.cs
@@ -14,7 +14,7 @@ namespace CryptoExchange.Net.SharedApis
///
/// Supported order book depths
///
- public IEnumerable? SupportedLimits { get; set; }
+ public int[]? SupportedLimits { get; set; }
///
/// The min order book depth
@@ -37,7 +37,7 @@ namespace CryptoExchange.Net.SharedApis
///
/// ctor
///
- public GetOrderBookOptions(IEnumerable supportedLimits, bool authenticated) : base(authenticated)
+ public GetOrderBookOptions(int[] supportedLimits, bool authenticated) : base(authenticated)
{
SupportedLimits = supportedLimits;
}
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/PlaceSpotOrderOptions.cs b/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/PlaceSpotOrderOptions.cs
index 36edbf2..ea83947 100644
--- a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/PlaceSpotOrderOptions.cs
+++ b/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/PlaceSpotOrderOptions.cs
@@ -26,8 +26,8 @@ namespace CryptoExchange.Net.SharedApis
PlaceSpotOrderRequest request,
TradingMode? tradingMode,
TradingMode[] supportedApiTypes,
- IEnumerable supportedOrderTypes,
- IEnumerable supportedTimeInForce,
+ SharedOrderType[] supportedOrderTypes,
+ SharedTimeInForce[] supportedTimeInForce,
SharedQuantitySupport quantitySupport)
{
if (request.OrderType == SharedOrderType.Other)
diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Subscriptions/SubscribeOrderBookOptions.cs b/CryptoExchange.Net/SharedApis/Models/Options/Subscriptions/SubscribeOrderBookOptions.cs
index 9b4bf27..bd3c36b 100644
--- a/CryptoExchange.Net/SharedApis/Models/Options/Subscriptions/SubscribeOrderBookOptions.cs
+++ b/CryptoExchange.Net/SharedApis/Models/Options/Subscriptions/SubscribeOrderBookOptions.cs
@@ -13,12 +13,12 @@ namespace CryptoExchange.Net.SharedApis
///
/// Order book depths supported for updates
///
- public IEnumerable SupportedLimits { get; }
+ public int[] SupportedLimits { get; }
///
/// ctor
///
- public SubscribeOrderBookOptions(bool needsAuthentication, IEnumerable limits) : base(needsAuthentication)
+ public SubscribeOrderBookOptions(bool needsAuthentication, int[] limits) : base(needsAuthentication)
{
SupportedLimits = limits;
}
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedAsset.cs b/CryptoExchange.Net/SharedApis/ResponseModels/SharedAsset.cs
index c3d9cfc..3fe5aff 100644
--- a/CryptoExchange.Net/SharedApis/ResponseModels/SharedAsset.cs
+++ b/CryptoExchange.Net/SharedApis/ResponseModels/SharedAsset.cs
@@ -19,7 +19,7 @@ namespace CryptoExchange.Net.SharedApis
///
/// Asset networks info
///
- public IEnumerable? Networks { get; set; } = Array.Empty();
+ public SharedAssetNetwork[]? Networks { get; set; } = Array.Empty();
///
/// ctor
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedOrderBook.cs b/CryptoExchange.Net/SharedApis/ResponseModels/SharedOrderBook.cs
index 4fecefc..d4e85c9 100644
--- a/CryptoExchange.Net/SharedApis/ResponseModels/SharedOrderBook.cs
+++ b/CryptoExchange.Net/SharedApis/ResponseModels/SharedOrderBook.cs
@@ -11,16 +11,16 @@ namespace CryptoExchange.Net.SharedApis
///
/// Asks list
///
- public IEnumerable Asks { get; set; }
+ public ISymbolOrderBookEntry[] Asks { get; set; }
///
/// Bids list
///
- public IEnumerable Bids { get; set; }
+ public ISymbolOrderBookEntry[] Bids { get; set; }
///
/// ctor
///
- public SharedOrderBook(IEnumerable asks, IEnumerable bids)
+ public SharedOrderBook(ISymbolOrderBookEntry[] asks, ISymbolOrderBookEntry[] bids)
{
Asks = asks;
Bids = bids;
diff --git a/CryptoExchange.Net/Sockets/SocketConnection.cs b/CryptoExchange.Net/Sockets/SocketConnection.cs
index 8e32437..8816486 100644
--- a/CryptoExchange.Net/Sockets/SocketConnection.cs
+++ b/CryptoExchange.Net/Sockets/SocketConnection.cs
@@ -195,12 +195,12 @@ namespace CryptoExchange.Net.Sockets
///
/// Current subscription topics on this connection
///
- public IEnumerable Topics
+ public string[] Topics
{
get
{
lock (_listenersLock)
- return _listeners.OfType().Select(x => x.Topic).Where(t => t != null).ToList()!;
+ return _listeners.OfType().Select(x => x.Topic).Where(t => t != null).ToArray()!;
}
}
diff --git a/CryptoExchange.Net/Testing/Implementations/TestRequest.cs b/CryptoExchange.Net/Testing/Implementations/TestRequest.cs
index 5f4d9b8..32ea87f 100644
--- a/CryptoExchange.Net/Testing/Implementations/TestRequest.cs
+++ b/CryptoExchange.Net/Testing/Implementations/TestRequest.cs
@@ -10,7 +10,7 @@ namespace CryptoExchange.Net.Testing.Implementations
{
internal class TestRequest : IRequest
{
- private readonly Dictionary> _headers = new Dictionary>();
+ private readonly Dictionary _headers = new Dictionary();
private readonly TestResponse _response;
public string Accept { set { } }
@@ -35,7 +35,7 @@ namespace CryptoExchange.Net.Testing.Implementations
_headers.Add(key, new[] { value });
}
- public Dictionary> GetHeaders() => _headers;
+ public Dictionary GetHeaders() => _headers;
public Task GetResponseAsync(CancellationToken cancellationToken) => Task.FromResult(_response);
diff --git a/CryptoExchange.Net/Testing/Implementations/TestResponse.cs b/CryptoExchange.Net/Testing/Implementations/TestResponse.cs
index 3cb32a0..53d59e4 100644
--- a/CryptoExchange.Net/Testing/Implementations/TestResponse.cs
+++ b/CryptoExchange.Net/Testing/Implementations/TestResponse.cs
@@ -16,7 +16,7 @@ namespace CryptoExchange.Net.Testing.Implementations
public long? ContentLength { get; }
- public IEnumerable>> ResponseHeaders { get; } = new Dictionary>();
+ public KeyValuePair[] ResponseHeaders { get; } = new KeyValuePair[0];
public TestResponse(HttpStatusCode code, Stream response)
{
diff --git a/CryptoExchange.Net/Trackers/Klines/IKlineTracker.cs b/CryptoExchange.Net/Trackers/Klines/IKlineTracker.cs
index f304249..11b7afc 100644
--- a/CryptoExchange.Net/Trackers/Klines/IKlineTracker.cs
+++ b/CryptoExchange.Net/Trackers/Klines/IKlineTracker.cs
@@ -91,7 +91,7 @@ namespace CryptoExchange.Net.Trackers.Klines
/// Start timestamp to get the data from, defaults to tracked data start time
/// End timestamp to get the data until, defaults to current time
///
- IEnumerable GetData(DateTime? fromTimestamp = null, DateTime? toTimestamp = null);
+ SharedKline[] GetData(DateTime? fromTimestamp = null, DateTime? toTimestamp = null);
///
/// Get statistics on the klines
diff --git a/CryptoExchange.Net/Trackers/Klines/KlineTracker.cs b/CryptoExchange.Net/Trackers/Klines/KlineTracker.cs
index a11c60f..c0cafd0 100644
--- a/CryptoExchange.Net/Trackers/Klines/KlineTracker.cs
+++ b/CryptoExchange.Net/Trackers/Klines/KlineTracker.cs
@@ -285,7 +285,7 @@ namespace CryptoExchange.Net.Trackers.Klines
}
///
- public IEnumerable GetData(DateTime? since = null, DateTime? until = null)
+ public SharedKline[] GetData(DateTime? since = null, DateTime? until = null)
{
lock (_lock)
{
@@ -297,7 +297,7 @@ namespace CryptoExchange.Net.Trackers.Klines
if (until != null)
result = result.Where(d => d.OpenTime <= until);
- return result.ToList();
+ return result.ToArray();
}
}
diff --git a/CryptoExchange.Net/Trackers/Trades/ITradeTracker.cs b/CryptoExchange.Net/Trackers/Trades/ITradeTracker.cs
index 713dee4..4f08aea 100644
--- a/CryptoExchange.Net/Trackers/Trades/ITradeTracker.cs
+++ b/CryptoExchange.Net/Trackers/Trades/ITradeTracker.cs
@@ -87,7 +87,7 @@ namespace CryptoExchange.Net.Trackers.Trades
/// Start timestamp to get the data from, defaults to tracked data start time
/// End timestamp to get the data until, defaults to current time
///
- IEnumerable GetData(DateTime? fromTimestamp = null, DateTime? toTimestamp = null);
+ SharedTrade[] GetData(DateTime? fromTimestamp = null, DateTime? toTimestamp = null);
///
/// Get statistics on the trades
diff --git a/CryptoExchange.Net/Trackers/Trades/TradeTracker.cs b/CryptoExchange.Net/Trackers/Trades/TradeTracker.cs
index e92be50..de534c3 100644
--- a/CryptoExchange.Net/Trackers/Trades/TradeTracker.cs
+++ b/CryptoExchange.Net/Trackers/Trades/TradeTracker.cs
@@ -297,7 +297,7 @@ namespace CryptoExchange.Net.Trackers.Trades
protected virtual Task DoStopAsync() => _updateSubscription?.CloseAsync() ?? Task.CompletedTask;
///
- public IEnumerable GetData(DateTime? since = null, DateTime? until = null)
+ public SharedTrade[] GetData(DateTime? since = null, DateTime? until = null)
{
lock (_lock)
{
@@ -309,7 +309,7 @@ namespace CryptoExchange.Net.Trackers.Trades
if (until != null)
result = result.Where(d => d.Timestamp <= until);
- return result.ToList();
+ return result.ToArray();
}
}