also for keyvalue

This commit is contained in:
NikVolf 2018-12-02 21:08:46 +03:00
parent 9aa90a45e9
commit 0052703c0a
2 changed files with 10 additions and 1 deletions

View File

@ -83,6 +83,10 @@ impl KeyValueDatabase for MemoryDatabase {
KeyValue::TransactionMeta(key, value) => { db.transaction_meta.insert(key, KeyState::Insert(value)); },
KeyValue::BlockNumber(key, value) => { db.block_number.insert(key, KeyState::Insert(value)); },
KeyValue::Configuration(key, value) => { db.configuration.insert(key, KeyState::Insert(value)); },
KeyValue::Nullifier(key) => match key.tag() {
NullifierTag::Sprout => { db.sprout_nullifiers.insert(*key.hash(), KeyState::Insert(())); },
NullifierTag::Sapling => { db.sapling_nullifiers.insert(*key.hash(), KeyState::Insert(())); },
},
},
Operation::Delete(delete) => match delete {
Key::Meta(key) => { db.meta.insert(key, KeyState::Delete); }
@ -97,7 +101,7 @@ impl KeyValueDatabase for MemoryDatabase {
NullifierTag::Sprout => { db.sprout_nullifiers.insert(*key.hash(), KeyState::Delete); },
NullifierTag::Sapling => { db.sapling_nullifiers.insert(*key.hash(), KeyState::Delete); },
},
}
},
}
}
Ok(())

View File

@ -32,6 +32,7 @@ pub enum KeyValue {
TransactionMeta(H256, TransactionMeta),
BlockNumber(H256, u32),
Configuration(&'static str, Bytes),
Nullifier(Nullifier),
}
#[derive(Debug)]
@ -232,6 +233,10 @@ impl<'a> From<&'a KeyValue> for RawKeyValue {
KeyValue::BlockTransactions(ref key, ref value) => (COL_BLOCK_TRANSACTIONS, serialize(key), serialize(value)),
KeyValue::Transaction(ref key, ref value) => (COL_TRANSACTIONS, serialize(key), serialize(value)),
KeyValue::TransactionMeta(ref key, ref value) => (COL_TRANSACTIONS_META, serialize(key), serialize(value)),
KeyValue::Nullifier(ref key) => match key.tag() {
NullifierTag::Sprout => (COL_SPROUT_NULLIFIERS, serialize(key.hash()), Bytes::new()),
NullifierTag::Sapling => (COL_SAPLING_NULLIFIERS, serialize(key.hash()), Bytes::new()),
},
KeyValue::BlockNumber(ref key, ref value) => (COL_BLOCK_NUMBERS, serialize(key), serialize(value)),
KeyValue::Configuration(ref key, ref value) => (COL_CONFIGURATION, serialize(key), serialize(value)),
};