Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
GET
/api/v5/asset/bills-history
true
{
"code": "0",
"msg": "",
"data": [{
"billId": "12344",
"ccy": "BTC",
"clientId": "",
"balChg": "2",
"bal": "12",
"type": "1",
"ts": "1597026383085",
"notes": ""
}]
}
3 changes: 2 additions & 1 deletion OKX.Net.UnitTests/OKXRestIntegrationTests.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using OKX.Net.Clients;
using OKX.Net.Clients;
using OKX.Net.Objects;
using CryptoExchange.Net.Authentication;
using CryptoExchange.Net.Testing;
Expand Down Expand Up @@ -73,6 +73,7 @@ public async Task TestAccount()
await RunAndCheckResult(client => client.UnifiedApi.Account.GetAssetsAsync(default, default), true);
await RunAndCheckResult(client => client.UnifiedApi.Account.GetFundingBalanceAsync(default, default), true);
await RunAndCheckResult(client => client.UnifiedApi.Account.GetFundingBillDetailsAsync(default, default, default, default, 100, default, default, default, default), true);
await RunAndCheckResult(client => client.UnifiedApi.Account.GetFundingBillHistoryAsync(default, default, default, default, 100, default, default, default, default), true);
await RunAndCheckResult(client => client.UnifiedApi.Account.GetDepositHistoryAsync(default, default, default, default, default, 100, default, default, default, default), true);
await RunAndCheckResult(client => client.UnifiedApi.Account.GetWithdrawalHistoryAsync(default, default, default, default, default, 100, default, default, default), true);
await RunAndCheckResult(client => client.UnifiedApi.Account.GetAssetValuationAsync(default, default), true);
Expand Down
3 changes: 2 additions & 1 deletion OKX.Net.UnitTests/RestRequestTests.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using CryptoExchange.Net.Authentication;
using CryptoExchange.Net.Authentication;
using CryptoExchange.Net.Objects;
using CryptoExchange.Net.Testing;
using NUnit.Framework;
Expand Down Expand Up @@ -45,6 +45,7 @@ public async Task ValidateAccountCalls()
await tester.ValidateAsync(client => client.UnifiedApi.Account.GetFundingBalanceAsync(), "GetFundingBalance");
await tester.ValidateAsync(client => client.UnifiedApi.Account.TransferAsync("ETH", 1, Enums.TransferType.MasterAccountToSubAccount, Enums.AccountType.Funding, Enums.AccountType.Funding), "Transfer", useSingleArrayItem: true);
await tester.ValidateAsync(client => client.UnifiedApi.Account.GetFundingBillDetailsAsync("ETH"), "GetFundingBillDetails");
await tester.ValidateAsync(client => client.UnifiedApi.Account.GetFundingBillHistoryAsync("ETH"), "GetFundingBillHistory");
await tester.ValidateAsync(client => client.UnifiedApi.Account.GetLightningDepositsAsync("ETH", 1), "GetLightningDeposits");
await tester.ValidateAsync(client => client.UnifiedApi.Account.GetDepositAddressAsync("ETH"), "GetDepositAddress");
await tester.ValidateAsync(client => client.UnifiedApi.Account.GetDepositHistoryAsync("ETH"), "GetDepositHistory");
Expand Down
34 changes: 34 additions & 0 deletions OKX.Net/Clients/UnifiedApi/OKXRestClientUnifiedApiAccount.cs
Original file line number Diff line number Diff line change
Expand Up @@ -481,6 +481,40 @@ public virtual async Task<WebCallResult<OKXFundingBill[]>> GetFundingBillDetails
return await _baseClient.SendAsync<OKXFundingBill[]>(request, parameters, ct).ConfigureAwait(false);
}

/// <inheritdoc />
public virtual async Task<WebCallResult<OKXFundingBill[]>> GetFundingBillHistoryAsync(
string? asset = null,
FundingBillType? type = null,
DateTime? endTime = null,
DateTime? startTime = null,
int limit = 100,
string? clientId = null,
long? startBillId = null,
long? endBillId = null,
CancellationToken ct = default)
{
if (limit < 1 || limit > 100)
throw new ArgumentException("Limit can be between 1-100.");

if ((startTime != null || endTime != null) && (startBillId != null || endBillId != null))
throw new ArgumentException("Filter can be either on start/end bill id or start/end time");

var parameters = new ParameterCollection();
parameters.AddOptionalParameter("ccy", asset);
parameters.AddOptionalEnum("type", type);
parameters.AddOptionalParameter("before", DateTimeConverter.ConvertToMilliseconds(startTime)?.ToString());
parameters.AddOptionalParameter("after", DateTimeConverter.ConvertToMilliseconds(endTime)?.ToString());
parameters.AddOptionalString("before", endBillId);
parameters.AddOptionalString("after", startBillId);
parameters.AddOptionalParameter("limit", limit.ToString(CultureInfo.InvariantCulture));
parameters.AddOptionalParameter("clientId", clientId);
parameters.AddOptionalParameter("pagingType", startBillId != null || endBillId != null ? "2" : null);

var request = _definitions.GetOrCreate(HttpMethod.Get, $"api/v5/asset/bills-history", OKXExchange.RateLimiter.EndpointGate, 1, true,
limitGuard: new SingleLimitGuard(1, TimeSpan.FromSeconds(1), RateLimitWindowType.Sliding, keySelector: SingleLimitGuard.PerApiKey));
return await _baseClient.SendAsync<OKXFundingBill[]>(request, parameters, ct).ConfigureAwait(false);
}

/// <inheritdoc />
public virtual async Task<WebCallResult<OKXLightningDeposit[]>> GetLightningDepositsAsync(
string asset,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,27 @@ Task<WebCallResult<OKXFeeRate>> GetFeeRatesAsync(
/// <returns></returns>
Task<WebCallResult<OKXFundingBill[]>> GetFundingBillDetailsAsync(string? asset = null, FundingBillType? type = null, DateTime? endTime = null, DateTime? startTime = null, int limit = 100, string? clientId = null, long? startBillId = null, long? endBillId = null, CancellationToken ct = default);

/// <summary>
/// Get historical asset billing records (longer lookback than asset bills details)
/// <para>
/// Docs:<br />
/// <a href="https://www.okx.com/docs-v5/en/#funding-account-rest-api-asset-bills-history" /><br />
/// Endpoint:<br />
/// GET /api/v5/asset/bills-history
/// </para>
/// </summary>
/// <param name="asset">["<c>ccy</c>"] Asset, for example `ETH`</param>
/// <param name="type">["<c>type</c>"] Bill type</param>
/// <param name="startTime">["<c>before</c>"] Pagination of data to return records earlier than the requested ts</param>
/// <param name="endTime">["<c>after</c>"] Pagination of data to return records newer than the requested ts</param>
/// <param name="limit">["<c>limit</c>"] Number of results per request. The maximum is 100; the default is 100.</param>
/// <param name="startBillId">["<c>after</c>"] Filter by start bill id</param>
/// <param name="endBillId">["<c>before</c>"] Filter by end bill id</param>
/// <param name="clientId">["<c>clientId</c>"] Client id</param>
/// <param name="ct">Cancellation Token</param>
/// <returns></returns>
Task<WebCallResult<OKXFundingBill[]>> GetFundingBillHistoryAsync(string? asset = null, FundingBillType? type = null, DateTime? endTime = null, DateTime? startTime = null, int limit = 100, string? clientId = null, long? startBillId = null, long? endBillId = null, CancellationToken ct = default);

/// <summary>
/// Get interest-accrued
/// <para>
Expand Down
Loading