public JsonRpcService(IRpcModuleProvider rpcModuleProvider, ILogManager logManager) { _logger = logManager.GetClassLogger(); _rpcModuleProvider = rpcModuleProvider; _serializer = new JsonSerializer(); List <JsonConverter> converterList = new List <JsonConverter>(); foreach (JsonConverter converter in rpcModuleProvider.Converters) { if (_logger.IsDebug) { _logger.Debug($"Registering {converter.GetType().Name} inside {nameof(JsonRpcService)}"); } _serializer.Converters.Add(converter); converterList.Add(converter); } foreach (JsonConverter converter in EthereumJsonSerializer.CommonConverters) { if (_logger.IsDebug) { _logger.Debug($"Registering {converter.GetType().Name} (default)"); } _serializer.Converters.Add(converter); converterList.Add(converter); } BlockParameterConverter blockParameterConverter = new BlockParameterConverter(); _serializer.Converters.Add(blockParameterConverter); converterList.Add(blockParameterConverter); Converters = converterList.ToArray(); }
public void FromJson(JsonSerializer serializer, string jsonValue) { JObject jObject = serializer.Deserialize <JObject>(jsonValue.ToJsonTextReader()); FromBlock = BlockParameterConverter.GetBlockParameter(jObject["fromBlock"]?.ToObject <string>()); ToBlock = BlockParameterConverter.GetBlockParameter(jObject["toBlock"]?.ToObject <string>()); Address = GetAddress(jObject["address"]); Topics = GetTopics(jObject["topics"] as JArray); }
public void FromJson(string jsonValue) { var filter = _jsonSerializer.Deserialize <JObject>(jsonValue); FromBlock = BlockParameterConverter.GetBlockParameter(filter["fromBlock"]?.ToObject <string>()); ToBlock = BlockParameterConverter.GetBlockParameter(filter["toBlock"]?.ToObject <string>()); Address = GetAddress(filter["address"]); Topics = GetTopics(filter["topics"] as JArray); IncludeTransactions = GetIncludeTransactions(filter["includeTransactions"]); }
public void Can_read_type(string input, BlockParameterType output) { using StringReader reader = new StringReader(input); using JsonTextReader textReader = new JsonTextReader(reader); JsonSerializer serializer = new JsonSerializer(); BlockParameterConverter converter = new BlockParameterConverter(); serializer.Converters.Add(converter); BlockParameter blockParameter = serializer.Deserialize <BlockParameter>(textReader); Assert.AreEqual(output, blockParameter.Type); }
public void Can_write_number(string output, long input) { BlockParameter blockParameter = new BlockParameter(input); using StringWriter reader = new StringWriter(); using JsonTextWriter textWriter = new JsonTextWriter(reader); JsonSerializer serializer = new JsonSerializer(); BlockParameterConverter converter = new BlockParameterConverter(); serializer.Converters.Add(converter); serializer.Serialize(textWriter, blockParameter); Assert.AreEqual(output, reader.ToString()); }
public void ReadJson(JsonSerializer serializer, string json) { var filter = serializer.Deserialize <JObject>(json.ToJsonTextReader()); var blockHash = filter["blockHash"]?.Value <string>(); if (blockHash is null) { FromBlock = BlockParameterConverter.GetBlockParameter(filter["fromBlock"]?.Value <string>()); ToBlock = BlockParameterConverter.GetBlockParameter(filter["toBlock"]?.Value <string>()); } else { FromBlock = ToBlock = BlockParameterConverter.GetBlockParameter(blockHash); } Address = GetAddress(filter["address"]); var topics = filter["topics"] as JArray; Topics = topics == null ? null : GetTopics(filter["topics"] as JArray); }