static RpcServerSettings GetRpcServerSettings(ExpressChain chain, ExpressConsensusNode node)
            {
                var ipAddress = chain.TryReadSetting <IPAddress>("rpc.BindAddress", IPAddress.TryParse, out var bindAddress)
                    ? bindAddress : IPAddress.Loopback;

                var settings = new Dictionary <string, string>()
                {
                    { "PluginConfiguration:Network", $"{chain.Network}" },
                    { "PluginConfiguration:BindAddress", $"{ipAddress}" },
                    { "PluginConfiguration:Port", $"{node.RpcPort}" }
                };

                if (chain.TryReadSetting <decimal>("rpc.MaxGasInvoke", decimal.TryParse, out var maxGasInvoke))
                {
                    settings.Add("PluginConfiguration:MaxGasInvoke", $"{maxGasInvoke}");
                }

                if (chain.TryReadSetting <decimal>("rpc.MaxFee", decimal.TryParse, out var maxFee))
                {
                    settings.Add("PluginConfiguration:MaxFee", $"{maxFee}");
                }

                if (chain.TryReadSetting <int>("rpc.MaxIteratorResultItems", int.TryParse, out var maxIteratorResultItems) &&
                    maxIteratorResultItems > 0)
                {
                    settings.Add("PluginConfiguration:MaxIteratorResultItems", $"{maxIteratorResultItems}");
                }

                var config = new ConfigurationBuilder().AddInMemoryCollection(settings).Build();

                return(RpcServerSettings.Load(config.GetSection("PluginConfiguration")));
            }
        public void Constructor_Should_Set_Settings_From_Config()
        {
            const string pfxFileName = "pfx";
            const int    port        = 9000;
            var          bindAddress = IPAddress.Loopback.ToString();

            var config     = Substitute.For <IConfigurationRoot>();
            var rpcSection = config.GetSection("CatalystNodeConfiguration").GetSection("Rpc");

            rpcSection.GetSection("Port").Value.Returns(port.ToString());
            rpcSection.GetSection("PfxFileName").Value.Returns(pfxFileName);
            rpcSection.GetSection("BindAddress").Value.Returns(bindAddress);

            var rpcSeverSettings = new RpcServerSettings(config);

            rpcSeverSettings.NodeConfig.Should().Be(config);
            rpcSeverSettings.PfxFileName.Should().Be(pfxFileName);
            rpcSeverSettings.Port.Should().Be(port);
            rpcSeverSettings.BindAddress.Should().Be(IPAddress.Parse(bindAddress));
        }
Exemple #3
0
            static RpcServerSettings GetRpcServerSettings(ExpressChain chain, ExpressConsensusNode node)
            {
                var settings = new Dictionary <string, string>()
                {
                    { "PluginConfiguration:Network", $"{chain.Network}" },
                    { "PluginConfiguration:BindAddress", $"{IPAddress.Loopback}" },
                    { "PluginConfiguration:Port", $"{node.RpcPort}" }
                };

                if (chain.TryReadSetting <long>("rpc.MaxGasInvoke", long.TryParse, out var maxGasInvoke))
                {
                    settings.Add("PluginConfiguration:MaxGasInvoke", $"{maxGasInvoke}");
                }

                if (chain.TryReadSetting <long>("rpc.MaxFee", long.TryParse, out var maxFee))
                {
                    settings.Add("PluginConfiguration:MaxFee", $"{maxFee}");
                }

                var config = new ConfigurationBuilder().AddInMemoryCollection(settings).Build();

                return(RpcServerSettings.Load(config.GetSection("PluginConfiguration")));
            }