Exemplo n.º 1
0
 public void DbProvider_ThrowExceptionOnGettingNotRegisteredDb()
 {
     using (DbProvider dbProvider = new DbProvider(DbModeHint.Mem))
     {
         MemDbFactory memDbFactory = new MemDbFactory();
         IColumnsDb <ReceiptsColumns> memSnapshotableDb = memDbFactory.CreateColumnsDb <ReceiptsColumns>("ColumnsDb");
         dbProvider.RegisterDb("ColumnsDb", memSnapshotableDb);
         Assert.Throws <ArgumentException>(() => dbProvider.GetDb <IColumnsDb <ReceiptsColumns> >("differentdb"));
     }
 }
Exemplo n.º 2
0
 public void DbProvider_ThrowExceptionOnRegisteringTheSameDb()
 {
     using (DbProvider dbProvider = new DbProvider(DbModeHint.Mem))
     {
         MemDbFactory memDbFactory = new MemDbFactory();
         IColumnsDb <ReceiptsColumns> memSnapshotableDb = memDbFactory.CreateColumnsDb <ReceiptsColumns>("ColumnsDb");
         dbProvider.RegisterDb("ColumnsDb", memSnapshotableDb);
         Assert.Throws <ArgumentException>(() => dbProvider.RegisterDb("columnsdb", new MemDb()));
     }
 }
Exemplo n.º 3
0
 public void DbProvider_CanRegisterColumnsDb()
 {
     using (DbProvider dbProvider = new DbProvider(DbModeHint.Mem))
     {
         MemDbFactory memDbFactory = new MemDbFactory();
         IColumnsDb <ReceiptsColumns> memSnapshotableDb = memDbFactory.CreateColumnsDb <ReceiptsColumns>("ColumnsDb");
         dbProvider.RegisterDb("ColumnsDb", memSnapshotableDb);
         IColumnsDb <ReceiptsColumns> columnsDb = dbProvider.GetDb <IColumnsDb <ReceiptsColumns> >("ColumnsDb");
         Assert.AreEqual(memSnapshotableDb, columnsDb);
         Assert.IsTrue(memSnapshotableDb is IColumnsDb <ReceiptsColumns>);
     }
 }
Exemplo n.º 4
0
        public PersistentReceiptStorage(IColumnsDb <ReceiptsColumns> receiptsDb, ISpecProvider specProvider, IReceiptsRecovery receiptsRecovery)
        {
            long Get(Keccak key, long defaultValue) => _database.Get(key)?.ToLongFromBigEndianByteArrayWithoutLeadingZeros() ?? defaultValue;

            _database         = receiptsDb ?? throw new ArgumentNullException(nameof(receiptsDb));
            _specProvider     = specProvider ?? throw new ArgumentNullException(nameof(specProvider));
            _receiptsRecovery = receiptsRecovery ?? throw new ArgumentNullException(nameof(receiptsRecovery));
            _blocksDb         = _database.GetColumnDb(ReceiptsColumns.Blocks);
            _transactionDb    = _database.GetColumnDb(ReceiptsColumns.Transactions);

            byte[] lowestBytes = _database.Get(Keccak.Zero);
            _lowestInsertedReceiptBlock = lowestBytes == null ? (long?)null : new RlpStream(lowestBytes).DecodeLong();
            _migratedBlockNumber        = Get(MigrationBlockNumberKey, long.MaxValue);
        }
Exemplo n.º 5
0
 public ReadOnlyColumnsDb(IColumnsDb <T> wrappedDb, bool createInMemWriteStore) : base(wrappedDb, createInMemWriteStore)
 {
     _wrappedDb             = wrappedDb;
     _createInMemWriteStore = createInMemWriteStore;
 }