public void AcceptBlock(Block block) { byte[] previousHash = storedChain.Last.Hash; validateBlock(block, previousHash, storedChain.Last.CreationTime); storedChain.AddBlock(block); WalletManager.AcceptTransactions(block.Transactions); pendingTransactions = new LinkedList <Transaction>(); }
private Block addBlock() { Block lastBlock = storedChain.Last; IHashFactory hashFactory = MiningFactory.GetMiningHashFactoryForTransactions(pendingTransactions, lastBlock); Block block = new Block(MiningWallet.PublicKey, lastBlock.Hash, pendingTransactions, hashFactory); IMiner miner = MiningFactory.GetMiner(block.Transactions, lastBlock); miner.MineBlock(block); block.SignBlock(MiningWallet.Signer); storedChain.AddBlock(block); WalletManager.AcceptTransactions(block.Transactions); return(block); }