Skip to content

Commit

Permalink
CryptoExchange.Net version
Browse files Browse the repository at this point in the history
Updated CryptoExchange.Net to version 8.8.0, see https://github.com/JKorf/CryptoExchange.Net/releases/
Added support for more SharedKlineInterval values
Added setting of DataTime value on websocket DataEvent updates
Fix Mono runtime exception on rest client construction using DI
  • Loading branch information
JKorf committed Feb 10, 2025
1 parent 6f3c90e commit beb22c1
Show file tree
Hide file tree
Showing 9 changed files with 61 additions and 10 deletions.
2 changes: 1 addition & 1 deletion ByBit.Net/Bybit.Net.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="CryptoExchange.Net" Version="8.6.0" />
<PackageReference Include="CryptoExchange.Net" Version="8.8.0" />
<PackageReference Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="9.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
Expand Down
14 changes: 13 additions & 1 deletion ByBit.Net/Clients/V5/BybitRestClientApiShared.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,19 @@ internal partial class BybitRestClientApi : IBybitRestClientApiShared

#region Kline client

GetKlinesOptions IKlineRestClient.GetKlinesOptions { get; } = new GetKlinesOptions(SharedPaginationSupport.Descending, true, 1000, false);
GetKlinesOptions IKlineRestClient.GetKlinesOptions { get; } = new GetKlinesOptions(SharedPaginationSupport.Descending, true, 1000, false,
SharedKlineInterval.OneMinute,
SharedKlineInterval.FiveMinutes,
SharedKlineInterval.FifteenMinutes,
SharedKlineInterval.ThirtyMinutes,
SharedKlineInterval.OneHour,
SharedKlineInterval.TwoHours,
SharedKlineInterval.FourHours,
SharedKlineInterval.SixHours,
SharedKlineInterval.TwelveHours,
SharedKlineInterval.OneDay,
SharedKlineInterval.OneWeek,
SharedKlineInterval.OneMonth);
async Task<ExchangeWebResult<IEnumerable<SharedKline>>> IKlineRestClient.GetKlinesAsync(GetKlinesRequest request, INextPageToken? pageToken, CancellationToken ct)
{
var interval = (KlineInterval)request.Interval;
Expand Down
15 changes: 14 additions & 1 deletion ByBit.Net/Clients/V5/BybitSocketClientInverseApiShared.cs
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,20 @@ async Task<ExchangeResult<UpdateSubscription>> IBookTickerSocketClient.Subscribe
#endregion

#region Kline client
SubscribeKlineOptions IKlineSocketClient.SubscribeKlineOptions { get; } = new SubscribeKlineOptions(false);
SubscribeKlineOptions IKlineSocketClient.SubscribeKlineOptions { get; } = new SubscribeKlineOptions(false,
SharedKlineInterval.OneMinute,
SharedKlineInterval.ThreeMinutes,
SharedKlineInterval.FiveMinutes,
SharedKlineInterval.FifteenMinutes,
SharedKlineInterval.ThirtyMinutes,
SharedKlineInterval.OneHour,
SharedKlineInterval.TwoHours,
SharedKlineInterval.FourHours,
SharedKlineInterval.SixHours,
SharedKlineInterval.TwelveHours,
SharedKlineInterval.OneDay,
SharedKlineInterval.OneWeek,
SharedKlineInterval.OneMonth);
async Task<ExchangeResult<UpdateSubscription>> IKlineSocketClient.SubscribeToKlineUpdatesAsync(SubscribeKlineRequest request, Action<ExchangeEvent<SharedKline>> handler, CancellationToken ct)
{
var interval = (KlineInterval)request.Interval;
Expand Down
15 changes: 14 additions & 1 deletion ByBit.Net/Clients/V5/BybitSocketClientLinearApiShared.cs
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,20 @@ async Task<ExchangeResult<UpdateSubscription>> IBookTickerSocketClient.Subscribe
#endregion

#region Kline client
SubscribeKlineOptions IKlineSocketClient.SubscribeKlineOptions { get; } = new SubscribeKlineOptions(false);
SubscribeKlineOptions IKlineSocketClient.SubscribeKlineOptions { get; } = new SubscribeKlineOptions(false,
SharedKlineInterval.OneMinute,
SharedKlineInterval.ThreeMinutes,
SharedKlineInterval.FiveMinutes,
SharedKlineInterval.FifteenMinutes,
SharedKlineInterval.ThirtyMinutes,
SharedKlineInterval.OneHour,
SharedKlineInterval.TwoHours,
SharedKlineInterval.FourHours,
SharedKlineInterval.SixHours,
SharedKlineInterval.TwelveHours,
SharedKlineInterval.OneDay,
SharedKlineInterval.OneWeek,
SharedKlineInterval.OneMonth);
async Task<ExchangeResult<UpdateSubscription>> IKlineSocketClient.SubscribeToKlineUpdatesAsync(SubscribeKlineRequest request, Action<ExchangeEvent<SharedKline>> handler, CancellationToken ct)
{
var interval = (KlineInterval)request.Interval;
Expand Down
15 changes: 14 additions & 1 deletion ByBit.Net/Clients/V5/BybitSocketClientSpotApiShared.cs
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,20 @@ async Task<ExchangeResult<UpdateSubscription>> IBookTickerSocketClient.Subscribe
#endregion

#region Kline client
SubscribeKlineOptions IKlineSocketClient.SubscribeKlineOptions { get; } = new SubscribeKlineOptions(false);
SubscribeKlineOptions IKlineSocketClient.SubscribeKlineOptions { get; } = new SubscribeKlineOptions(false,
SharedKlineInterval.OneMinute,
SharedKlineInterval.ThreeMinutes,
SharedKlineInterval.FiveMinutes,
SharedKlineInterval.FifteenMinutes,
SharedKlineInterval.ThirtyMinutes,
SharedKlineInterval.OneHour,
SharedKlineInterval.TwoHours,
SharedKlineInterval.FourHours,
SharedKlineInterval.SixHours,
SharedKlineInterval.TwelveHours,
SharedKlineInterval.OneDay,
SharedKlineInterval.OneWeek,
SharedKlineInterval.OneMonth);
async Task<ExchangeResult<UpdateSubscription>> IKlineSocketClient.SubscribeToKlineUpdatesAsync(SubscribeKlineRequest request, Action<ExchangeEvent<SharedKline>> handler, CancellationToken ct)
{
var interval = (KlineInterval)request.Interval;
Expand Down
4 changes: 2 additions & 2 deletions ByBit.Net/ExtensionMethods/ServiceCollectionExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -114,8 +114,8 @@ private static IServiceCollection AddBybitCore(
handler.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
handler.DefaultProxyCredentials = CredentialCache.DefaultCredentials;
}
catch (PlatformNotSupportedException)
{ }
catch (PlatformNotSupportedException) { }
catch (NotImplementedException) { } // Mono runtime throws NotImplementedException for DefaultProxyCredentials setting

var options = serviceProvider.GetRequiredService<IOptions<BybitRestOptions>>().Value;
if (options.Proxy != null)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public override CallResult DoHandleMessage(SocketConnection connection, DataEven
{
var data = (BybitSpotSocketEvent<T>)message.Data;
var splitIndex = data.Topic.LastIndexOf('.');
_handler?.Invoke(message.As(data.Data, data.Topic, splitIndex == -1 ? null : data.Topic.Substring(splitIndex + 1), string.Equals(data.Type, "snapshot", StringComparison.Ordinal) ? SocketUpdateType.Snapshot : SocketUpdateType.Update));
_handler?.Invoke(message.As(data.Data, data.Topic, splitIndex == -1 ? null : data.Topic.Substring(splitIndex + 1), string.Equals(data.Type, "snapshot", StringComparison.Ordinal) ? SocketUpdateType.Snapshot : SocketUpdateType.Update).WithDataTimestamp(data.Timestamp));
return new CallResult(null);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public override CallResult DoHandleMessage(SocketConnection connection, DataEven
{
var data = (BybitSpotSocketEvent<T>)message.Data;
var splitIndex = data.Topic.LastIndexOf('.');
_handler?.Invoke(message.As(data.Data, data.Topic, splitIndex == -1 ? null : data.Topic.Substring(splitIndex + 1), string.Equals(data.Type, "snapshot", StringComparison.Ordinal) ? SocketUpdateType.Snapshot : SocketUpdateType.Update));
_handler?.Invoke(message.As(data.Data, data.Topic, splitIndex == -1 ? null : data.Topic.Substring(splitIndex + 1), string.Equals(data.Type, "snapshot", StringComparison.Ordinal) ? SocketUpdateType.Snapshot : SocketUpdateType.Update).WithDataTimestamp(data.Timestamp));
return new CallResult(null);
}

Expand Down
2 changes: 1 addition & 1 deletion Bybit.UnitTests/BybitRestIntegrationTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
namespace Bybit.Net.UnitTests
{
[NonParallelizable]
internal class BybitRestIntegrationTests : RestIntergrationTest<BybitRestClient>
internal class BybitRestIntegrationTests : RestIntegrationTest<BybitRestClient>
{
public override bool Run { get; set; }

Expand Down

0 comments on commit beb22c1

Please sign in to comment.