public BlockchainFixture() { var @namespace = $"{Guid.NewGuid()}"; var coinSettings = new CoinSettingsFixture(); var blocks = new EmptyBlockchainFixtureWithNamespace(@namespace); var transactions = new EmptyTransactionDatabaseFixture(@namespace); var coinSettingsOptions = new OptionsWrapper <CoinSettings>(coinSettings.Value); var hashProvider = new HashProviderFixture(); var jsonSettings = new JsonSerializerSettingsFixture(); var pow = new CoinBasedProofOfWork(coinSettingsOptions, hashProvider.Value); var factory = new LoggerFactory(); factory.AddConsole(); Value = new Blockchain( coinSettingsOptions, blocks.Value, pow, transactions.Value, hashProvider.Value, jsonSettings.Value, factory.CreateLogger <Blockchain>()); }
protected void Init(string @namespace) { var coinSettings = new CoinSettingsFixture().Value; var hashProvider = new HashProviderFixture().Value; var factory = new LoggerFactory(); factory.AddConsole(); Value = new SqliteCurrencyBlockRepository( @namespace, "blockchain", new OptionsWrapper <CoinSettings>(coinSettings), hashProvider, factory.CreateLogger <SqliteCurrencyBlockRepository>()); var block = coinSettings.GenesisBlock; foreach (var transaction in block.Transactions) { transaction.Hash = hashProvider.ComputeHashBytes(transaction); } block.Hash = block.ToHashBytes(hashProvider); Value.AddAsync(block).ConfigureAwait(false).GetAwaiter().GetResult(); }
public OperatorFixture(BlockchainFixture blockchain) { var coinSettings = new CoinSettingsFixture(); var hashProvider = new HashProviderFixture(); var walletProvider = new WalletProviderFixture(); var factory = new LoggerFactory(); factory.AddConsole(); Value = new Operator(blockchain.Value, hashProvider.Value, walletProvider.Value, new OptionsWrapper <CoinSettings>(coinSettings.Value), factory.CreateLogger <Operator>()); }
public MinerFixture(BlockchainFixture blockchain) { var coinSettings = new CoinSettingsFixture(); var coinSettingsOptions = new OptionsWrapper <CoinSettings>(coinSettings.Value); var hashProvider = new HashProviderFixture(); var pow = new CoinBasedProofOfWork(coinSettingsOptions, hashProvider.Value); var factory = new LoggerFactory(); factory.AddConsole(); Value = new Miner(blockchain.Value, pow, coinSettingsOptions, factory.CreateLogger <Miner>()); }
public WhenBlockDatabaseContainsOnlyGenesis(EmptyBlockchainFixture blockDatabase, CoinSettingsFixture coinSettings, HashProviderFixture hashProvider) { Fixture = blockDatabase; CoinSettings = coinSettings.Value; HashProvider = hashProvider.Value; }