public ChainManager(BalanceLedger ledger) { balanceLedger = ledger; var files = Directory.EnumerateFiles("chains"); if (!File.Exists(@"chains\main")) { main = new Chain(); main.AddBlock(Block.Genesis); balanceLedger.ApplyDiff(balanceLedger.RewardMiner(new byte[33], Direction.Forward)); } else { foreach (var filename in files) { if (filename == @"chains\main") { main = new Chain("main"); } else { forks.Add(new Chain(filename.Split(@"\")[1])); } } } }
public Miner(BalanceLedger balanceLedger, TransactionPool transactionPool, ChainManager chainManager) { _balanceLedger = balanceLedger; _transactionPool = transactionPool; _chainManager = chainManager; var minerAddressBytes = HexConverter.ToBytes(Program.Settings.minerAddr); if (minerAddressBytes != null && minerAddressBytes.Length < 34) { minerAddress = ByteManipulator.BigEndianTruncate(minerAddressBytes, 33); Console.WriteLine($"[Miner] Miner initialized with address {HexConverter.ToPrefixString(minerAddress)}"); } else { Console.WriteLine("[Miner] Warning: Invalid address. Miner initialized with address 0x0"); minerAddress = new byte[33]; } }
public TransactionPool(BalanceLedger balanceLedger) { _balanceLedger = balanceLedger; }