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); }