BlockChain: Make PendingTransactions public.

This commit is contained in:
2020-09-04 00:52:32 +02:00
parent fd6f0c0985
commit 41976cb572

View File

@@ -6,7 +6,7 @@ namespace BasicBlockChain.Core
{ {
public class BlockChain public class BlockChain
{ {
private List<Transaction> _pendingTransactions = new List<Transaction>(); public List<Transaction> PendingTransactions { get; } = new List<Transaction>();
public List<Block> Chain { get; } = new List<Block>(); public List<Block> Chain { get; } = new List<Block>();
public int Difficulty { get; set; } = 2; public int Difficulty { get; set; } = 2;
public int Reward { get; set; } = 1_000_000; public int Reward { get; set; } = 1_000_000;
@@ -30,17 +30,17 @@ namespace BasicBlockChain.Core
public void AddTransaction(Transaction transaction) public void AddTransaction(Transaction transaction)
{ {
_pendingTransactions.Add(transaction); PendingTransactions.Add(transaction);
} }
public void ProcessPendingTransactions(DateTime date, string miner) public void ProcessPendingTransactions(DateTime date, string miner)
{ {
Block lastBlock = Chain.Last(); Block lastBlock = Chain.Last();
Block newBlock = new Block(date, lastBlock, _pendingTransactions); Block newBlock = new Block(date, lastBlock, PendingTransactions);
newBlock.Transactions.Add(new Transaction(null, miner, Reward, date)); newBlock.Transactions.Add(new Transaction(null, miner, Reward, date));
newBlock.Mine(Difficulty); newBlock.Mine(Difficulty);
Chain.Add(newBlock); Chain.Add(newBlock);
_pendingTransactions.Clear(); PendingTransactions.Clear();
} }
public bool Verify() public bool Verify()