public BlockchainStorageManager(IBlockchainStorageManagerConfig config, IUnitRepository unitRepository) { disposed = false; this.config = config; this.unitRepository = unitRepository; lastUnit = unitRepository.Last; }
public (BigInteger unitNumber, BigInteger blockNumber) AddBlock(Block block) { if (lastUnit.Count() >= config.BlocksInUnit) { IBlockchainUnit newUnit = unitRepository.CreateNewUnit(); newUnit.AddBlock(block); lastUnit.Dispose(); lastUnit = newUnit; } else { lastUnit.AddBlock(block); } return(unitRepository.Count - 1, lastUnit.Count() - 1); }