public override void OnEpochEnd(int epoch, Dictionary <string, float> logs = null) { logs = logs != null ? logs : new Dictionary <string, float>(); var send = new Dictionary <string, float>(); send["epoch"] = epoch; foreach (var log in logs) { var k = log.Key; var v = log.Value; send[k] = v; } try { var req = new FlurlRequest(new Flurl.Url(this.root + this.path)); foreach (var item in headers) { req.Headers.Add(item.Key, item.Value); } if (this.send_as_json) { req.PostJsonAsync(send).Wait(); } else { throw new NotSupportedException("Only json format supported"); } } catch { Logger.Warning("Warning: could not reach RemoteMonitor root server at " + this.root.ToString()); } }
private async Task <List <RippleTransaction> > GetRippleTransactions(string address) { var txs = new List <RippleTransaction>(); object pagingMarker = null; do { var request = new FlurlRequest(_settings.RpcUrl); request.Settings.JsonSerializer = new NewtonsoftJsonSerializer(new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }); if (!string.IsNullOrEmpty(_settings.RpcUsername)) { request = request.WithBasicAuth(_settings.RpcUsername, _settings.RpcPassword); } var response = await request .PostJsonAsync(new RippleAccountTransactionsRequest(address, marker : pagingMarker)) .ReceiveJson <RippleAccountTransactionsResponse>(); if (!string.IsNullOrEmpty(response.Result.Error)) { throw new InvalidOperationException($"XRP request error: {response.Result.ErrorMessage ?? response.Result.Error}"); } txs.AddRange(response.Result.Transactions); pagingMarker = response.Result.Marker; } while (pagingMarker != null); return(txs); }