public CoreStorage(IStorageManager storageManager)
{
for (var i = 0; i < this.presentBlockTxesLocks.Length; i++)
presentBlockTxesLocks[i] = new object();
this.storageManager = storageManager;
this.blockStorage = new Lazy<IBlockStorage>(() => storageManager.BlockStorage);
this.blockTxesStorage = new Lazy<IBlockTxesStorage>(() => storageManager.BlockTxesStorage);
this.cachedHeaders = new Lazy<Dictionary<UInt256, ChainedHeader>>(
() =>
{
var cachedHeaders = new Dictionary<UInt256, ChainedHeader>();
foreach (var chainedHeader in this.blockStorage.Value.ReadChainedHeaders())
cachedHeaders[chainedHeader.Hash] = chainedHeader;
return cachedHeaders;
});
}