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();
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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"]);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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());
        }
Exemple #6
0
    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);
    }