diff --git a/Cargo.toml b/Cargo.toml index d93dab9..856661c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,8 +2,8 @@ name = "ckb-merkle-mountain-range" version = "0.6.1" authors = ["Nervos Core Dev "] -edition = "2018" -rust-version = "1.60.0" +edition = "2024" +rust-version = "1.85.0" license = "MIT" description = "A generalized merkle mountain range implementation" repository = "https://github.com/nervosnetwork/merkle-mountain-range" diff --git a/benches/helper_benchmark.rs b/benches/helper_benchmark.rs index 35353a4..7ce5865 100644 --- a/benches/helper_benchmark.rs +++ b/benches/helper_benchmark.rs @@ -4,7 +4,7 @@ use criterion::Criterion; use ckb_merkle_mountain_range::{leaf_index_to_mmr_size, leaf_index_to_pos}; -use rand::{thread_rng, Rng}; +use rand::{Rng, thread_rng}; fn bench(c: &mut Criterion) { c.bench_function("left_index_to_pos", |b| { diff --git a/benches/mmr_benchmark.rs b/benches/mmr_benchmark.rs index d7c9b19..9d9eaf0 100644 --- a/benches/mmr_benchmark.rs +++ b/benches/mmr_benchmark.rs @@ -4,7 +4,7 @@ extern crate criterion; use criterion::{BenchmarkId, Criterion}; use bytes::Bytes; -use ckb_merkle_mountain_range::{util::MemStore, Error, MMRStoreReadOps, Merge, Result, MMR}; +use ckb_merkle_mountain_range::{Error, MMR, MMRStoreReadOps, Merge, Result, util::MemStore}; use rand::{seq::SliceRandom, thread_rng}; use std::convert::TryFrom; diff --git a/src/lib.rs b/src/lib.rs index 96b3fc0..25db68f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -12,7 +12,7 @@ pub mod util; pub use error::{Error, Result}; pub use helper::{leaf_index_to_mmr_size, leaf_index_to_pos}; pub use merge::Merge; -pub use mmr::{MerkleProof, MMR}; +pub use mmr::{MMR, MerkleProof}; pub use mmr_store::{MMRStoreReadOps, MMRStoreWriteOps}; cfg_if::cfg_if! { diff --git a/src/mmr.rs b/src/mmr.rs index fcd32c4..3c298ee 100644 --- a/src/mmr.rs +++ b/src/mmr.rs @@ -16,6 +16,7 @@ use crate::vec::Vec; use crate::{Error, Merge, Result}; use core::fmt::Debug; use core::marker::PhantomData; +use core::mem; #[allow(clippy::upper_case_acronyms)] pub struct MMR { @@ -498,5 +499,5 @@ fn take_while_vec bool>(v: &mut Vec, p: P) -> Vec { return v.drain(..i).collect(); } } - v.drain(..).collect() + mem::take(v) } diff --git a/src/mmr_store.rs b/src/mmr_store.rs index 1586d70..6ebb7b3 100644 --- a/src/mmr_store.rs +++ b/src/mmr_store.rs @@ -1,4 +1,4 @@ -use crate::{vec::Vec, Result}; +use crate::{Result, vec::Vec}; #[derive(Default)] pub struct MMRBatch { diff --git a/src/tests/test_accumulate_headers.rs b/src/tests/test_accumulate_headers.rs index 71c26b8..cb49f46 100644 --- a/src/tests/test_accumulate_headers.rs +++ b/src/tests/test_accumulate_headers.rs @@ -1,5 +1,5 @@ use super::new_blake2b; -use crate::{leaf_index_to_pos, util::MemStore, MMRStoreReadOps, Merge, MerkleProof, Result, MMR}; +use crate::{MMR, MMRStoreReadOps, Merge, MerkleProof, Result, leaf_index_to_pos, util::MemStore}; use bytes::{Bytes, BytesMut}; use std::fmt; diff --git a/src/tests/test_helper.rs b/src/tests/test_helper.rs index 167f6bd..2d3f0a3 100644 --- a/src/tests/test_helper.rs +++ b/src/tests/test_helper.rs @@ -1,9 +1,9 @@ use super::{MergeNumberHash, NumberHash}; use crate::{ + MMR, helper::{get_peak_map, get_peaks, pos_height_in_tree}, leaf_index_to_mmr_size, leaf_index_to_pos, util::MemStore, - MMR, }; use lazy_static::lazy_static; use proptest::prelude::*; diff --git a/src/tests/test_mmr.rs b/src/tests/test_mmr.rs index 7e4405c..5625046 100644 --- a/src/tests/test_mmr.rs +++ b/src/tests/test_mmr.rs @@ -1,9 +1,9 @@ use super::{MergeNumberHash, NumberHash}; use crate::{ + Error, helper::pos_height_in_tree, leaf_index_to_mmr_size, util::{MemMMR, MemStore}, - Error, }; use faster_hex::hex_string; use proptest::prelude::*; @@ -234,9 +234,11 @@ fn test_invalid_proof_verification( } Err(Error::NodeProofsNotSupported) => { // if couldn't generate proof, then it contained a non-leaf - assert!(positions_to_verify - .iter() - .any(|pos| pos_height_in_tree(*pos) > 0)); + assert!( + positions_to_verify + .iter() + .any(|pos| pos_height_in_tree(*pos) > 0) + ); } Err(e) => panic!("Unexpected error: {}", e), } diff --git a/src/tests/test_sequence.rs b/src/tests/test_sequence.rs index 1d953a2..d4c5f54 100644 --- a/src/tests/test_sequence.rs +++ b/src/tests/test_sequence.rs @@ -3,7 +3,7 @@ use std::fmt; use proptest::proptest; use rand::{prelude::*, thread_rng}; -use crate::{util::MemStore, Merge, Result, MMR}; +use crate::{MMR, Merge, Result, util::MemStore}; #[derive(Eq, PartialEq, Clone, Default)] struct NumberRange { diff --git a/src/util.rs b/src/util.rs index f021de3..ea087d9 100644 --- a/src/util.rs +++ b/src/util.rs @@ -1,5 +1,5 @@ use crate::collections::BTreeMap; -use crate::{vec::Vec, MMRStoreReadOps, MMRStoreWriteOps, Result, MMR}; +use crate::{MMR, MMRStoreReadOps, MMRStoreWriteOps, Result, vec::Vec}; use core::cell::RefCell; #[derive(Clone)]