Exemple #1
0
        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());
            }
        }
Exemple #2
0
        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);
        }