public INethermindApi Create() { ChainSpec chainSpec = LoadChainSpec(_jsonSerializer); bool wasCreated = Interlocked.CompareExchange(ref _apiCreated, 1, 0) == 1; if (wasCreated) { throw new NotSupportedException("Creation of multiple APIs not supported."); } SealEngineType engine = chainSpec.SealEngineType; NethermindApi nethermindApi = engine switch { SealEngineType.AuRa => new AuRaNethermindApi(_configProvider, _jsonSerializer, _logManager), _ => new NethermindApi(_configProvider, _jsonSerializer, _logManager) }; nethermindApi.SealEngineType = engine; nethermindApi.SpecProvider = new ChainSpecBasedSpecProvider(chainSpec); nethermindApi.ChainSpec = chainSpec; SetLoggerVariables(chainSpec); return(nethermindApi); }
private NethermindApi Create(SealEngineType engine) { switch (engine) { case SealEngineType.Ethash: return(new EthashNethermindApi(_configProvider, _logManager)); case SealEngineType.AuRa: return(new AuRaNethermindApi(_configProvider, _logManager)); case SealEngineType.Clique: return(new CliqueNethermindApi(_configProvider, _logManager)); case SealEngineType.NethDev: return(new NethDevNethermindApi(_configProvider, _logManager)); case SealEngineType.None: return(new NethermindApi(_configProvider, _logManager)); default: throw new ArgumentOutOfRangeException(nameof(engine), engine, "Unexpected engine."); } }
protected TestBlockchain(SealEngineType sealEngineType) { _sealEngineType = sealEngineType; }
public Builder(SealEngineType sealEngineType) { _blockchain = new TestRpcBlockchain(sealEngineType); }
public static Builder ForTest(SealEngineType sealEngineType) { return(new Builder(sealEngineType)); }
protected TestRpcBlockchain(SealEngineType sealEngineType) : base(sealEngineType) { }
public Builder(SealEngineType sealEngineType) { _blockchain = new T { SealEngineType = sealEngineType }; }
public static Builder <T> ForTest <T>(SealEngineType sealEngineType) where T : TestRpcBlockchain, new() { return(new Builder <T>(sealEngineType)); }
public static Builder <TestRpcBlockchain> ForTest(SealEngineType sealEngineType) => ForTest <TestRpcBlockchain>(sealEngineType);