internal MemoryStorageManager(ChainedHeader chainTip = null, int? unspentTxCount = null, int? unspentOutputCount = null, int? totalTxCount = null, int? totalInputCount = null, int? totalOutputCount = null, ImmutableSortedDictionary<UInt256, ChainedHeader> headers = null, ImmutableSortedDictionary<UInt256, UnspentTx> unspentTransactions = null, ImmutableDictionary<int, BlockSpentTxes> spentTransactions = null) { blockStorage = new MemoryBlockStorage(); blockTxesStorage = new MemoryBlockTxesStorage(); chainStateStorage = new MemoryChainStateStorage(chainTip, unspentTxCount, unspentOutputCount, totalTxCount, totalInputCount, totalOutputCount, headers, unspentTransactions, spentTransactions); unconfirmedTxesStorage = new MemoryUnconfirmedTxesStorage(); chainStateCursorCache = new DisposableCache<IChainStateCursor>(1024, createFunc: () => new MemoryChainStateCursor(chainStateStorage), prepareAction: cursor => { // rollback any open transaction before returning the cursor to the cache if (cursor.InTransaction) cursor.RollbackTransaction(); }); unconfirmedTxesCursorCache = new DisposableCache<IUnconfirmedTxesCursor>(1024, createFunc: () => new MemoryUnconfirmedTxesCursor(unconfirmedTxesStorage), prepareAction: cursor => { // rollback any open transaction before returning the cursor to the cache if (cursor.InTransaction) cursor.RollbackTransaction(); }); }
internal MemoryStorageManager(ChainedHeader chainTip = null, int?unspentTxCount = null, int?unspentOutputCount = null, int?totalTxCount = null, int?totalInputCount = null, int?totalOutputCount = null, ImmutableSortedDictionary <UInt256, ChainedHeader> headers = null, ImmutableSortedDictionary <UInt256, UnspentTx> unspentTransactions = null, ImmutableDictionary <int, BlockSpentTxes> spentTransactions = null) { blockStorage = new MemoryBlockStorage(); blockTxesStorage = new MemoryBlockTxesStorage(); chainStateStorage = new MemoryChainStateStorage(chainTip, unspentTxCount, unspentOutputCount, totalTxCount, totalInputCount, totalOutputCount, headers, unspentTransactions, spentTransactions); unconfirmedTxesStorage = new MemoryUnconfirmedTxesStorage(); chainStateCursorCache = new DisposableCache <IChainStateCursor>(1024, createFunc: () => new MemoryChainStateCursor(chainStateStorage), prepareAction: cursor => { // rollback any open transaction before returning the cursor to the cache if (cursor.InTransaction) { cursor.RollbackTransaction(); } }); unconfirmedTxesCursorCache = new DisposableCache <IUnconfirmedTxesCursor>(1024, createFunc: () => new MemoryUnconfirmedTxesCursor(unconfirmedTxesStorage), prepareAction: cursor => { // rollback any open transaction before returning the cursor to the cache if (cursor.InTransaction) { cursor.RollbackTransaction(); } }); }
internal MemoryStorageManager(Chain chain = null, ImmutableSortedDictionary <UInt256, UnspentTx> unspentTransactions = null, ImmutableDictionary <int, IImmutableList <SpentTx> > spentTransactions = null) { this.blockStorage = new MemoryBlockStorage(); this.blockTxesStorage = new MemoryBlockTxesStorage(); this.chainStateStorage = new MemoryChainStateStorage(chain, unspentTransactions, spentTransactions); }