コード例 #1
0
ファイル: Blockchain.cs プロジェクト: alex687/BlockchainTech
        public bool TryAddBlock(Block block)
        {
            var prevBlock = _blocks.Last();
            var isValid   = _blockValidator.Validate(block, prevBlock);

            if (isValid)
            {
                _blocks.Add(block);

                _transactionsRepository.AddTransaction(block.Transactions);
                _pendingTransactionRepository.RemovePending(block.Transactions);

                var invalidTransaction = _pendingTransactionRepository
                                         .GetPending()
                                         .Where(tran => !_transactionValidator.Validate(tran))
                                         .ToList();

                _pendingTransactionRepository.RemovePending(invalidTransaction);

                return(true);
            }

            return(false);
        }