Esempio n. 1
0
        public async Task InitRpcModules()
        {
            if (_baselineConfig.Enabled)
            {
                var baselineDbInitializer = new BaselineDbInitializer(_api.DbProvider, _baselineConfig, _api.RocksDbFactory, _api.MemDbFactory);
                await baselineDbInitializer.Init();

                BaselineModuleFactory baselineModuleFactory = new BaselineModuleFactory(
                    _api.TxSender !,
                    _api.StateReader !,
                    _api.CreateBlockchainBridge(),
                    _api.BlockTree !,
                    _api.AbiEncoder,
                    _api.FileSystem,
                    _api.LogManager,
                    _api.MainBlockProcessor,
                    _api.DisposeStack,
                    _api.DbProvider);

                var modulePool = new SingletonModulePool <IBaselineModule>(baselineModuleFactory);
                _api.RpcModuleProvider !.Register(modulePool);

                if (_logger.IsInfo)
                {
                    _logger.Info("Baseline RPC Module has been enabled");
                }
            }
            else
            {
                if (_logger.IsWarn)
                {
                    _logger.Info("Skipping Baseline RPC due to baseline being disabled in config.");
                }
            }
        }
Esempio n. 2
0
        public void Returns_politely_when_no_method_found()
        {
            SingletonModulePool <INetModule> pool = new SingletonModulePool <INetModule>(Substitute.For <INetModule>(), true);

            _moduleProvider.Register(pool);

            ModuleResolution resolution = _moduleProvider.Check("unknown_method");

            Assert.AreEqual(ModuleResolution.Unknown, resolution);
        }
Esempio n. 3
0
        public void Method_resolution_is_not_case_sensitive()
        {
            SingletonModulePool <INetModule> pool = new SingletonModulePool <INetModule>(new NetModule(LimboLogs.Instance, Substitute.For <INetBridge>()), true);

            _moduleProvider.Register(pool);

            ModuleResolution resolution = _moduleProvider.Check("net_VeRsIoN");

            Assert.AreEqual(ModuleResolution.Enabled, resolution);
        }
        public void Method_resolution_is_case_sensitive()
        {
            SingletonModulePool <INetRpcModule> pool = new SingletonModulePool <INetRpcModule>(new NetRpcModule(LimboLogs.Instance, Substitute.For <INetBridge>()), true);

            _moduleProvider.Register(pool);

            _moduleProvider.Check("net_VeRsIoN", RpcEndpoint.Http).Should().Be(ModuleResolution.Unknown);
            _moduleProvider.Check("net_Version", RpcEndpoint.Http).Should().Be(ModuleResolution.Unknown);
            _moduleProvider.Check("Net_Version", RpcEndpoint.Http).Should().Be(ModuleResolution.Unknown);
            _moduleProvider.Check("net_version", RpcEndpoint.Http).Should().Be(ModuleResolution.Enabled);
        }
        public void With_filter_can_reject(string regex, ModuleResolution expectedResult)
        {
            JsonRpcConfig config = new JsonRpcConfig();

            _fileSystem.File.Exists(Arg.Any <string>()).Returns(true);
            _fileSystem.File.ReadLines(Arg.Any <string>()).Returns(new[] { regex });
            _moduleProvider = new RpcModuleProvider(_fileSystem, config, LimboLogs.Instance);

            SingletonModulePool <INetModule> pool = new SingletonModulePool <INetModule>(new NetModule(LimboLogs.Instance, Substitute.For <INetBridge>()), true);

            _moduleProvider.Register(pool);

            ModuleResolution resolution = _moduleProvider.Check("net_version");

            resolution.Should().Be(expectedResult);
        }
Esempio n. 6
0
        public Task InitRpcModules()
        {
            if (_nethermindApi !.SealEngineType != SealEngineType.Clique)
            {
                return(Task.CompletedTask);
            }

            var(getFromApi, _) = _nethermindApi !.ForRpc;
            CliqueRpcRpcModule cliqueRpcRpcModule = new CliqueRpcRpcModule(
                getFromApi !.BlockProducer as ICliqueBlockProducer,
                _snapshotManager !,
                getFromApi.BlockTree !);

            var modulePool = new SingletonModulePool <ICliqueRpcModule>(cliqueRpcRpcModule);

            getFromApi.RpcModuleProvider.Register(modulePool);

            return(Task.CompletedTask);
        }
Esempio n. 7
0
 public void Ensure_unlimited_shared()
 {
     _modulePool = new SingletonModulePool <IEthModule>(_factory.Create(), true);
     _modulePool.GetModule(true);
 }
Esempio n. 8
0
 public void Can_return_exclusive_if_allowed()
 {
     _modulePool = new SingletonModulePool <IEthModule>(_factory.Create(), true);
     _modulePool.GetModule(false);
 }
Esempio n. 9
0
 public void Cannot_return_exclusive_if_not_allowed()
 {
     _modulePool = new SingletonModulePool <IEthModule>(_factory.Create(), false);
     Assert.Throws <InvalidOperationException>(() => _modulePool.GetModule(false));
 }