Skip to content

fix: proof panic when proving absent path with intermediary empty tree. #186

fix: proof panic when proving absent path with intermediary empty tree.

fix: proof panic when proving absent path with intermediary empty tree. #186

Triggered via pull request October 26, 2023 13:50
Status Success
Total duration 16m 19s
Artifacts

coverage.yml

on: pull_request
Fit to window
Zoom out
Zoom in

Annotations

16 warnings
unused `std::result::Result` that must be used: grovedb/src/operations/proof/generate.rs#L515
warning: unused `std::result::Result` that must be used --> grovedb/src/operations/proof/generate.rs:515:13 | 515 | write_to_vec(proofs, &[ProofTokenType::EmptyTree.into()]); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = note: this `Result` may be an `Err` variant, which should be handled = note: `#[warn(unused_must_use)]` on by default help: use `let _ = ...` to ignore the resulting value | 515 | let _ = write_to_vec(proofs, &[ProofTokenType::EmptyTree.into()]); | +++++++
very complex type used. Consider factoring parts into `type` definitions: grovedb/src/lib.rs#L943
warning: very complex type used. Consider factoring parts into `type` definitions --> grovedb/src/lib.rs:943:10 | 943 | ) -> Result<HashMap<Vec<Vec<u8>>, (CryptoHash, CryptoHash, CryptoHash)>, Error> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
very complex type used. Consider factoring parts into `type` definitions: grovedb/src/lib.rs#L873
warning: very complex type used. Consider factoring parts into `type` definitions --> grovedb/src/lib.rs:873:10 | 873 | ) -> Result<HashMap<Vec<Vec<u8>>, (CryptoHash, CryptoHash, CryptoHash)>, Error> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
very complex type used. Consider factoring parts into `type` definitions: grovedb/src/lib.rs#L847
warning: very complex type used. Consider factoring parts into `type` definitions --> grovedb/src/lib.rs:847:10 | 847 | ) -> Result<HashMap<Vec<Vec<u8>>, (CryptoHash, CryptoHash, CryptoHash)>, Error> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity = note: `#[warn(clippy::type_complexity)]` on by default
this function has too many arguments (9/7): grovedb/src/operations/proof/generate.rs#L488
warning: this function has too many arguments (9/7) --> grovedb/src/operations/proof/generate.rs:488:5 | 488 | / fn generate_and_store_merk_proof<'a, S, B>( 489 | | &self, 490 | | path: &SubtreePath<B>, 491 | | subtree: &'a Merk<S>, ... | 497 | | key: &[u8], 498 | | ) -> CostResult<(Option<u16>, Option<u16>), Error> | |______________________________________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
this function has too many arguments (8/7): grovedb/src/operations/proof/generate.rs#L172
warning: this function has too many arguments (8/7) --> grovedb/src/operations/proof/generate.rs:172:5 | 172 | / fn prove_subqueries( 173 | | &self, 174 | | proofs: &mut Vec<u8>, 175 | | path: Vec<&[u8]>, ... | 180 | | is_verbose: bool, 181 | | ) -> CostResult<(), Error> { | |______________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
this function has too many arguments (12/7): grovedb/src/element/query.rs#L535
warning: this function has too many arguments (12/7) --> grovedb/src/element/query.rs:535:5 | 535 | / fn query_item( 536 | | storage: &RocksDbStorage, 537 | | item: &QueryItem, 538 | | results: &mut Vec<QueryResultElement>, ... | 547 | | add_element_function: fn(PathQueryPushArgs) -> CostResult<(), Error>, 548 | | ) -> CostResult<(), Error> { | |______________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
this function has too many arguments (8/7): grovedb/src/element/query.rs#L138
warning: this function has too many arguments (8/7) --> grovedb/src/element/query.rs:138:5 | 138 | / pub fn get_query_apply_function( 139 | | storage: &RocksDbStorage, 140 | | path: &[&[u8]], 141 | | sized_query: &SizedQuery, ... | 146 | | add_element_function: fn(PathQueryPushArgs) -> CostResult<(), Error>, 147 | | ) -> CostResult<(QueryResultElements, u16), Error> { | |______________________________________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments = note: `#[warn(clippy::too_many_arguments)]` on by default
function `read_proof_version` is never used: grovedb/src/versioning.rs#L12
warning: function `read_proof_version` is never used --> grovedb/src/versioning.rs:12:8 | 12 | pub fn read_proof_version(mut bytes: &[u8]) -> Result<u32, Error> { | ^^^^^^^^^^^^^^^^^^ | = note: `#[warn(dead_code)]` on by default
unused variable: `e`: grovedb/src/operations/proof/generate.rs#L524
warning: unused variable: `e` --> grovedb/src/operations/proof/generate.rs:524:27 | 524 | .map_err(|e| Error::InternalError("failed to generate proof")) | ^ help: if this is intentional, prefix it with an underscore: `_e` | = note: `#[warn(unused_variables)]` on by default
this function has too many arguments (8/7): merk/src/tree/mod.rs#L811
warning: this function has too many arguments (8/7) --> merk/src/tree/mod.rs:811:5 | 811 | / pub fn put_value_with_reference_value_hash_and_value_cost( 812 | | mut self, 813 | | value: Vec<u8>, 814 | | value_hash: CryptoHash, ... | 833 | | >, 834 | | ) -> CostResult<Self, Error> { | |________________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
this function has too many arguments (8/7): merk/src/tree/walk/mod.rs#L344
warning: this function has too many arguments (8/7) --> merk/src/tree/walk/mod.rs:344:5 | 344 | / pub fn put_value_with_reference_value_hash_and_value_cost( 345 | | mut self, 346 | | value: Vec<u8>, 347 | | value_hash: CryptoHash, ... | 366 | | >, 367 | | ) -> CostResult<Self, Error> { | |________________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
this function has too many arguments (9/7): merk/src/tree/ops.rs#L718
warning: this function has too many arguments (9/7) --> merk/src/tree/ops.rs:718:5 | 718 | / fn recurse<K: AsRef<[u8]>, C, V, U, R>( 719 | | self, 720 | | batch: &MerkBatch<K>, 721 | | mid: usize, ... | 727 | | section_removal_bytes: &mut R, 728 | | ) -> CostResult<(Option<Self>, KeyUpdates), Error> | |______________________________________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
this function has too many arguments (8/7): merk/src/merk/apply.rs#L277
warning: this function has too many arguments (8/7) --> merk/src/merk/apply.rs:277:5 | 277 | / pub fn apply_unchecked<KB, KA, C, V, U, R>( 278 | | &mut self, 279 | | batch: &MerkBatch<KB>, 280 | | aux: &AuxMerkBatch<KA>, ... | 285 | | section_removal_bytes: &mut R, 286 | | ) -> CostResult<(), Error> | |______________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
this function has too many arguments (8/7): merk/src/merk/apply.rs#L176
warning: this function has too many arguments (8/7) --> merk/src/merk/apply.rs:176:5 | 176 | / pub fn apply_with_costs_just_in_time_value_update<KB, KA>( 177 | | &mut self, 178 | | batch: &MerkBatch<KB>, 179 | | aux: &AuxMerkBatch<KA>, ... | 198 | | >, 199 | | ) -> CostResult<(), Error> | |______________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments = note: `#[warn(clippy::too_many_arguments)]` on by default
Code Coverage
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/