Skip to content

Commit

Permalink
Added V5Api.Account.RepayLiabilitiesAsync endpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
JKorf committed Mar 11, 2024
1 parent 80caf76 commit 5c032ec
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 0 deletions.
20 changes: 20 additions & 0 deletions ByBit.Net/Clients/V5/BybitRestClientApiAccount.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
using CryptoExchange.Net.Converters;
using System.Globalization;
using Bybit.Net.Interfaces.Clients.V5;
using Bybit.Net.Objects.Internal;

namespace Bybit.Net.Clients.V5
{
Expand Down Expand Up @@ -985,5 +986,24 @@ public async Task<WebCallResult> SetSpotHedgingModeAsync(bool spotHedgingMode, C
}

#endregion

#region Repay Liabilities

/// <inheritdoc />
public async Task<WebCallResult<IEnumerable<BybitLiabilityRepayment>>> RepayLiabilitiesAsync(string? asset = null, CancellationToken ct = default)
{
var parameters = new Dictionary<string, object>();
parameters.AddOptionalParameter("coin", asset);
var result = await _baseClient.SendRequestAsync<BybitList<BybitLiabilityRepayment>>(_baseClient.GetUrl("v5/account/quick-repayment"), HttpMethod.Post, ct, parameters, true).ConfigureAwait(false);
if (!result || result.Data == null)
return result.As<IEnumerable<BybitLiabilityRepayment>>(default);

if (result.Data.List == null)
return result.As<IEnumerable<BybitLiabilityRepayment>>(Array.Empty<BybitLiabilityRepayment>());

return result.As(result.Data.List);
}

#endregion
}
}
9 changes: 9 additions & 0 deletions ByBit.Net/Interfaces/Clients/V5/IBybitRestClientApiAccount.cs
Original file line number Diff line number Diff line change
Expand Up @@ -565,5 +565,14 @@ Task<WebCallResult<BybitPosition>> AddOrReduceMarginAsync(
/// <param name="ct">Cancellation token</param>
/// <returns></returns>
Task<WebCallResult> SetSpotHedgingModeAsync(bool spotHedgingMode, CancellationToken ct = default);

/// <summary>
/// Manually repay the liabilities of Unified account
/// <para><a href="https://bybit-exchange.github.io/docs/v5/account/repay-liability" /></para>
/// </summary>
/// <param name="asset">Only repay this asset; if null repay all assets</param>
/// <param name="ct">Cancellation token</param>
/// <returns></returns>
Task<WebCallResult<IEnumerable<BybitLiabilityRepayment>>> RepayLiabilitiesAsync(string? asset = null, CancellationToken ct = default);
}
}
21 changes: 21 additions & 0 deletions ByBit.Net/Objects/Models/V5/BybitLiabilityRepayment.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
using Newtonsoft.Json;

namespace Bybit.Net.Objects.Models.V5
{
/// <summary>
/// Liability repayment info
/// </summary>
public class BybitLiabilityRepayment
{
/// <summary>
/// Asset name
/// </summary>
[JsonProperty("coin")]
public string Asset { get; set; } = string.Empty;
/// <summary>
/// Repayment quantity
/// </summary>
[JsonProperty("repaymentQty")]
public decimal RepaymentQuantity { get; set; }
}
}

0 comments on commit 5c032ec

Please sign in to comment.