cs-codex-dist-tests/ProjectPlugins/GethPlugin/GethStartupConfig.cs

69 lines
1.8 KiB
C#
Raw Normal View History

2023-09-15 10:36:35 +00:00
namespace GethPlugin
{
2023-09-15 13:52:02 +00:00
public interface IGethSetup
2023-09-15 10:36:35 +00:00
{
2023-09-15 13:52:02 +00:00
IGethSetup IsMiner();
IGethSetup WithBootstrapNode(GethBootstrapNode node);
IGethSetup WithName(string name);
IGethSetup AsPublicTestNet(GethTestNetConfig gethTestNetConfig);
2023-09-15 13:52:02 +00:00
}
public class GethStartupConfig : IGethSetup
{
public bool IsMiner { get; private set; }
public GethBootstrapNode? BootstrapNode { get; private set; }
public string? NameOverride { get; private set; }
public GethTestNetConfig? IsPublicTestNet { get; private set; }
2023-09-15 13:52:02 +00:00
public IGethSetup WithBootstrapNode(GethBootstrapNode node)
{
BootstrapNode = node;
return this;
}
public IGethSetup WithName(string name)
{
NameOverride = name;
return this;
}
IGethSetup IGethSetup.IsMiner()
{
IsMiner = true;
return this;
}
public IGethSetup AsPublicTestNet(GethTestNetConfig gethTestNetConfig)
{
IsPublicTestNet = gethTestNetConfig;
return this;
}
2023-09-15 13:52:02 +00:00
}
public class GethTestNetConfig
{
public GethTestNetConfig(string publicIp, int discoveryPort)
{
PublicIp = publicIp;
DiscoveryPort = discoveryPort;
}
public string PublicIp { get; }
public int DiscoveryPort { get; }
}
2023-09-15 13:52:02 +00:00
public class GethBootstrapNode
{
public GethBootstrapNode(string publicKey, string ipAddress, int port)
2023-09-15 10:36:35 +00:00
{
2023-09-15 13:52:02 +00:00
PublicKey = publicKey;
IpAddress = ipAddress;
Port = port;
2023-09-15 10:36:35 +00:00
}
2023-09-15 13:52:02 +00:00
public string PublicKey { get; }
public string IpAddress { get; }
public int Port { get; }
2023-09-15 10:36:35 +00:00
}
}