Example #1
0
        public async Task <DividendHistory> GetDividendHistory(DateTime startDate)
        {
            var toReturn = new DividendHistory {
                Total = 0, Rows = new List <Dividend>()
            };

            while (true)
            {
                if (startDate > DateTime.Today)
                {
                    break;
                }

                DateTime endDate    = startDate.AddDays(10);
                var      parameters = $"recvWindow=60000&startTime={startDate.ToUnixDateTime()}&endTime={endDate.ToUnixDateTime()}";
                parameters = _restClient.AddTimestampAndSign(parameters);
                var result = await _restClient.CallAsync(HttpMethod.Get, "/sapi/v1/asset/assetDividend", parameters);

                var resultTyped = JsonConvert.DeserializeObject <DividendHistory>(result);

                if (resultTyped.Total == 20)
                {
                    throw new Exception("Binance bug is returning 20 rows only, we might miss entries.");
                }

                toReturn.Rows.AddRange(resultTyped.Rows ?? Enumerable.Empty <Dividend>());
                toReturn.Total += resultTyped.Rows?.Count ?? 0;
                startDate       = endDate;
            }

            return(toReturn);
        }
Example #2
0
        public void SaveDividends(DividendHistory dividendHistory)
        {
            var lines = dividendHistory.Rows.OrderBy(t => t.DivTime).Select(JsonConvert.SerializeObject);

            File.WriteAllLines(GetFileName(_dividendsFileName), lines);
        }