public DepositHistory GetDepositHistory(string asset, DepositStatus?status = null, DateTime?startTime = null, DateTime?endTime = null, long recvWindow = 5000) { if (m_BinanceClient == null) { return(null); } var depositHistory = m_BinanceClient.GetDepositHistory(asset, status, startTime, endTime, recvWindow).Result; return(depositHistory); }
/// <summary> /// Gets a list of deposits based on the specified parameters. /// </summary> /// <param name="currency">The trading currency (XBT or USDT).</param> /// <param name="status">Deposit status</param> /// <param name="startTime">Start time</param> /// <param name="endTime">End time</param> /// <returns></returns> public async Task <IList <Deposit> > GetDepositsList( string currency = null, DepositStatus?status = null, DateTime?startTime = null, DateTime?endTime = null) { var param = new Dictionary <string, object>(); long st, et; DateTime d; if (currency != null) { param.Add("currency", currency); } if (status != null) { param.Add("status", status); } if (startTime == null) { st = 0; } else { d = (DateTime)startTime; st = EpochTime.DateToMilliseconds(d); param.Add("startAt", st); } if (endTime == null) { et = 0; } else { d = (DateTime)endTime; et = EpochTime.DateToMilliseconds(d); param.Add("endAt", et); } if (startTime != null && endTime != null && et < st) { throw new ArgumentException("End time must be greater than start time"); } var url = "/api/v1/deposit-list"; return(await GetAllPaginatedResults <Deposit, DepositList>(HttpMethod.Get, url, reqParams : param)); }
/// <summary> /// Fetch deposit history. /// </summary> /// <param name="asset">Asset you want to see the information for.</param> /// <param name="status">Deposit status.</param> /// <param name="startTime">Start time. </param> /// <param name="endTime">End time.</param> /// <param name="recvWindow">Specific number of milliseconds the request is valid for.</param> /// <returns></returns> public async Task <DepositHistory> GetDepositHistory(string asset, DepositStatus?status = null, DateTime?startTime = null, DateTime?endTime = null, long recvWindow = 5000) { if (string.IsNullOrWhiteSpace(asset)) { throw new ArgumentException("asset cannot be empty. ", "asset"); } var args = $"asset={asset.ToUpper()}" + (status.HasValue ? $"&status={(int)status}" : "") + (startTime.HasValue ? $"&startTime={startTime.Value.GetUnixTimeStamp()}" : "") + (endTime.HasValue ? $"&endTime={endTime.Value.GetUnixTimeStamp()}" : "") + $"&recvWindow={recvWindow}"; var result = await _apiClient.CallAsync <DepositHistory>(ApiMethod.POST, EndPoints.DepositHistory, true, args).ConfigureAwait(false); return(result); }
/// <summary> /// Gets the deposit history /// </summary> /// <param name="coin">Filter by asset</param> /// <param name="status">Filter by status</param> /// <param name="limit">Amount of results</param> /// <param name="offset">Offset the results</param> /// <param name="startTime">Filter start time from</param> /// <param name="endTime">Filter end time till</param> /// <param name="receiveWindow">The receive window for which this request is active. When the request takes longer than this to complete the server will reject the request</param> /// <param name="ct">Cancellation token</param> /// <returns>List of deposits</returns> public WebCallResult <IEnumerable <BinanceDeposit> > GetDepositHistory(string?coin = null, DepositStatus?status = null, DateTime?startTime = null, DateTime?endTime = null, int?offset = null, int?limit = null, int?receiveWindow = null, CancellationToken ct = default) => GetDepositHistoryAsync(coin, status, startTime, endTime, offset, limit, receiveWindow, ct).Result;
/// <summary> /// Get the deposit history. /// </summary> /// <param name="client"></param> /// <param name="user"></param> /// <param name="asset"></param> /// <param name="status"></param> /// <param name="startTime"></param> /// <param name="endTime"></param> /// <param name="recvWindow"></param> /// <param name="token"></param> /// <returns></returns> public static async Task <string> GetDepositsAsync(this IBinanceHttpClient client, IBinanceApiUser user, string asset = null, DepositStatus?status = null, long startTime = default, long endTime = default, long recvWindow = default, CancellationToken token = default) { Throw.IfNull(client, nameof(client)); Throw.IfNull(user, nameof(user)); if (recvWindow <= 0) { recvWindow = client.Options.RecvWindowDefault ?? 0; } var request = new BinanceHttpRequest("/wapi/v3/depositHistory.html") { ApiKey = user.ApiKey }; if (!string.IsNullOrWhiteSpace(asset)) { request.AddParameter("asset", asset.FormatSymbol()); } if (status.HasValue) { request.AddParameter("status", (int)status); } if (startTime > 0) { request.AddParameter("startTime", startTime); } if (endTime > 0) { request.AddParameter("endTime", endTime); } if (recvWindow > 0) { request.AddParameter("recvWindow", recvWindow); } await client.SignAsync(request, user, token) .ConfigureAwait(false); return(await client.GetAsync(request, token) .ConfigureAwait(false)); }
/// <summary> /// Get the deposit history. /// </summary> /// <param name="client"></param> /// <param name="user"></param> /// <param name="asset"></param> /// <param name="status"></param> /// <param name="startTime"></param> /// <param name="endTime"></param> /// <param name="recvWindow"></param> /// <param name="token"></param> /// <returns></returns> public static async Task <string> GetDepositsAsync(this IBinanceHttpClient client, IBinanceApiUser user, string asset = null, DepositStatus?status = null, DateTime startTime = default, DateTime endTime = default, long recvWindow = default, CancellationToken token = default) { Throw.IfNull(client, nameof(client)); Throw.IfNull(user, nameof(user)); if (recvWindow == default) { recvWindow = client.DefaultRecvWindow; } if (client.RateLimiter != null) { await client.RateLimiter.DelayAsync(token : token) .ConfigureAwait(false); } var request = new BinanceHttpRequest("/wapi/v3/depositHistory.html") { ApiKey = user.ApiKey }; if (!string.IsNullOrWhiteSpace(asset)) { request.AddParameter("asset", asset.FormatSymbol()); } if (status.HasValue) { request.AddParameter("status", (int)status); } if (startTime != default) { if (startTime.Kind != DateTimeKind.Utc) { throw new ArgumentException("Date/Time must be UTC.", nameof(startTime)); } request.AddParameter("startTime", startTime.ToTimestamp()); } if (endTime != default) { if (endTime.Kind != DateTimeKind.Utc) { throw new ArgumentException("Date/Time must be UTC.", nameof(endTime)); } request.AddParameter("endTime", endTime.ToTimestamp()); } if (recvWindow > 0) { request.AddParameter("recvWindow", recvWindow); } await client.SignAsync(request, user, token) .ConfigureAwait(false); return(await client.GetAsync(request, token) .ConfigureAwait(false)); }
/// <summary> /// Get historic deposit history (KuCoin v1) /// </summary> /// <param name="symbol">Symbol of currency</param> /// <param name="startDate">Start date</param> /// <param name="endDate">End date</param> /// <param name="status">Deposit status</param> /// <param name="page">Page number</param> /// <param name="pageSize">Page size</param> /// <returns>Paged collection of Deposits</returns> public static async Task <PagedResponse <List <Deposit> > > GetHistoricDeposits(this IKuCoinDotNet service, string symbol = null, DateTime?startDate = null, DateTime?endDate = null, DepositStatus?status = null, int page = 0, int pageSize = 0) { var _dtHelper = new DateTimeHelper(); var startAt = startDate != null?_dtHelper.LocalToUnixTime((DateTime)startDate) : 0; var endAt = endDate != null?_dtHelper.LocalToUnixTime((DateTime)endDate) : 0; return(await service.GetHistoricDeposits(symbol, startAt, endAt, status, page, pageSize)); }
/// <summary> /// Gets the deposit history /// </summary> /// <param name="asset">Filter by asset</param> /// <param name="status">Filter by status</param> /// <param name="startTime">Filter start time from</param> /// <param name="endTime">Filter end time till</param> /// <param name="recvWindow">The receive window for which this request is active. When the request takes longer than this to complete the server will reject the request</param> /// <returns>List of deposits</returns> public async Task <BinanceApiResult <BinanceDepositList> > GetDepositHistoryAsync(string asset = null, DepositStatus?status = null, DateTime?startTime = null, DateTime?endTime = null, long?recvWindow = null) { if (key == null || encryptor == null) { return(ThrowErrorMessage <BinanceDepositList>(BinanceErrors.GetError(BinanceErrorKey.NoApiCredentialsProvided))); } if (AutoTimestamp && !timeSynced) { await GetServerTimeAsync(); } var parameters = new Dictionary <string, string>() { { "timestamp", GetTimestamp() } }; AddOptionalParameter(parameters, "asset", asset); AddOptionalParameter(parameters, "status", status != null ? JsonConvert.SerializeObject(status, new DepositStatusConverter(false)): null); AddOptionalParameter(parameters, "startTime", startTime != null ? ToUnixTimestamp(startTime.Value).ToString(CultureInfo.InvariantCulture) : null); AddOptionalParameter(parameters, "endTime", endTime != null ? ToUnixTimestamp(endTime.Value).ToString(CultureInfo.InvariantCulture) : null); AddOptionalParameter(parameters, "recvWindow", recvWindow?.ToString()); var result = await ExecuteRequest <BinanceDepositList>(GetUrl(DepositHistoryEndpoint, WithdrawalApi, WithdrawalVersion, parameters), true, PostMethod); if (!result.Success || result.Data == null) { return(result); } result.Success = result.Data.Success; if (!result.Success) { result.Error = new BinanceError() { Message = result.Data.Message } } ; return(result); }
/// <summary> /// Synchronized version of the <see cref="GetDepositHistoryAsync"/> method /// </summary> /// <returns></returns> public BinanceApiResult <BinanceDepositList> GetDepositHistory(string asset = null, DepositStatus?status = null, DateTime?startTime = null, DateTime?endTime = null, long?recvWindow = null) => GetDepositHistoryAsync(asset, status, startTime, endTime, recvWindow).Result;
public Task <CallResult <BinanceDepositList> > GetDepositHistoryAsync(string asset = null, DepositStatus?status = null, DateTime?startTime = null, DateTime?endTime = null, int?receiveWindow = null) => throw new NotImplementedException();
/// <summary> /// Gets list of closed deposits /// </summary> /// <param name="currency">Filter the list by currency</param> /// <param name="status">Filter the list by status of the deposit</param> /// <param name="startDate">Filter the list by date</param> /// <param name="endDate">Filter the list by date</param> /// <param name="pageSize">The max amount of results to return</param> /// <param name="nextPageToken">The id of the object after which to return results. Typically the last deposit id of the previous page</param> /// <param name="previousPageToken">The id of the object before which to return results. Typically the first deposit id of the next page</param> /// <returns>List of deposits</returns> public async Task <WebCallResult <BittrexDepositV3[]> > GetClosedDepositsAsync(string currency = null, DepositStatus?status = null, DateTime?startDate = null, DateTime?endDate = null, int?pageSize = null, string nextPageToken = null, string previousPageToken = null) { if (nextPageToken != null && previousPageToken != null) { return(WebCallResult <BittrexDepositV3[]> .CreateErrorResult(new ArgumentError("Can't specify startDate and endData simultaneously"))); } if (pageSize < 1 || pageSize > 200) { return(WebCallResult <BittrexDepositV3[]> .CreateErrorResult(new ArgumentError("Page size should be between 1 and 200"))); } var parameters = new Dictionary <string, object>(); parameters.AddOptionalParameter("currencySymbol", currency); parameters.AddOptionalParameter("status", status.HasValue ? JsonConvert.SerializeObject(status, new DepositStatusConverter(false)): null); parameters.AddOptionalParameter("startDate", startDate?.ToString("yyyy-MM-ddTHH:mm:ssZ")); parameters.AddOptionalParameter("endDate", endDate?.ToString("yyyy-MM-ddTHH:mm:ssZ")); parameters.AddOptionalParameter("pageSize", pageSize); parameters.AddOptionalParameter("nextPageToken", nextPageToken); parameters.AddOptionalParameter("previousPageToken", previousPageToken); return(await ExecuteRequest <BittrexDepositV3[]>(GetUrl("deposits/closed"), parameters : parameters, signed : true).ConfigureAwait(false)); }
/// <summary> /// Gets list of closed deposits /// </summary> /// <param name="currency">Filter the list by currency</param> /// <param name="status">Filter the list by status of the deposit</param> /// <param name="startDate">Filter the list by date</param> /// <param name="endDate">Filter the list by date</param> /// <param name="pageSize">The max amount of results to return</param> /// <param name="nextPageToken">The id of the object after which to return results. Typically the last deposit id of the previous page</param> /// <param name="previousPageToken">The id of the object before which to return results. Typically the first deposit id of the next page</param> /// <returns>List of deposits</returns> public WebCallResult <BittrexDepositV3[]> GetClosedDeposits(string currency = null, DepositStatus?status = null, DateTime?startDate = null, DateTime?endDate = null, int?pageSize = null, string nextPageToken = null, string previousPageToken = null) => GetClosedDepositsAsync(currency, status, startDate, endDate, pageSize, nextPageToken, previousPageToken).Result;
/// <summary> /// Gets list of closed deposits /// </summary> /// <param name="currency">Filter the list by currency</param> /// <param name="status">Filter the list by status of the deposit</param> /// <param name="startDate">Filter the list by date</param> /// <param name="endDate">Filter the list by date</param> /// <param name="pageSize">The max amount of results to return</param> /// <param name="nextPageToken">The id of the object after which to return results. Typically the last deposit id of the previous page</param> /// <param name="previousPageToken">The id of the object before which to return results. Typically the first deposit id of the next page</param> /// <param name="ct">Cancellation token</param> /// <returns>List of deposits</returns> public async Task <WebCallResult <IEnumerable <BittrexDepositV3> > > GetClosedDepositsAsync(string?currency = null, DepositStatus?status = null, DateTime?startDate = null, DateTime?endDate = null, int?pageSize = null, string?nextPageToken = null, string?previousPageToken = null, CancellationToken ct = default) { if (nextPageToken != null && previousPageToken != null) { throw new ArgumentException("Can't specify startDate and endData simultaneously"); } pageSize?.ValidateIntBetween("pageSize", 25, 100); var parameters = new Dictionary <string, object>(); parameters.AddOptionalParameter("currencySymbol", currency); parameters.AddOptionalParameter("status", status.HasValue ? JsonConvert.SerializeObject(status, new DepositStatusConverter(false)): null); parameters.AddOptionalParameter("startDate", startDate?.ToString("yyyy-MM-ddTHH:mm:ssZ")); parameters.AddOptionalParameter("endDate", endDate?.ToString("yyyy-MM-ddTHH:mm:ssZ")); parameters.AddOptionalParameter("pageSize", pageSize); parameters.AddOptionalParameter("nextPageToken", nextPageToken); parameters.AddOptionalParameter("previousPageToken", previousPageToken); return(await SendRequest <IEnumerable <BittrexDepositV3> >(GetUrl("deposits/closed"), HttpMethod.Get, ct, parameters, true).ConfigureAwait(false)); }
/// <summary> /// Gets list of closed deposits /// </summary> /// <param name="currency">Filter the list by currency</param> /// <param name="status">Filter the list by status of the deposit</param> /// <param name="startDate">Filter the list by date</param> /// <param name="endDate">Filter the list by date</param> /// <param name="pageSize">The max amount of results to return</param> /// <param name="nextPageToken">The id of the object after which to return results. Typically the last deposit id of the previous page</param> /// <param name="previousPageToken">The id of the object before which to return results. Typically the first deposit id of the next page</param> /// <param name="ct">Cancellation token</param> /// <returns>List of deposits</returns> public WebCallResult <IEnumerable <BittrexDepositV3> > GetClosedDeposits(string?currency = null, DepositStatus?status = null, DateTime?startDate = null, DateTime?endDate = null, int?pageSize = null, string?nextPageToken = null, string?previousPageToken = null, CancellationToken ct = default) => GetClosedDepositsAsync(currency, status, startDate, endDate, pageSize, nextPageToken, previousPageToken, ct).Result;
/// <summary> /// Gets the deposit history /// </summary> /// <param name="coin">Filter by asset</param> /// <param name="status">Filter by status</param> /// <param name="limit">Amount of results</param> /// <param name="offset">Offset the results</param> /// <param name="startTime">Filter start time from</param> /// <param name="endTime">Filter end time till</param> /// <param name="receiveWindow">The receive window for which this request is active. When the request takes longer than this to complete the server will reject the request</param> /// <param name="ct">Cancellation token</param> /// <returns>List of deposits</returns> public async Task <WebCallResult <IEnumerable <BinanceDeposit> > > GetDepositHistoryAsync(string?coin = null, DepositStatus?status = null, DateTime?startTime = null, DateTime?endTime = null, int?offset = null, int?limit = null, int?receiveWindow = null, CancellationToken ct = default) { var timestampResult = await _baseClient.CheckAutoTimestamp(ct).ConfigureAwait(false); if (!timestampResult) { return(new WebCallResult <IEnumerable <BinanceDeposit> >(timestampResult.ResponseStatusCode, timestampResult.ResponseHeaders, null, timestampResult.Error)); } var parameters = new Dictionary <string, object> { { "timestamp", _baseClient.GetTimestamp() } }; parameters.AddOptionalParameter("coin", coin); parameters.AddOptionalParameter("offset", offset?.ToString(CultureInfo.InvariantCulture)); parameters.AddOptionalParameter("limit", limit?.ToString(CultureInfo.InvariantCulture)); parameters.AddOptionalParameter("status", status != null ? JsonConvert.SerializeObject(status, new DepositStatusConverter(false)) : null); parameters.AddOptionalParameter("startTime", startTime != null ? BinanceClient.ToUnixTimestamp(startTime.Value).ToString(CultureInfo.InvariantCulture) : null); parameters.AddOptionalParameter("endTime", endTime != null ? BinanceClient.ToUnixTimestamp(endTime.Value).ToString(CultureInfo.InvariantCulture) : null); parameters.AddOptionalParameter("recvWindow", receiveWindow?.ToString(CultureInfo.InvariantCulture) ?? _baseClient.DefaultReceiveWindow.TotalMilliseconds.ToString(CultureInfo.InvariantCulture)); return(await _baseClient.SendRequestInternal <IEnumerable <BinanceDeposit> >( _baseClient.GetUrlSpot(depositHistoryEndpoint, "sapi", "1"), HttpMethod.Get, ct, parameters, true) .ConfigureAwait(false)); }
public async Task <IList <DepositListItem> > GetDepositList(string currency = null, DateTime?startTime = null, DateTime?endTime = null, DepositStatus?status = null, int pageSize = 50) { var l = new List <DepositListItem>(); long st, et; int cp = 1; DateTime d; var param = new Dictionary <string, object>(); param.Add("pageSize", pageSize); param.Add("currentPage", cp); if (currency != null) { param.Add("currency", currency); } if (startTime == null) { st = 0; } else { d = (DateTime)startTime; st = EpochTime.DateToSeconds(d); param.Add("startAt", st); } if (endTime == null) { et = 0; } else { d = (DateTime)endTime; et = EpochTime.DateToSeconds(d); param.Add("endAt", et); } if (status != null) { param.Add("status", EnumToStringConverter <DepositStatus> .GetEnumName((DepositStatus)status)); } if (startTime != null && endTime != null && et < st) { throw new ArgumentException("End time must be greater than start time"); } return(await GetAllPaginatedResults <DepositListItem, DepositListPage>(HttpMethod.Get, $"/api/v1/deposits", reqParams : param)); }
/// <summary> /// Get historic deposit history (KuCoin v1) /// </summary> /// <param name="symbol">Symbol of currency</param> /// <param name="startAt">Start date</param> /// <param name="endAt">End date</param> /// <param name="status">Deposit status</param> /// <param name="page">Page number</param> /// <param name="pageSize">Page size</param> /// <returns>Paged collection of Deposits</returns> public async Task <PagedResponse <List <Deposit> > > GetHistoricDeposits(string symbol = null, long startAt = 0, long endAt = 0, DepositStatus?status = null, int page = 0, int pageSize = 0) { var endpoint = $"/api/v1/hist-deposits"; var parms = new Dictionary <string, object>(); if (!string.IsNullOrEmpty(symbol)) { parms.Add("currency", symbol); } if (startAt > 0) { parms.Add("startAt", startAt); } if (endAt > 0) { parms.Add("endAt", endAt); } if (status != null) { parms.Add("status", status.ToString()); } if (page == 0) { page = 1; } parms.Add("currentPage", page); if (pageSize == 0) { pageSize = 100; } parms.Add("pageSize", pageSize); var queryString = parms.Count > 0 ? $"?{_helper.DictionaryToString(parms)}" : string.Empty; endpoint += queryString; return(await Get <PagedResponse <List <Deposit> > >(endpoint, true)); }