From c215db7d8d5c4c677b0e8b76bc29215d1f7e1e4e Mon Sep 17 00:00:00 2001 From: satan Date: Fri, 8 Mar 2024 11:45:38 +0100 Subject: [PATCH] Finished rebasing --- .../src/lib/node/ledger/storage/rocksdb.rs | 120 ------------------ crates/migrations/Cargo.toml | 2 +- wasm/Cargo.lock | 62 ++++----- wasm_for_tests/wasm_source/Cargo.lock | 56 ++++---- 4 files changed, 60 insertions(+), 180 deletions(-) diff --git a/crates/apps/src/lib/node/ledger/storage/rocksdb.rs b/crates/apps/src/lib/node/ledger/storage/rocksdb.rs index aa13aaf18a..e057e65ad9 100644 --- a/crates/apps/src/lib/node/ledger/storage/rocksdb.rs +++ b/crates/apps/src/lib/node/ledger/storage/rocksdb.rs @@ -1590,126 +1590,6 @@ impl DB for RocksDB { Ok(()) } - - #[inline] - fn overwrite_entry( - &self, - batch: &mut Self::WriteBatch, - height: Option, - key: &Key, - new_value: impl AsRef<[u8]>, - ) -> Result<()> { - let last_height: BlockHeight = { - let state_cf = self.get_column_family(STATE_CF)?; - - decode( - self.0 - .get_cf(state_cf, "height") - .map_err(|e| Error::DBError(e.to_string()))? - .ok_or_else(|| { - Error::DBError("No block height found".to_string()) - })?, - ) - .map_err(|e| { - Error::DBError(format!("Unable to decode block height: {e}")) - })? - }; - let desired_height = height.unwrap_or(last_height); - - if desired_height != last_height { - todo!( - "Overwriting values at heights different than the last \ - committed height hast yet to be implemented" - ); - } - // NB: the following code only updates values - // written to at the last committed height - - let val = new_value.as_ref(); - - // update subspace value - let subspace_cf = self.get_column_family(SUBSPACE_CF)?; - let subspace_key = key.to_string(); - - batch.0.put_cf(subspace_cf, subspace_key, val); - - // update value stored in diffs - let diffs_cf = self.get_column_family(DIFFS_CF)?; - let diffs_key = Key::from(last_height.to_db_key()) - .with_segment("new".to_owned()) - .join(key) - .to_string(); - - batch.0.put_cf(diffs_cf, diffs_key, val); - - Ok(()) - } -} - -/// A struct that can visit a set of updates, -/// registering them all in the batch -pub struct RocksDBUpdateVisitor<'db> { - db: &'db RocksDB, - batch: RocksDBWriteBatch, -} - -impl<'db> RocksDBUpdateVisitor<'db> { - pub fn new(db: &'db RocksDB) -> Self { - Self { - db, - batch: Default::default(), - } - } - - pub fn take_batch(self) -> RocksDBWriteBatch { - self.batch - } -} - -impl<'db> DBUpdateVisitor for RocksDBUpdateVisitor<'db> { - fn read(&self, key: &Key) -> Option> { - self.db - .read_subspace_val(key) - .expect("Failed to read from storage") - } - - fn write(&mut self, key: &Key, value: impl AsRef<[u8]>) { - self.db - .overwrite_entry(&mut self.batch, None, key, value) - .expect("Failed to overwrite a key in storage") - } - - fn delete(&mut self, key: &Key) { - let last_height: BlockHeight = { - let state_cf = self.db.get_column_family(STATE_CF).unwrap(); - - decode( - self.db - .0 - .get_cf(state_cf, "height") - .map_err(|e| Error::DBError(e.to_string())) - .unwrap() - .ok_or_else(|| { - Error::DBError("No block height found".to_string()) - }) - .unwrap(), - ) - .map_err(|e| { - Error::DBError(format!("Unable to decode block height: {e}")) - }) - .unwrap() - }; - self.db - .batch_delete_subspace_val(&mut self.batch, last_height, key, true) - .expect("Failed to delete key from storage"); - } - - fn get_pattern(&self, pattern: Regex) -> Vec<(String, Vec)> { - self.db - .iter_pattern(None, pattern) - .map(|(k, v, _)| (k, v)) - .collect() - } } /// A struct that can visit a set of updates, diff --git a/crates/migrations/Cargo.toml b/crates/migrations/Cargo.toml index 1f0ae72bbc..1ad4c63df6 100644 --- a/crates/migrations/Cargo.toml +++ b/crates/migrations/Cargo.toml @@ -17,5 +17,5 @@ version.workspace = true [dependencies] data-encoding.workspace = true lazy_static.workspace = true -linkme = {workspace = true, optional = true} +linkme.workspace = true serde.workspace = true diff --git a/wasm/Cargo.lock b/wasm/Cargo.lock index 549f41c6cd..d8af2cb72d 100644 --- a/wasm/Cargo.lock +++ b/wasm/Cargo.lock @@ -3336,7 +3336,7 @@ checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" [[package]] name = "namada" -version = "0.31.8" +version = "0.31.9" dependencies = [ "async-trait", "bimap", @@ -3414,7 +3414,7 @@ dependencies = [ [[package]] name = "namada_account" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "linkme", @@ -3428,7 +3428,7 @@ dependencies = [ [[package]] name = "namada_core" -version = "0.31.8" +version = "0.31.9" dependencies = [ "bech32 0.8.1", "borsh", @@ -3474,7 +3474,7 @@ dependencies = [ [[package]] name = "namada_ethereum_bridge" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "ethabi", @@ -3505,7 +3505,7 @@ dependencies = [ [[package]] name = "namada_gas" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "namada_core", @@ -3516,7 +3516,7 @@ dependencies = [ [[package]] name = "namada_governance" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "itertools 0.10.5", @@ -3536,7 +3536,7 @@ dependencies = [ [[package]] name = "namada_ibc" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "ibc", @@ -3561,7 +3561,7 @@ dependencies = [ [[package]] name = "namada_macros" -version = "0.31.8" +version = "0.31.9" dependencies = [ "data-encoding", "lazy_static", @@ -3574,7 +3574,7 @@ dependencies = [ [[package]] name = "namada_merkle_tree" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "eyre", @@ -3588,7 +3588,7 @@ dependencies = [ [[package]] name = "namada_migrations" -version = "0.31.8" +version = "0.31.9" dependencies = [ "data-encoding", "lazy_static", @@ -3598,7 +3598,7 @@ dependencies = [ [[package]] name = "namada_parameters" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "namada_core", @@ -3609,7 +3609,7 @@ dependencies = [ [[package]] name = "namada_proof_of_stake" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "data-encoding", @@ -3633,14 +3633,14 @@ dependencies = [ [[package]] name = "namada_replay_protection" -version = "0.31.8" +version = "0.31.9" dependencies = [ "namada_core", ] [[package]] name = "namada_sdk" -version = "0.31.8" +version = "0.31.9" dependencies = [ "async-trait", "bimap", @@ -3705,7 +3705,7 @@ dependencies = [ [[package]] name = "namada_shielded_token" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "masp_primitives", @@ -3719,7 +3719,7 @@ dependencies = [ [[package]] name = "namada_state" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "ics23", @@ -3745,7 +3745,7 @@ dependencies = [ [[package]] name = "namada_storage" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "itertools 0.10.5", @@ -3764,7 +3764,7 @@ dependencies = [ [[package]] name = "namada_test_utils" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "namada_core", @@ -3773,7 +3773,7 @@ dependencies = [ [[package]] name = "namada_tests" -version = "0.31.8" +version = "0.31.9" dependencies = [ "async-trait", "chrono", @@ -3807,7 +3807,7 @@ dependencies = [ [[package]] name = "namada_token" -version = "0.31.8" +version = "0.31.9" dependencies = [ "namada_core", "namada_shielded_token", @@ -3817,7 +3817,7 @@ dependencies = [ [[package]] name = "namada_trans_token" -version = "0.31.8" +version = "0.31.9" dependencies = [ "namada_core", "namada_storage", @@ -3825,7 +3825,7 @@ dependencies = [ [[package]] name = "namada_tx" -version = "0.31.8" +version = "0.31.9" dependencies = [ "ark-bls12-381", "borsh", @@ -3850,7 +3850,7 @@ dependencies = [ [[package]] name = "namada_tx_env" -version = "0.31.8" +version = "0.31.9" dependencies = [ "namada_core", "namada_storage", @@ -3858,7 +3858,7 @@ dependencies = [ [[package]] name = "namada_tx_prelude" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "masp_primitives", @@ -3880,7 +3880,7 @@ dependencies = [ [[package]] name = "namada_vm_env" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "masp_primitives", @@ -3889,7 +3889,7 @@ dependencies = [ [[package]] name = "namada_vote_ext" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "linkme", @@ -3902,7 +3902,7 @@ dependencies = [ [[package]] name = "namada_vp_env" -version = "0.31.8" +version = "0.31.9" dependencies = [ "derivative", "masp_primitives", @@ -3914,7 +3914,7 @@ dependencies = [ [[package]] name = "namada_vp_prelude" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "namada_account", @@ -3935,7 +3935,7 @@ dependencies = [ [[package]] name = "namada_wasm" -version = "0.31.8" +version = "0.31.9" dependencies = [ "getrandom 0.2.11", "namada", @@ -6306,7 +6306,7 @@ checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "tx_template" -version = "0.31.8" +version = "0.31.9" dependencies = [ "getrandom 0.2.11", "namada_tests", @@ -6460,7 +6460,7 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "vp_template" -version = "0.31.8" +version = "0.31.9" dependencies = [ "getrandom 0.2.11", "namada_tests", diff --git a/wasm_for_tests/wasm_source/Cargo.lock b/wasm_for_tests/wasm_source/Cargo.lock index 68a6e61412..9ebb9988a6 100644 --- a/wasm_for_tests/wasm_source/Cargo.lock +++ b/wasm_for_tests/wasm_source/Cargo.lock @@ -3316,7 +3316,7 @@ checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" [[package]] name = "namada" -version = "0.31.8" +version = "0.31.9" dependencies = [ "async-trait", "bimap", @@ -3392,7 +3392,7 @@ dependencies = [ [[package]] name = "namada_account" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "namada_core", @@ -3404,7 +3404,7 @@ dependencies = [ [[package]] name = "namada_core" -version = "0.31.8" +version = "0.31.9" dependencies = [ "bech32 0.8.1", "borsh", @@ -3448,7 +3448,7 @@ dependencies = [ [[package]] name = "namada_ethereum_bridge" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "ethabi", @@ -3477,7 +3477,7 @@ dependencies = [ [[package]] name = "namada_gas" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "namada_core", @@ -3488,7 +3488,7 @@ dependencies = [ [[package]] name = "namada_governance" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "itertools 0.10.5", @@ -3506,7 +3506,7 @@ dependencies = [ [[package]] name = "namada_ibc" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "ibc", @@ -3531,7 +3531,7 @@ dependencies = [ [[package]] name = "namada_macros" -version = "0.31.8" +version = "0.31.9" dependencies = [ "data-encoding", "lazy_static", @@ -3544,7 +3544,7 @@ dependencies = [ [[package]] name = "namada_merkle_tree" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "eyre", @@ -3558,7 +3558,7 @@ dependencies = [ [[package]] name = "namada_parameters" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "namada_core", @@ -3569,7 +3569,7 @@ dependencies = [ [[package]] name = "namada_proof_of_stake" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "data-encoding", @@ -3591,14 +3591,14 @@ dependencies = [ [[package]] name = "namada_replay_protection" -version = "0.31.8" +version = "0.31.9" dependencies = [ "namada_core", ] [[package]] name = "namada_sdk" -version = "0.31.8" +version = "0.31.9" dependencies = [ "async-trait", "bimap", @@ -3661,7 +3661,7 @@ dependencies = [ [[package]] name = "namada_shielded_token" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "masp_primitives", @@ -3675,7 +3675,7 @@ dependencies = [ [[package]] name = "namada_state" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "ics23", @@ -3699,7 +3699,7 @@ dependencies = [ [[package]] name = "namada_storage" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "itertools 0.10.5", @@ -3716,7 +3716,7 @@ dependencies = [ [[package]] name = "namada_test_utils" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "namada_core", @@ -3725,7 +3725,7 @@ dependencies = [ [[package]] name = "namada_tests" -version = "0.31.8" +version = "0.31.9" dependencies = [ "async-trait", "chrono", @@ -3759,7 +3759,7 @@ dependencies = [ [[package]] name = "namada_token" -version = "0.31.8" +version = "0.31.9" dependencies = [ "namada_core", "namada_shielded_token", @@ -3769,7 +3769,7 @@ dependencies = [ [[package]] name = "namada_trans_token" -version = "0.31.8" +version = "0.31.9" dependencies = [ "namada_core", "namada_storage", @@ -3777,7 +3777,7 @@ dependencies = [ [[package]] name = "namada_tx" -version = "0.31.8" +version = "0.31.9" dependencies = [ "ark-bls12-381", "borsh", @@ -3800,7 +3800,7 @@ dependencies = [ [[package]] name = "namada_tx_env" -version = "0.31.8" +version = "0.31.9" dependencies = [ "namada_core", "namada_storage", @@ -3808,7 +3808,7 @@ dependencies = [ [[package]] name = "namada_tx_prelude" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "masp_primitives", @@ -3830,7 +3830,7 @@ dependencies = [ [[package]] name = "namada_vm_env" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "masp_primitives", @@ -3839,7 +3839,7 @@ dependencies = [ [[package]] name = "namada_vote_ext" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "namada_core", @@ -3850,7 +3850,7 @@ dependencies = [ [[package]] name = "namada_vp_env" -version = "0.31.8" +version = "0.31.9" dependencies = [ "derivative", "masp_primitives", @@ -3862,7 +3862,7 @@ dependencies = [ [[package]] name = "namada_vp_prelude" -version = "0.31.8" +version = "0.31.9" dependencies = [ "borsh", "namada_account", @@ -3883,7 +3883,7 @@ dependencies = [ [[package]] name = "namada_wasm_for_tests" -version = "0.31.8" +version = "0.31.9" dependencies = [ "getrandom 0.2.11", "namada_test_utils",